@compresr/sdk 1.3.2 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (347) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +237 -173
  3. package/dist/cjs/agents/engine.d.ts +121 -0
  4. package/dist/cjs/agents/engine.d.ts.map +1 -0
  5. package/dist/cjs/agents/engine.js +517 -0
  6. package/dist/cjs/agents/engine.js.map +1 -0
  7. package/dist/cjs/agents/facades/anthropic.d.ts +26 -0
  8. package/dist/cjs/agents/facades/anthropic.d.ts.map +1 -0
  9. package/dist/cjs/agents/facades/anthropic.js +46 -0
  10. package/dist/cjs/agents/facades/anthropic.js.map +1 -0
  11. package/dist/cjs/agents/facades/index.d.ts +4 -0
  12. package/dist/cjs/agents/facades/index.d.ts.map +1 -0
  13. package/dist/cjs/agents/facades/index.js +10 -0
  14. package/dist/cjs/agents/facades/index.js.map +1 -0
  15. package/dist/cjs/agents/facades/native.d.ts +29 -0
  16. package/dist/cjs/agents/facades/native.d.ts.map +1 -0
  17. package/dist/cjs/agents/facades/native.js +27 -0
  18. package/dist/cjs/agents/facades/native.js.map +1 -0
  19. package/dist/cjs/agents/facades/openai.d.ts +32 -0
  20. package/dist/cjs/agents/facades/openai.d.ts.map +1 -0
  21. package/dist/cjs/agents/facades/openai.js +55 -0
  22. package/dist/cjs/agents/facades/openai.js.map +1 -0
  23. package/dist/cjs/agents/index.d.ts +23 -0
  24. package/dist/cjs/agents/index.d.ts.map +1 -0
  25. package/dist/cjs/agents/index.js +37 -0
  26. package/dist/cjs/agents/index.js.map +1 -0
  27. package/dist/cjs/agents/normalized.d.ts +59 -0
  28. package/dist/cjs/agents/normalized.d.ts.map +1 -0
  29. package/dist/cjs/agents/normalized.js +35 -0
  30. package/dist/cjs/agents/normalized.js.map +1 -0
  31. package/dist/cjs/agents/schemas/anthropic.d.ts +46 -0
  32. package/dist/cjs/agents/schemas/anthropic.d.ts.map +1 -0
  33. package/dist/cjs/agents/schemas/anthropic.js +55 -0
  34. package/dist/cjs/agents/schemas/anthropic.js.map +1 -0
  35. package/dist/cjs/agents/schemas/index.d.ts +3 -0
  36. package/dist/cjs/agents/schemas/index.d.ts.map +1 -0
  37. package/dist/cjs/agents/schemas/index.js +8 -0
  38. package/dist/cjs/agents/schemas/index.js.map +1 -0
  39. package/dist/cjs/agents/schemas/openai.d.ts +51 -0
  40. package/dist/cjs/agents/schemas/openai.d.ts.map +1 -0
  41. package/dist/cjs/agents/schemas/openai.js +60 -0
  42. package/dist/cjs/agents/schemas/openai.js.map +1 -0
  43. package/dist/cjs/agents/tools/index.d.ts +2 -0
  44. package/dist/cjs/agents/tools/index.d.ts.map +1 -0
  45. package/dist/cjs/agents/tools/index.js +7 -0
  46. package/dist/cjs/agents/tools/index.js.map +1 -0
  47. package/dist/cjs/agents/tools/web-search.d.ts +56 -0
  48. package/dist/cjs/agents/tools/web-search.d.ts.map +1 -0
  49. package/dist/cjs/agents/tools/web-search.js +128 -0
  50. package/dist/cjs/agents/tools/web-search.js.map +1 -0
  51. package/dist/cjs/clients/compression.d.ts +39 -147
  52. package/dist/cjs/clients/compression.d.ts.map +1 -1
  53. package/dist/cjs/clients/compression.js +114 -194
  54. package/dist/cjs/clients/compression.js.map +1 -1
  55. package/dist/cjs/clients/index.d.ts +1 -1
  56. package/dist/cjs/clients/index.d.ts.map +1 -1
  57. package/dist/cjs/clients/index.js.map +1 -1
  58. package/dist/cjs/config/constants.d.ts +3 -28
  59. package/dist/cjs/config/constants.d.ts.map +1 -1
  60. package/dist/cjs/config/constants.js +4 -43
  61. package/dist/cjs/config/constants.js.map +1 -1
  62. package/dist/cjs/config/endpoints.d.ts +3 -15
  63. package/dist/cjs/config/endpoints.d.ts.map +1 -1
  64. package/dist/cjs/config/endpoints.js +3 -20
  65. package/dist/cjs/config/endpoints.js.map +1 -1
  66. package/dist/cjs/config/index.d.ts +1 -1
  67. package/dist/cjs/config/index.d.ts.map +1 -1
  68. package/dist/cjs/config/index.js +1 -7
  69. package/dist/cjs/config/index.js.map +1 -1
  70. package/dist/cjs/errors/exceptions.d.ts.map +1 -1
  71. package/dist/cjs/errors/exceptions.js +0 -6
  72. package/dist/cjs/errors/exceptions.js.map +1 -1
  73. package/dist/cjs/http/client.d.ts +5 -17
  74. package/dist/cjs/http/client.d.ts.map +1 -1
  75. package/dist/cjs/http/client.js +110 -115
  76. package/dist/cjs/http/client.js.map +1 -1
  77. package/dist/cjs/index.d.ts +7 -15
  78. package/dist/cjs/index.d.ts.map +1 -1
  79. package/dist/cjs/index.js +22 -25
  80. package/dist/cjs/index.js.map +1 -1
  81. package/dist/cjs/integrations/_shared/client.d.ts +13 -0
  82. package/dist/cjs/integrations/_shared/client.d.ts.map +1 -0
  83. package/dist/cjs/integrations/_shared/client.js +21 -0
  84. package/dist/cjs/integrations/_shared/client.js.map +1 -0
  85. package/dist/cjs/integrations/_shared/compress.d.ts +28 -0
  86. package/dist/cjs/integrations/_shared/compress.d.ts.map +1 -0
  87. package/dist/cjs/integrations/_shared/compress.js +38 -0
  88. package/dist/cjs/integrations/_shared/compress.js.map +1 -0
  89. package/dist/cjs/integrations/_shared/errors.d.ts +20 -0
  90. package/dist/cjs/integrations/_shared/errors.d.ts.map +1 -0
  91. package/dist/cjs/integrations/_shared/errors.js +49 -0
  92. package/dist/cjs/integrations/_shared/errors.js.map +1 -0
  93. package/dist/cjs/integrations/_shared/filters.d.ts +20 -0
  94. package/dist/cjs/integrations/_shared/filters.d.ts.map +1 -0
  95. package/dist/cjs/integrations/_shared/filters.js +33 -0
  96. package/dist/cjs/integrations/_shared/filters.js.map +1 -0
  97. package/dist/cjs/integrations/_shared/index.d.ts +7 -0
  98. package/dist/cjs/integrations/_shared/index.d.ts.map +1 -0
  99. package/dist/cjs/integrations/_shared/index.js +26 -0
  100. package/dist/cjs/integrations/_shared/index.js.map +1 -0
  101. package/dist/cjs/integrations/_shared/query.d.ts +48 -0
  102. package/dist/cjs/integrations/_shared/query.d.ts.map +1 -0
  103. package/dist/cjs/integrations/_shared/query.js +141 -0
  104. package/dist/cjs/integrations/_shared/query.js.map +1 -0
  105. package/dist/cjs/integrations/_shared/tokens.d.ts +20 -0
  106. package/dist/cjs/integrations/_shared/tokens.d.ts.map +1 -0
  107. package/dist/cjs/integrations/_shared/tokens.js +26 -0
  108. package/dist/cjs/integrations/_shared/tokens.js.map +1 -0
  109. package/dist/cjs/integrations/langchain/index.d.ts +10 -0
  110. package/dist/cjs/integrations/langchain/index.d.ts.map +1 -0
  111. package/dist/cjs/integrations/langchain/index.js +18 -0
  112. package/dist/cjs/integrations/langchain/index.js.map +1 -0
  113. package/dist/cjs/integrations/langchain/middleware.d.ts +94 -0
  114. package/dist/cjs/integrations/langchain/middleware.d.ts.map +1 -0
  115. package/dist/cjs/integrations/langchain/middleware.js +273 -0
  116. package/dist/cjs/integrations/langchain/middleware.js.map +1 -0
  117. package/dist/cjs/integrations/langchain/retriever.d.ts +54 -0
  118. package/dist/cjs/integrations/langchain/retriever.d.ts.map +1 -0
  119. package/dist/cjs/integrations/langchain/retriever.js +118 -0
  120. package/dist/cjs/integrations/langchain/retriever.js.map +1 -0
  121. package/dist/cjs/integrations/langchain/wrappers.d.ts +39 -0
  122. package/dist/cjs/integrations/langchain/wrappers.d.ts.map +1 -0
  123. package/dist/cjs/integrations/langchain/wrappers.js +88 -0
  124. package/dist/cjs/integrations/langchain/wrappers.js.map +1 -0
  125. package/dist/cjs/integrations/langgraph/checkpoint.d.ts +49 -0
  126. package/dist/cjs/integrations/langgraph/checkpoint.d.ts.map +1 -0
  127. package/dist/cjs/integrations/langgraph/checkpoint.js +79 -0
  128. package/dist/cjs/integrations/langgraph/checkpoint.js.map +1 -0
  129. package/dist/cjs/integrations/langgraph/handoff.d.ts +44 -0
  130. package/dist/cjs/integrations/langgraph/handoff.d.ts.map +1 -0
  131. package/dist/cjs/integrations/langgraph/handoff.js +86 -0
  132. package/dist/cjs/integrations/langgraph/handoff.js.map +1 -0
  133. package/dist/cjs/integrations/langgraph/index.d.ts +18 -0
  134. package/dist/cjs/integrations/langgraph/index.d.ts.map +1 -0
  135. package/dist/cjs/integrations/langgraph/index.js +28 -0
  136. package/dist/cjs/integrations/langgraph/index.js.map +1 -0
  137. package/dist/cjs/integrations/langgraph/nodes.d.ts +34 -0
  138. package/dist/cjs/integrations/langgraph/nodes.d.ts.map +1 -0
  139. package/dist/cjs/integrations/langgraph/nodes.js +54 -0
  140. package/dist/cjs/integrations/langgraph/nodes.js.map +1 -0
  141. package/dist/cjs/integrations/langgraph/store.d.ts +76 -0
  142. package/dist/cjs/integrations/langgraph/store.d.ts.map +1 -0
  143. package/dist/cjs/integrations/langgraph/store.js +121 -0
  144. package/dist/cjs/integrations/langgraph/store.js.map +1 -0
  145. package/dist/cjs/integrations/llamaindex/index.d.ts +10 -0
  146. package/dist/cjs/integrations/llamaindex/index.d.ts.map +1 -0
  147. package/dist/cjs/integrations/llamaindex/index.js +15 -0
  148. package/dist/cjs/integrations/llamaindex/index.js.map +1 -0
  149. package/dist/cjs/integrations/llamaindex/memory.d.ts +74 -0
  150. package/dist/cjs/integrations/llamaindex/memory.d.ts.map +1 -0
  151. package/dist/cjs/integrations/llamaindex/memory.js +95 -0
  152. package/dist/cjs/integrations/llamaindex/memory.js.map +1 -0
  153. package/dist/cjs/integrations/llamaindex/postprocessor.d.ts +66 -0
  154. package/dist/cjs/integrations/llamaindex/postprocessor.d.ts.map +1 -0
  155. package/dist/cjs/integrations/llamaindex/postprocessor.js +172 -0
  156. package/dist/cjs/integrations/llamaindex/postprocessor.js.map +1 -0
  157. package/dist/cjs/integrations/llamaindex/wrappers.d.ts +38 -0
  158. package/dist/cjs/integrations/llamaindex/wrappers.d.ts.map +1 -0
  159. package/dist/cjs/integrations/llamaindex/wrappers.js +46 -0
  160. package/dist/cjs/integrations/llamaindex/wrappers.js.map +1 -0
  161. package/dist/cjs/logger.d.ts +18 -0
  162. package/dist/cjs/logger.d.ts.map +1 -0
  163. package/dist/cjs/logger.js +41 -0
  164. package/dist/cjs/logger.js.map +1 -0
  165. package/dist/cjs/schemas/compression.d.ts +10 -80
  166. package/dist/cjs/schemas/compression.d.ts.map +1 -1
  167. package/dist/cjs/schemas/compression.js +4 -57
  168. package/dist/cjs/schemas/compression.js.map +1 -1
  169. package/dist/cjs/schemas/index.d.ts +1 -4
  170. package/dist/cjs/schemas/index.d.ts.map +1 -1
  171. package/dist/cjs/schemas/index.js +1 -8
  172. package/dist/cjs/schemas/index.js.map +1 -1
  173. package/dist/cjs/version.d.ts +1 -1
  174. package/dist/cjs/version.js +1 -1
  175. package/dist/esm/agents/engine.d.ts +121 -0
  176. package/dist/esm/agents/engine.d.ts.map +1 -0
  177. package/dist/esm/agents/engine.js +478 -0
  178. package/dist/esm/agents/engine.js.map +1 -0
  179. package/dist/esm/agents/facades/anthropic.d.ts +26 -0
  180. package/dist/esm/agents/facades/anthropic.d.ts.map +1 -0
  181. package/dist/esm/agents/facades/anthropic.js +43 -0
  182. package/dist/esm/agents/facades/anthropic.js.map +1 -0
  183. package/dist/esm/agents/facades/index.d.ts +4 -0
  184. package/dist/esm/agents/facades/index.d.ts.map +1 -0
  185. package/dist/esm/agents/facades/index.js +4 -0
  186. package/dist/esm/agents/facades/index.js.map +1 -0
  187. package/dist/esm/agents/facades/native.d.ts +29 -0
  188. package/dist/esm/agents/facades/native.d.ts.map +1 -0
  189. package/dist/esm/agents/facades/native.js +24 -0
  190. package/dist/esm/agents/facades/native.js.map +1 -0
  191. package/dist/esm/agents/facades/openai.d.ts +32 -0
  192. package/dist/esm/agents/facades/openai.d.ts.map +1 -0
  193. package/dist/esm/agents/facades/openai.js +52 -0
  194. package/dist/esm/agents/facades/openai.js.map +1 -0
  195. package/dist/esm/agents/index.d.ts +23 -0
  196. package/dist/esm/agents/index.d.ts.map +1 -0
  197. package/dist/esm/agents/index.js +23 -0
  198. package/dist/esm/agents/index.js.map +1 -0
  199. package/dist/esm/agents/normalized.d.ts +59 -0
  200. package/dist/esm/agents/normalized.d.ts.map +1 -0
  201. package/dist/esm/agents/normalized.js +31 -0
  202. package/dist/esm/agents/normalized.js.map +1 -0
  203. package/dist/esm/agents/schemas/anthropic.d.ts +46 -0
  204. package/dist/esm/agents/schemas/anthropic.d.ts.map +1 -0
  205. package/dist/esm/agents/schemas/anthropic.js +52 -0
  206. package/dist/esm/agents/schemas/anthropic.js.map +1 -0
  207. package/dist/esm/agents/schemas/index.d.ts +3 -0
  208. package/dist/esm/agents/schemas/index.d.ts.map +1 -0
  209. package/dist/esm/agents/schemas/index.js +3 -0
  210. package/dist/esm/agents/schemas/index.js.map +1 -0
  211. package/dist/esm/agents/schemas/openai.d.ts +51 -0
  212. package/dist/esm/agents/schemas/openai.d.ts.map +1 -0
  213. package/dist/esm/agents/schemas/openai.js +57 -0
  214. package/dist/esm/agents/schemas/openai.js.map +1 -0
  215. package/dist/esm/agents/tools/index.d.ts +2 -0
  216. package/dist/esm/agents/tools/index.d.ts.map +1 -0
  217. package/dist/esm/agents/tools/index.js +2 -0
  218. package/dist/esm/agents/tools/index.js.map +1 -0
  219. package/dist/esm/agents/tools/web-search.d.ts +56 -0
  220. package/dist/esm/agents/tools/web-search.d.ts.map +1 -0
  221. package/dist/esm/agents/tools/web-search.js +91 -0
  222. package/dist/esm/agents/tools/web-search.js.map +1 -0
  223. package/dist/esm/clients/compression.d.ts +39 -147
  224. package/dist/esm/clients/compression.d.ts.map +1 -1
  225. package/dist/esm/clients/compression.js +117 -197
  226. package/dist/esm/clients/compression.js.map +1 -1
  227. package/dist/esm/clients/index.d.ts +1 -1
  228. package/dist/esm/clients/index.d.ts.map +1 -1
  229. package/dist/esm/clients/index.js.map +1 -1
  230. package/dist/esm/config/constants.d.ts +3 -28
  231. package/dist/esm/config/constants.d.ts.map +1 -1
  232. package/dist/esm/config/constants.js +3 -42
  233. package/dist/esm/config/constants.js.map +1 -1
  234. package/dist/esm/config/endpoints.d.ts +3 -15
  235. package/dist/esm/config/endpoints.d.ts.map +1 -1
  236. package/dist/esm/config/endpoints.js +3 -20
  237. package/dist/esm/config/endpoints.js.map +1 -1
  238. package/dist/esm/config/index.d.ts +1 -1
  239. package/dist/esm/config/index.d.ts.map +1 -1
  240. package/dist/esm/config/index.js +1 -1
  241. package/dist/esm/config/index.js.map +1 -1
  242. package/dist/esm/errors/exceptions.d.ts.map +1 -1
  243. package/dist/esm/errors/exceptions.js +0 -6
  244. package/dist/esm/errors/exceptions.js.map +1 -1
  245. package/dist/esm/http/client.d.ts +5 -17
  246. package/dist/esm/http/client.d.ts.map +1 -1
  247. package/dist/esm/http/client.js +110 -115
  248. package/dist/esm/http/client.js.map +1 -1
  249. package/dist/esm/index.d.ts +7 -15
  250. package/dist/esm/index.d.ts.map +1 -1
  251. package/dist/esm/index.js +7 -13
  252. package/dist/esm/index.js.map +1 -1
  253. package/dist/esm/integrations/_shared/client.d.ts +13 -0
  254. package/dist/esm/integrations/_shared/client.d.ts.map +1 -0
  255. package/dist/esm/integrations/_shared/client.js +17 -0
  256. package/dist/esm/integrations/_shared/client.js.map +1 -0
  257. package/dist/esm/integrations/_shared/compress.d.ts +28 -0
  258. package/dist/esm/integrations/_shared/compress.d.ts.map +1 -0
  259. package/dist/esm/integrations/_shared/compress.js +35 -0
  260. package/dist/esm/integrations/_shared/compress.js.map +1 -0
  261. package/dist/esm/integrations/_shared/errors.d.ts +20 -0
  262. package/dist/esm/integrations/_shared/errors.d.ts.map +1 -0
  263. package/dist/esm/integrations/_shared/errors.js +44 -0
  264. package/dist/esm/integrations/_shared/errors.js.map +1 -0
  265. package/dist/esm/integrations/_shared/filters.d.ts +20 -0
  266. package/dist/esm/integrations/_shared/filters.d.ts.map +1 -0
  267. package/dist/esm/integrations/_shared/filters.js +30 -0
  268. package/dist/esm/integrations/_shared/filters.js.map +1 -0
  269. package/dist/esm/integrations/_shared/index.d.ts +7 -0
  270. package/dist/esm/integrations/_shared/index.d.ts.map +1 -0
  271. package/dist/esm/integrations/_shared/index.js +7 -0
  272. package/dist/esm/integrations/_shared/index.js.map +1 -0
  273. package/dist/esm/integrations/_shared/query.d.ts +48 -0
  274. package/dist/esm/integrations/_shared/query.d.ts.map +1 -0
  275. package/dist/esm/integrations/_shared/query.js +135 -0
  276. package/dist/esm/integrations/_shared/query.js.map +1 -0
  277. package/dist/esm/integrations/_shared/tokens.d.ts +20 -0
  278. package/dist/esm/integrations/_shared/tokens.d.ts.map +1 -0
  279. package/dist/esm/integrations/_shared/tokens.js +23 -0
  280. package/dist/esm/integrations/_shared/tokens.js.map +1 -0
  281. package/dist/esm/integrations/langchain/index.d.ts +10 -0
  282. package/dist/esm/integrations/langchain/index.d.ts.map +1 -0
  283. package/dist/esm/integrations/langchain/index.js +9 -0
  284. package/dist/esm/integrations/langchain/index.js.map +1 -0
  285. package/dist/esm/integrations/langchain/middleware.d.ts +94 -0
  286. package/dist/esm/integrations/langchain/middleware.d.ts.map +1 -0
  287. package/dist/esm/integrations/langchain/middleware.js +268 -0
  288. package/dist/esm/integrations/langchain/middleware.js.map +1 -0
  289. package/dist/esm/integrations/langchain/retriever.d.ts +54 -0
  290. package/dist/esm/integrations/langchain/retriever.d.ts.map +1 -0
  291. package/dist/esm/integrations/langchain/retriever.js +114 -0
  292. package/dist/esm/integrations/langchain/retriever.js.map +1 -0
  293. package/dist/esm/integrations/langchain/wrappers.d.ts +39 -0
  294. package/dist/esm/integrations/langchain/wrappers.d.ts.map +1 -0
  295. package/dist/esm/integrations/langchain/wrappers.js +84 -0
  296. package/dist/esm/integrations/langchain/wrappers.js.map +1 -0
  297. package/dist/esm/integrations/langgraph/checkpoint.d.ts +49 -0
  298. package/dist/esm/integrations/langgraph/checkpoint.d.ts.map +1 -0
  299. package/dist/esm/integrations/langgraph/checkpoint.js +75 -0
  300. package/dist/esm/integrations/langgraph/checkpoint.js.map +1 -0
  301. package/dist/esm/integrations/langgraph/handoff.d.ts +44 -0
  302. package/dist/esm/integrations/langgraph/handoff.d.ts.map +1 -0
  303. package/dist/esm/integrations/langgraph/handoff.js +83 -0
  304. package/dist/esm/integrations/langgraph/handoff.js.map +1 -0
  305. package/dist/esm/integrations/langgraph/index.d.ts +18 -0
  306. package/dist/esm/integrations/langgraph/index.d.ts.map +1 -0
  307. package/dist/esm/integrations/langgraph/index.js +17 -0
  308. package/dist/esm/integrations/langgraph/index.js.map +1 -0
  309. package/dist/esm/integrations/langgraph/nodes.d.ts +34 -0
  310. package/dist/esm/integrations/langgraph/nodes.d.ts.map +1 -0
  311. package/dist/esm/integrations/langgraph/nodes.js +51 -0
  312. package/dist/esm/integrations/langgraph/nodes.js.map +1 -0
  313. package/dist/esm/integrations/langgraph/store.d.ts +76 -0
  314. package/dist/esm/integrations/langgraph/store.d.ts.map +1 -0
  315. package/dist/esm/integrations/langgraph/store.js +117 -0
  316. package/dist/esm/integrations/langgraph/store.js.map +1 -0
  317. package/dist/esm/integrations/llamaindex/index.d.ts +10 -0
  318. package/dist/esm/integrations/llamaindex/index.d.ts.map +1 -0
  319. package/dist/esm/integrations/llamaindex/index.js +9 -0
  320. package/dist/esm/integrations/llamaindex/index.js.map +1 -0
  321. package/dist/esm/integrations/llamaindex/memory.d.ts +74 -0
  322. package/dist/esm/integrations/llamaindex/memory.d.ts.map +1 -0
  323. package/dist/esm/integrations/llamaindex/memory.js +91 -0
  324. package/dist/esm/integrations/llamaindex/memory.js.map +1 -0
  325. package/dist/esm/integrations/llamaindex/postprocessor.d.ts +66 -0
  326. package/dist/esm/integrations/llamaindex/postprocessor.d.ts.map +1 -0
  327. package/dist/esm/integrations/llamaindex/postprocessor.js +168 -0
  328. package/dist/esm/integrations/llamaindex/postprocessor.js.map +1 -0
  329. package/dist/esm/integrations/llamaindex/wrappers.d.ts +38 -0
  330. package/dist/esm/integrations/llamaindex/wrappers.d.ts.map +1 -0
  331. package/dist/esm/integrations/llamaindex/wrappers.js +43 -0
  332. package/dist/esm/integrations/llamaindex/wrappers.js.map +1 -0
  333. package/dist/esm/logger.d.ts +18 -0
  334. package/dist/esm/logger.d.ts.map +1 -0
  335. package/dist/esm/logger.js +37 -0
  336. package/dist/esm/logger.js.map +1 -0
  337. package/dist/esm/schemas/compression.d.ts +10 -80
  338. package/dist/esm/schemas/compression.d.ts.map +1 -1
  339. package/dist/esm/schemas/compression.js +3 -56
  340. package/dist/esm/schemas/compression.js.map +1 -1
  341. package/dist/esm/schemas/index.d.ts +1 -4
  342. package/dist/esm/schemas/index.d.ts.map +1 -1
  343. package/dist/esm/schemas/index.js +1 -6
  344. package/dist/esm/schemas/index.js.map +1 -1
  345. package/dist/esm/version.d.ts +1 -1
  346. package/dist/esm/version.js +1 -1
  347. package/package.json +89 -4
package/README.md CHANGED
@@ -1,263 +1,327 @@
1
1
  # Compresr TypeScript SDK
2
2
 
3
- [![npm](https://img.shields.io/npm/v/compresr)](https://www.npmjs.com/package/compresr)
4
- [![TypeScript](https://img.shields.io/badge/TypeScript-%3E%3D5.0-blue)](https://www.typescriptlang.org/)
5
- [![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)
3
+ Query-aware LLM context compression — reduce LLM API costs by 30-70%.
6
4
 
7
- Official TypeScript SDK for [Compresr](https://compresr.ai) - Intelligent context compression to reduce LLM API costs by 30-70%.
8
-
9
- ## Installation
5
+ ## Install
10
6
 
11
7
  ```bash
12
- npm install compresr
13
- # or
14
- yarn add compresr
15
- # or
16
- pnpm add compresr
8
+ npm install @compresr/sdk
17
9
  ```
18
10
 
19
- ## Quick Start
20
-
21
- ### API Key Setup
22
-
23
- Get your API key from [compresr.ai](https://compresr.ai):
11
+ Get an API key at [compresr.ai](https://compresr.ai).
24
12
 
25
- 1. Create an account at [compresr.ai](https://compresr.ai)
26
- 2. Navigate to Dashboard → API Keys
27
- 3. Click "Create New Key" and copy it (shown only once!)
28
-
29
- ### Basic Usage
13
+ ## Quick start
30
14
 
31
15
  ```typescript
32
- import { CompressionClient } from 'compresr';
16
+ import { CompressionClient } from '@compresr/sdk';
33
17
 
34
- const client = new CompressionClient({ apiKey: 'cmp_your_api_key' });
18
+ const client = new CompressionClient({ apiKey: 'cmp_...' });
35
19
 
36
- // Agnostic compression (espresso_v1) — no query needed
37
20
  const result = await client.compress({
38
- context: 'Your very long context that needs compression...',
21
+ context: 'Long passage to compress...',
22
+ query: 'What is the main conclusion?',
23
+ targetCompressionRatio: 0.5,
39
24
  });
40
25
 
41
- console.log(`Original: ${result.data.original_tokens} tokens`);
42
- console.log(`Compressed: ${result.data.compressed_tokens} tokens`);
43
- console.log(`Saved: ${result.data.tokens_saved} tokens`);
26
+ console.log(`Saved ${result.data?.tokens_saved} tokens`);
27
+ console.log(result.data?.compressed_context);
44
28
  ```
45
29
 
46
- ### Query-Specific Compression
30
+ The default model is `latte_v1` (query-aware). Pass any other model name your
31
+ account has access to via `compressionModelName: '...'` — the backend
32
+ validates.
33
+
34
+ ## Batch
47
35
 
48
36
  ```typescript
49
- // Query-specific compression (latte_v1) — query REQUIRED
50
- const result = await client.compress({
51
- context: 'Python was created in 1991. JavaScript in 1995. Java in 1995.',
52
- query: 'Who created Python?',
53
- compressionModelName: 'latte_v1',
37
+ const batch = await client.compressBatch({
38
+ contexts: ['Doc 1...', 'Doc 2...', 'Doc 3...'],
39
+ queries: 'What is self-attention?',
40
+ targetCompressionRatio: 0.5,
54
41
  });
55
42
 
56
- console.log(result.data.compressed_context);
57
- // Output preserves Python-relevant content
43
+ console.log(`Total saved: ${batch.data?.total_tokens_saved} tokens`);
44
+ ```
45
+
46
+ ## Streaming
47
+
48
+ ```typescript
49
+ for await (const chunk of client.compressStream({
50
+ context: '...',
51
+ query: '...',
52
+ })) {
53
+ process.stdout.write(chunk.content);
54
+ }
58
55
  ```
59
56
 
60
- ## Compression Models
57
+ ## Compression options
58
+
59
+ | Param | Purpose |
60
+ |---|---|
61
+ | `query` | Question the LLM is trying to answer — drives `latte_v1` compression |
62
+ | `targetCompressionRatio` | `0-1` strength or `>1` for Nx factor (max 200) |
63
+ | `coarse` | `true` = paragraph-level (default, faster); `false` = token-level (fine-grained) |
64
+ | `heuristicChunking` | Structure-preserving chunking |
65
+ | `disablePlaceholders` | Disable placeholder tokens in output |
66
+
67
+ ## Error handling
68
+
69
+ ```typescript
70
+ import {
71
+ AuthenticationError,
72
+ RateLimitError,
73
+ ValidationError,
74
+ CompresrError,
75
+ } from '@compresr/sdk';
76
+
77
+ try {
78
+ await client.compress({ context, query });
79
+ } catch (err) {
80
+ if (err instanceof AuthenticationError) console.error('Invalid API key');
81
+ else if (err instanceof RateLimitError) console.error('Rate limited');
82
+ else if (err instanceof ValidationError) console.error('Bad request:', err);
83
+ else if (err instanceof CompresrError) console.error('API error:', err);
84
+ }
85
+ ```
61
86
 
62
- | Model | Query | Description |
63
- |-------|-------|-------------|
64
- | `espresso_v1` | Not needed | Agnostic compression — good for system prompts, documents |
65
- | `latte_v1` | **Required** | Query-specific — preserves tokens relevant to your question |
87
+ ## Drop-in agent client
66
88
 
67
- ## API Reference
89
+ `@compresr/sdk/agents` ships a tiny provider-shape facade layer on top of
90
+ LangChain.js. One `CompressionClient` exposes three call surfaces — Anthropic
91
+ `messages.create`, OpenAI `chat.completions.create`, and a native `run` — all
92
+ backed by the same engine (`createAgent` + `CompresrToolMiddleware`). Every
93
+ tool output above `minTokens` is auto-compressed before it re-enters the
94
+ model's context.
68
95
 
69
- ### `CompressionClient`
96
+ - Pass `temperature`, `topP`, `maxTokens`, `stopSequences`, `presencePenalty`,
97
+ `frequencyPenalty`, `seed`, etc. to any facade — they're forwarded to the
98
+ underlying chat model per call via `.bind(...)` (no cache pollution).
70
99
 
71
100
  ```typescript
72
- import { CompressionClient } from 'compresr';
101
+ import { CompressionClient } from '@compresr/sdk';
102
+ import { WebSearchTool } from '@compresr/sdk/agents';
73
103
 
74
104
  const client = new CompressionClient({
75
- apiKey: 'cmp_your_api_key', // Required
76
- timeout: 60000, // Optional: request timeout in ms (default: 60000)
77
- baseUrl: 'https://api.compresr.ai', // Optional: override API URL
105
+ apiKey: process.env.COMPRESR_API_KEY!,
106
+ llm: 'anthropic', // bare provider model lives at the call site
107
+ llmApiKey: process.env.ANTHROPIC_API_KEY!,
108
+ compression: { targetCompressionRatio: 0.5, minTokens: 300 },
78
109
  });
79
110
  ```
80
111
 
81
- ### Methods
82
-
83
- #### `compress(options): Promise<CompressResponse>`
112
+ Use `llm: 'anthropic:claude-haiku-4-5'` if you want a default — but the call-site `model:` always wins.
84
113
 
85
- Compress context text.
114
+ ### Anthropic shape
86
115
 
87
116
  ```typescript
88
- const result = await client.compress({
89
- context: 'Your context...', // Required: string or string[]
90
- compressionModelName: 'espresso_v1', // Optional (default: 'espresso_v1')
91
- query: 'Your question?', // Required for latte_v1
92
- targetCompressionRatio: 0.5, // Optional: 0-1 or >1 for Nx
93
- coarse: false, // Optional: paragraph-level (latte_v1 only)
117
+ const msg = await client.messages.create({
118
+ model: 'claude-haiku-4-5',
119
+ maxTokens: 512,
120
+ messages: [{ role: 'user', content: "What's the latest AI news?" }],
121
+ tools: [search],
94
122
  });
95
123
  ```
96
124
 
97
- #### `compressStream(options): AsyncGenerator<StreamChunk>`
125
+ ### OpenAI shape
126
+
127
+ ```typescript
128
+ const completion = await client.chat.completions.create({
129
+ model: 'gpt-4o-mini',
130
+ messages: [{ role: 'user', content: "Summarize today's top story." }],
131
+ tools: [search],
132
+ });
133
+ ```
98
134
 
99
- Stream compression chunks in real-time.
135
+ ### Native shape
100
136
 
101
137
  ```typescript
102
- for await (const chunk of client.compressStream({
103
- context: 'Your context...',
104
- })) {
105
- if (!chunk.done) {
106
- process.stdout.write(chunk.content);
107
- }
108
- }
138
+ const result = await client.run({ prompt: 'Hello', tools: [search], maxTokens: 512 });
139
+ console.log(result.text, result.citations, result.compresrStats);
109
140
  ```
110
141
 
111
- #### `compressBatch(options): Promise<CompressBatchResponse>`
142
+ ### Tools
112
143
 
113
- Batch compress multiple contexts (more efficient than multiple `compress()` calls).
144
+ `WebSearchTool` returns a LangChain.js `BaseTool` usable across all three
145
+ facades.
114
146
 
115
147
  ```typescript
116
- // Same query for all contexts
117
- const result = await client.compressBatch({
118
- contexts: ['Doc 1...', 'Doc 2...', 'Doc 3...'],
119
- queries: 'What are the key points?',
120
- compressionModelName: 'latte_v1', // Optional (default for batch)
121
- });
148
+ import { WebSearchTool } from '@compresr/sdk/agents';
122
149
 
123
- // Different query per context
124
- const result = await client.compressBatch({
125
- contexts: ['ML doc...', 'NLP doc...'],
126
- queries: ['What is ML?', 'What is NLP?'],
150
+ const tavily = await WebSearchTool.tavily({
151
+ apiKey: process.env.TAVILY_API_KEY!,
152
+ maxResults: 5,
153
+ allowedDomains: ['arxiv.org'],
127
154
  });
128
155
 
129
- console.log(`Total saved: ${result.data.total_tokens_saved} tokens`);
156
+ const brave = await WebSearchTool.brave({
157
+ apiKey: process.env.BRAVE_API_KEY!,
158
+ maxResults: 5,
159
+ });
130
160
  ```
131
161
 
132
- ## Response Types
162
+ `WebSearchTool` is also re-exported from `@compresr/sdk` for convenience, but
163
+ `@compresr/sdk/agents` is the recommended import path — heavy LangChain peers
164
+ stay dynamic, so the subpath only pulls them in when you touch the surface.
165
+
166
+ ### Custom tools
133
167
 
134
- ### CompressResponse
168
+ Any LangChain.js tool works. Use the standard `tool({...})` decorator and
169
+ Compresr compresses its output the same way:
135
170
 
136
171
  ```typescript
137
- interface CompressResponse {
138
- success: boolean;
139
- data: {
140
- original_context: string | string[];
141
- compressed_context: string | string[];
142
- original_tokens: number;
143
- compressed_tokens: number;
144
- actual_compression_ratio: number;
145
- tokens_saved: number;
146
- duration_ms: number;
147
- } | null;
148
- }
172
+ import { tool } from '@langchain/core/tools';
173
+ import { z } from 'zod';
174
+
175
+ const fetchDocs = tool(
176
+ async ({ query }) => fetchInternalDocs(query),
177
+ {
178
+ name: 'fetch_docs',
179
+ description: 'Search the internal docs corpus',
180
+ schema: z.object({ query: z.string() }),
181
+ },
182
+ );
183
+
184
+ await client.run({ prompt: 'How does billing work?', tools: [fetchDocs] });
149
185
  ```
150
186
 
151
- ### CompressBatchResponse
187
+ ### Provider switching
188
+
189
+ Swap providers by changing one line — the facades stay the same:
152
190
 
153
191
  ```typescript
154
- interface CompressBatchResponse {
155
- success: boolean;
156
- data: {
157
- results: CompressBatchItemResult[];
158
- total_original_tokens: number;
159
- total_compressed_tokens: number;
160
- total_tokens_saved: number;
161
- average_compression_ratio: number;
162
- count: number;
163
- } | null;
164
- }
192
+ new CompressionClient({ apiKey, llm: 'anthropic:claude-haiku-4-5', llmApiKey });
193
+ new CompressionClient({ apiKey, llm: 'openai:gpt-4o-mini', llmApiKey });
194
+ new CompressionClient({ apiKey, llm: 'google_genai:gemini-2.5-flash', llmApiKey });
165
195
  ```
166
196
 
167
- ## Integration with OpenAI
197
+ Streaming (`messages.stream`, `chat.completions.stream`) is a Phase-2 item
198
+ and currently throws `CompresrError('streaming not yet implemented')`.
168
199
 
169
- ```typescript
170
- import { CompressionClient } from 'compresr';
171
- import OpenAI from 'openai';
200
+ ### Why no provider-native server search?
172
201
 
173
- const compresr = new CompressionClient({ apiKey: 'cmp_xxx' });
174
- const openai = new OpenAI({ apiKey: 'sk-xxx' });
202
+ Anthropic `web_search_20250305`, OpenAI `web_search_preview`, and Gemini
203
+ `google_search` execute server-side and return encrypted or opaque content
204
+ that Compresr can't read — so it can't compress them either. Use
205
+ `WebSearchTool.tavily` / `WebSearchTool.brave` if you want compressible
206
+ search output in the agent loop.
175
207
 
176
- // Compress your context first
177
- const compressed = await compresr.compress({
178
- context: 'Your very long system prompt or document...',
179
- });
208
+ ## Framework integrations
209
+
210
+ Optional peer dependencies install only what you use:
211
+
212
+ ```bash
213
+ npm install langchain @langchain/core # engine for the agents layer
214
+ npm install @langchain/anthropic # for anthropic:... models
215
+ npm install @langchain/openai # for openai:... models
216
+ npm install @langchain/google-genai # for google_genai:... models
217
+ npm install @langchain/tavily # for WebSearchTool.tavily
218
+ npm install @langchain/community # for WebSearchTool.brave
219
+ npm install @langchain/langgraph # for LangGraph integration
220
+ npm install llamaindex # for LlamaIndex integration
221
+ ```
222
+
223
+ ### LangChain — middleware, tool wrapper, retriever
180
224
 
181
- // Use compressed context with OpenAI
182
- const response = await openai.chat.completions.create({
183
- model: 'gpt-4o',
184
- messages: [
185
- { role: 'system', content: compressed.data.compressed_context },
186
- { role: 'user', content: 'Analyze this data...' },
225
+ ```typescript
226
+ import { createAgent } from 'langchain';
227
+ import {
228
+ compresrToolMiddleware,
229
+ wrapToolWithCompression,
230
+ CompresrExtractor,
231
+ } from '@compresr/sdk/integrations/langchain';
232
+
233
+ const agent = createAgent({
234
+ model,
235
+ tools: [webSearch],
236
+ middleware: [
237
+ compresrToolMiddleware({
238
+ apiKey: process.env.COMPRESR_API_KEY!,
239
+ queryArg: 'query',
240
+ }),
187
241
  ],
188
242
  });
243
+ ```
189
244
 
190
- console.log(`Saved ${compressed.data.tokens_saved} tokens!`);
245
+ ### LangGraph — compression as a graph node
246
+
247
+ ```typescript
248
+ import { makeCompresrNode } from '@compresr/sdk/integrations/langgraph';
249
+
250
+ graph.addNode(
251
+ 'compress',
252
+ makeCompresrNode<State>({
253
+ apiKey: process.env.COMPRESR_API_KEY!,
254
+ contextKey: 'retrieved_text',
255
+ queryKey: 'user_question',
256
+ })
257
+ );
191
258
  ```
192
259
 
193
- ## Error Handling
260
+ ### LlamaIndex — node postprocessor for RAG
194
261
 
195
262
  ```typescript
196
- import {
197
- CompressionClient,
198
- CompresrError,
199
- AuthenticationError,
200
- ValidationError,
201
- RateLimitError,
202
- } from 'compresr';
263
+ import { CompresrNodePostprocessor } from '@compresr/sdk/integrations/llamaindex';
203
264
 
204
- try {
205
- const result = await client.compress({ context: 'Hello' });
206
- } catch (error) {
207
- if (error instanceof AuthenticationError) {
208
- console.error('Invalid API key:', error.message);
209
- } else if (error instanceof ValidationError) {
210
- console.error('Invalid request:', error.message, 'Field:', error.field);
211
- } else if (error instanceof RateLimitError) {
212
- console.error('Rate limited. Retry after:', error.retryAfter, 'seconds');
213
- } else if (error instanceof CompresrError) {
214
- console.error('API error:', error.message, 'Code:', error.code);
215
- }
216
- }
265
+ const queryEngine = index.asQueryEngine({
266
+ nodePostprocessors: [
267
+ new CompresrNodePostprocessor({
268
+ apiKey: process.env.COMPRESR_API_KEY!,
269
+ }),
270
+ ],
271
+ });
217
272
  ```
218
273
 
219
- ### Error Types
274
+ ### Unified query API
275
+
276
+ Every integration that accepts a query exposes the same three knobs:
277
+
278
+ | Param | Purpose |
279
+ |---|---|
280
+ | `query` | Static query — same for every call |
281
+ | `queryExtractor` | Callable that derives the query from the call context |
282
+ | `queryArg` / `queryKey` | Name of the tool arg / state key to use as the query |
283
+
284
+ Priority: `query` > `queryExtractor` > `queryArg`/`queryKey` > smart-pick
285
+ from common arg keys (`query`, `question`, `search_query`, ...) > last user
286
+ message in history.
287
+
288
+ ### Tutorials
289
+
290
+ Runnable end-to-end examples under `tutorial/`:
291
+
292
+ - `01-quickstart.ts` — core `CompressionClient`.
293
+ - `02-langchain.ts` — middleware + tool wrapper + retriever.
294
+ - `03-langgraph.ts` — compression node in a 3-node graph.
295
+ - `04-llamaindex.ts` — node postprocessor + tool wrapper.
296
+ - `05-agents.md` — drop-in agent client (Anthropic / OpenAI / native facades).
220
297
 
221
- | Error | Description |
222
- |-------|-------------|
223
- | `AuthenticationError` | Invalid or missing API key |
224
- | `ValidationError` | Invalid request parameters |
225
- | `RateLimitError` | Too many requests (includes `retryAfter`) |
226
- | `ScopeError` | API key lacks required permissions |
227
- | `ServerError` | Internal server error |
228
- | `ConnectionError` | Network/connection failure |
229
- | `NotFoundError` | Resource not found |
298
+ Run any with `npx tsx --env-file=../.env tutorial/01-quickstart.ts`.
230
299
 
231
300
  ## Requirements
232
301
 
233
- - Node.js 18+ (uses native `fetch`)
234
- - TypeScript 5.0+ (optional, but recommended)
302
+ - Node.js 20+ (uses native `fetch`)
303
+ - TypeScript 5.0+ (optional, recommended)
304
+ - Optional peers: `@langchain/core>=0.3`, `langchain>=1.0`,
305
+ `@langchain/anthropic>=1.0`, `@langchain/openai>=1.0`,
306
+ `@langchain/google-genai>=0.2`, `@langchain/tavily>=0.1`,
307
+ `@langchain/community>=0.3`, `@langchain/langgraph>=0.2`,
308
+ `llamaindex>=0.8` (install only what you use)
235
309
 
236
310
  ## Development
237
311
 
238
312
  ```bash
239
- # Install dependencies
240
313
  npm install
241
-
242
- # Run unit tests
243
- npm test
244
-
245
- # Run integration tests (requires COMPRESR_API_KEY)
246
- npm run test:integration
247
-
248
- # Build
314
+ npm test # unit tests
315
+ npm run test:integration # live tests (requires COMPRESR_API_KEY)
249
316
  npm run build
250
-
251
- # Lint
252
- npm run lint
253
317
  ```
254
318
 
255
- ## Support
319
+ ## License
256
320
 
257
- - Email: support@compresr.ai
258
- - [API Documentation](https://compresr.ai/docs)
259
- - [GitHub Issues](https://github.com/compresr/sdk/issues)
321
+ Apache 2.0 — see [LICENSE](LICENSE).
260
322
 
261
- ## License
323
+ ## Support
262
324
 
263
- Apache 2.0 License - see [LICENSE](LICENSE) for details.
325
+ - Docs: [compresr.ai/docs](https://compresr.ai/docs)
326
+ - Issues: [GitHub](https://github.com/Compresr-ai/Compresr-SDK/issues)
327
+ - Email: support@compresr.ai
@@ -0,0 +1,121 @@
1
+ /**
2
+ * Provider-agnostic agent engine — TypeScript port of Wave 2A.
3
+ *
4
+ * ``CompresrEngine`` wraps LangChain.js's ``initChatModel`` + ``createAgent``
5
+ * with Compresr's ``compresrToolMiddleware`` and normalizes the final
6
+ * ``AIMessage`` into a provider-shape-free :class:`NormalizedResult` that
7
+ * facades will remap back into provider-native shapes.
8
+ *
9
+ * Mirrors Python ``compresr/agents/engine.py``.
10
+ */
11
+ import type { CompressionClient } from '../clients/compression.js';
12
+ import { type ErrorPolicy } from '../integrations/_shared/index.js';
13
+ import { type NormalizedResult } from './normalized.js';
14
+ /**
15
+ * Immutable bundle of compression knobs forwarded to the tool middleware.
16
+ *
17
+ * Mirrors Python ``compresr.integrations._shared.CompressionPolicy``.
18
+ */
19
+ export interface CompressionPolicyOptions {
20
+ targetCompressionRatio?: number;
21
+ compressionModelName?: string;
22
+ coarse?: boolean;
23
+ minTokens?: number;
24
+ onError?: ErrorPolicy;
25
+ allowTools?: Iterable<string>;
26
+ ignoreTools?: Iterable<string>;
27
+ }
28
+ /**
29
+ * Parse an LLM spec into ``{ provider, modelName }``.
30
+ *
31
+ * Accepted forms:
32
+ * - Bare provider: ``"anthropic"`` -> ``{ provider, modelName: undefined }``.
33
+ * The model must then be supplied at the call site.
34
+ * - LangChain-style colon: ``"anthropic:claude-opus-4-8"``.
35
+ * - Vercel-style slash: ``"anthropic/claude-opus-4-8"`` — normalized to the
36
+ * colon form to match LangChain.js's ``initChatModel`` convention.
37
+ */
38
+ export declare function parseLlmSpec(llm: string): {
39
+ provider: string;
40
+ modelName: string | undefined;
41
+ };
42
+ export interface CompresrEngineOptions {
43
+ compresrClient: CompressionClient;
44
+ llm: string;
45
+ llmApiKey?: string;
46
+ policy?: CompressionPolicyOptions;
47
+ }
48
+ export interface RunOptions {
49
+ messages: ReadonlyArray<unknown>;
50
+ tools?: ReadonlyArray<unknown>;
51
+ system?: string;
52
+ maxTokens?: number;
53
+ config?: Record<string, unknown>;
54
+ /**
55
+ * Per-call model name. If omitted, falls back to the engine's default
56
+ * (the model encoded in ``llm: 'provider:model'`` at construction).
57
+ * When neither is provided, ``run`` throws ``CompresrError("missing_model")``.
58
+ */
59
+ model?: string;
60
+ temperature?: number;
61
+ topP?: number;
62
+ topK?: number;
63
+ /** Gemini-native alias of ``maxTokens``. The engine aliases when needed. */
64
+ maxOutputTokens?: number;
65
+ stop?: string[];
66
+ stopSequences?: string[];
67
+ presencePenalty?: number;
68
+ frequencyPenalty?: number;
69
+ seed?: number;
70
+ logprobs?: boolean;
71
+ topLogprobs?: number;
72
+ }
73
+ interface LangChainBindings {
74
+ initChatModel: (modelStr: string, kwargs?: Record<string, unknown>) => unknown;
75
+ createAgent: (params: Record<string, unknown>) => unknown;
76
+ }
77
+ /**
78
+ * Test seam — lets vitest stub LangChain without monkey-patching
79
+ * ``node_modules``.
80
+ *
81
+ * @internal — not a stable public API; reserved for SDK tests only.
82
+ */
83
+ export declare function _setLangChainBindings(b: LangChainBindings | undefined): void;
84
+ export declare class CompresrEngine {
85
+ readonly provider: string;
86
+ /**
87
+ * Default model bound to the engine, parsed from the constructor's ``llm``
88
+ * spec. ``undefined`` when the spec is a bare provider — in that case the
89
+ * model must be supplied per-call on :meth:`run`.
90
+ */
91
+ readonly defaultModelName: string | undefined;
92
+ private readonly compresrClient;
93
+ private readonly llmApiKey?;
94
+ private readonly policy;
95
+ private readonly chatModels;
96
+ constructor(options: CompresrEngineOptions);
97
+ /**
98
+ * Back-compat alias for ``defaultModelName`` — returns the constructor
99
+ * default and may be ``undefined`` when the engine was built with a bare
100
+ * provider ``llm`` spec.
101
+ */
102
+ get modelName(): string | undefined;
103
+ private getChatModel;
104
+ private buildMiddleware;
105
+ private buildAgent;
106
+ /**
107
+ * Pull every option whose key lives in :data:`LLM_BIND_OPTIONS` and return a
108
+ * fresh object — the caller passes it to ``chat.bind(...)``. Non-LLM keys
109
+ * are silently ignored, which keeps the public ``RunOptions`` interface
110
+ * forgiving when callers mix in custom config.
111
+ *
112
+ * Gemini quirk: LangChain.js's ``ChatGoogleGenerativeAI`` uses
113
+ * ``maxOutputTokens`` instead of ``maxTokens``. We alias when the caller
114
+ * provided ``maxTokens`` without an explicit ``maxOutputTokens``.
115
+ */
116
+ private extractBindOptions;
117
+ run(options: RunOptions): Promise<NormalizedResult>;
118
+ private normalize;
119
+ }
120
+ export {};
121
+ //# sourceMappingURL=engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/agents/engine.ts"],"names":[],"mappings":"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"}