trace-port.js
672 Bytes
/**
* asTracePort —— 把 span 侧适配成 `@drama/llm` `TracePort` 形状(`startSpan(name) → Span`)。
*
* `sink` 必注入、原样透传给 `startSpan`;无「可能没有 sink」的守卫分支——
* 缺 tracePort 的降级由 `@drama/llm` 的 `noopTracePort` 承担,不在本包重复。
*/
import { startSpan } from './span.js'
/**
* @typedef {import('./span.js').Sink} Sink
* @typedef {import('@drama/llm').TracePort} TracePort
*/
/**
* @param {object} deps
* @param {Sink} deps.sink
* @returns {TracePort}
*/
export function asTracePort({ sink }) {
return {
startSpan(name) {
return startSpan(name, { sink })
},
}
}