illuma-agents 1.0.2

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 (437) hide show
  1. package/LICENSE +21 -0
  2. package/dist/cjs/common/enum.cjs +163 -0
  3. package/dist/cjs/common/enum.cjs.map +1 -0
  4. package/dist/cjs/events.cjs +143 -0
  5. package/dist/cjs/events.cjs.map +1 -0
  6. package/dist/cjs/graphs/Graph.cjs +581 -0
  7. package/dist/cjs/graphs/Graph.cjs.map +1 -0
  8. package/dist/cjs/instrumentation.cjs +21 -0
  9. package/dist/cjs/instrumentation.cjs.map +1 -0
  10. package/dist/cjs/llm/anthropic/index.cjs +292 -0
  11. package/dist/cjs/llm/anthropic/index.cjs.map +1 -0
  12. package/dist/cjs/llm/anthropic/types.cjs +50 -0
  13. package/dist/cjs/llm/anthropic/types.cjs.map +1 -0
  14. package/dist/cjs/llm/anthropic/utils/message_inputs.cjs +553 -0
  15. package/dist/cjs/llm/anthropic/utils/message_inputs.cjs.map +1 -0
  16. package/dist/cjs/llm/anthropic/utils/message_outputs.cjs +218 -0
  17. package/dist/cjs/llm/anthropic/utils/message_outputs.cjs.map +1 -0
  18. package/dist/cjs/llm/anthropic/utils/tools.cjs +29 -0
  19. package/dist/cjs/llm/anthropic/utils/tools.cjs.map +1 -0
  20. package/dist/cjs/llm/fake.cjs +97 -0
  21. package/dist/cjs/llm/fake.cjs.map +1 -0
  22. package/dist/cjs/llm/google/index.cjs +147 -0
  23. package/dist/cjs/llm/google/index.cjs.map +1 -0
  24. package/dist/cjs/llm/google/utils/common.cjs +490 -0
  25. package/dist/cjs/llm/google/utils/common.cjs.map +1 -0
  26. package/dist/cjs/llm/ollama/index.cjs +70 -0
  27. package/dist/cjs/llm/ollama/index.cjs.map +1 -0
  28. package/dist/cjs/llm/ollama/utils.cjs +158 -0
  29. package/dist/cjs/llm/ollama/utils.cjs.map +1 -0
  30. package/dist/cjs/llm/openai/index.cjs +613 -0
  31. package/dist/cjs/llm/openai/index.cjs.map +1 -0
  32. package/dist/cjs/llm/openai/utils/index.cjs +677 -0
  33. package/dist/cjs/llm/openai/utils/index.cjs.map +1 -0
  34. package/dist/cjs/llm/openrouter/index.cjs +29 -0
  35. package/dist/cjs/llm/openrouter/index.cjs.map +1 -0
  36. package/dist/cjs/llm/providers.cjs +47 -0
  37. package/dist/cjs/llm/providers.cjs.map +1 -0
  38. package/dist/cjs/llm/text.cjs +69 -0
  39. package/dist/cjs/llm/text.cjs.map +1 -0
  40. package/dist/cjs/llm/vertexai/index.cjs +330 -0
  41. package/dist/cjs/llm/vertexai/index.cjs.map +1 -0
  42. package/dist/cjs/main.cjs +127 -0
  43. package/dist/cjs/main.cjs.map +1 -0
  44. package/dist/cjs/messages/core.cjs +359 -0
  45. package/dist/cjs/messages/core.cjs.map +1 -0
  46. package/dist/cjs/messages/format.cjs +455 -0
  47. package/dist/cjs/messages/format.cjs.map +1 -0
  48. package/dist/cjs/messages/ids.cjs +23 -0
  49. package/dist/cjs/messages/ids.cjs.map +1 -0
  50. package/dist/cjs/messages/prune.cjs +398 -0
  51. package/dist/cjs/messages/prune.cjs.map +1 -0
  52. package/dist/cjs/run.cjs +264 -0
  53. package/dist/cjs/run.cjs.map +1 -0
  54. package/dist/cjs/splitStream.cjs +210 -0
  55. package/dist/cjs/splitStream.cjs.map +1 -0
  56. package/dist/cjs/stream.cjs +504 -0
  57. package/dist/cjs/stream.cjs.map +1 -0
  58. package/dist/cjs/tools/CodeExecutor.cjs +192 -0
  59. package/dist/cjs/tools/CodeExecutor.cjs.map +1 -0
  60. package/dist/cjs/tools/ToolNode.cjs +125 -0
  61. package/dist/cjs/tools/ToolNode.cjs.map +1 -0
  62. package/dist/cjs/tools/handlers.cjs +250 -0
  63. package/dist/cjs/tools/handlers.cjs.map +1 -0
  64. package/dist/cjs/tools/search/anthropic.cjs +40 -0
  65. package/dist/cjs/tools/search/anthropic.cjs.map +1 -0
  66. package/dist/cjs/tools/search/content.cjs +140 -0
  67. package/dist/cjs/tools/search/content.cjs.map +1 -0
  68. package/dist/cjs/tools/search/firecrawl.cjs +179 -0
  69. package/dist/cjs/tools/search/firecrawl.cjs.map +1 -0
  70. package/dist/cjs/tools/search/format.cjs +203 -0
  71. package/dist/cjs/tools/search/format.cjs.map +1 -0
  72. package/dist/cjs/tools/search/highlights.cjs +245 -0
  73. package/dist/cjs/tools/search/highlights.cjs.map +1 -0
  74. package/dist/cjs/tools/search/rerankers.cjs +174 -0
  75. package/dist/cjs/tools/search/rerankers.cjs.map +1 -0
  76. package/dist/cjs/tools/search/schema.cjs +70 -0
  77. package/dist/cjs/tools/search/schema.cjs.map +1 -0
  78. package/dist/cjs/tools/search/search.cjs +561 -0
  79. package/dist/cjs/tools/search/search.cjs.map +1 -0
  80. package/dist/cjs/tools/search/serper-scraper.cjs +132 -0
  81. package/dist/cjs/tools/search/serper-scraper.cjs.map +1 -0
  82. package/dist/cjs/tools/search/tool.cjs +331 -0
  83. package/dist/cjs/tools/search/tool.cjs.map +1 -0
  84. package/dist/cjs/tools/search/utils.cjs +66 -0
  85. package/dist/cjs/tools/search/utils.cjs.map +1 -0
  86. package/dist/cjs/utils/graph.cjs +16 -0
  87. package/dist/cjs/utils/graph.cjs.map +1 -0
  88. package/dist/cjs/utils/llm.cjs +28 -0
  89. package/dist/cjs/utils/llm.cjs.map +1 -0
  90. package/dist/cjs/utils/misc.cjs +56 -0
  91. package/dist/cjs/utils/misc.cjs.map +1 -0
  92. package/dist/cjs/utils/run.cjs +69 -0
  93. package/dist/cjs/utils/run.cjs.map +1 -0
  94. package/dist/cjs/utils/title.cjs +111 -0
  95. package/dist/cjs/utils/title.cjs.map +1 -0
  96. package/dist/cjs/utils/tokens.cjs +65 -0
  97. package/dist/cjs/utils/tokens.cjs.map +1 -0
  98. package/dist/esm/common/enum.mjs +163 -0
  99. package/dist/esm/common/enum.mjs.map +1 -0
  100. package/dist/esm/events.mjs +135 -0
  101. package/dist/esm/events.mjs.map +1 -0
  102. package/dist/esm/graphs/Graph.mjs +578 -0
  103. package/dist/esm/graphs/Graph.mjs.map +1 -0
  104. package/dist/esm/instrumentation.mjs +19 -0
  105. package/dist/esm/instrumentation.mjs.map +1 -0
  106. package/dist/esm/llm/anthropic/index.mjs +290 -0
  107. package/dist/esm/llm/anthropic/index.mjs.map +1 -0
  108. package/dist/esm/llm/anthropic/types.mjs +48 -0
  109. package/dist/esm/llm/anthropic/types.mjs.map +1 -0
  110. package/dist/esm/llm/anthropic/utils/message_inputs.mjs +550 -0
  111. package/dist/esm/llm/anthropic/utils/message_inputs.mjs.map +1 -0
  112. package/dist/esm/llm/anthropic/utils/message_outputs.mjs +216 -0
  113. package/dist/esm/llm/anthropic/utils/message_outputs.mjs.map +1 -0
  114. package/dist/esm/llm/anthropic/utils/tools.mjs +27 -0
  115. package/dist/esm/llm/anthropic/utils/tools.mjs.map +1 -0
  116. package/dist/esm/llm/fake.mjs +94 -0
  117. package/dist/esm/llm/fake.mjs.map +1 -0
  118. package/dist/esm/llm/google/index.mjs +145 -0
  119. package/dist/esm/llm/google/index.mjs.map +1 -0
  120. package/dist/esm/llm/google/utils/common.mjs +484 -0
  121. package/dist/esm/llm/google/utils/common.mjs.map +1 -0
  122. package/dist/esm/llm/ollama/index.mjs +68 -0
  123. package/dist/esm/llm/ollama/index.mjs.map +1 -0
  124. package/dist/esm/llm/ollama/utils.mjs +155 -0
  125. package/dist/esm/llm/ollama/utils.mjs.map +1 -0
  126. package/dist/esm/llm/openai/index.mjs +604 -0
  127. package/dist/esm/llm/openai/index.mjs.map +1 -0
  128. package/dist/esm/llm/openai/utils/index.mjs +671 -0
  129. package/dist/esm/llm/openai/utils/index.mjs.map +1 -0
  130. package/dist/esm/llm/openrouter/index.mjs +27 -0
  131. package/dist/esm/llm/openrouter/index.mjs.map +1 -0
  132. package/dist/esm/llm/providers.mjs +43 -0
  133. package/dist/esm/llm/providers.mjs.map +1 -0
  134. package/dist/esm/llm/text.mjs +67 -0
  135. package/dist/esm/llm/text.mjs.map +1 -0
  136. package/dist/esm/llm/vertexai/index.mjs +328 -0
  137. package/dist/esm/llm/vertexai/index.mjs.map +1 -0
  138. package/dist/esm/main.mjs +20 -0
  139. package/dist/esm/main.mjs.map +1 -0
  140. package/dist/esm/messages/core.mjs +351 -0
  141. package/dist/esm/messages/core.mjs.map +1 -0
  142. package/dist/esm/messages/format.mjs +447 -0
  143. package/dist/esm/messages/format.mjs.map +1 -0
  144. package/dist/esm/messages/ids.mjs +21 -0
  145. package/dist/esm/messages/ids.mjs.map +1 -0
  146. package/dist/esm/messages/prune.mjs +393 -0
  147. package/dist/esm/messages/prune.mjs.map +1 -0
  148. package/dist/esm/run.mjs +261 -0
  149. package/dist/esm/run.mjs.map +1 -0
  150. package/dist/esm/splitStream.mjs +207 -0
  151. package/dist/esm/splitStream.mjs.map +1 -0
  152. package/dist/esm/stream.mjs +500 -0
  153. package/dist/esm/stream.mjs.map +1 -0
  154. package/dist/esm/tools/CodeExecutor.mjs +188 -0
  155. package/dist/esm/tools/CodeExecutor.mjs.map +1 -0
  156. package/dist/esm/tools/ToolNode.mjs +122 -0
  157. package/dist/esm/tools/ToolNode.mjs.map +1 -0
  158. package/dist/esm/tools/handlers.mjs +245 -0
  159. package/dist/esm/tools/handlers.mjs.map +1 -0
  160. package/dist/esm/tools/search/anthropic.mjs +37 -0
  161. package/dist/esm/tools/search/anthropic.mjs.map +1 -0
  162. package/dist/esm/tools/search/content.mjs +119 -0
  163. package/dist/esm/tools/search/content.mjs.map +1 -0
  164. package/dist/esm/tools/search/firecrawl.mjs +176 -0
  165. package/dist/esm/tools/search/firecrawl.mjs.map +1 -0
  166. package/dist/esm/tools/search/format.mjs +201 -0
  167. package/dist/esm/tools/search/format.mjs.map +1 -0
  168. package/dist/esm/tools/search/highlights.mjs +243 -0
  169. package/dist/esm/tools/search/highlights.mjs.map +1 -0
  170. package/dist/esm/tools/search/rerankers.mjs +168 -0
  171. package/dist/esm/tools/search/rerankers.mjs.map +1 -0
  172. package/dist/esm/tools/search/schema.mjs +61 -0
  173. package/dist/esm/tools/search/schema.mjs.map +1 -0
  174. package/dist/esm/tools/search/search.mjs +558 -0
  175. package/dist/esm/tools/search/search.mjs.map +1 -0
  176. package/dist/esm/tools/search/serper-scraper.mjs +129 -0
  177. package/dist/esm/tools/search/serper-scraper.mjs.map +1 -0
  178. package/dist/esm/tools/search/tool.mjs +329 -0
  179. package/dist/esm/tools/search/tool.mjs.map +1 -0
  180. package/dist/esm/tools/search/utils.mjs +61 -0
  181. package/dist/esm/tools/search/utils.mjs.map +1 -0
  182. package/dist/esm/utils/graph.mjs +13 -0
  183. package/dist/esm/utils/graph.mjs.map +1 -0
  184. package/dist/esm/utils/llm.mjs +25 -0
  185. package/dist/esm/utils/llm.mjs.map +1 -0
  186. package/dist/esm/utils/misc.mjs +53 -0
  187. package/dist/esm/utils/misc.mjs.map +1 -0
  188. package/dist/esm/utils/run.mjs +66 -0
  189. package/dist/esm/utils/run.mjs.map +1 -0
  190. package/dist/esm/utils/title.mjs +108 -0
  191. package/dist/esm/utils/title.mjs.map +1 -0
  192. package/dist/esm/utils/tokens.mjs +62 -0
  193. package/dist/esm/utils/tokens.mjs.map +1 -0
  194. package/dist/types/common/enum.d.ts +128 -0
  195. package/dist/types/common/index.d.ts +1 -0
  196. package/dist/types/events.d.ts +29 -0
  197. package/dist/types/graphs/Graph.d.ts +122 -0
  198. package/dist/types/graphs/index.d.ts +1 -0
  199. package/dist/types/index.d.ts +13 -0
  200. package/dist/types/instrumentation.d.ts +1 -0
  201. package/dist/types/llm/anthropic/index.d.ts +39 -0
  202. package/dist/types/llm/anthropic/types.d.ts +37 -0
  203. package/dist/types/llm/anthropic/utils/message_inputs.d.ts +14 -0
  204. package/dist/types/llm/anthropic/utils/message_outputs.d.ts +14 -0
  205. package/dist/types/llm/anthropic/utils/output_parsers.d.ts +22 -0
  206. package/dist/types/llm/anthropic/utils/tools.d.ts +3 -0
  207. package/dist/types/llm/fake.d.ts +31 -0
  208. package/dist/types/llm/google/index.d.ts +14 -0
  209. package/dist/types/llm/google/types.d.ts +32 -0
  210. package/dist/types/llm/google/utils/common.d.ts +19 -0
  211. package/dist/types/llm/google/utils/tools.d.ts +10 -0
  212. package/dist/types/llm/google/utils/zod_to_genai_parameters.d.ts +14 -0
  213. package/dist/types/llm/ollama/index.d.ts +8 -0
  214. package/dist/types/llm/ollama/utils.d.ts +7 -0
  215. package/dist/types/llm/openai/index.d.ts +103 -0
  216. package/dist/types/llm/openai/types.d.ts +10 -0
  217. package/dist/types/llm/openai/utils/index.d.ts +20 -0
  218. package/dist/types/llm/openrouter/index.d.ts +12 -0
  219. package/dist/types/llm/providers.d.ts +5 -0
  220. package/dist/types/llm/text.d.ts +21 -0
  221. package/dist/types/llm/vertexai/index.d.ts +293 -0
  222. package/dist/types/messages/core.d.ts +14 -0
  223. package/dist/types/messages/format.d.ts +113 -0
  224. package/dist/types/messages/ids.d.ts +3 -0
  225. package/dist/types/messages/index.d.ts +4 -0
  226. package/dist/types/messages/prune.d.ts +51 -0
  227. package/dist/types/mockStream.d.ts +32 -0
  228. package/dist/types/prompts/collab.d.ts +1 -0
  229. package/dist/types/prompts/index.d.ts +2 -0
  230. package/dist/types/prompts/taskmanager.d.ts +41 -0
  231. package/dist/types/run.d.ts +30 -0
  232. package/dist/types/scripts/abort.d.ts +1 -0
  233. package/dist/types/scripts/ant_web_search.d.ts +1 -0
  234. package/dist/types/scripts/args.d.ts +7 -0
  235. package/dist/types/scripts/caching.d.ts +1 -0
  236. package/dist/types/scripts/cli.d.ts +1 -0
  237. package/dist/types/scripts/cli2.d.ts +1 -0
  238. package/dist/types/scripts/cli3.d.ts +1 -0
  239. package/dist/types/scripts/cli4.d.ts +1 -0
  240. package/dist/types/scripts/cli5.d.ts +1 -0
  241. package/dist/types/scripts/code_exec.d.ts +1 -0
  242. package/dist/types/scripts/code_exec_files.d.ts +1 -0
  243. package/dist/types/scripts/code_exec_simple.d.ts +1 -0
  244. package/dist/types/scripts/content.d.ts +1 -0
  245. package/dist/types/scripts/empty_input.d.ts +1 -0
  246. package/dist/types/scripts/image.d.ts +1 -0
  247. package/dist/types/scripts/memory.d.ts +1 -0
  248. package/dist/types/scripts/search.d.ts +1 -0
  249. package/dist/types/scripts/simple.d.ts +1 -0
  250. package/dist/types/scripts/stream.d.ts +1 -0
  251. package/dist/types/scripts/thinking.d.ts +1 -0
  252. package/dist/types/scripts/tools.d.ts +1 -0
  253. package/dist/types/specs/spec.utils.d.ts +1 -0
  254. package/dist/types/splitStream.d.ts +37 -0
  255. package/dist/types/stream.d.ts +14 -0
  256. package/dist/types/tools/CodeExecutor.d.ts +23 -0
  257. package/dist/types/tools/ToolNode.d.ts +22 -0
  258. package/dist/types/tools/example.d.ts +78 -0
  259. package/dist/types/tools/handlers.d.ts +19 -0
  260. package/dist/types/tools/search/anthropic.d.ts +16 -0
  261. package/dist/types/tools/search/content.d.ts +4 -0
  262. package/dist/types/tools/search/firecrawl.d.ts +54 -0
  263. package/dist/types/tools/search/format.d.ts +5 -0
  264. package/dist/types/tools/search/highlights.d.ts +13 -0
  265. package/dist/types/tools/search/index.d.ts +2 -0
  266. package/dist/types/tools/search/rerankers.d.ts +38 -0
  267. package/dist/types/tools/search/schema.d.ts +16 -0
  268. package/dist/types/tools/search/search.d.ts +8 -0
  269. package/dist/types/tools/search/serper-scraper.d.ts +59 -0
  270. package/dist/types/tools/search/test.d.ts +1 -0
  271. package/dist/types/tools/search/tool.d.ts +54 -0
  272. package/dist/types/tools/search/types.d.ts +591 -0
  273. package/dist/types/tools/search/utils.d.ts +10 -0
  274. package/dist/types/types/graph.d.ts +138 -0
  275. package/dist/types/types/index.d.ts +5 -0
  276. package/dist/types/types/llm.d.ts +102 -0
  277. package/dist/types/types/run.d.ts +74 -0
  278. package/dist/types/types/stream.d.ts +293 -0
  279. package/dist/types/types/tools.d.ts +61 -0
  280. package/dist/types/utils/graph.d.ts +2 -0
  281. package/dist/types/utils/index.d.ts +5 -0
  282. package/dist/types/utils/llm.d.ts +3 -0
  283. package/dist/types/utils/llmConfig.d.ts +3 -0
  284. package/dist/types/utils/logging.d.ts +1 -0
  285. package/dist/types/utils/misc.d.ts +7 -0
  286. package/dist/types/utils/run.d.ts +27 -0
  287. package/dist/types/utils/title.d.ts +4 -0
  288. package/dist/types/utils/tokens.d.ts +3 -0
  289. package/package.json +145 -0
  290. package/src/common/enum.ts +176 -0
  291. package/src/common/index.ts +2 -0
  292. package/src/events.ts +191 -0
  293. package/src/graphs/Graph.ts +846 -0
  294. package/src/graphs/index.ts +1 -0
  295. package/src/index.ts +24 -0
  296. package/src/instrumentation.ts +22 -0
  297. package/src/llm/anthropic/Jacob_Lee_Resume_2023.pdf +0 -0
  298. package/src/llm/anthropic/index.ts +413 -0
  299. package/src/llm/anthropic/llm.spec.ts +1442 -0
  300. package/src/llm/anthropic/types.ts +140 -0
  301. package/src/llm/anthropic/utils/message_inputs.ts +660 -0
  302. package/src/llm/anthropic/utils/message_outputs.ts +289 -0
  303. package/src/llm/anthropic/utils/output_parsers.ts +133 -0
  304. package/src/llm/anthropic/utils/tools.ts +29 -0
  305. package/src/llm/fake.ts +133 -0
  306. package/src/llm/google/index.ts +222 -0
  307. package/src/llm/google/types.ts +43 -0
  308. package/src/llm/google/utils/common.ts +660 -0
  309. package/src/llm/google/utils/tools.ts +160 -0
  310. package/src/llm/google/utils/zod_to_genai_parameters.ts +88 -0
  311. package/src/llm/ollama/index.ts +92 -0
  312. package/src/llm/ollama/utils.ts +193 -0
  313. package/src/llm/openai/index.ts +853 -0
  314. package/src/llm/openai/types.ts +24 -0
  315. package/src/llm/openai/utils/index.ts +918 -0
  316. package/src/llm/openai/utils/isReasoningModel.test.ts +90 -0
  317. package/src/llm/openrouter/index.ts +60 -0
  318. package/src/llm/providers.ts +57 -0
  319. package/src/llm/text.ts +94 -0
  320. package/src/llm/vertexai/index.ts +360 -0
  321. package/src/messages/core.ts +463 -0
  322. package/src/messages/format.ts +625 -0
  323. package/src/messages/formatAgentMessages.test.ts +917 -0
  324. package/src/messages/formatAgentMessages.tools.test.ts +400 -0
  325. package/src/messages/formatMessage.test.ts +693 -0
  326. package/src/messages/ids.ts +26 -0
  327. package/src/messages/index.ts +4 -0
  328. package/src/messages/prune.ts +567 -0
  329. package/src/messages/shiftIndexTokenCountMap.test.ts +81 -0
  330. package/src/mockStream.ts +99 -0
  331. package/src/prompts/collab.ts +6 -0
  332. package/src/prompts/index.ts +2 -0
  333. package/src/prompts/taskmanager.ts +61 -0
  334. package/src/proto/CollabGraph.ts +269 -0
  335. package/src/proto/TaskManager.ts +243 -0
  336. package/src/proto/collab.ts +200 -0
  337. package/src/proto/collab_design.ts +184 -0
  338. package/src/proto/collab_design_v2.ts +224 -0
  339. package/src/proto/collab_design_v3.ts +255 -0
  340. package/src/proto/collab_design_v4.ts +220 -0
  341. package/src/proto/collab_design_v5.ts +251 -0
  342. package/src/proto/collab_graph.ts +181 -0
  343. package/src/proto/collab_original.ts +123 -0
  344. package/src/proto/example.ts +93 -0
  345. package/src/proto/example_new.ts +68 -0
  346. package/src/proto/example_old.ts +201 -0
  347. package/src/proto/example_test.ts +152 -0
  348. package/src/proto/example_test_anthropic.ts +100 -0
  349. package/src/proto/log_stream.ts +202 -0
  350. package/src/proto/main_collab_community_event.ts +133 -0
  351. package/src/proto/main_collab_design_v2.ts +96 -0
  352. package/src/proto/main_collab_design_v4.ts +100 -0
  353. package/src/proto/main_collab_design_v5.ts +135 -0
  354. package/src/proto/main_collab_global_analysis.ts +122 -0
  355. package/src/proto/main_collab_hackathon_event.ts +153 -0
  356. package/src/proto/main_collab_space_mission.ts +153 -0
  357. package/src/proto/main_philosophy.ts +210 -0
  358. package/src/proto/original_script.ts +126 -0
  359. package/src/proto/standard.ts +100 -0
  360. package/src/proto/stream.ts +56 -0
  361. package/src/proto/tasks.ts +118 -0
  362. package/src/proto/tools/global_analysis_tools.ts +86 -0
  363. package/src/proto/tools/space_mission_tools.ts +60 -0
  364. package/src/proto/vertexai.ts +54 -0
  365. package/src/run.ts +381 -0
  366. package/src/scripts/abort.ts +138 -0
  367. package/src/scripts/ant_web_search.ts +158 -0
  368. package/src/scripts/args.ts +48 -0
  369. package/src/scripts/caching.ts +124 -0
  370. package/src/scripts/cli.ts +167 -0
  371. package/src/scripts/cli2.ts +125 -0
  372. package/src/scripts/cli3.ts +178 -0
  373. package/src/scripts/cli4.ts +184 -0
  374. package/src/scripts/cli5.ts +184 -0
  375. package/src/scripts/code_exec.ts +214 -0
  376. package/src/scripts/code_exec_files.ts +193 -0
  377. package/src/scripts/code_exec_simple.ts +129 -0
  378. package/src/scripts/content.ts +120 -0
  379. package/src/scripts/empty_input.ts +137 -0
  380. package/src/scripts/image.ts +178 -0
  381. package/src/scripts/memory.ts +97 -0
  382. package/src/scripts/search.ts +150 -0
  383. package/src/scripts/simple.ts +225 -0
  384. package/src/scripts/stream.ts +122 -0
  385. package/src/scripts/thinking.ts +150 -0
  386. package/src/scripts/tools.ts +155 -0
  387. package/src/specs/anthropic.simple.test.ts +317 -0
  388. package/src/specs/azure.simple.test.ts +316 -0
  389. package/src/specs/openai.simple.test.ts +316 -0
  390. package/src/specs/prune.test.ts +763 -0
  391. package/src/specs/reasoning.test.ts +165 -0
  392. package/src/specs/spec.utils.ts +3 -0
  393. package/src/specs/thinking-prune.test.ts +703 -0
  394. package/src/specs/token-distribution-edge-case.test.ts +316 -0
  395. package/src/specs/tool-error.test.ts +193 -0
  396. package/src/splitStream.test.ts +691 -0
  397. package/src/splitStream.ts +234 -0
  398. package/src/stream.test.ts +94 -0
  399. package/src/stream.ts +651 -0
  400. package/src/tools/CodeExecutor.ts +220 -0
  401. package/src/tools/ToolNode.ts +170 -0
  402. package/src/tools/example.ts +129 -0
  403. package/src/tools/handlers.ts +336 -0
  404. package/src/tools/search/anthropic.ts +51 -0
  405. package/src/tools/search/content.test.ts +173 -0
  406. package/src/tools/search/content.ts +147 -0
  407. package/src/tools/search/firecrawl.ts +210 -0
  408. package/src/tools/search/format.ts +250 -0
  409. package/src/tools/search/highlights.ts +320 -0
  410. package/src/tools/search/index.ts +2 -0
  411. package/src/tools/search/jina-reranker.test.ts +126 -0
  412. package/src/tools/search/output.md +2775 -0
  413. package/src/tools/search/rerankers.ts +242 -0
  414. package/src/tools/search/schema.ts +63 -0
  415. package/src/tools/search/search.ts +759 -0
  416. package/src/tools/search/serper-scraper.ts +155 -0
  417. package/src/tools/search/test.html +884 -0
  418. package/src/tools/search/test.md +643 -0
  419. package/src/tools/search/test.ts +159 -0
  420. package/src/tools/search/tool.ts +471 -0
  421. package/src/tools/search/types.ts +687 -0
  422. package/src/tools/search/utils.ts +79 -0
  423. package/src/types/graph.ts +185 -0
  424. package/src/types/index.ts +6 -0
  425. package/src/types/llm.ts +140 -0
  426. package/src/types/run.ts +89 -0
  427. package/src/types/stream.ts +400 -0
  428. package/src/types/tools.ts +80 -0
  429. package/src/utils/graph.ts +11 -0
  430. package/src/utils/index.ts +5 -0
  431. package/src/utils/llm.ts +27 -0
  432. package/src/utils/llmConfig.ts +183 -0
  433. package/src/utils/logging.ts +48 -0
  434. package/src/utils/misc.ts +57 -0
  435. package/src/utils/run.ts +101 -0
  436. package/src/utils/title.ts +165 -0
  437. package/src/utils/tokens.ts +70 -0
@@ -0,0 +1,79 @@
1
+ /* eslint-disable no-console */
2
+
3
+ import type * as t from './types';
4
+
5
+ /**
6
+ * Singleton instance of the default logger
7
+ */
8
+ let defaultLoggerInstance: t.Logger | null = null;
9
+
10
+ /**
11
+ * Creates a default logger that maps to console methods
12
+ * Uses a singleton pattern to avoid creating multiple instances
13
+ * @returns A default logger that implements the Logger interface
14
+ */
15
+ export const createDefaultLogger = (): t.Logger => {
16
+ if (!defaultLoggerInstance) {
17
+ defaultLoggerInstance = {
18
+ error: console.error,
19
+ warn: console.warn,
20
+ info: console.info,
21
+ debug: console.debug,
22
+ } as t.Logger;
23
+ }
24
+ return defaultLoggerInstance;
25
+ };
26
+
27
+ export const fileExtRegex =
28
+ /\.(pdf|jpe?g|png|gif|svg|webp|bmp|ico|tiff?|avif|heic|doc[xm]?|xls[xm]?|ppt[xm]?|zip|rar|mp[34]|mov|avi|wav)(?:\?.*)?$/i;
29
+
30
+ export const getDomainName = (
31
+ link: string,
32
+ metadata?: t.ScrapeMetadata,
33
+ logger?: t.Logger
34
+ ): string | undefined => {
35
+ try {
36
+ const url = metadata?.sourceURL ?? metadata?.url ?? (link || '');
37
+ const domain = new URL(url).hostname.replace(/^www\./, '');
38
+ if (domain) {
39
+ return domain;
40
+ }
41
+ } catch (e) {
42
+ // URL parsing failed
43
+ if (logger) {
44
+ logger.error('Error parsing URL:', e);
45
+ } else {
46
+ console.error('Error parsing URL:', e);
47
+ }
48
+ }
49
+
50
+ return;
51
+ };
52
+
53
+ export function getAttribution(
54
+ link: string,
55
+ metadata?: t.ScrapeMetadata,
56
+ logger?: t.Logger
57
+ ): string | undefined {
58
+ if (!metadata) return getDomainName(link, metadata, logger);
59
+
60
+ const twitterSite = metadata['twitter:site'];
61
+ const twitterSiteFormatted =
62
+ typeof twitterSite === 'string' ? twitterSite.replace(/^@/, '') : undefined;
63
+
64
+ const possibleAttributions = [
65
+ metadata.ogSiteName,
66
+ metadata['og:site_name'],
67
+ metadata.title?.split('|').pop()?.trim(),
68
+ twitterSiteFormatted,
69
+ ];
70
+
71
+ const attribution = possibleAttributions.find(
72
+ (attr) => attr != null && typeof attr === 'string' && attr.trim() !== ''
73
+ );
74
+ if (attribution != null) {
75
+ return attribution;
76
+ }
77
+
78
+ return getDomainName(link, metadata, logger);
79
+ }
@@ -0,0 +1,185 @@
1
+ // src/types/graph.ts
2
+ import type {
3
+ StateGraphArgs,
4
+ StateGraph,
5
+ CompiledStateGraph,
6
+ } from '@langchain/langgraph';
7
+ import type { BindToolsInput } from '@langchain/core/language_models/chat_models';
8
+ import type { BaseMessage, AIMessageChunk } from '@langchain/core/messages';
9
+ import type { ChatGenerationChunk } from '@langchain/core/outputs';
10
+ import type { GoogleAIToolType } from '@langchain/google-common';
11
+ import type { RunnableConfig } from '@langchain/core/runnables';
12
+ import type { ToolMap, GenericTool } from '@/types/tools';
13
+ import type { ClientOptions } from '@/types/llm';
14
+ import type { Providers } from '@/common';
15
+ import type { Graph } from '@/graphs';
16
+ // import type { RunnableConfig } from '@langchain/core/runnables';
17
+
18
+ export type BaseGraphState = {
19
+ messages: BaseMessage[];
20
+ // [key: string]: unknown;
21
+ };
22
+
23
+ export type IState = BaseGraphState;
24
+
25
+ // export interface IState extends BaseGraphState {
26
+ // instructions?: string;
27
+ // additional_instructions?: string;
28
+ // }
29
+
30
+ export interface EventHandler {
31
+ handle(
32
+ event: string,
33
+ data: StreamEventData | ModelEndData,
34
+ metadata?: Record<string, unknown>,
35
+ graph?: Graph
36
+ ): void;
37
+ }
38
+
39
+ export type GraphStateChannels<T extends BaseGraphState> =
40
+ StateGraphArgs<T>['channels'];
41
+
42
+ export type Workflow<
43
+ T extends BaseGraphState = BaseGraphState,
44
+ U extends Partial<T> = Partial<T>,
45
+ N extends string = string,
46
+ > = StateGraph<T, U, N>;
47
+
48
+ export type CompiledWorkflow<
49
+ T extends BaseGraphState = BaseGraphState,
50
+ U extends Partial<T> = Partial<T>,
51
+ N extends string = string,
52
+ > = CompiledStateGraph<T, U, N>;
53
+
54
+ export type EventStreamCallbackHandlerInput =
55
+ Parameters<CompiledWorkflow['streamEvents']>[2] extends Omit<
56
+ infer T,
57
+ 'autoClose'
58
+ >
59
+ ? T
60
+ : never;
61
+
62
+ export type StreamChunk =
63
+ | (ChatGenerationChunk & {
64
+ message: AIMessageChunk;
65
+ })
66
+ | AIMessageChunk;
67
+
68
+ /**
69
+ * Data associated with a StreamEvent.
70
+ */
71
+ export type StreamEventData = {
72
+ /**
73
+ * The input passed to the runnable that generated the event.
74
+ * Inputs will sometimes be available at the *START* of the runnable, and
75
+ * sometimes at the *END* of the runnable.
76
+ * If a runnable is able to stream its inputs, then its input by definition
77
+ * won't be known until the *END* of the runnable when it has finished streaming
78
+ * its inputs.
79
+ */
80
+ input?: unknown;
81
+ /**
82
+ * The output of the runnable that generated the event.
83
+ * Outputs will only be available at the *END* of the runnable.
84
+ * For most runnables, this field can be inferred from the `chunk` field,
85
+ * though there might be some exceptions for special cased runnables (e.g., like
86
+ * chat models), which may return more information.
87
+ */
88
+ output?: unknown;
89
+ /**
90
+ * A streaming chunk from the output that generated the event.
91
+ * chunks support addition in general, and adding them up should result
92
+ * in the output of the runnable that generated the event.
93
+ */
94
+ chunk?: StreamChunk;
95
+ /**
96
+ * Runnable config for invoking other runnables within handlers.
97
+ */
98
+ config?: RunnableConfig;
99
+ /**
100
+ * Custom result from the runnable that generated the event.
101
+ */
102
+ result?: unknown;
103
+ };
104
+
105
+ /**
106
+ * A streaming event.
107
+ *
108
+ * Schema of a streaming event which is produced from the streamEvents method.
109
+ */
110
+ export type StreamEvent = {
111
+ /**
112
+ * Event names are of the format: on_[runnable_type]_(start|stream|end).
113
+ *
114
+ * Runnable types are one of:
115
+ * - llm - used by non chat models
116
+ * - chat_model - used by chat models
117
+ * - prompt -- e.g., ChatPromptTemplate
118
+ * - tool -- LangChain tools
119
+ * - chain - most Runnables are of this type
120
+ *
121
+ * Further, the events are categorized as one of:
122
+ * - start - when the runnable starts
123
+ * - stream - when the runnable is streaming
124
+ * - end - when the runnable ends
125
+ *
126
+ * start, stream and end are associated with slightly different `data` payload.
127
+ *
128
+ * Please see the documentation for `EventData` for more details.
129
+ */
130
+ event: string;
131
+ /** The name of the runnable that generated the event. */
132
+ name: string;
133
+ /**
134
+ * An randomly generated ID to keep track of the execution of the given runnable.
135
+ *
136
+ * Each child runnable that gets invoked as part of the execution of a parent runnable
137
+ * is assigned its own unique ID.
138
+ */
139
+ run_id: string;
140
+ /**
141
+ * Tags associated with the runnable that generated this event.
142
+ * Tags are always inherited from parent runnables.
143
+ */
144
+ tags?: string[];
145
+ /** Metadata associated with the runnable that generated this event. */
146
+ metadata: Record<string, unknown>;
147
+ /**
148
+ * Event data.
149
+ *
150
+ * The contents of the event data depend on the event type.
151
+ */
152
+ data: StreamEventData;
153
+ };
154
+
155
+ export type GraphConfig = {
156
+ provider: string;
157
+ thread_id?: string;
158
+ run_id?: string;
159
+ };
160
+
161
+ export type PartMetadata = {
162
+ progress?: number;
163
+ asset_pointer?: string;
164
+ status?: string;
165
+ action?: boolean;
166
+ output?: string;
167
+ };
168
+
169
+ export type ModelEndData =
170
+ | (StreamEventData & { output: AIMessageChunk | undefined })
171
+ | undefined;
172
+ export type GraphTools = GenericTool[] | BindToolsInput[] | GoogleAIToolType[];
173
+ export type StandardGraphInput = {
174
+ runId?: string;
175
+ toolEnd?: boolean;
176
+ toolMap?: ToolMap;
177
+ provider: Providers;
178
+ signal?: AbortSignal;
179
+ instructions?: string;
180
+ streamBuffer?: number;
181
+ clientOptions: ClientOptions;
182
+ additional_instructions?: string;
183
+ reasoningKey?: 'reasoning_content' | 'reasoning';
184
+ tools?: GraphTools;
185
+ };
@@ -0,0 +1,6 @@
1
+ // src/types/index.ts
2
+ export * from './graph';
3
+ export * from './llm';
4
+ export * from './run';
5
+ export * from './stream';
6
+ export * from './tools';
@@ -0,0 +1,140 @@
1
+ // src/types/llm.ts
2
+ import { ChatOllama } from '@langchain/ollama';
3
+ import { ChatAnthropic } from '@langchain/anthropic';
4
+ import { ChatMistralAI } from '@langchain/mistralai';
5
+ import { ChatBedrockConverse } from '@langchain/aws';
6
+ import { BedrockChat } from '@langchain/community/chat_models/bedrock/web';
7
+ import type {
8
+ BindToolsInput,
9
+ BaseChatModelParams,
10
+ } from '@langchain/core/language_models/chat_models';
11
+ import type {
12
+ OpenAIChatInput,
13
+ ChatOpenAIFields,
14
+ AzureOpenAIInput,
15
+ ClientOptions as OAIClientOptions,
16
+ } from '@langchain/openai';
17
+ import type { BedrockChatFields } from '@langchain/community/chat_models/bedrock/web';
18
+ import type { GoogleGenerativeAIChatInput } from '@langchain/google-genai';
19
+ import type { GeminiGenerationConfig } from '@langchain/google-common';
20
+ import type { ChatVertexAIInput } from '@langchain/google-vertexai';
21
+ import type { ChatDeepSeekCallOptions } from '@langchain/deepseek';
22
+ import type { ChatOpenRouterCallOptions } from '@/llm/openrouter';
23
+ import type { ChatBedrockConverseInput } from '@langchain/aws';
24
+ import type { ChatMistralAIInput } from '@langchain/mistralai';
25
+ import type { RequestOptions } from '@google/generative-ai';
26
+ import type { StructuredTool } from '@langchain/core/tools';
27
+ import type { AnthropicInput } from '@langchain/anthropic';
28
+ import type { Runnable } from '@langchain/core/runnables';
29
+ import type { ChatOllamaInput } from '@langchain/ollama';
30
+ import type { OpenAI as OpenAIClient } from 'openai';
31
+ import type { ChatXAIInput } from '@langchain/xai';
32
+ import {
33
+ AzureChatOpenAI,
34
+ ChatDeepSeek,
35
+ ChatOpenAI,
36
+ ChatXAI,
37
+ } from '@/llm/openai';
38
+ import { CustomChatGoogleGenerativeAI } from '@/llm/google';
39
+ import { ChatOpenRouter } from '@/llm/openrouter';
40
+ import { ChatVertexAI } from '@/llm/vertexai';
41
+ import { Providers } from '@/common';
42
+
43
+ export type AzureClientOptions = Partial<OpenAIChatInput> &
44
+ Partial<AzureOpenAIInput> & {
45
+ openAIApiKey?: string;
46
+ openAIApiVersion?: string;
47
+ openAIBasePath?: string;
48
+ deploymentName?: string;
49
+ } & BaseChatModelParams & {
50
+ configuration?: OAIClientOptions;
51
+ };
52
+ export type ThinkingConfig = AnthropicInput['thinking'];
53
+ export type ChatOpenAIToolType =
54
+ | BindToolsInput
55
+ | OpenAIClient.ChatCompletionTool;
56
+ export type CommonToolType = StructuredTool | ChatOpenAIToolType;
57
+ export type AnthropicReasoning = {
58
+ thinking?: ThinkingConfig | boolean;
59
+ thinkingBudget?: number;
60
+ };
61
+ export type OpenAIClientOptions = ChatOpenAIFields;
62
+ export type OllamaClientOptions = ChatOllamaInput;
63
+ export type AnthropicClientOptions = AnthropicInput;
64
+ export type MistralAIClientOptions = ChatMistralAIInput;
65
+ export type VertexAIClientOptions = ChatVertexAIInput & {
66
+ includeThoughts?: boolean;
67
+ };
68
+ export type BedrockClientOptions = BedrockChatFields;
69
+ export type BedrockAnthropicInput = ChatBedrockConverseInput & {
70
+ additionalModelRequestFields?: ChatBedrockConverseInput['additionalModelRequestFields'] &
71
+ AnthropicReasoning;
72
+ };
73
+ export type BedrockConverseClientOptions = ChatBedrockConverseInput;
74
+ export type GoogleClientOptions = GoogleGenerativeAIChatInput & {
75
+ customHeaders?: RequestOptions['customHeaders'];
76
+ thinkingConfig?: GeminiGenerationConfig['thinkingConfig'];
77
+ };
78
+ export type DeepSeekClientOptions = ChatDeepSeekCallOptions;
79
+ export type XAIClientOptions = ChatXAIInput;
80
+
81
+ export type ClientOptions =
82
+ | OpenAIClientOptions
83
+ | AzureClientOptions
84
+ | OllamaClientOptions
85
+ | AnthropicClientOptions
86
+ | MistralAIClientOptions
87
+ | VertexAIClientOptions
88
+ | BedrockClientOptions
89
+ | BedrockConverseClientOptions
90
+ | GoogleClientOptions
91
+ | DeepSeekClientOptions
92
+ | XAIClientOptions;
93
+
94
+ export type SharedLLMConfig = {
95
+ provider: Providers;
96
+ };
97
+
98
+ export type LLMConfig = SharedLLMConfig & ClientOptions;
99
+
100
+ export type ProviderOptionsMap = {
101
+ [Providers.AZURE]: AzureClientOptions;
102
+ [Providers.OPENAI]: OpenAIClientOptions;
103
+ [Providers.OLLAMA]: OllamaClientOptions;
104
+ [Providers.GOOGLE]: GoogleClientOptions;
105
+ [Providers.VERTEXAI]: VertexAIClientOptions;
106
+ [Providers.DEEPSEEK]: DeepSeekClientOptions;
107
+ [Providers.ANTHROPIC]: AnthropicClientOptions;
108
+ [Providers.MISTRALAI]: MistralAIClientOptions;
109
+ [Providers.MISTRAL]: MistralAIClientOptions;
110
+ [Providers.OPENROUTER]: ChatOpenRouterCallOptions;
111
+ [Providers.BEDROCK_LEGACY]: BedrockClientOptions;
112
+ [Providers.BEDROCK]: BedrockConverseClientOptions;
113
+ [Providers.XAI]: XAIClientOptions;
114
+ };
115
+
116
+ export type ChatModelMap = {
117
+ [Providers.XAI]: ChatXAI;
118
+ [Providers.OPENAI]: ChatOpenAI;
119
+ [Providers.OLLAMA]: ChatOllama;
120
+ [Providers.AZURE]: AzureChatOpenAI;
121
+ [Providers.DEEPSEEK]: ChatDeepSeek;
122
+ [Providers.VERTEXAI]: ChatVertexAI;
123
+ [Providers.ANTHROPIC]: ChatAnthropic;
124
+ [Providers.MISTRALAI]: ChatMistralAI;
125
+ [Providers.MISTRAL]: ChatMistralAI;
126
+ [Providers.OPENROUTER]: ChatOpenRouter;
127
+ [Providers.BEDROCK_LEGACY]: BedrockChat;
128
+ [Providers.BEDROCK]: ChatBedrockConverse;
129
+ [Providers.GOOGLE]: CustomChatGoogleGenerativeAI;
130
+ };
131
+
132
+ export type ChatModelConstructorMap = {
133
+ [P in Providers]: new (config: ProviderOptionsMap[P]) => ChatModelMap[P];
134
+ };
135
+
136
+ export type ChatModelInstance = ChatModelMap[Providers];
137
+
138
+ export type ModelWithTools = ChatModelInstance & {
139
+ bindTools(tools: CommonToolType[]): Runnable;
140
+ };
@@ -0,0 +1,89 @@
1
+ // src/types/run.ts
2
+ import type * as z from 'zod';
3
+ import type { BaseMessage } from '@langchain/core/messages';
4
+ import type { StructuredTool } from '@langchain/core/tools';
5
+ import type { RunnableConfig } from '@langchain/core/runnables';
6
+ import type {
7
+ BaseCallbackHandler,
8
+ CallbackHandlerMethods,
9
+ } from '@langchain/core/callbacks/base';
10
+ import type * as graph from '@/graphs/Graph';
11
+ import type * as s from '@/types/stream';
12
+ import type * as e from '@/common/enum';
13
+ import type * as g from '@/types/graph';
14
+ import type * as l from '@/types/llm';
15
+
16
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
17
+ export type ZodObjectAny = z.ZodObject<any, any, any, any>;
18
+ export type BaseGraphConfig = {
19
+ type?: 'standard';
20
+ llmConfig: l.LLMConfig;
21
+ provider?: e.Providers;
22
+ clientOptions?: l.ClientOptions;
23
+ };
24
+ export type StandardGraphConfig = BaseGraphConfig &
25
+ Omit<g.StandardGraphInput, 'provider' | 'clientOptions'>;
26
+
27
+ export type RunTitleOptions = {
28
+ inputText: string;
29
+ provider: e.Providers;
30
+ contentParts: (s.MessageContentComplex | undefined)[];
31
+ titlePrompt?: string;
32
+ skipLanguage?: boolean;
33
+ clientOptions?: l.ClientOptions;
34
+ chainOptions?: Partial<RunnableConfig> | undefined;
35
+ omitOptions?: Set<string>;
36
+ titleMethod?: e.TitleMethod;
37
+ titlePromptTemplate?: string;
38
+ };
39
+
40
+ export interface AgentStateChannels {
41
+ messages: BaseMessage[];
42
+ next: string;
43
+ [key: string]: unknown;
44
+ instructions?: string;
45
+ additional_instructions?: string;
46
+ }
47
+
48
+ export interface Member {
49
+ name: string;
50
+ systemPrompt: string;
51
+ tools: StructuredTool[];
52
+ llmConfig: l.LLMConfig;
53
+ }
54
+
55
+ export type CollaborativeGraphConfig = {
56
+ type: 'collaborative';
57
+ members: Member[];
58
+ supervisorConfig: { systemPrompt?: string; llmConfig: l.LLMConfig };
59
+ };
60
+
61
+ export type TaskManagerGraphConfig = {
62
+ type: 'taskmanager';
63
+ members: Member[];
64
+ supervisorConfig: { systemPrompt?: string; llmConfig: l.LLMConfig };
65
+ };
66
+
67
+ export type RunConfig = {
68
+ runId: string;
69
+ graphConfig:
70
+ | StandardGraphConfig
71
+ | CollaborativeGraphConfig
72
+ | TaskManagerGraphConfig;
73
+ customHandlers?: Record<string, g.EventHandler>;
74
+ returnContent?: boolean;
75
+ };
76
+
77
+ export type ProvidedCallbacks =
78
+ | (BaseCallbackHandler | CallbackHandlerMethods)[]
79
+ | undefined;
80
+
81
+ export type TokenCounter = (message: BaseMessage) => number;
82
+ export type EventStreamOptions = {
83
+ callbacks?: graph.ClientCallbacks;
84
+ keepContent?: boolean;
85
+ /* Context Management */
86
+ maxContextTokens?: number;
87
+ tokenCounter?: TokenCounter;
88
+ indexTokenCountMap?: Record<string, number>;
89
+ };