{"_id":"@amaster.ai/dsh-langfuse","_rev":"4-3c4337aa936e6a444cd2e42bd28cff1c","name":"@amaster.ai/dsh-langfuse","dist-tags":{"latest":"0.1.3"},"versions":{"0.1.0":{"name":"@amaster.ai/dsh-langfuse","version":"0.1.0","license":"MIT","_id":"@amaster.ai/dsh-langfuse@0.1.0","maintainers":[{"name":"qianchuan","email":"qdgemi@gmail.com"},{"name":"thornhill","email":"gpyx529@gmail.com"},{"name":"licy_mail","email":"licy_mail@qq.com"},{"name":"weaxs","email":"459312872@qq.com"},{"name":"2betop","email":"2betop.cn@gmail.com"},{"name":"lmaomaoz","email":"lmaomaoz@live.com"},{"name":"xiaojiaolv","email":"dfsq757@sina.com"},{"name":"xudong.ray","email":"xudzhang0914@gmail.com"}],"homepage":"https://github.com/TGYD-helige/dsh-plugins#readme","bugs":{"url":"https://github.com/TGYD-helige/dsh-plugins/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"0a4f51807bc72fee5b1b7cf93e9c596df197302b","tarball":"https://registry.npmjs.org/@amaster.ai/dsh-langfuse/-/dsh-langfuse-0.1.0.tgz","fileCount":9,"integrity":"sha512-wnz1aRaQWdC/TBzfw970z9N3Guiso1kyLvAfhu2kfQhHrQ8aO+kBznBEqvHR2tgCkpP7LJLlbVuhGBBCc8UhfA==","signatures":[{"sig":"MEYCIQDbJIyKdzUlpITjQLdINhtbnfgqHA/74ziLc8EtijQ5kwIhAMroSTSgcaBk/notSK16bhg7U7k3im/kD6fXbMzuJ71M","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1723209},"main":"lib/index.js","type":"module","_from":"file:amaster.ai-dsh-langfuse-0.1.0.tgz","types":"lib/types/index.d.ts","engines":{"node":"^20.19 || ^22.12 || >=24.0"},"exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"xiaojiaolv","email":"dfsq757@sina.com"},"_resolved":"/tmp/2778eb8cae58fb3013718e98800c6347/amaster.ai-dsh-langfuse-0.1.0.tgz","_integrity":"sha512-wnz1aRaQWdC/TBzfw970z9N3Guiso1kyLvAfhu2kfQhHrQ8aO+kBznBEqvHR2tgCkpP7LJLlbVuhGBBCc8UhfA==","repository":{"url":"git+https://github.com/TGYD-helige/dsh-plugins.git","type":"git","directory":"packages/dsh-langfuse"},"_npmVersion":"10.9.8","description":"Langfuse observability plugin for DeepSeek Harness: one generation per LLM call with a nested llm-request span, one span per tool call, one trace per session turn, subagent child sessions nested under the parent's tree.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","typescript":"^5.6.3","@types/node":"^22.0.0","@langfuse/otel":"5.10.1","@langfuse/tracing":"5.10.1","@opentelemetry/api":"^1.9.1","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"0.1.0-rc.7","@deepseek-ai/dsh-agent":"0.1.0-rc.7","@deepseek-ai/dsh-tools":"0.1.0-rc.7","@deepseek-ai/dsh-session":"0.1.0-rc.7","@deepseek-ai/dsh-subagent":"0.1.0-rc.7","@opentelemetry/sdk-trace-node":"^2.10.0"},"peerDependencies":{"@langfuse/otel":"^5.10.1","@langfuse/tracing":"^5.10.1","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"0.1.0-rc.7","@deepseek-ai/dsh-tools":"0.1.0-rc.7","@deepseek-ai/dsh-session":"0.1.0-rc.7","@deepseek-ai/dsh-subagent":"0.1.0-rc.7","@opentelemetry/sdk-trace-node":"^2.10.0"},"peerDependenciesMeta":{"@langfuse/otel":{"optional":true},"@langfuse/tracing":{"optional":true},"@opentelemetry/sdk-trace-node":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/dsh-langfuse_0.1.0_1787917861013_0.2615141635129252","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@amaster.ai/dsh-langfuse","version":"0.1.1","license":"MIT","_id":"@amaster.ai/dsh-langfuse@0.1.1","maintainers":[{"name":"qianchuan","email":"qdgemi@gmail.com"},{"name":"thornhill","email":"gpyx529@gmail.com"},{"name":"licy_mail","email":"licy_mail@qq.com"},{"name":"weaxs","email":"459312872@qq.com"},{"name":"2betop","email":"2betop.cn@gmail.com"},{"name":"lmaomaoz","email":"lmaomaoz@live.com"},{"name":"xiaojiaolv","email":"dfsq757@sina.com"},{"name":"xudong.ray","email":"xudzhang0914@gmail.com"}],"homepage":"https://github.com/TGYD-helige/dsh-plugins#readme","bugs":{"url":"https://github.com/TGYD-helige/dsh-plugins/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"d7dce86a3e99dde41ff38afa65db2b49b23479d2","tarball":"https://registry.npmjs.org/@amaster.ai/dsh-langfuse/-/dsh-langfuse-0.1.1.tgz","fileCount":9,"integrity":"sha512-W2Oa9HyPgTTMvsPtmuZj0rZ4gUSqLRXXU6dgBgOIMXrqg4l6EKS/9C65w6abhQMTTy0Nbr1/8DEtez0XeANO5Q==","signatures":[{"sig":"MEUCIGs6kZXAKpyWK45ZKNn+Q3MU1oo41n9AjCJfdXr6QQOCAiEAuZFfdaf0x98xk7swkJIsYhn1QkA+CoNZngy6MDub5K0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCVF1Njg/oVXZTg6/c0fvAs+9gYfaMC1xOVZh132R/LnwIgTnPDVcf8Lfh351gny7r+fhLgqkUFlPNjuKCh5hBn7u0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1724007},"main":"lib/index.js","type":"module","_from":"file:amaster.ai-dsh-langfuse-0.1.1.tgz","types":"lib/types/index.d.ts","engines":{"node":"^20.19 || ^22.12 || >=24.0"},"exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"xiaojiaolv","email":"dfsq757@sina.com"},"_resolved":"/tmp/8155d68ef032e33ddb997b2c0c706885/amaster.ai-dsh-langfuse-0.1.1.tgz","_integrity":"sha512-W2Oa9HyPgTTMvsPtmuZj0rZ4gUSqLRXXU6dgBgOIMXrqg4l6EKS/9C65w6abhQMTTy0Nbr1/8DEtez0XeANO5Q==","repository":{"url":"git+https://github.com/TGYD-helige/dsh-plugins.git","type":"git","directory":"packages/dsh-langfuse"},"_npmVersion":"10.9.8","description":"Langfuse observability plugin for DeepSeek Harness: one generation per LLM call with a nested llm-request span, one span per tool call, one trace per session turn, subagent child sessions nested under the parent's tree.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","typescript":"^5.6.3","@types/node":"^22.0.0","@langfuse/otel":"5.10.1","@langfuse/tracing":"5.10.1","@opentelemetry/api":"^1.9.1","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"0.1.2-rc.1","@deepseek-ai/dsh-agent":"0.1.2-rc.1","@deepseek-ai/dsh-tools":"0.1.2-rc.1","@deepseek-ai/dsh-session":"0.1.2-rc.1","@deepseek-ai/dsh-subagent":"0.1.2-rc.1","@opentelemetry/sdk-trace-node":"^2.10.0"},"peerDependencies":{"@langfuse/otel":"^5.10.1","@langfuse/tracing":"^5.10.1","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"0.1.2-rc.1","@deepseek-ai/dsh-tools":"0.1.2-rc.1","@deepseek-ai/dsh-session":"0.1.2-rc.1","@deepseek-ai/dsh-subagent":"0.1.2-rc.1","@opentelemetry/sdk-trace-node":"^2.10.0"},"peerDependenciesMeta":{"@langfuse/otel":{"optional":true},"@langfuse/tracing":{"optional":true},"@opentelemetry/sdk-trace-node":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/dsh-langfuse_0.1.1_1788596617407_0.41379307257759823","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@amaster.ai/dsh-langfuse","version":"0.1.2","license":"MIT","_id":"@amaster.ai/dsh-langfuse@0.1.2","maintainers":[{"name":"qianchuan","email":"qdgemi@gmail.com"},{"name":"thornhill","email":"gpyx529@gmail.com"},{"name":"licy_mail","email":"licy_mail@qq.com"},{"name":"weaxs","email":"459312872@qq.com"},{"name":"2betop","email":"2betop.cn@gmail.com"},{"name":"lmaomaoz","email":"lmaomaoz@live.com"},{"name":"xiaojiaolv","email":"dfsq757@sina.com"},{"name":"xudong.ray","email":"xudzhang0914@gmail.com"}],"homepage":"https://github.com/TGYD-helige/dsh-plugins#readme","bugs":{"url":"https://github.com/TGYD-helige/dsh-plugins/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"dist":{"shasum":"535449415a29fc3bba542f253f40d572f5745d03","tarball":"https://registry.npmjs.org/@amaster.ai/dsh-langfuse/-/dsh-langfuse-0.1.2.tgz","fileCount":9,"integrity":"sha512-baeZvlL3YbqX8pwIES54ha5dFfq8fjPdFLiZ13WQnj22Iagk0hHzezWj+nyZW8+TZI+yKGXOi7AT8coVoj/7pg==","signatures":[{"sig":"MEQCIGiVBuJwygCx2SXSDuXDQ8ZIM2Oy4NXcocbAsPxWvcDwAiBndEInCFpcBdjqruvVboL7J/ED/1hDAloIEroiWoGu5A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQClYl0u+mvy4riepW0Ric+a3tsWbTc1+Y3SSXhkKXAYGwIgNnhozgbfod5m3MXNndDI6xKN8y0dIDEf6mhYd4jBsJ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1724007},"main":"lib/index.js","type":"module","_from":"file:amaster.ai-dsh-langfuse-0.1.2.tgz","types":"lib/types/index.d.ts","engines":{"node":"^20.19 || ^22.12 || >=24.0"},"exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"xiaojiaolv","email":"dfsq757@sina.com"},"_resolved":"/tmp/4dce8ae716c18a96b28626ea6c768a48/amaster.ai-dsh-langfuse-0.1.2.tgz","_integrity":"sha512-baeZvlL3YbqX8pwIES54ha5dFfq8fjPdFLiZ13WQnj22Iagk0hHzezWj+nyZW8+TZI+yKGXOi7AT8coVoj/7pg==","repository":{"url":"git+https://github.com/TGYD-helige/dsh-plugins.git","type":"git","directory":"packages/dsh-langfuse"},"_npmVersion":"10.9.8","description":"Langfuse observability plugin for DeepSeek Harness: one generation per LLM call with a nested llm-request span, one span per tool call, one trace per session turn, subagent child sessions nested under the parent's tree.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","typescript":"^5.6.3","@types/node":"^22.0.0","@langfuse/otel":"5.10.1","@langfuse/tracing":"5.10.1","@opentelemetry/api":"^1.9.1","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"0.1.5-rc.1","@deepseek-ai/dsh-agent":"0.1.5-rc.1","@deepseek-ai/dsh-tools":"0.1.5-rc.1","@deepseek-ai/dsh-session":"0.1.5-rc.1","@deepseek-ai/dsh-subagent":"0.1.5-rc.1","@opentelemetry/sdk-trace-node":"^2.10.0"},"peerDependencies":{"@langfuse/otel":"^5.10.1","@langfuse/tracing":"^5.10.1","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"0.1.5-rc.1","@deepseek-ai/dsh-tools":"0.1.5-rc.1","@deepseek-ai/dsh-session":"0.1.5-rc.1","@deepseek-ai/dsh-subagent":"0.1.5-rc.1","@opentelemetry/sdk-trace-node":"^2.10.0"},"peerDependenciesMeta":{"@langfuse/otel":{"optional":true},"@langfuse/tracing":{"optional":true},"@opentelemetry/sdk-trace-node":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/dsh-langfuse_0.1.2_1789115485890_0.8345050522302284","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"_id":"@amaster.ai/dsh-langfuse@0.1.3","dsh":{"bundle":{"patch":"./cordis.patch.yml"}},"bugs":{"url":"https://github.com/TGYD-helige/dsh-plugins/issues"},"dist":{"shasum":"5dfd6f435dc5c97d0003628673e097e575ebe422","tarball":"https://registry.npmjs.org/@amaster.ai/dsh-langfuse/-/dsh-langfuse-0.1.3.tgz","fileCount":9,"integrity":"sha512-kG/fCMwfoxWjQ+BnK3tiWDu/WcIMpLyhYLjLHW/PDVsb7KxFaHCIZmXcz3xq8pKqPM2J+E8bMSwBW99r4azJYQ==","signatures":[{"sig":"MEYCIQCM7dSssBBV9OsUO60s/gz0nRfnYUMY+Zfeac3YkRkKXQIhAMLUlHbWwxL3BA9NHfhMhqypzLysgMUoV2XjlmlfbbCu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEalmYGnIS9nPyTMngcUtqQS+ZnxFHi0Mw0QislCoBf+AiBIEAosZ/twIdAHDyUMFL+4Qg7LY/QOvE2A5nufwvo+rA=="}],"unpackedSize":1724011},"main":"lib/index.js","name":"@amaster.ai/dsh-langfuse","type":"module","_from":"file:amaster.ai-dsh-langfuse-0.1.3.tgz","types":"lib/types/index.d.ts","engines":{"node":"^20.19 || ^22.12 || >=24.0"},"exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./package.json":"./package.json"},"license":"MIT","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","typecheck":"tsc -p tsconfig.json --noEmit"},"version":"0.1.3","_npmUser":{"name":"xiaojiaolv","email":"dfsq757@sina.com"},"homepage":"https://github.com/TGYD-helige/dsh-plugins#readme","_resolved":"/tmp/4885001ab36e4ff866eacca70a92e50c/amaster.ai-dsh-langfuse-0.1.3.tgz","_integrity":"sha512-kG/fCMwfoxWjQ+BnK3tiWDu/WcIMpLyhYLjLHW/PDVsb7KxFaHCIZmXcz3xq8pKqPM2J+E8bMSwBW99r4azJYQ==","repository":{"url":"git+https://github.com/TGYD-helige/dsh-plugins.git","type":"git","directory":"packages/dsh-langfuse"},"_npmVersion":"10.9.8","description":"Langfuse observability plugin for DeepSeek Harness: one generation per LLM call with a nested llm-request span, one span per tool call, one trace per session turn, subagent child sessions nested under the parent's tree.","directories":{},"maintainers":[{"name":"qianchuan","email":"qdgemi@gmail.com"},{"name":"thornhill","email":"gpyx529@gmail.com"},{"name":"licy_mail","email":"licy_mail@qq.com"},{"name":"weaxs","email":"459312872@qq.com"},{"name":"2betop","email":"2betop.cn@gmail.com"},{"name":"lmaomaoz","email":"lmaomaoz@live.com"},{"name":"xiaojiaolv","email":"dfsq757@sina.com"},{"name":"xudong.ray","email":"xudzhang0914@gmail.com"}],"_nodeVersion":"22.23.2","dependencies":{"@deepseek-ai/schemastery":"^3.18.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","typescript":"^5.6.3","@types/node":"^22.0.0","@langfuse/otel":"5.10.1","@langfuse/tracing":"5.10.1","@opentelemetry/api":"^1.9.1","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"0.1.5-rc.1","@deepseek-ai/dsh-agent":"0.1.5-rc.1","@deepseek-ai/dsh-tools":"0.1.5-rc.1","@deepseek-ai/dsh-session":"0.1.5-rc.1","@deepseek-ai/dsh-subagent":"0.1.5-rc.1","@opentelemetry/sdk-trace-node":"^2.10.0"},"peerDependencies":{"@langfuse/otel":"^5.10.1","@langfuse/tracing":"^5.10.1","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-llm":"^0.1.5-rc.1","@deepseek-ai/dsh-tools":"^0.1.5-rc.1","@deepseek-ai/dsh-session":"^0.1.5-rc.1","@deepseek-ai/dsh-subagent":"^0.1.5-rc.1","@opentelemetry/sdk-trace-node":"^2.10.0"},"peerDependenciesMeta":{"@langfuse/otel":{"optional":true},"@langfuse/tracing":{"optional":true},"@opentelemetry/sdk-trace-node":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dsh-langfuse_0.1.3_1789443034675_0.2302761164333571"}}},"time":{"created":"2026-08-28T11:51:00.795Z","modified":"2026-09-15T03:30:35.022Z","0.1.0":"2026-08-28T11:51:01.184Z","0.1.1":"2026-09-05T08:23:37.578Z","0.1.2":"2026-09-11T08:31:26.021Z","0.1.3":"2026-09-15T03:30:34.811Z"},"bugs":{"url":"https://github.com/TGYD-helige/dsh-plugins/issues"},"license":"MIT","homepage":"https://github.com/TGYD-helige/dsh-plugins#readme","repository":{"url":"git+https://github.com/TGYD-helige/dsh-plugins.git","type":"git","directory":"packages/dsh-langfuse"},"description":"Langfuse observability plugin for DeepSeek Harness: one generation per LLM call with a nested llm-request span, one span per tool call, one trace per session turn, subagent child sessions nested under the parent's tree.","maintainers":[{"name":"qianchuan","email":"qdgemi@gmail.com"},{"name":"thornhill","email":"gpyx529@gmail.com"},{"name":"licy_mail","email":"licy_mail@qq.com"},{"name":"weaxs","email":"459312872@qq.com"},{"name":"2betop","email":"2betop.cn@gmail.com"},{"name":"lmaomaoz","email":"lmaomaoz@live.com"},{"name":"xiaojiaolv","email":"dfsq757@sina.com"},{"name":"xudong.ray","email":"xudzhang0914@gmail.com"}],"readme":"# @amaster.ai/dsh-langfuse\n\n![dsh-langfuse preview](preview.png)\n\nLangfuse observability for [DeepSeek Harness (dsh)](https://github.com/deepseek-ai/deepseek-harness):\n\n- one **generation** per LLM call (`llm/stream` waterfall), plus a nested `llm-request` span carrying the verbatim loop-built request\n- one **span** per tool call (`tools/execute` waterfall)\n- one **trace** per session turn (`session/event`) — in the v5 SDK the trace IS its root span, ended (and thereby exported) at `turn/end`\n- subagent child sessions nested under the parent's tree (`session/created` header link + `subagent/start` / `subagent/end`)\n\n## Install\n\n```sh\ndsh plugin --profile my-agent add @amaster.ai/dsh-langfuse \\\n  @langfuse/tracing @langfuse/otel @opentelemetry/sdk-trace-node \\\n  @opentelemetry/api @opentelemetry/exporter-trace-otlp-http\n```\n\nThe Langfuse JS SDK v5 peers (`@langfuse/tracing`, `@langfuse/otel`, `@opentelemetry/sdk-trace-node`) are loaded via lazy dynamic `import()`, so an unused install costs nothing — but they must all be present at runtime (`dsh plugin add` does not auto-install peer trees, so the OTEL api/exporter packages `@langfuse/otel` itself peers on are listed explicitly).\n\n## Configuration\n\nDisabled by default. Configure via the profile's `cordis.patch.yml`:\n\n```yaml\n- insert:\n    - id: langfuse\n      name: '@amaster.ai/dsh-langfuse'\n      config:\n        enabled: true\n        publicKey: pk-lf-...\n        secretKey: sk-lf-...            # secret role\n        baseUrl: https://cloud.langfuse.com\n        traceName: dsh-turn\n        captureContent: true            # set false to record metadata only\n```\n\nBuffered spans drain on `session/flush(session)`; the exporter shuts down with the plugin fiber.\n\nObservability is a no-throw seam: backend errors are logged with a `[dsh-langfuse]` prefix and never escape into the agent loop.\n\n## Compatibility\n\nPinned dsh/cordis versions live in the [root compat matrix](../../README.md#compatibility). Event payloads ride pre-release dsh APIs — check the `TODO(verify)` markers in `src/` before upgrading dsh.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}