@yarlisai/core
Primitivas compartidas — ayudantes de entorno, logger, tipos de streaming, tipos de traza.
Primitivas compartidas — ayudantes de entorno, logger, tipos de streaming, tipos de traza.
Instalación
npm install @yarlisai/coreFuente: packages/core ·
npm ·
CHANGELOG
Por qué
@yarlisai/core sigue el contrato puerto/adaptador: los consumidores dependen de un puerto (interfaz SomeProvider) e instancian un adaptador en tiempo de ejecución. Cambiar de proveedor es un cambio de configuración en una sola línea.
Uso
El README del paquete incluye un inicio rápido completo. mybotbox-platform en sí mismo es el consumidor de referencia — apps/sat/lib/core/ (o un módulo con nombre similar) muestra cómo cada punto de llamada usa el puerto en lugar del SDK del proveedor directamente.
Transformaciones de tramos de traza
El subpath @yarlisai/core/trace incluye las primitivas portables de traza de ejecución: los tipos TraceSpan / ToolCall más las transformaciones puras de árbol de tramos que normalizan una traza antes de mostrarla o almacenarla. Cada transformación opera exclusivamente sobre árboles TraceSpan — sin importaciones del ejecutor ni de la aplicación — por lo que cualquier entorno de ejecución que produzca tramos de traza puede reutilizar el mismo pipeline.
import {
ensureNestedWorkflowsProcessed,
flattenWorkflowChildren,
getTraceSpanKey,
groupIterationBlocks,
isSyntheticWorkflowWrapper,
mergeTraceSpanChildren,
stripCustomToolPrefix,
type TraceSpan,
} from '@yarlisai/core/trace'
// Unwrap synthetic "Workflow Execution" wrappers from child-workflow traces
const children = flattenWorkflowChildren(childTraceSpans)
// Merge child groups, deduped by span identity (id, or name + time range)
const merged = mergeTraceSpanChildren(existingChildren, children)
// Fold "<name> (iteration <n>)" spans into loop/parallel iteration containers
const rootSpans = groupIterationBlocks(merged)flattenWorkflowChildren(spans)— desenvuelve recursivamente los envoltorios sintéticos de workflow y normaliza los tramos de flujos de trabajo hijo anidados.mergeTraceSpanChildren(...groups)— fusiona grupos de tramos, eliminando duplicados mediantegetTraceSpanKey(los grupos anteriores tienen prioridad).groupIterationBlocks(spans)— agrupa los tramos de iteración de bucles/paralelos en contenedores por iteración, ordenados por tiempo de inicio.ensureNestedWorkflowsProcessed(span)— elevaoutput.childTraceSpansachildren(sin duplicados) y los elimina del payload de salida.isSyntheticWorkflowWrapper(span)/getTraceSpanKey(span)/stripCustomToolPrefix(name)— los pequeños predicados con los que se construye el pipeline.
El mapeo de un resultado de ejecución concreto a tramos permanece en el lado del producto: en MyBotBox, apps/sat/lib/logs/execution/trace-spans/trace-spans.ts mantiene buildTraceSpans(result) (que conoce los BlockLogs del ejecutor y el predicado isWorkflowBlockType) y compone estas transformaciones.