{"_id":"@dynatrace-oss/dt-evals","_rev":"32-188705f428b1f1af9ab800dade64708d","name":"@dynatrace-oss/dt-evals","dist-tags":{"alpha":"0.2.3-alpha","latest":"0.3.3-alpha"},"versions":{"0.1.4-alpha":{"name":"@dynatrace-oss/dt-evals","version":"0.1.4-alpha","license":"Apache-2.0","_id":"@dynatrace-oss/dt-evals@0.1.4-alpha","maintainers":[{"name":"thisthatdc","email":"this_that@hotmail.it"},{"name":"dynatrace-nodejs","email":"nodejs@dynatrace.com"},{"name":"krisdyna","email":"kristof.muhi@dynatrace.com"},{"name":"christian-kreuzberger-dtx","email":"christian.kreuzberger@dynatrace.com"},{"name":"stefan.wolfsteiner.dynatrace","email":"stefan.wolfsteiner@dynatrace.com"}],"homepage":"https://github.com/dynatrace-oss/dt-evals#readme","bugs":{"url":"https://github.com/dynatrace-oss/dt-evals/issues"},"bin":{"dt-evals":"dist/index.js"},"dist":{"shasum":"551eb2f068286624f813338e673c981a51e37acf","tarball":"https://registry.npmjs.org/@dynatrace-oss/dt-evals/-/dt-evals-0.1.4-alpha.tgz","fileCount":5,"integrity":"sha512-pqNzcJu0R6D/KdjgVOhEieT3TN/fenvzDWeZdY9mxiKRAuEDMKcL92278F9y9CzthDExTgE99vYs7CtUCxFxDQ==","signatures":[{"sig":"MEUCICmz4UsIqGB1tJHrDnSZO+Bhf/T+jf/SS0OhAecnEbNXAiEAo/jsuRLoTB+GlBWMAKZRhx7TlRwqiHlLeuujziLFCLI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":445792},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"de658b9351dcfd9aceda0d278fa6b9851efd0b6f","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup"},"_npmUser":{"name":"krisdyna","email":"kristof.muhi@dynatrace.com"},"repository":{"url":"git+https://github.com/dynatrace-oss/dt-evals.git","type":"git"},"_npmVersion":"10.9.2","description":"Evaluation CLI for AI Observability on Dynatrace","directories":{},"_nodeVersion":"22.13.0","dependencies":{"yaml":"^2.4.0","figlet":"^1.11.0","commander":"^12.0.0","picocolors":"^1.1.1","@types/figlet":"^1.7.0","@inquirer/prompts":"^7.10.1","@dynatrace-oss/dt-eval-lib":"^0.0.13-alpha"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","tsup":"^8.3.0","vitest":"^2.1.0","typescript":"^5.7.0","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/dt-evals_0.1.4-alpha_1778606388715_0.7668688905017953","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-alpha":{"name":"@dynatrace-oss/dt-evals","version":"0.2.0-alpha","license":"Apache-2.0","_id":"@dynatrace-oss/dt-evals@0.2.0-alpha","maintainers":[{"name":"thisthatdc","email":"this_that@hotmail.it"},{"name":"dynatrace-nodejs","email":"nodejs@dynatrace.com"},{"name":"krisdyna","email":"kristof.muhi@dynatrace.com"},{"name":"christian-kreuzberger-dtx","email":"christian.kreuzberger@dynatrace.com"},{"name":"stefan.wolfsteiner.dynatrace","email":"stefan.wolfsteiner@dynatrace.com"}],"homepage":"https://github.com/dynatrace-oss/dt-evals#readme","bugs":{"url":"https://github.com/dynatrace-oss/dt-evals/issues"},"bin":{"dt-evals":"dist/index.js"},"dist":{"shasum":"e9d64bce5dc4aad1a4f297acb9157843bb0b9992","tarball":"https://registry.npmjs.org/@dynatrace-oss/dt-evals/-/dt-evals-0.2.0-alpha.tgz","fileCount":5,"integrity":"sha512-raROT9pzMKkMbpzAEiv9cU1qqZEwW0bKYeACBdph4/niPCGhonBFXzb+OY+MKpao11o9EiwwGYtYfW8JCu0t5w==","signatures":[{"sig":"MEYCIQDYnEyrfDSPldZhjQoTpNvwUGNKQWvKyPvWcn7e044cKQIhAOtqU+ltigUk7z+2N5foVQ6CbzPWTpECfnEqwnLxYPY9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":445792},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"2a7690777a8dcdc6fbfdc50efce0cb6d17061b8f","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:905e9dcc-69f1-471a-8b3e-f5239cd0c58d"}},"repository":{"url":"git+https://github.com/dynatrace-oss/dt-evals.git","type":"git"},"_npmVersion":"11.11.0","description":"Evaluation CLI for AI Observability on Dynatrace","directories":{},"_nodeVersion":"24.14.1","dependencies":{"yaml":"^2.4.0","figlet":"^1.11.0","commander":"^12.0.0","picocolors":"^1.1.1","@types/figlet":"^1.7.0","@inquirer/prompts":"^7.10.1","@dynatrace-oss/dt-eval-lib":"^0.0.13-alpha"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.0.0","tsup":"^8.3.0","vitest":"^2.1.0","typescript":"^5.7.0","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/dt-evals_0.2.0-alpha_1778607799741_0.10220038027999778","host":"s3://npm-registry-packages-npm-production"}},"0.2.1-alpha":{"name":"@dynatrace-oss/dt-evals","version":"0.2.1-alpha","license":"Apache-2.0","_id":"@dynatrace-oss/dt-evals@0.2.1-alpha","maintainers":[{"name":"thisthatdc","email":"this_that@hotmail.it"},{"name":"dynatrace-nodejs","email":"nodejs@dynatrace.com"},{"name":"krisdyna","email":"kristof.muhi@dynatrace.com"},{"name":"christian-kreuzberger-dtx","email":"christian.kreuzberger@dynatrace.com"},{"name":"stefan.wolfsteiner.dynatrace","email":"stefan.wolfsteiner@dynatrace.com"}],"homepage":"https://github.com/dynatrace-oss/dt-evals#readme","bugs":{"url":"https://github.com/dynatrace-oss/dt-evals/issues"},"bin":{"dt-evals":"dist/index.js"},"dist":{"shasum":"ee255ca1d4b5699953a1e83a5216ec3c5f838d60","tarball":"https://registry.npmjs.org/@dynatrace-oss/dt-evals/-/dt-evals-0.2.1-alpha.tgz","fileCount":5,"integrity":"sha512-MqG7Zi1VPQyhzJVrgekA9tYZRBBdq+hh5YzSAy/GDEYVnnZ/hRtrMPGnE1wz3xTOyOB02dUkLOJhjfzY1KHclA==","signatures":[{"sig":"MEUCIBcwsrNWAtrkNvwLl1Lyz7Rh97fJdx7hpADukU5dxTRHAiEAhiJdFyHzUjEVb7tuEjMtVn85C7cOeiHLrBRKuiBBV10=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dynatrace-oss%2fdt-evals@0.2.1-alpha","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":457686},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"8de8a639dc7de1677ecf9caf18b88afc1e32bc8f","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:905e9dcc-69f1-471a-8b3e-f5239cd0c58d"}},"repository":{"url":"git+https://github.com/dynatrace-oss/dt-evals.git","type":"git"},"_npmVersion":"11.11.0","description":"Evaluation CLI for AI Observability on Dynatrace","directories":{},"_nodeVersion":"24.14.1","dependencies":{"yaml":"^2.4.0","figlet":"^1.11.0","commander":"^12.0.0","picocolors":"^1.1.1","@types/figlet":"^1.7.0","@inquirer/prompts":"^7.10.1","@dynatrace-oss/dt-eval-lib":"^0.0.13-alpha"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.0.0","tsup":"^8.3.0","vitest":"^2.1.0","typescript":"^5.7.0","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/dt-evals_0.2.1-alpha_1778703140734_0.4569390586573163","host":"s3://npm-registry-packages-npm-production"}},"0.2.2-alpha":{"name":"@dynatrace-oss/dt-evals","version":"0.2.2-alpha","license":"Apache-2.0","_id":"@dynatrace-oss/dt-evals@0.2.2-alpha","maintainers":[{"name":"thisthatdc","email":"this_that@hotmail.it"},{"name":"dynatrace-nodejs","email":"nodejs@dynatrace.com"},{"name":"krisdyna","email":"kristof.muhi@dynatrace.com"},{"name":"christian-kreuzberger-dtx","email":"christian.kreuzberger@dynatrace.com"},{"name":"stefan.wolfsteiner.dynatrace","email":"stefan.wolfsteiner@dynatrace.com"}],"homepage":"https://github.com/dynatrace-oss/dt-evals#readme","bugs":{"url":"https://github.com/dynatrace-oss/dt-evals/issues"},"bin":{"dt-evals":"dist/index.js"},"dist":{"shasum":"63f100f29f104c20c46dc690a6daf10c7a977f95","tarball":"https://registry.npmjs.org/@dynatrace-oss/dt-evals/-/dt-evals-0.2.2-alpha.tgz","fileCount":5,"integrity":"sha512-IqTOx4Ucyr/9MsXKcEoBEwAy6URqQJ93EpMbcJrMb9ohRlkBHj6bs+T92A6YyjOSXqrTzM8HTYC5CTIO/K55AQ==","signatures":[{"sig":"MEQCIDDE338YgOL1E9GGo3i1LEfpTjB0co9KGkG/jWJtDVQLAiBQ0Y0uSFY5/IjajOE/ImreFtiZ7TzNUGO0vdJXjhxrKg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dynatrace-oss%2fdt-evals@0.2.2-alpha","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":457827},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"85661d6e7f93a6b01729747a8a35dafa684ca85a","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:905e9dcc-69f1-471a-8b3e-f5239cd0c58d"}},"repository":{"url":"git+https://github.com/dynatrace-oss/dt-evals.git","type":"git"},"_npmVersion":"11.11.0","description":"Evaluation CLI for AI Observability on Dynatrace","directories":{},"_nodeVersion":"24.14.1","dependencies":{"yaml":"^2.4.0","figlet":"^1.11.0","openai":"^4.73.0","commander":"^12.0.0","picocolors":"^1.1.1","@google/genai":"^1.0.0","@types/figlet":"^1.7.0","@anthropic-ai/sdk":"^0.32.0","@inquirer/prompts":"^7.10.1","@dynatrace-oss/dt-eval-lib":"^0.0.13-alpha","@aws-sdk/client-bedrock-runtime":"^3.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.0.0","tsup":"^8.3.0","vitest":"^2.1.0","typescript":"^5.7.0","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/dt-evals_0.2.2-alpha_1778739961981_0.026569172806908847","host":"s3://npm-registry-packages-npm-production"}},"0.2.3-alpha":{"name":"@dynatrace-oss/dt-evals","version":"0.2.3-alpha","license":"Apache-2.0","_id":"@dynatrace-oss/dt-evals@0.2.3-alpha","maintainers":[{"name":"thisthatdc","email":"this_that@hotmail.it"},{"name":"dynatrace-nodejs","email":"nodejs@dynatrace.com"},{"name":"krisdyna","email":"kristof.muhi@dynatrace.com"},{"name":"christian-kreuzberger-dtx","email":"christian.kreuzberger@dynatrace.com"},{"name":"stefan.wolfsteiner.dynatrace","email":"stefan.wolfsteiner@dynatrace.com"}],"homepage":"https://github.com/dynatrace-oss/dt-evals#readme","bugs":{"url":"https://github.com/dynatrace-oss/dt-evals/issues"},"bin":{"dt-evals":"dist/index.js"},"dist":{"shasum":"e8cf16c403c79f5a22bde5e83df32ff1ec227d3e","tarball":"https://registry.npmjs.org/@dynatrace-oss/dt-evals/-/dt-evals-0.2.3-alpha.tgz","fileCount":5,"integrity":"sha512-tz9zQ3vzRai7g5ku9aMmO0adMu1caVIYQUxAiuEv5hUawMEIkOTK+Smi9+vbBJzJOyR5+NoBYBnMmogvIG+zaQ==","signatures":[{"sig":"MEUCIQDPLVKEnd1Wst35szksEp7pB7ORZTiOZ3yYHvn92pNfPQIgKIuvLIv+qVqy4IVu3XcqQEYWXpotcdIi38EEJrRACb4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dynatrace-oss%2fdt-evals@0.2.3-alpha","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":448794},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"9a64c334c3c79d2aadb41f25f820299d229c32d6","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:905e9dcc-69f1-471a-8b3e-f5239cd0c58d"}},"repository":{"url":"git+https://github.com/dynatrace-oss/dt-evals.git","type":"git"},"_npmVersion":"11.13.0","description":"Evaluation CLI for AI Observability on Dynatrace","directories":{},"_nodeVersion":"24.16.0","dependencies":{"yaml":"^2.4.0","figlet":"^1.11.0","openai":"^4.73.0","commander":"^12.0.0","picocolors":"^1.1.1","@google/genai":"^1.0.0","@types/figlet":"^1.7.0","@anthropic-ai/sdk":"^0.32.0","@inquirer/prompts":"^7.10.1","@dynatrace-oss/dt-eval-lib":"^0.0.13-alpha","@aws-sdk/client-bedrock-runtime":"^3.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.0.0","tsup":"^8.3.0","vitest":"^2.1.0","typescript":"^5.7.0","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/dt-evals_0.2.3-alpha_1780659083471_0.33077746981986866","host":"s3://npm-registry-packages-npm-production"}},"0.2.4-alpha":{"name":"@dynatrace-oss/dt-evals","version":"0.2.4-alpha","license":"Apache-2.0","_id":"@dynatrace-oss/dt-evals@0.2.4-alpha","maintainers":[{"name":"thisthatdc","email":"this_that@hotmail.it"},{"name":"dynatrace-nodejs","email":"nodejs@dynatrace.com"},{"name":"krisdyna","email":"kristof.muhi@dynatrace.com"},{"name":"christian-kreuzberger-dtx","email":"christian.kreuzberger@dynatrace.com"},{"name":"stefan.wolfsteiner.dynatrace","email":"stefan.wolfsteiner@dynatrace.com"}],"homepage":"https://github.com/dynatrace-oss/dt-evals#readme","bugs":{"url":"https://github.com/dynatrace-oss/dt-evals/issues"},"bin":{"dt-evals":"dist/index.js"},"dist":{"shasum":"d7129d54ebc5a300217c236cc514091e668ce893","tarball":"https://registry.npmjs.org/@dynatrace-oss/dt-evals/-/dt-evals-0.2.4-alpha.tgz","fileCount":5,"integrity":"sha512-qo9QHP/THMQESgXj+reiyctrQ/sWVVGaCMGvMYZPW3yJXd2kCXng9dytvGAIVdPgBfvbqxN1Xsa70/zffsW1tw==","signatures":[{"sig":"MEYCIQCiiIF38SDPVQ57f4835CfQJbhUmmX6VYJo2HiS8aCudAIhAITaBrUhYnQOojAIdGh6dOQh+UlKrRCp8Qpvwm4w6daL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dynatrace-oss%2fdt-evals@0.2.4-alpha","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":451775},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"e09ba17a25444a2572b01b2337580ba140636b40","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:905e9dcc-69f1-471a-8b3e-f5239cd0c58d"}},"repository":{"url":"git+https://github.com/dynatrace-oss/dt-evals.git","type":"git"},"_npmVersion":"11.13.0","description":"Evaluation CLI for AI Observability on Dynatrace","directories":{},"_nodeVersion":"24.16.0","dependencies":{"yaml":"^2.4.0","figlet":"^1.11.0","openai":"^4.73.0","commander":"^12.0.0","picocolors":"^1.1.1","@google/genai":"^1.0.0","@types/figlet":"^1.7.0","@anthropic-ai/sdk":"^0.32.0","@inquirer/prompts":"^7.10.1","@dynatrace-oss/dt-eval-lib":"^0.0.13-alpha","@aws-sdk/client-bedrock-runtime":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","tsup":"^8.3.0","vitest":"^2.1.0","typescript":"^5.7.0","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/dt-evals_0.2.4-alpha_1781185687090_0.43090224709329816","host":"s3://npm-registry-packages-npm-production"}},"0.2.5-alpha":{"name":"@dynatrace-oss/dt-evals","version":"0.2.5-alpha","license":"Apache-2.0","_id":"@dynatrace-oss/dt-evals@0.2.5-alpha","maintainers":[{"name":"thisthatdc","email":"this_that@hotmail.it"},{"name":"dynatrace-nodejs","email":"nodejs@dynatrace.com"},{"name":"krisdyna","email":"kristof.muhi@dynatrace.com"},{"name":"christian-kreuzberger-dtx","email":"christian.kreuzberger@dynatrace.com"},{"name":"stefan.wolfsteiner.dynatrace","email":"stefan.wolfsteiner@dynatrace.com"}],"homepage":"https://github.com/dynatrace-oss/dt-evals#readme","bugs":{"url":"https://github.com/dynatrace-oss/dt-evals/issues"},"bin":{"dt-evals":"dist/index.js"},"dist":{"shasum":"74176376a0eb7489185cef950f1e04904d4f174b","tarball":"https://registry.npmjs.org/@dynatrace-oss/dt-evals/-/dt-evals-0.2.5-alpha.tgz","fileCount":5,"integrity":"sha512-l84kDWv22uaKoqUKVxt4592onlIkG8yoOYIw2Tb95IqufFFQNYWiohZ4gIaqsyZ507N3ppIEg3r5VPI7yrM14A==","signatures":[{"sig":"MEQCIEZasrXXdFr37R4Fz5rAEeQquNwdiEv61MT3XAZrlNAcAiBoSZhGj/mJNIOVFmV0W2xea0FdISrLSl9lmNcnVY/new==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dynatrace-oss%2fdt-evals@0.2.5-alpha","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":454198},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"24498d236a551265e3246b741fcd86a9cd65ff01","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:905e9dcc-69f1-471a-8b3e-f5239cd0c58d"}},"repository":{"url":"git+https://github.com/dynatrace-oss/dt-evals.git","type":"git"},"_npmVersion":"11.13.0","description":"Evaluation CLI for AI Observability on Dynatrace","directories":{},"_nodeVersion":"24.16.0","dependencies":{"yaml":"^2.4.0","figlet":"^1.11.0","openai":"^4.73.0","commander":"^12.0.0","picocolors":"^1.1.1","@google/genai":"^1.0.0","@types/figlet":"^1.7.0","@anthropic-ai/sdk":"^0.32.0","@inquirer/prompts":"^7.10.1","@dynatrace-oss/dt-eval-lib":"^0.0.13-alpha","@aws-sdk/client-bedrock-runtime":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","tsup":"^8.3.0","vitest":"^2.1.0","typescript":"^5.7.0","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/dt-evals_0.2.5-alpha_1781276209949_0.8624856896839825","host":"s3://npm-registry-packages-npm-production"}},"0.2.6-alpha":{"name":"@dynatrace-oss/dt-evals","version":"0.2.6-alpha","license":"Apache-2.0","_id":"@dynatrace-oss/dt-evals@0.2.6-alpha","maintainers":[{"name":"thisthatdc","email":"this_that@hotmail.it"},{"name":"dynatrace-nodejs","email":"nodejs@dynatrace.com"},{"name":"krisdyna","email":"kristof.muhi@dynatrace.com"},{"name":"christian-kreuzberger-dtx","email":"christian.kreuzberger@dynatrace.com"},{"name":"stefan.wolfsteiner.dynatrace","email":"stefan.wolfsteiner@dynatrace.com"}],"homepage":"https://github.com/dynatrace-oss/dt-evals#readme","bugs":{"url":"https://github.com/dynatrace-oss/dt-evals/issues"},"bin":{"dt-evals":"dist/index.js"},"dist":{"shasum":"442cb3f539727546c9ab09ad31c4035672c82b10","tarball":"https://registry.npmjs.org/@dynatrace-oss/dt-evals/-/dt-evals-0.2.6-alpha.tgz","fileCount":5,"integrity":"sha512-hU8cPCfH9RpIRMMKpIQ2rITpgeAqH6cjpMWIQXWRxm+jgflrAJekt5+LcYMCeTA0sdm9yw5UqKvBm9NEVFdUyw==","signatures":[{"sig":"MEUCIQCeJSvgd8aoEfMfjHu2s9Bj7xEOSfzXY7MF4MerG40fmwIgHSpRKaQ1dcJ8NzbERzFwsPPA7XQ5WnV9QO7GrunHFqk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dynatrace-oss%2fdt-evals@0.2.6-alpha","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":454223},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"1c0f9ebb4801d6a18df59856f2697598aafbf907","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:905e9dcc-69f1-471a-8b3e-f5239cd0c58d"}},"repository":{"url":"git+https://github.com/dynatrace-oss/dt-evals.git","type":"git"},"_npmVersion":"11.16.0","description":"Evaluation CLI for AI Observability on Dynatrace","directories":{},"_nodeVersion":"24.18.0","dependencies":{"yaml":"^2.4.0","figlet":"^1.11.0","openai":"^4.73.0","commander":"^12.0.0","picocolors":"^1.1.1","@google/genai":"^1.0.0","@types/figlet":"^1.7.0","@anthropic-ai/sdk":"^0.32.0","@inquirer/prompts":"^7.10.1","@dynatrace-oss/dt-eval-lib":"^0.0.13-alpha","@aws-sdk/client-bedrock-runtime":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","tsup":"^8.3.0","vitest":"^2.1.0","typescript":"^5.7.0","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/dt-evals_0.2.6-alpha_1783068038265_0.0727241776808829","host":"s3://npm-registry-packages-npm-production"}},"0.2.7-alpha":{"name":"@dynatrace-oss/dt-evals","version":"0.2.7-alpha","license":"Apache-2.0","_id":"@dynatrace-oss/dt-evals@0.2.7-alpha","maintainers":[{"name":"thisthatdc","email":"this_that@hotmail.it"},{"name":"dynatrace-nodejs","email":"nodejs@dynatrace.com"},{"name":"krisdyna","email":"kristof.muhi@dynatrace.com"},{"name":"christian-kreuzberger-dtx","email":"christian.kreuzberger@dynatrace.com"},{"name":"stefan.wolfsteiner.dynatrace","email":"stefan.wolfsteiner@dynatrace.com"}],"homepage":"https://github.com/dynatrace-oss/dt-evals#readme","bugs":{"url":"https://github.com/dynatrace-oss/dt-evals/issues"},"bin":{"dt-evals":"dist/index.js"},"dist":{"shasum":"ce1152570a79020895d7c2070421c7caf9107889","tarball":"https://registry.npmjs.org/@dynatrace-oss/dt-evals/-/dt-evals-0.2.7-alpha.tgz","fileCount":5,"integrity":"sha512-KI4N3vxTElO25F+ZW4AuTMI8Udn1elSqD03PFGxXbEW+cgEiZHmQCwZF9iRk0ZJr2pyFYhY8vId/AB0Djmo8/A==","signatures":[{"sig":"MEUCICefK/E7MMsDEuwGQeJNDfiS4+Nh1fbDY1gy0hsiYa40AiEAleQHCoMdYCW+nFHAaChULgjmxU3Ykt4ZXOK0WF6v7uA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dynatrace-oss%2fdt-evals@0.2.7-alpha","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":456528},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"d18af6c9973fc1bf55175249c9db4789e8b75333","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:905e9dcc-69f1-471a-8b3e-f5239cd0c58d"}},"repository":{"url":"git+https://github.com/dynatrace-oss/dt-evals.git","type":"git"},"_npmVersion":"11.16.0","description":"Evaluation CLI for AI Observability on Dynatrace","directories":{},"_nodeVersion":"24.18.0","dependencies":{"yaml":"^2.4.0","figlet":"^1.11.0","openai":"^4.73.0","commander":"^12.0.0","picocolors":"^1.1.1","@google/genai":"^1.0.0","@types/figlet":"^1.7.0","@anthropic-ai/sdk":"^0.32.0","@inquirer/prompts":"^7.10.1","@dynatrace-oss/dt-eval-lib":"^0.0.13-alpha","@aws-sdk/client-bedrock-runtime":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","tsup":"^8.3.0","vitest":"^2.1.0","typescript":"^5.7.0","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/dt-evals_0.2.7-alpha_1784016397933_0.7353478621426204","host":"s3://npm-registry-packages-npm-production"}},"0.2.8-alpha":{"name":"@dynatrace-oss/dt-evals","version":"0.2.8-alpha","license":"Apache-2.0","_id":"@dynatrace-oss/dt-evals@0.2.8-alpha","maintainers":[{"name":"thisthatdc","email":"this_that@hotmail.it"},{"name":"dynatrace-nodejs","email":"nodejs@dynatrace.com"},{"name":"krisdyna","email":"kristof.muhi@dynatrace.com"},{"name":"christian-kreuzberger-dtx","email":"christian.kreuzberger@dynatrace.com"},{"name":"stefan.wolfsteiner.dynatrace","email":"stefan.wolfsteiner@dynatrace.com"}],"homepage":"https://github.com/dynatrace-oss/dt-evals#readme","bugs":{"url":"https://github.com/dynatrace-oss/dt-evals/issues"},"bin":{"dt-evals":"dist/index.js"},"dist":{"shasum":"5bbb22c7afaa0f5b1a6fb501b03f3d5ae06a3fc6","tarball":"https://registry.npmjs.org/@dynatrace-oss/dt-evals/-/dt-evals-0.2.8-alpha.tgz","fileCount":5,"integrity":"sha512-7JEpNR5fYkh7mj3NEsnr7i8pDamYJ9LZMwwrNrav0tILGftVjQFS9v0L1cPcaEcs7zjOg94qdWtRd4S4nGdq/A==","signatures":[{"sig":"MEQCIHkh/27wBDyPFp2puMSSxJ/ty+KsKqtN9+ImjGG8jiNIAiBtz/ZyTytUMYrNiFwhNit3oZpgZftjp8RtdapiZ7Urng==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dynatrace-oss%2fdt-evals@0.2.8-alpha","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":468543},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"4d2403e2eee1a174fc44cf1a4666d975cdcba59f","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:905e9dcc-69f1-471a-8b3e-f5239cd0c58d"}},"repository":{"url":"git+https://github.com/dynatrace-oss/dt-evals.git","type":"git"},"_npmVersion":"11.16.0","description":"Evaluation CLI for AI Observability on Dynatrace","directories":{},"_nodeVersion":"24.18.0","dependencies":{"yaml":"^2.4.0","figlet":"^1.11.0","openai":"^4.73.0","commander":"^12.0.0","picocolors":"^1.1.1","@google/genai":"^1.0.0","@types/figlet":"^1.7.0","@anthropic-ai/sdk":"^0.32.0","@inquirer/prompts":"^7.10.1","@dynatrace-oss/dt-eval-lib":"^0.0.13-alpha","@aws-sdk/client-bedrock-runtime":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","tsup":"^8.3.0","vitest":"^2.1.0","typescript":"^5.7.0","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/dt-evals_0.2.8-alpha_1784648138274_0.24025657617567298","host":"s3://npm-registry-packages-npm-production"}},"0.2.9-alpha":{"name":"@dynatrace-oss/dt-evals","version":"0.2.9-alpha","license":"Apache-2.0","_id":"@dynatrace-oss/dt-evals@0.2.9-alpha","maintainers":[{"name":"thisthatdc","email":"this_that@hotmail.it"},{"name":"dynatrace-nodejs","email":"nodejs@dynatrace.com"},{"name":"krisdyna","email":"kristof.muhi@dynatrace.com"},{"name":"christian-kreuzberger-dtx","email":"christian.kreuzberger@dynatrace.com"},{"name":"stefan.wolfsteiner.dynatrace","email":"stefan.wolfsteiner@dynatrace.com"}],"homepage":"https://github.com/dynatrace-oss/dt-evals#readme","bugs":{"url":"https://github.com/dynatrace-oss/dt-evals/issues"},"bin":{"dt-evals":"dist/index.js"},"dist":{"shasum":"2d41c0140a21d3b3edca4571df55483cd615d625","tarball":"https://registry.npmjs.org/@dynatrace-oss/dt-evals/-/dt-evals-0.2.9-alpha.tgz","fileCount":5,"integrity":"sha512-EPrNChDbRvv9iIvf2pg4+kOFyJ4Oy/DXZr6siG5Z4Xn2xyFOmP9S2MdvBYY1X/Y0VO9dVpJGQNPXnGco4FDeZQ==","signatures":[{"sig":"MEUCICug14s1Q8+nLcylEG9Xbl9ZDS7Q2b0/t1HFANuoHLr3AiEAl7p7A4V5JlBYGFa5ldzI4G/QcMQVOy9NLhwsR6FfRk8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dynatrace-oss%2fdt-evals@0.2.9-alpha","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":477811},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"6b5f875094221ece43217e3adf5692731f740f95","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:905e9dcc-69f1-471a-8b3e-f5239cd0c58d"}},"repository":{"url":"git+https://github.com/dynatrace-oss/dt-evals.git","type":"git"},"_npmVersion":"11.16.0","description":"Evaluation CLI for AI Observability on Dynatrace","directories":{},"_nodeVersion":"24.18.0","dependencies":{"yaml":"^2.4.0","figlet":"^1.11.0","openai":"^4.73.0","commander":"^12.0.0","picocolors":"^1.1.1","@google/genai":"^1.0.0","@types/figlet":"^1.7.0","@anthropic-ai/sdk":"^0.32.0","@inquirer/prompts":"^7.10.1","@dynatrace-oss/dt-eval-lib":"^0.0.13-alpha","@aws-sdk/client-bedrock-runtime":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","tsup":"^8.3.0","vitest":"^2.1.0","typescript":"^5.7.0","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/dt-evals_0.2.9-alpha_1784713753023_0.2670930296419163","host":"s3://npm-registry-packages-npm-production"}},"0.2.10-alpha":{"name":"@dynatrace-oss/dt-evals","version":"0.2.10-alpha","license":"Apache-2.0","_id":"@dynatrace-oss/dt-evals@0.2.10-alpha","maintainers":[{"name":"thisthatdc","email":"this_that@hotmail.it"},{"name":"dynatrace-nodejs","email":"nodejs@dynatrace.com"},{"name":"krisdyna","email":"kristof.muhi@dynatrace.com"},{"name":"christian-kreuzberger-dtx","email":"christian.kreuzberger@dynatrace.com"},{"name":"stefan.wolfsteiner.dynatrace","email":"stefan.wolfsteiner@dynatrace.com"}],"homepage":"https://github.com/dynatrace-oss/dt-evals#readme","bugs":{"url":"https://github.com/dynatrace-oss/dt-evals/issues"},"bin":{"dt-evals":"dist/index.js"},"dist":{"shasum":"cf2fba1b06fe00b64d39c4f55acd543fb37ec204","tarball":"https://registry.npmjs.org/@dynatrace-oss/dt-evals/-/dt-evals-0.2.10-alpha.tgz","fileCount":5,"integrity":"sha512-yGaVaPpuEsNiJxZkYiL0G2HDTwKrIEYm+ACvKrZiM2DkEhN9uQteBoSkOHSw20nCMr4LjfxQex5OukWsKlzEtQ==","signatures":[{"sig":"MEYCIQDGQ6lrcfbZEEedGIkRzuBJYvU1ZTU47l7FudZoKIe0LgIhAJslCdhsxUj+efDwwRZALRqcUg+4c0udSfcX3XtyLcN/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dynatrace-oss%2fdt-evals@0.2.10-alpha","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":477814},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"938b385844dc2e8e71ffd0932109f940e39f0ee0","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:905e9dcc-69f1-471a-8b3e-f5239cd0c58d"}},"repository":{"url":"git+https://github.com/dynatrace-oss/dt-evals.git","type":"git"},"_npmVersion":"11.16.0","description":"Evaluation CLI for AI Observability on Dynatrace","directories":{},"_nodeVersion":"24.18.0","dependencies":{"yaml":"^2.4.0","figlet":"^1.11.0","openai":"^4.73.0","commander":"^12.0.0","picocolors":"^1.1.1","@google/genai":"^1.0.0","@types/figlet":"^1.7.0","@anthropic-ai/sdk":"^0.32.0","@inquirer/prompts":"^7.10.1","@dynatrace-oss/dt-eval-lib":"^0.0.14-alpha","@aws-sdk/client-bedrock-runtime":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","tsup":"^8.3.0","vitest":"^2.1.0","typescript":"^5.7.0","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/dt-evals_0.2.10-alpha_1784727241716_0.47755485840004996","host":"s3://npm-registry-packages-npm-production"}},"0.2.11-alpha":{"name":"@dynatrace-oss/dt-evals","version":"0.2.11-alpha","license":"Apache-2.0","_id":"@dynatrace-oss/dt-evals@0.2.11-alpha","maintainers":[{"name":"thisthatdc","email":"this_that@hotmail.it"},{"name":"dynatrace-nodejs","email":"nodejs@dynatrace.com"},{"name":"krisdyna","email":"kristof.muhi@dynatrace.com"},{"name":"christian-kreuzberger-dtx","email":"christian.kreuzberger@dynatrace.com"},{"name":"stefan.wolfsteiner.dynatrace","email":"stefan.wolfsteiner@dynatrace.com"}],"homepage":"https://github.com/dynatrace-oss/dt-evals#readme","bugs":{"url":"https://github.com/dynatrace-oss/dt-evals/issues"},"bin":{"dt-evals":"dist/index.js"},"dist":{"shasum":"d3504370364ddea535f27795dcea0b4267f403c7","tarball":"https://registry.npmjs.org/@dynatrace-oss/dt-evals/-/dt-evals-0.2.11-alpha.tgz","fileCount":5,"integrity":"sha512-qEvM7hR9SNBrDPxxzV/SqrtUZH9BMQxauby0GuneSlpvmhVi9uan/gToXTDBUeHyQ/rJRWhlUEwMflI8KbyYXg==","signatures":[{"sig":"MEUCICcRXDf16bnEUdVQsHI0KZS5Dghwy7SsBlikuRnprY9UAiEA3bFLesoxm4yxMK7Z1aWM+iheBNsTUsdfaxLc86O+djk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dynatrace-oss%2fdt-evals@0.2.11-alpha","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":481444},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"659ef09f91008d1978feadf82273f8c878394579","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:905e9dcc-69f1-471a-8b3e-f5239cd0c58d"}},"repository":{"url":"git+https://github.com/dynatrace-oss/dt-evals.git","type":"git"},"_npmVersion":"11.16.0","description":"Evaluation CLI for AI Observability on Dynatrace","directories":{},"_nodeVersion":"24.18.0","dependencies":{"yaml":"^2.4.0","figlet":"^1.11.0","openai":"^4.73.0","commander":"^12.0.0","picocolors":"^1.1.1","@google/genai":"^1.0.0","@types/figlet":"^1.7.0","@anthropic-ai/sdk":"^0.32.0","@inquirer/prompts":"^7.10.1","@dynatrace-oss/dt-eval-lib":"^0.0.14-alpha","@aws-sdk/client-bedrock-runtime":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","tsup":"^8.3.0","vitest":"^2.1.0","typescript":"^5.7.0","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/dt-evals_0.2.11-alpha_1784895701444_0.5482187391492286","host":"s3://npm-registry-packages-npm-production"}},"0.2.12-alpha":{"name":"@dynatrace-oss/dt-evals","version":"0.2.12-alpha","license":"Apache-2.0","_id":"@dynatrace-oss/dt-evals@0.2.12-alpha","maintainers":[{"name":"thisthatdc","email":"this_that@hotmail.it"},{"name":"dynatrace-nodejs","email":"nodejs@dynatrace.com"},{"name":"krisdyna","email":"kristof.muhi@dynatrace.com"},{"name":"christian-kreuzberger-dtx","email":"christian.kreuzberger@dynatrace.com"},{"name":"stefan.wolfsteiner.dynatrace","email":"stefan.wolfsteiner@dynatrace.com"}],"homepage":"https://github.com/dynatrace-oss/dt-evals#readme","bugs":{"url":"https://github.com/dynatrace-oss/dt-evals/issues"},"bin":{"dt-evals":"dist/index.js"},"dist":{"shasum":"3365048806e71b9d6a4e6f23d0f27477bd50d0c4","tarball":"https://registry.npmjs.org/@dynatrace-oss/dt-evals/-/dt-evals-0.2.12-alpha.tgz","fileCount":5,"integrity":"sha512-GSn3c/ftoYkhllrGDM7IuGOGp7aUVfJkzHTFRdkpeaC8pQiYOluU46BXKJaT8mpt/hEoOTbQNiCQ0fhRBwwVGQ==","signatures":[{"sig":"MEUCIGBUTApsJ/xCPyk8G4q0ozAkQ3gY6E/l8ZqXh4+8qoLqAiEA55Yu7IRIXl5enUZTOKdIrsO7WwcBb1Uwn/tVYXahYFU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dynatrace-oss%2fdt-evals@0.2.12-alpha","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":480994},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"1c304e1266dba2f880213bc5d677bf5dde57449b","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:905e9dcc-69f1-471a-8b3e-f5239cd0c58d"}},"repository":{"url":"git+https://github.com/dynatrace-oss/dt-evals.git","type":"git"},"_npmVersion":"11.16.0","description":"Evaluation CLI for AI Observability on Dynatrace","directories":{},"_nodeVersion":"24.18.0","dependencies":{"yaml":"^2.4.0","figlet":"^1.11.0","openai":"^4.73.0","commander":"^12.0.0","picocolors":"^1.1.1","@google/genai":"^1.0.0","@types/figlet":"^1.7.0","@anthropic-ai/sdk":"^0.32.0","@inquirer/prompts":"^7.10.1","@dynatrace-oss/dt-eval-lib":"^0.0.14-alpha","@aws-sdk/client-bedrock-runtime":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","tsup":"^8.3.0","vitest":"^2.1.0","typescript":"^5.7.0","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/dt-evals_0.2.12-alpha_1785315866638_0.7745050175478603","host":"s3://npm-registry-packages-npm-production"}},"0.2.13-alpha":{"name":"@dynatrace-oss/dt-evals","version":"0.2.13-alpha","license":"Apache-2.0","_id":"@dynatrace-oss/dt-evals@0.2.13-alpha","maintainers":[{"name":"thisthatdc","email":"this_that@hotmail.it"},{"name":"dynatrace-nodejs","email":"nodejs@dynatrace.com"},{"name":"krisdyna","email":"kristof.muhi@dynatrace.com"},{"name":"christian-kreuzberger-dtx","email":"christian.kreuzberger@dynatrace.com"},{"name":"stefan.wolfsteiner.dynatrace","email":"stefan.wolfsteiner@dynatrace.com"}],"homepage":"https://github.com/dynatrace-oss/dt-evals#readme","bugs":{"url":"https://github.com/dynatrace-oss/dt-evals/issues"},"bin":{"dt-evals":"dist/index.js"},"dist":{"shasum":"145cf0e3404e8acc7d9da5b79251d7f7bec112a4","tarball":"https://registry.npmjs.org/@dynatrace-oss/dt-evals/-/dt-evals-0.2.13-alpha.tgz","fileCount":5,"integrity":"sha512-sRh2u+iro34OxOn5nWdJjb/ev3kJS4RIH057ksXzBCzjOoILyeICwZbVzowpl4smYS2tylOYwFCI7Guzc1379A==","signatures":[{"sig":"MEUCIBL3UvRdPLJ5B18bk4gy1ulkV7lkFMeQigM7Fb01dKNCAiEA6vKJJahzCtL0DHYScaR9YIT4TVHX/cSn2Q3qJUh1t+E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dynatrace-oss%2fdt-evals@0.2.13-alpha","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":485337},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"f0e332f71c76ac61d22bfdb60b9b4d9b87bc8d82","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:905e9dcc-69f1-471a-8b3e-f5239cd0c58d"}},"repository":{"url":"git+https://github.com/dynatrace-oss/dt-evals.git","type":"git"},"_npmVersion":"11.16.0","description":"Evaluation CLI for AI Observability on Dynatrace","directories":{},"_nodeVersion":"24.18.0","dependencies":{"yaml":"^2.4.0","figlet":"^1.11.0","openai":"^4.73.0","commander":"^12.0.0","picocolors":"^1.1.1","@google/genai":"^1.0.0","@types/figlet":"^1.7.0","@anthropic-ai/sdk":"^0.32.0","@inquirer/prompts":"^7.10.1","@dynatrace-oss/dt-eval-lib":"^0.0.14-alpha","@aws-sdk/client-bedrock-runtime":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","tsup":"^8.3.0","vitest":"^2.1.0","typescript":"^5.7.0","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/dt-evals_0.2.13-alpha_1785415991569_0.06574544009046823","host":"s3://npm-registry-packages-npm-production"}},"0.2.14-alpha":{"name":"@dynatrace-oss/dt-evals","version":"0.2.14-alpha","license":"Apache-2.0","_id":"@dynatrace-oss/dt-evals@0.2.14-alpha","maintainers":[{"name":"thisthatdc","email":"this_that@hotmail.it"},{"name":"dynatrace-nodejs","email":"nodejs@dynatrace.com"},{"name":"krisdyna","email":"kristof.muhi@dynatrace.com"},{"name":"christian-kreuzberger-dtx","email":"christian.kreuzberger@dynatrace.com"},{"name":"stefan.wolfsteiner.dynatrace","email":"stefan.wolfsteiner@dynatrace.com"}],"homepage":"https://github.com/dynatrace-oss/dt-evals#readme","bugs":{"url":"https://github.com/dynatrace-oss/dt-evals/issues"},"bin":{"dt-evals":"dist/index.js"},"dist":{"shasum":"470316fddf9671856b3332325b328a4a26421f10","tarball":"https://registry.npmjs.org/@dynatrace-oss/dt-evals/-/dt-evals-0.2.14-alpha.tgz","fileCount":5,"integrity":"sha512-P6hO26dvzbs4ZNh9f7QC99JMyOYgwuHGPMsl/wfmyutzrKQXBCqdusfJ2p23JrZL4176GPgEzp5OTlDc77T5wQ==","signatures":[{"sig":"MEYCIQDl5JbTfC+Vb+V8hI2xLuVpL3lDcqZK1W4w0bGI++BRNAIhAMrA4iNq9N2zLgkZ/QWyFzjc8viYonIe0TzxOsnhWoRK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dynatrace-oss%2fdt-evals@0.2.14-alpha","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":486342},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"f7aedee5b7d5d866e1977b595ff7ddc2c69b6fcf","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:905e9dcc-69f1-471a-8b3e-f5239cd0c58d"}},"repository":{"url":"git+https://github.com/dynatrace-oss/dt-evals.git","type":"git"},"_npmVersion":"11.16.0","description":"Evaluation CLI for AI Observability on Dynatrace","directories":{},"_nodeVersion":"24.18.0","dependencies":{"yaml":"^2.4.0","figlet":"^1.11.0","openai":"^4.73.0","commander":"^12.0.0","picocolors":"^1.1.1","@google/genai":"^1.0.0","@types/figlet":"^1.7.0","@anthropic-ai/sdk":"^0.32.0","@inquirer/prompts":"^7.10.1","@dynatrace-oss/dt-eval-lib":"^0.0.14-alpha","@aws-sdk/client-bedrock-runtime":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","tsup":"^8.3.0","vitest":"^2.1.0","typescript":"^5.7.0","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/dt-evals_0.2.14-alpha_1785422901300_0.4682197885656485","host":"s3://npm-registry-packages-npm-production"}},"0.2.15-alpha":{"name":"@dynatrace-oss/dt-evals","version":"0.2.15-alpha","license":"Apache-2.0","_id":"@dynatrace-oss/dt-evals@0.2.15-alpha","maintainers":[{"name":"thisthatdc","email":"this_that@hotmail.it"},{"name":"dynatrace-nodejs","email":"nodejs@dynatrace.com"},{"name":"krisdyna","email":"kristof.muhi@dynatrace.com"},{"name":"christian-kreuzberger-dtx","email":"christian.kreuzberger@dynatrace.com"},{"name":"stefan.wolfsteiner.dynatrace","email":"stefan.wolfsteiner@dynatrace.com"}],"homepage":"https://github.com/dynatrace-oss/dt-evals#readme","bugs":{"url":"https://github.com/dynatrace-oss/dt-evals/issues"},"bin":{"dt-evals":"dist/index.js"},"dist":{"shasum":"a6bce75372062639d50afa7ca3bc0507f514b593","tarball":"https://registry.npmjs.org/@dynatrace-oss/dt-evals/-/dt-evals-0.2.15-alpha.tgz","fileCount":5,"integrity":"sha512-U9RdGXsOK+m59opGuVUH9C4I3An/SIjw/pL5uh37dovz26LCIdbvIPJF3h7PRY6k1XszGGgA7rnpxeoNB9qr7A==","signatures":[{"sig":"MEUCIHggvII2tXWJEqPPFaDJgne1f+19uQoeJ2k7RgtbFRVhAiEA2emWx06fVaNkB9c//a7NAGBo/OgC5aVWswWRV0SUvQ0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dynatrace-oss%2fdt-evals@0.2.15-alpha","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":492346},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"540d70e0a1f345fbf62eb61b5631655fe027b458","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:905e9dcc-69f1-471a-8b3e-f5239cd0c58d"}},"repository":{"url":"git+https://github.com/dynatrace-oss/dt-evals.git","type":"git"},"_npmVersion":"11.16.0","description":"Evaluation CLI for AI Observability on Dynatrace","directories":{},"_nodeVersion":"24.18.0","dependencies":{"yaml":"^2.4.0","figlet":"^1.11.0","openai":"^4.73.0","commander":"^12.0.0","picocolors":"^1.1.1","@google/genai":"^1.0.0","@types/figlet":"^1.7.0","@anthropic-ai/sdk":"^0.32.0","@inquirer/prompts":"^7.10.1","@dynatrace-oss/dt-eval-lib":"^0.0.14-alpha","@aws-sdk/client-bedrock-runtime":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","tsup":"^8.3.0","vitest":"^2.1.0","typescript":"^5.7.0","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/dt-evals_0.2.15-alpha_1785756959101_0.2564613993895357","host":"s3://npm-registry-packages-npm-production"}},"0.2.16-alpha":{"name":"@dynatrace-oss/dt-evals","version":"0.2.16-alpha","license":"Apache-2.0","_id":"@dynatrace-oss/dt-evals@0.2.16-alpha","maintainers":[{"name":"thisthatdc","email":"this_that@hotmail.it"},{"name":"dynatrace-nodejs","email":"nodejs@dynatrace.com"},{"name":"krisdyna","email":"kristof.muhi@dynatrace.com"},{"name":"christian-kreuzberger-dtx","email":"christian.kreuzberger@dynatrace.com"},{"name":"stefan.wolfsteiner.dynatrace","email":"stefan.wolfsteiner@dynatrace.com"}],"homepage":"https://github.com/dynatrace-oss/dt-evals#readme","bugs":{"url":"https://github.com/dynatrace-oss/dt-evals/issues"},"bin":{"dt-evals":"dist/index.js"},"dist":{"shasum":"11014c69fb1e029bce3a1298bb164e8344287b2d","tarball":"https://registry.npmjs.org/@dynatrace-oss/dt-evals/-/dt-evals-0.2.16-alpha.tgz","fileCount":5,"integrity":"sha512-54Hf7/B2rTV06MKtMBKbIAgMEOIQDVs/UFrOI65kIaHhCFi0F7LcZkRWLIMF7/I2NvwE1eUdC5x18dNYmNvJjw==","signatures":[{"sig":"MEUCIQDzU1Yrvsg3ixbAmIPcGgcSyu02EzlDe6acUgNANjlbxwIgefaorcjDnWlYlf1DcIRD66/XcGlD3CTTxauQgwtuRW0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dynatrace-oss%2fdt-evals@0.2.16-alpha","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":492346},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"2f723407ad565164aeb8bbe1c007adde7cf959a6","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:905e9dcc-69f1-471a-8b3e-f5239cd0c58d"}},"repository":{"url":"git+https://github.com/dynatrace-oss/dt-evals.git","type":"git"},"_npmVersion":"11.16.0","description":"Evaluation CLI for AI Observability on Dynatrace","directories":{},"_nodeVersion":"24.18.0","dependencies":{"yaml":"^2.4.0","figlet":"^1.11.0","openai":"^4.73.0","commander":"^12.0.0","picocolors":"^1.1.1","@google/genai":"^1.0.0","@types/figlet":"^1.7.0","@anthropic-ai/sdk":"^0.32.0","@inquirer/prompts":"^7.10.1","@dynatrace-oss/dt-eval-lib":"^0.0.15-alpha","@aws-sdk/client-bedrock-runtime":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","tsup":"^8.3.0","vitest":"^2.1.0","typescript":"^5.7.0","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/dt-evals_0.2.16-alpha_1786450113082_0.2762306124518479","host":"s3://npm-registry-packages-npm-production"}},"0.2.17-alpha":{"name":"@dynatrace-oss/dt-evals","version":"0.2.17-alpha","license":"Apache-2.0","_id":"@dynatrace-oss/dt-evals@0.2.17-alpha","maintainers":[{"name":"thisthatdc","email":"this_that@hotmail.it"},{"name":"dynatrace-nodejs","email":"nodejs@dynatrace.com"},{"name":"krisdyna","email":"kristof.muhi@dynatrace.com"},{"name":"christian-kreuzberger-dtx","email":"christian.kreuzberger@dynatrace.com"},{"name":"stefan.wolfsteiner.dynatrace","email":"stefan.wolfsteiner@dynatrace.com"}],"homepage":"https://github.com/dynatrace-oss/dt-evals#readme","bugs":{"url":"https://github.com/dynatrace-oss/dt-evals/issues"},"bin":{"dt-evals":"dist/index.js"},"dist":{"shasum":"5c6efaaef711511594afac326c7297998b5e53a3","tarball":"https://registry.npmjs.org/@dynatrace-oss/dt-evals/-/dt-evals-0.2.17-alpha.tgz","fileCount":5,"integrity":"sha512-XXiZjkvcRpSnuDVFm8hVhQ/xdewCJZ0R2vvom6gSyF1IWBxSGf+Ok8zJZfV9Q/3DKpT4zOpiM06U+5thYvp1ww==","signatures":[{"sig":"MEQCIGxxJjmIr3L0jDQTwVdy+72JKhk/AJTxREXViyholRCiAiBySD720dcJGGgcDN88lov+bd1zhi9Tt3P3nwGPrDYxJg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dynatrace-oss%2fdt-evals@0.2.17-alpha","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":492450},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"2e2fd5f3b4456bc0bd0f4711d124cce5c6bdc059","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:905e9dcc-69f1-471a-8b3e-f5239cd0c58d"}},"repository":{"url":"git+https://github.com/dynatrace-oss/dt-evals.git","type":"git"},"_npmVersion":"11.16.0","description":"Evaluation CLI for AI Observability on Dynatrace","directories":{},"_nodeVersion":"24.18.0","dependencies":{"yaml":"^2.4.0","figlet":"^1.11.0","openai":"^4.73.0","commander":"^12.0.0","picocolors":"^1.1.1","@google/genai":"^1.0.0","@types/figlet":"^1.7.0","@anthropic-ai/sdk":"^0.32.0","@inquirer/prompts":"^7.10.1","@dynatrace-oss/dt-eval-lib":"^0.0.15-alpha","@aws-sdk/client-bedrock-runtime":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","tsup":"^8.3.0","vitest":"^2.1.0","typescript":"^5.7.0","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/dt-evals_0.2.17-alpha_1786541141653_0.045162503290962164","host":"s3://npm-registry-packages-npm-production"}},"0.2.18-alpha":{"name":"@dynatrace-oss/dt-evals","version":"0.2.18-alpha","license":"Apache-2.0","_id":"@dynatrace-oss/dt-evals@0.2.18-alpha","maintainers":[{"name":"thisthatdc","email":"this_that@hotmail.it"},{"name":"dynatrace-nodejs","email":"nodejs@dynatrace.com"},{"name":"krisdyna","email":"kristof.muhi@dynatrace.com"},{"name":"christian-kreuzberger-dtx","email":"christian.kreuzberger@dynatrace.com"},{"name":"stefan.wolfsteiner.dynatrace","email":"stefan.wolfsteiner@dynatrace.com"}],"homepage":"https://github.com/dynatrace-oss/dt-evals#readme","bugs":{"url":"https://github.com/dynatrace-oss/dt-evals/issues"},"bin":{"dt-evals":"dist/index.js"},"dist":{"shasum":"7daed44a978897054f1ae9ddaf6e885a9a3b0b65","tarball":"https://registry.npmjs.org/@dynatrace-oss/dt-evals/-/dt-evals-0.2.18-alpha.tgz","fileCount":5,"integrity":"sha512-tK25MDXxQ8aNv6QvmQMPVX6O+XHKKwuiY9HnE2q6FBcrEFXjgLUHvsOAJQNIxKlXfCbfhR8FPOeB84ZtG0ni+w==","signatures":[{"sig":"MEYCIQD8wvd+P7rwLaDVsfYST5Oa2vC8KbLEpESHe3W466kQXAIhAOxyHIM3aDr+BcNIyqySRJZwCp4tv3ovr7JTJVcSjMFt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dynatrace-oss%2fdt-evals@0.2.18-alpha","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":492450},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"550e612bd2a51ebaf37bcaecea835266f31934e5","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:905e9dcc-69f1-471a-8b3e-f5239cd0c58d"}},"repository":{"url":"git+https://github.com/dynatrace-oss/dt-evals.git","type":"git"},"_npmVersion":"11.16.0","description":"Evaluation CLI for AI Observability on Dynatrace","directories":{},"_nodeVersion":"24.18.0","dependencies":{"yaml":"^2.4.0","figlet":"^1.11.0","openai":"^4.73.0","commander":"^12.0.0","picocolors":"^1.1.1","@google/genai":"^1.0.0","@types/figlet":"^1.7.0","@anthropic-ai/sdk":"^0.32.0","@inquirer/prompts":"^7.10.1","@dynatrace-oss/dt-eval-lib":"^0.0.15-alpha","@aws-sdk/client-bedrock-runtime":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","tsup":"^8.3.0","vitest":"^4.1.4","typescript":"^5.7.0","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/dt-evals_0.2.18-alpha_1786630632918_0.49726558023471923","host":"s3://npm-registry-packages-npm-production"}},"0.2.19-alpha":{"name":"@dynatrace-oss/dt-evals","version":"0.2.19-alpha","license":"Apache-2.0","_id":"@dynatrace-oss/dt-evals@0.2.19-alpha","maintainers":[{"name":"thisthatdc","email":"this_that@hotmail.it"},{"name":"dynatrace-nodejs","email":"nodejs@dynatrace.com"},{"name":"krisdyna","email":"kristof.muhi@dynatrace.com"},{"name":"christian-kreuzberger-dtx","email":"christian.kreuzberger@dynatrace.com"},{"name":"stefan.wolfsteiner.dynatrace","email":"stefan.wolfsteiner@dynatrace.com"}],"homepage":"https://github.com/dynatrace-oss/dt-evals#readme","bugs":{"url":"https://github.com/dynatrace-oss/dt-evals/issues"},"bin":{"dt-evals":"dist/index.js"},"dist":{"shasum":"a440c49e387e0ce285464bd79478b096e6f6f009","tarball":"https://registry.npmjs.org/@dynatrace-oss/dt-evals/-/dt-evals-0.2.19-alpha.tgz","fileCount":5,"integrity":"sha512-T7uQ1pb0jHLk1dIEdsm6vjw11x+qb5EixS8rmnwVRjw7y4FZ+caAqiXhjG7l6qubYAMCDIme7NtDi+fMF8cAfg==","signatures":[{"sig":"MEUCIQDuY+D9zvdfrBkZhpZ5gXcI40ISbBWZ6zvHJMcwq/0zbwIgNcqKIqU5ZaanagAVZInfz74wxoNmq7BPChWETEvgOjA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dynatrace-oss%2fdt-evals@0.2.19-alpha","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":492540},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"c03e771ab30f68d633968006fc58b74b7c53b76c","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:905e9dcc-69f1-471a-8b3e-f5239cd0c58d"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/dynatrace-oss/dt-evals.git","type":"git"},"_npmVersion":"11.17.0","description":"Evaluation CLI for AI Observability on Dynatrace","directories":{},"_nodeVersion":"24.19.0","dependencies":{"yaml":"^2.4.0","figlet":"^1.11.0","openai":"^4.73.0","commander":"^12.0.0","picocolors":"^1.1.1","@google/genai":"^1.0.0","@types/figlet":"^1.7.0","@anthropic-ai/sdk":"^0.32.0","@inquirer/prompts":"^7.10.1","@dynatrace-oss/dt-eval-lib":"^0.0.15-alpha","@aws-sdk/client-bedrock-runtime":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","tsup":"^8.3.0","vitest":"^4.1.4","typescript":"^5.7.0","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/dt-evals_0.2.19-alpha_1786707698606_0.35576246526955546","host":"s3://npm-registry-packages-npm-production"}},"0.2.20-alpha":{"name":"@dynatrace-oss/dt-evals","version":"0.2.20-alpha","license":"Apache-2.0","_id":"@dynatrace-oss/dt-evals@0.2.20-alpha","maintainers":[{"name":"thisthatdc","email":"this_that@hotmail.it"},{"name":"dynatrace-nodejs","email":"nodejs@dynatrace.com"},{"name":"krisdyna","email":"kristof.muhi@dynatrace.com"},{"name":"christian-kreuzberger-dtx","email":"christian.kreuzberger@dynatrace.com"},{"name":"stefan.wolfsteiner.dynatrace","email":"stefan.wolfsteiner@dynatrace.com"}],"homepage":"https://github.com/dynatrace-oss/dt-evals#readme","bugs":{"url":"https://github.com/dynatrace-oss/dt-evals/issues"},"bin":{"dt-evals":"dist/index.js"},"dist":{"shasum":"6e04844ed039898aac4a922ea6d107b6e9b35e4b","tarball":"https://registry.npmjs.org/@dynatrace-oss/dt-evals/-/dt-evals-0.2.20-alpha.tgz","fileCount":5,"integrity":"sha512-NV8CWYThBcIH367UxovqH3oC1TwGBWn1TFuUrcHeBAB0ZK0edNxk3WlyATm/mokIHkyDcyKdO/xGBYey2NLjRQ==","signatures":[{"sig":"MEUCIQDP6MPr0H1IKHq+sVKdU7bRqz8i+KuTsEm8gRNF5vynRgIgPrS4YauU/OLFxIKF+q7M4VT7pTx66JbVO26kEoN1Hok=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dynatrace-oss%2fdt-evals@0.2.20-alpha","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":493850},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"304f4b267bc49f9f77344a2fd42b977a9a0d631b","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:905e9dcc-69f1-471a-8b3e-f5239cd0c58d"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/dynatrace-oss/dt-evals.git","type":"git"},"_npmVersion":"11.17.0","description":"Evaluation CLI for AI Observability on Dynatrace","directories":{},"_nodeVersion":"24.19.0","dependencies":{"yaml":"^2.4.0","figlet":"^1.11.0","openai":"^4.73.0","commander":"^12.0.0","picocolors":"^1.1.1","@google/genai":"^1.0.0","@types/figlet":"^1.7.0","@anthropic-ai/sdk":"^0.32.0","@inquirer/prompts":"^7.10.1","@dynatrace-oss/dt-eval-lib":"^0.0.15-alpha","@aws-sdk/client-bedrock-runtime":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","tsup":"^8.3.0","vitest":"^4.1.4","typescript":"^5.7.0","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/dt-evals_0.2.20-alpha_1787067798780_0.6582773645775435","host":"s3://npm-registry-packages-npm-production"}},"0.2.21-alpha":{"name":"@dynatrace-oss/dt-evals","version":"0.2.21-alpha","license":"Apache-2.0","_id":"@dynatrace-oss/dt-evals@0.2.21-alpha","maintainers":[{"name":"thisthatdc","email":"this_that@hotmail.it"},{"name":"dynatrace-nodejs","email":"nodejs@dynatrace.com"},{"name":"krisdyna","email":"kristof.muhi@dynatrace.com"},{"name":"christian-kreuzberger-dtx","email":"christian.kreuzberger@dynatrace.com"},{"name":"stefan.wolfsteiner.dynatrace","email":"stefan.wolfsteiner@dynatrace.com"}],"homepage":"https://github.com/dynatrace-oss/dt-evals#readme","bugs":{"url":"https://github.com/dynatrace-oss/dt-evals/issues"},"bin":{"dt-evals":"dist/index.js"},"dist":{"shasum":"e037ffae0aeb1632b1ba359703d82b4af9454026","tarball":"https://registry.npmjs.org/@dynatrace-oss/dt-evals/-/dt-evals-0.2.21-alpha.tgz","fileCount":5,"integrity":"sha512-ZvBlyhdyIxzldGN/rPSzhikudRD+rMl+FLlQQO2WnD9XBtvBEEeu/Mo6R1grNEQD315aWRnhLtQ0+lH4IjpcuA==","signatures":[{"sig":"MEUCIQCCklX+nT0jLYHD3XzXExx9HOakscZGUJEEh3sffgqt5QIgFjGTitXTvkCXQ5ZqUnqmM6zSznakLctuWFR1ElVS5aU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dynatrace-oss%2fdt-evals@0.2.21-alpha","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":494206},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"74870ab96007645c85b5a8ec45bc954d99cbe6ba","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:905e9dcc-69f1-471a-8b3e-f5239cd0c58d"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/dynatrace-oss/dt-evals.git","type":"git"},"_npmVersion":"11.17.0","description":"Evaluation CLI for AI Observability on Dynatrace","directories":{},"_nodeVersion":"24.19.0","dependencies":{"yaml":"^2.4.0","figlet":"^1.11.0","openai":"^4.73.0","commander":"^12.0.0","picocolors":"^1.1.1","@google/genai":"^1.0.0","@types/figlet":"^1.7.0","@anthropic-ai/sdk":"^0.32.0","@inquirer/prompts":"^7.10.1","@dynatrace-oss/dt-eval-lib":"^0.0.15-alpha","@aws-sdk/client-bedrock-runtime":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","tsup":"^8.3.0","vitest":"^4.1.4","typescript":"^5.7.0","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/dt-evals_0.2.21-alpha_1787151404667_0.8225119730307975","host":"s3://npm-registry-packages-npm-production"}},"0.2.22-alpha":{"name":"@dynatrace-oss/dt-evals","version":"0.2.22-alpha","license":"Apache-2.0","_id":"@dynatrace-oss/dt-evals@0.2.22-alpha","maintainers":[{"name":"thisthatdc","email":"this_that@hotmail.it"},{"name":"dynatrace-nodejs","email":"nodejs@dynatrace.com"},{"name":"krisdyna","email":"kristof.muhi@dynatrace.com"},{"name":"christian-kreuzberger-dtx","email":"christian.kreuzberger@dynatrace.com"},{"name":"stefan.wolfsteiner.dynatrace","email":"stefan.wolfsteiner@dynatrace.com"}],"homepage":"https://github.com/dynatrace-oss/dt-evals#readme","bugs":{"url":"https://github.com/dynatrace-oss/dt-evals/issues"},"bin":{"dt-evals":"dist/index.js"},"dist":{"shasum":"3d0589be7c26d8e6e8dedf03fed109a4403ba3aa","tarball":"https://registry.npmjs.org/@dynatrace-oss/dt-evals/-/dt-evals-0.2.22-alpha.tgz","fileCount":5,"integrity":"sha512-ArFrouvvbq20MVdCXL5synkWUVU19GdYjQ/NfILRy3flEXi+3Skf18vqOCDWPPpFeffYVqQ50iU6Q3+4kpEkhA==","signatures":[{"sig":"MEUCIAEPMTNaGywmRZEL0Beonhqi1Gi4wZAvjPy1qJWbUmBhAiEAsygIL9MbdK3i1Bi7/z9Wlq4Di3cmOKRQmINr1LD1PMo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dynatrace-oss%2fdt-evals@0.2.22-alpha","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":514329},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"0684f69ec602f34522124bd388dff474fdbc2561","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:905e9dcc-69f1-471a-8b3e-f5239cd0c58d"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/dynatrace-oss/dt-evals.git","type":"git"},"_npmVersion":"11.17.0","description":"Evaluation CLI for AI Observability on Dynatrace","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.20.0","yaml":"^2.4.0","figlet":"^1.11.0","openai":"^4.73.0","recheck":"^4.5.0","commander":"^12.0.0","picocolors":"^1.1.1","@google/genai":"^1.0.0","@types/figlet":"^1.7.0","@anthropic-ai/sdk":"^0.32.0","@inquirer/prompts":"^7.10.1","@dynatrace-oss/dt-eval-lib":"^0.0.15-alpha","@aws-sdk/client-bedrock-runtime":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","tsup":"^8.3.0","vitest":"^4.1.4","typescript":"^5.7.0","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/dt-evals_0.2.22-alpha_1787234587670_0.21870375248170637","host":"s3://npm-registry-packages-npm-production"}},"0.2.23-alpha":{"name":"@dynatrace-oss/dt-evals","version":"0.2.23-alpha","license":"Apache-2.0","_id":"@dynatrace-oss/dt-evals@0.2.23-alpha","maintainers":[{"name":"thisthatdc","email":"this_that@hotmail.it"},{"name":"dynatrace-nodejs","email":"nodejs@dynatrace.com"},{"name":"krisdyna","email":"kristof.muhi@dynatrace.com"},{"name":"christian-kreuzberger-dtx","email":"christian.kreuzberger@dynatrace.com"},{"name":"stefan.wolfsteiner.dynatrace","email":"stefan.wolfsteiner@dynatrace.com"}],"homepage":"https://github.com/dynatrace-oss/dt-evals#readme","bugs":{"url":"https://github.com/dynatrace-oss/dt-evals/issues"},"bin":{"dt-evals":"dist/index.js"},"dist":{"shasum":"ba41666f12a06b04615b564b29bda90a66dbe19c","tarball":"https://registry.npmjs.org/@dynatrace-oss/dt-evals/-/dt-evals-0.2.23-alpha.tgz","fileCount":5,"integrity":"sha512-HLXALJI0I1psDM2RJsVRbJ/TEvB2zrF7RT/NyrgOV7+Q3wOAq7NAr3947fef9OWLc9DxZvp/DfQjXbNcqct2Pg==","signatures":[{"sig":"MEYCIQCu4HHlQHX996t/cTskhqBx2P08YhfD3Qhfa6DkWOMGqQIhAJwUWW18m56lqnnzpRbL+kpkPrK0c8qnDIs9QdwjXBl1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dynatrace-oss%2fdt-evals@0.2.23-alpha","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":516332},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"e30cb1f210fd13c9e0814b2b28d3d7b3d87719ad","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:905e9dcc-69f1-471a-8b3e-f5239cd0c58d"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/dynatrace-oss/dt-evals.git","type":"git"},"_npmVersion":"11.17.0","description":"Evaluation CLI for AI Observability on Dynatrace","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.20.0","yaml":"^2.4.0","figlet":"^1.11.0","openai":"^4.73.0","recheck":"^4.5.0","commander":"^12.0.0","picocolors":"^1.1.1","@google/genai":"^1.0.0","@types/figlet":"^1.7.0","@anthropic-ai/sdk":"^0.32.0","@inquirer/prompts":"^7.10.1","@dynatrace-oss/dt-eval-lib":"^0.0.15-alpha","@aws-sdk/client-bedrock-runtime":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","tsup":"^8.3.0","vitest":"^4.1.4","typescript":"^5.7.0","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/dt-evals_0.2.23-alpha_1787748548558_0.03142637191337405","host":"s3://npm-registry-packages-npm-production"}},"0.2.24-alpha":{"name":"@dynatrace-oss/dt-evals","version":"0.2.24-alpha","license":"Apache-2.0","_id":"@dynatrace-oss/dt-evals@0.2.24-alpha","maintainers":[{"name":"thisthatdc","email":"this_that@hotmail.it"},{"name":"dynatrace-nodejs","email":"nodejs@dynatrace.com"},{"name":"krisdyna","email":"kristof.muhi@dynatrace.com"},{"name":"christian-kreuzberger-dtx","email":"christian.kreuzberger@dynatrace.com"},{"name":"stefan.wolfsteiner.dynatrace","email":"stefan.wolfsteiner@dynatrace.com"}],"homepage":"https://github.com/dynatrace-oss/dt-evals#readme","bugs":{"url":"https://github.com/dynatrace-oss/dt-evals/issues"},"bin":{"dt-evals":"dist/index.js"},"dist":{"shasum":"7fcdb913304d59c981d567f53921544e7fd6b2cf","tarball":"https://registry.npmjs.org/@dynatrace-oss/dt-evals/-/dt-evals-0.2.24-alpha.tgz","fileCount":5,"integrity":"sha512-pmk+xGGYG+SgMcDz5i1yI/apTrgfgpUQff709fr8v5KO5SBMEm8UgsV50IjC0648eNZJuS1YDktzKcu9TrHY+w==","signatures":[{"sig":"MEUCIEmGGOFHmYSAQ4VOJrGzLKaXEzGnbYiwfHb+VaaxbwXSAiEAi7eQ0ricLOaEWbA+AP8FIPKEyOgkkAxlea3txnHfRYs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dynatrace-oss%2fdt-evals@0.2.24-alpha","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":517497},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"c160c32eef4532e554a4220fe7ad71cd3802d928","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:905e9dcc-69f1-471a-8b3e-f5239cd0c58d"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/dynatrace-oss/dt-evals.git","type":"git"},"_npmVersion":"11.17.0","description":"Evaluation CLI for AI Observability on Dynatrace","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.20.0","yaml":"^2.4.0","figlet":"^1.11.0","openai":"^4.73.0","recheck":"^4.5.0","commander":"^12.0.0","picocolors":"^1.1.1","@google/genai":"^1.0.0","@types/figlet":"^1.7.0","@anthropic-ai/sdk":"^0.32.0","@inquirer/prompts":"^7.10.1","@dynatrace-oss/dt-eval-lib":"^0.0.15-alpha","@aws-sdk/client-bedrock-runtime":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","tsup":"^8.3.0","vitest":"^4.1.4","typescript":"^5.7.0","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/dt-evals_0.2.24-alpha_1787909038901_0.7645862415918632","host":"s3://npm-registry-packages-npm-production"}},"0.2.25-alpha":{"name":"@dynatrace-oss/dt-evals","version":"0.2.25-alpha","license":"Apache-2.0","_id":"@dynatrace-oss/dt-evals@0.2.25-alpha","maintainers":[{"name":"thisthatdc","email":"this_that@hotmail.it"},{"name":"dynatrace-nodejs","email":"nodejs@dynatrace.com"},{"name":"krisdyna","email":"kristof.muhi@dynatrace.com"},{"name":"christian-kreuzberger-dtx","email":"christian.kreuzberger@dynatrace.com"},{"name":"stefan.wolfsteiner.dynatrace","email":"stefan.wolfsteiner@dynatrace.com"}],"homepage":"https://github.com/dynatrace-oss/dt-evals#readme","bugs":{"url":"https://github.com/dynatrace-oss/dt-evals/issues"},"bin":{"dt-evals":"dist/index.js"},"dist":{"shasum":"ca72e0cf660a2bcc4da7e96973f15f21f868c962","tarball":"https://registry.npmjs.org/@dynatrace-oss/dt-evals/-/dt-evals-0.2.25-alpha.tgz","fileCount":5,"integrity":"sha512-V0G63iYFtLJQg22yH7LWtRvEdTuRG8kFSJlZjnMHVn3yQ6GcQuAxst0y7tJC0kq8Z3hTWBKHL+XKjLRbPlQvHg==","signatures":[{"sig":"MEQCIH8GiOn8aZA8dnXGt0w0Lbu3yJMLrTMi6eH7+huAHDxnAiAZ1wXtEG+AmGW98YZJiHt4l98HGZk7xfQYFyepS3yASQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dynatrace-oss%2fdt-evals@0.2.25-alpha","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":527596},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"07fb982ff244bdef32034b5be85f94fae76e43e5","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:905e9dcc-69f1-471a-8b3e-f5239cd0c58d"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/dynatrace-oss/dt-evals.git","type":"git"},"_npmVersion":"11.17.0","description":"Evaluation CLI for AI Observability on Dynatrace","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.20.0","yaml":"^2.4.0","figlet":"^1.11.0","openai":"^4.73.0","recheck":"^4.5.0","commander":"^12.0.0","picocolors":"^1.1.1","@google/genai":"^1.0.0","@types/figlet":"^1.7.0","@anthropic-ai/sdk":"^0.32.0","@inquirer/prompts":"^7.10.1","@dynatrace-oss/dt-eval-lib":"^0.0.15-alpha","@aws-sdk/client-bedrock-runtime":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","tsup":"^8.3.0","vitest":"^4.1.4","typescript":"^5.7.0","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/dt-evals_0.2.25-alpha_1787926155389_0.5163435182938745","host":"s3://npm-registry-packages-npm-production"}},"0.2.26-alpha":{"name":"@dynatrace-oss/dt-evals","version":"0.2.26-alpha","license":"Apache-2.0","_id":"@dynatrace-oss/dt-evals@0.2.26-alpha","maintainers":[{"name":"thisthatdc","email":"this_that@hotmail.it"},{"name":"dynatrace-nodejs","email":"nodejs@dynatrace.com"},{"name":"krisdyna","email":"kristof.muhi@dynatrace.com"},{"name":"christian-kreuzberger-dtx","email":"christian.kreuzberger@dynatrace.com"},{"name":"stefan.wolfsteiner.dynatrace","email":"stefan.wolfsteiner@dynatrace.com"}],"homepage":"https://github.com/dynatrace-oss/dt-evals#readme","bugs":{"url":"https://github.com/dynatrace-oss/dt-evals/issues"},"bin":{"dt-evals":"dist/index.js"},"dist":{"shasum":"658f8964d05cfdf11a07811f7658366deef6ed57","tarball":"https://registry.npmjs.org/@dynatrace-oss/dt-evals/-/dt-evals-0.2.26-alpha.tgz","fileCount":5,"integrity":"sha512-roWwSkzEKJWGG1K4db+QnSIimneI5mf4J3ai5KzIMSzCT3JvtnfndG2ALsAgbDJsD6Qya3/uuRPdBuSQiM0O6Q==","signatures":[{"sig":"MEUCIQC75bRcOR4oGDMB+s7ai3loyoQzmuRet7D31OBQOZ3j8wIgG/OS/mGMUzxr2ruYxzvKInKpYMSPwC44G1tNB8yLD3o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dynatrace-oss%2fdt-evals@0.2.26-alpha","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":526537},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"b89d0c86f9ffdb5afcc1bdcfc9db5090c0c72430","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:905e9dcc-69f1-471a-8b3e-f5239cd0c58d"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/dynatrace-oss/dt-evals.git","type":"git"},"_npmVersion":"11.17.0","description":"Evaluation CLI for AI Observability on Dynatrace","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.20.0","yaml":"^2.4.0","figlet":"^1.11.0","openai":"^4.73.0","recheck":"^4.5.0","commander":"^12.0.0","picocolors":"^1.1.1","@google/genai":"^1.0.0","@types/figlet":"^1.7.0","@anthropic-ai/sdk":"^0.32.0","@inquirer/prompts":"^7.10.1","@dynatrace-oss/dt-eval-lib":"^0.0.15-alpha","@aws-sdk/client-bedrock-runtime":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","tsup":"^8.3.0","vitest":"^4.1.4","typescript":"^5.7.0","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/dt-evals_0.2.26-alpha_1788256755578_0.5794390422993363","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-alpha":{"name":"@dynatrace-oss/dt-evals","version":"0.3.0-alpha","license":"Apache-2.0","_id":"@dynatrace-oss/dt-evals@0.3.0-alpha","maintainers":[{"name":"thisthatdc","email":"this_that@hotmail.it"},{"name":"dynatrace-nodejs","email":"nodejs@dynatrace.com"},{"name":"krisdyna","email":"kristof.muhi@dynatrace.com"},{"name":"christian-kreuzberger-dtx","email":"christian.kreuzberger@dynatrace.com"},{"name":"stefan.wolfsteiner.dynatrace","email":"stefan.wolfsteiner@dynatrace.com"}],"homepage":"https://github.com/dynatrace-oss/dt-evals#readme","bugs":{"url":"https://github.com/dynatrace-oss/dt-evals/issues"},"bin":{"dt-evals":"dist/index.js"},"dist":{"shasum":"d26a4019e476012675edd10def676575f0a9d970","tarball":"https://registry.npmjs.org/@dynatrace-oss/dt-evals/-/dt-evals-0.3.0-alpha.tgz","fileCount":5,"integrity":"sha512-XVM4NL6FJyDcC0u2C6qpAf7tM/+EHTbeJOMCkETIzBIfJeQw1+ZEgc5kVX+zNGkda6P+iHKeID09vqu4OQbZ8w==","signatures":[{"sig":"MEUCIE+g0wNmhqnsujI7htxIym9OvA/DBZjED59mfl69cl0EAiEAnJeGuNg6QR/9P8zsb1i/b/yyE4InRWd8L1ICPI1fliY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dynatrace-oss%2fdt-evals@0.3.0-alpha","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":526976},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"7022c5c8ef6436c5058ca1a9f1dff2441c7cef7d","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:905e9dcc-69f1-471a-8b3e-f5239cd0c58d"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/dynatrace-oss/dt-evals.git","type":"git"},"_npmVersion":"11.17.0","description":"Evaluation CLI for AI Observability on Dynatrace","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ajv":"^8.20.0","yaml":"^2.4.0","figlet":"^1.11.0","openai":"^4.73.0","recheck":"^4.5.0","commander":"^12.0.0","picocolors":"^1.1.1","@google/genai":"^1.0.0","@types/figlet":"^1.7.0","@anthropic-ai/sdk":"^0.32.0","@inquirer/prompts":"^7.10.1","@dynatrace-oss/dt-eval-lib":"^0.0.15-alpha","@aws-sdk/client-bedrock-runtime":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","tsup":"^8.3.0","vitest":"^4.1.4","typescript":"^5.7.0","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/dt-evals_0.3.0-alpha_1788264985988_0.2799519910614314","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-alpha":{"name":"@dynatrace-oss/dt-evals","version":"0.3.1-alpha","license":"Apache-2.0","_id":"@dynatrace-oss/dt-evals@0.3.1-alpha","maintainers":[{"name":"thisthatdc","email":"this_that@hotmail.it"},{"name":"dynatrace-nodejs","email":"nodejs@dynatrace.com"},{"name":"krisdyna","email":"kristof.muhi@dynatrace.com"},{"name":"christian-kreuzberger-dtx","email":"christian.kreuzberger@dynatrace.com"},{"name":"stefan.wolfsteiner.dynatrace","email":"stefan.wolfsteiner@dynatrace.com"}],"homepage":"https://github.com/dynatrace-oss/dt-evals#readme","bugs":{"url":"https://github.com/dynatrace-oss/dt-evals/issues"},"bin":{"dt-evals":"dist/index.js"},"dist":{"shasum":"2855df79cba93cbd7dc4b0b2f16965cad69cd617","tarball":"https://registry.npmjs.org/@dynatrace-oss/dt-evals/-/dt-evals-0.3.1-alpha.tgz","fileCount":5,"integrity":"sha512-lX3z0DamjxnrNXcNHuJoRWoIbnCRIRPVagqdhVEKX4HdrUsMvVYkqSXIOFnpWd7M2HIk6Ppkx6x1Ipju+5y6Qg==","signatures":[{"sig":"MEUCIQCNXweESGxfqGE4A9cQbgu1O3mIH8/DdRgBzUbIvMXGqwIgD3HlMcVnC+dlkVFhEhgnR+EMfcPA/Aaw4NShnTwD5VU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dynatrace-oss%2fdt-evals@0.3.1-alpha","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":544801},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"6261c43f7741b33657e28493ce4cc25928adf21e","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:905e9dcc-69f1-471a-8b3e-f5239cd0c58d"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/dynatrace-oss/dt-evals.git","type":"git"},"_npmVersion":"11.19.0","description":"Evaluation CLI for AI Observability on Dynatrace","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ajv":"^8.20.0","yaml":"^2.4.0","figlet":"^1.11.0","openai":"^4.73.0","recheck":"^4.5.0","commander":"^12.0.0","picocolors":"^1.1.1","@google/genai":"^1.0.0","@types/figlet":"^1.7.0","@anthropic-ai/sdk":"^0.32.0","@inquirer/prompts":"^7.10.1","@dynatrace-oss/dt-eval-lib":"^0.0.19-alpha","@aws-sdk/client-bedrock-runtime":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","tsup":"^8.3.0","vitest":"^4.1.4","typescript":"^5.7.0","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/dt-evals_0.3.1-alpha_1788780137502_0.6240786707981152","host":"s3://npm-registry-packages-npm-production"}},"0.3.2-alpha":{"name":"@dynatrace-oss/dt-evals","version":"0.3.2-alpha","license":"Apache-2.0","_id":"@dynatrace-oss/dt-evals@0.3.2-alpha","maintainers":[{"name":"thisthatdc","email":"this_that@hotmail.it"},{"name":"dynatrace-nodejs","email":"nodejs@dynatrace.com"},{"name":"krisdyna","email":"kristof.muhi@dynatrace.com"},{"name":"christian-kreuzberger-dtx","email":"christian.kreuzberger@dynatrace.com"},{"name":"stefan.wolfsteiner.dynatrace","email":"stefan.wolfsteiner@dynatrace.com"}],"homepage":"https://github.com/dynatrace-oss/dt-evals#readme","bugs":{"url":"https://github.com/dynatrace-oss/dt-evals/issues"},"bin":{"dt-evals":"dist/index.js"},"dist":{"shasum":"aa4a4d5fb61a5d0d83a6b0517977fb442fff5a74","tarball":"https://registry.npmjs.org/@dynatrace-oss/dt-evals/-/dt-evals-0.3.2-alpha.tgz","fileCount":5,"integrity":"sha512-x6xgZT+je8rcQnfzPm+Lm0XxfiyJywd7M6BXHXnipsRlAr0gXROuK2tuHnlUTGRzJSesbZJwikG7wb779BhAUw==","signatures":[{"sig":"MEUCIQCxE9runfwXZSUznqFdGTQ6PMLw9ztkW5OzUkeNu37qBQIgLdo+EDNOHlwxgzaGuZuIqOq6dBeOr3Ud7gzp3lT8BU8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dynatrace-oss%2fdt-evals@0.3.2-alpha","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":558317},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"a33a55e5f5b0372534e6005f24f2ca4766984983","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:905e9dcc-69f1-471a-8b3e-f5239cd0c58d"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/dynatrace-oss/dt-evals.git","type":"git"},"_npmVersion":"11.19.0","description":"Evaluation CLI for AI Observability on Dynatrace","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ajv":"^8.20.0","yaml":"^2.4.0","figlet":"^1.11.0","openai":"^4.73.0","recheck":"^4.5.0","commander":"^12.0.0","picocolors":"^1.1.1","@google/genai":"^1.0.0","@types/figlet":"^1.7.0","@anthropic-ai/sdk":"^0.32.0","@inquirer/prompts":"^7.10.1","@dynatrace-oss/dt-eval-lib":"^0.0.19-alpha","@aws-sdk/client-bedrock-runtime":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","tsup":"^8.3.0","vitest":"^4.1.4","typescript":"^5.7.0","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/dt-evals_0.3.2-alpha_1788942731847_0.14368679127834172","host":"s3://npm-registry-packages-npm-production"}},"0.3.3-alpha":{"name":"@dynatrace-oss/dt-evals","version":"0.3.3-alpha","description":"Evaluation CLI for AI Observability on Dynatrace","type":"module","bin":{"dt-evals":"dist/index.js"},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts"}},"engines":{"node":">=20"},"scripts":{"build":"tsup","test":"vitest run","typecheck":"tsc --noEmit","dev":"tsx src/index.ts"},"homepage":"https://github.com/dynatrace-oss/dt-evals#readme","bugs":{"url":"https://github.com/dynatrace-oss/dt-evals/issues"},"repository":{"type":"git","url":"git+https://github.com/dynatrace-oss/dt-evals.git"},"license":"Apache-2.0","dependencies":{"@anthropic-ai/sdk":"^0.32.0","@aws-sdk/client-bedrock-runtime":"^3.0.0","@dynatrace-oss/dt-eval-lib":"^0.0.19-alpha","@google/genai":"^1.0.0","@inquirer/prompts":"^7.10.1","@types/figlet":"^1.7.0","ajv":"^8.20.0","commander":"^12.0.0","figlet":"^1.11.0","openai":"^4.73.0","picocolors":"^1.1.1","recheck":"^4.5.0","yaml":"^2.4.0"},"devDependencies":{"@types/node":"^25.5.0","tsup":"^8.3.0","tsx":"^4.0.0","typescript":"^5.7.0","vitest":"^4.1.4"},"overrides":{"esbuild":"^0.28.1"},"gitHead":"e1c029ad42b8d8404b3d442473739c5def52d529","_id":"@dynatrace-oss/dt-evals@0.3.3-alpha","_nodeVersion":"24.20.0","_npmVersion":"11.19.0","dist":{"integrity":"sha512-VRKFBuomrC2qgCdS+Keyzf5GSaPoWrbePXvRjO6f3ZNXhbgVbXxYKgj4gV26oVRj8IFpkpEHY+v3oJZ6/Lk+9g==","shasum":"69e2bdab38baf8f0cd33ebd83cc41f06f03073af","tarball":"https://registry.npmjs.org/@dynatrace-oss/dt-evals/-/dt-evals-0.3.3-alpha.tgz","fileCount":5,"unpackedSize":562422,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dynatrace-oss%2fdt-evals@0.3.3-alpha","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD8lmarveEk5lI1kMdKUjT1U0xtVW1Kzjg+4ztQjpTTRgIhAO1c7/jlNxWyytoDGv5/L38xn2pfJuvtDcekQUFsUxNV"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:905e9dcc-69f1-471a-8b3e-f5239cd0c58d"}},"directories":{},"maintainers":[{"name":"thisthatdc","email":"this_that@hotmail.it"},{"name":"dynatrace-nodejs","email":"nodejs@dynatrace.com"},{"name":"krisdyna","email":"kristof.muhi@dynatrace.com"},{"name":"christian-kreuzberger-dtx","email":"christian.kreuzberger@dynatrace.com"},{"name":"stefan.wolfsteiner.dynatrace","email":"stefan.wolfsteiner@dynatrace.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dt-evals_0.3.3-alpha_1789040681656_0.3549797803189223"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-12T17:19:48.596Z","modified":"2026-09-10T11:44:42.215Z","0.1.4-alpha":"2026-05-12T17:19:48.878Z","0.2.0-alpha":"2026-05-12T17:43:19.982Z","0.2.1-alpha":"2026-05-13T20:12:20.890Z","0.2.2-alpha":"2026-05-14T06:26:02.154Z","0.2.3-alpha":"2026-06-05T11:31:23.623Z","0.2.4-alpha":"2026-06-11T13:48:07.221Z","0.2.5-alpha":"2026-06-12T14:56:50.088Z","0.2.6-alpha":"2026-07-03T08:40:38.404Z","0.2.7-alpha":"2026-07-14T08:06:38.111Z","0.2.8-alpha":"2026-07-21T15:35:38.410Z","0.2.9-alpha":"2026-07-22T09:49:13.170Z","0.2.10-alpha":"2026-07-22T13:34:01.850Z","0.2.11-alpha":"2026-07-24T12:21:41.584Z","0.2.12-alpha":"2026-07-29T09:04:26.864Z","0.2.13-alpha":"2026-07-30T12:53:11.709Z","0.2.14-alpha":"2026-07-30T14:48:21.460Z","0.2.15-alpha":"2026-08-03T11:35:59.251Z","0.2.16-alpha":"2026-08-11T12:08:33.250Z","0.2.17-alpha":"2026-08-12T13:25:41.790Z","0.2.18-alpha":"2026-08-13T14:17:13.073Z","0.2.19-alpha":"2026-08-14T11:41:38.756Z","0.2.20-alpha":"2026-08-18T15:43:18.976Z","0.2.21-alpha":"2026-08-19T14:56:44.833Z","0.2.22-alpha":"2026-08-20T14:03:07.838Z","0.2.23-alpha":"2026-08-26T12:49:08.692Z","0.2.24-alpha":"2026-08-28T09:23:59.066Z","0.2.25-alpha":"2026-08-28T14:09:15.552Z","0.2.26-alpha":"2026-09-01T09:59:15.692Z","0.3.0-alpha":"2026-09-01T12:16:26.100Z","0.3.1-alpha":"2026-09-07T11:22:17.652Z","0.3.2-alpha":"2026-09-09T08:32:12.042Z","0.3.3-alpha":"2026-09-10T11:44:41.791Z"},"bugs":{"url":"https://github.com/dynatrace-oss/dt-evals/issues"},"license":"Apache-2.0","homepage":"https://github.com/dynatrace-oss/dt-evals#readme","repository":{"type":"git","url":"git+https://github.com/dynatrace-oss/dt-evals.git"},"description":"Evaluation CLI for AI Observability on Dynatrace","maintainers":[{"name":"thisthatdc","email":"this_that@hotmail.it"},{"name":"dynatrace-nodejs","email":"nodejs@dynatrace.com"},{"name":"krisdyna","email":"kristof.muhi@dynatrace.com"},{"name":"christian-kreuzberger-dtx","email":"christian.kreuzberger@dynatrace.com"},{"name":"stefan.wolfsteiner.dynatrace","email":"stefan.wolfsteiner@dynatrace.com"}],"readme":"# dt-evals - Dynatrace Evaluation CLI tool\n\n**Open source continuous evals for LLM applications, with production prompt traces as the dataset.**\n\n[![npm version](https://img.shields.io/npm/v/@dynatrace-oss/dt-evals/alpha?style=flat-square&label=npm&color=cb3837)](https://www.npmjs.com/package/@dynatrace-oss/dt-evals)\n[![npm downloads](https://img.shields.io/npm/dm/@dynatrace-oss/dt-evals?style=flat-square&color=cb3837)](https://www.npmjs.com/package/@dynatrace-oss/dt-evals)\n[![Build](https://github.com/dynatrace-oss/dt-evals/actions/workflows/ci-cli.yml/badge.svg?branch=main)](https://github.com/dynatrace-oss/dt-evals/actions/workflows/ci-cli.yml)\n[![License](https://img.shields.io/badge/license-Apache_2.0-blue?style=flat-square)](LICENSE)\n[![Node](https://img.shields.io/node/v/@dynatrace-oss/dt-evals/alpha?style=flat-square)](package.json)\n\n> [![Watch the video](../assets/dt-evals-welcome.gif)](https://www.youtube.com/watch?v=64WwV4K287g)\n>\n> 📺 **See it in action:** [How to Run LLM Evaluations with dt-evals](https://www.youtube.com/watch?v=64WwV4K287g) — a hands-on walkthrough of pulling production traces, scoring them with an LLM judge, and reading the results back in Dynatrace.\n\n`dt-evals` is for teams shipping chat, RAG, copilots, and agent workflows who want evals to run on real traffic, not just curated test sets.\n\nToday, the CLI uses Dynatrace as both the trace source and the evaluation result store. It pulls gen_ai.* spans from your live environment, masks sensitive data in memory, scores real production interactions with an LLM judge, detects score drift over time, and writes structured evaluation results back to Dynatrace as business events.\n\nThat means when a score drops or an outlier appears, you do not just see that quality regressed, you can trace it back through the full AI execution path: prompts, retrieval context, model calls, tool usage, latency, failures, and service dependencies.\n\nIn practice, this gives AI engineers a closed loop for evaluation, observability, alerting, anomaly detection, and remediation on the same production telemetry they already use to operate their systems.\n\nThe repository also includes `dt-eval-lib`, a reusable TypeScript evaluation engine for running the same judge-based metrics directly in code, using either the built-in evaluator catalog or your own custom prompt definitions. It also fits cleanly into broader evaluation workflows and observability stacks such as Ragas, MLflow, or Langfuse when you want to orchestrate or track evals in those systems alongside this library.\n\n```bash\nnpx @dynatrace-oss/dt-evals configure\nnpx @dynatrace-oss/dt-evals validate\nnpx @dynatrace-oss/dt-evals run --since 1h --sample 10 --concurrency 10\n```\n\nTune `--concurrency` (or `judge.concurrency` in your yaml) to control how many judge calls run in parallel — bump it for faster runs, drop it if the provider rate-limits you. Default is 5.\n\n> 🎮 **See it live before installing** — [**open the dt-evals playground dashboard**](https://wkf10640.apps.dynatrace.com/ui/apps/dynatrace.dashboards/dashboard/dynatrace.genai.observability.aiobservability) on our public Dynatrace tenant. Real evaluation runs against production GenAI traces — scores per metric, drift over time, threshold breaches, click-through to the originating trace.\n\n## Why Teams Use It\n\n- Run evals on real production traces, not static test sets\n- Keep eval results in Dynatrace with traces, logs, metrics, dashboards, and alerts\n- Catch common LLM and agent failure modes with built-in judge metrics\n- Detect regressions, drift, and outlier score changes early\n- Go from low score to root cause with end-to-end AI observability\n- Correlate failures with prompts, retrieval, tool calls, latency, and dependencies\n- Reuse the same evaluator catalog in CI, app code, and local workflows with dt-eval-lib\n- Trigger alerts and optional remediation from the same evaluation pipeline\n\n## Packages\n\n| Package | What it is for |\n|---------|-----------------|\n| `dt-evals` | Continuous evaluation runs against production GenAI traces in Dynatrace |\n| `dt-eval-lib` | TypeScript library for judge-based evals inside tests, scripts, and app code |\n| `dt-eval-engine` | Core runtime for deployed eval workers and serverless runners |\n\n## What It Does\n\n- **15 built-in judge metrics** for safety, grounding, relevance, quality, and retrieval quality\n- **Statistical drift detection** against a 7 day baseline of prior evaluation scores\n- **Flexible sampling** with random percentage, latest `N`, or `errors-only`\n- **PII masking before judge calls** for emails, phone numbers, credit cards, and SSNs\n- **Evaluated prompt/response excluded from bizevents by default** — opt in with `storeEvaluatedPrompt` (see [Configuration](#configuration))\n- **OpenAI, Anthropic, Azure OpenAI, Google Gemini Enterprise Platform (Vertex AI), and Bedrock support** with optional custom base URLs for gateways and proxies\n- **CI friendly runs** with JSON output and non-zero exit codes on threshold breaches\n- **Local run history** with list, inspect, and export flows\n- **Scheduled runs** stored locally and triggerable on demand\n- **Evaluator inspection and testing** from the CLI\n- **TypeScript API** for running the evaluator catalog directly in code\n\n## How It Works\n\n```text\nDynatrace spans (gen_ai.*)\n        |\n        v\nsample traces -> mask sensitive data -> score with LLM judge -> write business events\n                                                                    |\n                                                                    v\n                                             query in DQL, dashboard, alert, export\n```\n\nThe current CLI path is Dynatrace specific. The product positioning is broader: continuous evals for AI-native engineering teams, using your live LLM traffic as the source of truth.\n\n## Requirements\n\n- Node.js `>=20`\n- A Dynatrace environment with GenAI spans or OpenTelemetry-style `gen_ai.*` fields\n- Credentials for your judge provider (OpenAI, Anthropic, Azure OpenAI, Google Gemini Enterprise Platform (Vertex AI), or Bedrock)\n\n## Install\n\n```bash\nnpm install -g @dynatrace-oss/dt-evals\n```\n\nOr run without installing:\n\n```bash\nnpx @dynatrace-oss/dt-evals <command>\n```\n\nThe CLI also auto-loads a local `.env` file from the current working directory.\n\n## Quick Start\n\n### 1. Create config\n\nInteractive setup:\n\n```bash\ndt-evals configure\n```\n\nNon-interactive setup:\n\n```bash\ndt-evals configure \\\n  --env-url https://your-env.live.dynatrace.com \\\n  --api-token \"$DT_API_TOKEN\" \\\n  --provider openai \\\n  --api-key \"$OPENAI_API_KEY\" \\\n  --model gpt-4.1 \\\n  --since 1h \\\n  --output .dt-eval.yaml\n```\n\n### 2. Validate the setup\n\n```bash\ndt-evals validate\n```\n\nThis checks:\n\n- config schema\n- Dynatrace connectivity\n- judge provider reachability\n- evaluator catalog availability\n\n### 3. Run evals on recent traces\n\n```bash\ndt-evals run --since 1h --sample 10 --concurrency 5\n```\n\nRun only one evaluator:\n\n```bash\ndt-evals run --since 6h --metric faithfulness\n```\n\nPreview the work without calling the judge or writing results:\n\n```bash\ndt-evals run --since 1h --sample 5 --dry-run\n```\n\n## CLI Workflows\n\n### Production eval run\n\n```bash\ndt-evals run \\\n  --since 2h \\\n  --sample 20 \\\n  --concurrency 8 \\\n  --debug\n```\n\n### CI gate on quality regressions\n\n```bash\ndt-evals run --since 6h --metric relevance --ci\n```\n\n- exit code `0`: no threshold breaches\n- exit code `1`: one or more threshold breaches\n\nExample GitHub Actions step:\n\n```yaml\n- name: Run LLM eval gate\n  run: npx @dynatrace-oss/dt-evals run --since 6h --metric faithfulness --ci\n  env:\n    DT_ENV_URL: ${{ secrets.DT_ENV_URL }}\n    DT_API_TOKEN: ${{ secrets.DT_API_TOKEN }}\n    OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}\n```\n\n### Run drift detection only\n\n```bash\ndt-evals run --metric drift --since 24h\n```\n\nThis uses prior evaluation results already written to Dynatrace and compares the recent window against a 7 day baseline.\n\n### Inspect available evaluators\n\n```bash\ndt-evals evaluators list\ndt-evals evaluators show faithfulness\ndt-evals evaluators test relevance\n```\n\nCreate or remove a custom evaluator:\n\n```bash\ndt-evals evaluators add\ndt-evals evaluators delete my-custom-eval\n```\n\n### Manage run history\n\n```bash\ndt-evals runs list --limit 20\ndt-evals runs show run-2026-04-10T12-00-00-ab12cd34\ndt-evals runs export --format csv --output runs.csv\n```\n\nRun records are stored locally in `~/.dt-eval/runs.json`.\n\n### Schedule recurring runs\n\n```bash\ndt-evals schedule add --name hourly-rag --cron \"0 * * * *\" --since 1h --sample 10\ndt-evals schedule list\ndt-evals schedule run <schedule-id>\ndt-evals schedule disable <schedule-id>\ndt-evals schedule enable <schedule-id>\ndt-evals schedule delete <schedule-id>\n```\n\nSchedules are stored locally in `~/.dt-eval/schedules.json`.\n\n### Check current status\n\n```bash\ndt-evals status\ndt-evals configure --show\n```\n\n## Commands\n\n| Command | Description |\n|---------|-------------|\n| `configure` | Create or update config interactively or via flags |\n| `validate` | Check config, Dynatrace connectivity, and judge provider availability |\n| `run` | Evaluate recent GenAI traces |\n| `status` | Show resolved config, connectivity, and last run summary |\n| `evaluators` | List, inspect, test, and manage evaluators |\n| `runs` | View and export historical run records |\n| `schedule` | Create and trigger recurring runs |\n\nGlobal flags:\n\n```text\n--verbose    Enable verbose logs\n--json       Emit structured JSON logs\n```\n\n`run` flags:\n\n```text\n--config <path>        Path to config file\n--since <duration>     Trace lookback window, for example 1h or 24h\n--sample <percent>     Percentage of traces to evaluate\n--metric <name>        Run only one evaluator\n--dry-run              Do not call the judge or write results\n--ci                   JSON result output and exit 1 on threshold breach\n--concurrency <n>      Parallel judge calls (overrides judge.concurrency in the config; default 5)\n--store-evaluated-prompt   Include the evaluated prompt/response in bizevents (overrides storeEvaluatedPrompt in the config; default: false)\n--debug                Per-step timing logs\n```\n\n## Configuration\n\nConfig is resolved in this order:\n\n| Priority | Source |\n|----------|--------|\n| 1 | Environment variables |\n| 2 | Project config, usually `.dt-eval.yaml` |\n| 3 | Global config, `~/.dt-eval/config.yaml` |\n| 4 | Built-in defaults |\n\n### Example config\n\n```yaml\nschemaVersion: 3\nname: travel-assistant-prod\n\ndynatrace:\n  environmentUrl: https://your-env.live.dynatrace.com\n  dtctlContext: my-prod-context\n\njudge:\n  provider: openai\n  model: gpt-4.1\n  timeout: 30000\n  maxRetries: 2\n  concurrency: 5\n\nscope:\n  service: travel-assistant\n  since: 1h\n  operationNames: [chat, text_completion, generate_content]\n  sampling:\n    strategy: random\n    percent: 10\n\nmetrics:\n  enabled:\n    - faithfulness\n    - hallucination\n    - relevance\n    - answer-completeness\n    - id: valid-json\n      method: json_schema\n      params:\n        schema:\n          type: object\n          required: [answer]\n    - id: no-refusal\n      method: must_not_contain\n      params:\n        keywords: [\"i cannot help\", \"i'm sorry\"]\n        mode: any\n    - drift\n\nalerts:\n  thresholds:\n    faithfulness: 0.7\n    relevance: 0.7\n    answer-completeness: 0.8\n\nstoreEvaluatedPrompt: false\n```\n\nString entries and object entries without `method` use the configured\nLLM-as-judge provider. Deterministic entries set `method` to `exact_match`,\n`regex`, `must_not_match`, `json_schema`, `must_contain`, or\n`must_not_contain`. `exact_match` compares the span output against a literal\n`params.expectedOutput` defined in the config:\n\n```yaml\nmetrics:\n  enabled:\n    - id: exact-answer\n      method: exact_match\n      params:\n        expectedOutput: \"OK\"\n        caseSensitive: false\n        trim: true\n```\n\nBy default, the runner keeps only chat/text-generation spans:\n`chat`, `text_completion`, and `generate_content`. Configure\n`scope.operationNames` to narrow or extend that keep-list, for example\n`operationNames: [chat]`. Set it to `[]` only if you intentionally want to\ndisable the operation-name filter.\n\nSampling strategies:\n\n| Strategy | Example |\n|----------|---------|\n| Random percentage | `strategy: random`, `percent: 10` |\n| Most recent traces | `strategy: latest`, `count: 200` |\n| Error traces only | `strategy: errors-only` |\n\n### Cross-tenant configuration\n\n`dynatrace.environmentUrl` / `dynatrace.apiToken` describe a single tenant\nthat handles both reads and writes. To split them — fetch GenAI spans from\none tenant and write evaluation bizevents to another — use `origin` (read)\nand `destination` (write):\n\n```yaml\ndynatrace:\n  origin:\n    environmentUrl: https://prod.live.dynatrace.com\n  destination:\n    environmentUrl: https://eval-results.dev.apps.dynatracelabs.com\n```\n\nTop-level `environmentUrl` / `apiToken` (if present) act as fallbacks — if\neither side omits a field, the top-level value is used. So a single-tenant\nconfig is just the cross-tenant form with both sides empty.\n\nThe `validate` command probes each side separately, including a real\n`fetch spans | limit 1` against the origin to catch missing\n`storage:spans:read` scope before a run is attempted.\n\n### Required token scopes\n\n| Scope | Required for |\n|---|---|\n| `storage:spans:read` | Reading GenAI spans (origin) |\n| `storage:buckets:read` | Grail prerequisite — without this, DQL returns empty results silently |\n| `storage:bizevents:read` | Drift detection baseline (reads past eval bizevents) |\n| `storage:events:write` | Writing evaluation results as bizevents (destination) |\n| `storage:metrics:write` | Writing evaluation metrics *(optional)* |\n| `storage:logs:read` | `dt-evals validate` connectivity probe |\n\nFor `dt-evals alerts apply` (Dynatrace Workflows), grant these additionally on the dtctl OAuth client:\n\n| Scope | Required for |\n|---|---|\n| `automation:workflows:read` | `list`, `diff`, idempotent `apply` |\n| `automation:workflows:write` | `apply`, `delete` |\n| `automation:workflows:run` | Manual execution from the UI *(optional)* |\n\n### Custom span field mapping\n\nBy default, the CLI reads OTel GenAI semconv (`gen_ai.input.messages`,\n`gen_ai.output.messages`, …). It also probes a\nsmall set of legacy fallback attributes (`gen_ai.prompt.N.*`,\n`gen_ai.completion.0.content`) for compatibility with older emitters. If\nyour spans expose the LLM I/O under different attribute names — for\nexample OpenInference (`llm.input_messages`, `llm.output_messages`,\n`llm.model_name`) — point the CLI at them via `scope.spanFields`. See the\n[`dynatrace-ai-agent-instrumentation-examples`](https://github.com/dynatrace-oss/dynatrace-ai-agent-instrumentation-examples)\nfor end-to-end instrumentation examples.\nEach entry accepts a single attribute or a list of candidates; the first\nnon-null value wins, with the built-in defaults appended as fallback.\n\n**Example 1 — explicit legacy output mapping**:\n\n```yaml\nscope:\n  service: pydantic-ai-music-agent\n  spanFields:\n    output: gen_ai.completion.0.content\n```\n\nThe default output mapping uses `gen_ai.output.messages`. `spanFields` lets\nyou opt into legacy or emitter-specific attributes explicitly.\n\n**Example 2 — OTel spans not following the GenAI SemConv (OpenInference):**\n\n```yaml\nscope:\n  service: my-openinference-service\n  since: 30m\n  spanFields:\n    input: [llm.input_messages, input.value]\n    output: [llm.output_messages, output.value]\n    model: llm.model_name\n```\n\nOpenInference usually stores chat turns in `llm.input_messages` /\n`llm.output_messages` and plain-text payloads in `input.value` /\n`output.value`, so listing both keeps the mapping resilient across\ninstrumentations.\n\n### Filtering spans by attribute\n\n`scope.filters` narrows the DQL fetch to spans carrying specific attribute\nvalues. Keys are span attribute names; each value is a single value or a\nlist. Separate keys are ANDed together, and a list of values for one key is\nORed via `in()`. Filtering happens in Grail, so excluded spans are never\ntransferred or judged.\n\n**Example 1 — isolate the orchestrator in a multi-agent service**:\n\n```yaml\nscope:\n  service: support-orchestrator\n  filters:\n    gen_ai.agent.name: router\n```\n\n`service` alone cannot separate an orchestrator from the sub-agents it\ninvokes when both run in the same service and emit the same\n`gen_ai.operation.name`.\n\n**Example 2 — restrict to tagged production traffic**:\n\n```yaml\nscope:\n  service: travel-assistant\n  filters:\n    deployment.environment: production\n    gen_ai.request.model: [gpt-4.1, gpt-4.1-mini]\n```\n\nAttribute names are passed to DQL verbatim, so an unknown or malformed\nattribute surfaces as a DQL error from Grail rather than being validated\nlocally.\n\n### Per-metric input routing\n\nMetric entries in `metrics.enabled` accept either a string id (the legacy\nform) or an object with `inputs` that overrides which canonical span field\nfeeds each evaluator input slot. This is useful when a metric should score\nonly part of the conversation — e.g. `user-frustration` evaluates the user's\nturn in isolation, not the joined transcript:\n\n```yaml\nmetrics:\n  enabled:\n    - faithfulness                                  # plain string form\n    - id: user-frustration\n      inputs:\n        input: userPrompt\n    - id: hallucination\n      inputs:\n        context: context\n```\n\nAvailable canonical fields: `input`, `output`, `context`,\n`systemInstruction`, `model`, `userPrompt` (latest user-role prompt slot, extracted from\n`gen_ai.prompt.N.role == \"user\"`). `context` has no built-in default span\nattribute — if a span does not provide it, evaluator context is omitted unless\nyou explicitly route `inputs.context` elsewhere.\n\n### Full example\n\nA complete `.dt-eval.yaml` combining everything — schema bump, custom\nspan field mapping, per-metric input routing, sampling, alerts:\n\n```yaml\nschemaVersion: 3\nname: travel-assistant-prod\n\ndynatrace:\n  environmentUrl: https://your-env.live.dynatrace.com\n  # apiToken loaded from DT_API_TOKEN env var\n\njudge:\n  provider: azure-openai\n  model: gpt-4.1-mini\n  # apiKey, baseUrl, apiVersion loaded from AZURE_OPENAI_* env vars\n\nscope:\n  service: travel-assistant\n  since: 1h\n  operationNames: [chat, text_completion, generate_content]\n  sampling:\n    strategy: latest\n    count: 50\n  spanFields:\n    context: span.context\n    # input, systemInstruction, model use built-in defaults\n\nmetrics:\n  enabled:\n    - faithfulness\n    - relevance\n    - hallucination\n    - answer-completeness\n    - id: user-frustration\n      inputs:\n        input: userPrompt\n    - id: no-refusal\n      method: must_not_contain\n      params:\n        keywords: [\"i cannot help\", \"i'm sorry\"]\n        mode: any\n\nalerts:\n  thresholds:\n    faithfulness: 0.7\n    relevance: 0.7\n    answer-completeness: 0.8\n    user-frustration: 1\n```\n\nUseful environment variables:\n\n```bash\nDT_ENV_URL=https://your-env.live.dynatrace.com\nDT_API_TOKEN=dt0c01.xxxxx\nDT_DTCTL_CONTEXT=my-prod-context\n\n# Cross-tenant overrides (optional — when set, these win over the top-level pair)\nDT_ORIGIN_ENV_URL=https://prod.live.dynatrace.com\nDT_ORIGIN_API_TOKEN=dt0s16.xxxxx\nDT_DESTINATION_ENV_URL=https://eval-results.dev.apps.dynatracelabs.com\nDT_DESTINATION_API_TOKEN=dt0s16.yyyyy\n\nJUDGE_PROVIDER=openai\nJUDGE_MODEL=gpt-4.1\n\nOPENAI_API_KEY=sk-...\nOPENAI_BASE_URL=https://your-gateway.example.com/v1\n\nANTHROPIC_API_KEY=sk-ant-...\nANTHROPIC_BASE_URL=https://your-proxy.example.com\n\n# Google Gemini Enterprise Platform (Vertex AI)\nGOOGLE_API_KEY=...\n# Or authenticate via Workload Identity / Application Default Credentials instead of an API key.\n# Set the target project and region (or judge.project / judge.location in config):\nGOOGLE_CLOUD_PROJECT=my-gcp-project\nGOOGLE_CLOUD_LOCATION=global\n```\n\n## Results in Dynatrace\n\nEvaluation results are written as business events with `event.type == \"gen_ai.evaluation.result\"`.\n\nImportant fields include:\n\n| Field | Meaning |\n|-------|---------|\n| `gen_ai.evaluation.name` | Evaluator name, for example `faithfulness` |\n| `gen_ai.evaluation.score.value` | Numeric score |\n| `gen_ai.evaluation.score.label` | `pass` or `fail` |\n| `gen_ai.evaluation.score.explanation` | Short summary from the judge |\n| `dt.eval.run_id` | Evaluation run identifier |\n| `trace_id` | Source trace ID |\n| `dt.service.name` | Service filter when configured |\n\nExample DQL:\n\n```dql\nfetch bizevents\n| filter event.type == \"gen_ai.evaluation.result\"\n| summarize avg_score = avg(gen_ai.evaluation.score.value), by: { gen_ai.evaluation.name }\n| sort avg_score asc\n```\n\nDrift results are written back as the same event type with `gen_ai.evaluation.type == \"drift\"`.\n\n## Built-in Evaluators\n\n`dt-evals` ships with 15 built-in LLM judge evaluators, plus drift detection as a separate statistical metric.\n\n| Evaluator | Measures | Fields used |\n|-----------|----------|-------------|\n| `answer-completeness` | Whether all parts of the request were answered | `input`, `output` |\n| `bias` | Harmful bias or unfair framing | `input`, `output` |\n| `conciseness` | Whether the answer avoids filler and unnecessary padding | `input`, `output` |\n| `context-relevance` | Retrieval quality for supplied context | `input` |\n| `factual-accuracy` | Accuracy using world knowledge | `input`, `output` |\n| `faithfulness` | Whether the answer is grounded in provided context | `input`, `output` |\n| `fluency` | Grammar, clarity, and natural language quality | `input`, `output` |\n| `hallucination` | Unsupported or fabricated claims | `input`, `output` |\n| `output-prompt-injection` | Injection payload emitted in the output to hijack a downstream agent | `output` |\n| `pii-leakage` | Personally identifiable information in the answer | `input`, `output` |\n| `prompt-injection` | Prompt injection attempts in the input | `input` |\n| `relevance` | Whether the answer addresses the user request | `input`, `output` |\n| `summarization-quality` | Summary faithfulness, coverage, and conciseness | `input`, `output` |\n| `toxicity` | Harmful, offensive, or unsafe output | `output` |\n| `user-frustration` | Frustration signals in the user's message | `input` |\n\n### Deterministic evaluators (code evals)\n\nNot every check needs an LLM. Add a `method` to a metric entry in\n`metrics.enabled` to run a fast, reproducible, zero-cost **code eval** (a\ndeterministic check) instead of an LLM judge. Each one scores the span output\nas pass (`1.0`) or fail (`0.0`). Omitting `method` keeps the default\nLLM-as-judge behavior, so existing configs are unaffected.\n\nAvailable methods: `exact_match`, `regex`, `must_not_match`, `must_contain`,\n`must_not_contain`, and `json_schema`.\n\n**`exact_match` — require the output to equal an expected string**\n\n```yaml\nmetrics:\n  enabled:\n    - id: matches-canonical-answer\n      method: exact_match\n      params:\n        expectedOutput: \"APPROVED\"\n        trim: true            # strip surrounding whitespace before comparing\n        caseSensitive: false  # default true; set false to ignore case\n```\n\n**`must_contain` — require an expected keyword to be present**\n\n```yaml\n    - id: cites-a-source\n      method: must_contain\n      params:\n        keywords: [\"source\", \"reference\", \"according to\"]\n        mode: any          # any = pass if one is present; all = require every keyword\n```\n\n**`must_not_contain` — block forbidden or harmful words**\n\n```yaml\n    - id: no-harmful-words\n      method: must_not_contain\n      params:\n        keywords: [\"harmful_word_1\", \"harmful_word_2\", \"harmful_word_3\"]\n        mode: any          # fail if ANY blocked word appears\n        # matching is case-insensitive by default; set caseSensitive: true to change\n```\n\n**`must_not_match` — fail if the output matches a pattern (e.g. a leaked IP address)**\n\n```yaml\n    - id: no-ip-leaked\n      method: must_not_match\n      params:\n        pattern: \"\\\\b(?:\\\\d{1,3}\\\\.){3}\\\\d{1,3}\\\\b\"\n```\n\n**`regex` — the opposite of `must_not_match`: pass only when the output matches**\n\n```yaml\n    - id: starts-with-ticket-id\n      method: regex\n      params:\n        pattern: \"^[A-Z]+-\\\\d+:\"   # e.g. \"AI-465: summary…\"\n        flags: \"m\"                 # ^ anchors each line, not just the string\n```\n\n**`json_schema` — require valid, well-structured JSON**\n\n```yaml\n    - id: valid-response-object\n      method: json_schema\n      params:\n        schema:\n          type: object\n          required: [answer]\n```\n\n> **Note:** `json_schema` parses the raw output, so the output must be **bare**\n> JSON — a response wrapped in markdown fences (` ```json … ``` `) will not\n> parse. `json_schema` needs the optional `ajv` dependency, and `regex` /\n> `must_not_match` need the optional `recheck` dependency (for ReDoS safety).\n\n**Example configs:** [`code-evals`](examples/code-evals/README.md) applies these\nmethods as format and policy gates on an agent's final answer;\n[`tool-call-accuracy`](examples/tool-call-accuracy/README.md) points them at a\ntool call instead — `json_schema` over the arguments, `must_not_match` over the\nresult — with an LLM judge alongside for argument fidelity.\n\n### Custom evaluators\n\nYou can create a custom judge metric with `dt-evals evaluators add`, then\nenable it in `metrics.enabled` like any built-in evaluator.\n\n**Example custom evaluator definition** (created by the interactive wizard\nand stored locally):\n\n```json\n{\n  \"id\": \"answer-style\",\n  \"version\": \"1\",\n  \"name\": \"Answer Style\",\n  \"description\": \"Checks whether the answer is concise, direct, and well structured.\",\n  \"prompt\": \"Evaluate the answer style for this request. User request: {{input}} Answer: {{output}} Return a continuous score from 0.0 to 1.0.\",\n  \"requiredFields\": [\"input\", \"output\"],\n  \"scoring\": {\n    \"type\": \"continuous\",\n    \"range\": [0, 1],\n    \"threshold\": 0.7\n  }\n}\n```\n\nEnable it in your eval config:\n\n```yaml\nmetrics:\n  enabled:\n    - faithfulness\n    - answer-style\n```\n\nUseful commands:\n\n```bash\ndt-evals evaluators add\ndt-evals evaluators list\ndt-evals evaluators show answer-style\ndt-evals evaluators test answer-style\n```\n\n### Evaluation levels (agent trajectory)\n\nBy default every span is scored on its own (`scope.level: agent-span`) — one\nverdict per step. Set `scope.level: agent-session` to evaluate the **whole agent\ntrajectory** instead: spans are grouped into one conversation (by\n`gen_ai.conversation.id`, falling back to `trace.id`) and a single judge call\nruns over the joined transcript.\n\n| `scope.level` | Unit scored | Answers |\n|---|---|---|\n| `agent-span` (default) | one span / step | was this individual step correct? |\n| `agent-session` | one conversation / trajectory | did the agent resolve the whole request, recover after a failed tool, stay coherent across turns? |\n\nCompletion, recovery, and coherence only exist across steps — score each span\nalone and they are invisible. Any evaluator, built-in or custom, can run at\neither level; at session level `keepPartTypes`, `maxMessages`, and\n`maxConversations` shape the transcript.\n\n**Example configs:** [`agent-session`](examples/agent-session/README.md) judges\nwhole-conversation completeness;\n[`session-routing-accuracy`](examples/routing-accuracy/README.md) lifts routing\naccuracy to the trajectory level.\n\n### Drift detection\n\n`drift` compares current score distributions against a 7 day baseline of prior evaluation events.\n\nUse it when you care about regressions that show up gradually, not just single-run threshold breaches.\n\n## Examples\n\nRunnable, documented example configs live under [`examples/`](examples/). Each\nfolder has its own README explaining when to use it and how to adapt it.\n\n| Example | Demonstrates |\n|---------|--------------|\n| [`code-evals`](examples/code-evals/README.md) | Deterministic pass/fail checks (`regex`, `must_contain`, `json_schema`, …) that run in-process with no LLM judge |\n| [`agent-session`](examples/agent-session/README.md) | `scope.level: agent-session` — grouping a multi-step conversation (agent trajectory) and judging the whole transcript once |\n| [`routing-accuracy`](examples/routing-accuracy/README.md) | Scoring multi-agent handovers — was each request routed to the agent that owns it |\n| [`tool-call-accuracy`](examples/tool-call-accuracy/README.md) | Checking a tool call — `json_schema`/`must_not_match` on its arguments and result, plus an LLM judge for whether the right tool was called with faithful arguments |\n\n## TypeScript Library\n\nThe repository also includes [`dt-eval-lib`](../dt-eval-lib/README.md) — a standalone TypeScript package for running the same judge-based metrics directly in code, tests, and CI pipelines without the CLI. It supports all six providers and the full built-in evaluator catalog.\n\n## PII Handling\n\nFor CLI trace evaluation runs, the following are masked in memory before content is sent to an external judge model:\n\n- email addresses\n- phone numbers\n- credit card numbers\n- social security numbers\n\nThe original values are not sent to the judge by the CLI path.\n\n## Data Expectations\n\nThe CLI reads OTel GenAI semconv fields by default:\n\n| Canonical field | Default attributes read |\n|----------------|------------------------|\n| `input` | `gen_ai.input.messages` |\n| `output` | `gen_ai.output.messages` |\n| `model` | `gen_ai.request.model` |\n| `systemInstruction` | `gen_ai.system_instruction` |\n\nThis makes the CLI a good fit for apps instrumented with OpenTelemetry\nGenAI conventions. For other tracing schemas — including OpenInference —\nuse `scope.spanFields` to map their attributes to the canonical fields\nabove. OpenInference commonly uses attributes such as\n`llm.input_messages`, `llm.output_messages`, `input.value`,\n`output.value`, and `llm.model_name`. A small set of legacy fallback attributes\n(`gen_ai.prompt.<n>.content/role`, `gen_ai.completion.0.content`) is also\nprobed for compatibility with older emitters. See\n[`dynatrace-ai-agent-instrumentation-examples`](https://github.com/dynatrace-oss/dynatrace-ai-agent-instrumentation-examples)\nfor example instrumentations.\n\n## Local Development\n\n```bash\n# from the repo root — install all workspace dependencies\nnpm install\n\nnpm run build --workspace=dt-eval-lib\nnpm run build --workspace=dt-eval-cli\n```\n\nRun locally without a build:\n\n```bash\nnpm run dev -- configure\nnpm run dev -- run --since 1h --dry-run\n```\n\nRun tests:\n\n```bash\nnpm test\n```\n\n## Contributing\n\nIssues and pull requests are welcome.\n\nIf you want to work on a larger change, open an issue first so the direction is clear before implementation starts.\n\n## License\n\n[Apache 2.0](LICENSE)\n","readmeFilename":"README.md"}