MyBotBoxMyBotBox

@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/core

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 mediante getTraceSpanKey (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) — eleva output.childTraceSpans a children (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.

Ver también