@superblocksteam/vite-plugin-file-sync 2.0.41-next.9 → 2.0.41

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 (288) hide show
  1. package/dist/ai-service/agent/apis-system-prompt.d.ts +1 -1
  2. package/dist/ai-service/agent/apis-system-prompt.d.ts.map +1 -1
  3. package/dist/ai-service/agent/apis-system-prompt.js +50 -21
  4. package/dist/ai-service/agent/apis-system-prompt.js.map +1 -1
  5. package/dist/ai-service/agent/apis.d.ts +10 -0
  6. package/dist/ai-service/agent/apis.d.ts.map +1 -1
  7. package/dist/ai-service/agent/apis.js +26 -4
  8. package/dist/ai-service/agent/apis.js.map +1 -1
  9. package/dist/ai-service/agent/prompts/build-base-system-prompt.d.ts +2 -0
  10. package/dist/ai-service/agent/prompts/build-base-system-prompt.d.ts.map +1 -0
  11. package/dist/ai-service/{state-machine/handlers/simple-prompt-builder.js → agent/prompts/build-base-system-prompt.js} +55 -15
  12. package/dist/ai-service/{state-machine/handlers/simple-prompt-builder.js.map → agent/prompts/build-base-system-prompt.js.map} +1 -1
  13. package/dist/ai-service/agent/tool-message-utils.d.ts.map +1 -1
  14. package/dist/ai-service/agent/tool-message-utils.js +5 -7
  15. package/dist/ai-service/agent/tool-message-utils.js.map +1 -1
  16. package/dist/ai-service/agent/tools/build-debug.d.ts +1 -1
  17. package/dist/ai-service/agent/tools/build-debug.d.ts.map +1 -1
  18. package/dist/ai-service/agent/tools/build-debug.js +24 -23
  19. package/dist/ai-service/agent/tools/build-debug.js.map +1 -1
  20. package/dist/ai-service/agent/tools/build-edit-file.d.ts.map +1 -1
  21. package/dist/ai-service/agent/tools/build-edit-file.js +9 -14
  22. package/dist/ai-service/agent/tools/build-edit-file.js.map +1 -1
  23. package/dist/ai-service/agent/tools/build-finalize.d.ts.map +1 -1
  24. package/dist/ai-service/agent/tools/build-finalize.js +23 -2
  25. package/dist/ai-service/agent/tools/build-finalize.js.map +1 -1
  26. package/dist/ai-service/agent/tools/build-list-files.d.ts.map +1 -1
  27. package/dist/ai-service/agent/tools/build-list-files.js +9 -1
  28. package/dist/ai-service/agent/tools/build-list-files.js.map +1 -1
  29. package/dist/ai-service/agent/tools/build-multi-edit-file.d.ts.map +1 -1
  30. package/dist/ai-service/agent/tools/build-multi-edit-file.js +6 -11
  31. package/dist/ai-service/agent/tools/build-multi-edit-file.js.map +1 -1
  32. package/dist/ai-service/agent/tools/build-read-files.d.ts.map +1 -1
  33. package/dist/ai-service/agent/tools/build-read-files.js +16 -0
  34. package/dist/ai-service/agent/tools/build-read-files.js.map +1 -1
  35. package/dist/ai-service/agent/tools/build-set-api-triggers.d.ts +27 -0
  36. package/dist/ai-service/agent/tools/build-set-api-triggers.d.ts.map +1 -0
  37. package/dist/ai-service/agent/tools/build-set-api-triggers.js +265 -0
  38. package/dist/ai-service/agent/tools/build-set-api-triggers.js.map +1 -0
  39. package/dist/ai-service/agent/tools/build-write-file.d.ts.map +1 -1
  40. package/dist/ai-service/agent/tools/build-write-file.js +6 -11
  41. package/dist/ai-service/agent/tools/build-write-file.js.map +1 -1
  42. package/dist/ai-service/agent/tools/debug-cache.d.ts +95 -13
  43. package/dist/ai-service/agent/tools/debug-cache.d.ts.map +1 -1
  44. package/dist/ai-service/agent/tools/debug-cache.js +215 -38
  45. package/dist/ai-service/agent/tools/debug-cache.js.map +1 -1
  46. package/dist/ai-service/agent/tools/index.d.ts +1 -0
  47. package/dist/ai-service/agent/tools/index.d.ts.map +1 -1
  48. package/dist/ai-service/agent/tools/index.js +1 -0
  49. package/dist/ai-service/agent/tools/index.js.map +1 -1
  50. package/dist/ai-service/agent/tools/shared-helpers.d.ts +5 -1
  51. package/dist/ai-service/agent/tools/shared-helpers.d.ts.map +1 -1
  52. package/dist/ai-service/agent/tools/shared-helpers.js +26 -3
  53. package/dist/ai-service/agent/tools/shared-helpers.js.map +1 -1
  54. package/dist/ai-service/agent/tools/study-current-app-state.d.ts +2 -0
  55. package/dist/ai-service/agent/tools/study-current-app-state.d.ts.map +1 -1
  56. package/dist/ai-service/agent/tools.d.ts +24 -1
  57. package/dist/ai-service/agent/tools.d.ts.map +1 -1
  58. package/dist/ai-service/agent/tools.js +3 -1
  59. package/dist/ai-service/agent/tools.js.map +1 -1
  60. package/dist/ai-service/agent/utils.d.ts +2 -0
  61. package/dist/ai-service/agent/utils.d.ts.map +1 -1
  62. package/dist/ai-service/agent/utils.js +173 -159
  63. package/dist/ai-service/agent/utils.js.map +1 -1
  64. package/dist/ai-service/app-interface/file-system-interface.d.ts.map +1 -1
  65. package/dist/ai-service/app-interface/file-system-interface.js +117 -68
  66. package/dist/ai-service/app-interface/file-system-interface.js.map +1 -1
  67. package/dist/ai-service/app-interface/linter.d.ts.map +1 -1
  68. package/dist/ai-service/app-interface/linter.js +103 -54
  69. package/dist/ai-service/app-interface/linter.js.map +1 -1
  70. package/dist/ai-service/app-interface/shell.d.ts.map +1 -1
  71. package/dist/ai-service/app-interface/shell.js +227 -160
  72. package/dist/ai-service/app-interface/shell.js.map +1 -1
  73. package/dist/ai-service/artifacts/bolt.d.ts.map +1 -1
  74. package/dist/ai-service/artifacts/bolt.js +88 -30
  75. package/dist/ai-service/artifacts/bolt.js.map +1 -1
  76. package/dist/ai-service/chat/chat-session-store.d.ts +12 -2
  77. package/dist/ai-service/chat/chat-session-store.d.ts.map +1 -1
  78. package/dist/ai-service/chat/chat-session-store.js +45 -1
  79. package/dist/ai-service/chat/chat-session-store.js.map +1 -1
  80. package/dist/ai-service/chat/extract-history.d.ts +3 -1
  81. package/dist/ai-service/chat/extract-history.d.ts.map +1 -1
  82. package/dist/ai-service/chat/extract-history.js +6 -1
  83. package/dist/ai-service/chat/extract-history.js.map +1 -1
  84. package/dist/ai-service/context/app-context.d.ts +5 -0
  85. package/dist/ai-service/context/app-context.d.ts.map +1 -1
  86. package/dist/ai-service/context/app-context.js +318 -241
  87. package/dist/ai-service/context/app-context.js.map +1 -1
  88. package/dist/ai-service/evals/content-matchers/index.d.ts.map +1 -1
  89. package/dist/ai-service/evals/content-matchers/index.js +1 -0
  90. package/dist/ai-service/evals/content-matchers/index.js.map +1 -1
  91. package/dist/ai-service/index.d.ts +3 -0
  92. package/dist/ai-service/index.d.ts.map +1 -1
  93. package/dist/ai-service/index.js +105 -71
  94. package/dist/ai-service/index.js.map +1 -1
  95. package/dist/ai-service/integration-validator.d.ts +1 -1
  96. package/dist/ai-service/integration-validator.d.ts.map +1 -1
  97. package/dist/ai-service/integration-validator.js +6 -3
  98. package/dist/ai-service/integration-validator.js.map +1 -1
  99. package/dist/ai-service/integrations/metadata/database.d.ts.map +1 -1
  100. package/dist/ai-service/integrations/metadata/database.js +1 -1
  101. package/dist/ai-service/integrations/metadata/database.js.map +1 -1
  102. package/dist/ai-service/integrations/metadata/graphql-based.js +1 -1
  103. package/dist/ai-service/integrations/metadata/graphql-based.js.map +1 -1
  104. package/dist/ai-service/integrations/metadata/open-api.js +1 -1
  105. package/dist/ai-service/integrations/metadata/open-api.js.map +1 -1
  106. package/dist/ai-service/integrations/store.d.ts.map +1 -1
  107. package/dist/ai-service/integrations/store.js +135 -74
  108. package/dist/ai-service/integrations/store.js.map +1 -1
  109. package/dist/ai-service/llmobs/helpers.d.ts +20 -0
  110. package/dist/ai-service/llmobs/helpers.d.ts.map +1 -0
  111. package/dist/ai-service/llmobs/helpers.js +130 -0
  112. package/dist/ai-service/llmobs/helpers.js.map +1 -0
  113. package/dist/ai-service/llmobs/index.d.ts +8 -0
  114. package/dist/ai-service/llmobs/index.d.ts.map +1 -0
  115. package/dist/ai-service/llmobs/index.js +7 -0
  116. package/dist/ai-service/llmobs/index.js.map +1 -0
  117. package/dist/ai-service/llmobs/middleware/stream-text.d.ts +60 -0
  118. package/dist/ai-service/llmobs/middleware/stream-text.d.ts.map +1 -0
  119. package/dist/ai-service/llmobs/middleware/stream-text.js +601 -0
  120. package/dist/ai-service/llmobs/middleware/stream-text.js.map +1 -0
  121. package/dist/ai-service/llmobs/tracer.d.ts +95 -0
  122. package/dist/ai-service/llmobs/tracer.d.ts.map +1 -0
  123. package/dist/ai-service/llmobs/tracer.js +341 -0
  124. package/dist/ai-service/llmobs/tracer.js.map +1 -0
  125. package/dist/ai-service/llmobs/types.d.ts +47 -0
  126. package/dist/ai-service/llmobs/types.d.ts.map +1 -0
  127. package/dist/ai-service/llmobs/types.js +2 -0
  128. package/dist/ai-service/llmobs/types.js.map +1 -0
  129. package/dist/ai-service/prompt-builder-service/fragment-generators/chakra-tokens.d.ts +3 -1
  130. package/dist/ai-service/prompt-builder-service/fragment-generators/chakra-tokens.d.ts.map +1 -1
  131. package/dist/ai-service/prompt-builder-service/fragment-generators/chakra-tokens.js +5 -3
  132. package/dist/ai-service/prompt-builder-service/fragment-generators/chakra-tokens.js.map +1 -1
  133. package/dist/ai-service/prompt-builder-service/fragment-generators/file-fragments.d.ts +3 -1
  134. package/dist/ai-service/prompt-builder-service/fragment-generators/file-fragments.d.ts.map +1 -1
  135. package/dist/ai-service/prompt-builder-service/fragment-generators/file-fragments.js +3 -1
  136. package/dist/ai-service/prompt-builder-service/fragment-generators/file-fragments.js.map +1 -1
  137. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ButtonPropsDocs.js +1 -1
  138. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/CheckboxPropsDocs.js +1 -1
  139. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ColumnPropsDocs.js +1 -1
  140. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ContainerPropsDocs.js +1 -1
  141. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/DatePickerPropsDocs.js +1 -1
  142. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/DropdownPropsDocs.js +1 -1
  143. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/IconPropsDocs.js +1 -1
  144. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ImagePropsDocs.js +1 -1
  145. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/InputPropsDocs.js +1 -1
  146. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ModalPropsDocs.js +1 -1
  147. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/PagePropsDocs.js +1 -1
  148. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SectionPropsDocs.js +1 -1
  149. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SlideoutPropsDocs.js +1 -1
  150. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SwitchPropsDocs.js +1 -1
  151. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/TablePropsDocs.js +1 -1
  152. package/dist/ai-service/prompt-builder-service/static-fragments/library-components/TextPropsDocs.js +1 -1
  153. package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/Dim.js +1 -1
  154. package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/EventFlow.js +1 -1
  155. package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/TextStyleWithVariant.js +1 -1
  156. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/full-examples.js +1 -1
  157. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-api.js +1 -1
  158. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-components-rules.js +1 -1
  159. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-custom-components.js +1 -1
  160. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-data-filtering.js +1 -1
  161. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-event-flow.js +1 -1
  162. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-forms.js +1 -1
  163. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-layouts.js +1 -1
  164. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-page.js +1 -1
  165. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-rbac.js +1 -1
  166. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-routes.js +1 -1
  167. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-state.js +1 -1
  168. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-theming-chakra-new.js +1 -1
  169. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-base.js +1 -1
  170. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-incremental.js +1 -1
  171. package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-specific-edit.js +1 -1
  172. package/dist/ai-service/prompt-builder-service/utils/integrations/to-sdk-prompt.d.ts +3 -1
  173. package/dist/ai-service/prompt-builder-service/utils/integrations/to-sdk-prompt.d.ts.map +1 -1
  174. package/dist/ai-service/prompt-builder-service/utils/integrations/to-sdk-prompt.js +4 -2
  175. package/dist/ai-service/prompt-builder-service/utils/integrations/to-sdk-prompt.js.map +1 -1
  176. package/dist/ai-service/prompt-builder-service/utils/markdown-loader.d.ts +3 -1
  177. package/dist/ai-service/prompt-builder-service/utils/markdown-loader.d.ts.map +1 -1
  178. package/dist/ai-service/prompt-builder-service/utils/markdown-loader.js +3 -1
  179. package/dist/ai-service/prompt-builder-service/utils/markdown-loader.js.map +1 -1
  180. package/dist/ai-service/state-machine/clark-fsm.d.ts +16 -4
  181. package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
  182. package/dist/ai-service/state-machine/clark-fsm.js +47 -0
  183. package/dist/ai-service/state-machine/clark-fsm.js.map +1 -1
  184. package/dist/ai-service/state-machine/handlers/agent-planning.d.ts.map +1 -1
  185. package/dist/ai-service/state-machine/handlers/agent-planning.js +8 -10
  186. package/dist/ai-service/state-machine/handlers/agent-planning.js.map +1 -1
  187. package/dist/ai-service/state-machine/handlers/awaiting-user.d.ts.map +1 -1
  188. package/dist/ai-service/state-machine/handlers/awaiting-user.js +5 -4
  189. package/dist/ai-service/state-machine/handlers/awaiting-user.js.map +1 -1
  190. package/dist/ai-service/state-machine/handlers/idle.d.ts.map +1 -1
  191. package/dist/ai-service/state-machine/handlers/idle.js +2 -1
  192. package/dist/ai-service/state-machine/handlers/idle.js.map +1 -1
  193. package/dist/ai-service/state-machine/handlers/llm-generating.d.ts.map +1 -1
  194. package/dist/ai-service/state-machine/handlers/llm-generating.js +242 -262
  195. package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
  196. package/dist/ai-service/state-machine/handlers/post-processing.js +2 -0
  197. package/dist/ai-service/state-machine/handlers/post-processing.js.map +1 -1
  198. package/dist/ai-service/state-machine/traced-fsm.d.ts +41 -70
  199. package/dist/ai-service/state-machine/traced-fsm.d.ts.map +1 -1
  200. package/dist/ai-service/state-machine/traced-fsm.js +66 -173
  201. package/dist/ai-service/state-machine/traced-fsm.js.map +1 -1
  202. package/dist/ai-service/template-renderer.d.ts.map +1 -1
  203. package/dist/ai-service/template-renderer.js +102 -56
  204. package/dist/ai-service/template-renderer.js.map +1 -1
  205. package/dist/ai-service/test-utils/dd-trace-helpers.d.ts +1 -0
  206. package/dist/ai-service/test-utils/dd-trace-helpers.d.ts.map +1 -1
  207. package/dist/ai-service/test-utils/dd-trace-helpers.js.map +1 -1
  208. package/dist/ai-service/test-utils/span-interceptor.d.ts +74 -0
  209. package/dist/ai-service/test-utils/span-interceptor.d.ts.map +1 -0
  210. package/dist/ai-service/test-utils/span-interceptor.js +272 -0
  211. package/dist/ai-service/test-utils/span-interceptor.js.map +1 -0
  212. package/dist/ai-service/transform/api-builder/to-sdk-transformer.d.ts +2 -1
  213. package/dist/ai-service/transform/api-builder/to-sdk-transformer.d.ts.map +1 -1
  214. package/dist/ai-service/transform/api-builder/to-sdk-transformer.js +120 -63
  215. package/dist/ai-service/transform/api-builder/to-sdk-transformer.js.map +1 -1
  216. package/dist/ai-service/transform/api-builder/to-yaml-transformer.d.ts.map +1 -1
  217. package/dist/ai-service/transform/api-builder/to-yaml-transformer.js +97 -47
  218. package/dist/ai-service/transform/api-builder/to-yaml-transformer.js.map +1 -1
  219. package/dist/ai-service/transform/remove-api-builder-imports/transformer.d.ts.map +1 -1
  220. package/dist/ai-service/transform/remove-api-builder-imports/transformer.js +88 -37
  221. package/dist/ai-service/transform/remove-api-builder-imports/transformer.js.map +1 -1
  222. package/dist/ai-service/transform/shared.d.ts +4 -2
  223. package/dist/ai-service/transform/shared.d.ts.map +1 -1
  224. package/dist/ai-service/transform/shared.js +6 -3
  225. package/dist/ai-service/transform/shared.js.map +1 -1
  226. package/dist/ai-service/transform/workaround-missing-sbapi/transformer.d.ts.map +1 -1
  227. package/dist/ai-service/transform/workaround-missing-sbapi/transformer.js +77 -26
  228. package/dist/ai-service/transform/workaround-missing-sbapi/transformer.js.map +1 -1
  229. package/dist/ai-service/types.d.ts +2 -0
  230. package/dist/ai-service/types.d.ts.map +1 -1
  231. package/dist/ai-service/types.js.map +1 -1
  232. package/dist/ai-service/util/safe-stringify.d.ts +2 -0
  233. package/dist/ai-service/util/safe-stringify.d.ts.map +1 -0
  234. package/dist/ai-service/util/safe-stringify.js +68 -0
  235. package/dist/ai-service/util/safe-stringify.js.map +1 -0
  236. package/dist/binding-extraction/extract-identifiers.d.ts +5 -2
  237. package/dist/binding-extraction/extract-identifiers.d.ts.map +1 -1
  238. package/dist/binding-extraction/extract-identifiers.js +7 -4
  239. package/dist/binding-extraction/extract-identifiers.js.map +1 -1
  240. package/dist/file-sync-vite-plugin.d.ts.map +1 -1
  241. package/dist/file-sync-vite-plugin.js +92 -1
  242. package/dist/file-sync-vite-plugin.js.map +1 -1
  243. package/dist/file-system-helpers.d.ts +3 -0
  244. package/dist/file-system-helpers.d.ts.map +1 -1
  245. package/dist/file-system-helpers.js +12 -0
  246. package/dist/file-system-helpers.js.map +1 -1
  247. package/dist/file-system-manager.d.ts.map +1 -1
  248. package/dist/file-system-manager.js +53 -1
  249. package/dist/file-system-manager.js.map +1 -1
  250. package/dist/parsing/entity/to-value-entity.d.ts.map +1 -1
  251. package/dist/parsing/entity/to-value-entity.js +1 -0
  252. package/dist/parsing/entity/to-value-entity.js.map +1 -1
  253. package/dist/parsing/jsx.d.ts +4 -0
  254. package/dist/parsing/jsx.d.ts.map +1 -1
  255. package/dist/parsing/jsx.js +33 -0
  256. package/dist/parsing/jsx.js.map +1 -1
  257. package/dist/parsing/page.d.ts.map +1 -1
  258. package/dist/parsing/page.js +48 -3
  259. package/dist/parsing/page.js.map +1 -1
  260. package/dist/parsing/properties.d.ts.map +1 -1
  261. package/dist/parsing/properties.js +10 -0
  262. package/dist/parsing/properties.js.map +1 -1
  263. package/dist/socket-manager.d.ts.map +1 -1
  264. package/dist/socket-manager.js +3 -1
  265. package/dist/socket-manager.js.map +1 -1
  266. package/dist/source-tracker.d.ts +4 -0
  267. package/dist/source-tracker.d.ts.map +1 -1
  268. package/dist/source-tracker.js +132 -5
  269. package/dist/source-tracker.js.map +1 -1
  270. package/dist/sync-service/list-dir.d.ts +1 -1
  271. package/dist/sync-service/list-dir.d.ts.map +1 -1
  272. package/dist/sync-service/list-dir.js +3 -9
  273. package/dist/sync-service/list-dir.js.map +1 -1
  274. package/dist/util/logger.d.ts +9 -0
  275. package/dist/util/logger.d.ts.map +1 -1
  276. package/dist/util/logger.js +64 -7
  277. package/dist/util/logger.js.map +1 -1
  278. package/package.json +9 -7
  279. package/dist/ai-service/llmobs.d.ts +0 -154
  280. package/dist/ai-service/llmobs.d.ts.map +0 -1
  281. package/dist/ai-service/llmobs.js +0 -216
  282. package/dist/ai-service/llmobs.js.map +0 -1
  283. package/dist/ai-service/state-machine/handlers/simple-prompt-builder.d.ts +0 -2
  284. package/dist/ai-service/state-machine/handlers/simple-prompt-builder.d.ts.map +0 -1
  285. package/dist/ai-service/util/ddog-llmobs.d.ts +0 -20
  286. package/dist/ai-service/util/ddog-llmobs.d.ts.map +0 -1
  287. package/dist/ai-service/util/ddog-llmobs.js +0 -197
  288. package/dist/ai-service/util/ddog-llmobs.js.map +0 -1
@@ -1,154 +0,0 @@
1
- import ddTrace from "dd-trace";
2
- export type LLMObsSpan = ddTrace.Span;
3
- export type LLMObsSpanContext = ddTrace.SpanContext;
4
- /** Exported span data for submission to DataDog */
5
- export type ExportedLLMObsSpan = ddTrace.llmobs.ExportedLLMObsSpan;
6
- /**
7
- * Span type: 'llm', 'workflow', 'task', 'tool', 'agent'
8
- * See: [DataDog Docs: Span kinds](https://docs.datadoghq.com/llm_observability/terms/)
9
- * */
10
- export type LLMObsSpanKind = ddTrace.llmobs.spanKind;
11
- /** Evaluation options for user feedback and quality scores */
12
- export type LLMObsEvaluationOptions = ddTrace.llmobs.EvaluationOptions;
13
- /** Annotation options for adding metadata to spans */
14
- export type LLMObsAnnotationOptions = ddTrace.llmobs.AnnotationOptions;
15
- /** Base span configuration options */
16
- export interface LLMObsSpanOptions {
17
- kind: LLMObsSpanKind;
18
- modelName?: string;
19
- modelProvider?: string;
20
- sessionId?: string;
21
- tags?: {
22
- [key: string]: any;
23
- };
24
- }
25
- /** Span options with required name */
26
- export interface LLMObsNamedSpanOptions extends LLMObsSpanOptions {
27
- name: string;
28
- }
29
- /** Span options with optional name (falls back to function name or kind) */
30
- export interface LLMObsNamelessSpanOptions extends LLMObsSpanOptions {
31
- name?: string;
32
- }
33
- /** Options for manually-managed spans */
34
- export interface LLMObsManualSpanOptions extends LLMObsNamedSpanOptions {
35
- activation?: LLMObsActivationScope;
36
- }
37
- /** Activation scope: 'local' = inactive at scope end, 'global' = active across scopes */
38
- export type LLMObsActivationScope = "local" | "global";
39
- /**
40
- * Flexible wrapper around DataDog's LLMObs tracing API.
41
- *
42
- * Provides four ways to create spans:
43
- * - `trace()`: Execute function within auto-closing span
44
- * - `wrap()`: Wrap function with automatic tracing
45
- * - `startActiveSpan()`: Create manually-managed span
46
- * - `decorate()`: Create decorator function for automatic tracing
47
- */
48
- export declare class LLMObsTracer {
49
- private globalState;
50
- private localStorage;
51
- private globalTags;
52
- private static _instance;
53
- protected constructor();
54
- static get instance(): LLMObsTracer;
55
- /**
56
- * Execute a function within a traced span context
57
- * Automatically closes the span when the function completes
58
- * Supports both synchronous and asynchronous functions
59
- */
60
- trace<T>(options: LLMObsNamedSpanOptions, fn: (span: LLMObsSpan) => T): T;
61
- /**
62
- * Wrap a function with automatic tracing
63
- * The function name is used as the span name if not explicitly provided,
64
- * unless the function is anonymous, in which case options.kind is used
65
- */
66
- wrap<T extends (...args: any[]) => any>(options: LLMObsNamelessSpanOptions, fn: T): T;
67
- /**
68
- * Start a new active span that must be manually closed
69
- *
70
- * Activation modes (for manual spans only):
71
- * - activation: "local" (default): Span becomes inactive at end of current scope
72
- * - activation: "global": Span remains active across scopes until finished
73
- *
74
- * @param options Span configuration including name, kind, and activation mode
75
- * @returns A span that must be manually finished
76
- */
77
- startActiveSpan(options: LLMObsManualSpanOptions): LLMObsSpan;
78
- /**
79
- * Export a span for submission to DataDog
80
- * Defaults to the currently active span if none provided
81
- */
82
- exportSpan(span?: LLMObsSpan): ExportedLLMObsSpan;
83
- /**
84
- * Add metadata annotations to an existing span
85
- * Use this to add input/output data, metrics, or custom tags
86
- */
87
- annotate(annotations: LLMObsAnnotationOptions): void;
88
- annotate(span: LLMObsSpan, annotations: LLMObsAnnotationOptions): void;
89
- /**
90
- * Submit feedback or evaluation metrics for a completed span
91
- * Use for user feedback (accept/reject) or quality scores
92
- */
93
- submitEvaluation(spanContext: ExportedLLMObsSpan, option: LLMObsEvaluationOptions): void;
94
- /**
95
- * Create a decorator function for automatic tracing
96
- * Use as a TypeScript decorator or function wrapper
97
- */
98
- decorate<T extends (...args: any[]) => any>(options: LLMObsNamelessSpanOptions): (target: T) => T;
99
- /**
100
- * Get the currently active span
101
- */
102
- active(): LLMObsSpan | undefined;
103
- /**
104
- * Add global tags to be included on all spans
105
- * Existing tags with the same key will be overwritten
106
- */
107
- setGlobalTags(tags: {
108
- [key: string]: any;
109
- }): void;
110
- /**
111
- * Register a span and set up cleanup
112
- *
113
- * @param span The span to register
114
- * @param activation Whether span becomes inactive at scope end or remains active
115
- */
116
- private register;
117
- /**
118
- * Core tracing implementation
119
- *
120
- * Finish modes:
121
- * - finish: "auto": Span finishes automatically at end of scope
122
- * - finish: "manual": Span must be manually finished
123
- *
124
- * Activation modes (for manual spans only):
125
- * - activation: "local": Span becomes inactive at end of scope
126
- * - activation: "global": Span remains active across scopes
127
- *
128
- * @param options Span configuration including finish and activation modes
129
- * @param fn Function to execute within span context
130
- * @returns Result of executing fn within the span context
131
- */
132
- private _trace;
133
- /**
134
- * Activate a span as the current parent context for DataDog tracing
135
- *
136
- * This is a thin wrapper around DataDog's internal _activate method,
137
- * which establishes the parent-child relationship for spans created
138
- * within the executed function.
139
- *
140
- * @param span The span to set as parent context (null/undefined = no parent)
141
- * @param fn Function to execute with the span as active parent
142
- * @returns Result of executing fn with the span context active
143
- */
144
- private activate;
145
- private get localState();
146
- private static _llmobs;
147
- private get llmobs();
148
- }
149
- /**
150
- * Default singleton tracer instance
151
- */
152
- declare const tracer: LLMObsTracer;
153
- export default tracer;
154
- //# sourceMappingURL=llmobs.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"llmobs.d.ts","sourceRoot":"","sources":["../../src/ai-service/llmobs.ts"],"names":[],"mappings":"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"}
@@ -1,216 +0,0 @@
1
- import { AsyncLocalStorage } from "async_hooks";
2
- import ddTrace from "dd-trace";
3
- class IndexedStack {
4
- items = [];
5
- push(item) {
6
- this.items.push(item);
7
- }
8
- top() {
9
- return this.items[this.items.length - 1];
10
- }
11
- remove(item) {
12
- const index = this.items.indexOf(item);
13
- if (index !== -1) {
14
- this.items.splice(index, 1);
15
- return true;
16
- }
17
- return false;
18
- }
19
- length() {
20
- return this.items.length;
21
- }
22
- }
23
- class State extends IndexedStack {
24
- }
25
- /**
26
- * Flexible wrapper around DataDog's LLMObs tracing API.
27
- *
28
- * Provides four ways to create spans:
29
- * - `trace()`: Execute function within auto-closing span
30
- * - `wrap()`: Wrap function with automatic tracing
31
- * - `startActiveSpan()`: Create manually-managed span
32
- * - `decorate()`: Create decorator function for automatic tracing
33
- */
34
- export class LLMObsTracer {
35
- globalState = new State();
36
- localStorage = new AsyncLocalStorage();
37
- globalTags = {};
38
- static _instance = new LLMObsTracer();
39
- constructor() { }
40
- static get instance() {
41
- return LLMObsTracer._instance;
42
- }
43
- /**
44
- * Execute a function within a traced span context
45
- * Automatically closes the span when the function completes
46
- * Supports both synchronous and asynchronous functions
47
- */
48
- trace(options, fn) {
49
- return this._trace({ finish: "auto", ...options }, fn);
50
- }
51
- /**
52
- * Wrap a function with automatic tracing
53
- * The function name is used as the span name if not explicitly provided,
54
- * unless the function is anonymous, in which case options.kind is used
55
- */
56
- wrap(options, fn) {
57
- const name = options.name || fn.name || options.kind;
58
- return ((...args) => {
59
- return this.trace({ ...options, name }, (_span) => fn(...args));
60
- });
61
- }
62
- /**
63
- * Start a new active span that must be manually closed
64
- *
65
- * Activation modes (for manual spans only):
66
- * - activation: "local" (default): Span becomes inactive at end of current scope
67
- * - activation: "global": Span remains active across scopes until finished
68
- *
69
- * @param options Span configuration including name, kind, and activation mode
70
- * @returns A span that must be manually finished
71
- */
72
- startActiveSpan(options) {
73
- const { activation, ...rest } = options;
74
- return this._trace({ finish: "manual", activation, ...rest }, (span) => span);
75
- }
76
- /**
77
- * Export a span for submission to DataDog
78
- * Defaults to the currently active span if none provided
79
- */
80
- exportSpan(span) {
81
- return this.llmobs.exportSpan(span || this.active());
82
- }
83
- annotate(spanOrAnnotations, annotations) {
84
- if (annotations === undefined) {
85
- // First overload: annotate(annotations)
86
- return this.llmobs.annotate(this.active(), spanOrAnnotations);
87
- }
88
- else {
89
- // Second overload: annotate(span, annotations)
90
- return this.llmobs.annotate(spanOrAnnotations, annotations);
91
- }
92
- }
93
- /**
94
- * Submit feedback or evaluation metrics for a completed span
95
- * Use for user feedback (accept/reject) or quality scores
96
- */
97
- submitEvaluation(spanContext, option) {
98
- return this.llmobs.submitEvaluation(spanContext, option);
99
- }
100
- /**
101
- * Create a decorator function for automatic tracing
102
- * Use as a TypeScript decorator or function wrapper
103
- */
104
- decorate(options) {
105
- return (target) => {
106
- return this.wrap(options, target);
107
- };
108
- }
109
- /**
110
- * Get the currently active span
111
- */
112
- active() {
113
- return this.localState?.top() || this.globalState.top();
114
- }
115
- /**
116
- * Add global tags to be included on all spans
117
- * Existing tags with the same key will be overwritten
118
- */
119
- setGlobalTags(tags) {
120
- this.globalTags = { ...this.globalTags, ...tags };
121
- }
122
- /**
123
- * Register a span and set up cleanup
124
- *
125
- * @param span The span to register
126
- * @param activation Whether span becomes inactive at scope end or remains active
127
- */
128
- register(span, activation) {
129
- this.annotate(span, { tags: this.globalTags });
130
- const originalFinish = span.finish.bind(span);
131
- // Override original finish to maintain stack integrity
132
- span.finish = (finishTime) => {
133
- // Always try to remove from both
134
- this.localState?.remove(span);
135
- this.globalState.remove(span);
136
- return originalFinish(finishTime);
137
- };
138
- // Add span to appropriate state containers
139
- const localState = this.localState;
140
- if (localState) {
141
- localState.push(span);
142
- }
143
- if (!localState || activation === "global") {
144
- this.globalState.push(span);
145
- }
146
- }
147
- /**
148
- * Core tracing implementation
149
- *
150
- * Finish modes:
151
- * - finish: "auto": Span finishes automatically at end of scope
152
- * - finish: "manual": Span must be manually finished
153
- *
154
- * Activation modes (for manual spans only):
155
- * - activation: "local": Span becomes inactive at end of scope
156
- * - activation: "global": Span remains active across scopes
157
- *
158
- * @param options Span configuration including finish and activation modes
159
- * @param fn Function to execute within span context
160
- * @returns Result of executing fn within the span context
161
- */
162
- _trace(options, fn) {
163
- const { tags, finish, activation = "local", ...rest } = options;
164
- const setup = (span) => {
165
- this.register(span, activation);
166
- this.annotate(span, { tags });
167
- };
168
- return this.activate(this.active(), () => {
169
- if (finish == "auto") {
170
- return this.llmobs.trace(rest, (span) => {
171
- return this.localStorage.run(new State(), () => {
172
- setup(span);
173
- return fn(span);
174
- });
175
- });
176
- }
177
- else {
178
- return this.llmobs.trace(rest, (span, _done) => {
179
- setup(span);
180
- return fn(span);
181
- });
182
- }
183
- });
184
- }
185
- /**
186
- * Activate a span as the current parent context for DataDog tracing
187
- *
188
- * This is a thin wrapper around DataDog's internal _activate method,
189
- * which establishes the parent-child relationship for spans created
190
- * within the executed function.
191
- *
192
- * @param span The span to set as parent context (null/undefined = no parent)
193
- * @param fn Function to execute with the span as active parent
194
- * @returns Result of executing fn with the span context active
195
- */
196
- activate(span, fn) {
197
- return this.llmobs._activate(span, null, fn);
198
- }
199
- get localState() {
200
- return this.localStorage.getStore();
201
- }
202
- // Lazy initialization to avoid import order sensitivity
203
- static _llmobs = null;
204
- get llmobs() {
205
- if (!LLMObsTracer._llmobs) {
206
- LLMObsTracer._llmobs = ddTrace.llmobs;
207
- }
208
- return LLMObsTracer._llmobs;
209
- }
210
- }
211
- /**
212
- * Default singleton tracer instance
213
- */
214
- const tracer = LLMObsTracer.instance;
215
- export default tracer;
216
- //# sourceMappingURL=llmobs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"llmobs.js","sourceRoot":"","sources":["../../src/ai-service/llmobs.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare const buildSimplePrompt: () => string;
2
- //# sourceMappingURL=simple-prompt-builder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"simple-prompt-builder.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/state-machine/handlers/simple-prompt-builder.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,cAk3E7B,CAAC"}
@@ -1,20 +0,0 @@
1
- import { streamText, type ToolSet, type StepResult } from "ai";
2
- import tracer, { type Span } from "dd-trace";
3
- type LLMObsNamedSpanOptions = tracer.llmobs.LLMObsNamedSpanOptions;
4
- type LLMObsSpanKind = tracer.llmobs.spanKind;
5
- export declare function traceWorkflow<T>(name: string, operation: (span: any) => Promise<T>, tags?: Record<string, string | boolean>): Promise<T>;
6
- export declare function traceTask<T>(name: string, operation: (span: any) => Promise<T>, tags?: Record<string, string | boolean>): Promise<T>;
7
- export declare function traceLLM<T>(name: string, modelName: string, modelProvider: string, operation: (span: Span) => Promise<T>, tags?: Record<string, string | boolean>): Promise<T>;
8
- export declare const traceToolSet: (toolset: ToolSet) => ToolSet;
9
- export declare function getJwtTraceTags(jwt: string | undefined): Record<string, string>;
10
- export declare function getCommonTraceTags(jwt: string | undefined, applicationId: string, organizationId: string, additionalTags?: Record<string, string | boolean>): Record<string, string | boolean>;
11
- /**
12
- * Builds LLMObsNamedSpanOptions from StepResult for tracing
13
- */
14
- export declare function buildSpanOptions<T extends ToolSet>(kind: LLMObsSpanKind, step: StepResult<T>, modelName?: string, modelProvider?: string): LLMObsNamedSpanOptions;
15
- /**
16
- * Wrapper around streamText that automatically handles tracing for onStepFinish, onFinish, and prepareStep
17
- */
18
- export declare function tracedStreamText<T extends ToolSet>(options: Parameters<typeof streamText<T>>[0]): import("ai").StreamTextResult<T, never>;
19
- export {};
20
- //# sourceMappingURL=ddog-llmobs.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ddog-llmobs.d.ts","sourceRoot":"","sources":["../../../src/ai-service/util/ddog-llmobs.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,KAAK,OAAO,EACZ,KAAK,UAAU,EAGhB,MAAM,IAAI,CAAC;AACZ,OAAO,MAAM,EAAE,EAAE,KAAK,IAAI,EAAE,MAAM,UAAU,CAAC;AAG7C,KAAK,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC;AACnE,KAAK,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;AAG7C,wBAAgB,aAAa,CAAC,CAAC,EAC7B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,EACpC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GACtC,OAAO,CAAC,CAAC,CAAC,CAeZ;AAGD,wBAAgB,SAAS,CAAC,CAAC,EACzB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,EACpC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GACtC,OAAO,CAAC,CAAC,CAAC,CAeZ;AAGD,wBAAgB,QAAQ,CAAC,CAAC,EACxB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,EACrC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GACtC,OAAO,CAAC,CAAC,CAAC,CAiBZ;AAGD,eAAO,MAAM,YAAY,GAAI,SAAS,OAAO,KAAG,OAsC/C,CAAC;AAGF,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,GAAG,SAAS,GACtB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAoBxB;AAGD,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,EACtB,cAAc,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAM,GACpD,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAclC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,OAAO,EAChD,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EACnB,SAAS,CAAC,EAAE,MAAM,EAClB,aAAa,CAAC,EAAE,MAAM,GACrB,sBAAsB,CA6BxB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,OAAO,EAChD,OAAO,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,2CAiE7C"}
@@ -1,197 +0,0 @@
1
- import { streamText, } from "ai";
2
- import tracer, {} from "dd-trace";
3
- // Helper function for workflow tracing with common patterns
4
- export function traceWorkflow(name, operation, tags) {
5
- const { llmobs } = tracer;
6
- return llmobs.trace({
7
- kind: "workflow",
8
- name,
9
- }, async (span) => {
10
- if (tags) {
11
- llmobs.annotate({ tags });
12
- }
13
- return operation(span);
14
- });
15
- }
16
- // Helper function for task tracing with common patterns
17
- export function traceTask(name, operation, tags) {
18
- const { llmobs } = tracer;
19
- return llmobs.trace({
20
- kind: "task",
21
- name,
22
- }, async (span) => {
23
- if (tags) {
24
- llmobs.annotate({ tags });
25
- }
26
- return operation(span);
27
- });
28
- }
29
- // Helper function for LLM tracing with common patterns
30
- export function traceLLM(name, modelName, modelProvider, operation, tags) {
31
- const { llmobs } = tracer;
32
- return llmobs.trace({
33
- kind: "llm",
34
- name,
35
- modelName,
36
- modelProvider,
37
- }, async (span) => {
38
- if (tags) {
39
- llmobs.annotate({ tags });
40
- }
41
- return operation(span);
42
- });
43
- }
44
- // Helper function for tool tracing with common patterns
45
- export const traceToolSet = (toolset) => {
46
- const tracedToolset = {};
47
- const { llmobs } = tracer;
48
- for (const [name, tool] of Object.entries(toolset)) {
49
- tracedToolset[name] = {
50
- ...tool,
51
- execute: async (input, options) => {
52
- try {
53
- return await llmobs.trace({
54
- kind: "tool",
55
- name,
56
- }, async () => {
57
- if (!tool.execute) {
58
- throw new Error(`Tool ${name} has no execute method`);
59
- }
60
- const result = await tool.execute(input, options);
61
- llmobs.annotate({
62
- inputData: input,
63
- outputData: result,
64
- metadata: {
65
- toolCallId: options?.toolCallId,
66
- },
67
- });
68
- return result;
69
- });
70
- }
71
- catch (error) {
72
- console.error(`Error executing tool ${name}:`, error);
73
- throw error;
74
- }
75
- },
76
- };
77
- }
78
- return tracedToolset;
79
- };
80
- // Helper to extract JWT trace tags
81
- export function getJwtTraceTags(jwt) {
82
- const result = {};
83
- if (jwt) {
84
- try {
85
- const parts = jwt.split(".");
86
- if (parts.length === 3 && parts[1]) {
87
- const payload = JSON.parse(Buffer.from(parts[1], "base64").toString());
88
- if (payload.org_id)
89
- result["org.id"] = payload.org_id;
90
- if (payload.org_name)
91
- result["org.name"] = payload.org_name;
92
- if (payload.user_id)
93
- result["user.id"] = payload.user_id;
94
- if (payload.user_email)
95
- result["user.email"] = payload.user_email;
96
- }
97
- }
98
- catch {
99
- // Silently handle JWT parsing errors
100
- }
101
- }
102
- return result;
103
- }
104
- // Helper to combine common tags with enhanced user information
105
- export function getCommonTraceTags(jwt, applicationId, organizationId, additionalTags = {}) {
106
- const result = {};
107
- // Extract and add JWT tags using the extracted function
108
- Object.assign(result, getJwtTraceTags(jwt));
109
- // Add required tags (no if checks needed since they're required)
110
- result["application.id"] = applicationId;
111
- result["organization.id"] = organizationId;
112
- // Add additional tags
113
- Object.assign(result, additionalTags);
114
- return result;
115
- }
116
- /**
117
- * Builds LLMObsNamedSpanOptions from StepResult for tracing
118
- */
119
- export function buildSpanOptions(kind, step, modelName, modelProvider) {
120
- const getSpanName = (finishReason, content) => {
121
- switch (finishReason) {
122
- case "tool-calls": {
123
- const toolName = Array.isArray(content)
124
- ? content.find((item) => item?.type === "tool-call" && item.toolName)
125
- ?.toolName
126
- : undefined;
127
- return toolName ? `llm_${toolName}` : "llm_tool_calls";
128
- }
129
- case "stop":
130
- return "llm_text_generation";
131
- case "length":
132
- return "llm_token_limit";
133
- case "content-filter":
134
- return "llm_content_filtered";
135
- case "error":
136
- return "llm_error";
137
- default:
138
- return "llm_step";
139
- }
140
- };
141
- return {
142
- kind,
143
- name: getSpanName(step.finishReason, step.content),
144
- ...(modelName && { modelName }),
145
- ...(modelProvider && { modelProvider }),
146
- };
147
- }
148
- /**
149
- * Wrapper around streamText that automatically handles tracing for onStepFinish, onFinish, and prepareStep
150
- */
151
- export function tracedStreamText(options) {
152
- const { llmobs } = tracer;
153
- let startTime;
154
- const tracedPrepareStep = async (step) => {
155
- startTime = Date.now();
156
- if (options.prepareStep) {
157
- return await options.prepareStep(step);
158
- }
159
- };
160
- const tracedOnStepFinish = async (step) => {
161
- return llmobs.trace(buildSpanOptions("llm", step, typeof options.model === "string"
162
- ? options.model
163
- : options.model.modelId, typeof options.model === "string" ? "unknown" : options.model.provider), async () => {
164
- if (options.onStepFinish) {
165
- await options.onStepFinish(step);
166
- }
167
- console.log("Usage:", JSON.stringify(step.usage));
168
- llmobs.annotate({
169
- inputData: JSON.stringify(step.request?.body?.messages || []),
170
- outputData: JSON.stringify(step.content),
171
- metrics: {
172
- inputTokens: step.usage?.inputTokens ?? 0,
173
- outputTokens: step.usage?.outputTokens ?? 0,
174
- totalTokens: step.usage?.totalTokens ?? 0,
175
- },
176
- metadata: {
177
- request: step.request,
178
- response: step.response,
179
- },
180
- tags: {
181
- duration: Date.now() - startTime,
182
- cachedInputTokens: step.usage?.cachedInputTokens ?? 0,
183
- },
184
- });
185
- });
186
- };
187
- // Trace all tools
188
- if (options.tools) {
189
- options.tools = traceToolSet(options.tools);
190
- }
191
- return streamText({
192
- ...options,
193
- prepareStep: tracedPrepareStep,
194
- onStepFinish: tracedOnStepFinish,
195
- });
196
- }
197
- //# sourceMappingURL=ddog-llmobs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ddog-llmobs.js","sourceRoot":"","sources":["../../../src/ai-service/util/ddog-llmobs.ts"],"names":[],"mappings":"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"}