@compresr/sdk 1.3.1 → 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 +33 -103
  166. package/dist/cjs/schemas/compression.d.ts.map +1 -1
  167. package/dist/cjs/schemas/compression.js +6 -59
  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 +33 -103
  338. package/dist/esm/schemas/compression.d.ts.map +1 -1
  339. package/dist/esm/schemas/compression.js +5 -58
  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 +91 -6
@@ -0,0 +1,35 @@
1
+ import { applyErrorPolicyAsync, DEFAULT_POLICY } from './errors.js';
2
+ import { estimateTokens } from './tokens.js';
3
+ /**
4
+ * Compress `context` if it exceeds `minTokens`.
5
+ *
6
+ * Returns the compressed string, or the original on short input / error
7
+ * (when `onError='passthrough'`).
8
+ */
9
+ export async function compressSafe(client, options) {
10
+ const { context, query, compressionModel = 'latte_v1', targetCompressionRatio, coarse, minTokens = 200, onError = DEFAULT_POLICY, contextLabel, estimator = estimateTokens, } = options;
11
+ if (typeof context !== 'string' || !context.trim()) {
12
+ return context;
13
+ }
14
+ if (estimator(context) < minTokens) {
15
+ return context;
16
+ }
17
+ return applyErrorPolicyAsync(async () => {
18
+ const resp = await client.compress({
19
+ context,
20
+ ...(query !== undefined ? { query } : {}),
21
+ compressionModelName: compressionModel,
22
+ ...(targetCompressionRatio !== undefined
23
+ ? { targetCompressionRatio }
24
+ : {}),
25
+ ...(coarse !== undefined ? { coarse } : {}),
26
+ });
27
+ const out = resp.data?.compressed_context;
28
+ return typeof out === 'string' && out ? out : context;
29
+ }, {
30
+ fallback: context,
31
+ policy: onError,
32
+ context: { label: contextLabel, model: compressionModel },
33
+ });
34
+ }
35
+ //# sourceMappingURL=compress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compress.js","sourceRoot":"","sources":["../../../../src/integrations/_shared/compress.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAoB,MAAM,aAAa,CAAC;AACtF,OAAO,EAAE,cAAc,EAAuB,MAAM,aAAa,CAAC;AAclE;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAyB,EACzB,OAA4B;IAE5B,MAAM,EACJ,OAAO,EACP,KAAK,EACL,gBAAgB,GAAG,UAAU,EAC7B,sBAAsB,EACtB,MAAM,EACN,SAAS,GAAG,GAAG,EACf,OAAO,GAAG,cAAc,EACxB,YAAY,EACZ,SAAS,GAAG,cAAc,GAC3B,GAAG,OAAO,CAAC;IAEZ,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QACnD,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,SAAS,CAAC,OAAO,CAAC,GAAG,SAAS,EAAE,CAAC;QACnC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,qBAAqB,CAC1B,KAAK,IAAI,EAAE;QACT,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC;YACjC,OAAO;YACP,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,oBAAoB,EAAE,gBAAgB;YACtC,GAAG,CAAC,sBAAsB,KAAK,SAAS;gBACtC,CAAC,CAAC,EAAE,sBAAsB,EAAE;gBAC5B,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5C,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,kBAAkB,CAAC;QAC1C,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;IACxD,CAAC,EACD;QACE,QAAQ,EAAE,OAAO;QACjB,MAAM,EAAE,OAAO;QACf,OAAO,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,gBAAgB,EAAE;KAC1D,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Unified error policy for integrations.
3
+ *
4
+ * Compression should rarely break a user's app. Default is `passthrough`:
5
+ * log and return the original/fallback value. `raise` is opt-in.
6
+ *
7
+ * Mirrors Python `_shared/errors.py`.
8
+ */
9
+ export type ErrorPolicy = 'raise' | 'passthrough';
10
+ export declare const DEFAULT_POLICY: ErrorPolicy;
11
+ export interface ErrorPolicyOptions<T> {
12
+ fallback: T;
13
+ policy?: ErrorPolicy;
14
+ context?: Record<string, unknown>;
15
+ }
16
+ /** Run `fn`; on exception, raise (policy='raise') or log+return `fallback`. */
17
+ export declare function applyErrorPolicy<T>(fn: () => T, options: ErrorPolicyOptions<T>): T;
18
+ /** Async variant — handles both sync throws and rejected promises. */
19
+ export declare function applyErrorPolicyAsync<T>(fn: () => Promise<T>, options: ErrorPolicyOptions<T>): Promise<T>;
20
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../src/integrations/_shared/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,aAAa,CAAC;AAClD,eAAO,MAAM,cAAc,EAAE,WAA2B,CAAC;AAEzD,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,QAAQ,EAAE,CAAC,CAAC;IACZ,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,+EAA+E;AAC/E,wBAAgB,gBAAgB,CAAC,CAAC,EAChC,EAAE,EAAE,MAAM,CAAC,EACX,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC7B,CAAC,CAcH;AAED,sEAAsE;AACtE,wBAAsB,qBAAqB,CAAC,CAAC,EAC3C,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC7B,OAAO,CAAC,CAAC,CAAC,CAcZ"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Unified error policy for integrations.
3
+ *
4
+ * Compression should rarely break a user's app. Default is `passthrough`:
5
+ * log and return the original/fallback value. `raise` is opt-in.
6
+ *
7
+ * Mirrors Python `_shared/errors.py`.
8
+ */
9
+ import { getLogger } from '../../logger.js';
10
+ export const DEFAULT_POLICY = 'passthrough';
11
+ /** Run `fn`; on exception, raise (policy='raise') or log+return `fallback`. */
12
+ export function applyErrorPolicy(fn, options) {
13
+ const { fallback, policy = DEFAULT_POLICY, context } = options;
14
+ try {
15
+ return fn();
16
+ }
17
+ catch (exc) {
18
+ if (policy === 'raise') {
19
+ throw exc;
20
+ }
21
+ getLogger().warn(`integrations call failed (${stringifyError(exc)}); passthrough.`, context ?? {});
22
+ return fallback;
23
+ }
24
+ }
25
+ /** Async variant — handles both sync throws and rejected promises. */
26
+ export async function applyErrorPolicyAsync(fn, options) {
27
+ const { fallback, policy = DEFAULT_POLICY, context } = options;
28
+ try {
29
+ return await fn();
30
+ }
31
+ catch (exc) {
32
+ if (policy === 'raise') {
33
+ throw exc;
34
+ }
35
+ getLogger().warn(`integrations async call failed (${stringifyError(exc)}); passthrough.`, context ?? {});
36
+ return fallback;
37
+ }
38
+ }
39
+ function stringifyError(exc) {
40
+ if (exc instanceof Error)
41
+ return exc.message;
42
+ return String(exc);
43
+ }
44
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../src/integrations/_shared/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,MAAM,CAAC,MAAM,cAAc,GAAgB,aAAa,CAAC;AAQzD,+EAA+E;AAC/E,MAAM,UAAU,gBAAgB,CAC9B,EAAW,EACX,OAA8B;IAE9B,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,cAAc,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC/D,IAAI,CAAC;QACH,OAAO,EAAE,EAAE,CAAC;IACd,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YACvB,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,SAAS,EAAE,CAAC,IAAI,CACd,6BAA6B,cAAc,CAAC,GAAG,CAAC,iBAAiB,EACjE,OAAO,IAAI,EAAE,CACd,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC;AAED,sEAAsE;AACtE,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,EAAoB,EACpB,OAA8B;IAE9B,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,cAAc,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC/D,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,EAAE,CAAC;IACpB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YACvB,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,SAAS,EAAE,CAAC,IAAI,CACd,mCAAmC,cAAc,CAAC,GAAG,CAAC,iBAAiB,EACvE,OAAO,IAAI,EAAE,CACd,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,GAAY;IAClC,IAAI,GAAG,YAAY,KAAK;QAAE,OAAO,GAAG,CAAC,OAAO,CAAC;IAC7C,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Name-based eligibility filter for tool / middleware integrations.
3
+ *
4
+ * Mirrors Python `_shared/filters.py`.
5
+ */
6
+ export interface FilterOptions {
7
+ allow?: Iterable<string>;
8
+ ignore?: Iterable<string>;
9
+ }
10
+ /**
11
+ * Build a name predicate from allow- or ignore-lists.
12
+ *
13
+ * - `allow`: only names in this set return true.
14
+ * - `ignore`: every name except those in this set returns true.
15
+ * - both undefined: every name returns true (no-op).
16
+ *
17
+ * Passing both throws — pick one mode.
18
+ */
19
+ export declare function makeFilter(options?: FilterOptions): (name?: string | null) => boolean;
20
+ //# sourceMappingURL=filters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../../../src/integrations/_shared/filters.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACzB,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;CAC3B;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CACxB,OAAO,GAAE,aAAkB,GAC1B,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,KAAK,OAAO,CAcnC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Name-based eligibility filter for tool / middleware integrations.
3
+ *
4
+ * Mirrors Python `_shared/filters.py`.
5
+ */
6
+ /**
7
+ * Build a name predicate from allow- or ignore-lists.
8
+ *
9
+ * - `allow`: only names in this set return true.
10
+ * - `ignore`: every name except those in this set returns true.
11
+ * - both undefined: every name returns true (no-op).
12
+ *
13
+ * Passing both throws — pick one mode.
14
+ */
15
+ export function makeFilter(options = {}) {
16
+ const { allow, ignore } = options;
17
+ if (allow !== undefined && ignore !== undefined) {
18
+ throw new Error('Pass `allow` OR `ignore`, not both.');
19
+ }
20
+ if (allow !== undefined) {
21
+ const allowed = new Set(allow);
22
+ return (name) => name != null && allowed.has(name);
23
+ }
24
+ if (ignore !== undefined) {
25
+ const ignored = new Set(ignore);
26
+ return (name) => name == null || !ignored.has(name);
27
+ }
28
+ return () => true;
29
+ }
30
+ //# sourceMappingURL=filters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filters.js","sourceRoot":"","sources":["../../../../src/integrations/_shared/filters.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CACxB,UAAyB,EAAE;IAE3B,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAClC,IAAI,KAAK,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QAC/B,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;QAChC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC;AACpB,CAAC"}
@@ -0,0 +1,7 @@
1
+ export { BATCH_LIMIT, DEFAULT_MIN_TOKENS, DEFAULT_MODEL, DEFAULT_RATIO, buildClient, type BuildClientOptions, } from './client.js';
2
+ export { applyErrorPolicy, applyErrorPolicyAsync, DEFAULT_POLICY, type ErrorPolicy, type ErrorPolicyOptions, } from './errors.js';
3
+ export { makeFilter, type FilterOptions } from './filters.js';
4
+ export { COMMON_QUERY_KEYS, DEFAULT_FALLBACK, extractQueryFromArgs, extractQueryFromMessages, resolveQuery, type ResolveQueryOptions, type ExtractFromArgsOptions, type ExtractFromMessagesOptions, } from './query.js';
5
+ export { estimateTokens, type TokenEstimator } from './tokens.js';
6
+ export { compressSafe, type CompressSafeOptions } from './compress.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/integrations/_shared/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,WAAW,EACX,KAAK,kBAAkB,GACxB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,EACd,KAAK,WAAW,EAChB,KAAK,kBAAkB,GACxB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAE9D,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,wBAAwB,EACxB,YAAY,EACZ,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,GAChC,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAElE,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,7 @@
1
+ export { BATCH_LIMIT, DEFAULT_MIN_TOKENS, DEFAULT_MODEL, DEFAULT_RATIO, buildClient, } from './client.js';
2
+ export { applyErrorPolicy, applyErrorPolicyAsync, DEFAULT_POLICY, } from './errors.js';
3
+ export { makeFilter } from './filters.js';
4
+ export { COMMON_QUERY_KEYS, DEFAULT_FALLBACK, extractQueryFromArgs, extractQueryFromMessages, resolveQuery, } from './query.js';
5
+ export { estimateTokens } from './tokens.js';
6
+ export { compressSafe } from './compress.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/integrations/_shared/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,WAAW,GAEZ,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,GAGf,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,UAAU,EAAsB,MAAM,cAAc,CAAC;AAE9D,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,wBAAwB,EACxB,YAAY,GAIb,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,cAAc,EAAuB,MAAM,aAAa,CAAC;AAElE,OAAO,EAAE,YAAY,EAA4B,MAAM,eAAe,CAAC"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Extract a query string for `latte_v1` query-aware compression.
3
+ *
4
+ * Three resolution layers, in priority order:
5
+ * 1. Static (`query: string`).
6
+ * 2. Custom extractor (`queryExtractor: (ctx) => string`).
7
+ * 3. Smart default — pick from common arg keys, then last user message,
8
+ * then a fallback string.
9
+ *
10
+ * Mirrors Python `_shared/query.py`.
11
+ */
12
+ export declare const DEFAULT_FALLBACK = "summarize";
13
+ /** Common tool-arg keys that typically carry the user/LLM intent. */
14
+ export declare const COMMON_QUERY_KEYS: readonly string[];
15
+ export interface ExtractFromMessagesOptions {
16
+ toolCallId?: string;
17
+ fallback?: string;
18
+ }
19
+ export declare function extractQueryFromMessages(messages: readonly unknown[], options?: ExtractFromMessagesOptions): string;
20
+ export interface ExtractFromArgsOptions {
21
+ preferredKey?: string;
22
+ candidates?: readonly string[];
23
+ }
24
+ export declare function extractQueryFromArgs(args: Record<string, unknown> | null | undefined, options?: ExtractFromArgsOptions): string | undefined;
25
+ export interface ResolveQueryOptions {
26
+ staticQuery?: string;
27
+ extractor?: (arg: unknown) => string | undefined | null;
28
+ extractorArg?: unknown;
29
+ args?: Record<string, unknown> | null;
30
+ argsKey?: string;
31
+ messages?: readonly unknown[];
32
+ toolCallId?: string;
33
+ fallback?: string;
34
+ }
35
+ /**
36
+ * Resolve a query string with consistent priority across integrations.
37
+ *
38
+ * Priority (first non-empty wins):
39
+ * 1. `staticQuery`
40
+ * 2. `extractor(extractorArg)` — if `extractorArg` is the MISSING
41
+ * sentinel (not passed), the extractor is called with no args.
42
+ * 3. `args[argsKey]`
43
+ * 4. `args` smart-picked via COMMON_QUERY_KEYS
44
+ * 5. Most recent human message in `messages`
45
+ * 6. `fallback` (default `"summarize"`)
46
+ */
47
+ export declare function resolveQuery(options?: ResolveQueryOptions): string;
48
+ //# sourceMappingURL=query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../../src/integrations/_shared/query.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,eAAO,MAAM,gBAAgB,cAAc,CAAC;AAE5C,qEAAqE;AACrE,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAQ9C,CAAC;AAwCF,MAAM,WAAW,0BAA0B;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,OAAO,GAAE,0BAA+B,GACvC,MAAM,CAwBR;AAGD,MAAM,WAAW,sBAAsB;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAChC;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,EAChD,OAAO,GAAE,sBAA2B,GACnC,MAAM,GAAG,SAAS,CAkBpB;AAGD,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACxD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAID;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,OAAO,GAAE,mBAAwB,GAAG,MAAM,CAyCtE"}
@@ -0,0 +1,135 @@
1
+ /**
2
+ * Extract a query string for `latte_v1` query-aware compression.
3
+ *
4
+ * Three resolution layers, in priority order:
5
+ * 1. Static (`query: string`).
6
+ * 2. Custom extractor (`queryExtractor: (ctx) => string`).
7
+ * 3. Smart default — pick from common arg keys, then last user message,
8
+ * then a fallback string.
9
+ *
10
+ * Mirrors Python `_shared/query.py`.
11
+ */
12
+ export const DEFAULT_FALLBACK = 'summarize';
13
+ /** Common tool-arg keys that typically carry the user/LLM intent. */
14
+ export const COMMON_QUERY_KEYS = [
15
+ 'query',
16
+ 'question',
17
+ 'search_query',
18
+ 'q',
19
+ 'prompt',
20
+ 'input',
21
+ 'text',
22
+ ];
23
+ function isAiMessage(msg) {
24
+ if (typeof msg !== 'object' || msg === null)
25
+ return false;
26
+ const m = msg;
27
+ const name = msg.constructor?.name;
28
+ if (name === 'AIMessage' || name === 'AIMessageChunk')
29
+ return true;
30
+ return m.role === 'assistant' || m.role === 'ai';
31
+ }
32
+ function isHumanMessage(msg) {
33
+ if (typeof msg !== 'object' || msg === null)
34
+ return false;
35
+ const m = msg;
36
+ const name = msg.constructor?.name;
37
+ if (name === 'HumanMessage' || name === 'HumanMessageChunk')
38
+ return true;
39
+ return m.role === 'user' || m.role === 'human';
40
+ }
41
+ function getToolCalls(msg) {
42
+ return msg.tool_calls ?? msg.toolCalls ?? [];
43
+ }
44
+ function getStringContent(msg) {
45
+ const c = msg.content;
46
+ return typeof c === 'string' && c.trim() ? c : undefined;
47
+ }
48
+ export function extractQueryFromMessages(messages, options = {}) {
49
+ const { toolCallId, fallback = DEFAULT_FALLBACK } = options;
50
+ if (toolCallId !== undefined) {
51
+ for (let i = messages.length - 1; i >= 0; i--) {
52
+ const prev = messages[i];
53
+ if (!isAiMessage(prev))
54
+ continue;
55
+ for (const call of getToolCalls(prev)) {
56
+ if (call.id === toolCallId) {
57
+ const q = extractQueryFromArgs(call.args ?? {});
58
+ if (q)
59
+ return q;
60
+ }
61
+ }
62
+ }
63
+ }
64
+ for (let i = messages.length - 1; i >= 0; i--) {
65
+ const prev = messages[i];
66
+ if (!isHumanMessage(prev))
67
+ continue;
68
+ const c = getStringContent(prev);
69
+ if (c)
70
+ return c;
71
+ }
72
+ return fallback;
73
+ }
74
+ export function extractQueryFromArgs(args, options = {}) {
75
+ if (!args || typeof args !== 'object' || Object.keys(args).length === 0) {
76
+ return undefined;
77
+ }
78
+ const { preferredKey, candidates = COMMON_QUERY_KEYS } = options;
79
+ if (preferredKey !== undefined) {
80
+ const v = args[preferredKey];
81
+ if (typeof v === 'string' && v.trim())
82
+ return v;
83
+ return undefined; // user named a key; don't silently fall back
84
+ }
85
+ for (const key of candidates) {
86
+ const v = args[key];
87
+ if (typeof v === 'string' && v.trim())
88
+ return v;
89
+ }
90
+ return undefined;
91
+ }
92
+ const MISSING = Symbol('MISSING');
93
+ /**
94
+ * Resolve a query string with consistent priority across integrations.
95
+ *
96
+ * Priority (first non-empty wins):
97
+ * 1. `staticQuery`
98
+ * 2. `extractor(extractorArg)` — if `extractorArg` is the MISSING
99
+ * sentinel (not passed), the extractor is called with no args.
100
+ * 3. `args[argsKey]`
101
+ * 4. `args` smart-picked via COMMON_QUERY_KEYS
102
+ * 5. Most recent human message in `messages`
103
+ * 6. `fallback` (default `"summarize"`)
104
+ */
105
+ export function resolveQuery(options = {}) {
106
+ const { staticQuery, extractor, extractorArg = MISSING, args, argsKey, messages, toolCallId, fallback = DEFAULT_FALLBACK, } = options;
107
+ if (typeof staticQuery === 'string' && staticQuery.trim()) {
108
+ return staticQuery;
109
+ }
110
+ if (extractor !== undefined) {
111
+ let value;
112
+ try {
113
+ value =
114
+ extractorArg === MISSING
115
+ ? extractor()
116
+ : extractor(extractorArg);
117
+ }
118
+ catch {
119
+ value = undefined;
120
+ }
121
+ if (typeof value === 'string' && value.trim()) {
122
+ return value;
123
+ }
124
+ }
125
+ if (args !== undefined && args !== null) {
126
+ const v = extractQueryFromArgs(args, { preferredKey: argsKey });
127
+ if (v)
128
+ return v;
129
+ }
130
+ if (messages && messages.length > 0) {
131
+ return extractQueryFromMessages(messages, { toolCallId, fallback });
132
+ }
133
+ return fallback;
134
+ }
135
+ //# sourceMappingURL=query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../../../../src/integrations/_shared/query.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Token estimation.
3
+ *
4
+ * Uses a 4-chars-per-token approximation. The JS ecosystem doesn't have a
5
+ * single dominant tokenizer (gpt-tokenizer, js-tiktoken, tiktoken-node all
6
+ * have different install footprints and platform constraints); keeping the
7
+ * default zero-dep is the right tradeoff for an integration package.
8
+ *
9
+ * Users who want precise counts can pass `estimator: (text) => number`
10
+ * into integrations that accept it.
11
+ */
12
+ export type TokenEstimator = (text: string) => number;
13
+ /**
14
+ * Estimate token count for `text`.
15
+ *
16
+ * Falls back to `Math.max(1, Math.floor(text.length / 4))`. Returns 0 for
17
+ * empty/falsy input.
18
+ */
19
+ export declare function estimateTokens(text: string): number;
20
+ //# sourceMappingURL=tokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../../../src/integrations/_shared/tokens.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;AAEtD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGnD"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Token estimation.
3
+ *
4
+ * Uses a 4-chars-per-token approximation. The JS ecosystem doesn't have a
5
+ * single dominant tokenizer (gpt-tokenizer, js-tiktoken, tiktoken-node all
6
+ * have different install footprints and platform constraints); keeping the
7
+ * default zero-dep is the right tradeoff for an integration package.
8
+ *
9
+ * Users who want precise counts can pass `estimator: (text) => number`
10
+ * into integrations that accept it.
11
+ */
12
+ /**
13
+ * Estimate token count for `text`.
14
+ *
15
+ * Falls back to `Math.max(1, Math.floor(text.length / 4))`. Returns 0 for
16
+ * empty/falsy input.
17
+ */
18
+ export function estimateTokens(text) {
19
+ if (!text)
20
+ return 0;
21
+ return Math.max(1, Math.floor(text.length / 4));
22
+ }
23
+ //# sourceMappingURL=tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../../../src/integrations/_shared/tokens.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,IAAI,CAAC,IAAI;QAAE,OAAO,CAAC,CAAC;IACpB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * LangChain.js integration for Compresr.
3
+ *
4
+ * npm install @langchain/core langchain # (peers)
5
+ */
6
+ export { compresrToolMiddleware, compresrSummarizationMiddleware, compresrPromptMiddleware, type CompresrMiddleware, type CompresrToolMiddlewareOptions, type CompresrSummarizationMiddlewareOptions, type CompresrPromptMiddlewareOptions, type ModelRequest, type ModelHandler, type ToolCall, type ToolCallRequest, type ToolHandler, type ToolQueryExtractor, type SummaryQueryExtractor, } from './middleware.js';
7
+ export { wrapToolWithCompression, compressToolOutput, type WrapToolOptions, type ToolDecorator, } from './wrappers.js';
8
+ export { CompresrExtractor, type CompresrExtractorOptions, } from './retriever.js';
9
+ export type { ErrorPolicy } from '../_shared/index.js';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/integrations/langchain/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EACL,sBAAsB,EACtB,+BAA+B,EAC/B,wBAAwB,EACxB,KAAK,kBAAkB,EACvB,KAAK,6BAA6B,EAClC,KAAK,sCAAsC,EAC3C,KAAK,+BAA+B,EACpC,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,QAAQ,EACb,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,GAC3B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,KAAK,eAAe,EACpB,KAAK,aAAa,GACnB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,iBAAiB,EACjB,KAAK,wBAAwB,GAC9B,MAAM,gBAAgB,CAAC;AAExB,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * LangChain.js integration for Compresr.
3
+ *
4
+ * npm install @langchain/core langchain # (peers)
5
+ */
6
+ export { compresrToolMiddleware, compresrSummarizationMiddleware, compresrPromptMiddleware, } from './middleware.js';
7
+ export { wrapToolWithCompression, compressToolOutput, } from './wrappers.js';
8
+ export { CompresrExtractor, } from './retriever.js';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/integrations/langchain/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EACL,sBAAsB,EACtB,+BAA+B,EAC/B,wBAAwB,GAYzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,uBAAuB,EACvB,kBAAkB,GAGnB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,iBAAiB,GAElB,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Agent middleware for LangChain.js 1.0+ `createAgent`.
3
+ *
4
+ * - `compresrToolMiddleware` — compresses each tool output as it returns,
5
+ * before it enters agent state.
6
+ * - `compresrSummarizationMiddleware` — when state grows past a token
7
+ * threshold, compresses the older block into a single summary message
8
+ * and replaces it in state. Mirrors LangChain's `SummarizationMiddleware`
9
+ * but uses Compresr instead of an LLM call. KV-cache-friendly:
10
+ * the summary is generated once at trigger time and persists in state.
11
+ *
12
+ * Unified Compresr query API across both:
13
+ *
14
+ * query: string // static query
15
+ * queryExtractor: (...) => string // custom extractor
16
+ * queryArg: string // name of the tool arg
17
+ */
18
+ import { ToolMessage } from '@langchain/core/messages';
19
+ import type { CompressionClient } from '../../clients/compression.js';
20
+ import { type ErrorPolicy } from '../_shared/index.js';
21
+ type ToolMessageType = ToolMessage;
22
+ export interface ToolCall {
23
+ id?: string;
24
+ name?: string;
25
+ args?: Record<string, unknown>;
26
+ }
27
+ export interface ToolCallRequest {
28
+ toolCall: ToolCall;
29
+ messages?: unknown[];
30
+ }
31
+ export type ToolHandler = (request: ToolCallRequest) => Promise<ToolMessageType> | ToolMessageType;
32
+ export type ToolQueryExtractor = (toolCall: ToolCall, messages: unknown[]) => string | undefined;
33
+ export type SummaryQueryExtractor = (messages: unknown[]) => string | undefined;
34
+ export interface CompresrMiddlewareCommonOptions {
35
+ apiKey?: string;
36
+ client?: CompressionClient;
37
+ baseUrl?: string;
38
+ compressionModel?: string;
39
+ targetCompressionRatio?: number;
40
+ coarse?: boolean;
41
+ onError?: ErrorPolicy;
42
+ }
43
+ export interface CompresrToolMiddlewareOptions extends CompresrMiddlewareCommonOptions {
44
+ minTokens?: number;
45
+ allowTools?: Iterable<string>;
46
+ ignoreTools?: Iterable<string>;
47
+ query?: string;
48
+ queryExtractor?: ToolQueryExtractor;
49
+ queryArg?: string;
50
+ }
51
+ export interface CompresrSummarizationMiddlewareOptions extends CompresrMiddlewareCommonOptions {
52
+ /** Compression fires when the message-state token count crosses this. */
53
+ maxTokensBeforeSummary?: number;
54
+ /** Number of recent messages to preserve verbatim. */
55
+ messagesToKeep?: number;
56
+ /** Alias for `maxTokensBeforeSummary` — matches LangChain.js `SummarizationMiddleware`. */
57
+ trigger?: number;
58
+ /** Alias for `messagesToKeep` — matches LangChain.js `SummarizationMiddleware`. */
59
+ keep?: number;
60
+ /** Custom token counter; defaults to the chars/4 estimator. */
61
+ tokenCounter?: (s: string) => number;
62
+ query?: string;
63
+ queryExtractor?: SummaryQueryExtractor;
64
+ }
65
+ export interface ModelRequest {
66
+ messages: unknown[];
67
+ [k: string]: unknown;
68
+ }
69
+ export type ModelHandler<T = unknown> = (request: ModelRequest) => Promise<T> | T;
70
+ export interface CompresrMiddleware {
71
+ name: string;
72
+ wrapToolCall?: (request: ToolCallRequest, handler: ToolHandler) => Promise<ToolMessageType>;
73
+ beforeModel?: (state: {
74
+ messages?: unknown[];
75
+ }) => Promise<{
76
+ messages?: unknown[];
77
+ llm_input_messages?: unknown[];
78
+ } | undefined>;
79
+ wrapModelCall?: <T = unknown>(request: ModelRequest, handler: ModelHandler<T>) => Promise<T>;
80
+ }
81
+ export declare function compresrToolMiddleware(options: CompresrToolMiddlewareOptions): CompresrMiddleware;
82
+ export declare function compresrSummarizationMiddleware(options: CompresrSummarizationMiddlewareOptions): CompresrMiddleware;
83
+ export interface CompresrPromptMiddlewareOptions extends CompresrMiddlewareCommonOptions {
84
+ /** Hard ceiling for the outbound prompt (sum of message content tokens). */
85
+ maxTokens: number;
86
+ /** Skip compression on individual messages shorter than this. */
87
+ minTokens?: number;
88
+ tokenCounter?: (s: string) => number;
89
+ query?: string;
90
+ queryExtractor?: SummaryQueryExtractor;
91
+ }
92
+ export declare function compresrPromptMiddleware(options: CompresrPromptMiddlewareOptions): CompresrMiddleware;
93
+ export {};
94
+ //# sourceMappingURL=middleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../../../src/integrations/langchain/middleware.ts"],"names":[],"mappings":"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"}