@dexto/core 1.1.11 → 1.2.1

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 (416) hide show
  1. package/README.md +24 -4
  2. package/dist/Dexto.cjs +4 -14
  3. package/dist/Dexto.d.ts +8 -29
  4. package/dist/Dexto.d.ts.map +1 -1
  5. package/dist/Dexto.js +4 -12
  6. package/dist/agent/DextoAgent.cjs +92 -3
  7. package/dist/agent/DextoAgent.d.ts +12 -4
  8. package/dist/agent/DextoAgent.d.ts.map +1 -1
  9. package/dist/agent/DextoAgent.js +52 -3
  10. package/dist/agent/agentCard.js +1 -0
  11. package/dist/agent/error-codes.cjs +1 -0
  12. package/dist/agent/error-codes.d.ts +1 -0
  13. package/dist/agent/error-codes.d.ts.map +1 -1
  14. package/dist/agent/error-codes.js +2 -0
  15. package/dist/agent/errors.cjs +13 -0
  16. package/dist/agent/errors.d.ts +4 -0
  17. package/dist/agent/errors.d.ts.map +1 -1
  18. package/dist/agent/errors.js +14 -0
  19. package/dist/agent/index.js +1 -0
  20. package/dist/agent/registry/error-codes.js +1 -0
  21. package/dist/agent/registry/errors.js +1 -0
  22. package/dist/agent/registry/registry.js +1 -0
  23. package/dist/agent/registry/types.js +1 -0
  24. package/dist/agent/registry/user-registry.js +1 -0
  25. package/dist/agent/schemas.cjs +6 -1
  26. package/dist/agent/schemas.d.ts +113 -3
  27. package/dist/agent/schemas.d.ts.map +1 -1
  28. package/dist/agent/schemas.js +7 -1
  29. package/dist/agent/state-manager.js +1 -0
  30. package/dist/approval/error-codes.js +1 -0
  31. package/dist/approval/errors.js +1 -0
  32. package/dist/approval/index.js +1 -0
  33. package/dist/approval/manager.cjs +30 -0
  34. package/dist/approval/manager.d.ts +23 -1
  35. package/dist/approval/manager.d.ts.map +1 -1
  36. package/dist/approval/manager.js +31 -0
  37. package/dist/approval/providers/event-based-approval-provider.js +1 -0
  38. package/dist/approval/providers/factory.js +1 -0
  39. package/dist/approval/providers/noop-approval-provider.js +1 -0
  40. package/dist/approval/schemas.cjs +36 -0
  41. package/dist/approval/schemas.d.ts +173 -0
  42. package/dist/approval/schemas.d.ts.map +1 -1
  43. package/dist/approval/schemas.js +33 -0
  44. package/dist/approval/types.cjs +1 -0
  45. package/dist/approval/types.d.ts +27 -1
  46. package/dist/approval/types.d.ts.map +1 -1
  47. package/dist/approval/types.js +2 -0
  48. package/dist/chunk-C6A6W6XS.js +53 -0
  49. package/dist/config/agent-resolver.js +1 -0
  50. package/dist/config/error-codes.js +1 -0
  51. package/dist/config/errors.js +1 -0
  52. package/dist/config/loader.js +1 -0
  53. package/dist/config/writer.js +1 -0
  54. package/dist/context/compression/middle-removal.js +1 -0
  55. package/dist/context/compression/oldest-removal.js +1 -0
  56. package/dist/context/error-codes.js +1 -0
  57. package/dist/context/errors.js +1 -0
  58. package/dist/context/index.js +1 -0
  59. package/dist/context/manager.cjs +36 -1
  60. package/dist/context/manager.d.ts.map +1 -1
  61. package/dist/context/manager.js +27 -1
  62. package/dist/context/media-helpers.js +1 -0
  63. package/dist/context/utils.cjs +102 -6
  64. package/dist/context/utils.d.ts +35 -2
  65. package/dist/context/utils.d.ts.map +1 -1
  66. package/dist/context/utils.js +100 -6
  67. package/dist/errors/DextoBaseError.js +1 -0
  68. package/dist/errors/DextoRuntimeError.js +1 -0
  69. package/dist/errors/DextoValidationError.js +1 -0
  70. package/dist/errors/index.js +1 -0
  71. package/dist/errors/result-bridge.js +1 -0
  72. package/dist/errors/types.cjs +3 -0
  73. package/dist/errors/types.d.ts +7 -2
  74. package/dist/errors/types.d.ts.map +1 -1
  75. package/dist/errors/types.js +4 -0
  76. package/dist/events/index.cjs +1 -0
  77. package/dist/events/index.d.ts +6 -2
  78. package/dist/events/index.d.ts.map +1 -1
  79. package/dist/events/index.js +2 -0
  80. package/dist/filesystem/error-codes.cjs +53 -0
  81. package/dist/filesystem/error-codes.d.ts +31 -0
  82. package/dist/filesystem/error-codes.d.ts.map +1 -0
  83. package/dist/filesystem/error-codes.js +30 -0
  84. package/dist/filesystem/errors.cjs +303 -0
  85. package/dist/filesystem/errors.d.ts +109 -0
  86. package/dist/filesystem/errors.d.ts.map +1 -0
  87. package/dist/filesystem/errors.js +280 -0
  88. package/dist/filesystem/filesystem-service.cjs +482 -0
  89. package/dist/filesystem/filesystem-service.d.ts +57 -0
  90. package/dist/filesystem/filesystem-service.d.ts.map +1 -0
  91. package/dist/filesystem/filesystem-service.js +449 -0
  92. package/dist/filesystem/index.cjs +37 -0
  93. package/dist/filesystem/index.d.ts +11 -0
  94. package/dist/filesystem/index.d.ts.map +1 -0
  95. package/dist/filesystem/index.js +11 -0
  96. package/dist/filesystem/path-validator.cjs +172 -0
  97. package/dist/filesystem/path-validator.d.ts +53 -0
  98. package/dist/filesystem/path-validator.d.ts.map +1 -0
  99. package/dist/filesystem/path-validator.js +139 -0
  100. package/dist/filesystem/types.cjs +16 -0
  101. package/dist/filesystem/types.d.ts +171 -0
  102. package/dist/filesystem/types.d.ts.map +1 -0
  103. package/dist/filesystem/types.js +0 -0
  104. package/dist/index.browser.js +1 -0
  105. package/dist/index.cjs +3 -3
  106. package/dist/index.d.ts +2 -1
  107. package/dist/index.d.ts.map +1 -1
  108. package/dist/index.js +3 -2
  109. package/dist/llm/error-codes.js +1 -0
  110. package/dist/llm/errors.js +1 -0
  111. package/dist/llm/formatters/anthropic.js +1 -0
  112. package/dist/llm/formatters/factory.js +1 -0
  113. package/dist/llm/formatters/openai.js +1 -0
  114. package/dist/llm/formatters/vercel.js +1 -0
  115. package/dist/llm/registry.cjs +15 -15
  116. package/dist/llm/registry.d.ts +1 -1
  117. package/dist/llm/registry.js +16 -15
  118. package/dist/llm/resolver.js +1 -0
  119. package/dist/llm/schemas.cjs +6 -2
  120. package/dist/llm/schemas.d.ts +10 -0
  121. package/dist/llm/schemas.d.ts.map +1 -1
  122. package/dist/llm/schemas.js +7 -2
  123. package/dist/llm/services/anthropic.cjs +67 -0
  124. package/dist/llm/services/anthropic.d.ts +6 -0
  125. package/dist/llm/services/anthropic.d.ts.map +1 -1
  126. package/dist/llm/services/anthropic.js +27 -0
  127. package/dist/llm/services/factory.js +1 -0
  128. package/dist/llm/services/openai.cjs +87 -0
  129. package/dist/llm/services/openai.d.ts +6 -0
  130. package/dist/llm/services/openai.d.ts.map +1 -1
  131. package/dist/llm/services/openai.js +47 -0
  132. package/dist/llm/services/test-utils.integration.cjs +1 -1
  133. package/dist/llm/services/test-utils.integration.js +2 -1
  134. package/dist/llm/services/vercel.cjs +144 -97
  135. package/dist/llm/services/vercel.d.ts +6 -1
  136. package/dist/llm/services/vercel.d.ts.map +1 -1
  137. package/dist/llm/services/vercel.js +105 -98
  138. package/dist/llm/tokenizer/anthropic.js +1 -0
  139. package/dist/llm/tokenizer/default.js +1 -0
  140. package/dist/llm/tokenizer/factory.js +1 -0
  141. package/dist/llm/tokenizer/google.js +1 -0
  142. package/dist/llm/tokenizer/openai.cjs +1 -1
  143. package/dist/llm/tokenizer/openai.d.ts +1 -1
  144. package/dist/llm/tokenizer/openai.js +2 -1
  145. package/dist/llm/tokenizer/types.js +1 -0
  146. package/dist/llm/types.d.ts +2 -2
  147. package/dist/llm/types.d.ts.map +1 -1
  148. package/dist/llm/types.js +1 -0
  149. package/dist/llm/validation.js +1 -0
  150. package/dist/logger/browser.js +1 -0
  151. package/dist/logger/logger.d.ts +42 -0
  152. package/dist/logger/logger.d.ts.map +1 -1
  153. package/dist/logger/logger.js +1 -0
  154. package/dist/mcp/error-codes.cjs +1 -0
  155. package/dist/mcp/error-codes.d.ts +1 -0
  156. package/dist/mcp/error-codes.d.ts.map +1 -1
  157. package/dist/mcp/error-codes.js +2 -0
  158. package/dist/mcp/errors.cjs +12 -0
  159. package/dist/mcp/errors.d.ts +7 -0
  160. package/dist/mcp/errors.d.ts.map +1 -1
  161. package/dist/mcp/errors.js +13 -0
  162. package/dist/mcp/manager.cjs +66 -16
  163. package/dist/mcp/manager.d.ts +7 -0
  164. package/dist/mcp/manager.d.ts.map +1 -1
  165. package/dist/mcp/manager.js +67 -16
  166. package/dist/mcp/mcp-client.js +1 -0
  167. package/dist/mcp/resolver.js +1 -0
  168. package/dist/mcp/schemas.js +1 -0
  169. package/dist/mcp/types.d.ts +1 -1
  170. package/dist/mcp/types.d.ts.map +1 -1
  171. package/dist/memory/error-codes.js +1 -0
  172. package/dist/memory/errors.js +1 -0
  173. package/dist/memory/index.js +1 -0
  174. package/dist/memory/manager.js +1 -0
  175. package/dist/memory/schemas.js +1 -0
  176. package/dist/plugins/builtins/content-policy.js +1 -0
  177. package/dist/plugins/builtins/response-sanitizer.js +1 -0
  178. package/dist/plugins/error-codes.js +1 -0
  179. package/dist/plugins/index.js +1 -0
  180. package/dist/plugins/loader.js +1 -0
  181. package/dist/plugins/manager.js +1 -0
  182. package/dist/plugins/registrations/builtins.js +1 -0
  183. package/dist/plugins/schemas.js +1 -0
  184. package/dist/preferences/constants.js +1 -0
  185. package/dist/preferences/error-codes.js +1 -0
  186. package/dist/preferences/errors.js +1 -0
  187. package/dist/preferences/index.js +1 -0
  188. package/dist/preferences/loader.cjs +3 -1
  189. package/dist/preferences/loader.d.ts +10 -1
  190. package/dist/preferences/loader.d.ts.map +1 -1
  191. package/dist/preferences/loader.js +4 -1
  192. package/dist/preferences/schemas.cjs +2 -1
  193. package/dist/preferences/schemas.d.ts +8 -0
  194. package/dist/preferences/schemas.d.ts.map +1 -1
  195. package/dist/preferences/schemas.js +3 -1
  196. package/dist/process/command-validator.cjs +544 -0
  197. package/dist/process/command-validator.d.ts +46 -0
  198. package/dist/process/command-validator.d.ts.map +1 -0
  199. package/dist/process/command-validator.js +521 -0
  200. package/dist/process/error-codes.cjs +47 -0
  201. package/dist/process/error-codes.d.ts +25 -0
  202. package/dist/process/error-codes.d.ts.map +1 -0
  203. package/dist/process/error-codes.js +24 -0
  204. package/dist/process/errors.cjs +244 -0
  205. package/dist/process/errors.d.ts +87 -0
  206. package/dist/process/errors.d.ts.map +1 -0
  207. package/dist/process/errors.js +221 -0
  208. package/dist/process/index.cjs +37 -0
  209. package/dist/process/index.d.ts +11 -0
  210. package/dist/process/index.d.ts.map +1 -0
  211. package/dist/process/index.js +11 -0
  212. package/dist/process/process-service.cjs +443 -0
  213. package/dist/process/process-service.d.ts +62 -0
  214. package/dist/process/process-service.d.ts.map +1 -0
  215. package/dist/process/process-service.js +410 -0
  216. package/dist/process/types.cjs +16 -0
  217. package/dist/process/types.d.ts +107 -0
  218. package/dist/process/types.d.ts.map +1 -0
  219. package/dist/process/types.js +0 -0
  220. package/dist/prompts/error-codes.js +1 -0
  221. package/dist/prompts/errors.js +1 -0
  222. package/dist/prompts/index.js +1 -0
  223. package/dist/prompts/name-validation.js +1 -0
  224. package/dist/prompts/prompt-manager.js +1 -0
  225. package/dist/prompts/providers/custom-prompt-provider.js +1 -0
  226. package/dist/prompts/providers/file-prompt-provider.js +1 -0
  227. package/dist/prompts/providers/mcp-prompt-provider.js +1 -0
  228. package/dist/prompts/providers/starter-prompt-provider.js +1 -0
  229. package/dist/prompts/schemas.js +1 -0
  230. package/dist/prompts/utils.js +1 -0
  231. package/dist/resources/error-codes.js +1 -0
  232. package/dist/resources/errors.js +1 -0
  233. package/dist/resources/handlers/blob-handler.js +1 -0
  234. package/dist/resources/handlers/factory.js +1 -0
  235. package/dist/resources/handlers/filesystem-handler.cjs +1 -1
  236. package/dist/resources/handlers/filesystem-handler.d.ts.map +1 -1
  237. package/dist/resources/handlers/filesystem-handler.js +2 -1
  238. package/dist/resources/index.js +1 -0
  239. package/dist/resources/internal-provider.js +1 -0
  240. package/dist/resources/manager.js +1 -0
  241. package/dist/resources/reference-parser.js +1 -0
  242. package/dist/resources/schemas.js +1 -0
  243. package/dist/search/index.js +1 -0
  244. package/dist/search/search-service.js +1 -0
  245. package/dist/session/chat-session.cjs +2 -2
  246. package/dist/session/chat-session.d.ts +2 -2
  247. package/dist/session/chat-session.js +3 -2
  248. package/dist/session/error-codes.js +1 -0
  249. package/dist/session/errors.js +1 -0
  250. package/dist/session/history/database.js +1 -0
  251. package/dist/session/history/factory.js +1 -0
  252. package/dist/session/history/memory.js +1 -0
  253. package/dist/session/index.js +1 -0
  254. package/dist/session/schemas.js +1 -0
  255. package/dist/session/session-manager.d.ts +6 -0
  256. package/dist/session/session-manager.d.ts.map +1 -1
  257. package/dist/session/session-manager.js +1 -0
  258. package/dist/session/title-generator.js +1 -0
  259. package/dist/storage/blob/factory.cjs +3 -3
  260. package/dist/storage/blob/factory.d.ts +3 -1
  261. package/dist/storage/blob/factory.d.ts.map +1 -1
  262. package/dist/storage/blob/factory.js +4 -3
  263. package/dist/storage/blob/local-blob-store.cjs +18 -2
  264. package/dist/storage/blob/local-blob-store.d.ts +2 -1
  265. package/dist/storage/blob/local-blob-store.d.ts.map +1 -1
  266. package/dist/storage/blob/local-blob-store.js +19 -2
  267. package/dist/storage/blob/schemas.js +1 -0
  268. package/dist/storage/cache/factory.js +1 -0
  269. package/dist/storage/cache/memory-cache-store.js +1 -0
  270. package/dist/storage/cache/redis-store.js +1 -0
  271. package/dist/storage/cache/schemas.js +1 -0
  272. package/dist/storage/database/factory.cjs +7 -5
  273. package/dist/storage/database/factory.d.ts +3 -1
  274. package/dist/storage/database/factory.d.ts.map +1 -1
  275. package/dist/storage/database/factory.js +8 -5
  276. package/dist/storage/database/memory-database-store.js +1 -0
  277. package/dist/storage/database/postgres-store.js +1 -0
  278. package/dist/storage/database/schemas.cjs +1 -1
  279. package/dist/storage/database/schemas.js +2 -1
  280. package/dist/storage/database/sqlite-store.cjs +20 -2
  281. package/dist/storage/database/sqlite-store.d.ts +2 -1
  282. package/dist/storage/database/sqlite-store.d.ts.map +1 -1
  283. package/dist/storage/database/sqlite-store.js +21 -2
  284. package/dist/storage/error-codes.cjs +1 -0
  285. package/dist/storage/error-codes.d.ts +1 -0
  286. package/dist/storage/error-codes.d.ts.map +1 -1
  287. package/dist/storage/error-codes.js +2 -0
  288. package/dist/storage/errors.cjs +15 -0
  289. package/dist/storage/errors.d.ts +4 -0
  290. package/dist/storage/errors.d.ts.map +1 -1
  291. package/dist/storage/errors.js +16 -0
  292. package/dist/storage/index.js +1 -0
  293. package/dist/storage/schemas.js +1 -0
  294. package/dist/storage/storage-manager.cjs +7 -5
  295. package/dist/storage/storage-manager.d.ts +5 -2
  296. package/dist/storage/storage-manager.d.ts.map +1 -1
  297. package/dist/storage/storage-manager.js +8 -5
  298. package/dist/systemPrompt/contributors.js +1 -0
  299. package/dist/systemPrompt/error-codes.js +1 -0
  300. package/dist/systemPrompt/errors.js +1 -0
  301. package/dist/systemPrompt/in-built-prompts.js +1 -0
  302. package/dist/systemPrompt/index.js +1 -0
  303. package/dist/systemPrompt/manager.js +1 -0
  304. package/dist/systemPrompt/registry.js +1 -0
  305. package/dist/systemPrompt/schemas.js +1 -0
  306. package/dist/telemetry/decorators.cjs +175 -0
  307. package/dist/telemetry/decorators.d.ts +17 -0
  308. package/dist/telemetry/decorators.d.ts.map +1 -0
  309. package/dist/telemetry/decorators.js +157 -0
  310. package/dist/telemetry/exporters.cjs +108 -0
  311. package/dist/telemetry/exporters.d.ts +29 -0
  312. package/dist/telemetry/exporters.d.ts.map +1 -0
  313. package/dist/telemetry/exporters.js +85 -0
  314. package/dist/telemetry/index.cjs +28 -0
  315. package/dist/telemetry/index.d.ts +2 -0
  316. package/dist/telemetry/index.d.ts.map +1 -0
  317. package/dist/telemetry/index.js +5 -0
  318. package/dist/telemetry/schemas.cjs +71 -0
  319. package/dist/telemetry/schemas.d.ts +54 -0
  320. package/dist/telemetry/schemas.d.ts.map +1 -0
  321. package/dist/telemetry/schemas.js +48 -0
  322. package/dist/telemetry/telemetry.cjs +228 -0
  323. package/dist/telemetry/telemetry.d.ts +74 -0
  324. package/dist/telemetry/telemetry.d.ts.map +1 -0
  325. package/dist/telemetry/telemetry.js +205 -0
  326. package/dist/telemetry/types.cjs +16 -0
  327. package/dist/telemetry/types.d.ts +22 -0
  328. package/dist/telemetry/types.d.ts.map +1 -0
  329. package/dist/telemetry/types.js +0 -0
  330. package/dist/telemetry/utils.cjs +87 -0
  331. package/dist/telemetry/utils.d.ts +21 -0
  332. package/dist/telemetry/utils.d.ts.map +1 -0
  333. package/dist/telemetry/utils.js +62 -0
  334. package/dist/tools/confirmation/allowed-tools-provider/factory.js +1 -0
  335. package/dist/tools/confirmation/allowed-tools-provider/in-memory.js +1 -0
  336. package/dist/tools/confirmation/allowed-tools-provider/storage.js +1 -0
  337. package/dist/tools/error-codes.js +1 -0
  338. package/dist/tools/errors.js +1 -0
  339. package/dist/tools/index.js +1 -0
  340. package/dist/tools/internal-tools/constants.cjs +39 -0
  341. package/dist/tools/internal-tools/constants.d.ts +12 -0
  342. package/dist/tools/internal-tools/constants.d.ts.map +1 -0
  343. package/dist/tools/internal-tools/constants.js +16 -0
  344. package/dist/tools/internal-tools/implementations/ask-user-tool.js +1 -0
  345. package/dist/tools/internal-tools/implementations/bash-exec-tool.cjs +106 -0
  346. package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts +13 -0
  347. package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts.map +1 -0
  348. package/dist/tools/internal-tools/implementations/bash-exec-tool.js +73 -0
  349. package/dist/tools/internal-tools/implementations/bash-output-tool.cjs +49 -0
  350. package/dist/tools/internal-tools/implementations/bash-output-tool.d.ts +12 -0
  351. package/dist/tools/internal-tools/implementations/bash-output-tool.d.ts.map +1 -0
  352. package/dist/tools/internal-tools/implementations/bash-output-tool.js +26 -0
  353. package/dist/tools/internal-tools/implementations/edit-file-tool.cjs +62 -0
  354. package/dist/tools/internal-tools/implementations/edit-file-tool.d.ts +12 -0
  355. package/dist/tools/internal-tools/implementations/edit-file-tool.d.ts.map +1 -0
  356. package/dist/tools/internal-tools/implementations/edit-file-tool.js +39 -0
  357. package/dist/tools/internal-tools/implementations/glob-files-tool.cjs +57 -0
  358. package/dist/tools/internal-tools/implementations/glob-files-tool.d.ts +12 -0
  359. package/dist/tools/internal-tools/implementations/glob-files-tool.d.ts.map +1 -0
  360. package/dist/tools/internal-tools/implementations/glob-files-tool.js +34 -0
  361. package/dist/tools/internal-tools/implementations/grep-content-tool.cjs +71 -0
  362. package/dist/tools/internal-tools/implementations/grep-content-tool.d.ts +12 -0
  363. package/dist/tools/internal-tools/implementations/grep-content-tool.d.ts.map +1 -0
  364. package/dist/tools/internal-tools/implementations/grep-content-tool.js +48 -0
  365. package/dist/tools/internal-tools/implementations/kill-process-tool.cjs +47 -0
  366. package/dist/tools/internal-tools/implementations/kill-process-tool.d.ts +12 -0
  367. package/dist/tools/internal-tools/implementations/kill-process-tool.d.ts.map +1 -0
  368. package/dist/tools/internal-tools/implementations/kill-process-tool.js +24 -0
  369. package/dist/tools/internal-tools/implementations/read-file-tool.cjs +55 -0
  370. package/dist/tools/internal-tools/implementations/read-file-tool.d.ts +12 -0
  371. package/dist/tools/internal-tools/implementations/read-file-tool.d.ts.map +1 -0
  372. package/dist/tools/internal-tools/implementations/read-file-tool.js +32 -0
  373. package/dist/tools/internal-tools/implementations/search-history-tool.js +1 -0
  374. package/dist/tools/internal-tools/implementations/write-file-tool.cjs +56 -0
  375. package/dist/tools/internal-tools/implementations/write-file-tool.d.ts +12 -0
  376. package/dist/tools/internal-tools/implementations/write-file-tool.d.ts.map +1 -0
  377. package/dist/tools/internal-tools/implementations/write-file-tool.js +33 -0
  378. package/dist/tools/internal-tools/index.cjs +3 -1
  379. package/dist/tools/internal-tools/index.d.ts +1 -0
  380. package/dist/tools/internal-tools/index.d.ts.map +1 -1
  381. package/dist/tools/internal-tools/index.js +1 -0
  382. package/dist/tools/internal-tools/provider.js +1 -0
  383. package/dist/tools/internal-tools/registry.cjs +40 -4
  384. package/dist/tools/internal-tools/registry.d.ts +5 -9
  385. package/dist/tools/internal-tools/registry.d.ts.map +1 -1
  386. package/dist/tools/internal-tools/registry.js +41 -3
  387. package/dist/tools/schemas.cjs +18 -5
  388. package/dist/tools/schemas.d.ts +30 -1
  389. package/dist/tools/schemas.d.ts.map +1 -1
  390. package/dist/tools/schemas.js +15 -2
  391. package/dist/tools/tool-manager.cjs +158 -19
  392. package/dist/tools/tool-manager.d.ts +48 -2
  393. package/dist/tools/tool-manager.d.ts.map +1 -1
  394. package/dist/tools/tool-manager.js +118 -19
  395. package/dist/utils/api-key-resolver.js +1 -0
  396. package/dist/utils/api-key-store.js +1 -0
  397. package/dist/utils/async-context.js +1 -0
  398. package/dist/utils/debug.js +1 -0
  399. package/dist/utils/env.js +1 -0
  400. package/dist/utils/error-conversion.js +1 -0
  401. package/dist/utils/execution-context.js +1 -0
  402. package/dist/utils/fs-walk.js +1 -0
  403. package/dist/utils/path.js +1 -0
  404. package/dist/utils/port-utils.js +1 -0
  405. package/dist/utils/redactor.js +1 -0
  406. package/dist/utils/result.js +1 -0
  407. package/dist/utils/safe-stringify.js +1 -0
  408. package/dist/utils/schema-metadata.js +1 -0
  409. package/dist/utils/schema.js +1 -0
  410. package/dist/utils/service-initializer.cjs +42 -4
  411. package/dist/utils/service-initializer.d.ts +2 -1
  412. package/dist/utils/service-initializer.d.ts.map +1 -1
  413. package/dist/utils/service-initializer.js +33 -4
  414. package/dist/utils/user-info.js +1 -0
  415. package/dist/utils/zod-schema-converter.js +1 -0
  416. package/package.json +11 -1
@@ -44,7 +44,10 @@ const LLMConfigFields = {
44
44
  ),
45
45
  maxInputTokens: import_zod.z.coerce.number().int().positive().optional().describe("Max input tokens for history; required for unknown models"),
46
46
  maxOutputTokens: import_zod.z.coerce.number().int().positive().optional().describe("Max tokens for model output"),
47
- temperature: import_zod.z.coerce.number().min(0).max(1).optional().describe("Randomness: 0 deterministic, 1 creative")
47
+ temperature: import_zod.z.coerce.number().min(0).max(1).optional().describe("Randomness: 0 deterministic, 1 creative"),
48
+ allowedMediaTypes: import_zod.z.array(import_zod.z.string()).optional().describe(
49
+ 'MIME type patterns for media expansion (e.g., "image/*", "application/pdf"). If omitted, uses model capabilities from registry. Supports wildcards.'
50
+ )
48
51
  };
49
52
  const LLMConfigSchema = import_zod.z.object({
50
53
  provider: LLMConfigFields.provider,
@@ -56,7 +59,8 @@ const LLMConfigSchema = import_zod.z.object({
56
59
  baseURL: LLMConfigFields.baseURL,
57
60
  maxInputTokens: LLMConfigFields.maxInputTokens,
58
61
  maxOutputTokens: LLMConfigFields.maxOutputTokens,
59
- temperature: LLMConfigFields.temperature
62
+ temperature: LLMConfigFields.temperature,
63
+ allowedMediaTypes: LLMConfigFields.allowedMediaTypes
60
64
  }).strict().superRefine((data, ctx) => {
61
65
  const baseURLIsSet = data.baseURL != null && data.baseURL.trim() !== "";
62
66
  const maxInputTokensIsSet = data.maxInputTokens != null;
@@ -10,6 +10,7 @@ export declare const LLMConfigSchema: z.ZodBranded<z.ZodEffects<z.ZodObject<{
10
10
  maxInputTokens: z.ZodOptional<z.ZodNumber>;
11
11
  maxOutputTokens: z.ZodOptional<z.ZodNumber>;
12
12
  temperature: z.ZodOptional<z.ZodNumber>;
13
+ allowedMediaTypes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
13
14
  }, "strict", z.ZodTypeAny, {
14
15
  apiKey: string;
15
16
  provider: "openai" | "openai-compatible" | "anthropic" | "google" | "groq" | "xai" | "cohere";
@@ -20,6 +21,7 @@ export declare const LLMConfigSchema: z.ZodBranded<z.ZodEffects<z.ZodObject<{
20
21
  maxInputTokens?: number | undefined;
21
22
  maxOutputTokens?: number | undefined;
22
23
  temperature?: number | undefined;
24
+ allowedMediaTypes?: string[] | undefined;
23
25
  }, {
24
26
  apiKey: string;
25
27
  provider: "openai" | "openai-compatible" | "anthropic" | "google" | "groq" | "xai" | "cohere";
@@ -30,6 +32,7 @@ export declare const LLMConfigSchema: z.ZodBranded<z.ZodEffects<z.ZodObject<{
30
32
  maxInputTokens?: number | undefined;
31
33
  maxOutputTokens?: number | undefined;
32
34
  temperature?: number | undefined;
35
+ allowedMediaTypes?: string[] | undefined;
33
36
  }>, {
34
37
  apiKey: string;
35
38
  provider: "openai" | "openai-compatible" | "anthropic" | "google" | "groq" | "xai" | "cohere";
@@ -40,6 +43,7 @@ export declare const LLMConfigSchema: z.ZodBranded<z.ZodEffects<z.ZodObject<{
40
43
  maxInputTokens?: number | undefined;
41
44
  maxOutputTokens?: number | undefined;
42
45
  temperature?: number | undefined;
46
+ allowedMediaTypes?: string[] | undefined;
43
47
  }, {
44
48
  apiKey: string;
45
49
  provider: "openai" | "openai-compatible" | "anthropic" | "google" | "groq" | "xai" | "cohere";
@@ -50,6 +54,7 @@ export declare const LLMConfigSchema: z.ZodBranded<z.ZodEffects<z.ZodObject<{
50
54
  maxInputTokens?: number | undefined;
51
55
  maxOutputTokens?: number | undefined;
52
56
  temperature?: number | undefined;
57
+ allowedMediaTypes?: string[] | undefined;
53
58
  }>, "ValidatedLLMConfig">;
54
59
  export type LLMConfig = z.input<typeof LLMConfigSchema>;
55
60
  export type ValidatedLLMConfig = z.output<typeof LLMConfigSchema>;
@@ -63,6 +68,7 @@ export declare const LLMUpdatesSchema: z.ZodEffects<z.ZodObject<{
63
68
  maxInputTokens: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
64
69
  maxOutputTokens: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
65
70
  temperature: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
71
+ allowedMediaTypes: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
66
72
  }, "strict", z.ZodTypeAny, {
67
73
  apiKey?: string | undefined;
68
74
  provider?: "openai" | "openai-compatible" | "anthropic" | "google" | "groq" | "xai" | "cohere" | undefined;
@@ -73,6 +79,7 @@ export declare const LLMUpdatesSchema: z.ZodEffects<z.ZodObject<{
73
79
  maxInputTokens?: number | undefined;
74
80
  maxOutputTokens?: number | undefined;
75
81
  temperature?: number | undefined;
82
+ allowedMediaTypes?: string[] | undefined;
76
83
  }, {
77
84
  apiKey?: string | undefined;
78
85
  provider?: "openai" | "openai-compatible" | "anthropic" | "google" | "groq" | "xai" | "cohere" | undefined;
@@ -83,6 +90,7 @@ export declare const LLMUpdatesSchema: z.ZodEffects<z.ZodObject<{
83
90
  maxInputTokens?: number | undefined;
84
91
  maxOutputTokens?: number | undefined;
85
92
  temperature?: number | undefined;
93
+ allowedMediaTypes?: string[] | undefined;
86
94
  }>, {
87
95
  apiKey?: string | undefined;
88
96
  provider?: "openai" | "openai-compatible" | "anthropic" | "google" | "groq" | "xai" | "cohere" | undefined;
@@ -93,6 +101,7 @@ export declare const LLMUpdatesSchema: z.ZodEffects<z.ZodObject<{
93
101
  maxInputTokens?: number | undefined;
94
102
  maxOutputTokens?: number | undefined;
95
103
  temperature?: number | undefined;
104
+ allowedMediaTypes?: string[] | undefined;
96
105
  }, {
97
106
  apiKey?: string | undefined;
98
107
  provider?: "openai" | "openai-compatible" | "anthropic" | "google" | "groq" | "xai" | "cohere" | undefined;
@@ -103,6 +112,7 @@ export declare const LLMUpdatesSchema: z.ZodEffects<z.ZodObject<{
103
112
  maxInputTokens?: number | undefined;
104
113
  maxOutputTokens?: number | undefined;
105
114
  temperature?: number | undefined;
115
+ allowedMediaTypes?: string[] | undefined;
106
116
  }>;
107
117
  export type LLMUpdates = z.input<typeof LLMUpdatesSchema>;
108
118
  export type { LLMUpdateContext } from '../llm/types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/llm/schemas.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA0DxB,4CAA4C;AAE5C,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAoJM,CAAC;AAGnC,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACxD,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,eAAe,CAAC,CAAC;AAGlE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAavB,CAAC;AACP,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/llm/schemas.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAkExB,4CAA4C;AAE5C,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAqJM,CAAC;AAGnC,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACxD,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,eAAe,CAAC,CAAC;AAGlE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAavB,CAAC;AACP,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -1,3 +1,4 @@
1
+ import "../chunk-C6A6W6XS.js";
1
2
  import { LLMErrorCode } from "./error-codes.js";
2
3
  import { ErrorScope, ErrorType } from "../errors/types.js";
3
4
  import { DextoRuntimeError } from "../errors/index.js";
@@ -29,7 +30,10 @@ const LLMConfigFields = {
29
30
  ),
30
31
  maxInputTokens: z.coerce.number().int().positive().optional().describe("Max input tokens for history; required for unknown models"),
31
32
  maxOutputTokens: z.coerce.number().int().positive().optional().describe("Max tokens for model output"),
32
- temperature: z.coerce.number().min(0).max(1).optional().describe("Randomness: 0 deterministic, 1 creative")
33
+ temperature: z.coerce.number().min(0).max(1).optional().describe("Randomness: 0 deterministic, 1 creative"),
34
+ allowedMediaTypes: z.array(z.string()).optional().describe(
35
+ 'MIME type patterns for media expansion (e.g., "image/*", "application/pdf"). If omitted, uses model capabilities from registry. Supports wildcards.'
36
+ )
33
37
  };
34
38
  const LLMConfigSchema = z.object({
35
39
  provider: LLMConfigFields.provider,
@@ -41,7 +45,8 @@ const LLMConfigSchema = z.object({
41
45
  baseURL: LLMConfigFields.baseURL,
42
46
  maxInputTokens: LLMConfigFields.maxInputTokens,
43
47
  maxOutputTokens: LLMConfigFields.maxOutputTokens,
44
- temperature: LLMConfigFields.temperature
48
+ temperature: LLMConfigFields.temperature,
49
+ allowedMediaTypes: LLMConfigFields.allowedMediaTypes
45
50
  }).strict().superRefine((data, ctx) => {
46
51
  const baseURLIsSet = data.baseURL != null && data.baseURL.trim() !== "";
47
52
  const maxInputTokensIsSet = data.maxInputTokens != null;
@@ -1,8 +1,15 @@
1
1
  "use strict";
2
+ var __create = Object.create;
2
3
  var __defProp = Object.defineProperty;
3
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
6
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
8
+ var __typeError = (msg) => {
9
+ throw TypeError(msg);
10
+ };
11
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
12
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
6
13
  var __export = (target, all) => {
7
14
  for (var name in all)
8
15
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -16,6 +23,44 @@ var __copyProps = (to, from, except, desc) => {
16
23
  return to;
17
24
  };
18
25
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
26
+ var __decoratorStart = (base) => [, , , __create(base?.[__knownSymbol("metadata")] ?? null)];
27
+ var __decoratorStrings = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"];
28
+ var __expectFn = (fn) => fn !== void 0 && typeof fn !== "function" ? __typeError("Function expected") : fn;
29
+ var __decoratorContext = (kind, name, done, metadata, fns) => ({ kind: __decoratorStrings[kind], name, metadata, addInitializer: (fn) => done._ ? __typeError("Already initialized") : fns.push(__expectFn(fn || null)) });
30
+ var __decoratorMetadata = (array, target) => __defNormalProp(target, __knownSymbol("metadata"), array[3]);
31
+ var __runInitializers = (array, flags, self, value) => {
32
+ for (var i = 0, fns = array[flags >> 1], n = fns && fns.length; i < n; i++) flags & 1 ? fns[i].call(self) : value = fns[i].call(self, value);
33
+ return value;
34
+ };
35
+ var __decorateElement = (array, flags, name, decorators, target, extra) => {
36
+ var fn, it, done, ctx, access, k = flags & 7, s = !!(flags & 8), p = !!(flags & 16);
37
+ var j = k > 3 ? array.length + 1 : k ? s ? 1 : 2 : 0, key = __decoratorStrings[k + 5];
38
+ var initializers = k > 3 && (array[j - 1] = []), extraInitializers = array[j] || (array[j] = []);
39
+ var desc = k && (!p && !s && (target = target.prototype), k < 5 && (k > 3 || !p) && __getOwnPropDesc(k < 4 ? target : { get [name]() {
40
+ return __privateGet(this, extra);
41
+ }, set [name](x) {
42
+ return __privateSet(this, extra, x);
43
+ } }, name));
44
+ k ? p && k < 4 && __name(extra, (k > 2 ? "set " : k > 1 ? "get " : "") + name) : __name(target, name);
45
+ for (var i = decorators.length - 1; i >= 0; i--) {
46
+ ctx = __decoratorContext(k, name, done = {}, array[3], extraInitializers);
47
+ if (k) {
48
+ ctx.static = s, ctx.private = p, access = ctx.access = { has: p ? (x) => __privateIn(target, x) : (x) => name in x };
49
+ if (k ^ 3) access.get = p ? (x) => (k ^ 1 ? __privateGet : __privateMethod)(x, target, k ^ 4 ? extra : desc.get) : (x) => x[name];
50
+ if (k > 2) access.set = p ? (x, y) => __privateSet(x, target, y, k ^ 4 ? extra : desc.set) : (x, y) => x[name] = y;
51
+ }
52
+ it = (0, decorators[i])(k ? k < 4 ? p ? extra : desc[key] : k > 4 ? void 0 : { get: desc.get, set: desc.set } : target, ctx), done._ = 1;
53
+ if (k ^ 4 || it === void 0) __expectFn(it) && (k > 4 ? initializers.unshift(it) : k ? p ? extra = it : desc[key] = it : target = it);
54
+ else if (typeof it !== "object" || it === null) __typeError("Object expected");
55
+ else __expectFn(fn = it.get) && (desc.get = fn), __expectFn(fn = it.set) && (desc.set = fn), __expectFn(fn = it.init) && initializers.unshift(fn);
56
+ }
57
+ return k || __decoratorMetadata(array, target), desc && __defProp(target, name, desc), p ? k ^ 4 ? extra : desc : target;
58
+ };
59
+ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
60
+ var __privateIn = (member, obj) => Object(obj) !== obj ? __typeError('Cannot use the "in" operator on this value') : member.has(obj);
61
+ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
62
+ var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
63
+ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
19
64
  var anthropic_exports = {};
20
65
  __export(anthropic_exports, {
21
66
  AnthropicService: () => AnthropicService
@@ -27,6 +72,13 @@ var import_registry = require("../registry.js");
27
72
  var import_anthropic = require("../formatters/anthropic.js");
28
73
  var import_factory = require("../tokenizer/factory.js");
29
74
  var import_debug = require("../../utils/debug.js");
75
+ var import_decorators = require("../../telemetry/decorators.js");
76
+ var import_api = require("@opentelemetry/api");
77
+ var _AnthropicService_decorators, _init;
78
+ _AnthropicService_decorators = [(0, import_decorators.InstrumentClass)({
79
+ prefix: "llm.anthropic",
80
+ excludeMethods: ["getAllTools", "formatToolsForClaude", "getConfig", "getContextManager"]
81
+ })];
30
82
  class AnthropicService {
31
83
  anthropic;
32
84
  config;
@@ -147,6 +199,12 @@ class AnthropicService {
147
199
  router: "in-built",
148
200
  ...totalTokens > 0 && { tokenUsage: { totalTokens } }
149
201
  });
202
+ const activeSpan2 = import_api.trace.getActiveSpan();
203
+ if (activeSpan2 && totalTokens > 0) {
204
+ activeSpan2.setAttributes({
205
+ "gen_ai.usage.total_tokens": totalTokens
206
+ });
207
+ }
150
208
  return fullResponse;
151
209
  }
152
210
  if (textContent) {
@@ -216,6 +274,12 @@ class AnthropicService {
216
274
  router: "in-built",
217
275
  ...totalTokens > 0 && { tokenUsage: { totalTokens } }
218
276
  });
277
+ const activeSpan = import_api.trace.getActiveSpan();
278
+ if (activeSpan && totalTokens > 0) {
279
+ activeSpan.setAttributes({
280
+ "gen_ai.usage.total_tokens": totalTokens
281
+ });
282
+ }
219
283
  return fullResponse || "Reached maximum number of tool call iterations without a final response.";
220
284
  } catch (error) {
221
285
  if (error instanceof Error && (error.name === "AbortError" || error.aborted === true)) {
@@ -405,6 +469,9 @@ class AnthropicService {
405
469
  return this.contextManager;
406
470
  }
407
471
  }
472
+ _init = __decoratorStart(null);
473
+ AnthropicService = __decorateElement(_init, 0, "AnthropicService", _AnthropicService_decorators, AnthropicService);
474
+ __runInitializers(_init, 1, AnthropicService);
408
475
  // Annotate the CommonJS export names for ESM import in node:
409
476
  0 && (module.exports = {
410
477
  AnthropicService
@@ -11,6 +11,12 @@ import type { ValidatedLLMConfig } from '../schemas.js';
11
11
  /**
12
12
  * Anthropic implementation of LLMService
13
13
  * Not actively maintained, so might be buggy or outdated
14
+ * TODO (Telemetry): Add OpenTelemetry metrics collection
15
+ * - LLM call counters (by provider/model)
16
+ * - Token usage histograms (input/output/total)
17
+ * - Request latency histograms
18
+ * - Error rate counters
19
+ * See feature-plans/telemetry.md for details
14
20
  */
15
21
  export declare class AnthropicService implements ILLMService {
16
22
  private anthropic;
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../src/llm/services/anthropic.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAE1C,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AACnF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAGzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAGxD;;;GAGG;AACH,qBAAa,gBAAiB,YAAW,WAAW;IAChD,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAG/B,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,EACpB,mBAAmB,EAAE,mBAAmB,EACxC,eAAe,EAAE,4BAA4B,EAC7C,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE,kBAAkB,EAC1B,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,OAAO,0BAA0B,EAAE,eAAe;IA4BvE,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAIzB,YAAY,CACd,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,EACjC,SAAS,CAAC,EAAE,SAAS,EACrB,QAAQ,CAAC,EAAE,QAAQ,EACnB,MAAM,CAAC,EAAE,OAAO,GACjB,OAAO,CAAC,MAAM,CAAC;IAqPlB;;;OAGG;IACH,SAAS,IAAI,gBAAgB;IAgB7B,OAAO,CAAC,oBAAoB;YAyCd,oBAAoB;YA0BpB,6BAA6B;IAmI3C;;OAEG;IACH,iBAAiB,IAAI,cAAc,CAAC,OAAO,CAAC;CAG/C"}
1
+ {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../src/llm/services/anthropic.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAE1C,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AACnF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAGzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAKxD;;;;;;;;;GASG;AACH,qBAIa,gBAAiB,YAAW,WAAW;IAChD,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAG/B,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,EACpB,mBAAmB,EAAE,mBAAmB,EACxC,eAAe,EAAE,4BAA4B,EAC7C,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE,kBAAkB,EAC1B,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,OAAO,0BAA0B,EAAE,eAAe;IA4BvE,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAIzB,YAAY,CACd,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,EACjC,SAAS,CAAC,EAAE,SAAS,EACrB,QAAQ,CAAC,EAAE,QAAQ,EACnB,MAAM,CAAC,EAAE,OAAO,GACjB,OAAO,CAAC,MAAM,CAAC;IAuQlB;;;OAGG;IACH,SAAS,IAAI,gBAAgB;IAgB7B,OAAO,CAAC,oBAAoB;YAyCd,oBAAoB;YA0BpB,6BAA6B;IAmI3C;;OAEG;IACH,iBAAiB,IAAI,cAAc,CAAC,OAAO,CAAC;CAG/C"}
@@ -1,9 +1,21 @@
1
+ import {
2
+ __decorateElement,
3
+ __decoratorStart,
4
+ __runInitializers
5
+ } from "../../chunk-C6A6W6XS.js";
6
+ var _AnthropicService_decorators, _init;
1
7
  import { logger } from "../../logger/index.js";
2
8
  import { ContextManager } from "../../context/manager.js";
3
9
  import { getMaxInputTokensForModel, getEffectiveMaxInputTokens } from "../registry.js";
4
10
  import { AnthropicMessageFormatter } from "../formatters/anthropic.js";
5
11
  import { createTokenizer } from "../tokenizer/factory.js";
6
12
  import { shouldIncludeRawToolResult } from "../../utils/debug.js";
13
+ import { InstrumentClass } from "../../telemetry/decorators.js";
14
+ import { trace } from "@opentelemetry/api";
15
+ _AnthropicService_decorators = [InstrumentClass({
16
+ prefix: "llm.anthropic",
17
+ excludeMethods: ["getAllTools", "formatToolsForClaude", "getConfig", "getContextManager"]
18
+ })];
7
19
  class AnthropicService {
8
20
  anthropic;
9
21
  config;
@@ -124,6 +136,12 @@ class AnthropicService {
124
136
  router: "in-built",
125
137
  ...totalTokens > 0 && { tokenUsage: { totalTokens } }
126
138
  });
139
+ const activeSpan2 = trace.getActiveSpan();
140
+ if (activeSpan2 && totalTokens > 0) {
141
+ activeSpan2.setAttributes({
142
+ "gen_ai.usage.total_tokens": totalTokens
143
+ });
144
+ }
127
145
  return fullResponse;
128
146
  }
129
147
  if (textContent) {
@@ -193,6 +211,12 @@ class AnthropicService {
193
211
  router: "in-built",
194
212
  ...totalTokens > 0 && { tokenUsage: { totalTokens } }
195
213
  });
214
+ const activeSpan = trace.getActiveSpan();
215
+ if (activeSpan && totalTokens > 0) {
216
+ activeSpan.setAttributes({
217
+ "gen_ai.usage.total_tokens": totalTokens
218
+ });
219
+ }
196
220
  return fullResponse || "Reached maximum number of tool call iterations without a final response.";
197
221
  } catch (error) {
198
222
  if (error instanceof Error && (error.name === "AbortError" || error.aborted === true)) {
@@ -382,6 +406,9 @@ class AnthropicService {
382
406
  return this.contextManager;
383
407
  }
384
408
  }
409
+ _init = __decoratorStart(null);
410
+ AnthropicService = __decorateElement(_init, 0, "AnthropicService", _AnthropicService_decorators, AnthropicService);
411
+ __runInitializers(_init, 1, AnthropicService);
385
412
  export {
386
413
  AnthropicService
387
414
  };
@@ -1,3 +1,4 @@
1
+ import "../../chunk-C6A6W6XS.js";
1
2
  import { LLMError } from "../errors.js";
2
3
  import { createOpenAI } from "@ai-sdk/openai";
3
4
  import { createGoogleGenerativeAI } from "@ai-sdk/google";
@@ -1,8 +1,15 @@
1
1
  "use strict";
2
+ var __create = Object.create;
2
3
  var __defProp = Object.defineProperty;
3
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
6
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
8
+ var __typeError = (msg) => {
9
+ throw TypeError(msg);
10
+ };
11
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
12
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
6
13
  var __export = (target, all) => {
7
14
  for (var name in all)
8
15
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -16,6 +23,44 @@ var __copyProps = (to, from, except, desc) => {
16
23
  return to;
17
24
  };
18
25
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
26
+ var __decoratorStart = (base) => [, , , __create(base?.[__knownSymbol("metadata")] ?? null)];
27
+ var __decoratorStrings = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"];
28
+ var __expectFn = (fn) => fn !== void 0 && typeof fn !== "function" ? __typeError("Function expected") : fn;
29
+ var __decoratorContext = (kind, name, done, metadata, fns) => ({ kind: __decoratorStrings[kind], name, metadata, addInitializer: (fn) => done._ ? __typeError("Already initialized") : fns.push(__expectFn(fn || null)) });
30
+ var __decoratorMetadata = (array, target) => __defNormalProp(target, __knownSymbol("metadata"), array[3]);
31
+ var __runInitializers = (array, flags, self, value) => {
32
+ for (var i = 0, fns = array[flags >> 1], n = fns && fns.length; i < n; i++) flags & 1 ? fns[i].call(self) : value = fns[i].call(self, value);
33
+ return value;
34
+ };
35
+ var __decorateElement = (array, flags, name, decorators, target, extra) => {
36
+ var fn, it, done, ctx, access, k = flags & 7, s = !!(flags & 8), p = !!(flags & 16);
37
+ var j = k > 3 ? array.length + 1 : k ? s ? 1 : 2 : 0, key = __decoratorStrings[k + 5];
38
+ var initializers = k > 3 && (array[j - 1] = []), extraInitializers = array[j] || (array[j] = []);
39
+ var desc = k && (!p && !s && (target = target.prototype), k < 5 && (k > 3 || !p) && __getOwnPropDesc(k < 4 ? target : { get [name]() {
40
+ return __privateGet(this, extra);
41
+ }, set [name](x) {
42
+ return __privateSet(this, extra, x);
43
+ } }, name));
44
+ k ? p && k < 4 && __name(extra, (k > 2 ? "set " : k > 1 ? "get " : "") + name) : __name(target, name);
45
+ for (var i = decorators.length - 1; i >= 0; i--) {
46
+ ctx = __decoratorContext(k, name, done = {}, array[3], extraInitializers);
47
+ if (k) {
48
+ ctx.static = s, ctx.private = p, access = ctx.access = { has: p ? (x) => __privateIn(target, x) : (x) => name in x };
49
+ if (k ^ 3) access.get = p ? (x) => (k ^ 1 ? __privateGet : __privateMethod)(x, target, k ^ 4 ? extra : desc.get) : (x) => x[name];
50
+ if (k > 2) access.set = p ? (x, y) => __privateSet(x, target, y, k ^ 4 ? extra : desc.set) : (x, y) => x[name] = y;
51
+ }
52
+ it = (0, decorators[i])(k ? k < 4 ? p ? extra : desc[key] : k > 4 ? void 0 : { get: desc.get, set: desc.set } : target, ctx), done._ = 1;
53
+ if (k ^ 4 || it === void 0) __expectFn(it) && (k > 4 ? initializers.unshift(it) : k ? p ? extra = it : desc[key] = it : target = it);
54
+ else if (typeof it !== "object" || it === null) __typeError("Object expected");
55
+ else __expectFn(fn = it.get) && (desc.get = fn), __expectFn(fn = it.set) && (desc.set = fn), __expectFn(fn = it.init) && initializers.unshift(fn);
56
+ }
57
+ return k || __decoratorMetadata(array, target), desc && __defProp(target, name, desc), p ? k ^ 4 ? extra : desc : target;
58
+ };
59
+ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
60
+ var __privateIn = (member, obj) => Object(obj) !== obj ? __typeError('Cannot use the "in" operator on this value') : member.has(obj);
61
+ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
62
+ var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
63
+ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
19
64
  var openai_exports = {};
20
65
  __export(openai_exports, {
21
66
  OpenAIService: () => OpenAIService
@@ -29,6 +74,13 @@ var import_error_codes = require("../error-codes.js");
29
74
  var import_openai2 = require("../formatters/openai.js");
30
75
  var import_factory = require("../tokenizer/factory.js");
31
76
  var import_debug = require("../../utils/debug.js");
77
+ var import_decorators = require("../../telemetry/decorators.js");
78
+ var import_api = require("@opentelemetry/api");
79
+ var _OpenAIService_decorators, _init;
80
+ _OpenAIService_decorators = [(0, import_decorators.InstrumentClass)({
81
+ prefix: "llm.openai",
82
+ excludeMethods: ["getAllTools", "formatToolsForOpenAI", "getConfig", "getContextManager"]
83
+ })];
32
84
  class OpenAIService {
33
85
  openai;
34
86
  config;
@@ -110,6 +162,22 @@ class OpenAIService {
110
162
  router: "in-built",
111
163
  tokenUsage: { totalTokens, inputTokens, outputTokens, reasoningTokens }
112
164
  });
165
+ const activeSpan2 = import_api.trace.getActiveSpan();
166
+ if (activeSpan2 && totalTokens > 0) {
167
+ const attributes = {
168
+ "gen_ai.usage.total_tokens": totalTokens
169
+ };
170
+ if (inputTokens > 0) {
171
+ attributes["gen_ai.usage.input_tokens"] = inputTokens;
172
+ }
173
+ if (outputTokens > 0) {
174
+ attributes["gen_ai.usage.output_tokens"] = outputTokens;
175
+ }
176
+ if (reasoningTokens > 0) {
177
+ attributes["gen_ai.usage.reasoning_tokens"] = reasoningTokens;
178
+ }
179
+ activeSpan2.setAttributes(attributes);
180
+ }
113
181
  return finalContent;
114
182
  }
115
183
  const functionToolCalls = message.tool_calls.filter(
@@ -224,6 +292,22 @@ class OpenAIService {
224
292
  router: "in-built",
225
293
  tokenUsage: { totalTokens, inputTokens, outputTokens, reasoningTokens }
226
294
  });
295
+ const activeSpan = import_api.trace.getActiveSpan();
296
+ if (activeSpan && totalTokens > 0) {
297
+ const attributes = {
298
+ "gen_ai.usage.total_tokens": totalTokens
299
+ };
300
+ if (inputTokens > 0) {
301
+ attributes["gen_ai.usage.input_tokens"] = inputTokens;
302
+ }
303
+ if (outputTokens > 0) {
304
+ attributes["gen_ai.usage.output_tokens"] = outputTokens;
305
+ }
306
+ if (reasoningTokens > 0) {
307
+ attributes["gen_ai.usage.reasoning_tokens"] = reasoningTokens;
308
+ }
309
+ activeSpan.setAttributes(attributes);
310
+ }
227
311
  return finalResponse;
228
312
  } catch (error) {
229
313
  if (error instanceof Error && (error.name === "AbortError" || error.aborted === true)) {
@@ -481,6 +565,9 @@ class OpenAIService {
481
565
  return this.contextManager;
482
566
  }
483
567
  }
568
+ _init = __decoratorStart(null);
569
+ OpenAIService = __decorateElement(_init, 0, "OpenAIService", _OpenAIService_decorators, OpenAIService);
570
+ __runInitializers(_init, 1, OpenAIService);
484
571
  // Annotate the CommonJS export names for ESM import in node:
485
572
  0 && (module.exports = {
486
573
  OpenAIService
@@ -11,6 +11,12 @@ import type { ValidatedLLMConfig } from '../schemas.js';
11
11
  /**
12
12
  * OpenAI implementation of LLMService
13
13
  * Not actively maintained, so might be buggy or outdated
14
+ * TODO (Telemetry): Add OpenTelemetry metrics collection
15
+ * - LLM call counters (by provider/model)
16
+ * - Token usage histograms (input/output/total/reasoning)
17
+ * - Request latency histograms
18
+ * - Error rate counters
19
+ * See feature-plans/telemetry.md for details
14
20
  */
15
21
  export declare class OpenAIService implements ILLMService {
16
22
  private openai;
@@ -1 +1 @@
1
- {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../../src/llm/services/openai.ts"],"names":[],"mappings":"AAAA,OAAO,MAAoB,MAAM,QAAQ,CAAC;AAE1C,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAG7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AACnF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAGzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAGxD;;;GAGG;AACH,qBAAa,aAAc,YAAW,WAAW;IAC7C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,cAAc,CAA6C;IACnE,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAG/B,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,MAAM,EACd,mBAAmB,EAAE,mBAAmB,EACxC,eAAe,EAAE,4BAA4B,EAC7C,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE,kBAAkB,EAC1B,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,OAAO,0BAA0B,EAAE,eAAe;IA0BvE,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAIzB,YAAY,CACd,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,EACjC,SAAS,CAAC,EAAE,SAAS,EACrB,QAAQ,CAAC,EAAE,QAAQ,EACnB,MAAM,CAAC,EAAE,OAAO,GACjB,OAAO,CAAC,MAAM,CAAC;IAwQlB;;;OAGG;IACH,SAAS,IAAI,gBAAgB;YAkCf,wBAAwB;YA2FxB,iCAAiC;IAqK/C,OAAO,CAAC,oBAAoB;IAe5B;;OAEG;IACH,iBAAiB,IAAI,cAAc,CAAC,OAAO,CAAC;CAG/C"}
1
+ {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../../src/llm/services/openai.ts"],"names":[],"mappings":"AAAA,OAAO,MAAoB,MAAM,QAAQ,CAAC;AAE1C,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAG7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AACnF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAGzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAKxD;;;;;;;;;GASG;AACH,qBAIa,aAAc,YAAW,WAAW;IAC7C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,cAAc,CAA6C;IACnE,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAG/B,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,MAAM,EACd,mBAAmB,EAAE,mBAAmB,EACxC,eAAe,EAAE,4BAA4B,EAC7C,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE,kBAAkB,EAC1B,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,OAAO,0BAA0B,EAAE,eAAe;IA0BvE,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAIzB,YAAY,CACd,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,EACjC,SAAS,CAAC,EAAE,SAAS,EACrB,QAAQ,CAAC,EAAE,QAAQ,EACnB,MAAM,CAAC,EAAE,OAAO,GACjB,OAAO,CAAC,MAAM,CAAC;IA8SlB;;;OAGG;IACH,SAAS,IAAI,gBAAgB;YAkCf,wBAAwB;YA2FxB,iCAAiC;IAqK/C,OAAO,CAAC,oBAAoB;IAe5B;;OAEG;IACH,iBAAiB,IAAI,cAAc,CAAC,OAAO,CAAC;CAG/C"}
@@ -1,3 +1,9 @@
1
+ import {
2
+ __decorateElement,
3
+ __decoratorStart,
4
+ __runInitializers
5
+ } from "../../chunk-C6A6W6XS.js";
6
+ var _OpenAIService_decorators, _init;
1
7
  import { logger } from "../../logger/index.js";
2
8
  import { ContextManager } from "../../context/manager.js";
3
9
  import { getMaxInputTokensForModel, getEffectiveMaxInputTokens } from "../registry.js";
@@ -6,6 +12,12 @@ import { LLMErrorCode } from "../error-codes.js";
6
12
  import { OpenAIMessageFormatter } from "../formatters/openai.js";
7
13
  import { createTokenizer } from "../tokenizer/factory.js";
8
14
  import { shouldIncludeRawToolResult } from "../../utils/debug.js";
15
+ import { InstrumentClass } from "../../telemetry/decorators.js";
16
+ import { trace } from "@opentelemetry/api";
17
+ _OpenAIService_decorators = [InstrumentClass({
18
+ prefix: "llm.openai",
19
+ excludeMethods: ["getAllTools", "formatToolsForOpenAI", "getConfig", "getContextManager"]
20
+ })];
9
21
  class OpenAIService {
10
22
  openai;
11
23
  config;
@@ -87,6 +99,22 @@ class OpenAIService {
87
99
  router: "in-built",
88
100
  tokenUsage: { totalTokens, inputTokens, outputTokens, reasoningTokens }
89
101
  });
102
+ const activeSpan2 = trace.getActiveSpan();
103
+ if (activeSpan2 && totalTokens > 0) {
104
+ const attributes = {
105
+ "gen_ai.usage.total_tokens": totalTokens
106
+ };
107
+ if (inputTokens > 0) {
108
+ attributes["gen_ai.usage.input_tokens"] = inputTokens;
109
+ }
110
+ if (outputTokens > 0) {
111
+ attributes["gen_ai.usage.output_tokens"] = outputTokens;
112
+ }
113
+ if (reasoningTokens > 0) {
114
+ attributes["gen_ai.usage.reasoning_tokens"] = reasoningTokens;
115
+ }
116
+ activeSpan2.setAttributes(attributes);
117
+ }
90
118
  return finalContent;
91
119
  }
92
120
  const functionToolCalls = message.tool_calls.filter(
@@ -201,6 +229,22 @@ class OpenAIService {
201
229
  router: "in-built",
202
230
  tokenUsage: { totalTokens, inputTokens, outputTokens, reasoningTokens }
203
231
  });
232
+ const activeSpan = trace.getActiveSpan();
233
+ if (activeSpan && totalTokens > 0) {
234
+ const attributes = {
235
+ "gen_ai.usage.total_tokens": totalTokens
236
+ };
237
+ if (inputTokens > 0) {
238
+ attributes["gen_ai.usage.input_tokens"] = inputTokens;
239
+ }
240
+ if (outputTokens > 0) {
241
+ attributes["gen_ai.usage.output_tokens"] = outputTokens;
242
+ }
243
+ if (reasoningTokens > 0) {
244
+ attributes["gen_ai.usage.reasoning_tokens"] = reasoningTokens;
245
+ }
246
+ activeSpan.setAttributes(attributes);
247
+ }
204
248
  return finalResponse;
205
249
  } catch (error) {
206
250
  if (error instanceof Error && (error.name === "AbortError" || error.aborted === true)) {
@@ -458,6 +502,9 @@ class OpenAIService {
458
502
  return this.contextManager;
459
503
  }
460
504
  }
505
+ _init = __decoratorStart(null);
506
+ OpenAIService = __decorateElement(_init, 0, "OpenAIService", _OpenAIService_decorators, OpenAIService);
507
+ __runInitializers(_init, 1, OpenAIService);
461
508
  export {
462
509
  OpenAIService
463
510
  };
@@ -128,7 +128,7 @@ const TestConfigs = {
128
128
  groq: "llama-3.1-8b-instant",
129
129
  xai: "grok-beta",
130
130
  cohere: "command-r",
131
- "openai-compatible": "gpt-4o-mini"
131
+ "openai-compatible": "gpt-5-mini"
132
132
  };
133
133
  return {
134
134
  systemPrompt: "You are a helpful assistant for testing purposes.",
@@ -1,3 +1,4 @@
1
+ import "../../chunk-C6A6W6XS.js";
1
2
  import { DextoAgent } from "../../agent/DextoAgent.js";
2
3
  import { resolveApiKeyForProvider, getPrimaryApiKeyEnvVar } from "../../utils/api-key-resolver.js";
3
4
  async function createTestEnvironment(config, sessionId = "test-session") {
@@ -102,7 +103,7 @@ const TestConfigs = {
102
103
  groq: "llama-3.1-8b-instant",
103
104
  xai: "grok-beta",
104
105
  cohere: "command-r",
105
- "openai-compatible": "gpt-4o-mini"
106
+ "openai-compatible": "gpt-5-mini"
106
107
  };
107
108
  return {
108
109
  systemPrompt: "You are a helpful assistant for testing purposes.",