@dexto/core 1.5.7 → 1.6.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 (697) hide show
  1. package/README.md +19 -8
  2. package/dist/agent/DextoAgent.cjs +383 -153
  3. package/dist/agent/DextoAgent.d.ts +112 -60
  4. package/dist/agent/DextoAgent.d.ts.map +1 -1
  5. package/dist/agent/DextoAgent.js +380 -150
  6. package/dist/{context/compaction/provider.cjs → agent/agent-options.cjs} +2 -2
  7. package/dist/agent/agent-options.d.ts +53 -0
  8. package/dist/agent/agent-options.d.ts.map +1 -0
  9. package/dist/agent/agentCard.cjs +1 -1
  10. package/dist/agent/errors.cjs +2 -2
  11. package/dist/agent/errors.d.ts.map +1 -1
  12. package/dist/agent/index.cjs +1 -6
  13. package/dist/agent/index.d.ts +3 -2
  14. package/dist/agent/index.d.ts.map +1 -1
  15. package/dist/agent/index.js +1 -7
  16. package/dist/{storage/blob/provider.cjs → agent/runtime-config.cjs} +2 -2
  17. package/dist/agent/runtime-config.d.ts +53 -0
  18. package/dist/agent/runtime-config.d.ts.map +1 -0
  19. package/dist/agent/schemas.cjs +2 -99
  20. package/dist/agent/schemas.d.ts +10 -9160
  21. package/dist/agent/schemas.d.ts.map +1 -1
  22. package/dist/agent/schemas.js +1 -104
  23. package/dist/agent/state-manager.d.ts +5 -5
  24. package/dist/agent/state-manager.d.ts.map +1 -1
  25. package/dist/approval/error-codes.cjs +1 -1
  26. package/dist/approval/error-codes.d.ts +1 -1
  27. package/dist/approval/error-codes.d.ts.map +1 -1
  28. package/dist/approval/error-codes.js +1 -1
  29. package/dist/approval/errors.cjs +5 -5
  30. package/dist/approval/errors.d.ts +2 -2
  31. package/dist/approval/errors.d.ts.map +1 -1
  32. package/dist/approval/errors.js +5 -5
  33. package/dist/approval/index.cjs +8 -8
  34. package/dist/approval/index.d.ts +2 -2
  35. package/dist/approval/index.d.ts.map +1 -1
  36. package/dist/approval/index.js +8 -8
  37. package/dist/approval/manager.cjs +77 -57
  38. package/dist/approval/manager.d.ts +41 -43
  39. package/dist/approval/manager.d.ts.map +1 -1
  40. package/dist/approval/manager.js +75 -55
  41. package/dist/approval/schemas.cjs +26 -25
  42. package/dist/approval/schemas.d.ts +35 -15
  43. package/dist/approval/schemas.d.ts.map +1 -1
  44. package/dist/approval/schemas.js +22 -21
  45. package/dist/approval/types.cjs +1 -1
  46. package/dist/approval/types.d.ts +14 -14
  47. package/dist/approval/types.d.ts.map +1 -1
  48. package/dist/approval/types.js +1 -1
  49. package/dist/context/compaction/index.cjs +2 -23
  50. package/dist/context/compaction/index.d.ts +1 -7
  51. package/dist/context/compaction/index.d.ts.map +1 -1
  52. package/dist/context/compaction/index.js +1 -16
  53. package/dist/context/compaction/strategies/noop.cjs +19 -1
  54. package/dist/context/compaction/strategies/noop.d.ts +13 -3
  55. package/dist/context/compaction/strategies/noop.d.ts.map +1 -1
  56. package/dist/context/compaction/strategies/noop.js +19 -1
  57. package/dist/context/compaction/strategies/{reactive-overflow.cjs → reactive-overflow-compaction.cjs} +67 -64
  58. package/dist/context/compaction/strategies/{reactive-overflow.d.ts → reactive-overflow-compaction.d.ts} +19 -36
  59. package/dist/context/compaction/strategies/reactive-overflow-compaction.d.ts.map +1 -0
  60. package/dist/context/compaction/strategies/{reactive-overflow.js → reactive-overflow-compaction.js} +63 -60
  61. package/dist/context/compaction/types.d.ts +40 -8
  62. package/dist/context/compaction/types.d.ts.map +1 -1
  63. package/dist/context/manager.cjs +5 -3
  64. package/dist/context/manager.d.ts +4 -3
  65. package/dist/context/manager.d.ts.map +1 -1
  66. package/dist/context/manager.js +5 -3
  67. package/dist/context/types.d.ts +2 -0
  68. package/dist/context/types.d.ts.map +1 -1
  69. package/dist/context/utils.cjs +70 -43
  70. package/dist/context/utils.d.ts +14 -14
  71. package/dist/context/utils.d.ts.map +1 -1
  72. package/dist/context/utils.js +69 -42
  73. package/dist/errors/result-bridge.d.ts +2 -2
  74. package/dist/errors/result-bridge.d.ts.map +1 -1
  75. package/dist/errors/types.cjs +1 -1
  76. package/dist/errors/types.d.ts +3 -3
  77. package/dist/errors/types.d.ts.map +1 -1
  78. package/dist/errors/types.js +1 -1
  79. package/dist/events/index.cjs +15 -2
  80. package/dist/events/index.d.ts +78 -7
  81. package/dist/events/index.d.ts.map +1 -1
  82. package/dist/events/index.js +15 -2
  83. package/dist/{plugins → hooks}/builtins/content-policy.cjs +7 -6
  84. package/dist/hooks/builtins/content-policy.d.ts +24 -0
  85. package/dist/hooks/builtins/content-policy.d.ts.map +1 -0
  86. package/dist/{plugins → hooks}/builtins/content-policy.js +6 -5
  87. package/dist/{plugins → hooks}/builtins/response-sanitizer.cjs +3 -3
  88. package/dist/hooks/builtins/response-sanitizer.d.ts +22 -0
  89. package/dist/hooks/builtins/response-sanitizer.d.ts.map +1 -0
  90. package/dist/{plugins → hooks}/builtins/response-sanitizer.js +2 -2
  91. package/dist/hooks/error-codes.cjs +43 -0
  92. package/dist/hooks/error-codes.d.ts +34 -0
  93. package/dist/hooks/error-codes.d.ts.map +1 -0
  94. package/dist/hooks/error-codes.js +20 -0
  95. package/dist/{storage/cache/providers/memory.cjs → hooks/index.cjs} +15 -18
  96. package/dist/hooks/index.d.ts +14 -0
  97. package/dist/hooks/index.d.ts.map +1 -0
  98. package/dist/hooks/index.js +11 -0
  99. package/dist/hooks/manager.cjs +354 -0
  100. package/dist/hooks/manager.d.ts +103 -0
  101. package/dist/hooks/manager.d.ts.map +1 -0
  102. package/dist/hooks/manager.js +331 -0
  103. package/dist/{plugins → hooks}/types.d.ts +36 -34
  104. package/dist/hooks/types.d.ts.map +1 -0
  105. package/dist/index.browser.cjs +13 -12
  106. package/dist/index.browser.d.ts +6 -6
  107. package/dist/index.browser.d.ts.map +1 -1
  108. package/dist/index.browser.js +8 -7
  109. package/dist/index.cjs +5 -7
  110. package/dist/index.d.ts +2 -3
  111. package/dist/index.d.ts.map +1 -1
  112. package/dist/index.js +2 -3
  113. package/dist/llm/curation-config.cjs +82 -0
  114. package/dist/llm/curation-config.d.ts +13 -0
  115. package/dist/llm/curation-config.d.ts.map +1 -0
  116. package/dist/llm/curation-config.js +59 -0
  117. package/dist/llm/curation.cjs +57 -0
  118. package/dist/llm/curation.d.ts +16 -0
  119. package/dist/llm/curation.d.ts.map +1 -0
  120. package/dist/llm/curation.js +34 -0
  121. package/dist/llm/errors.cjs +2 -2
  122. package/dist/llm/errors.d.ts +8 -8
  123. package/dist/llm/errors.js +1 -1
  124. package/dist/llm/executor/provider-options.cjs +1 -1
  125. package/dist/llm/executor/provider-options.js +1 -1
  126. package/dist/llm/executor/stream-processor.cjs +131 -11
  127. package/dist/llm/executor/stream-processor.d.ts +7 -5
  128. package/dist/llm/executor/stream-processor.d.ts.map +1 -1
  129. package/dist/llm/executor/stream-processor.js +131 -11
  130. package/dist/llm/executor/turn-executor.cjs +57 -56
  131. package/dist/llm/executor/turn-executor.d.ts +7 -8
  132. package/dist/llm/executor/turn-executor.d.ts.map +1 -1
  133. package/dist/llm/executor/turn-executor.js +57 -56
  134. package/dist/llm/formatters/vercel.cjs +2 -2
  135. package/dist/llm/formatters/vercel.d.ts +2 -2
  136. package/dist/llm/formatters/vercel.d.ts.map +1 -1
  137. package/dist/llm/index.cjs +14 -3
  138. package/dist/llm/index.d.ts +3 -1
  139. package/dist/llm/index.d.ts.map +1 -1
  140. package/dist/llm/index.js +13 -2
  141. package/dist/llm/providers/local/schemas.d.ts +10 -10
  142. package/dist/llm/registry/auto-update.cjs +263 -0
  143. package/dist/llm/registry/auto-update.d.ts +27 -0
  144. package/dist/llm/registry/auto-update.d.ts.map +1 -0
  145. package/dist/llm/registry/auto-update.js +227 -0
  146. package/dist/llm/registry/index.cjs +806 -0
  147. package/dist/llm/{registry.d.ts → registry/index.d.ts} +21 -43
  148. package/dist/llm/registry/index.d.ts.map +1 -0
  149. package/dist/llm/registry/index.js +756 -0
  150. package/dist/llm/registry/models.generated.cjs +4861 -0
  151. package/dist/llm/registry/models.generated.d.ts +431 -0
  152. package/dist/llm/registry/models.generated.d.ts.map +1 -0
  153. package/dist/llm/registry/models.generated.js +4838 -0
  154. package/dist/{storage/database/providers/index.cjs → llm/registry/models.manual.cjs} +22 -12
  155. package/dist/llm/registry/models.manual.d.ts +22 -0
  156. package/dist/llm/registry/models.manual.d.ts.map +1 -0
  157. package/dist/llm/registry/models.manual.js +21 -0
  158. package/dist/llm/registry/sync.cjs +354 -0
  159. package/dist/llm/registry/sync.d.ts +41 -0
  160. package/dist/llm/registry/sync.d.ts.map +1 -0
  161. package/dist/llm/registry/sync.js +328 -0
  162. package/dist/llm/resolver.cjs +29 -20
  163. package/dist/llm/resolver.d.ts +4 -4
  164. package/dist/llm/resolver.d.ts.map +1 -1
  165. package/dist/llm/resolver.js +28 -20
  166. package/dist/llm/schemas.cjs +69 -94
  167. package/dist/llm/schemas.d.ts +19 -158
  168. package/dist/llm/schemas.d.ts.map +1 -1
  169. package/dist/llm/schemas.js +67 -91
  170. package/dist/llm/services/factory.cjs +6 -7
  171. package/dist/llm/services/factory.d.ts +3 -4
  172. package/dist/llm/services/factory.d.ts.map +1 -1
  173. package/dist/llm/services/factory.js +6 -7
  174. package/dist/llm/services/vercel.cjs +11 -15
  175. package/dist/llm/services/vercel.d.ts +7 -7
  176. package/dist/llm/services/vercel.d.ts.map +1 -1
  177. package/dist/llm/services/vercel.js +11 -15
  178. package/dist/llm/types.cjs +1 -1
  179. package/dist/llm/types.d.ts +1 -1
  180. package/dist/llm/types.d.ts.map +1 -1
  181. package/dist/llm/types.js +1 -1
  182. package/dist/llm/validation.cjs +2 -2
  183. package/dist/llm/validation.d.ts +2 -2
  184. package/dist/llm/validation.d.ts.map +1 -1
  185. package/dist/llm/validation.js +1 -1
  186. package/dist/logger/browser.cjs +4 -4
  187. package/dist/logger/browser.d.ts +4 -4
  188. package/dist/logger/browser.d.ts.map +1 -1
  189. package/dist/logger/browser.js +3 -3
  190. package/dist/{context/compaction/providers/noop-provider.cjs → logger/default-logger-factory.cjs} +16 -22
  191. package/dist/logger/default-logger-factory.d.ts +301 -0
  192. package/dist/logger/default-logger-factory.d.ts.map +1 -0
  193. package/dist/logger/default-logger-factory.js +18 -0
  194. package/dist/logger/factory.d.ts +2 -2
  195. package/dist/logger/factory.d.ts.map +1 -1
  196. package/dist/logger/index.cjs +7 -2
  197. package/dist/logger/index.d.ts +5 -3
  198. package/dist/logger/index.d.ts.map +1 -1
  199. package/dist/logger/index.js +8 -2
  200. package/dist/logger/logger.cjs +4 -4
  201. package/dist/logger/logger.d.ts +4 -4
  202. package/dist/logger/logger.d.ts.map +1 -1
  203. package/dist/logger/logger.js +3 -3
  204. package/dist/logger/v2/dexto-logger.d.ts +3 -3
  205. package/dist/logger/v2/dexto-logger.d.ts.map +1 -1
  206. package/dist/logger/v2/schemas.d.ts +12 -12
  207. package/dist/logger/v2/test-utils.d.ts +5 -5
  208. package/dist/logger/v2/test-utils.d.ts.map +1 -1
  209. package/dist/logger/v2/transport-factory.d.ts +3 -3
  210. package/dist/logger/v2/transport-factory.d.ts.map +1 -1
  211. package/dist/logger/v2/transports/console-transport.d.ts +2 -2
  212. package/dist/logger/v2/transports/console-transport.d.ts.map +1 -1
  213. package/dist/logger/v2/transports/file-transport.d.ts +2 -2
  214. package/dist/logger/v2/transports/file-transport.d.ts.map +1 -1
  215. package/dist/logger/v2/transports/silent-transport.d.ts +2 -2
  216. package/dist/logger/v2/transports/silent-transport.d.ts.map +1 -1
  217. package/dist/logger/v2/types.cjs +1 -1
  218. package/dist/logger/v2/types.d.ts +8 -8
  219. package/dist/logger/v2/types.d.ts.map +1 -1
  220. package/dist/logger/v2/types.js +1 -1
  221. package/dist/mcp/errors.cjs +2 -2
  222. package/dist/mcp/errors.d.ts.map +1 -1
  223. package/dist/mcp/manager.cjs +16 -11
  224. package/dist/mcp/manager.d.ts +16 -13
  225. package/dist/mcp/manager.d.ts.map +1 -1
  226. package/dist/mcp/manager.js +17 -12
  227. package/dist/mcp/mcp-client.cjs +25 -20
  228. package/dist/mcp/mcp-client.d.ts +5 -5
  229. package/dist/mcp/mcp-client.d.ts.map +1 -1
  230. package/dist/mcp/mcp-client.js +20 -15
  231. package/dist/mcp/resolver.cjs +1 -1
  232. package/dist/mcp/schemas.cjs +5 -5
  233. package/dist/mcp/schemas.d.ts +4 -4
  234. package/dist/mcp/schemas.js +2 -2
  235. package/dist/mcp/types.d.ts +7 -7
  236. package/dist/mcp/types.d.ts.map +1 -1
  237. package/dist/memory/manager.d.ts +2 -2
  238. package/dist/memory/manager.d.ts.map +1 -1
  239. package/dist/memory/schemas.d.ts +2 -2
  240. package/dist/prompts/errors.cjs +3 -3
  241. package/dist/prompts/errors.d.ts.map +1 -1
  242. package/dist/prompts/prompt-manager.d.ts +3 -3
  243. package/dist/prompts/prompt-manager.d.ts.map +1 -1
  244. package/dist/prompts/providers/config-prompt-provider.cjs +15 -29
  245. package/dist/prompts/providers/config-prompt-provider.d.ts +3 -3
  246. package/dist/prompts/providers/config-prompt-provider.d.ts.map +1 -1
  247. package/dist/prompts/providers/config-prompt-provider.js +15 -29
  248. package/dist/prompts/providers/custom-prompt-provider.d.ts +2 -2
  249. package/dist/prompts/providers/custom-prompt-provider.d.ts.map +1 -1
  250. package/dist/prompts/providers/mcp-prompt-provider.d.ts +2 -2
  251. package/dist/prompts/providers/mcp-prompt-provider.d.ts.map +1 -1
  252. package/dist/prompts/schemas.d.ts +4 -4
  253. package/dist/resources/{internal-provider.cjs → agent-resources-provider.cjs} +16 -16
  254. package/dist/resources/{internal-provider.d.ts → agent-resources-provider.d.ts} +6 -6
  255. package/dist/resources/agent-resources-provider.d.ts.map +1 -0
  256. package/dist/resources/{internal-provider.js → agent-resources-provider.js} +13 -13
  257. package/dist/resources/errors.cjs +2 -2
  258. package/dist/resources/errors.d.ts.map +1 -1
  259. package/dist/resources/handlers/blob-handler.d.ts +2 -2
  260. package/dist/resources/handlers/blob-handler.d.ts.map +1 -1
  261. package/dist/resources/handlers/factory.d.ts +3 -3
  262. package/dist/resources/handlers/factory.d.ts.map +1 -1
  263. package/dist/resources/handlers/filesystem-handler.cjs +25 -0
  264. package/dist/resources/handlers/filesystem-handler.d.ts +3 -2
  265. package/dist/resources/handlers/filesystem-handler.d.ts.map +1 -1
  266. package/dist/resources/handlers/filesystem-handler.js +25 -0
  267. package/dist/resources/index.cjs +7 -9
  268. package/dist/resources/index.d.ts +3 -3
  269. package/dist/resources/index.d.ts.map +1 -1
  270. package/dist/resources/index.js +5 -10
  271. package/dist/resources/manager.cjs +77 -74
  272. package/dist/resources/manager.d.ts +16 -7
  273. package/dist/resources/manager.d.ts.map +1 -1
  274. package/dist/resources/manager.js +77 -74
  275. package/dist/resources/schemas.cjs +6 -26
  276. package/dist/resources/schemas.d.ts +8 -100
  277. package/dist/resources/schemas.d.ts.map +1 -1
  278. package/dist/resources/schemas.js +4 -23
  279. package/dist/search/search-service.d.ts +2 -2
  280. package/dist/search/search-service.d.ts.map +1 -1
  281. package/dist/session/chat-session.cjs +16 -26
  282. package/dist/session/chat-session.d.ts +7 -5
  283. package/dist/session/chat-session.d.ts.map +1 -1
  284. package/dist/session/chat-session.js +17 -27
  285. package/dist/session/errors.cjs +2 -2
  286. package/dist/session/errors.d.ts.map +1 -1
  287. package/dist/session/history/database.cjs +1 -1
  288. package/dist/session/history/database.d.ts +4 -4
  289. package/dist/session/history/database.d.ts.map +1 -1
  290. package/dist/session/history/factory.d.ts +3 -3
  291. package/dist/session/history/factory.d.ts.map +1 -1
  292. package/dist/session/history/memory.d.ts +4 -4
  293. package/dist/session/history/memory.d.ts.map +1 -1
  294. package/dist/session/history/types.d.ts +2 -2
  295. package/dist/session/history/types.d.ts.map +1 -1
  296. package/dist/session/index.cjs +3 -0
  297. package/dist/session/index.d.ts +2 -0
  298. package/dist/session/index.d.ts.map +1 -1
  299. package/dist/session/index.js +2 -0
  300. package/dist/session/message-queue.cjs +29 -5
  301. package/dist/session/message-queue.d.ts +5 -3
  302. package/dist/session/message-queue.d.ts.map +1 -1
  303. package/dist/session/message-queue.js +29 -5
  304. package/dist/session/session-manager.cjs +107 -12
  305. package/dist/session/session-manager.d.ts +49 -8
  306. package/dist/session/session-manager.d.ts.map +1 -1
  307. package/dist/session/session-manager.js +97 -12
  308. package/dist/session/title-generator.cjs +2 -2
  309. package/dist/session/title-generator.d.ts +2 -2
  310. package/dist/session/title-generator.d.ts.map +1 -1
  311. package/dist/session/types.d.ts +1 -0
  312. package/dist/session/types.d.ts.map +1 -1
  313. package/dist/storage/blob/index.cjs +0 -40
  314. package/dist/storage/blob/index.d.ts +2 -44
  315. package/dist/storage/blob/index.d.ts.map +1 -1
  316. package/dist/storage/blob/index.js +0 -30
  317. package/dist/storage/cache/index.cjs +0 -37
  318. package/dist/storage/cache/index.d.ts +0 -42
  319. package/dist/storage/cache/index.d.ts.map +1 -1
  320. package/dist/storage/cache/index.js +0 -28
  321. package/dist/storage/database/index.cjs +0 -42
  322. package/dist/storage/database/index.d.ts +0 -43
  323. package/dist/storage/database/index.d.ts.map +1 -1
  324. package/dist/storage/database/index.js +0 -37
  325. package/dist/storage/error-codes.cjs +1 -6
  326. package/dist/storage/error-codes.d.ts +2 -7
  327. package/dist/storage/error-codes.d.ts.map +1 -1
  328. package/dist/storage/error-codes.js +1 -6
  329. package/dist/storage/errors.cjs +18 -82
  330. package/dist/storage/errors.d.ts +4 -24
  331. package/dist/storage/errors.d.ts.map +1 -1
  332. package/dist/storage/errors.js +16 -80
  333. package/dist/storage/index.cjs +8 -69
  334. package/dist/storage/index.d.ts +11 -66
  335. package/dist/storage/index.d.ts.map +1 -1
  336. package/dist/storage/index.js +6 -50
  337. package/dist/storage/storage-manager.cjs +9 -25
  338. package/dist/storage/storage-manager.d.ts +11 -15
  339. package/dist/storage/storage-manager.d.ts.map +1 -1
  340. package/dist/storage/storage-manager.js +8 -23
  341. package/dist/storage/types.d.ts +0 -1
  342. package/dist/storage/types.d.ts.map +1 -1
  343. package/dist/systemPrompt/contributors.d.ts +4 -4
  344. package/dist/systemPrompt/contributors.d.ts.map +1 -1
  345. package/dist/systemPrompt/errors.cjs +2 -2
  346. package/dist/systemPrompt/errors.d.ts.map +1 -1
  347. package/dist/systemPrompt/manager.cjs +1 -5
  348. package/dist/systemPrompt/manager.d.ts +2 -3
  349. package/dist/systemPrompt/manager.d.ts.map +1 -1
  350. package/dist/systemPrompt/manager.js +1 -5
  351. package/dist/telemetry/index.cjs +3 -0
  352. package/dist/telemetry/index.d.ts +2 -0
  353. package/dist/telemetry/index.d.ts.map +1 -1
  354. package/dist/telemetry/index.js +2 -0
  355. package/dist/telemetry/utils.d.ts +4 -4
  356. package/dist/telemetry/utils.d.ts.map +1 -1
  357. package/dist/test-utils/in-memory-storage.cjs +288 -0
  358. package/dist/test-utils/in-memory-storage.js +252 -0
  359. package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts +3 -3
  360. package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts.map +1 -1
  361. package/dist/tools/confirmation/allowed-tools-provider/in-memory.d.ts +2 -2
  362. package/dist/tools/confirmation/allowed-tools-provider/in-memory.d.ts.map +1 -1
  363. package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts +4 -4
  364. package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts.map +1 -1
  365. package/dist/tools/confirmation/allowed-tools-provider/types.d.ts +2 -2
  366. package/dist/tools/confirmation/allowed-tools-provider/types.d.ts.map +1 -1
  367. package/dist/tools/{internal-tools/constants.cjs → define-tool.cjs} +8 -13
  368. package/dist/tools/define-tool.d.ts +11 -0
  369. package/dist/tools/define-tool.d.ts.map +1 -0
  370. package/dist/tools/define-tool.js +7 -0
  371. package/dist/tools/error-codes.cjs +2 -2
  372. package/dist/tools/error-codes.d.ts +2 -2
  373. package/dist/tools/error-codes.d.ts.map +1 -1
  374. package/dist/tools/error-codes.js +2 -2
  375. package/dist/tools/errors.cjs +11 -23
  376. package/dist/tools/errors.d.ts +4 -10
  377. package/dist/tools/errors.d.ts.map +1 -1
  378. package/dist/tools/errors.js +9 -21
  379. package/dist/tools/index.cjs +3 -8
  380. package/dist/tools/index.d.ts +2 -4
  381. package/dist/tools/index.d.ts.map +1 -1
  382. package/dist/tools/index.js +2 -7
  383. package/dist/{storage/blob/providers/index.cjs → tools/pattern-utils.cjs} +11 -9
  384. package/dist/tools/pattern-utils.d.ts +20 -0
  385. package/dist/tools/pattern-utils.d.ts.map +1 -0
  386. package/dist/tools/pattern-utils.js +10 -0
  387. package/dist/tools/schemas.cjs +14 -40
  388. package/dist/tools/schemas.d.ts +6 -50
  389. package/dist/tools/schemas.d.ts.map +1 -1
  390. package/dist/tools/schemas.js +11 -32
  391. package/dist/tools/tool-call-metadata.cjs +75 -0
  392. package/dist/tools/tool-call-metadata.d.ts +16 -0
  393. package/dist/tools/tool-call-metadata.d.ts.map +1 -0
  394. package/dist/tools/tool-call-metadata.js +51 -0
  395. package/dist/tools/tool-manager.cjs +578 -302
  396. package/dist/tools/tool-manager.d.ts +105 -81
  397. package/dist/tools/tool-manager.d.ts.map +1 -1
  398. package/dist/tools/tool-manager.js +578 -306
  399. package/dist/tools/types.d.ts +112 -13
  400. package/dist/tools/types.d.ts.map +1 -1
  401. package/dist/utils/api-key-resolver.cjs +1 -1
  402. package/dist/utils/api-key-resolver.js +1 -1
  403. package/dist/utils/env.cjs +49 -0
  404. package/dist/utils/env.d.ts +4 -0
  405. package/dist/utils/env.d.ts.map +1 -0
  406. package/dist/utils/env.js +24 -0
  407. package/dist/utils/error-conversion.d.ts +2 -2
  408. package/dist/utils/error-conversion.d.ts.map +1 -1
  409. package/dist/utils/index.cjs +3 -1
  410. package/dist/utils/index.d.ts +1 -0
  411. package/dist/utils/index.d.ts.map +1 -1
  412. package/dist/utils/index.js +1 -0
  413. package/dist/utils/path.d.ts +2 -2
  414. package/dist/utils/path.d.ts.map +1 -1
  415. package/dist/utils/result.cjs +1 -1
  416. package/dist/utils/result.d.ts.map +1 -1
  417. package/dist/utils/schema.cjs +9 -5
  418. package/dist/utils/schema.d.ts +4 -2
  419. package/dist/utils/schema.d.ts.map +1 -1
  420. package/dist/utils/schema.js +9 -5
  421. package/dist/utils/service-initializer.cjs +58 -51
  422. package/dist/utils/service-initializer.d.ts +31 -9
  423. package/dist/utils/service-initializer.d.ts.map +1 -1
  424. package/dist/utils/service-initializer.js +58 -51
  425. package/dist/{storage/cache/providers/index.cjs → workspace/error-codes.cjs} +8 -9
  426. package/dist/workspace/error-codes.d.ts +5 -0
  427. package/dist/workspace/error-codes.d.ts.map +1 -0
  428. package/dist/workspace/error-codes.js +7 -0
  429. package/dist/{storage/blob/factory.cjs → workspace/errors.cjs} +20 -14
  430. package/dist/workspace/errors.d.ts +5 -0
  431. package/dist/workspace/errors.d.ts.map +1 -0
  432. package/dist/workspace/errors.js +21 -0
  433. package/dist/{image → workspace}/index.cjs +12 -10
  434. package/dist/workspace/index.d.ts +5 -0
  435. package/dist/workspace/index.d.ts.map +1 -0
  436. package/dist/workspace/index.js +9 -0
  437. package/dist/workspace/manager.cjs +113 -0
  438. package/dist/workspace/manager.d.ts +18 -0
  439. package/dist/workspace/manager.d.ts.map +1 -0
  440. package/dist/workspace/manager.js +90 -0
  441. package/dist/workspace/types.d.ts +14 -0
  442. package/dist/workspace/types.d.ts.map +1 -0
  443. package/package.json +7 -3
  444. package/dist/context/compaction/factory.cjs +0 -57
  445. package/dist/context/compaction/factory.d.ts +0 -17
  446. package/dist/context/compaction/factory.d.ts.map +0 -1
  447. package/dist/context/compaction/factory.js +0 -34
  448. package/dist/context/compaction/provider.d.ts +0 -48
  449. package/dist/context/compaction/provider.d.ts.map +0 -1
  450. package/dist/context/compaction/providers/noop-provider.d.ts +0 -24
  451. package/dist/context/compaction/providers/noop-provider.d.ts.map +0 -1
  452. package/dist/context/compaction/providers/noop-provider.js +0 -24
  453. package/dist/context/compaction/providers/reactive-overflow-provider.cjs +0 -76
  454. package/dist/context/compaction/providers/reactive-overflow-provider.d.ts +0 -51
  455. package/dist/context/compaction/providers/reactive-overflow-provider.d.ts.map +0 -1
  456. package/dist/context/compaction/providers/reactive-overflow-provider.js +0 -52
  457. package/dist/context/compaction/registry.cjs +0 -39
  458. package/dist/context/compaction/registry.d.ts +0 -19
  459. package/dist/context/compaction/registry.d.ts.map +0 -1
  460. package/dist/context/compaction/registry.js +0 -16
  461. package/dist/context/compaction/schemas.cjs +0 -58
  462. package/dist/context/compaction/schemas.d.ts +0 -69
  463. package/dist/context/compaction/schemas.d.ts.map +0 -1
  464. package/dist/context/compaction/schemas.js +0 -34
  465. package/dist/context/compaction/strategies/reactive-overflow.d.ts.map +0 -1
  466. package/dist/image/define-image.cjs +0 -146
  467. package/dist/image/define-image.d.ts +0 -71
  468. package/dist/image/define-image.d.ts.map +0 -1
  469. package/dist/image/define-image.js +0 -121
  470. package/dist/image/index.d.ts +0 -53
  471. package/dist/image/index.d.ts.map +0 -1
  472. package/dist/image/index.js +0 -7
  473. package/dist/image/types.d.ts +0 -246
  474. package/dist/image/types.d.ts.map +0 -1
  475. package/dist/llm/registry.cjs +0 -2075
  476. package/dist/llm/registry.d.ts.map +0 -1
  477. package/dist/llm/registry.js +0 -2025
  478. package/dist/llm/services/test-utils.integration.cjs +0 -237
  479. package/dist/llm/services/test-utils.integration.d.ts +0 -48
  480. package/dist/llm/services/test-utils.integration.d.ts.map +0 -1
  481. package/dist/llm/services/test-utils.integration.js +0 -214
  482. package/dist/plugins/builtins/content-policy.d.ts +0 -26
  483. package/dist/plugins/builtins/content-policy.d.ts.map +0 -1
  484. package/dist/plugins/builtins/response-sanitizer.d.ts +0 -25
  485. package/dist/plugins/builtins/response-sanitizer.d.ts.map +0 -1
  486. package/dist/plugins/error-codes.cjs +0 -43
  487. package/dist/plugins/error-codes.d.ts +0 -34
  488. package/dist/plugins/error-codes.d.ts.map +0 -1
  489. package/dist/plugins/error-codes.js +0 -20
  490. package/dist/plugins/index.cjs +0 -61
  491. package/dist/plugins/index.d.ts +0 -21
  492. package/dist/plugins/index.d.ts.map +0 -1
  493. package/dist/plugins/index.js +0 -30
  494. package/dist/plugins/loader.cjs +0 -171
  495. package/dist/plugins/loader.d.ts +0 -30
  496. package/dist/plugins/loader.d.ts.map +0 -1
  497. package/dist/plugins/loader.js +0 -145
  498. package/dist/plugins/manager.cjs +0 -473
  499. package/dist/plugins/manager.d.ts +0 -106
  500. package/dist/plugins/manager.d.ts.map +0 -1
  501. package/dist/plugins/manager.js +0 -450
  502. package/dist/plugins/registrations/builtins.cjs +0 -51
  503. package/dist/plugins/registrations/builtins.d.ts +0 -17
  504. package/dist/plugins/registrations/builtins.d.ts.map +0 -1
  505. package/dist/plugins/registrations/builtins.js +0 -28
  506. package/dist/plugins/registry.cjs +0 -63
  507. package/dist/plugins/registry.d.ts +0 -101
  508. package/dist/plugins/registry.d.ts.map +0 -1
  509. package/dist/plugins/registry.js +0 -39
  510. package/dist/plugins/schemas.cjs +0 -73
  511. package/dist/plugins/schemas.d.ts +0 -195
  512. package/dist/plugins/schemas.d.ts.map +0 -1
  513. package/dist/plugins/schemas.js +0 -47
  514. package/dist/plugins/types.d.ts.map +0 -1
  515. package/dist/providers/base-registry.cjs +0 -147
  516. package/dist/providers/base-registry.d.ts +0 -147
  517. package/dist/providers/base-registry.d.ts.map +0 -1
  518. package/dist/providers/base-registry.js +0 -123
  519. package/dist/providers/discovery.cjs +0 -109
  520. package/dist/providers/discovery.d.ts +0 -96
  521. package/dist/providers/discovery.d.ts.map +0 -1
  522. package/dist/providers/discovery.js +0 -84
  523. package/dist/providers/index.cjs +0 -24
  524. package/dist/providers/index.d.ts +0 -32
  525. package/dist/providers/index.d.ts.map +0 -1
  526. package/dist/providers/index.js +0 -2
  527. package/dist/resources/internal-provider.d.ts.map +0 -1
  528. package/dist/storage/blob/factory.d.ts +0 -37
  529. package/dist/storage/blob/factory.d.ts.map +0 -1
  530. package/dist/storage/blob/factory.js +0 -15
  531. package/dist/storage/blob/local-blob-store.cjs +0 -496
  532. package/dist/storage/blob/local-blob-store.d.ts +0 -58
  533. package/dist/storage/blob/local-blob-store.d.ts.map +0 -1
  534. package/dist/storage/blob/local-blob-store.js +0 -463
  535. package/dist/storage/blob/memory-blob-store.cjs +0 -326
  536. package/dist/storage/blob/memory-blob-store.d.ts +0 -66
  537. package/dist/storage/blob/memory-blob-store.d.ts.map +0 -1
  538. package/dist/storage/blob/memory-blob-store.js +0 -303
  539. package/dist/storage/blob/provider.d.ts +0 -50
  540. package/dist/storage/blob/provider.d.ts.map +0 -1
  541. package/dist/storage/blob/providers/index.d.ts +0 -8
  542. package/dist/storage/blob/providers/index.d.ts.map +0 -1
  543. package/dist/storage/blob/providers/index.js +0 -7
  544. package/dist/storage/blob/providers/local.cjs +0 -39
  545. package/dist/storage/blob/providers/local.d.ts +0 -17
  546. package/dist/storage/blob/providers/local.d.ts.map +0 -1
  547. package/dist/storage/blob/providers/local.js +0 -16
  548. package/dist/storage/blob/providers/memory.cjs +0 -39
  549. package/dist/storage/blob/providers/memory.d.ts +0 -17
  550. package/dist/storage/blob/providers/memory.d.ts.map +0 -1
  551. package/dist/storage/blob/providers/memory.js +0 -16
  552. package/dist/storage/blob/registry.cjs +0 -50
  553. package/dist/storage/blob/registry.d.ts +0 -42
  554. package/dist/storage/blob/registry.d.ts.map +0 -1
  555. package/dist/storage/blob/registry.js +0 -26
  556. package/dist/storage/blob/schemas.cjs +0 -52
  557. package/dist/storage/blob/schemas.d.ts +0 -85
  558. package/dist/storage/blob/schemas.d.ts.map +0 -1
  559. package/dist/storage/blob/schemas.js +0 -26
  560. package/dist/storage/cache/factory.cjs +0 -38
  561. package/dist/storage/cache/factory.d.ts +0 -37
  562. package/dist/storage/cache/factory.d.ts.map +0 -1
  563. package/dist/storage/cache/factory.js +0 -15
  564. package/dist/storage/cache/memory-cache-store.cjs +0 -107
  565. package/dist/storage/cache/memory-cache-store.d.ts +0 -26
  566. package/dist/storage/cache/memory-cache-store.d.ts.map +0 -1
  567. package/dist/storage/cache/memory-cache-store.js +0 -84
  568. package/dist/storage/cache/provider.cjs +0 -16
  569. package/dist/storage/cache/provider.d.ts +0 -56
  570. package/dist/storage/cache/provider.d.ts.map +0 -1
  571. package/dist/storage/cache/provider.js +0 -0
  572. package/dist/storage/cache/providers/index.d.ts +0 -8
  573. package/dist/storage/cache/providers/index.d.ts.map +0 -1
  574. package/dist/storage/cache/providers/index.js +0 -7
  575. package/dist/storage/cache/providers/memory.d.ts +0 -17
  576. package/dist/storage/cache/providers/memory.d.ts.map +0 -1
  577. package/dist/storage/cache/providers/memory.js +0 -17
  578. package/dist/storage/cache/providers/redis.cjs +0 -66
  579. package/dist/storage/cache/providers/redis.d.ts +0 -20
  580. package/dist/storage/cache/providers/redis.d.ts.map +0 -1
  581. package/dist/storage/cache/providers/redis.js +0 -33
  582. package/dist/storage/cache/redis-store.cjs +0 -173
  583. package/dist/storage/cache/redis-store.d.ts +0 -32
  584. package/dist/storage/cache/redis-store.d.ts.map +0 -1
  585. package/dist/storage/cache/redis-store.js +0 -150
  586. package/dist/storage/cache/registry.cjs +0 -50
  587. package/dist/storage/cache/registry.d.ts +0 -42
  588. package/dist/storage/cache/registry.d.ts.map +0 -1
  589. package/dist/storage/cache/registry.js +0 -26
  590. package/dist/storage/cache/schemas.cjs +0 -81
  591. package/dist/storage/cache/schemas.d.ts +0 -150
  592. package/dist/storage/cache/schemas.d.ts.map +0 -1
  593. package/dist/storage/cache/schemas.js +0 -55
  594. package/dist/storage/database/factory.cjs +0 -38
  595. package/dist/storage/database/factory.d.ts +0 -39
  596. package/dist/storage/database/factory.d.ts.map +0 -1
  597. package/dist/storage/database/factory.js +0 -15
  598. package/dist/storage/database/memory-database-store.cjs +0 -122
  599. package/dist/storage/database/memory-database-store.d.ts +0 -29
  600. package/dist/storage/database/memory-database-store.d.ts.map +0 -1
  601. package/dist/storage/database/memory-database-store.js +0 -99
  602. package/dist/storage/database/postgres-store.cjs +0 -342
  603. package/dist/storage/database/postgres-store.d.ts +0 -55
  604. package/dist/storage/database/postgres-store.d.ts.map +0 -1
  605. package/dist/storage/database/postgres-store.js +0 -319
  606. package/dist/storage/database/provider.cjs +0 -16
  607. package/dist/storage/database/provider.d.ts +0 -56
  608. package/dist/storage/database/provider.d.ts.map +0 -1
  609. package/dist/storage/database/provider.js +0 -0
  610. package/dist/storage/database/providers/index.d.ts +0 -9
  611. package/dist/storage/database/providers/index.d.ts.map +0 -1
  612. package/dist/storage/database/providers/index.js +0 -9
  613. package/dist/storage/database/providers/memory.cjs +0 -40
  614. package/dist/storage/database/providers/memory.d.ts +0 -16
  615. package/dist/storage/database/providers/memory.d.ts.map +0 -1
  616. package/dist/storage/database/providers/memory.js +0 -17
  617. package/dist/storage/database/providers/postgres.cjs +0 -62
  618. package/dist/storage/database/providers/postgres.d.ts +0 -19
  619. package/dist/storage/database/providers/postgres.d.ts.map +0 -1
  620. package/dist/storage/database/providers/postgres.js +0 -29
  621. package/dist/storage/database/providers/sqlite.cjs +0 -66
  622. package/dist/storage/database/providers/sqlite.d.ts +0 -20
  623. package/dist/storage/database/providers/sqlite.d.ts.map +0 -1
  624. package/dist/storage/database/providers/sqlite.js +0 -33
  625. package/dist/storage/database/registry.cjs +0 -50
  626. package/dist/storage/database/registry.d.ts +0 -42
  627. package/dist/storage/database/registry.d.ts.map +0 -1
  628. package/dist/storage/database/registry.js +0 -26
  629. package/dist/storage/database/schemas.cjs +0 -97
  630. package/dist/storage/database/schemas.d.ts +0 -226
  631. package/dist/storage/database/schemas.d.ts.map +0 -1
  632. package/dist/storage/database/schemas.js +0 -70
  633. package/dist/storage/database/sqlite-store.cjs +0 -270
  634. package/dist/storage/database/sqlite-store.d.ts +0 -33
  635. package/dist/storage/database/sqlite-store.d.ts.map +0 -1
  636. package/dist/storage/database/sqlite-store.js +0 -237
  637. package/dist/storage/schemas.cjs +0 -57
  638. package/dist/storage/schemas.d.ts +0 -347
  639. package/dist/storage/schemas.d.ts.map +0 -1
  640. package/dist/storage/schemas.js +0 -37
  641. package/dist/tools/bash-pattern-utils.cjs +0 -91
  642. package/dist/tools/bash-pattern-utils.d.ts +0 -58
  643. package/dist/tools/bash-pattern-utils.d.ts.map +0 -1
  644. package/dist/tools/bash-pattern-utils.js +0 -64
  645. package/dist/tools/custom-tool-registry.cjs +0 -64
  646. package/dist/tools/custom-tool-registry.d.ts +0 -126
  647. package/dist/tools/custom-tool-registry.d.ts.map +0 -1
  648. package/dist/tools/custom-tool-registry.js +0 -40
  649. package/dist/tools/custom-tool-schema-registry.cjs +0 -164
  650. package/dist/tools/custom-tool-schema-registry.d.ts +0 -86
  651. package/dist/tools/custom-tool-schema-registry.d.ts.map +0 -1
  652. package/dist/tools/custom-tool-schema-registry.js +0 -140
  653. package/dist/tools/internal-tools/constants.d.ts +0 -12
  654. package/dist/tools/internal-tools/constants.d.ts.map +0 -1
  655. package/dist/tools/internal-tools/constants.js +0 -12
  656. package/dist/tools/internal-tools/implementations/ask-user-tool.cjs +0 -57
  657. package/dist/tools/internal-tools/implementations/ask-user-tool.d.ts +0 -18
  658. package/dist/tools/internal-tools/implementations/ask-user-tool.d.ts.map +0 -1
  659. package/dist/tools/internal-tools/implementations/ask-user-tool.js +0 -34
  660. package/dist/tools/internal-tools/implementations/delegate-to-url-tool.cjs +0 -192
  661. package/dist/tools/internal-tools/implementations/delegate-to-url-tool.d.ts +0 -33
  662. package/dist/tools/internal-tools/implementations/delegate-to-url-tool.d.ts.map +0 -1
  663. package/dist/tools/internal-tools/implementations/delegate-to-url-tool.js +0 -169
  664. package/dist/tools/internal-tools/implementations/get-resource-tool.cjs +0 -113
  665. package/dist/tools/internal-tools/implementations/get-resource-tool.d.ts +0 -30
  666. package/dist/tools/internal-tools/implementations/get-resource-tool.d.ts.map +0 -1
  667. package/dist/tools/internal-tools/implementations/get-resource-tool.js +0 -90
  668. package/dist/tools/internal-tools/implementations/invoke-skill-tool.cjs +0 -140
  669. package/dist/tools/internal-tools/implementations/invoke-skill-tool.d.ts +0 -24
  670. package/dist/tools/internal-tools/implementations/invoke-skill-tool.d.ts.map +0 -1
  671. package/dist/tools/internal-tools/implementations/invoke-skill-tool.js +0 -117
  672. package/dist/tools/internal-tools/implementations/list-resources-tool.cjs +0 -91
  673. package/dist/tools/internal-tools/implementations/list-resources-tool.d.ts +0 -24
  674. package/dist/tools/internal-tools/implementations/list-resources-tool.d.ts.map +0 -1
  675. package/dist/tools/internal-tools/implementations/list-resources-tool.js +0 -68
  676. package/dist/tools/internal-tools/implementations/search-history-tool.cjs +0 -61
  677. package/dist/tools/internal-tools/implementations/search-history-tool.d.ts +0 -7
  678. package/dist/tools/internal-tools/implementations/search-history-tool.d.ts.map +0 -1
  679. package/dist/tools/internal-tools/implementations/search-history-tool.js +0 -38
  680. package/dist/tools/internal-tools/index.cjs +0 -26
  681. package/dist/tools/internal-tools/index.d.ts +0 -4
  682. package/dist/tools/internal-tools/index.d.ts.map +0 -1
  683. package/dist/tools/internal-tools/index.js +0 -3
  684. package/dist/tools/internal-tools/provider.cjs +0 -324
  685. package/dist/tools/internal-tools/provider.d.ts +0 -114
  686. package/dist/tools/internal-tools/provider.d.ts.map +0 -1
  687. package/dist/tools/internal-tools/provider.js +0 -301
  688. package/dist/tools/internal-tools/registry.cjs +0 -71
  689. package/dist/tools/internal-tools/registry.d.ts +0 -91
  690. package/dist/tools/internal-tools/registry.d.ts.map +0 -1
  691. package/dist/tools/internal-tools/registry.js +0 -47
  692. /package/dist/{context/compaction/provider.js → agent/agent-options.js} +0 -0
  693. /package/dist/{image/types.js → agent/runtime-config.js} +0 -0
  694. /package/dist/{image → hooks}/types.cjs +0 -0
  695. /package/dist/{plugins → hooks}/types.js +0 -0
  696. /package/dist/{plugins → workspace}/types.cjs +0 -0
  697. /package/dist/{storage/blob/provider.js → workspace/types.js} +0 -0
@@ -1,326 +0,0 @@
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 memory_blob_store_exports = {};
20
- __export(memory_blob_store_exports, {
21
- InMemoryBlobStore: () => InMemoryBlobStore
22
- });
23
- module.exports = __toCommonJS(memory_blob_store_exports);
24
- var import_crypto = require("crypto");
25
- var import_stream = require("stream");
26
- var import_types = require("../../logger/v2/types.js");
27
- var import_errors = require("../errors.js");
28
- class InMemoryBlobStore {
29
- config;
30
- blobs = /* @__PURE__ */ new Map();
31
- connected = false;
32
- logger;
33
- constructor(config, logger) {
34
- this.config = config;
35
- this.logger = logger.createChild(import_types.DextoLogComponent.STORAGE);
36
- }
37
- async connect() {
38
- if (this.connected) return;
39
- this.connected = true;
40
- this.logger.debug("InMemoryBlobStore connected");
41
- }
42
- async disconnect() {
43
- this.blobs.clear();
44
- this.connected = false;
45
- this.logger.debug("InMemoryBlobStore disconnected");
46
- }
47
- isConnected() {
48
- return this.connected;
49
- }
50
- getStoreType() {
51
- return "in-memory";
52
- }
53
- async store(input, metadata = {}) {
54
- if (!this.connected) {
55
- throw import_errors.StorageError.blobBackendNotConnected("in-memory");
56
- }
57
- const buffer = await this.inputToBuffer(input);
58
- if (buffer.length > this.config.maxBlobSize) {
59
- throw import_errors.StorageError.blobSizeExceeded(buffer.length, this.config.maxBlobSize);
60
- }
61
- const hash = (0, import_crypto.createHash)("sha256").update(buffer).digest("hex").substring(0, 16);
62
- const id = hash;
63
- const existing = this.blobs.get(id);
64
- if (existing) {
65
- this.logger.debug(
66
- `Blob ${id} already exists, returning existing reference (deduplication)`
67
- );
68
- return {
69
- id,
70
- uri: `blob:${id}`,
71
- metadata: existing.metadata
72
- };
73
- }
74
- const currentSize = this.getTotalSize();
75
- if (currentSize + buffer.length > this.config.maxTotalSize) {
76
- throw import_errors.StorageError.blobTotalSizeExceeded(
77
- currentSize + buffer.length,
78
- this.config.maxTotalSize
79
- );
80
- }
81
- const storedMetadata = {
82
- id,
83
- mimeType: metadata.mimeType || this.detectMimeType(buffer, metadata.originalName),
84
- originalName: metadata.originalName,
85
- createdAt: metadata.createdAt || /* @__PURE__ */ new Date(),
86
- source: metadata.source || "system",
87
- size: buffer.length,
88
- hash
89
- };
90
- this.blobs.set(id, { data: buffer, metadata: storedMetadata });
91
- this.logger.debug(`Stored blob ${id} (${buffer.length} bytes, ${storedMetadata.mimeType})`);
92
- return {
93
- id,
94
- uri: `blob:${id}`,
95
- metadata: storedMetadata
96
- };
97
- }
98
- async retrieve(reference, format = "base64") {
99
- if (!this.connected) {
100
- throw import_errors.StorageError.blobBackendNotConnected("in-memory");
101
- }
102
- const id = this.parseReference(reference);
103
- const blob = this.blobs.get(id);
104
- if (!blob) {
105
- throw import_errors.StorageError.blobNotFound(reference);
106
- }
107
- switch (format) {
108
- case "base64":
109
- return {
110
- format: "base64",
111
- data: blob.data.toString("base64"),
112
- metadata: blob.metadata
113
- };
114
- case "buffer":
115
- return {
116
- format: "buffer",
117
- data: Buffer.from(blob.data),
118
- metadata: { ...blob.metadata }
119
- };
120
- case "path":
121
- throw new Error(
122
- "Path format not supported for in-memory blobs. Use local blob storage for filesystem paths."
123
- );
124
- case "stream": {
125
- const stream = import_stream.Readable.from(blob.data);
126
- return {
127
- format: "stream",
128
- data: stream,
129
- metadata: blob.metadata
130
- };
131
- }
132
- case "url": {
133
- const base64 = blob.data.toString("base64");
134
- const mimeType = blob.metadata.mimeType || "application/octet-stream";
135
- const dataUrl = `data:${mimeType};base64,${base64}`;
136
- return {
137
- format: "url",
138
- data: dataUrl,
139
- metadata: blob.metadata
140
- };
141
- }
142
- default:
143
- throw import_errors.StorageError.blobInvalidInput(format, `Unsupported format: ${format}`);
144
- }
145
- }
146
- async exists(reference) {
147
- if (!this.connected) {
148
- throw import_errors.StorageError.blobBackendNotConnected("in-memory");
149
- }
150
- const id = this.parseReference(reference);
151
- return this.blobs.has(id);
152
- }
153
- async delete(reference) {
154
- if (!this.connected) {
155
- throw import_errors.StorageError.blobBackendNotConnected("in-memory");
156
- }
157
- const id = this.parseReference(reference);
158
- if (!this.blobs.has(id)) {
159
- throw import_errors.StorageError.blobNotFound(reference);
160
- }
161
- this.blobs.delete(id);
162
- this.logger.debug(`Deleted blob: ${id}`);
163
- }
164
- async cleanup(olderThan) {
165
- if (!this.connected) {
166
- throw import_errors.StorageError.blobBackendNotConnected("in-memory");
167
- }
168
- const cutoffDate = olderThan || new Date(Date.now() - 30 * 24 * 60 * 60 * 1e3);
169
- let deletedCount = 0;
170
- for (const [id, { metadata }] of this.blobs.entries()) {
171
- if (metadata.createdAt < cutoffDate) {
172
- this.blobs.delete(id);
173
- deletedCount++;
174
- this.logger.debug(`Cleaned up old blob: ${id}`);
175
- }
176
- }
177
- if (deletedCount > 0) {
178
- this.logger.info(`Blob cleanup: removed ${deletedCount} old blobs from memory`);
179
- }
180
- return deletedCount;
181
- }
182
- async getStats() {
183
- if (!this.connected) {
184
- throw import_errors.StorageError.blobBackendNotConnected("in-memory");
185
- }
186
- return {
187
- count: this.blobs.size,
188
- totalSize: this.getTotalSize(),
189
- backendType: "in-memory",
190
- storePath: "memory://"
191
- };
192
- }
193
- async listBlobs() {
194
- if (!this.connected) {
195
- throw import_errors.StorageError.blobBackendNotConnected("in-memory");
196
- }
197
- return Array.from(this.blobs.entries()).map(([id, { metadata }]) => ({
198
- id,
199
- uri: `blob:${id}`,
200
- metadata
201
- }));
202
- }
203
- getStoragePath() {
204
- return void 0;
205
- }
206
- /**
207
- * Calculate total size of all blobs in memory
208
- */
209
- getTotalSize() {
210
- return Array.from(this.blobs.values()).reduce((sum, { data }) => sum + data.length, 0);
211
- }
212
- /**
213
- * Convert various input types to Buffer.
214
- * Copied from LocalBlobStore with minor adaptations.
215
- */
216
- async inputToBuffer(input) {
217
- if (Buffer.isBuffer(input)) {
218
- return input;
219
- }
220
- if (input instanceof Uint8Array) {
221
- return Buffer.from(input);
222
- }
223
- if (input instanceof ArrayBuffer) {
224
- return Buffer.from(new Uint8Array(input));
225
- }
226
- if (typeof input === "string") {
227
- if (input.startsWith("data:")) {
228
- const commaIndex = input.indexOf(",");
229
- if (commaIndex !== -1 && input.includes(";base64,")) {
230
- const base64Data = input.substring(commaIndex + 1);
231
- return Buffer.from(base64Data, "base64");
232
- }
233
- throw import_errors.StorageError.blobEncodingError(
234
- "inputToBuffer",
235
- "Unsupported data URI format"
236
- );
237
- }
238
- try {
239
- return Buffer.from(input, "base64");
240
- } catch {
241
- throw import_errors.StorageError.blobEncodingError("inputToBuffer", "Invalid base64 string");
242
- }
243
- }
244
- throw import_errors.StorageError.blobInvalidInput(input, `Unsupported input type: ${typeof input}`);
245
- }
246
- /**
247
- * Parse blob reference to extract ID.
248
- * Copied from LocalBlobStore.
249
- */
250
- parseReference(reference) {
251
- if (!reference) {
252
- throw import_errors.StorageError.blobInvalidReference(reference, "Empty reference");
253
- }
254
- if (reference.startsWith("blob:")) {
255
- const id = reference.substring(5);
256
- if (!id) {
257
- throw import_errors.StorageError.blobInvalidReference(reference, "Empty blob ID after prefix");
258
- }
259
- return id;
260
- }
261
- return reference;
262
- }
263
- /**
264
- * Detect MIME type from buffer content and/or filename.
265
- * Copied from LocalBlobStore.
266
- */
267
- detectMimeType(buffer, filename) {
268
- const header = buffer.subarray(0, 16);
269
- if (header.length >= 3) {
270
- const jpegSignature = header.subarray(0, 3);
271
- if (jpegSignature.equals(Buffer.from([255, 216, 255]))) {
272
- return "image/jpeg";
273
- }
274
- }
275
- if (header.length >= 4) {
276
- const signature = header.subarray(0, 4);
277
- if (signature.equals(Buffer.from([137, 80, 78, 71]))) return "image/png";
278
- if (signature.equals(Buffer.from([71, 73, 70, 56]))) return "image/gif";
279
- if (signature.equals(Buffer.from([37, 80, 68, 70]))) return "application/pdf";
280
- }
281
- if (filename) {
282
- const ext = filename.split(".").pop()?.toLowerCase();
283
- const mimeTypes = {
284
- jpg: "image/jpeg",
285
- jpeg: "image/jpeg",
286
- png: "image/png",
287
- gif: "image/gif",
288
- pdf: "application/pdf",
289
- txt: "text/plain",
290
- json: "application/json",
291
- xml: "text/xml",
292
- html: "text/html",
293
- css: "text/css",
294
- js: "text/javascript",
295
- md: "text/markdown",
296
- mp3: "audio/mpeg",
297
- mp4: "video/mp4",
298
- wav: "audio/wav"
299
- };
300
- if (ext && mimeTypes[ext]) return mimeTypes[ext];
301
- }
302
- if (this.isTextBuffer(buffer)) {
303
- return "text/plain";
304
- }
305
- return "application/octet-stream";
306
- }
307
- /**
308
- * Check if buffer contains text content.
309
- * Copied from LocalBlobStore.
310
- */
311
- isTextBuffer(buffer) {
312
- let printableCount = 0;
313
- const sampleSize = Math.min(512, buffer.length);
314
- for (let i = 0; i < sampleSize; i++) {
315
- const byte = buffer[i];
316
- if (byte !== void 0 && (byte >= 32 && byte <= 126 || byte === 9 || byte === 10 || byte === 13)) {
317
- printableCount++;
318
- }
319
- }
320
- return printableCount / sampleSize > 0.7;
321
- }
322
- }
323
- // Annotate the CommonJS export names for ESM import in node:
324
- 0 && (module.exports = {
325
- InMemoryBlobStore
326
- });
@@ -1,66 +0,0 @@
1
- import type { IDextoLogger } from '../../logger/v2/types.js';
2
- import type { BlobStore, BlobInput, BlobMetadata, BlobReference, BlobData, BlobStats } from './types.js';
3
- import type { InMemoryBlobStoreConfig } from './schemas.js';
4
- /**
5
- * In-memory blob store implementation.
6
- *
7
- * Stores blobs in memory with content-based deduplication and size limits.
8
- * Suitable for development, testing, and scenarios where blob persistence
9
- * across restarts is not required.
10
- *
11
- * Features:
12
- * - Content-based deduplication (same as LocalBlobStore)
13
- * - Configurable size limits (per-blob and total)
14
- * - Automatic cleanup of old blobs
15
- * - MIME type detection
16
- * - Multi-format retrieval (base64, buffer, stream, data URI)
17
- *
18
- * Limitations:
19
- * - Data lost on restart (no persistence)
20
- * - Path format not supported (no filesystem)
21
- * - Memory usage proportional to blob size
22
- */
23
- export declare class InMemoryBlobStore implements BlobStore {
24
- private config;
25
- private blobs;
26
- private connected;
27
- private logger;
28
- constructor(config: InMemoryBlobStoreConfig, logger: IDextoLogger);
29
- connect(): Promise<void>;
30
- disconnect(): Promise<void>;
31
- isConnected(): boolean;
32
- getStoreType(): string;
33
- store(input: BlobInput, metadata?: BlobMetadata): Promise<BlobReference>;
34
- retrieve(reference: string, format?: 'base64' | 'buffer' | 'path' | 'stream' | 'url'): Promise<BlobData>;
35
- exists(reference: string): Promise<boolean>;
36
- delete(reference: string): Promise<void>;
37
- cleanup(olderThan?: Date): Promise<number>;
38
- getStats(): Promise<BlobStats>;
39
- listBlobs(): Promise<BlobReference[]>;
40
- getStoragePath(): string | undefined;
41
- /**
42
- * Calculate total size of all blobs in memory
43
- */
44
- private getTotalSize;
45
- /**
46
- * Convert various input types to Buffer.
47
- * Copied from LocalBlobStore with minor adaptations.
48
- */
49
- private inputToBuffer;
50
- /**
51
- * Parse blob reference to extract ID.
52
- * Copied from LocalBlobStore.
53
- */
54
- private parseReference;
55
- /**
56
- * Detect MIME type from buffer content and/or filename.
57
- * Copied from LocalBlobStore.
58
- */
59
- private detectMimeType;
60
- /**
61
- * Check if buffer contains text content.
62
- * Copied from LocalBlobStore.
63
- */
64
- private isTextBuffer;
65
- }
66
- //# sourceMappingURL=memory-blob-store.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memory-blob-store.d.ts","sourceRoot":"","sources":["../../../src/storage/blob/memory-blob-store.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAG7D,OAAO,KAAK,EACR,SAAS,EACT,SAAS,EACT,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,SAAS,EAEZ,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAE5D;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,iBAAkB,YAAW,SAAS;IAC/C,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,KAAK,CAA0E;IACvF,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAe;gBAEjB,MAAM,EAAE,uBAAuB,EAAE,MAAM,EAAE,YAAY;IAK3D,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAMxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjC,WAAW,IAAI,OAAO;IAItB,YAAY,IAAI,MAAM;IAIhB,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,GAAE,YAAiB,GAAG,OAAO,CAAC,aAAa,CAAC;IA8D5E,QAAQ,CACV,SAAS,EAAE,MAAM,EACjB,MAAM,GAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAgB,GACnE,OAAO,CAAC,QAAQ,CAAC;IA6Dd,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAS3C,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAexC,OAAO,CAAC,SAAS,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;IAwB1C,QAAQ,IAAI,OAAO,CAAC,SAAS,CAAC;IAc9B,SAAS,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAY3C,cAAc,IAAI,MAAM,GAAG,SAAS;IAKpC;;OAEG;IACH,OAAO,CAAC,YAAY;IAIpB;;;OAGG;YACW,aAAa;IAuC3B;;;OAGG;IACH,OAAO,CAAC,cAAc;IAgBtB;;;OAGG;IACH,OAAO,CAAC,cAAc;IAkDtB;;;OAGG;IACH,OAAO,CAAC,YAAY;CAiBvB"}
@@ -1,303 +0,0 @@
1
- import "../../chunk-PTJYTZNU.js";
2
- import { createHash } from "crypto";
3
- import { Readable } from "stream";
4
- import { DextoLogComponent } from "../../logger/v2/types.js";
5
- import { StorageError } from "../errors.js";
6
- class InMemoryBlobStore {
7
- config;
8
- blobs = /* @__PURE__ */ new Map();
9
- connected = false;
10
- logger;
11
- constructor(config, logger) {
12
- this.config = config;
13
- this.logger = logger.createChild(DextoLogComponent.STORAGE);
14
- }
15
- async connect() {
16
- if (this.connected) return;
17
- this.connected = true;
18
- this.logger.debug("InMemoryBlobStore connected");
19
- }
20
- async disconnect() {
21
- this.blobs.clear();
22
- this.connected = false;
23
- this.logger.debug("InMemoryBlobStore disconnected");
24
- }
25
- isConnected() {
26
- return this.connected;
27
- }
28
- getStoreType() {
29
- return "in-memory";
30
- }
31
- async store(input, metadata = {}) {
32
- if (!this.connected) {
33
- throw StorageError.blobBackendNotConnected("in-memory");
34
- }
35
- const buffer = await this.inputToBuffer(input);
36
- if (buffer.length > this.config.maxBlobSize) {
37
- throw StorageError.blobSizeExceeded(buffer.length, this.config.maxBlobSize);
38
- }
39
- const hash = createHash("sha256").update(buffer).digest("hex").substring(0, 16);
40
- const id = hash;
41
- const existing = this.blobs.get(id);
42
- if (existing) {
43
- this.logger.debug(
44
- `Blob ${id} already exists, returning existing reference (deduplication)`
45
- );
46
- return {
47
- id,
48
- uri: `blob:${id}`,
49
- metadata: existing.metadata
50
- };
51
- }
52
- const currentSize = this.getTotalSize();
53
- if (currentSize + buffer.length > this.config.maxTotalSize) {
54
- throw StorageError.blobTotalSizeExceeded(
55
- currentSize + buffer.length,
56
- this.config.maxTotalSize
57
- );
58
- }
59
- const storedMetadata = {
60
- id,
61
- mimeType: metadata.mimeType || this.detectMimeType(buffer, metadata.originalName),
62
- originalName: metadata.originalName,
63
- createdAt: metadata.createdAt || /* @__PURE__ */ new Date(),
64
- source: metadata.source || "system",
65
- size: buffer.length,
66
- hash
67
- };
68
- this.blobs.set(id, { data: buffer, metadata: storedMetadata });
69
- this.logger.debug(`Stored blob ${id} (${buffer.length} bytes, ${storedMetadata.mimeType})`);
70
- return {
71
- id,
72
- uri: `blob:${id}`,
73
- metadata: storedMetadata
74
- };
75
- }
76
- async retrieve(reference, format = "base64") {
77
- if (!this.connected) {
78
- throw StorageError.blobBackendNotConnected("in-memory");
79
- }
80
- const id = this.parseReference(reference);
81
- const blob = this.blobs.get(id);
82
- if (!blob) {
83
- throw StorageError.blobNotFound(reference);
84
- }
85
- switch (format) {
86
- case "base64":
87
- return {
88
- format: "base64",
89
- data: blob.data.toString("base64"),
90
- metadata: blob.metadata
91
- };
92
- case "buffer":
93
- return {
94
- format: "buffer",
95
- data: Buffer.from(blob.data),
96
- metadata: { ...blob.metadata }
97
- };
98
- case "path":
99
- throw new Error(
100
- "Path format not supported for in-memory blobs. Use local blob storage for filesystem paths."
101
- );
102
- case "stream": {
103
- const stream = Readable.from(blob.data);
104
- return {
105
- format: "stream",
106
- data: stream,
107
- metadata: blob.metadata
108
- };
109
- }
110
- case "url": {
111
- const base64 = blob.data.toString("base64");
112
- const mimeType = blob.metadata.mimeType || "application/octet-stream";
113
- const dataUrl = `data:${mimeType};base64,${base64}`;
114
- return {
115
- format: "url",
116
- data: dataUrl,
117
- metadata: blob.metadata
118
- };
119
- }
120
- default:
121
- throw StorageError.blobInvalidInput(format, `Unsupported format: ${format}`);
122
- }
123
- }
124
- async exists(reference) {
125
- if (!this.connected) {
126
- throw StorageError.blobBackendNotConnected("in-memory");
127
- }
128
- const id = this.parseReference(reference);
129
- return this.blobs.has(id);
130
- }
131
- async delete(reference) {
132
- if (!this.connected) {
133
- throw StorageError.blobBackendNotConnected("in-memory");
134
- }
135
- const id = this.parseReference(reference);
136
- if (!this.blobs.has(id)) {
137
- throw StorageError.blobNotFound(reference);
138
- }
139
- this.blobs.delete(id);
140
- this.logger.debug(`Deleted blob: ${id}`);
141
- }
142
- async cleanup(olderThan) {
143
- if (!this.connected) {
144
- throw StorageError.blobBackendNotConnected("in-memory");
145
- }
146
- const cutoffDate = olderThan || new Date(Date.now() - 30 * 24 * 60 * 60 * 1e3);
147
- let deletedCount = 0;
148
- for (const [id, { metadata }] of this.blobs.entries()) {
149
- if (metadata.createdAt < cutoffDate) {
150
- this.blobs.delete(id);
151
- deletedCount++;
152
- this.logger.debug(`Cleaned up old blob: ${id}`);
153
- }
154
- }
155
- if (deletedCount > 0) {
156
- this.logger.info(`Blob cleanup: removed ${deletedCount} old blobs from memory`);
157
- }
158
- return deletedCount;
159
- }
160
- async getStats() {
161
- if (!this.connected) {
162
- throw StorageError.blobBackendNotConnected("in-memory");
163
- }
164
- return {
165
- count: this.blobs.size,
166
- totalSize: this.getTotalSize(),
167
- backendType: "in-memory",
168
- storePath: "memory://"
169
- };
170
- }
171
- async listBlobs() {
172
- if (!this.connected) {
173
- throw StorageError.blobBackendNotConnected("in-memory");
174
- }
175
- return Array.from(this.blobs.entries()).map(([id, { metadata }]) => ({
176
- id,
177
- uri: `blob:${id}`,
178
- metadata
179
- }));
180
- }
181
- getStoragePath() {
182
- return void 0;
183
- }
184
- /**
185
- * Calculate total size of all blobs in memory
186
- */
187
- getTotalSize() {
188
- return Array.from(this.blobs.values()).reduce((sum, { data }) => sum + data.length, 0);
189
- }
190
- /**
191
- * Convert various input types to Buffer.
192
- * Copied from LocalBlobStore with minor adaptations.
193
- */
194
- async inputToBuffer(input) {
195
- if (Buffer.isBuffer(input)) {
196
- return input;
197
- }
198
- if (input instanceof Uint8Array) {
199
- return Buffer.from(input);
200
- }
201
- if (input instanceof ArrayBuffer) {
202
- return Buffer.from(new Uint8Array(input));
203
- }
204
- if (typeof input === "string") {
205
- if (input.startsWith("data:")) {
206
- const commaIndex = input.indexOf(",");
207
- if (commaIndex !== -1 && input.includes(";base64,")) {
208
- const base64Data = input.substring(commaIndex + 1);
209
- return Buffer.from(base64Data, "base64");
210
- }
211
- throw StorageError.blobEncodingError(
212
- "inputToBuffer",
213
- "Unsupported data URI format"
214
- );
215
- }
216
- try {
217
- return Buffer.from(input, "base64");
218
- } catch {
219
- throw StorageError.blobEncodingError("inputToBuffer", "Invalid base64 string");
220
- }
221
- }
222
- throw StorageError.blobInvalidInput(input, `Unsupported input type: ${typeof input}`);
223
- }
224
- /**
225
- * Parse blob reference to extract ID.
226
- * Copied from LocalBlobStore.
227
- */
228
- parseReference(reference) {
229
- if (!reference) {
230
- throw StorageError.blobInvalidReference(reference, "Empty reference");
231
- }
232
- if (reference.startsWith("blob:")) {
233
- const id = reference.substring(5);
234
- if (!id) {
235
- throw StorageError.blobInvalidReference(reference, "Empty blob ID after prefix");
236
- }
237
- return id;
238
- }
239
- return reference;
240
- }
241
- /**
242
- * Detect MIME type from buffer content and/or filename.
243
- * Copied from LocalBlobStore.
244
- */
245
- detectMimeType(buffer, filename) {
246
- const header = buffer.subarray(0, 16);
247
- if (header.length >= 3) {
248
- const jpegSignature = header.subarray(0, 3);
249
- if (jpegSignature.equals(Buffer.from([255, 216, 255]))) {
250
- return "image/jpeg";
251
- }
252
- }
253
- if (header.length >= 4) {
254
- const signature = header.subarray(0, 4);
255
- if (signature.equals(Buffer.from([137, 80, 78, 71]))) return "image/png";
256
- if (signature.equals(Buffer.from([71, 73, 70, 56]))) return "image/gif";
257
- if (signature.equals(Buffer.from([37, 80, 68, 70]))) return "application/pdf";
258
- }
259
- if (filename) {
260
- const ext = filename.split(".").pop()?.toLowerCase();
261
- const mimeTypes = {
262
- jpg: "image/jpeg",
263
- jpeg: "image/jpeg",
264
- png: "image/png",
265
- gif: "image/gif",
266
- pdf: "application/pdf",
267
- txt: "text/plain",
268
- json: "application/json",
269
- xml: "text/xml",
270
- html: "text/html",
271
- css: "text/css",
272
- js: "text/javascript",
273
- md: "text/markdown",
274
- mp3: "audio/mpeg",
275
- mp4: "video/mp4",
276
- wav: "audio/wav"
277
- };
278
- if (ext && mimeTypes[ext]) return mimeTypes[ext];
279
- }
280
- if (this.isTextBuffer(buffer)) {
281
- return "text/plain";
282
- }
283
- return "application/octet-stream";
284
- }
285
- /**
286
- * Check if buffer contains text content.
287
- * Copied from LocalBlobStore.
288
- */
289
- isTextBuffer(buffer) {
290
- let printableCount = 0;
291
- const sampleSize = Math.min(512, buffer.length);
292
- for (let i = 0; i < sampleSize; i++) {
293
- const byte = buffer[i];
294
- if (byte !== void 0 && (byte >= 32 && byte <= 126 || byte === 9 || byte === 10 || byte === 13)) {
295
- printableCount++;
296
- }
297
- }
298
- return printableCount / sampleSize > 0.7;
299
- }
300
- }
301
- export {
302
- InMemoryBlobStore
303
- };