eve
Version:
Filesystem-first framework for durable backend AI agents that run anywhere.
1 lines • 1.06 kB
JavaScript
import{createLogger}from"#internal/logging.js";import{getAdapterKind}from"#channel/adapter.js";import{isInstrumentationChannelKind,resolveInstrumentationProjection}from"#internal/instrumentation.js";import{normalizeChannelAudience}from"#shared/channel-audience.js";const log=createLogger(`channel.instrumentation`);function buildChannelInstrumentationProjection(e){let{adapter:t,channelName:n,existingKind:r}=e;return{channelType:getAdapterKind(t),kind:resolveKind({adapter:t,channelName:n,existingKind:r}),metadata:resolveMetadata(t)}}function resolveKind(e){let{adapter:t,channelName:n,existingKind:r}=e;if(r!==void 0)return r;if(n!==void 0&&n.length>0)return`channel:${n}`;let i=getAdapterKind(t);return isInstrumentationChannelKind(i)?i:`channel:${i}`}function resolveMetadata(e){let t=e.instrumentation?.metadata;if(t===void 0)return{audience:`unknown`};let n=resolveInstrumentationProjection({invoke:()=>t(e.state),log,source:getAdapterKind(e)});return{...n,audience:normalizeChannelAudience(n?.audience)}}export{buildChannelInstrumentationProjection};