@dexto/core 1.1.4 → 1.1.6

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 (597) hide show
  1. package/README.md +125 -0
  2. package/dist/agent/DextoAgent.cjs +793 -0
  3. package/dist/agent/DextoAgent.d.cts +473 -0
  4. package/dist/agent/DextoAgent.d.ts +473 -0
  5. package/dist/agent/DextoAgent.js +774 -0
  6. package/dist/agent/agentCard.cjs +44 -0
  7. package/dist/agent/agentCard.d.cts +20 -0
  8. package/dist/agent/agentCard.d.ts +20 -0
  9. package/dist/agent/agentCard.js +20 -0
  10. package/dist/agent/error-codes.cjs +35 -0
  11. package/dist/agent/error-codes.d.cts +14 -0
  12. package/dist/agent/error-codes.d.ts +14 -0
  13. package/dist/agent/error-codes.js +11 -0
  14. package/dist/agent/errors.cjs +84 -0
  15. package/dist/agent/errors.d.cts +40 -0
  16. package/dist/agent/errors.d.ts +40 -0
  17. package/dist/agent/errors.js +60 -0
  18. package/dist/agent/index.cjs +44 -0
  19. package/dist/agent/index.d.cts +60 -0
  20. package/dist/agent/index.d.ts +60 -0
  21. package/dist/agent/index.js +13 -0
  22. package/dist/agent/registry/error-codes.cjs +42 -0
  23. package/dist/agent/registry/error-codes.d.cts +20 -0
  24. package/dist/agent/registry/error-codes.d.ts +20 -0
  25. package/dist/agent/registry/error-codes.js +18 -0
  26. package/dist/agent/registry/errors.cjs +158 -0
  27. package/dist/agent/registry/errors.d.cts +67 -0
  28. package/dist/agent/registry/errors.d.ts +67 -0
  29. package/dist/{chunk-PI6XFMEW.js → agent/registry/errors.js} +43 -50
  30. package/dist/agent/registry/registry.cjs +291 -0
  31. package/dist/agent/registry/registry.d.cts +67 -0
  32. package/dist/agent/registry/registry.d.ts +67 -0
  33. package/dist/agent/registry/registry.js +256 -0
  34. package/dist/agent/registry/types.cjs +41 -0
  35. package/dist/agent/registry/types.d.cts +100 -0
  36. package/dist/agent/registry/types.d.ts +100 -0
  37. package/dist/agent/registry/types.js +16 -0
  38. package/dist/agent/schemas.cjs +113 -0
  39. package/dist/agent/schemas.d.cts +1502 -0
  40. package/dist/agent/schemas.d.ts +1502 -0
  41. package/dist/agent/schemas.js +88 -0
  42. package/dist/agent/state-manager.cjs +214 -0
  43. package/dist/agent/state-manager.d.cts +97 -0
  44. package/dist/agent/state-manager.d.ts +97 -0
  45. package/dist/agent/state-manager.js +190 -0
  46. package/dist/config/agent-resolver.cjs +153 -0
  47. package/dist/config/agent-resolver.d.cts +15 -0
  48. package/dist/config/agent-resolver.d.ts +15 -0
  49. package/dist/config/agent-resolver.js +122 -0
  50. package/dist/config/error-codes.cjs +39 -0
  51. package/dist/config/error-codes.d.cts +17 -0
  52. package/dist/config/error-codes.d.ts +17 -0
  53. package/dist/config/error-codes.js +15 -0
  54. package/dist/config/errors.cjs +126 -0
  55. package/dist/config/errors.d.cts +49 -0
  56. package/dist/config/errors.d.ts +49 -0
  57. package/dist/config/errors.js +102 -0
  58. package/dist/config/index.cjs +26 -0
  59. package/dist/config/index.d.cts +7 -0
  60. package/dist/config/index.d.ts +7 -0
  61. package/dist/config/index.js +3 -0
  62. package/dist/config/loader.cjs +119 -0
  63. package/dist/config/loader.d.cts +19 -0
  64. package/dist/config/loader.d.ts +19 -0
  65. package/dist/config/loader.js +85 -0
  66. package/dist/config/writer.cjs +182 -0
  67. package/dist/config/writer.d.cts +38 -0
  68. package/dist/config/writer.d.ts +38 -0
  69. package/dist/config/writer.js +146 -0
  70. package/dist/context/compression/middle-removal.cjs +95 -0
  71. package/dist/context/compression/middle-removal.d.cts +48 -0
  72. package/dist/context/compression/middle-removal.d.ts +48 -0
  73. package/dist/context/compression/middle-removal.js +71 -0
  74. package/dist/context/compression/oldest-removal.cjs +70 -0
  75. package/dist/context/compression/oldest-removal.d.cts +43 -0
  76. package/dist/context/compression/oldest-removal.d.ts +43 -0
  77. package/dist/context/compression/oldest-removal.js +46 -0
  78. package/dist/context/compression/types.cjs +16 -0
  79. package/dist/context/compression/types.d.cts +21 -0
  80. package/dist/context/compression/types.d.ts +21 -0
  81. package/dist/context/compression/types.js +0 -0
  82. package/dist/context/error-codes.cjs +41 -0
  83. package/dist/context/error-codes.d.cts +19 -0
  84. package/dist/context/error-codes.d.ts +19 -0
  85. package/dist/context/error-codes.js +17 -0
  86. package/dist/context/errors.cjs +146 -0
  87. package/dist/context/errors.d.cts +36 -0
  88. package/dist/context/errors.d.ts +36 -0
  89. package/dist/context/errors.js +122 -0
  90. package/dist/context/index.cjs +24 -0
  91. package/dist/context/index.d.cts +19 -0
  92. package/dist/context/index.d.ts +19 -0
  93. package/dist/context/index.js +2 -0
  94. package/dist/context/manager.cjs +516 -0
  95. package/dist/context/manager.d.cts +254 -0
  96. package/dist/context/manager.d.ts +254 -0
  97. package/dist/context/manager.js +492 -0
  98. package/dist/context/types.cjs +16 -0
  99. package/dist/context/types.d.cts +113 -0
  100. package/dist/context/types.d.ts +113 -0
  101. package/dist/context/types.js +0 -0
  102. package/dist/context/utils.cjs +406 -0
  103. package/dist/context/utils.d.cts +79 -0
  104. package/dist/context/utils.d.ts +79 -0
  105. package/dist/context/utils.js +374 -0
  106. package/dist/errors/DextoBaseError.cjs +36 -0
  107. package/dist/errors/DextoBaseError.d.cts +15 -0
  108. package/dist/errors/DextoBaseError.d.ts +15 -0
  109. package/dist/errors/DextoBaseError.js +12 -0
  110. package/dist/errors/DextoRuntimeError.cjs +50 -0
  111. package/dist/errors/DextoRuntimeError.d.cts +37 -0
  112. package/dist/errors/DextoRuntimeError.d.ts +37 -0
  113. package/dist/errors/DextoRuntimeError.js +26 -0
  114. package/dist/errors/DextoValidationError.cjs +118 -0
  115. package/dist/errors/DextoValidationError.d.cts +65 -0
  116. package/dist/errors/DextoValidationError.d.ts +65 -0
  117. package/dist/{chunk-XFQLRBHE.js → errors/DextoValidationError.js} +4 -32
  118. package/dist/errors/index.cjs +42 -0
  119. package/dist/errors/index.d.cts +18 -0
  120. package/dist/errors/index.d.ts +18 -0
  121. package/dist/errors/index.js +13 -0
  122. package/dist/errors/result-bridge.cjs +38 -0
  123. package/dist/errors/result-bridge.d.cts +39 -0
  124. package/dist/errors/result-bridge.d.ts +39 -0
  125. package/dist/errors/result-bridge.js +14 -0
  126. package/dist/errors/types.cjs +54 -0
  127. package/dist/errors/types.d.cts +62 -0
  128. package/dist/errors/types.d.ts +62 -0
  129. package/dist/errors/types.js +29 -0
  130. package/dist/events/index.cjs +169 -0
  131. package/dist/events/index.d.cts +272 -0
  132. package/dist/events/index.d.ts +272 -0
  133. package/dist/events/index.js +136 -0
  134. package/dist/index.browser.cjs +9 -220
  135. package/dist/index.browser.d.cts +53 -379
  136. package/dist/index.browser.d.ts +53 -379
  137. package/dist/index.browser.js +4 -210
  138. package/dist/index.cjs +31 -15266
  139. package/dist/index.d.cts +89 -6842
  140. package/dist/index.d.ts +89 -6842
  141. package/dist/index.js +14 -9914
  142. package/dist/llm/error-codes.cjs +48 -0
  143. package/dist/llm/error-codes.d.cts +26 -0
  144. package/dist/llm/error-codes.d.ts +26 -0
  145. package/dist/llm/error-codes.js +24 -0
  146. package/dist/llm/errors.cjs +108 -0
  147. package/dist/llm/errors.d.cts +58 -0
  148. package/dist/llm/errors.d.ts +58 -0
  149. package/dist/llm/errors.js +84 -0
  150. package/dist/llm/formatters/anthropic.cjs +246 -0
  151. package/dist/llm/formatters/anthropic.d.cts +45 -0
  152. package/dist/llm/formatters/anthropic.d.ts +45 -0
  153. package/dist/llm/formatters/anthropic.js +227 -0
  154. package/dist/llm/formatters/factory.cjs +51 -0
  155. package/dist/llm/formatters/factory.d.cts +12 -0
  156. package/dist/llm/formatters/factory.d.ts +12 -0
  157. package/dist/llm/formatters/factory.js +27 -0
  158. package/dist/llm/formatters/openai.cjs +167 -0
  159. package/dist/llm/formatters/openai.d.cts +38 -0
  160. package/dist/llm/formatters/openai.d.ts +38 -0
  161. package/dist/llm/formatters/openai.js +147 -0
  162. package/dist/llm/formatters/types.cjs +16 -0
  163. package/dist/llm/formatters/types.d.cts +43 -0
  164. package/dist/llm/formatters/types.d.ts +43 -0
  165. package/dist/llm/formatters/types.js +0 -0
  166. package/dist/llm/formatters/vercel.cjs +411 -0
  167. package/dist/llm/formatters/vercel.d.cts +48 -0
  168. package/dist/llm/formatters/vercel.d.ts +48 -0
  169. package/dist/llm/formatters/vercel.js +387 -0
  170. package/dist/llm/index.cjs +34 -0
  171. package/dist/llm/index.d.cts +39 -0
  172. package/dist/llm/index.d.ts +39 -0
  173. package/dist/llm/index.js +7 -0
  174. package/dist/llm/registry.cjs +881 -0
  175. package/dist/llm/registry.d.cts +176 -0
  176. package/dist/llm/registry.d.ts +176 -0
  177. package/dist/{chunk-J6AXCN3H.js → llm/registry.js} +25 -455
  178. package/dist/llm/resolver.cjs +154 -0
  179. package/dist/llm/resolver.d.cts +34 -0
  180. package/dist/llm/resolver.d.ts +34 -0
  181. package/dist/llm/resolver.js +136 -0
  182. package/dist/llm/schemas.cjs +188 -0
  183. package/dist/llm/schemas.d.cts +111 -0
  184. package/dist/llm/schemas.d.ts +111 -0
  185. package/dist/llm/schemas.js +172 -0
  186. package/dist/llm/services/anthropic.cjs +398 -0
  187. package/dist/llm/services/anthropic.d.cts +65 -0
  188. package/dist/llm/services/anthropic.d.ts +65 -0
  189. package/dist/llm/services/anthropic.js +374 -0
  190. package/dist/llm/services/factory.cjs +164 -0
  191. package/dist/llm/services/factory.d.cts +39 -0
  192. package/dist/llm/services/factory.d.ts +39 -0
  193. package/dist/llm/services/factory.js +130 -0
  194. package/dist/llm/services/index.cjs +22 -0
  195. package/dist/llm/services/index.d.cts +21 -0
  196. package/dist/llm/services/index.d.ts +21 -0
  197. package/dist/llm/services/index.js +1 -0
  198. package/dist/llm/services/openai.cjs +470 -0
  199. package/dist/llm/services/openai.d.cts +65 -0
  200. package/dist/llm/services/openai.d.ts +65 -0
  201. package/dist/llm/services/openai.js +446 -0
  202. package/dist/llm/services/test-utils.integration.cjs +169 -0
  203. package/dist/llm/services/test-utils.integration.d.cts +83 -0
  204. package/dist/llm/services/test-utils.integration.d.ts +83 -0
  205. package/dist/llm/services/test-utils.integration.js +142 -0
  206. package/dist/llm/services/types.cjs +16 -0
  207. package/dist/llm/services/types.d.cts +56 -0
  208. package/dist/llm/services/types.d.ts +56 -0
  209. package/dist/llm/services/types.js +0 -0
  210. package/dist/llm/services/vercel.cjs +525 -0
  211. package/dist/llm/services/vercel.d.cts +72 -0
  212. package/dist/llm/services/vercel.d.ts +72 -0
  213. package/dist/llm/services/vercel.js +506 -0
  214. package/dist/llm/tokenizer/anthropic.cjs +43 -0
  215. package/dist/llm/tokenizer/anthropic.d.cts +21 -0
  216. package/dist/llm/tokenizer/anthropic.d.ts +21 -0
  217. package/dist/llm/tokenizer/anthropic.js +19 -0
  218. package/dist/llm/tokenizer/default.cjs +41 -0
  219. package/dist/llm/tokenizer/default.d.cts +16 -0
  220. package/dist/llm/tokenizer/default.d.ts +16 -0
  221. package/dist/llm/tokenizer/default.js +17 -0
  222. package/dist/llm/tokenizer/factory.cjs +44 -0
  223. package/dist/llm/tokenizer/factory.d.cts +12 -0
  224. package/dist/llm/tokenizer/factory.d.ts +12 -0
  225. package/dist/llm/tokenizer/factory.js +20 -0
  226. package/dist/llm/tokenizer/google.cjs +52 -0
  227. package/dist/llm/tokenizer/google.d.cts +31 -0
  228. package/dist/llm/tokenizer/google.d.ts +31 -0
  229. package/dist/llm/tokenizer/google.js +28 -0
  230. package/dist/llm/tokenizer/openai.cjs +108 -0
  231. package/dist/llm/tokenizer/openai.d.cts +32 -0
  232. package/dist/llm/tokenizer/openai.d.ts +32 -0
  233. package/dist/llm/tokenizer/openai.js +83 -0
  234. package/dist/llm/tokenizer/types.cjs +33 -0
  235. package/dist/llm/tokenizer/types.d.cts +19 -0
  236. package/dist/llm/tokenizer/types.d.ts +19 -0
  237. package/dist/llm/tokenizer/types.js +9 -0
  238. package/dist/llm/types.cjs +42 -0
  239. package/dist/llm/types.d.cts +29 -0
  240. package/dist/llm/types.d.ts +29 -0
  241. package/dist/llm/types.js +16 -0
  242. package/dist/llm/validation.cjs +162 -0
  243. package/dist/llm/validation.d.cts +60 -0
  244. package/dist/llm/validation.d.ts +60 -0
  245. package/dist/llm/validation.js +138 -0
  246. package/dist/logger/browser.cjs +86 -0
  247. package/dist/logger/browser.d.cts +29 -0
  248. package/dist/logger/browser.d.ts +29 -0
  249. package/dist/logger/browser.js +61 -0
  250. package/dist/logger/index.cjs +22 -0
  251. package/dist/logger/index.d.cts +1 -0
  252. package/dist/logger/index.d.ts +1 -0
  253. package/dist/logger/index.js +1 -0
  254. package/dist/logger/logger.cjs +362 -0
  255. package/dist/logger/logger.d.cts +52 -0
  256. package/dist/logger/logger.d.ts +52 -0
  257. package/dist/logger/logger.js +327 -0
  258. package/dist/mcp/error-codes.cjs +38 -0
  259. package/dist/mcp/error-codes.d.cts +16 -0
  260. package/dist/mcp/error-codes.d.ts +16 -0
  261. package/dist/mcp/error-codes.js +14 -0
  262. package/dist/mcp/errors.cjs +131 -0
  263. package/dist/mcp/errors.d.cts +72 -0
  264. package/dist/mcp/errors.d.ts +72 -0
  265. package/dist/mcp/errors.js +107 -0
  266. package/dist/mcp/index.cjs +34 -0
  267. package/dist/mcp/index.d.cts +26 -0
  268. package/dist/mcp/index.d.ts +26 -0
  269. package/dist/mcp/index.js +7 -0
  270. package/dist/mcp/manager.cjs +473 -0
  271. package/dist/mcp/manager.d.cts +163 -0
  272. package/dist/mcp/manager.d.ts +163 -0
  273. package/dist/mcp/manager.js +449 -0
  274. package/dist/mcp/mcp-client.cjs +420 -0
  275. package/dist/mcp/mcp-client.d.cts +108 -0
  276. package/dist/mcp/mcp-client.d.ts +108 -0
  277. package/dist/mcp/mcp-client.js +396 -0
  278. package/dist/mcp/resolver.cjs +78 -0
  279. package/dist/mcp/resolver.d.cts +22 -0
  280. package/dist/mcp/resolver.d.ts +22 -0
  281. package/dist/mcp/resolver.js +56 -0
  282. package/dist/mcp/schemas.cjs +82 -0
  283. package/dist/mcp/schemas.d.cts +266 -0
  284. package/dist/mcp/schemas.d.ts +266 -0
  285. package/dist/mcp/schemas.js +54 -0
  286. package/dist/mcp/types.cjs +16 -0
  287. package/dist/mcp/types.d.cts +21 -0
  288. package/dist/mcp/types.d.ts +21 -0
  289. package/dist/mcp/types.js +0 -0
  290. package/dist/preferences/constants.cjs +28 -0
  291. package/dist/preferences/constants.d.cts +3 -0
  292. package/dist/preferences/constants.d.ts +3 -0
  293. package/dist/preferences/constants.js +4 -0
  294. package/dist/preferences/error-codes.cjs +35 -0
  295. package/dist/preferences/error-codes.d.cts +9 -0
  296. package/dist/preferences/error-codes.d.ts +9 -0
  297. package/dist/preferences/error-codes.js +11 -0
  298. package/dist/preferences/errors.cjs +75 -0
  299. package/dist/preferences/errors.d.cts +33 -0
  300. package/dist/preferences/errors.d.ts +33 -0
  301. package/dist/preferences/errors.js +50 -0
  302. package/dist/preferences/index.cjs +55 -0
  303. package/dist/preferences/index.d.cts +21 -0
  304. package/dist/preferences/index.d.ts +21 -0
  305. package/dist/preferences/index.js +31 -0
  306. package/dist/preferences/loader.cjs +136 -0
  307. package/dist/preferences/loader.d.cts +45 -0
  308. package/dist/preferences/loader.d.ts +45 -0
  309. package/dist/preferences/loader.js +107 -0
  310. package/dist/preferences/schemas.cjs +74 -0
  311. package/dist/preferences/schemas.d.cts +104 -0
  312. package/dist/preferences/schemas.d.ts +104 -0
  313. package/dist/preferences/schemas.js +47 -0
  314. package/dist/search/index.cjs +28 -0
  315. package/dist/search/index.d.cts +5 -0
  316. package/dist/search/index.d.ts +5 -0
  317. package/dist/search/index.js +4 -0
  318. package/dist/search/search-service.cjs +245 -0
  319. package/dist/search/search-service.d.cts +47 -0
  320. package/dist/search/search-service.d.ts +47 -0
  321. package/dist/search/search-service.js +221 -0
  322. package/dist/search/types.cjs +16 -0
  323. package/dist/search/types.d.cts +78 -0
  324. package/dist/search/types.d.ts +78 -0
  325. package/dist/search/types.js +0 -0
  326. package/dist/session/chat-session.cjs +354 -0
  327. package/dist/session/chat-session.d.cts +284 -0
  328. package/dist/session/chat-session.d.ts +284 -0
  329. package/dist/session/chat-session.js +333 -0
  330. package/dist/session/error-codes.cjs +35 -0
  331. package/dist/session/error-codes.d.cts +13 -0
  332. package/dist/session/error-codes.d.ts +13 -0
  333. package/dist/session/error-codes.js +11 -0
  334. package/dist/session/errors.cjs +93 -0
  335. package/dist/session/errors.d.cts +58 -0
  336. package/dist/session/errors.d.ts +58 -0
  337. package/dist/session/errors.js +69 -0
  338. package/dist/session/history/database.cjs +95 -0
  339. package/dist/session/history/database.d.cts +28 -0
  340. package/dist/session/history/database.d.ts +28 -0
  341. package/dist/session/history/database.js +71 -0
  342. package/dist/session/history/factory.cjs +31 -0
  343. package/dist/session/history/factory.d.cts +11 -0
  344. package/dist/session/history/factory.d.ts +11 -0
  345. package/dist/session/history/factory.js +7 -0
  346. package/dist/session/history/types.cjs +16 -0
  347. package/dist/session/history/types.d.cts +17 -0
  348. package/dist/session/history/types.d.ts +17 -0
  349. package/dist/session/history/types.js +0 -0
  350. package/dist/session/index.cjs +37 -0
  351. package/dist/session/index.d.cts +53 -0
  352. package/dist/session/index.d.ts +53 -0
  353. package/dist/session/index.js +10 -0
  354. package/dist/session/schemas.cjs +32 -0
  355. package/dist/session/schemas.d.cts +16 -0
  356. package/dist/session/schemas.d.ts +16 -0
  357. package/dist/session/schemas.js +8 -0
  358. package/dist/session/session-manager.cjs +481 -0
  359. package/dist/session/session-manager.d.cts +219 -0
  360. package/dist/session/session-manager.d.ts +219 -0
  361. package/dist/session/session-manager.js +457 -0
  362. package/dist/storage/backend/cache-backend.cjs +16 -0
  363. package/dist/storage/backend/cache-backend.d.cts +15 -0
  364. package/dist/storage/backend/cache-backend.d.ts +15 -0
  365. package/dist/storage/backend/cache-backend.js +0 -0
  366. package/dist/storage/backend/database-backend.cjs +16 -0
  367. package/dist/storage/backend/database-backend.d.cts +19 -0
  368. package/dist/storage/backend/database-backend.d.ts +19 -0
  369. package/dist/storage/backend/database-backend.js +0 -0
  370. package/dist/storage/backend/memory-backend.cjs +140 -0
  371. package/dist/storage/backend/memory-backend.d.cts +34 -0
  372. package/dist/storage/backend/memory-backend.d.ts +34 -0
  373. package/dist/storage/backend/memory-backend.js +116 -0
  374. package/dist/storage/backend/postgres-backend.cjs +231 -0
  375. package/dist/storage/backend/postgres-backend.d.cts +37 -0
  376. package/dist/storage/backend/postgres-backend.d.ts +37 -0
  377. package/dist/{postgres-backend-WMWS7RAT.js → storage/backend/postgres-backend.js} +3 -12
  378. package/dist/storage/backend/redis-backend.cjs +184 -0
  379. package/dist/storage/backend/redis-backend.d.cts +36 -0
  380. package/dist/storage/backend/redis-backend.d.ts +36 -0
  381. package/dist/{redis-backend-BNLN3XHX.js → storage/backend/redis-backend.js} +3 -12
  382. package/dist/storage/backend/sqlite-backend.cjs +271 -0
  383. package/dist/storage/backend/sqlite-backend.d.cts +35 -0
  384. package/dist/storage/backend/sqlite-backend.d.ts +35 -0
  385. package/dist/{sqlite-backend-AR6XNK2Q.js → storage/backend/sqlite-backend.js} +6 -17
  386. package/dist/storage/backend/types.cjs +16 -0
  387. package/dist/storage/backend/types.d.cts +14 -0
  388. package/dist/storage/backend/types.d.ts +14 -0
  389. package/dist/storage/backend/types.js +0 -0
  390. package/dist/storage/error-codes.cjs +36 -0
  391. package/dist/storage/error-codes.d.cts +14 -0
  392. package/dist/storage/error-codes.d.ts +14 -0
  393. package/dist/storage/error-codes.js +12 -0
  394. package/dist/storage/errors.cjs +104 -0
  395. package/dist/storage/errors.d.cts +63 -0
  396. package/dist/storage/errors.d.ts +63 -0
  397. package/dist/{chunk-F2QFAECT.js → storage/errors.js} +23 -30
  398. package/dist/storage/index.cjs +33 -0
  399. package/dist/storage/index.d.cts +7 -0
  400. package/dist/storage/index.d.ts +7 -0
  401. package/dist/storage/index.js +7 -0
  402. package/dist/storage/schemas.cjs +113 -0
  403. package/dist/storage/schemas.d.cts +856 -0
  404. package/dist/storage/schemas.d.ts +856 -0
  405. package/dist/storage/schemas.js +89 -0
  406. package/dist/storage/storage-manager.cjs +208 -0
  407. package/dist/storage/storage-manager.d.cts +52 -0
  408. package/dist/storage/storage-manager.d.ts +52 -0
  409. package/dist/storage/storage-manager.js +173 -0
  410. package/dist/storage/types.cjs +16 -0
  411. package/dist/storage/types.d.cts +5 -0
  412. package/dist/storage/types.d.ts +5 -0
  413. package/dist/storage/types.js +0 -0
  414. package/dist/systemPrompt/contributors.cjs +146 -0
  415. package/dist/systemPrompt/contributors.d.cts +44 -0
  416. package/dist/systemPrompt/contributors.d.ts +44 -0
  417. package/dist/systemPrompt/contributors.js +120 -0
  418. package/dist/systemPrompt/error-codes.cjs +35 -0
  419. package/dist/systemPrompt/error-codes.d.cts +13 -0
  420. package/dist/systemPrompt/error-codes.d.ts +13 -0
  421. package/dist/systemPrompt/error-codes.js +11 -0
  422. package/dist/systemPrompt/errors.cjs +93 -0
  423. package/dist/systemPrompt/errors.d.cts +55 -0
  424. package/dist/systemPrompt/errors.d.ts +55 -0
  425. package/dist/systemPrompt/errors.js +69 -0
  426. package/dist/systemPrompt/in-built-prompts.cjs +68 -0
  427. package/dist/systemPrompt/in-built-prompts.d.cts +28 -0
  428. package/dist/systemPrompt/in-built-prompts.d.ts +28 -0
  429. package/dist/systemPrompt/in-built-prompts.js +42 -0
  430. package/dist/systemPrompt/index.cjs +30 -0
  431. package/dist/systemPrompt/index.d.cts +14 -0
  432. package/dist/systemPrompt/index.d.ts +14 -0
  433. package/dist/systemPrompt/index.js +5 -0
  434. package/dist/systemPrompt/manager.cjs +93 -0
  435. package/dist/systemPrompt/manager.d.cts +31 -0
  436. package/dist/systemPrompt/manager.d.ts +31 -0
  437. package/dist/systemPrompt/manager.js +69 -0
  438. package/dist/systemPrompt/registry.cjs +51 -0
  439. package/dist/systemPrompt/registry.d.cts +20 -0
  440. package/dist/systemPrompt/registry.d.ts +20 -0
  441. package/dist/systemPrompt/registry.js +15 -0
  442. package/dist/systemPrompt/schemas.cjs +107 -0
  443. package/dist/systemPrompt/schemas.d.cts +401 -0
  444. package/dist/systemPrompt/schemas.d.ts +401 -0
  445. package/dist/systemPrompt/schemas.js +81 -0
  446. package/dist/systemPrompt/types.cjs +16 -0
  447. package/dist/systemPrompt/types.d.cts +19 -0
  448. package/dist/systemPrompt/types.d.ts +19 -0
  449. package/dist/systemPrompt/types.js +0 -0
  450. package/dist/tools/confirmation/allowed-tools-provider/factory.cjs +44 -0
  451. package/dist/tools/confirmation/allowed-tools-provider/factory.d.cts +19 -0
  452. package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts +19 -0
  453. package/dist/tools/confirmation/allowed-tools-provider/factory.js +20 -0
  454. package/dist/tools/confirmation/allowed-tools-provider/in-memory.cjs +62 -0
  455. package/dist/tools/confirmation/allowed-tools-provider/in-memory.d.cts +17 -0
  456. package/dist/tools/confirmation/allowed-tools-provider/in-memory.d.ts +17 -0
  457. package/dist/tools/confirmation/allowed-tools-provider/in-memory.js +38 -0
  458. package/dist/tools/confirmation/allowed-tools-provider/storage.cjs +68 -0
  459. package/dist/tools/confirmation/allowed-tools-provider/storage.d.cts +26 -0
  460. package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts +26 -0
  461. package/dist/tools/confirmation/allowed-tools-provider/storage.js +44 -0
  462. package/dist/tools/confirmation/allowed-tools-provider/types.cjs +16 -0
  463. package/dist/tools/confirmation/allowed-tools-provider/types.d.cts +35 -0
  464. package/dist/tools/confirmation/allowed-tools-provider/types.d.ts +35 -0
  465. package/dist/tools/confirmation/allowed-tools-provider/types.js +0 -0
  466. package/dist/tools/confirmation/event-based-confirmation-provider.cjs +158 -0
  467. package/dist/tools/confirmation/event-based-confirmation-provider.d.cts +41 -0
  468. package/dist/tools/confirmation/event-based-confirmation-provider.d.ts +41 -0
  469. package/dist/tools/confirmation/event-based-confirmation-provider.js +134 -0
  470. package/dist/tools/confirmation/factory.cjs +52 -0
  471. package/dist/tools/confirmation/factory.d.cts +37 -0
  472. package/dist/tools/confirmation/factory.d.ts +37 -0
  473. package/dist/tools/confirmation/factory.js +28 -0
  474. package/dist/tools/confirmation/noop-confirmation-provider.cjs +49 -0
  475. package/dist/tools/confirmation/noop-confirmation-provider.d.cts +22 -0
  476. package/dist/tools/confirmation/noop-confirmation-provider.d.ts +22 -0
  477. package/dist/tools/confirmation/noop-confirmation-provider.js +25 -0
  478. package/dist/tools/confirmation/types.cjs +16 -0
  479. package/dist/tools/confirmation/types.d.cts +46 -0
  480. package/dist/tools/confirmation/types.d.ts +46 -0
  481. package/dist/tools/confirmation/types.js +0 -0
  482. package/dist/tools/error-codes.cjs +40 -0
  483. package/dist/tools/error-codes.d.cts +18 -0
  484. package/dist/tools/error-codes.d.ts +18 -0
  485. package/dist/tools/error-codes.js +16 -0
  486. package/dist/tools/errors.cjs +164 -0
  487. package/dist/tools/errors.d.cts +97 -0
  488. package/dist/tools/errors.d.ts +97 -0
  489. package/dist/tools/errors.js +140 -0
  490. package/dist/tools/index.cjs +37 -0
  491. package/dist/tools/index.d.cts +19 -0
  492. package/dist/tools/index.d.ts +19 -0
  493. package/dist/tools/index.js +8 -0
  494. package/dist/tools/internal-tools/implementations/search-history-tool.cjs +61 -0
  495. package/dist/tools/internal-tools/implementations/search-history-tool.d.cts +15 -0
  496. package/dist/tools/internal-tools/implementations/search-history-tool.d.ts +15 -0
  497. package/dist/tools/internal-tools/implementations/search-history-tool.js +37 -0
  498. package/dist/tools/internal-tools/index.cjs +24 -0
  499. package/dist/tools/internal-tools/index.d.cts +13 -0
  500. package/dist/tools/internal-tools/index.d.ts +13 -0
  501. package/dist/tools/internal-tools/index.js +2 -0
  502. package/dist/tools/internal-tools/provider.cjs +159 -0
  503. package/dist/tools/internal-tools/provider.d.cts +66 -0
  504. package/dist/tools/internal-tools/provider.d.ts +66 -0
  505. package/dist/tools/internal-tools/provider.js +135 -0
  506. package/dist/tools/internal-tools/registry.cjs +43 -0
  507. package/dist/tools/internal-tools/registry.d.cts +45 -0
  508. package/dist/tools/internal-tools/registry.d.ts +45 -0
  509. package/dist/tools/internal-tools/registry.js +17 -0
  510. package/dist/tools/schemas.cjs +45 -0
  511. package/dist/tools/schemas.d.cts +21 -0
  512. package/dist/tools/schemas.d.ts +21 -0
  513. package/dist/tools/schemas.js +20 -0
  514. package/dist/tools/tool-manager.cjs +275 -0
  515. package/dist/tools/tool-manager.d.cts +106 -0
  516. package/dist/tools/tool-manager.d.ts +106 -0
  517. package/dist/tools/tool-manager.js +251 -0
  518. package/dist/tools/types.cjs +16 -0
  519. package/dist/tools/types.d.cts +66 -0
  520. package/dist/tools/types.d.ts +66 -0
  521. package/dist/tools/types.js +0 -0
  522. package/dist/utils/api-key-resolver.cjs +62 -0
  523. package/dist/utils/api-key-resolver.d.cts +23 -0
  524. package/dist/utils/api-key-resolver.d.ts +23 -0
  525. package/dist/utils/api-key-resolver.js +36 -0
  526. package/dist/utils/api-key-store.cjs +56 -0
  527. package/dist/utils/api-key-store.d.cts +26 -0
  528. package/dist/utils/api-key-store.d.ts +26 -0
  529. package/dist/utils/api-key-store.js +30 -0
  530. package/dist/utils/env.cjs +154 -0
  531. package/dist/utils/env.d.cts +29 -0
  532. package/dist/utils/env.d.ts +29 -0
  533. package/dist/utils/env.js +118 -0
  534. package/dist/utils/error-conversion.cjs +53 -0
  535. package/dist/utils/error-conversion.d.cts +13 -0
  536. package/dist/utils/error-conversion.d.ts +13 -0
  537. package/dist/utils/error-conversion.js +29 -0
  538. package/dist/utils/execution-context.cjs +85 -0
  539. package/dist/utils/execution-context.d.cts +21 -0
  540. package/dist/utils/execution-context.d.ts +21 -0
  541. package/dist/utils/execution-context.js +49 -0
  542. package/dist/{chunk-MVKLS3LM.js → utils/fs-walk.cjs} +27 -18
  543. package/dist/utils/fs-walk.d.cts +9 -0
  544. package/dist/utils/fs-walk.d.ts +9 -0
  545. package/dist/utils/fs-walk.js +18 -0
  546. package/dist/utils/index.cjs +44 -0
  547. package/dist/utils/index.d.cts +63 -0
  548. package/dist/utils/index.d.ts +63 -0
  549. package/dist/utils/index.js +12 -0
  550. package/dist/utils/path.cjs +197 -0
  551. package/dist/utils/path.d.cts +54 -0
  552. package/dist/utils/path.d.ts +54 -0
  553. package/dist/utils/path.js +159 -0
  554. package/dist/utils/port-utils.cjs +37 -0
  555. package/dist/utils/port-utils.d.cts +11 -0
  556. package/dist/utils/port-utils.d.ts +11 -0
  557. package/dist/utils/port-utils.js +13 -0
  558. package/dist/utils/port-utils.spec.cjs +26 -0
  559. package/dist/utils/port-utils.spec.d.cts +2 -0
  560. package/dist/utils/port-utils.spec.d.ts +2 -0
  561. package/dist/utils/port-utils.spec.js +25 -0
  562. package/dist/utils/redactor.cjs +105 -0
  563. package/dist/utils/redactor.d.cts +18 -0
  564. package/dist/utils/redactor.d.ts +18 -0
  565. package/dist/utils/redactor.js +81 -0
  566. package/dist/utils/result.cjs +115 -0
  567. package/dist/utils/result.d.cts +180 -0
  568. package/dist/utils/result.d.ts +180 -0
  569. package/dist/utils/result.js +82 -0
  570. package/dist/utils/safe-stringify.cjs +57 -0
  571. package/dist/utils/safe-stringify.d.cts +7 -0
  572. package/dist/utils/safe-stringify.d.ts +7 -0
  573. package/dist/utils/safe-stringify.js +33 -0
  574. package/dist/utils/schema.cjs +42 -0
  575. package/dist/utils/schema.d.cts +6 -0
  576. package/dist/utils/schema.d.ts +6 -0
  577. package/dist/utils/schema.js +18 -0
  578. package/dist/utils/service-initializer.cjs +119 -0
  579. package/dist/utils/service-initializer.d.cts +63 -0
  580. package/dist/utils/service-initializer.d.ts +63 -0
  581. package/dist/utils/service-initializer.js +95 -0
  582. package/dist/utils/user-info.cjs +30 -0
  583. package/dist/utils/user-info.d.cts +3 -0
  584. package/dist/utils/user-info.d.ts +3 -0
  585. package/dist/utils/user-info.js +6 -0
  586. package/dist/utils/zod-schema-converter.cjs +112 -0
  587. package/dist/utils/zod-schema-converter.d.cts +13 -0
  588. package/dist/utils/zod-schema-converter.d.ts +13 -0
  589. package/dist/utils/zod-schema-converter.js +87 -0
  590. package/package.json +2 -2
  591. package/dist/chunk-D62MHQBE.js +0 -2203
  592. package/dist/chunk-FCJVTIBV.js +0 -535
  593. package/dist/chunk-TPERKLLN.js +0 -75
  594. package/dist/errors-ZZ4Z3FKB.js +0 -10
  595. package/dist/loader-HBNEYPQZ.js +0 -20
  596. package/dist/path-TP7WBDED.js +0 -21
  597. package/dist/registry-Z4DFXODW.js +0 -14
@@ -0,0 +1,245 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var search_service_exports = {};
20
+ __export(search_service_exports, {
21
+ SearchService: () => SearchService
22
+ });
23
+ module.exports = __toCommonJS(search_service_exports);
24
+ var import_logger = require("../logger/index.js");
25
+ class SearchService {
26
+ constructor(database) {
27
+ this.database = database;
28
+ }
29
+ /**
30
+ * Search for messages across all sessions or within a specific session
31
+ */
32
+ async searchMessages(query, options = {}) {
33
+ const { sessionId, role, limit = 20, offset = 0 } = options;
34
+ if (!query.trim()) {
35
+ return {
36
+ results: [],
37
+ total: 0,
38
+ hasMore: false,
39
+ query,
40
+ options
41
+ };
42
+ }
43
+ try {
44
+ import_logger.logger.debug(`Searching messages for query: "${query}"`, {
45
+ sessionId,
46
+ role,
47
+ limit,
48
+ offset
49
+ });
50
+ const allResults = [];
51
+ const sessionIds = sessionId ? [sessionId] : await this.getSessionIds();
52
+ for (const sId of sessionIds) {
53
+ const sessionResults = await this.searchInSession(query, sId, role);
54
+ allResults.push(...sessionResults);
55
+ }
56
+ const sortedResults = this.sortResults(allResults, query);
57
+ const total = sortedResults.length;
58
+ const paginatedResults = sortedResults.slice(offset, offset + limit);
59
+ const hasMore = offset + limit < total;
60
+ return {
61
+ results: paginatedResults,
62
+ total,
63
+ hasMore,
64
+ query,
65
+ options
66
+ };
67
+ } catch (error) {
68
+ import_logger.logger.error(
69
+ `Error searching messages: ${error instanceof Error ? error.message : String(error)}`
70
+ );
71
+ return {
72
+ results: [],
73
+ total: 0,
74
+ hasMore: false,
75
+ query,
76
+ options
77
+ };
78
+ }
79
+ }
80
+ /**
81
+ * Search for sessions that contain the query
82
+ */
83
+ async searchSessions(query) {
84
+ if (!query.trim()) {
85
+ return {
86
+ results: [],
87
+ total: 0,
88
+ hasMore: false,
89
+ query
90
+ };
91
+ }
92
+ try {
93
+ import_logger.logger.debug(`Searching sessions for query: "${query}"`);
94
+ const sessionResults = [];
95
+ const sessionIds = await this.getSessionIds();
96
+ for (const sessionId of sessionIds) {
97
+ const messageResults = await this.searchInSession(query, sessionId);
98
+ if (messageResults.length > 0) {
99
+ const sessionMetadata = await this.getSessionMetadata(sessionId);
100
+ if (sessionMetadata) {
101
+ const firstMatch = messageResults[0];
102
+ if (firstMatch) {
103
+ sessionResults.push({
104
+ sessionId,
105
+ matchCount: messageResults.length,
106
+ firstMatch,
107
+ metadata: sessionMetadata
108
+ });
109
+ }
110
+ }
111
+ }
112
+ }
113
+ const sortedResults = sessionResults.sort((a, b) => {
114
+ if (a.matchCount !== b.matchCount) {
115
+ return b.matchCount - a.matchCount;
116
+ }
117
+ return b.metadata.lastActivity - a.metadata.lastActivity;
118
+ });
119
+ return {
120
+ results: sortedResults,
121
+ total: sortedResults.length,
122
+ hasMore: false,
123
+ query
124
+ };
125
+ } catch (error) {
126
+ import_logger.logger.error(
127
+ `Error searching sessions: ${error instanceof Error ? error.message : String(error)}`
128
+ );
129
+ return {
130
+ results: [],
131
+ total: 0,
132
+ hasMore: false,
133
+ query
134
+ };
135
+ }
136
+ }
137
+ /**
138
+ * Search for messages within a specific session
139
+ */
140
+ async searchInSession(query, sessionId, role) {
141
+ const messagesKey = `messages:${sessionId}`;
142
+ const MAX_MESSAGES_PER_SEARCH = 1e4;
143
+ const messages = await this.database.getRange(
144
+ messagesKey,
145
+ 0,
146
+ MAX_MESSAGES_PER_SEARCH
147
+ );
148
+ const results = [];
149
+ const lowerQuery = query.toLowerCase();
150
+ for (let i = 0; i < messages.length; i++) {
151
+ const message = messages[i];
152
+ if (!message) {
153
+ continue;
154
+ }
155
+ if (role && message.role !== role) {
156
+ continue;
157
+ }
158
+ const searchableText = this.extractSearchableText(message);
159
+ if (!searchableText) {
160
+ continue;
161
+ }
162
+ const lowerText = searchableText.toLowerCase();
163
+ const matchIndex = lowerText.indexOf(lowerQuery);
164
+ if (matchIndex !== -1) {
165
+ const matchedText = searchableText.substring(matchIndex, matchIndex + query.length);
166
+ const context = this.getContext(searchableText, matchIndex, query.length);
167
+ results.push({
168
+ sessionId,
169
+ message,
170
+ matchedText,
171
+ context,
172
+ messageIndex: i
173
+ });
174
+ }
175
+ }
176
+ return results;
177
+ }
178
+ /**
179
+ * Extract searchable text from a message
180
+ */
181
+ extractSearchableText(message) {
182
+ if (!message.content) {
183
+ return null;
184
+ }
185
+ if (typeof message.content === "string") {
186
+ return message.content;
187
+ }
188
+ if (Array.isArray(message.content)) {
189
+ return message.content.filter((part) => part.type === "text").map((part) => "text" in part ? part.text : "").join(" ");
190
+ }
191
+ return null;
192
+ }
193
+ /**
194
+ * Get context around a match for preview
195
+ */
196
+ getContext(text, matchIndex, matchLength, contextLength = 50) {
197
+ const start = Math.max(0, matchIndex - contextLength);
198
+ const end = Math.min(text.length, matchIndex + matchLength + contextLength);
199
+ let context = text.substring(start, end);
200
+ if (start > 0) {
201
+ context = "..." + context;
202
+ }
203
+ if (end < text.length) {
204
+ context = context + "...";
205
+ }
206
+ return context;
207
+ }
208
+ /**
209
+ * Sort search results by relevance
210
+ */
211
+ sortResults(results, query) {
212
+ const lowerQuery = query.toLowerCase();
213
+ return results.sort((a, b) => {
214
+ const aText = this.extractSearchableText(a.message)?.toLowerCase() || "";
215
+ const bText = this.extractSearchableText(b.message)?.toLowerCase() || "";
216
+ const aExactMatch = aText.includes(` ${lowerQuery} `) || aText.startsWith(lowerQuery) || aText.endsWith(lowerQuery);
217
+ const bExactMatch = bText.includes(` ${lowerQuery} `) || bText.startsWith(lowerQuery) || bText.endsWith(lowerQuery);
218
+ if (aExactMatch && !bExactMatch) return -1;
219
+ if (!aExactMatch && bExactMatch) return 1;
220
+ return b.messageIndex - a.messageIndex;
221
+ });
222
+ }
223
+ /**
224
+ * Get all session IDs
225
+ */
226
+ async getSessionIds() {
227
+ const sessionKeys = await this.database.list("session:");
228
+ return sessionKeys.map((key) => key.replace("session:", ""));
229
+ }
230
+ /**
231
+ * Get session metadata
232
+ */
233
+ async getSessionMetadata(sessionId) {
234
+ const sessionKey = `session:${sessionId}`;
235
+ const sessionData = await this.database.get(sessionKey);
236
+ if (!sessionData) {
237
+ throw new Error(`Session metadata not found: ${sessionId}`);
238
+ }
239
+ return sessionData;
240
+ }
241
+ }
242
+ // Annotate the CommonJS export names for ESM import in node:
243
+ 0 && (module.exports = {
244
+ SearchService
245
+ });
@@ -0,0 +1,47 @@
1
+ import { DatabaseBackend } from '../storage/backend/database-backend.cjs';
2
+ import { SearchOptions, SearchResponse, SessionSearchResponse } from './types.cjs';
3
+ import '../context/types.cjs';
4
+ import '../llm/types.cjs';
5
+
6
+ /**
7
+ * Service for searching through conversation history
8
+ * TODO: remove duplicate stuff related to session manager instead of directly using DB
9
+ */
10
+ declare class SearchService {
11
+ private database;
12
+ constructor(database: DatabaseBackend);
13
+ /**
14
+ * Search for messages across all sessions or within a specific session
15
+ */
16
+ searchMessages(query: string, options?: SearchOptions): Promise<SearchResponse>;
17
+ /**
18
+ * Search for sessions that contain the query
19
+ */
20
+ searchSessions(query: string): Promise<SessionSearchResponse>;
21
+ /**
22
+ * Search for messages within a specific session
23
+ */
24
+ private searchInSession;
25
+ /**
26
+ * Extract searchable text from a message
27
+ */
28
+ private extractSearchableText;
29
+ /**
30
+ * Get context around a match for preview
31
+ */
32
+ private getContext;
33
+ /**
34
+ * Sort search results by relevance
35
+ */
36
+ private sortResults;
37
+ /**
38
+ * Get all session IDs
39
+ */
40
+ private getSessionIds;
41
+ /**
42
+ * Get session metadata
43
+ */
44
+ private getSessionMetadata;
45
+ }
46
+
47
+ export { SearchService };
@@ -0,0 +1,47 @@
1
+ import { DatabaseBackend } from '../storage/backend/database-backend.js';
2
+ import { SearchOptions, SearchResponse, SessionSearchResponse } from './types.js';
3
+ import '../context/types.js';
4
+ import '../llm/types.js';
5
+
6
+ /**
7
+ * Service for searching through conversation history
8
+ * TODO: remove duplicate stuff related to session manager instead of directly using DB
9
+ */
10
+ declare class SearchService {
11
+ private database;
12
+ constructor(database: DatabaseBackend);
13
+ /**
14
+ * Search for messages across all sessions or within a specific session
15
+ */
16
+ searchMessages(query: string, options?: SearchOptions): Promise<SearchResponse>;
17
+ /**
18
+ * Search for sessions that contain the query
19
+ */
20
+ searchSessions(query: string): Promise<SessionSearchResponse>;
21
+ /**
22
+ * Search for messages within a specific session
23
+ */
24
+ private searchInSession;
25
+ /**
26
+ * Extract searchable text from a message
27
+ */
28
+ private extractSearchableText;
29
+ /**
30
+ * Get context around a match for preview
31
+ */
32
+ private getContext;
33
+ /**
34
+ * Sort search results by relevance
35
+ */
36
+ private sortResults;
37
+ /**
38
+ * Get all session IDs
39
+ */
40
+ private getSessionIds;
41
+ /**
42
+ * Get session metadata
43
+ */
44
+ private getSessionMetadata;
45
+ }
46
+
47
+ export { SearchService };
@@ -0,0 +1,221 @@
1
+ import { logger } from "../logger/index.js";
2
+ class SearchService {
3
+ constructor(database) {
4
+ this.database = database;
5
+ }
6
+ /**
7
+ * Search for messages across all sessions or within a specific session
8
+ */
9
+ async searchMessages(query, options = {}) {
10
+ const { sessionId, role, limit = 20, offset = 0 } = options;
11
+ if (!query.trim()) {
12
+ return {
13
+ results: [],
14
+ total: 0,
15
+ hasMore: false,
16
+ query,
17
+ options
18
+ };
19
+ }
20
+ try {
21
+ logger.debug(`Searching messages for query: "${query}"`, {
22
+ sessionId,
23
+ role,
24
+ limit,
25
+ offset
26
+ });
27
+ const allResults = [];
28
+ const sessionIds = sessionId ? [sessionId] : await this.getSessionIds();
29
+ for (const sId of sessionIds) {
30
+ const sessionResults = await this.searchInSession(query, sId, role);
31
+ allResults.push(...sessionResults);
32
+ }
33
+ const sortedResults = this.sortResults(allResults, query);
34
+ const total = sortedResults.length;
35
+ const paginatedResults = sortedResults.slice(offset, offset + limit);
36
+ const hasMore = offset + limit < total;
37
+ return {
38
+ results: paginatedResults,
39
+ total,
40
+ hasMore,
41
+ query,
42
+ options
43
+ };
44
+ } catch (error) {
45
+ logger.error(
46
+ `Error searching messages: ${error instanceof Error ? error.message : String(error)}`
47
+ );
48
+ return {
49
+ results: [],
50
+ total: 0,
51
+ hasMore: false,
52
+ query,
53
+ options
54
+ };
55
+ }
56
+ }
57
+ /**
58
+ * Search for sessions that contain the query
59
+ */
60
+ async searchSessions(query) {
61
+ if (!query.trim()) {
62
+ return {
63
+ results: [],
64
+ total: 0,
65
+ hasMore: false,
66
+ query
67
+ };
68
+ }
69
+ try {
70
+ logger.debug(`Searching sessions for query: "${query}"`);
71
+ const sessionResults = [];
72
+ const sessionIds = await this.getSessionIds();
73
+ for (const sessionId of sessionIds) {
74
+ const messageResults = await this.searchInSession(query, sessionId);
75
+ if (messageResults.length > 0) {
76
+ const sessionMetadata = await this.getSessionMetadata(sessionId);
77
+ if (sessionMetadata) {
78
+ const firstMatch = messageResults[0];
79
+ if (firstMatch) {
80
+ sessionResults.push({
81
+ sessionId,
82
+ matchCount: messageResults.length,
83
+ firstMatch,
84
+ metadata: sessionMetadata
85
+ });
86
+ }
87
+ }
88
+ }
89
+ }
90
+ const sortedResults = sessionResults.sort((a, b) => {
91
+ if (a.matchCount !== b.matchCount) {
92
+ return b.matchCount - a.matchCount;
93
+ }
94
+ return b.metadata.lastActivity - a.metadata.lastActivity;
95
+ });
96
+ return {
97
+ results: sortedResults,
98
+ total: sortedResults.length,
99
+ hasMore: false,
100
+ query
101
+ };
102
+ } catch (error) {
103
+ logger.error(
104
+ `Error searching sessions: ${error instanceof Error ? error.message : String(error)}`
105
+ );
106
+ return {
107
+ results: [],
108
+ total: 0,
109
+ hasMore: false,
110
+ query
111
+ };
112
+ }
113
+ }
114
+ /**
115
+ * Search for messages within a specific session
116
+ */
117
+ async searchInSession(query, sessionId, role) {
118
+ const messagesKey = `messages:${sessionId}`;
119
+ const MAX_MESSAGES_PER_SEARCH = 1e4;
120
+ const messages = await this.database.getRange(
121
+ messagesKey,
122
+ 0,
123
+ MAX_MESSAGES_PER_SEARCH
124
+ );
125
+ const results = [];
126
+ const lowerQuery = query.toLowerCase();
127
+ for (let i = 0; i < messages.length; i++) {
128
+ const message = messages[i];
129
+ if (!message) {
130
+ continue;
131
+ }
132
+ if (role && message.role !== role) {
133
+ continue;
134
+ }
135
+ const searchableText = this.extractSearchableText(message);
136
+ if (!searchableText) {
137
+ continue;
138
+ }
139
+ const lowerText = searchableText.toLowerCase();
140
+ const matchIndex = lowerText.indexOf(lowerQuery);
141
+ if (matchIndex !== -1) {
142
+ const matchedText = searchableText.substring(matchIndex, matchIndex + query.length);
143
+ const context = this.getContext(searchableText, matchIndex, query.length);
144
+ results.push({
145
+ sessionId,
146
+ message,
147
+ matchedText,
148
+ context,
149
+ messageIndex: i
150
+ });
151
+ }
152
+ }
153
+ return results;
154
+ }
155
+ /**
156
+ * Extract searchable text from a message
157
+ */
158
+ extractSearchableText(message) {
159
+ if (!message.content) {
160
+ return null;
161
+ }
162
+ if (typeof message.content === "string") {
163
+ return message.content;
164
+ }
165
+ if (Array.isArray(message.content)) {
166
+ return message.content.filter((part) => part.type === "text").map((part) => "text" in part ? part.text : "").join(" ");
167
+ }
168
+ return null;
169
+ }
170
+ /**
171
+ * Get context around a match for preview
172
+ */
173
+ getContext(text, matchIndex, matchLength, contextLength = 50) {
174
+ const start = Math.max(0, matchIndex - contextLength);
175
+ const end = Math.min(text.length, matchIndex + matchLength + contextLength);
176
+ let context = text.substring(start, end);
177
+ if (start > 0) {
178
+ context = "..." + context;
179
+ }
180
+ if (end < text.length) {
181
+ context = context + "...";
182
+ }
183
+ return context;
184
+ }
185
+ /**
186
+ * Sort search results by relevance
187
+ */
188
+ sortResults(results, query) {
189
+ const lowerQuery = query.toLowerCase();
190
+ return results.sort((a, b) => {
191
+ const aText = this.extractSearchableText(a.message)?.toLowerCase() || "";
192
+ const bText = this.extractSearchableText(b.message)?.toLowerCase() || "";
193
+ const aExactMatch = aText.includes(` ${lowerQuery} `) || aText.startsWith(lowerQuery) || aText.endsWith(lowerQuery);
194
+ const bExactMatch = bText.includes(` ${lowerQuery} `) || bText.startsWith(lowerQuery) || bText.endsWith(lowerQuery);
195
+ if (aExactMatch && !bExactMatch) return -1;
196
+ if (!aExactMatch && bExactMatch) return 1;
197
+ return b.messageIndex - a.messageIndex;
198
+ });
199
+ }
200
+ /**
201
+ * Get all session IDs
202
+ */
203
+ async getSessionIds() {
204
+ const sessionKeys = await this.database.list("session:");
205
+ return sessionKeys.map((key) => key.replace("session:", ""));
206
+ }
207
+ /**
208
+ * Get session metadata
209
+ */
210
+ async getSessionMetadata(sessionId) {
211
+ const sessionKey = `session:${sessionId}`;
212
+ const sessionData = await this.database.get(sessionKey);
213
+ if (!sessionData) {
214
+ throw new Error(`Session metadata not found: ${sessionId}`);
215
+ }
216
+ return sessionData;
217
+ }
218
+ }
219
+ export {
220
+ SearchService
221
+ };
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+ var types_exports = {};
16
+ module.exports = __toCommonJS(types_exports);
@@ -0,0 +1,78 @@
1
+ import { InternalMessage } from '../context/types.cjs';
2
+ import '../llm/types.cjs';
3
+
4
+ /**
5
+ * Options for searching messages
6
+ */
7
+ interface SearchOptions {
8
+ /** Limit search to a specific session */
9
+ sessionId?: string;
10
+ /** Filter by message role */
11
+ role?: 'user' | 'assistant' | 'system' | 'tool';
12
+ /** Maximum number of results to return */
13
+ limit?: number;
14
+ /** Offset for pagination */
15
+ offset?: number;
16
+ }
17
+ /**
18
+ * Result of a message search
19
+ */
20
+ interface SearchResult {
21
+ /** Session ID where the message was found */
22
+ sessionId: string;
23
+ /** The message that matched the search */
24
+ message: InternalMessage;
25
+ /** The specific text that matched the search query */
26
+ matchedText: string;
27
+ /** Context around the match for preview */
28
+ context: string;
29
+ /** Index of the message within the session */
30
+ messageIndex: number;
31
+ }
32
+ /**
33
+ * Result of a session search
34
+ */
35
+ interface SessionSearchResult {
36
+ /** Session ID */
37
+ sessionId: string;
38
+ /** Number of messages that matched in this session */
39
+ matchCount: number;
40
+ /** Preview of the first matching message */
41
+ firstMatch: SearchResult;
42
+ /** Session metadata */
43
+ metadata: {
44
+ createdAt: number;
45
+ lastActivity: number;
46
+ messageCount: number;
47
+ };
48
+ }
49
+ /**
50
+ * Response format for search API
51
+ */
52
+ interface SearchResponse {
53
+ /** Array of search results */
54
+ results: SearchResult[];
55
+ /** Total number of results available */
56
+ total: number;
57
+ /** Whether there are more results beyond the current page */
58
+ hasMore: boolean;
59
+ /** Query that was searched */
60
+ query: string;
61
+ /** Options used for the search */
62
+ options: SearchOptions;
63
+ }
64
+ /**
65
+ * Response format for session search API
66
+ */
67
+ interface SessionSearchResponse {
68
+ /** Array of session search results */
69
+ results: SessionSearchResult[];
70
+ /** Total number of sessions with matches */
71
+ total: number;
72
+ /** Whether there are more results beyond the current page */
73
+ hasMore: boolean;
74
+ /** Query that was searched */
75
+ query: string;
76
+ }
77
+
78
+ export type { SearchOptions, SearchResponse, SearchResult, SessionSearchResponse, SessionSearchResult };