dd-trace 5.126.0 → 5.128.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (378) hide show
  1. package/README.md +15 -0
  2. package/ci/diagnose.js +0 -23
  3. package/ci/test-optimization-validation/approval-artifacts.js +0 -3
  4. package/ci/test-optimization-validation/approval.js +0 -6
  5. package/ci/test-optimization-validation/artifact-id.js +0 -1
  6. package/ci/test-optimization-validation/bounded-json.js +0 -1
  7. package/ci/test-optimization-validation/cli.js +0 -12
  8. package/ci/test-optimization-validation/command-output-policy.js +0 -1
  9. package/ci/test-optimization-validation/command-runner.js +0 -3
  10. package/ci/test-optimization-validation/environment.js +0 -4
  11. package/ci/test-optimization-validation/executable-approval.js +0 -1
  12. package/ci/test-optimization-validation/executable.js +0 -5
  13. package/ci/test-optimization-validation/framework-adapters/cucumber.js +4 -8
  14. package/ci/test-optimization-validation/framework-adapters/cypress.js +0 -3
  15. package/ci/test-optimization-validation/framework-adapters/playwright.js +0 -6
  16. package/ci/test-optimization-validation/framework-adapters/vitest.js +0 -4
  17. package/ci/test-optimization-validation/generated-test-contract.js +0 -5
  18. package/ci/test-optimization-validation/generated-verifier.js +0 -1
  19. package/ci/test-optimization-validation/literal-environment.js +0 -1
  20. package/ci/test-optimization-validation/manifest-scaffold.js +0 -17
  21. package/ci/test-optimization-validation/manifest-schema.js +0 -21
  22. package/ci/test-optimization-validation/offline-fixtures.js +0 -4
  23. package/ci/test-optimization-validation/package-check.js +4 -1
  24. package/ci/test-optimization-validation/plan-writer.js +0 -11
  25. package/ci/test-optimization-validation/preflight-runner.js +0 -1
  26. package/ci/test-optimization-validation/redaction.js +0 -4
  27. package/ci/test-optimization-validation/report-writer.js +0 -16
  28. package/ci/test-optimization-validation/runner-command.js +0 -3
  29. package/ci/test-optimization-validation/runner-contract.js +0 -4
  30. package/ci/test-optimization-validation/safe-files.js +0 -1
  31. package/ci/test-optimization-validation/scenarios/basic-reporting.js +0 -1
  32. package/ci/test-optimization-validation/scenarios/ci-wiring.js +1 -2
  33. package/ci/test-optimization-validation/source-text.js +0 -3
  34. package/ci/vitest-no-worker-init-setup.mjs +41 -16
  35. package/index.d.ts +169 -0
  36. package/next.d.ts +27 -0
  37. package/next.js +3 -0
  38. package/package.json +28 -23
  39. package/packages/datadog-esbuild/index.js +14 -1
  40. package/packages/datadog-esbuild/src/resolver.js +284 -0
  41. package/packages/datadog-esbuild/src/utils.js +162 -120
  42. package/packages/datadog-instrumentations/src/aerospike.js +28 -6
  43. package/packages/datadog-instrumentations/src/ai.js +39 -97
  44. package/packages/datadog-instrumentations/src/anthropic.js +76 -134
  45. package/packages/datadog-instrumentations/src/aws-durable-execution-sdk-js.js +1 -3
  46. package/packages/datadog-instrumentations/src/aws-sdk.js +0 -2
  47. package/packages/datadog-instrumentations/src/azure-cosmos.js +1 -1
  48. package/packages/datadog-instrumentations/src/azure-durable-functions.js +23 -9
  49. package/packages/datadog-instrumentations/src/azure-functions.js +48 -0
  50. package/packages/datadog-instrumentations/src/bullmq.js +1 -1
  51. package/packages/datadog-instrumentations/src/claude-agent-sdk.js +1 -3
  52. package/packages/datadog-instrumentations/src/console.js +97 -0
  53. package/packages/datadog-instrumentations/src/cucumber.js +72 -12
  54. package/packages/datadog-instrumentations/src/cypress-config.js +0 -23
  55. package/packages/datadog-instrumentations/src/dd-trace-api.js +2 -2
  56. package/packages/datadog-instrumentations/src/graphql.js +1 -1
  57. package/packages/datadog-instrumentations/src/helpers/bundler-register.js +39 -14
  58. package/packages/datadog-instrumentations/src/helpers/channel.js +0 -2
  59. package/packages/datadog-instrumentations/src/helpers/graphql-jit-runtime.js +0 -5
  60. package/packages/datadog-instrumentations/src/helpers/hooks.js +8 -0
  61. package/packages/datadog-instrumentations/src/helpers/instrument.js +25 -8
  62. package/packages/datadog-instrumentations/src/helpers/instrumentation-utils.js +69 -0
  63. package/packages/datadog-instrumentations/src/helpers/pool-acquire.js +0 -6
  64. package/packages/datadog-instrumentations/src/helpers/register.js +13 -64
  65. package/packages/datadog-instrumentations/src/helpers/rewriter/index.js +109 -29
  66. package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentation-registry.js +39 -0
  67. package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/azure-durable-functions.js +17 -0
  68. package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/index.js +3 -16
  69. package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/playwright.js +12 -0
  70. package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/postgres.js +36 -0
  71. package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/supabase.js +128 -0
  72. package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/webdriverio.js +6 -7
  73. package/packages/datadog-instrumentations/src/helpers/rewriter/targets.json +17 -0
  74. package/packages/datadog-instrumentations/src/helpers/rewriter/transforms/postgres.js +388 -0
  75. package/packages/datadog-instrumentations/src/helpers/rewriter/transforms.js +99 -75
  76. package/packages/datadog-instrumentations/src/helpers/router-helper.js +0 -1
  77. package/packages/datadog-instrumentations/src/jest.js +141 -51
  78. package/packages/datadog-instrumentations/src/knex.js +0 -1
  79. package/packages/datadog-instrumentations/src/langchain.js +1 -1
  80. package/packages/datadog-instrumentations/src/langgraph.js +1 -1
  81. package/packages/datadog-instrumentations/src/mariadb-bundle.js +0 -24
  82. package/packages/datadog-instrumentations/src/mariadb.js +0 -2
  83. package/packages/datadog-instrumentations/src/mercurius.js +1 -1
  84. package/packages/datadog-instrumentations/src/mocha/common.js +0 -1
  85. package/packages/datadog-instrumentations/src/mocha/main.js +22 -25
  86. package/packages/datadog-instrumentations/src/mocha/utils.js +119 -49
  87. package/packages/datadog-instrumentations/src/mocha/webdriverio-protocol.js +0 -6
  88. package/packages/datadog-instrumentations/src/mocha/worker.js +14 -17
  89. package/packages/datadog-instrumentations/src/modelcontextprotocol-sdk.js +1 -1
  90. package/packages/datadog-instrumentations/src/mysql2.js +0 -2
  91. package/packages/datadog-instrumentations/src/openai-agents.js +1 -1
  92. package/packages/datadog-instrumentations/src/openai-realtime/audio-accumulator.js +241 -0
  93. package/packages/datadog-instrumentations/src/openai-realtime/events.js +76 -0
  94. package/packages/datadog-instrumentations/src/openai-realtime/index.js +301 -0
  95. package/packages/datadog-instrumentations/src/openai-realtime/session.js +998 -0
  96. package/packages/datadog-instrumentations/src/openai-realtime/turns.js +211 -0
  97. package/packages/datadog-instrumentations/src/openai.js +97 -80
  98. package/packages/datadog-instrumentations/src/oracledb.js +9 -3
  99. package/packages/datadog-instrumentations/src/playwright-reporter.js +3 -16
  100. package/packages/datadog-instrumentations/src/playwright.js +238 -55
  101. package/packages/datadog-instrumentations/src/postgres.js +7 -0
  102. package/packages/datadog-instrumentations/src/router.js +0 -2
  103. package/packages/datadog-instrumentations/src/rum-browser-scripts.js +0 -2
  104. package/packages/datadog-instrumentations/src/sequelize.js +0 -1
  105. package/packages/datadog-instrumentations/src/supabase.js +15 -0
  106. package/packages/datadog-instrumentations/src/vitest-main-no-worker-init.js +18 -18
  107. package/packages/datadog-instrumentations/src/vitest-main.js +37 -17
  108. package/packages/datadog-instrumentations/src/vitest-util.js +7 -1
  109. package/packages/datadog-instrumentations/src/vitest-worker.js +56 -23
  110. package/packages/datadog-instrumentations/src/webdriverio.js +23 -42
  111. package/packages/datadog-instrumentations/src/ws.js +0 -1
  112. package/packages/datadog-plugin-ai/src/utils.js +0 -2
  113. package/packages/datadog-plugin-aws-durable-execution-sdk-js/src/trace-checkpoint.js +0 -1
  114. package/packages/datadog-plugin-aws-durable-execution-sdk-js/src/util.js +0 -2
  115. package/packages/datadog-plugin-aws-sdk/src/base.js +0 -1
  116. package/packages/datadog-plugin-aws-sdk/src/services/bedrockruntime/utils.js +7 -2
  117. package/packages/datadog-plugin-aws-sdk/src/services/eventbridge.js +0 -1
  118. package/packages/datadog-plugin-aws-sdk/src/util.js +0 -1
  119. package/packages/datadog-plugin-azure-cosmos/src/index.js +1 -1
  120. package/packages/datadog-plugin-azure-durable-functions/src/index.js +95 -1
  121. package/packages/datadog-plugin-cucumber/src/index.js +10 -0
  122. package/packages/datadog-plugin-cypress/src/cypress-plugin.js +171 -75
  123. package/packages/datadog-plugin-cypress/src/finalization.js +0 -3
  124. package/packages/datadog-plugin-cypress/src/source-map-utils.js +0 -4
  125. package/packages/datadog-plugin-cypress/src/support.js +52 -7
  126. package/packages/datadog-plugin-google-cloud-pubsub/src/consumer.js +2 -24
  127. package/packages/datadog-plugin-google-cloud-pubsub/src/pubsub-push-subscription.js +2 -36
  128. package/packages/datadog-plugin-google-cloud-pubsub/src/pubsub-request-context.js +31 -0
  129. package/packages/datadog-plugin-graphql/src/resolve-error.js +32 -11
  130. package/packages/datadog-plugin-graphql/src/utils.js +0 -5
  131. package/packages/datadog-plugin-jest/src/index.js +13 -0
  132. package/packages/datadog-plugin-kafkajs/src/producer.js +0 -1
  133. package/packages/datadog-plugin-mocha/src/index.js +39 -11
  134. package/packages/datadog-plugin-mongodb-core/src/query.js +0 -1
  135. package/packages/datadog-plugin-openai/src/index.js +16 -1
  136. package/packages/datadog-plugin-openai/src/realtime.js +144 -0
  137. package/packages/datadog-plugin-openai-agents/src/integration.js +0 -4
  138. package/packages/datadog-plugin-openai-agents/src/util.js +0 -1
  139. package/packages/datadog-plugin-playwright/src/index.js +76 -9
  140. package/packages/datadog-plugin-postgres/src/index.js +167 -0
  141. package/packages/datadog-plugin-prisma/src/datadog-tracing-helper.js +0 -1
  142. package/packages/datadog-plugin-redis/src/index.js +15 -1
  143. package/packages/datadog-plugin-supabase/src/error.js +18 -0
  144. package/packages/datadog-plugin-supabase/src/index.js +21 -0
  145. package/packages/datadog-plugin-supabase/src/supabase-auth-js-gotrueclient-getuser.js +69 -0
  146. package/packages/datadog-plugin-supabase/src/supabase-functions-js-functionsclient-invoke.js +70 -0
  147. package/packages/datadog-plugin-supabase/src/supabase-postgrest-js-postgrestbuilder-then.js +122 -0
  148. package/packages/datadog-plugin-supabase/src/supabase-realtime-js-realtimechannel-send.js +66 -0
  149. package/packages/datadog-plugin-supabase/src/supabase-storage-js-handle-request.js +93 -0
  150. package/packages/datadog-plugin-supabase/src/url.js +17 -0
  151. package/packages/datadog-plugin-vitest/src/index.js +10 -0
  152. package/packages/datadog-plugin-ws/src/util.js +0 -4
  153. package/packages/datadog-turbopack/index.js +206 -0
  154. package/packages/datadog-turbopack/src/constants.js +5 -0
  155. package/packages/datadog-turbopack/src/loader.js +484 -0
  156. package/packages/datadog-webpack/src/loader.js +0 -1
  157. package/packages/dd-trace/src/aiguard/client.js +2 -3
  158. package/packages/dd-trace/src/aiguard/evaluation.js +6 -12
  159. package/packages/dd-trace/src/aiguard/index.js +3 -2
  160. package/packages/dd-trace/src/aiguard/integrations/anthropic.js +53 -25
  161. package/packages/dd-trace/src/aiguard/integrations/evaluate.js +49 -25
  162. package/packages/dd-trace/src/aiguard/integrations/index.js +4 -3
  163. package/packages/dd-trace/src/aiguard/integrations/openai.js +132 -29
  164. package/packages/dd-trace/src/aiguard/integrations/vercel-ai.js +116 -42
  165. package/packages/dd-trace/src/aiguard/messages/anthropic.js +0 -2
  166. package/packages/dd-trace/src/aiguard/messages/openai.js +64 -1
  167. package/packages/dd-trace/src/aiguard/messages/utils.js +29 -2
  168. package/packages/dd-trace/src/aiguard/messages/vercel-ai.js +25 -0
  169. package/packages/dd-trace/src/aiguard/redaction.js +0 -1
  170. package/packages/dd-trace/src/aiguard/sdk.js +1 -1
  171. package/packages/dd-trace/src/appsec/activation.js +1 -1
  172. package/packages/dd-trace/src/appsec/api_security/normalized-route.js +0 -5
  173. package/packages/dd-trace/src/appsec/api_security/sampler.js +0 -4
  174. package/packages/dd-trace/src/appsec/blocking/index.js +3 -3
  175. package/packages/dd-trace/src/appsec/downstream_requests.js +1 -4
  176. package/packages/dd-trace/src/appsec/iast/index.js +1 -1
  177. package/packages/dd-trace/src/appsec/iast/overhead-controller.js +5 -5
  178. package/packages/dd-trace/src/appsec/iast/taint-tracking/index.js +1 -1
  179. package/packages/dd-trace/src/appsec/iast/taint-tracking/plugin.js +1 -1
  180. package/packages/dd-trace/src/appsec/iast/taint-tracking/rewriter.js +3 -3
  181. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-analyzers/sql-sensitive-analyzer.js +8 -10
  182. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-analyzers/url-sensitive-analyzer.js +2 -2
  183. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-handler.js +2 -2
  184. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/utils.js +4 -1
  185. package/packages/dd-trace/src/appsec/iast/vulnerability-reporter.js +7 -7
  186. package/packages/dd-trace/src/appsec/index.js +2 -2
  187. package/packages/dd-trace/src/appsec/lambda.js +71 -2
  188. package/packages/dd-trace/src/appsec/rasp/utils.js +5 -1
  189. package/packages/dd-trace/src/appsec/remote_config.js +8 -6
  190. package/packages/dd-trace/src/appsec/reporter.js +10 -6
  191. package/packages/dd-trace/src/appsec/rule_manager.js +3 -3
  192. package/packages/dd-trace/src/appsec/sdk/track_event.js +0 -2
  193. package/packages/dd-trace/src/appsec/telemetry/api_security.js +1 -3
  194. package/packages/dd-trace/src/appsec/telemetry/common.js +4 -0
  195. package/packages/dd-trace/src/appsec/telemetry/index.js +23 -5
  196. package/packages/dd-trace/src/appsec/telemetry/rasp.js +1 -20
  197. package/packages/dd-trace/src/appsec/telemetry/user.js +1 -3
  198. package/packages/dd-trace/src/appsec/telemetry/waf.js +1 -20
  199. package/packages/dd-trace/src/appsec/waf/index.js +2 -2
  200. package/packages/dd-trace/src/appsec/waf/waf_manager.js +8 -5
  201. package/packages/dd-trace/src/carrier.js +0 -5
  202. package/packages/dd-trace/src/ci-visibility/dynamic-atr-retries.js +104 -0
  203. package/packages/dd-trace/src/ci-visibility/dynamic-instrumentation/worker/index.js +0 -2
  204. package/packages/dd-trace/src/ci-visibility/efd-retry-policy.js +34 -3
  205. package/packages/dd-trace/src/ci-visibility/exporters/agentless/coverage-writer.js +0 -1
  206. package/packages/dd-trace/src/ci-visibility/exporters/agentless/di-logs-writer.js +0 -1
  207. package/packages/dd-trace/src/ci-visibility/exporters/agentless/writer.js +0 -1
  208. package/packages/dd-trace/src/ci-visibility/exporters/ci-validation/index.js +0 -4
  209. package/packages/dd-trace/src/ci-visibility/exporters/ci-validation/msgpack-to-json.js +0 -1
  210. package/packages/dd-trace/src/ci-visibility/exporters/ci-validation/sink.js +0 -2
  211. package/packages/dd-trace/src/ci-visibility/exporters/ci-visibility-exporter.js +37 -15
  212. package/packages/dd-trace/src/ci-visibility/exporters/git/git_metadata.js +0 -3
  213. package/packages/dd-trace/src/ci-visibility/exporters/request.js +0 -11
  214. package/packages/dd-trace/src/ci-visibility/exporters/settings-cache-key.js +0 -1
  215. package/packages/dd-trace/src/ci-visibility/intelligent-test-runner/get-skippable-suites.js +0 -1
  216. package/packages/dd-trace/src/ci-visibility/requests/fs-cache.js +0 -6
  217. package/packages/dd-trace/src/ci-visibility/requests/get-library-configuration.js +2 -2
  218. package/packages/dd-trace/src/ci-visibility/requests/rate-limit.js +0 -1
  219. package/packages/dd-trace/src/ci-visibility/requests/upload-test-screenshot.js +0 -5
  220. package/packages/dd-trace/src/ci-visibility/requests/video-request.js +0 -1
  221. package/packages/dd-trace/src/ci-visibility/telemetry.js +13 -0
  222. package/packages/dd-trace/src/ci-visibility/test-optimization-cache.js +0 -1
  223. package/packages/dd-trace/src/ci-visibility/test-screenshot.js +0 -2
  224. package/packages/dd-trace/src/ci-visibility/test-video.js +0 -1
  225. package/packages/dd-trace/src/config/defaults.js +3 -2
  226. package/packages/dd-trace/src/config/generated-config-types.d.ts +74 -66
  227. package/packages/dd-trace/src/config/helper.js +9 -2
  228. package/packages/dd-trace/src/config/index.js +44 -29
  229. package/packages/dd-trace/src/config/parsers.js +34 -6
  230. package/packages/dd-trace/src/config/remote_config.js +25 -109
  231. package/packages/dd-trace/src/config/supported-configurations.json +146 -9
  232. package/packages/dd-trace/src/datastreams/encoding.js +0 -1
  233. package/packages/dd-trace/src/datastreams/pathway.js +0 -1
  234. package/packages/dd-trace/src/debugger/constants.js +10 -0
  235. package/packages/dd-trace/src/debugger/devtools_client/breakpoints.js +76 -17
  236. package/packages/dd-trace/src/debugger/devtools_client/config.js +2 -0
  237. package/packages/dd-trace/src/debugger/devtools_client/guardrail-metrics.js +15 -0
  238. package/packages/dd-trace/src/debugger/devtools_client/index.js +103 -27
  239. package/packages/dd-trace/src/debugger/devtools_client/json-buffer.js +50 -7
  240. package/packages/dd-trace/src/debugger/devtools_client/log.js +3 -1
  241. package/packages/dd-trace/src/debugger/devtools_client/probe_sampler.js +34 -8
  242. package/packages/dd-trace/src/debugger/devtools_client/send.js +40 -14
  243. package/packages/dd-trace/src/debugger/devtools_client/snapshot/index.js +53 -13
  244. package/packages/dd-trace/src/debugger/devtools_client/snapshot/processor.js +118 -71
  245. package/packages/dd-trace/src/debugger/devtools_client/snapshot-pruner.js +0 -3
  246. package/packages/dd-trace/src/debugger/devtools_client/status.js +20 -6
  247. package/packages/dd-trace/src/debugger/guardrail-metrics.js +167 -0
  248. package/packages/dd-trace/src/debugger/index.js +50 -2
  249. package/packages/dd-trace/src/debugger/inspect-segment.js +0 -3
  250. package/packages/dd-trace/src/debugger/probe_sampler.js +133 -9
  251. package/packages/dd-trace/src/debugger/probe_sampler_constants.js +31 -1
  252. package/packages/dd-trace/src/dogstatsd.js +0 -23
  253. package/packages/dd-trace/src/encode/0.4-cross-payload.js +0 -3
  254. package/packages/dd-trace/src/encode/0.4.js +0 -7
  255. package/packages/dd-trace/src/encode/0.5.js +0 -2
  256. package/packages/dd-trace/src/encode/tags-processors.js +0 -1
  257. package/packages/dd-trace/src/evp_proxy/discovery.js +3 -5
  258. package/packages/dd-trace/src/evp_proxy/path.js +11 -4
  259. package/packages/dd-trace/src/exporters/agent/writer.js +0 -1
  260. package/packages/dd-trace/src/exporters/agentless/index.js +0 -1
  261. package/packages/dd-trace/src/exporters/agentless/intake.js +0 -1
  262. package/packages/dd-trace/src/exporters/agentless/writer.js +0 -3
  263. package/packages/dd-trace/src/exporters/common/docker.js +4 -1
  264. package/packages/dd-trace/src/exporters/common/final-flush-request-tracker.js +0 -6
  265. package/packages/dd-trace/src/exporters/common/proxy.js +3 -0
  266. package/packages/dd-trace/src/exporters/common/request.js +1 -0
  267. package/packages/dd-trace/src/exporters/common/url.js +0 -2
  268. package/packages/dd-trace/src/exporters/common/writer.js +0 -2
  269. package/packages/dd-trace/src/id.js +0 -11
  270. package/packages/dd-trace/src/llmobs/audio-codec.js +192 -0
  271. package/packages/dd-trace/src/llmobs/audio-utils.js +121 -0
  272. package/packages/dd-trace/src/llmobs/constants/audio.js +35 -0
  273. package/packages/dd-trace/src/llmobs/constants/prompts.js +14 -0
  274. package/packages/dd-trace/src/llmobs/constants/tags.js +17 -0
  275. package/packages/dd-trace/src/llmobs/eval-metric.js +0 -6
  276. package/packages/dd-trace/src/llmobs/experiments/dataset.js +0 -4
  277. package/packages/dd-trace/src/llmobs/experiments/experiment.js +0 -3
  278. package/packages/dd-trace/src/llmobs/experiments/index.js +7 -6
  279. package/packages/dd-trace/src/llmobs/experiments/util.js +1 -11
  280. package/packages/dd-trace/src/llmobs/index.js +1 -3
  281. package/packages/dd-trace/src/llmobs/noop.js +10 -0
  282. package/packages/dd-trace/src/llmobs/plugins/ai/util.js +0 -4
  283. package/packages/dd-trace/src/llmobs/plugins/anthropic/util.js +0 -1
  284. package/packages/dd-trace/src/llmobs/plugins/genai/util.js +0 -4
  285. package/packages/dd-trace/src/llmobs/plugins/modelcontextprotocol-sdk/utils.js +0 -2
  286. package/packages/dd-trace/src/llmobs/plugins/openai/constants.js +0 -2
  287. package/packages/dd-trace/src/llmobs/plugins/openai/index.js +4 -6
  288. package/packages/dd-trace/src/llmobs/plugins/openai/realtime.js +285 -0
  289. package/packages/dd-trace/src/llmobs/plugins/openai/utils.js +16 -3
  290. package/packages/dd-trace/src/llmobs/prompts/cache.js +272 -0
  291. package/packages/dd-trace/src/llmobs/prompts/manager.js +639 -0
  292. package/packages/dd-trace/src/llmobs/prompts/noop.js +29 -0
  293. package/packages/dd-trace/src/llmobs/prompts/prompt.js +92 -0
  294. package/packages/dd-trace/src/llmobs/sdk.js +21 -6
  295. package/packages/dd-trace/src/llmobs/span_processor.js +81 -2
  296. package/packages/dd-trace/src/llmobs/tagger.js +30 -7
  297. package/packages/dd-trace/src/llmobs/telemetry.js +36 -4
  298. package/packages/dd-trace/src/llmobs/util.js +0 -34
  299. package/packages/dd-trace/src/llmobs/writers/base.js +0 -1
  300. package/packages/dd-trace/src/llmobs/writers/util.js +1 -2
  301. package/packages/dd-trace/src/log/channels.js +3 -0
  302. package/packages/dd-trace/src/log/index.js +23 -5
  303. package/packages/dd-trace/src/log-submission/log-submission-plugin.js +74 -6
  304. package/packages/dd-trace/src/msgpack/chunk.js +0 -1
  305. package/packages/dd-trace/src/openfeature/agentless_configuration_source.js +0 -12
  306. package/packages/dd-trace/src/openfeature/encoding.js +0 -2
  307. package/packages/dd-trace/src/openfeature/eval-metrics-hook.js +0 -1
  308. package/packages/dd-trace/src/openfeature/index.js +0 -4
  309. package/packages/dd-trace/src/openfeature/span-enrichment-hook.js +0 -1
  310. package/packages/dd-trace/src/openfeature/span-enrichment.js +0 -4
  311. package/packages/dd-trace/src/openfeature/writers/base.js +0 -6
  312. package/packages/dd-trace/src/openfeature/writers/exposures.js +0 -5
  313. package/packages/dd-trace/src/openfeature/writers/util.js +0 -4
  314. package/packages/dd-trace/src/opentelemetry/logs/logger.js +0 -1
  315. package/packages/dd-trace/src/opentelemetry/logs/logger_provider.js +0 -1
  316. package/packages/dd-trace/src/opentelemetry/logs/otlp_http_log_exporter.js +0 -1
  317. package/packages/dd-trace/src/opentelemetry/logs/otlp_transformer.js +0 -2
  318. package/packages/dd-trace/src/opentelemetry/metrics/index.js +1 -1
  319. package/packages/dd-trace/src/opentelemetry/metrics/meter_provider.js +4 -4
  320. package/packages/dd-trace/src/opentelemetry/metrics/otlp_span_stats_transformer.js +0 -1
  321. package/packages/dd-trace/src/opentelemetry/metrics/otlp_transformer.js +0 -1
  322. package/packages/dd-trace/src/opentelemetry/metrics/periodic_metric_reader.js +103 -35
  323. package/packages/dd-trace/src/opentelemetry/metrics/time.js +0 -1
  324. package/packages/dd-trace/src/opentelemetry/otlp/otlp_http_exporter_base.js +36 -13
  325. package/packages/dd-trace/src/opentelemetry/otlp/otlp_transformer_base.js +0 -1
  326. package/packages/dd-trace/src/opentelemetry/span-helpers.js +0 -1
  327. package/packages/dd-trace/src/opentelemetry/trace/otlp_http_trace_exporter.js +0 -1
  328. package/packages/dd-trace/src/opentelemetry/trace/otlp_transformer.js +0 -3
  329. package/packages/dd-trace/src/opentracing/propagation/text_map.js +0 -6
  330. package/packages/dd-trace/src/opentracing/span_context.js +0 -1
  331. package/packages/dd-trace/src/otel-thread-ctx.js +38 -11
  332. package/packages/dd-trace/src/payload-tagging/tagging.js +15 -3
  333. package/packages/dd-trace/src/plugin_manager.js +9 -3
  334. package/packages/dd-trace/src/plugins/ci_plugin.js +0 -1
  335. package/packages/dd-trace/src/plugins/database.js +2 -6
  336. package/packages/dd-trace/src/plugins/index.js +8 -0
  337. package/packages/dd-trace/src/plugins/plugin.js +0 -4
  338. package/packages/dd-trace/src/plugins/tracing.js +1 -1
  339. package/packages/dd-trace/src/plugins/util/git.js +1 -3
  340. package/packages/dd-trace/src/plugins/util/http-otel-semantics.js +0 -1
  341. package/packages/dd-trace/src/plugins/util/llm.js +0 -2
  342. package/packages/dd-trace/src/plugins/util/status-validator.js +0 -1
  343. package/packages/dd-trace/src/plugins/util/test.js +25 -21
  344. package/packages/dd-trace/src/plugins/util/url.js +0 -5
  345. package/packages/dd-trace/src/priority_sampler.js +0 -6
  346. package/packages/dd-trace/src/process-tags/index.js +0 -1
  347. package/packages/dd-trace/src/profiler.js +132 -35
  348. package/packages/dd-trace/src/profiling/exporters/event_serializer.js +0 -1
  349. package/packages/dd-trace/src/profiling/profiler.js +101 -41
  350. package/packages/dd-trace/src/profiling/ssi-heuristics.js +29 -15
  351. package/packages/dd-trace/src/propagation-hash/index.js +0 -1
  352. package/packages/dd-trace/src/proxy.js +21 -45
  353. package/packages/dd-trace/src/random_sampler.js +0 -4
  354. package/packages/dd-trace/src/rate_limiter.js +0 -4
  355. package/packages/dd-trace/src/remote_config/capabilities.js +1 -9
  356. package/packages/dd-trace/src/remote_config/index.js +0 -1
  357. package/packages/dd-trace/src/runtime_metrics/otlp_runtime_metrics.js +0 -3
  358. package/packages/dd-trace/src/sampler.js +0 -4
  359. package/packages/dd-trace/src/sampling_rule.js +0 -7
  360. package/packages/dd-trace/src/serverless/vercel.js +0 -1
  361. package/packages/dd-trace/src/serverless.js +0 -1
  362. package/packages/dd-trace/src/service-naming/index.js +0 -1
  363. package/packages/dd-trace/src/service-naming/schemas/util.js +0 -1
  364. package/packages/dd-trace/src/service-naming/schemas/v0/storage.js +7 -0
  365. package/packages/dd-trace/src/service-naming/schemas/v1/storage.js +5 -0
  366. package/packages/dd-trace/src/span_processor.js +2 -2
  367. package/packages/dd-trace/src/span_sampler.js +0 -1
  368. package/packages/dd-trace/src/standalone/product.js +2 -2
  369. package/packages/dd-trace/src/standalone/tracesource.js +0 -1
  370. package/packages/dd-trace/src/startup-log.js +1 -1
  371. package/packages/dd-trace/src/telemetry/endpoints.js +0 -8
  372. package/packages/dd-trace/src/telemetry/logs/index.js +16 -5
  373. package/packages/dd-trace/src/telemetry/logs/log-collector.js +16 -6
  374. package/packages/dd-trace/src/telemetry/metrics.js +0 -2
  375. package/packages/dd-trace/src/telemetry/telemetry.js +4 -1
  376. package/packages/dd-trace/src/util.js +13 -1
  377. package/vendor/dist/@datadog/openfeature-node-server/index.js +1 -1
  378. package/packages/dd-trace/src/llmobs/plugins/claude-agent-sdk/utils.js +0 -10
@@ -241,7 +241,6 @@ function getRunnerSearchRoots (framework, command, projectRoot, repositoryRoot)
241
241
  * @param {string} projectRoot detected project root
242
242
  * @param {string} repositoryRoot repository root
243
243
  * @param {boolean} directory whether the option explicitly requires a directory
244
- * @returns {void}
245
244
  */
246
245
  function addRunnerSearchRoot (roots, value, projectRoot, repositoryRoot, directory) {
247
246
  if (typeof value !== 'string' || !value) return
@@ -523,7 +522,6 @@ function getRunnerArgs (framework, invocation) {
523
522
  * Normalizes executable shims and supported JavaScript runner entrypoints.
524
523
  *
525
524
  * @param {string} token command token
526
- * @returns {string} normalized executable basename
527
525
  */
528
526
  function normalizeRunnerBasename (token) {
529
527
  return path.basename(token)
@@ -670,7 +668,6 @@ function tokenizeCommand (command) {
670
668
  * Returns the executable name for a framework.
671
669
  *
672
670
  * @param {string} framework framework name
673
- * @returns {string} executable name
674
671
  */
675
672
  function getRunnerExecutableName (framework) {
676
673
  if (framework === 'cucumber') return 'cucumber-js'
@@ -682,7 +679,6 @@ function getRunnerExecutableName (framework) {
682
679
  *
683
680
  * @param {string} root root path
684
681
  * @param {string} filename candidate path
685
- * @returns {boolean} whether the candidate is contained
686
682
  */
687
683
  function isPathInside (root, filename) {
688
684
  const relative = path.relative(path.resolve(root), path.resolve(filename))
@@ -189,7 +189,6 @@ function refuseSymbolicLink (filename, label) {
189
189
  *
190
190
  * @param {string} root allowed root
191
191
  * @param {string} filename candidate path
192
- * @returns {boolean} true when the candidate is inside the root
193
192
  */
194
193
  function isPathInside (root, filename) {
195
194
  const relative = path.relative(root, filename)
@@ -338,7 +338,6 @@ function getSelectorEvidence (framework, events) {
338
338
  *
339
339
  * @param {string} actual captured test source path
340
340
  * @param {string} expected approved representative path
341
- * @returns {boolean} whether both paths identify the same file
342
341
  */
343
342
  function sourceFilesMatch (actual, expected) {
344
343
  const normalizedActual = normalizeSourceFile(actual)
@@ -442,7 +442,7 @@ function hasUnavailableRemoteCiCommand (ci) {
442
442
  })) return true
443
443
 
444
444
  return evidence.some(item => {
445
- const reference = /^\s*uses:\s*["']?([^"'\s]+)["']?\s*$/im.exec(item)?.[1]
445
+ const reference = /^[ \t]*uses:[ \t]*["']?([^"'\s]+)["']?[ \t]*$/im.exec(item)?.[1]
446
446
  return reference && !reference.startsWith('./')
447
447
  })
448
448
  }
@@ -592,7 +592,6 @@ function readProjectSource (filename, projectFileSources) {
592
592
  *
593
593
  * @param {string} source file source
594
594
  * @param {string} value recorded value
595
- * @returns {boolean} literal presence
596
595
  */
597
596
  function containsLiteral (source, value) {
598
597
  const normalizedSource = source.replaceAll('\r\n', '\n')
@@ -4,7 +4,6 @@
4
4
  * Replaces JavaScript comments with spaces while preserving line structure and string literals.
5
5
  *
6
6
  * @param {string} source JavaScript or TypeScript source
7
- * @returns {string} source with comments masked
8
7
  */
9
8
  function maskJavaScriptComments (source) {
10
9
  return maskJavaScriptSource(source, false)
@@ -14,7 +13,6 @@ function maskJavaScriptComments (source) {
14
13
  * Replaces JavaScript comments and string literals with spaces while preserving line structure.
15
14
  *
16
15
  * @param {string} source JavaScript or TypeScript source
17
- * @returns {string} source with non-code text masked
18
16
  */
19
17
  function maskJavaScriptNonCode (source) {
20
18
  return maskJavaScriptSource(source, true)
@@ -25,7 +23,6 @@ function maskJavaScriptNonCode (source) {
25
23
  *
26
24
  * @param {string} source JavaScript or TypeScript source
27
25
  * @param {boolean} maskStrings whether string and template literal contents should be masked
28
- * @returns {string} masked source
29
26
  */
30
27
  function maskJavaScriptSource (source, maskStrings) {
31
28
  const characters = [...source]
@@ -15,6 +15,8 @@ const earlyFlakeDetectionRetryPolicy = providedContext.earlyFlakeDetectionRetryP
15
15
  schedulingRetryCount: 0,
16
16
  }
17
17
  const earlyFlakeDetectionRetries = earlyFlakeDetectionRetryPolicy.schedulingRetryCount
18
+ const dynamicAtrRetryPolicy = providedContext.dynamicAtrRetryPolicy
19
+ const flakyTestRetriesConfiguration = providedContext.flakyTestRetriesConfiguration
18
20
  const isEfdSuiteAdmissionEnabled = providedContext.isEfdSuiteAdmissionEnabled === true
19
21
  const isEarlyFlakeDetectionEnabled = providedContext.isEarlyFlakeDetectionEnabled === true
20
22
  const knownTests = providedContext.knownTests || {}
@@ -31,6 +33,7 @@ const earlyFlakeDetectionSkippedResults = new WeakMap()
31
33
  const earlyFlakeDetectionStartByTask = new WeakMap()
32
34
  const nextAttemptIndexByTask = new WeakMap()
33
35
  const retryAttemptIndexByTask = new WeakMap()
36
+ const dynamicAtrExecutionStartByTask = new WeakMap()
34
37
  const usedRumTestExecutionIds = new Set()
35
38
  let browserCommands
36
39
  let now
@@ -86,6 +89,11 @@ if (isNoWorkerInitActive) {
86
89
  const isQuarantinedTest = quarantinedTests[testSuite]?.[testName] && !isAttemptToFixTest
87
90
  const attemptIndex = getNextAttemptIndex(task)
88
91
  const attemptStart = now()
92
+ if (task.retry?.__ddTestOptAtr && retryAttemptIndexByTask.get(task).index === 0) {
93
+ const executionStart = task.result.repeatCount > 0 ? attemptStart : task.result.startTime - timeOrigin
94
+ dynamicAtrExecutionStartByTask.set(task, executionStart)
95
+ task.meta.__ddTestOptAtrRetries = undefined
96
+ }
89
97
  if (attemptIndex > 0) {
90
98
  recordTestOptimizationStatus(task, attemptIndex - 1)
91
99
  }
@@ -153,11 +161,43 @@ function applyExecutionChanges (suite, isEfdSuiteAdmissionAllowed) {
153
161
  task.repeats = earlyFlakeDetectionRetries
154
162
  task.meta.__ddTestOptEfdRetries = earlyFlakeDetectionRetries
155
163
  }
164
+ configureDynamicAtr(task)
156
165
  wrapRetryCondition(task)
157
166
  }
158
167
  }
159
168
  }
160
169
 
170
+ /**
171
+ * Stops Datadog-managed retries at the initial attempt's duration budget, after the complete lifecycle.
172
+ *
173
+ * @param {object} task
174
+ */
175
+ function configureDynamicAtr (task) {
176
+ if (!dynamicAtrRetryPolicy || !flakyTestRetriesConfiguration) return
177
+ const projectName = task.file.projectName
178
+ const isManagedProject = projectName
179
+ ? flakyTestRetriesConfiguration.projectNames.includes(projectName)
180
+ : flakyTestRetriesConfiguration.includesUnnamedProject
181
+ if (!isManagedProject || !task.retry?.__ddTestOptAtr || task.retry.count <= 0) return
182
+
183
+ task.retry = {
184
+ ...task.retry,
185
+ condition () {
186
+ // AroundEach fixture teardown can fail after onTestFinished recorded the attempt's errors.
187
+ recordRetryErrorCount(task)
188
+ if (task.meta.__ddTestOptAtrRetries === undefined) {
189
+ const executionStart = dynamicAtrExecutionStartByTask.get(task) ?? task.result.startTime - timeOrigin
190
+ const duration = now() - executionStart
191
+ task.meta.__ddTestOptAtrRetries = dynamicAtrRetryPolicy.find(
192
+ ({ durationLimitMs }) => durationLimitMs === undefined || duration <= durationLimitMs
193
+ ).retryCount
194
+ }
195
+ const retryIndex = retryAttemptIndexByTask.get(task)?.index ?? task.result.retryCount
196
+ return retryIndex < task.meta.__ddTestOptAtrRetries
197
+ },
198
+ }
199
+ }
200
+
161
201
  function getNextAttemptIndex (task) {
162
202
  const attemptIndex = nextAttemptIndexByTask.get(task) || 0
163
203
  nextAttemptIndexByTask.set(task, attemptIndex + 1)
@@ -179,7 +219,6 @@ function getNextAttemptIndex (task) {
179
219
  *
180
220
  * @param {object} task
181
221
  * @param {number} attemptIndex
182
- * @returns {void}
183
222
  */
184
223
  function prepareRumCorrelation (task, attemptIndex) {
185
224
  // A per-origin cookie cannot identify overlapping attempts without racing.
@@ -213,7 +252,6 @@ function prepareRumCorrelation (task, attemptIndex) {
213
252
  *
214
253
  * @param {object} task
215
254
  * @param {number} attemptIndex
216
- * @returns {void}
217
255
  */
218
256
  function finishRumCorrelation (task, attemptIndex) {
219
257
  const testExecutionId = task.meta.__ddTestOptRumTestExecutionIds?.[attemptIndex]
@@ -228,7 +266,6 @@ function finishRumCorrelation (task, attemptIndex) {
228
266
  *
229
267
  * @param {object} task
230
268
  * @param {number} attemptIndex
231
- * @returns {void}
232
269
  */
233
270
  function recordRumActivity (task, attemptIndex) {
234
271
  if (!getIsRumActive(getRum())) return
@@ -252,7 +289,6 @@ function getRum () {
252
289
  * Returns whether the current RUM session is active.
253
290
  *
254
291
  * @param {object|undefined} rum
255
- * @returns {boolean}
256
292
  */
257
293
  function getIsRumActive (rum) {
258
294
  if (!rum) return false
@@ -269,7 +305,6 @@ function getIsRumActive (rum) {
269
305
  * Returns whether a task or any containing suite is concurrent.
270
306
  *
271
307
  * @param {object} task
272
- * @returns {boolean}
273
308
  */
274
309
  function isConcurrentTask (task) {
275
310
  let currentTask = task
@@ -308,7 +343,6 @@ function generateTestExecutionId () {
308
343
  * Sets and verifies the RUM correlation cookie for the current origin.
309
344
  *
310
345
  * @param {string} testExecutionId
311
- * @returns {boolean}
312
346
  */
313
347
  function setRumCorrelationCookie (testExecutionId) {
314
348
  try {
@@ -324,7 +358,6 @@ function setRumCorrelationCookie (testExecutionId) {
324
358
  * Clears the RUM correlation cookie if it still belongs to this attempt.
325
359
  *
326
360
  * @param {string} testExecutionId
327
- * @returns {void}
328
361
  */
329
362
  function clearRumCorrelationCookie (testExecutionId) {
330
363
  try {
@@ -440,7 +473,6 @@ function recordManualRepeatStatus (task, attemptIndex) {
440
473
  * Records cumulative errors at the end of each configured retry attempt.
441
474
  *
442
475
  * @param {object} task
443
- * @returns {void}
444
476
  */
445
477
  function recordRetryErrorCount (task) {
446
478
  const retryLimit = getRetryLimit(task)
@@ -457,7 +489,6 @@ function recordRetryErrorCount (task) {
457
489
  * @param {object} task
458
490
  * @param {number} attemptIndex
459
491
  * @param {number} attemptStart
460
- * @returns {void}
461
492
  */
462
493
  function recordTestAttemptTiming (task, attemptIndex, attemptStart) {
463
494
  task.meta.__ddTestOptAttemptStartTimes ||= []
@@ -470,17 +501,15 @@ function recordTestAttemptTiming (task, attemptIndex, attemptStart) {
470
501
  * Returns the configured retry count for numeric and object-form retry options.
471
502
  *
472
503
  * @param {object} task
473
- * @returns {number}
474
504
  */
475
505
  function getRetryLimit (task) {
476
- return typeof task.retry === 'number' ? task.retry : task.retry?.count || 0
506
+ return task.meta.__ddTestOptAtrRetries ?? (typeof task.retry === 'number' ? task.retry : task.retry?.count || 0)
477
507
  }
478
508
 
479
509
  /**
480
510
  * Wraps Vitest's retry condition so final-attempt handling follows the condition's actual result.
481
511
  *
482
512
  * @param {object} task
483
- * @returns {void}
484
513
  */
485
514
  function wrapRetryCondition (task) {
486
515
  if (typeof task.retry !== 'object' || !task.retry?.condition || getRetryLimit(task) === 0) return
@@ -572,7 +601,6 @@ function switchQuarantinedFinalFailure (task, attemptIndex) {
572
601
  * Converts a quarantined failure into the passing runner state expected by Vitest.
573
602
  *
574
603
  * @param {object} task
575
- * @returns {void}
576
604
  */
577
605
  function markQuarantinedFailure (task) {
578
606
  const testSuite = getTestSuite(task)
@@ -676,7 +704,6 @@ function noopTest () {}
676
704
  /**
677
705
  * Returns whether Vitest's private task function setter is available.
678
706
  *
679
- * @returns {boolean}
680
707
  */
681
708
  function canReplaceVitestTaskFn () {
682
709
  return typeof setVitestTaskFn === 'function'
@@ -703,7 +730,6 @@ function isEarlyFlakeDetectionTest (testSuite, testName) {
703
730
  * Returns whether Datadog admitted this task for EFD retries.
704
731
  *
705
732
  * @param {object} task
706
- * @returns {boolean}
707
733
  */
708
734
  function isEarlyFlakeDetectionTask (task) {
709
735
  return task.meta.__ddTestOptEfdRetries !== undefined
@@ -751,7 +777,6 @@ function getEarlyFlakeDetectionSuiteCandidate (suite) {
751
777
  *
752
778
  * @param {string} testSuite
753
779
  * @param {string} testName
754
- * @returns {boolean}
755
780
  */
756
781
  function isNewTest (testSuite, testName) {
757
782
  return !(knownTests[testSuite] || []).includes(testName)
package/index.d.ts CHANGED
@@ -300,6 +300,7 @@ interface Plugins {
300
300
  "playwright": tracer.plugins.playwright;
301
301
  "pg": tracer.plugins.pg;
302
302
  "pino": tracer.plugins.pino;
303
+ "postgres": tracer.plugins.postgres;
303
304
  "prisma": tracer.plugins.prisma;
304
305
  "protobufjs": tracer.plugins.protobufjs;
305
306
  "redis": tracer.plugins.redis;
@@ -308,6 +309,7 @@ interface Plugins {
308
309
  "router": tracer.plugins.router;
309
310
  "selenium": tracer.plugins.selenium;
310
311
  "sharedb": tracer.plugins.sharedb;
312
+ "supabase": tracer.plugins.supabase;
311
313
  "tedious": tracer.plugins.tedious;
312
314
  "undici": tracer.plugins.undici;
313
315
  "vitest": tracer.plugins.vitest;
@@ -3296,6 +3298,25 @@ declare namespace tracer {
3296
3298
  */
3297
3299
  interface pino extends Integration {}
3298
3300
 
3301
+ /**
3302
+ * This plugin automatically instruments the
3303
+ * [Postgres.js](https://github.com/porsager/postgres) module.
3304
+ */
3305
+ interface postgres extends DatabaseInstrumentation {
3306
+ /**
3307
+ * The service name to be used for this plugin.
3308
+ */
3309
+ service?: string;
3310
+ /**
3311
+ * The database monitoring propagation mode to be used for this plugin.
3312
+ */
3313
+ dbmPropagationMode?: TracerOptions['dbmPropagationMode'];
3314
+ /**
3315
+ * Appends the SQL comment propagation to the query string. Prepends the comment if `false`. For long query strings, the appended propagation comment might be truncated, causing loss of correlation between the query and trace.
3316
+ */
3317
+ appendComment?: boolean;
3318
+ }
3319
+
3299
3320
  /**
3300
3321
  * This plugin automatically instruments the
3301
3322
  * [@prisma/client](https://www.prisma.io/docs/orm/prisma-client) module.
@@ -3427,6 +3448,12 @@ declare namespace tracer {
3427
3448
  };
3428
3449
  }
3429
3450
 
3451
+ /**
3452
+ * This plugin automatically instruments the
3453
+ * [Supabase JavaScript client](https://github.com/supabase/supabase-js).
3454
+ */
3455
+ interface supabase extends Instrumentation {}
3456
+
3430
3457
  /**
3431
3458
  * This plugin automatically instruments the
3432
3459
  * [tedious](https://github.com/tediousjs/tedious/) module.
@@ -3473,6 +3500,10 @@ declare namespace tracer {
3473
3500
  }
3474
3501
 
3475
3502
  export namespace opentelemetry {
3503
+ export interface MeterProvider {
3504
+ shutdown(callback?: (error: Error | null) => void): void;
3505
+ }
3506
+
3476
3507
  /**
3477
3508
  * A registry for creating named {@link Tracer}s.
3478
3509
  */
@@ -3888,6 +3919,9 @@ declare namespace tracer {
3888
3919
  */
3889
3920
  experiments: Experiments,
3890
3921
 
3922
+ /** Prompt Management API. */
3923
+ prompts: Prompts,
3924
+
3891
3925
  /**
3892
3926
  * Enable LLM Observability tracing.
3893
3927
  *
@@ -4039,6 +4073,135 @@ declare namespace tracer {
4039
4073
  flush (): void
4040
4074
  }
4041
4075
 
4076
+ interface Prompts {
4077
+ /** Resolve an exact, environment-targeted, or latest managed prompt. */
4078
+ getPrompt (promptId: string, options?: GetPromptOptions): Promise<ManagedPrompt>
4079
+ /** Refresh the prompt selected by the current environment. */
4080
+ refreshPrompt (promptId: string): Promise<ManagedPrompt | undefined>
4081
+ /** Clear the in-memory and/or persistent prompt caches. */
4082
+ clearPromptCache (options?: ClearPromptCacheOptions): void
4083
+ /** Create a text or chat prompt and its first version. */
4084
+ createPrompt (
4085
+ promptId: string,
4086
+ template: string | PromptTemplateMessage[],
4087
+ options?: CreatePromptOptions
4088
+ ): Promise<PromptResponse>
4089
+ /** Add a text or chat version to an existing prompt. */
4090
+ createPromptVersion (
4091
+ promptId: string,
4092
+ template: string | PromptTemplateMessage[],
4093
+ options?: CreatePromptVersionOptions
4094
+ ): Promise<PromptVersionResponse>
4095
+ /** Update prompt metadata. */
4096
+ updatePrompt (promptId: string, options: UpdatePromptOptions): Promise<PromptResponse>
4097
+ /** Update prompt-version metadata or environment assignments. */
4098
+ updatePromptVersion (
4099
+ promptId: string,
4100
+ version: number,
4101
+ options: UpdatePromptVersionOptions
4102
+ ): Promise<PromptVersionResponse>
4103
+ /** Delete a prompt. */
4104
+ deletePrompt (promptId: string): Promise<DeletedPromptResponse>
4105
+ /** List prompts. */
4106
+ listPrompts (): Promise<PromptResponse[]>
4107
+ /** List versions for a prompt. */
4108
+ listPromptVersions (promptId: string): Promise<PromptVersionResponse[]>
4109
+ }
4110
+
4111
+ interface PromptTemplateMessage {
4112
+ role: string,
4113
+ content: string
4114
+ }
4115
+
4116
+ type PromptFallbackValue =
4117
+ | string
4118
+ | PromptTemplateMessage[]
4119
+ | { template: string | PromptTemplateMessage[], version?: string }
4120
+ type PromptFallback = PromptFallbackValue | (() => PromptFallbackValue)
4121
+
4122
+ interface GetPromptOptions {
4123
+ version?: number,
4124
+ fallback?: PromptFallback,
4125
+ targetingKey?: string,
4126
+ attributes?: Record<string, string | number | boolean>
4127
+ }
4128
+
4129
+ interface ClearPromptCacheOptions {
4130
+ hot?: boolean,
4131
+ warm?: boolean
4132
+ }
4133
+
4134
+ interface CreatePromptOptions {
4135
+ title?: string,
4136
+ description?: string,
4137
+ userVersion?: string,
4138
+ envIds?: string[]
4139
+ }
4140
+
4141
+ interface CreatePromptVersionOptions {
4142
+ description?: string,
4143
+ userVersion?: string,
4144
+ envIds?: string[]
4145
+ }
4146
+
4147
+ interface UpdatePromptOptions {
4148
+ title?: string,
4149
+ description?: string
4150
+ }
4151
+
4152
+ interface UpdatePromptVersionOptions {
4153
+ description?: string,
4154
+ envIds?: string[]
4155
+ }
4156
+
4157
+ interface ManagedPrompt {
4158
+ readonly id: string,
4159
+ readonly version: string,
4160
+ readonly source: 'registry' | 'cache' | 'fallback' | 'ff' | 'resolve',
4161
+ readonly template: string | ReadonlyArray<Readonly<PromptTemplateMessage>>,
4162
+ readonly promptUuid?: string,
4163
+ readonly promptVersionUuid?: string,
4164
+ format (variables?: Record<string, unknown>): string | PromptTemplateMessage[]
4165
+ toAnnotation (variables?: Record<string, unknown>): Prompt
4166
+ }
4167
+
4168
+ interface PromptResponse {
4169
+ id?: string,
4170
+ prompt_id?: string,
4171
+ title?: string,
4172
+ description?: string,
4173
+ created_at?: string,
4174
+ source?: string,
4175
+ num_versions?: number,
4176
+ in_registry?: boolean,
4177
+ created_from?: string,
4178
+ author?: string,
4179
+ ml_app?: string,
4180
+ ml_apps?: string[],
4181
+ last_version_created_at?: string,
4182
+ extracted_from?: string
4183
+ }
4184
+
4185
+ interface PromptVersionResponse {
4186
+ id?: string,
4187
+ prompt_uuid?: string,
4188
+ prompt_id?: string,
4189
+ template?: string | PromptTemplateMessage[],
4190
+ version?: number,
4191
+ user_version?: string,
4192
+ created_at?: string,
4193
+ version_created_at?: string,
4194
+ author?: string,
4195
+ description?: string,
4196
+ ml_app?: string
4197
+ }
4198
+
4199
+ interface DeletedPromptResponse {
4200
+ id?: string,
4201
+ prompt_id?: string,
4202
+ deleted_at?: string
4203
+ }
4204
+
4042
4205
  /** JSON-serializable value accepted by LLMObs Experiments. */
4043
4206
  type JSONType = string | number | boolean | null | JSONType[] | { [key: string]: JSONType }
4044
4207
 
@@ -4642,6 +4805,12 @@ declare namespace tracer {
4642
4805
  * A template string or chat message template list.
4643
4806
  */
4644
4807
  template?: string | Message[]
4808
+
4809
+ /** Internal Datadog prompt identity. */
4810
+ promptUuid?: string,
4811
+
4812
+ /** Internal Datadog prompt-version identity. */
4813
+ promptVersionUuid?: string
4645
4814
  }
4646
4815
 
4647
4816
  interface ToolDefinition {
package/next.d.ts ADDED
@@ -0,0 +1,27 @@
1
+ import type { NextConfig } from 'next'
2
+
3
+ type NextConfigValue = NextConfig | undefined
4
+
5
+ export function withDatadogTurbopack<TArguments extends unknown[]> (
6
+ nextConfig: (...args: TArguments) => Promise<NextConfigValue>
7
+ ): (...args: TArguments) => Promise<NextConfig>
8
+
9
+ export function withDatadogTurbopack<TArguments extends unknown[]> (
10
+ nextConfig: (...args: TArguments) => NextConfigValue
11
+ ): (...args: TArguments) => NextConfig
12
+
13
+ export function withDatadogTurbopack<TArguments extends unknown[]> (
14
+ nextConfig: (...args: TArguments) => NextConfigValue | Promise<NextConfigValue>
15
+ ): (...args: TArguments) => NextConfig | Promise<NextConfig>
16
+
17
+ export function withDatadogTurbopack (
18
+ nextConfig: Promise<NextConfigValue>
19
+ ): (phase?: string) => Promise<NextConfig>
20
+
21
+ export function withDatadogTurbopack (
22
+ nextConfig?: NextConfigValue
23
+ ): (phase?: string) => NextConfig
24
+
25
+ export function withDatadogTurbopack (
26
+ nextConfig: NextConfigValue | Promise<NextConfigValue>
27
+ ): (phase?: string) => NextConfig | Promise<NextConfig>
package/next.js ADDED
@@ -0,0 +1,3 @@
1
+ 'use strict'
2
+
3
+ module.exports = require('./packages/datadog-turbopack')