dd-trace 5.116.0 → 5.118.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.
- package/ci/diagnose.js +162 -21
- package/ci/init.js +0 -1
- package/ci/runbook.md +187 -180
- package/ci/test-optimization-validation/approval-artifacts.js +3 -1
- package/ci/test-optimization-validation/approval.js +52 -15
- package/ci/test-optimization-validation/ci-command-candidate.js +26 -32
- package/ci/test-optimization-validation/ci-discovery.js +1 -1
- package/ci/test-optimization-validation/ci-package-scripts.js +141 -0
- package/ci/test-optimization-validation/ci-remediation.js +112 -39
- package/ci/test-optimization-validation/cli.js +516 -681
- package/ci/test-optimization-validation/command-blocker.js +188 -33
- package/ci/test-optimization-validation/command-output-policy.js +3 -26
- package/ci/test-optimization-validation/command-runner.js +189 -245
- package/ci/test-optimization-validation/environment.js +90 -0
- package/ci/test-optimization-validation/executable.js +159 -388
- package/ci/test-optimization-validation/framework-adapters/cucumber.js +119 -0
- package/ci/test-optimization-validation/framework-adapters/cypress.js +107 -0
- package/ci/test-optimization-validation/framework-adapters/playwright.js +181 -0
- package/ci/test-optimization-validation/generated-files.js +75 -13
- package/ci/test-optimization-validation/generated-test-contract.js +283 -0
- package/ci/test-optimization-validation/generated-verifier.js +49 -16
- package/ci/test-optimization-validation/literal-environment.js +57 -0
- package/ci/test-optimization-validation/manifest-loader.js +2 -22
- package/ci/test-optimization-validation/manifest-scaffold.js +816 -515
- package/ci/test-optimization-validation/manifest-schema.js +494 -702
- package/ci/test-optimization-validation/offline-fixtures.js +4 -1
- package/ci/test-optimization-validation/plan-writer.js +243 -984
- package/ci/test-optimization-validation/preflight-runner.js +49 -55
- package/ci/test-optimization-validation/redaction.js +2 -1
- package/ci/test-optimization-validation/report-writer.js +391 -1357
- package/ci/test-optimization-validation/result-semantics.js +86 -0
- package/ci/test-optimization-validation/runner-command.js +249 -0
- package/ci/test-optimization-validation/runner-contract.js +664 -0
- package/ci/test-optimization-validation/scenarios/auto-test-retries.js +29 -3
- package/ci/test-optimization-validation/scenarios/basic-reporting.js +240 -543
- package/ci/test-optimization-validation/scenarios/ci-wiring.js +450 -670
- package/ci/test-optimization-validation/scenarios/early-flake-detection.js +4 -3
- package/ci/test-optimization-validation/scenarios/helpers.js +67 -9
- package/ci/test-optimization-validation/scenarios/test-management.js +4 -3
- package/ci/test-optimization-validation/source-text.js +87 -0
- package/ci/test-optimization-validation/test-output.js +12 -22
- package/ext/tags.d.ts +1 -0
- package/index.d.ts +7 -0
- package/package.json +3 -3
- package/packages/datadog-instrumentations/src/cucumber.js +11 -12
- package/packages/datadog-instrumentations/src/helpers/channel.js +74 -0
- package/packages/datadog-instrumentations/src/helpers/hooks.js +2 -0
- package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/index.js +1 -0
- package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/openai-agents.js +31 -0
- package/packages/datadog-instrumentations/src/jest.js +18 -17
- package/packages/datadog-instrumentations/src/mocha/main.js +79 -30
- package/packages/datadog-instrumentations/src/openai-agents.js +159 -0
- package/packages/datadog-instrumentations/src/playwright.js +3 -24
- package/packages/datadog-instrumentations/src/vitest-main-no-worker-init.js +1 -1
- package/packages/datadog-instrumentations/src/vitest-main.js +14 -26
- package/packages/datadog-instrumentations/src/vitest-util.js +0 -7
- package/packages/datadog-instrumentations/src/vitest-worker.js +5 -8
- package/packages/datadog-plugin-cucumber/src/index.js +2 -1
- package/packages/datadog-plugin-mocha/src/index.js +2 -1
- package/packages/datadog-plugin-openai-agents/src/index.js +74 -0
- package/packages/datadog-plugin-openai-agents/src/integration.js +503 -0
- package/packages/datadog-plugin-openai-agents/src/processor.js +108 -0
- package/packages/datadog-plugin-openai-agents/src/util.js +60 -0
- package/packages/datadog-plugin-playwright/src/index.js +4 -1
- package/packages/datadog-plugin-vitest/src/index.js +5 -5
- package/packages/dd-trace/src/ci-visibility/exporters/ci-visibility-exporter.js +48 -49
- package/packages/dd-trace/src/ci-visibility/requests/get-library-configuration.js +161 -33
- package/packages/dd-trace/src/ci-visibility/test-optimization-http-cache-schema.js +6 -4
- package/packages/dd-trace/src/config/generated-config-types.d.ts +2 -0
- package/packages/dd-trace/src/config/supported-configurations.json +7 -0
- package/packages/dd-trace/src/encode/span-stats.js +7 -1
- package/packages/dd-trace/src/exporter.js +16 -9
- package/packages/dd-trace/src/llmobs/index.js +9 -1
- package/packages/dd-trace/src/llmobs/plugins/ai/util.js +104 -22
- package/packages/dd-trace/src/llmobs/plugins/openai/index.js +5 -9
- package/packages/dd-trace/src/llmobs/plugins/openai/utils.js +20 -0
- package/packages/dd-trace/src/llmobs/plugins/openai-agents/utils.js +321 -0
- package/packages/dd-trace/src/llmobs/sdk.js +2 -1
- package/packages/dd-trace/src/llmobs/span_processor.js +7 -2
- package/packages/dd-trace/src/llmobs/tagger.js +23 -3
- package/packages/dd-trace/src/llmobs/util.js +56 -3
- package/packages/dd-trace/src/openfeature/agentless_configuration_source.js +3 -6
- package/packages/dd-trace/src/openfeature/configuration_source.js +5 -8
- package/packages/dd-trace/src/opentelemetry/metrics/otlp_span_stats_transformer.js +5 -1
- package/packages/dd-trace/src/plugins/ci_plugin.js +9 -3
- package/packages/dd-trace/src/plugins/index.js +1 -0
- package/packages/dd-trace/src/plugins/outbound.js +4 -1
- package/packages/dd-trace/src/profiling/profilers/space.js +1 -1
- package/packages/dd-trace/src/profiling/profilers/wall.js +1 -0
- package/packages/dd-trace/src/span_processor.js +1 -1
- package/packages/dd-trace/src/span_stats.js +22 -4
- package/ci/test-optimization-validation/command-suitability.js +0 -471
- package/ci/test-optimization-validation/init-probe-preload.js +0 -163
- package/ci/test-optimization-validation/init-probe.js +0 -246
- package/ci/test-optimization-validation/late-initialization.js +0 -63
- package/ci/test-optimization-validation/local-command.js +0 -163
- package/ci/test-optimization-validation/setup-runner.js +0 -97
- package/ci/test-optimization-validation-manifest.schema.json +0 -1
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Compares environment variable names using the child platform's semantics.
|
|
5
|
+
*
|
|
6
|
+
* @param {string} left first variable name
|
|
7
|
+
* @param {string} right second variable name
|
|
8
|
+
* @param {string} [platform] target platform
|
|
9
|
+
* @returns {boolean} whether the names are equivalent
|
|
10
|
+
*/
|
|
11
|
+
function environmentNamesEqual (left, right, platform = process.platform) {
|
|
12
|
+
return platform === 'win32' ? left.toUpperCase() === right.toUpperCase() : left === right
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Finds an environment entry without inventing a second spelling on Windows.
|
|
17
|
+
*
|
|
18
|
+
* @param {Record<string, string|undefined>} environment environment object
|
|
19
|
+
* @param {string} name variable name
|
|
20
|
+
* @param {string} [platform] target platform
|
|
21
|
+
* @returns {[string, string|undefined]|undefined} matching entry
|
|
22
|
+
*/
|
|
23
|
+
function findEnvironmentEntry (environment, name, platform = process.platform) {
|
|
24
|
+
return Object.entries(environment || {}).find(([candidate]) => {
|
|
25
|
+
return environmentNamesEqual(candidate, name, platform)
|
|
26
|
+
})
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Reads an environment value using platform name semantics.
|
|
31
|
+
*
|
|
32
|
+
* @param {Record<string, string|undefined>} environment environment object
|
|
33
|
+
* @param {string} name variable name
|
|
34
|
+
* @param {string} [platform] target platform
|
|
35
|
+
* @returns {string|undefined} environment value
|
|
36
|
+
*/
|
|
37
|
+
function getEnvironmentValue (environment, name, platform = process.platform) {
|
|
38
|
+
return findEnvironmentEntry(environment, name, platform)?.[1]
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Replaces every equivalent spelling with one canonical entry.
|
|
43
|
+
*
|
|
44
|
+
* @param {Record<string, string|undefined>} environment environment object
|
|
45
|
+
* @param {string} name canonical variable name
|
|
46
|
+
* @param {string|undefined} value environment value
|
|
47
|
+
* @param {string} [platform] target platform
|
|
48
|
+
* @returns {void}
|
|
49
|
+
*/
|
|
50
|
+
function setEnvironmentValue (environment, name, value, platform = process.platform) {
|
|
51
|
+
for (const candidate of Object.keys(environment)) {
|
|
52
|
+
if (environmentNamesEqual(candidate, name, platform)) delete environment[candidate]
|
|
53
|
+
}
|
|
54
|
+
environment[name] = value
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Applies environment entries with Windows-compatible replacement semantics.
|
|
59
|
+
*
|
|
60
|
+
* @param {Record<string, string|undefined>} target destination environment
|
|
61
|
+
* @param {Record<string, string|undefined>} source overriding entries
|
|
62
|
+
* @param {string} [platform] target platform
|
|
63
|
+
* @returns {void}
|
|
64
|
+
*/
|
|
65
|
+
function mergeEnvironment (target, source, platform = process.platform) {
|
|
66
|
+
for (const [name, value] of Object.entries(source || {})) {
|
|
67
|
+
setEnvironmentValue(target, name, value, platform)
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Reports whether a name belongs to the private or public Datadog environment namespace.
|
|
73
|
+
*
|
|
74
|
+
* @param {string} name variable name
|
|
75
|
+
* @param {string} [platform] target platform
|
|
76
|
+
* @returns {boolean} whether this is a Datadog variable
|
|
77
|
+
*/
|
|
78
|
+
function isDatadogEnvironmentName (name, platform = process.platform) {
|
|
79
|
+
const normalized = platform === 'win32' ? name.toUpperCase() : name
|
|
80
|
+
return normalized.startsWith('DD_') || normalized.startsWith('_DD_')
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
module.exports = {
|
|
84
|
+
environmentNamesEqual,
|
|
85
|
+
findEnvironmentEntry,
|
|
86
|
+
getEnvironmentValue,
|
|
87
|
+
isDatadogEnvironmentName,
|
|
88
|
+
mergeEnvironment,
|
|
89
|
+
setEnvironmentValue,
|
|
90
|
+
}
|