{"version":3,"sources":["../src/inspector-runtime.ts","../src/inspector.ts","../src/context.ts","../src/terminal.ts","../src/trace-directory.ts","../src/inspect-run.ts","../src/maybe-inspect-run.ts"],"names":["storage","AsyncLocalStorage","invoke","durationMs","endTime","printPath"],"mappings":";;;;;;;;;AAwDA,SAAS,OAAU,EAAA,EAAsC;AACvD,EAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,EAAS,MAAA,KAAW;AACtC,IAAA,IAAI;AACF,MAAA,OAAA,CAAQ,QAAQ,EAAA,EAAI,CAAA,CAAE,IAAA,CAAK,SAAS,MAAM,CAAA;AAAA,IAC5C,SAAS,KAAA,EAAO;AACd,MAAA,MAAA,CAAO,KAAK,CAAA;AAAA,IACd;AAAA,EACF,CAAC,CAAA;AACH;AAEA,SAAS,eAAe,KAAA,EAAwB;AAC9C,EAAA,IAAI,iBAAiB,KAAA,IAAS,KAAA,CAAM,OAAA,CAAQ,IAAA,OAAW,EAAA,EAAI;AACzD,IAAA,OAAO,KAAA,CAAM,OAAA;AAAA,EACf;AACA,EAAA,IAAI,OAAO,KAAA,KAAU,QAAA,IAAY,KAAA,CAAM,IAAA,OAAW,EAAA,EAAI;AACpD,IAAA,OAAO,KAAA;AAAA,EACT;AACA,EAAA,OAAO,iCAAA;AACT;AAEA,IAAI,eAAA,GAAkB,CAAA;AAEtB,SAAS,eAAA,GAA0B;AACjC,EAAA,eAAA,IAAmB,CAAA;AACnB,EAAA,OAAO,CAAA,QAAA,EAAW,eAAA,CAAgB,QAAA,CAAS,EAAE,CAAC,CAAA,CAAA;AAChD;AAEA,SAAS,cAAc,KAAA,EAA8C;AACnE,EAAA,OAAO;AAAA,IACL,WAAW,KAAA,CAAM,SAAA;AAAA,IACjB,OAAO,KAAA,CAAM,KAAA;AAAA,IACb,SAAS,KAAA,CAAM,OAAA;AAAA,IACf,UAAU,KAAA,CAAM,QAAA;AAAA,IAChB,QAAQ,KAAA,CAAM,MAAA;AAAA,IACd,UAAU,KAAA,CAAM;AAAA,GAClB;AACF;AAEO,SAAS,sBAAA,CACd,OAAA,GAAmC,EAAC,EAClB;AAClB,EAAA,MAAMA,QAAAA,GAAU,IAAI,iBAAA,EAAgC;AACpD,EAAA,MAAM,OAAA,GAAU,QAAQ,OAAA,IAAW,IAAA;AACnC,EAAA,MAAM,YAAY,eAAA,EAAgB;AAClC,EAAA,MAAM,WAAA,GAAc,OAAA,CAAQ,WAAA,IAAe,yBAAA,EAA0B;AACrE,EAAA,IAAI,MAAA,GAAS,KAAA;AACb,EAAA,IAAI,qBAAA,GAAwB,CAAA;AAC5B,EAAA,IAAI,wBAAA;AAEJ,EAAA,SAAS,2BAA2B,KAAA,EAAsB;AACxD,IAAA,qBAAA,IAAyB,CAAA;AACzB,IAAA,wBAAA,GAA2B,eAAe,KAAK,CAAA;AAAA,EACjD;AAEA,EAAA,SAAS,YAAA,GAAyC;AAChD,IAAA,IAAI;AACF,MAAA,OAAOA,SAAQ,QAAA,EAAS;AAAA,IAC1B,SAAS,KAAA,EAAO;AACd,MAAA,0BAAA,CAA2B,KAAK,CAAA;AAChC,MAAA,OAAO,MAAA;AAAA,IACT;AAAA,EACF;AAEA,EAAA,MAAM,OAAA,GAA4B;AAAA,IAChC,SAAA;AAAA,IACA,OAAA;AAAA,IACA,cAAA,CAAe,SAAS,EAAA,EAAI;AAC1B,MAAA,IAAI,CAAC,OAAA,EAAS,OAAO,MAAA,CAAO,EAAE,CAAA;AAE9B,MAAA,MAAM,KAAA,GAAsB;AAAA,QAC1B,SAAA;AAAA,QACA,OAAO,OAAA,CAAQ,KAAA;AAAA,QACf,SAAS,OAAA,CAAQ,OAAA;AAAA,QACjB,UAAU,OAAA,CAAQ,QAAA;AAAA,QAClB,QAAQ,OAAA,CAAQ,MAAA;AAAA,QAChB,UAAU,OAAA,CAAQ,QAAA;AAAA,QAClB,WAAA;AAAA,QACA,YAAA,EAAc;AAAA,OAChB;AAEA,MAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,EAAS,MAAA,KAAW;AACtC,QAAAA,QAAAA,CAAQ,GAAA,CAAI,KAAA,EAAO,MAAM;AACvB,UAAA,MAAA,CAAO,EAAE,CAAA,CAAE,IAAA,CAAK,OAAA,EAAS,MAAM,CAAA;AAAA,QACjC,CAAC,CAAA;AAAA,MACH,CAAC,CAAA;AAAA,IACH,CAAA;AAAA,IACA,kBAAA,CAAmB,QAAQ,EAAA,EAAI;AAC7B,MAAA,IAAI,CAAC,OAAA,EAAS,OAAO,MAAA,CAAO,EAAE,CAAA;AAC9B,MAAA,MAAM,SAAS,YAAA,EAAa;AAC5B,MAAA,IAAI,CAAC,MAAA,EAAQ,OAAO,MAAA,CAAO,EAAE,CAAA;AAE7B,MAAA,MAAM,KAAA,GAAsB;AAAA,QAC1B,SAAA;AAAA,QACA,OAAO,MAAA,CAAO,KAAA;AAAA,QACd,SAAS,MAAA,CAAO,OAAA;AAAA,QAChB,UAAU,MAAA,CAAO,QAAA;AAAA,QACjB,QAAQ,MAAA,CAAO,MAAA;AAAA,QACf,UAAU,MAAA,CAAO,QAAA;AAAA,QACjB,aAAa,MAAA,CAAO,WAAA;AAAA,QACpB,aAAA,EAAe,MAAA;AAAA,QACf,YAAA,EAAc,OAAO,YAAA,GAAe;AAAA,OACtC;AAEA,MAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,EAAS,MAAA,KAAW;AACtC,QAAAA,QAAAA,CAAQ,GAAA,CAAI,KAAA,EAAO,MAAM;AACvB,UAAA,MAAA,CAAO,EAAE,CAAA,CAAE,IAAA,CAAK,OAAA,EAAS,MAAM,CAAA;AAAA,QACjC,CAAC,CAAA;AAAA,MACH,CAAC,CAAA;AAAA,IACH,CAAA;AAAA,IACA,iBAAA,GAAoB;AAClB,MAAA,MAAM,QAAQ,YAAA,EAAa;AAC3B,MAAA,OAAO,KAAA,GAAQ,aAAA,CAAc,KAAK,CAAA,GAAI,MAAA;AAAA,IACxC,CAAA;AAAA,IACA,6BAAA,GAAgC;AAC9B,MAAA,OAAO,0BAAA,CAA2B,YAAA,EAAa,EAAG,QAAQ,CAAA;AAAA,IAC5D,CAAA;AAAA,IACA,gBAAA,GAAmB;AACjB,MAAA,OAAO,cAAa,EAAG,aAAA;AAAA,IACzB,CAAA;AAAA,IACA,eAAA,GAAkB;AAChB,MAAA,MAAM,KAAA,GAAQ,cAAa,EAAG,YAAA;AAC9B,MAAA,OAAO,OAAO,KAAA,KAAU,QAAA,IAAY,OAAO,QAAA,CAAS,KAAK,IAAI,KAAA,GAAQ,CAAA;AAAA,IACvE,CAAA;AAAA,IACA,cAAA,GAAiB;AACf,MAAA,OAAO,WAAA;AAAA,IACT,CAAA;AAAA,IACA,MAAM,MAAM,KAAA,EAAO;AACjB,MAAA,IAAI,CAAC,OAAA,IAAW,MAAA,IAAU,CAAC,QAAQ,MAAA,EAAQ;AAC3C,MAAA,IAAI;AACF,QAAA,MAAM,IAAA,GAAO,oCAAA,CAAqC,KAAA,EAAO,WAAW,CAAA;AACpE,QAAA,IAAI,SAAS,KAAA,CAAA,EAAW;AACtB,UAAA,0BAAA,CAA2B,iCAAiC,CAAA;AAC5D,UAAA;AAAA,QACF;AACA,QAAA,MAAM,OAAA,CAAQ,MAAA,CAAO,KAAA,CAAM,IAAI,CAAA;AAAA,MACjC,SAAS,KAAA,EAAO;AACd,QAAA,0BAAA,CAA2B,KAAK,CAAA;AAAA,MAClC;AAAA,IACF,CAAA;AAAA,IACA,MAAM,KAAA,GAAQ;AACZ,MAAA,IAAI,CAAC,QAAQ,MAAA,EAAQ;AACrB,MAAA,IAAI;AACF,QAAA,MAAM,OAAA,CAAQ,OAAO,KAAA,IAAQ;AAAA,MAC/B,SAAS,KAAA,EAAO;AACd,QAAA,0BAAA,CAA2B,KAAK,CAAA;AAAA,MAClC;AAAA,IACF,CAAA;AAAA,IACA,MAAM,KAAA,GAAQ;AACZ,MAAA,IAAI,MAAA,EAAQ;AACZ,MAAA,IAAI;AACF,QAAA,MAAM,OAAA,CAAQ,QAAQ,KAAA,IAAQ;AAAA,MAChC,SAAS,KAAA,EAAO;AACd,QAAA,0BAAA,CAA2B,KAAK,CAAA;AAAA,MAClC,CAAA,SAAE;AACA,QAAA,MAAA,GAAS,IAAA;AAAA,MACX;AAAA,IACF,CAAA;AAAA,IACA,cAAA,GAAiB;AACf,MAAA,MAAM,WAAA,GAA2C;AAAA,QAC/C;AAAA,OACF;AACA,MAAA,IAAI,6BAA6B,MAAA,EAAW;AAC1C,QAAA,WAAA,CAAY,wBAAA,GAA2B,wBAAA;AAAA,MACzC;AACA,MAAA,MAAM,WAAA,GAAc,OAAA,CAAQ,MAAA,EAAQ,QAAA,IAAW;AAC/C,MAAA,IAAI,gBAAgB,MAAA,EAAW;AAC7B,QAAA,WAAA,CAAY,WAAA,GAAc,WAAA;AAAA,MAC5B;AACA,MAAA,OAAO,WAAA;AAAA,IACT;AAAA,GACF;AAEA,EAAA,OAAO,OAAA;AACT;;;AC5MA,IAAM,kCAAA,GACJ,KAAA;AAyFF,SAAS,aAAA,CAAc,MAAe,QAAA,EAA0B;AAC9D,EAAA,IAAI,OAAO,IAAA,KAAS,QAAA,IAAY,KAAK,IAAA,EAAK,KAAM,IAAI,OAAO,QAAA;AAC3D,EAAA,OAAO,YAAA,CAAa,IAAA,CAAK,IAAA,EAAK,EAAG,GAAG,CAAA;AACtC;AAEA,SAAS,MAAA,GAAiB;AACxB,EAAA,OAAA,iBAAO,IAAI,IAAA,EAAK,EAAE,WAAA,EAAY;AAChC;AAEA,SAAS,UAAA,CAAW,WAAmB,OAAA,EAAyB;AAC9D,EAAA,OAAO,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,IAAA,CAAK,KAAA,CAAM,OAAO,CAAA,GAAI,IAAA,CAAK,KAAA,CAAM,SAAS,CAAC,CAAA;AAChE;AAEA,SAAS,aAAA,CACP,MACA,QAAA,EACqC;AACrC,EAAA,IAAI,IAAA,KAAS,MAAA,IAAa,QAAA,KAAa,MAAA,EAAW,OAAO,MAAA;AACzD,EAAA,OAAO;AAAA,IACL,GAAI,QAAQ,EAAC;AAAA,IACb,GAAI,YAAY;AAAC,GACnB;AACF;AAEA,IAAM,0BAAA,GAA6B,GAAA;AACnC,IAAM,uBAAA,GAA0B,oBAAA;AAOhC,SAAS,gBAAgB,KAAA,EAAoC;AAC3D,EAAA,IAAI,OAAO,KAAA,KAAU,QAAA,IAAY,KAAA,KAAU,IAAA,EAAM;AAC/C,IAAA,OAAO,MAAA;AAAA,EACT;AACA,EAAA,MAAM,MAAA,GAAS,KAAA;AACf,EAAA,MAAM,MAAM,MAAA,CAAO,IAAA,KAAS,MAAA,GAAY,MAAA,CAAO,OAAO,MAAA,CAAO,MAAA;AAC7D,EAAA,IAAI,SAAA;AACJ,EAAA,IAAI,OAAO,GAAA,KAAQ,QAAA,IAAY,MAAA,CAAO,QAAA,CAAS,GAAG,CAAA,EAAG;AACnD,IAAA,SAAA,GAAY,OAAO,GAAG,CAAA;AAAA,EACxB,CAAA,MAAA,IAAW,OAAO,GAAA,KAAQ,QAAA,EAAU;AAClC,IAAA,SAAA,GAAY,IAAI,IAAA,EAAK;AAAA,EACvB;AACA,EAAA,IACE,SAAA,KAAc,MAAA,IACd,SAAA,CAAU,MAAA,KAAW,CAAA,IACrB,SAAA,CAAU,MAAA,GAAS,0BAAA,IACnB,CAAC,uBAAA,CAAwB,IAAA,CAAK,SAAS,CAAA,EACvC;AACA,IAAA,OAAO,MAAA;AAAA,EACT;AACA,EAAA,OAAO,SAAA;AACT;AAEA,SAAS,iBAAiB,KAAA,EAAuC;AAC/D,EAAA,IAAI,iBAAiB,KAAA,EAAO;AAC1B,IAAA,MAAM,SAAA,GAAmC;AAAA,MACvC,MAAM,KAAA,CAAM,IAAA;AAAA,MACZ,SAAS,KAAA,CAAM;AAAA,KACjB;AACA,IAAA,MAAM,IAAA,GAAO,gBAAgB,KAAK,CAAA;AAClC,IAAA,IAAI,SAAS,MAAA,EAAW;AACtB,MAAA,SAAA,CAAU,IAAA,GAAO,IAAA;AAAA,IACnB;AACA,IAAA,OAAO,SAAA;AAAA,EACT;AACA,EAAA,IAAI,OAAO,UAAU,QAAA,EAAU;AAC7B,IAAA,OAAO,EAAE,SAAS,KAAA,EAAM;AAAA,EAC1B;AACA,EAAA,IAAI,OAAO,KAAA,KAAU,QAAA,IAAY,KAAA,KAAU,IAAA,EAAM;AAC/C,IAAA,MAAM,MAAA,GAAS,KAAA;AACf,IAAA,MAAM,OAAA,GACJ,OAAO,MAAA,CAAO,OAAA,KAAY,QAAA,IAAY,OAAO,OAAA,CAAQ,MAAA,GAAS,CAAA,GAC1D,MAAA,CAAO,OAAA,GACP,eAAA;AACN,IAAA,MAAM,SAAA,GAAmC,EAAE,OAAA,EAAQ;AACnD,IAAA,IAAI,OAAO,MAAA,CAAO,IAAA,KAAS,YAAY,MAAA,CAAO,IAAA,CAAK,SAAS,CAAA,EAAG;AAC7D,MAAA,SAAA,CAAU,OAAO,MAAA,CAAO,IAAA;AAAA,IAC1B;AACA,IAAA,MAAM,IAAA,GAAO,gBAAgB,KAAK,CAAA;AAClC,IAAA,IAAI,SAAS,MAAA,EAAW;AACtB,MAAA,SAAA,CAAU,IAAA,GAAO,IAAA;AAAA,IACnB;AACA,IAAA,OAAO,SAAA;AAAA,EACT;AACA,EAAA,OAAO,EAAE,SAAS,eAAA,EAAgB;AACpC;AAEA,SAAS,eAAe,KAAA,EAAyC;AAC/D,EAAA,IAAI,KAAA,KAAU,IAAA,EAAM,OAAO,EAAE,MAAM,MAAA,EAAO;AAC1C,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG,OAAO,EAAE,IAAA,EAAM,OAAA,EAAS,MAAA,EAAQ,KAAA,CAAM,MAAA,EAAO;AAEvE,EAAA,IAAI,OAAO,UAAU,QAAA,EAAU,OAAO,EAAE,IAAA,EAAM,QAAA,EAAU,MAAA,EAAQ,KAAA,CAAM,MAAA,EAAO;AAC7E,EAAA,IAAI,OAAO,UAAU,QAAA,EAAU;AAC7B,IAAA,OAAO,EAAE,IAAA,EAAM,QAAA,EAAU,QAAQ,MAAA,CAAO,QAAA,CAAS,KAAK,CAAA,EAAE;AAAA,EAC1D;AACA,EAAA,IAAI,OAAO,KAAA,KAAU,QAAA,EAAU,OAAO,EAAE,MAAM,QAAA,EAAS;AACvD,EAAA,IAAI,OAAO,KAAA,KAAU,SAAA,EAAW,OAAO,EAAE,MAAM,SAAA,EAAU;AACzD,EAAA,IAAI,OAAO,KAAA,KAAU,WAAA,EAAa,OAAO,EAAE,MAAM,WAAA,EAAY;AAC7D,EAAA,IAAI,OAAO,KAAA,KAAU,QAAA,EAAU,OAAO,EAAE,MAAM,QAAA,EAAS;AACvD,EAAA,IAAI,OAAO,UAAU,UAAA,EAAY;AAC/B,IAAA,OAAO,EAAE,IAAA,EAAM,UAAA,EAAY,IAAA,EAAM,KAAA,CAAM,QAAQ,MAAA,EAAU;AAAA,EAC3D;AACA,EAAA,IAAI,OAAO,UAAU,QAAA,EAAU;AAC7B,IAAA,MAAM,MAAA,GAAS,KAAA;AACf,IAAA,IAAI,QAAA;AACJ,IAAA,IAAI;AACF,MAAA,QAAA,GAAW,MAAA,CAAO,IAAA,CAAK,MAAM,CAAA,CAAE,MAAA;AAAA,IACjC,CAAA,CAAA,MAAQ;AACN,MAAA,QAAA,GAAW,MAAA;AAAA,IACb;AACA,IAAA,OAAO;AAAA,MACL,IAAA,EAAM,QAAA;AAAA,MACN,eAAA,EAAiB,OAAO,WAAA,EAAa,IAAA;AAAA,MACrC,GAAI,QAAA,KAAa,MAAA,GAAY,EAAE,QAAA,KAAa;AAAC,KAC/C;AAAA,EACF;AACA,EAAA,OAAO,EAAE,IAAA,EAAM,OAAO,KAAA,EAAM;AAC9B;AAEA,SAAS,uBAAuB,KAAA,EAAyC;AACvE,EAAA,IAAI,iBAAiB,KAAA,EAAO;AAC1B,IAAA,OAAO,EAAE,IAAA,EAAM,OAAA,EAAS,IAAA,EAAM,MAAM,IAAA,EAAK;AAAA,EAC3C;AACA,EAAA,OAAO,eAAe,KAAK,CAAA;AAC7B;AAEA,SAAS,eAAe,IAAA,EAA6B;AACnD,EAAA,QAAQ,IAAA;AAAM,IACZ,KAAK,KAAA;AACH,MAAA,OAAO,KAAA;AAAA,IACT,KAAK,MAAA;AACH,MAAA,OAAO,MAAA;AAAA,IACT,KAAK,UAAA;AACH,MAAA,OAAO,UAAA;AAAA,IACT,KAAK,KAAA;AACH,MAAA,OAAO,KAAA;AAAA,IACT;AACE,MAAA,OAAO,OAAA;AAAA;AAEb;AAEO,SAAS,eAAA,CACd,OAAA,GAAkC,EAAC,EACxB;AACX,EAAA,MAAM,WAAA,GACJ,OAAA,CAAQ,WAAA,IACR,yBAAA,CAA0B;AAAA,IACxB,kBAAkB,OAAA,CAAQ;AAAA,GAC3B,CAAA;AACH,EAAA,MAAM,UAAU,sBAAA,CAAuB;AAAA,IACrC,SAAS,OAAA,CAAQ,OAAA;AAAA,IACjB,QAAQ,OAAA,CAAQ,MAAA;AAAA,IAChB;AAAA,GACD,CAAA;AAED,EAAA,eAAe,MAAM,KAAA,EAA6C;AAChE,IAAA,MAAM,IAAA,GAAO,oCAAA,CAAqC,KAAA,EAAO,WAAW,CAAA;AACpE,IAAA,IAAI,SAAS,MAAA,EAAW;AACtB,MAAA,MAAM,OAAA,CAAQ,MAAM,IAAI,CAAA;AAAA,IAC1B;AAAA,EACF;AAEA,EAAA,eAAe,GAAA,CACb,IAAA,EACA,EAAA,EACA,UAAA,GAAkC,EAAC,EACvB;AACZ,IAAA,IAAI,OAAO,OAAO,UAAA,EAAY;AAC5B,MAAA,MAAM,IAAI,UAAU,8CAA8C,CAAA;AAAA,IACpE;AACA,IAAA,IAAI,OAAA,CAAQ,YAAY,KAAA,EAAO;AAC7B,MAAA,OAAO,OAAA,CAAQ,OAAA,CAAQ,EAAA,EAAI,CAAA;AAAA,IAC7B;AAEA,IAAA,MAAM,OAAA,GAAU,aAAA,CAAc,IAAA,EAAM,aAAa,CAAA;AACjD,IAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,KAAA,IAAS,WAAA,EAAY;AAC9C,IAAA,MAAM,QAAA,GAAW,UAAA,CAAW,QAAA,IAAY,OAAA,CAAQ,YAAY,kBAAA,EAAmB;AAC/E,IAAA,MAAM,QAAA,GAAW,aAAA,CAAc,OAAA,CAAQ,QAAA,EAAU,WAAW,QAAQ,CAAA;AACpE,IAAA,MAAM,YAAY,MAAA,EAAO;AAEzB,IAAA,OAAO,OAAA,CAAQ,cAAA;AAAA,MACb;AAAA,QACE,KAAA;AAAA,QACA,OAAA;AAAA,QACA,QAAA;AAAA,QACA,MAAA,EAAQ,UAAA,CAAW,MAAA,IAAU,OAAA,CAAQ,MAAA,IAAU,IAAA;AAAA,QAC/C;AAAA,OACF;AAAA,MACA,YAAY;AACV,QAAA,MAAM,KAAA,CAAM;AAAA,UACV,aAAA,EAAe,kCAAA;AAAA,UACf,OAAA,EAAS,GAAG,KAAK,CAAA,QAAA,CAAA;AAAA,UACjB,KAAA;AAAA,UACA,IAAA,EAAM,KAAA;AAAA,UACN,IAAA,EAAM,OAAA;AAAA,UACN,MAAA,EAAQ,SAAA;AAAA,UACR,SAAA,EAAW,SAAA;AAAA,UACX,SAAA;AAAA,UACA,UAAA,EAAY,UAAA;AAAA,UACZ,MAAA,EAAQ,EAAE,IAAA,EAAM,QAAA,EAAU,MAAM,iBAAA,EAAkB;AAAA,UAClD,UAAA,EAAY;AAAA,YACV,WAAA,EAAa,aAAA;AAAA,YACb,GAAI,QAAA,KAAa,MAAA,GAAY,EAAE,QAAA,KAAa;AAAC;AAC/C,SACD,CAAA;AAED,QAAA,IAAI;AACF,UAAA,MAAM,MAAA,GAAS,MAAM,OAAA,CAAQ,OAAA,CAAQ,IAAI,CAAA;AACzC,UAAA,MAAM,UAAU,MAAA,EAAO;AACvB,UAAA,MAAM,KAAA,CAAM;AAAA,YACV,aAAA,EAAe,kCAAA;AAAA,YACf,OAAA,EAAS,GAAG,KAAK,CAAA,UAAA,CAAA;AAAA,YACjB,KAAA;AAAA,YACA,IAAA,EAAM,KAAA;AAAA,YACN,IAAA,EAAM,OAAA;AAAA,YACN,MAAA,EAAQ,IAAA;AAAA,YACR,SAAA,EAAW,OAAA;AAAA,YACX,OAAA;AAAA,YACA,UAAA,EAAY,UAAA,CAAW,SAAA,EAAW,OAAO,CAAA;AAAA,YACzC,UAAA,EAAY,UAAA;AAAA,YACZ,MAAA,EAAQ,EAAE,IAAA,EAAM,QAAA,EAAU,MAAM,iBAAA,EAAkB;AAAA,YAClD,UAAA,EAAY,EAAE,WAAA,EAAa,eAAA,EAAgB;AAAA,YAC3C,GAAI,OAAA,CAAQ,OAAA,EAAS,SAAA,KAAc,eAAA,GAC/B,EAAE,aAAA,EAAe,cAAA,CAAe,MAAM,CAAA,EAAE,GACxC;AAAC,WACN,CAAA;AACD,UAAA,OAAO,MAAA;AAAA,QACT,SAAS,KAAA,EAAO;AACd,UAAA,MAAM,UAAU,MAAA,EAAO;AACvB,UAAA,MAAM,KAAA,CAAM;AAAA,YACV,aAAA,EAAe,kCAAA;AAAA,YACf,OAAA,EAAS,GAAG,KAAK,CAAA,UAAA,CAAA;AAAA,YACjB,KAAA;AAAA,YACA,IAAA,EAAM,KAAA;AAAA,YACN,IAAA,EAAM,OAAA;AAAA,YACN,MAAA,EAAQ,OAAA;AAAA,YACR,SAAA,EAAW,OAAA;AAAA,YACX,OAAA;AAAA,YACA,UAAA,EAAY,UAAA,CAAW,SAAA,EAAW,OAAO,CAAA;AAAA,YACzC,UAAA,EAAY,UAAA;AAAA,YACZ,MAAA,EAAQ,EAAE,IAAA,EAAM,QAAA,EAAU,MAAM,iBAAA,EAAkB;AAAA,YAClD,UAAA,EAAY,EAAE,WAAA,EAAa,eAAA,EAAgB;AAAA,YAC3C,GAAI,OAAA,CAAQ,OAAA,EAAS,OAAA,KAAY,eAAA,GAC7B,EAAE,aAAA,EAAe,sBAAA,CAAuB,KAAK,CAAA,EAAE,GAC/C,EAAC;AAAA,YACL,KAAA,EAAO,iBAAiB,KAAK;AAAA,WAC9B,CAAA;AACD,UAAA,MAAM,KAAA;AAAA,QACR;AAAA,MACF;AAAA,KACF;AAAA,EACF;AAEA,EAAA,eAAe,IAAA,CACb,IAAA,EACA,EAAA,EACA,WAAA,GAAoC,EAAC,EACzB;AACZ,IAAA,IAAI,OAAO,OAAO,UAAA,EAAY;AAC5B,MAAA,MAAM,IAAI,UAAU,+CAA+C,CAAA;AAAA,IACrE;AACA,IAAA,IAAI,QAAQ,OAAA,KAAY,KAAA,IAAS,CAAC,OAAA,CAAQ,mBAAkB,EAAG;AAC7D,MAAA,OAAO,OAAA,CAAQ,OAAA,CAAQ,EAAA,EAAI,CAAA;AAAA,IAC7B;AAEA,IAAA,MAAM,OAAA,GAAU,QAAQ,iBAAA,EAAkB;AAC1C,IAAA,MAAM,QAAA,GAAW,aAAA,CAAc,IAAA,EAAM,cAAc,CAAA;AACnD,IAAA,MAAM,SAAS,YAAA,EAAa;AAC5B,IAAA,MAAM,QAAA,GAAW,QAAQ,gBAAA,EAAiB;AAC1C,IAAA,MAAM,QAAA,GAAW,YAAY,IAAA,IAAQ,OAAA;AACrC,IAAA,MAAM,YAAY,MAAA,EAAO;AACzB,IAAA,MAAM,UAAA,GAAa;AAAA,MACjB,WAAA,EAAa,cAAA;AAAA,MACb,MAAA;AAAA,MACA,QAAA;AAAA,MACA,GAAI,YAAY,QAAA,KAAa,MAAA,GACzB,EAAE,QAAA,EAAU,WAAA,CAAY,QAAA,EAAS,GACjC;AAAC,KACP;AAEA,IAAA,MAAM,KAAA,CAAM;AAAA,MACV,aAAA,EAAe,kCAAA;AAAA,MACf,OAAA,EAAS,GAAG,MAAM,CAAA,QAAA,CAAA;AAAA,MAClB,OAAO,OAAA,CAAQ,KAAA;AAAA,MACf,GAAI,QAAA,KAAa,MAAA,GAAY,EAAE,QAAA,KAAa,EAAC;AAAA,MAC7C,IAAA,EAAM,eAAe,QAAQ,CAAA;AAAA,MAC7B,IAAA,EAAM,QAAA;AAAA,MACN,MAAA,EAAQ,SAAA;AAAA,MACR,SAAA,EAAW,SAAA;AAAA,MACX,SAAA;AAAA,MACA,UAAA,EAAY,UAAA;AAAA,MACZ,MAAA,EAAQ,EAAE,IAAA,EAAM,QAAA,EAAU,MAAM,iBAAA,EAAkB;AAAA,MAClD;AAAA,KACD,CAAA;AAED,IAAA,OAAO,OAAA,CAAQ,kBAAA,CAAmB,MAAA,EAAQ,YAAY;AACpD,MAAA,IAAI;AACF,QAAA,MAAM,MAAA,GAAS,MAAM,OAAA,CAAQ,OAAA,CAAQ,IAAI,CAAA;AACzC,QAAA,MAAM,UAAU,MAAA,EAAO;AACvB,QAAA,MAAM,KAAA,CAAM;AAAA,UACV,aAAA,EAAe,kCAAA;AAAA,UACf,OAAA,EAAS,GAAG,MAAM,CAAA,UAAA,CAAA;AAAA,UAClB,OAAO,OAAA,CAAQ,KAAA;AAAA,UACf,IAAA,EAAM,eAAe,QAAQ,CAAA;AAAA,UAC7B,IAAA,EAAM,QAAA;AAAA,UACN,MAAA,EAAQ,IAAA;AAAA,UACR,SAAA,EAAW,OAAA;AAAA,UACX,OAAA;AAAA,UACA,UAAA,EAAY,UAAA,CAAW,SAAA,EAAW,OAAO,CAAA;AAAA,UACzC,UAAA,EAAY,UAAA;AAAA,UACZ,MAAA,EAAQ,EAAE,IAAA,EAAM,QAAA,EAAU,MAAM,iBAAA,EAAkB;AAAA,UAClD,UAAA,EAAY;AAAA,YACV,WAAA,EAAa,gBAAA;AAAA,YACb,MAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA,GAAI,OAAA,CAAQ,OAAA,EAAS,SAAA,KAAc,eAAA,GAC/B,EAAE,aAAA,EAAe,cAAA,CAAe,MAAM,CAAA,EAAE,GACxC;AAAC,SACN,CAAA;AACD,QAAA,OAAO,MAAA;AAAA,MACT,SAAS,KAAA,EAAO;AACd,QAAA,MAAM,UAAU,MAAA,EAAO;AACvB,QAAA,MAAM,KAAA,CAAM;AAAA,UACV,aAAA,EAAe,kCAAA;AAAA,UACf,OAAA,EAAS,GAAG,MAAM,CAAA,UAAA,CAAA;AAAA,UAClB,OAAO,OAAA,CAAQ,KAAA;AAAA,UACf,IAAA,EAAM,eAAe,QAAQ,CAAA;AAAA,UAC7B,IAAA,EAAM,QAAA;AAAA,UACN,MAAA,EAAQ,OAAA;AAAA,UACR,SAAA,EAAW,OAAA;AAAA,UACX,OAAA;AAAA,UACA,UAAA,EAAY,UAAA,CAAW,SAAA,EAAW,OAAO,CAAA;AAAA,UACzC,UAAA,EAAY,UAAA;AAAA,UACZ,MAAA,EAAQ,EAAE,IAAA,EAAM,QAAA,EAAU,MAAM,iBAAA,EAAkB;AAAA,UAClD,UAAA,EAAY;AAAA,YACV,WAAA,EAAa,gBAAA;AAAA,YACb,MAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA,GAAI,OAAA,CAAQ,OAAA,EAAS,OAAA,KAAY,eAAA,GAC7B,EAAE,aAAA,EAAe,sBAAA,CAAuB,KAAK,CAAA,EAAE,GAC/C,EAAC;AAAA,UACL,KAAA,EAAO,iBAAiB,KAAK;AAAA,SAC9B,CAAA;AACD,QAAA,MAAM,KAAA;AAAA,MACR;AAAA,IACF,CAAC,CAAA;AAAA,EACH;AAEA,EAAA,MAAM,SAAA,GAAuB;AAAA,IAC3B,OAAA;AAAA,IACA,GAAA;AAAA,IACA,IAAA;AAAA,IACA,IAAA,CAAK,IAAA,EAAM,EAAA,EAAI,WAAA,EAAa;AAC1B,MAAA,MAAM,QAAA,GAAW,aAAA,CAAc,IAAA,EAAM,cAAc,CAAA;AACnD,MAAA,OAAO,IAAA,CAAK,CAAA,KAAA,EAAQ,QAAQ,CAAA,CAAA,EAAI,EAAA,EAAI;AAAA,QAClC,GAAG,WAAA;AAAA,QACH,IAAA,EAAM,MAAA;AAAA,QACN,QAAA,EAAU;AAAA,UACR,GAAI,WAAA,EAAa,QAAA,IAAY,EAAC;AAAA,UAC9B;AAAA;AACF,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IACA,GAAA,CAAI,IAAA,EAAM,EAAA,EAAI,UAAA,EAAY;AACxB,MAAA,MAAM,KAAA,GAAQ,aAAA,CAAc,IAAA,EAAM,eAAe,CAAA;AACjD,MAAA,OAAO,IAAA,CAAK,CAAA,IAAA,EAAO,KAAK,CAAA,CAAA,EAAI,EAAA,EAAI;AAAA,QAC9B,GAAG,UAAA;AAAA,QACH,IAAA,EAAM,KAAA;AAAA,QACN,QAAA,EAAU;AAAA,UACR,GAAI,UAAA,EAAY,QAAA,IAAY,EAAC;AAAA,UAC7B;AAAA;AACF,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IACA,OAAA,CAAQ,IAAA,EAAM,EAAA,EAAI,cAAA,EAAgB;AAChC,MAAA,OAAO,OAAA,GAAU,IAAA,KACf,IAAA,CAAK,IAAA,EAAM,MAAM,OAAA,CAAQ,OAAA,CAAQ,EAAA,CAAG,GAAG,IAAI,CAAC,CAAA,EAAG,cAAc,CAAA;AAAA,IACjE,CAAA;AAAA,IACA,MAAM,cAAA,CAAe,IAAA,EAAM,cAAA,EAAgB;AACzC,MAAA,MAAM,GAAA,GAAM,QAAQ,iBAAA,EAAkB;AACtC,MAAA,IAAI,CAAC,GAAA,EAAK;AACV,MAAA,IAAI,UAAA;AACJ,MAAA,IAAI;AACF,QAAA,UAAA,GAAa,4BAAA,CAA6B,MAAM,cAAc,CAAA;AAAA,MAChE,CAAA,CAAA,MAAQ;AACN,QAAA;AAAA,MACF;AACA,MAAA,MAAM,YAAY,YAAA,EAAa;AAC/B,MAAA,MAAM,QAAA,GAAW,QAAQ,gBAAA,EAAiB;AAC1C,MAAA,MAAM,KAAA,CAAM;AAAA,QACV,aAAA,EAAe,kCAAA;AAAA,QACf,OAAA,EAAS,SAAA;AAAA,QACT,OAAO,GAAA,CAAI,KAAA;AAAA,QACX,GAAI,QAAA,KAAa,MAAA,GAAY,EAAE,QAAA,KAAa,EAAC;AAAA,QAC7C,IAAA,EAAM,SAAA;AAAA,QACN,MAAM,UAAA,CAAW,IAAA;AAAA,QACjB,MAAA,EAAQ,UAAA,CAAW,MAAA,KAAW,QAAA,GAAW,OAAA,GAAU,IAAA;AAAA,QACnD,WAAW,IAAI,IAAA,CAAK,UAAA,CAAW,UAAU,EAAE,WAAA,EAAY;AAAA,QACvD,UAAA,EAAY,UAAA;AAAA,QACZ,MAAA,EAAQ,EAAE,IAAA,EAAM,QAAA,EAAU,MAAM,iBAAA,EAAkB;AAAA,QAClD,UAAA,EAAY;AAAA,UACV,WAAA,EAAa,kBAAA;AAAA,UACb,SAAA;AAAA,UACA,eAAe,UAAA,CAAW,MAAA;AAAA,UAC1B,aAAa,UAAA,CAAW,WAAA;AAAA,UACxB,GAAI,WAAW,MAAA,KAAW,MAAA,GAAY,EAAE,MAAA,EAAQ,UAAA,CAAW,MAAA,EAAO,GAAI,EAAC;AAAA,UACvE,GAAI,WAAW,MAAA,KAAW,MAAA,GAAY,EAAE,MAAA,EAAQ,UAAA,CAAW,MAAA,EAAO,GAAI,EAAC;AAAA,UACvE,GAAI,WAAW,QAAA,KAAa,MAAA,GAAY,EAAE,QAAA,EAAU,UAAA,CAAW,QAAA,EAAS,GAAI,EAAC;AAAA,UAC7E,YAAY,IAAI,IAAA,CAAK,UAAA,CAAW,UAAU,EAAE,WAAA;AAAY,SAC1D;AAAA,QACA,GAAI,WAAW,MAAA,KAAW,MAAA,GAAY,EAAE,aAAA,EAAe,UAAA,CAAW,MAAA,EAAO,GAAI;AAAC,OAC/E,CAAA;AAAA,IACH,CAAA;AAAA,IACA,cAAA,GAAiB;AACf,MAAA,OAAO,QAAQ,cAAA,EAAe;AAAA,IAChC,CAAA;AAAA,IACA,KAAA,GAAQ;AACN,MAAA,OAAO,QAAQ,KAAA,EAAM;AAAA,IACvB,CAAA;AAAA,IACA,KAAA,GAAQ;AACN,MAAA,OAAO,QAAQ,KAAA,EAAM;AAAA,IACvB;AAAA,GACF;AAEA,EAAA,OAAO,SAAA;AACT;ACjhBA,IAAM,OAAA,GAAU,IAAIC,iBAAAA,EAA2C;AAE/D,SAAS,gBAAgB,GAAA,EAAgD;AACvE,EAAA,OAAO;AAAA,IACL,OAAO,GAAA,CAAI,KAAA;AAAA,IACX,SAAS,GAAA,CAAI,OAAA;AAAA,IACb,UAAU,GAAA,CAAI,QAAA;AAAA,IACd,QAAQ,GAAA,CAAI,MAAA;AAAA,IACZ,UAAU,GAAA,CAAI;AAAA,GAChB;AACF;AAEA,SAASC,QAAU,EAAA,EAAsC;AACvD,EAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,EAAS,MAAA,KAAW;AACtC,IAAA,IAAI;AACF,MAAA,OAAA,CAAQ,QAAQ,EAAA,EAAI,CAAA,CAAE,IAAA,CAAK,SAAS,MAAM,CAAA;AAAA,IAC5C,SAAS,CAAA,EAAG;AACV,MAAA,MAAA,CAAO,CAAC,CAAA;AAAA,IACV;AAAA,EACF,CAAC,CAAA;AACH;AAGO,SAAS,iBAAA,GAAkD;AAChE,EAAA,IAAI;AACF,IAAA,MAAM,CAAA,GAAI,QAAQ,QAAA,EAAS;AAC3B,IAAA,IAAI,CAAC,GAAG,OAAO,KAAA,CAAA;AACf,IAAA,OAAO,gBAAgB,CAAC,CAAA;AAAA,EAC1B,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,MAAA;AAAA,EACT;AACF;AAGO,SAAS,eAAA,GAAsC;AACpD,EAAA,IAAI;AACF,IAAA,OAAO,OAAA,CAAQ,UAAS,EAAG,KAAA;AAAA,EAC7B,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,MAAA;AAAA,EACT;AACF;AAMO,SAAS,6BAAA,GAEF;AACZ,EAAA,IAAI;AACF,IAAA,OAAO,0BAAA,CAA2B,OAAA,CAAQ,QAAA,EAAS,EAAG,QAAQ,CAAA;AAAA,EAChE,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,MAAA;AAAA,EACT;AACF;AAGO,SAAS,iBAAA,GAAwC;AACtD,EAAA,IAAI;AACF,IAAA,OAAO,OAAA,CAAQ,UAAS,EAAG,OAAA;AAAA,EAC7B,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,MAAA;AAAA,EACT;AACF;AAMO,SAAS,gBAAA,GAAuC;AACrD,EAAA,IAAI;AACF,IAAA,OAAO,OAAA,CAAQ,UAAS,EAAG,aAAA;AAAA,EAC7B,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,MAAA;AAAA,EACT;AACF;AAGO,SAAS,eAAA,GAAsC;AACpD,EAAA,OAAO,gBAAA,EAAiB;AAC1B;AAMO,SAAS,eAAA,GAA0B;AACxC,EAAA,IAAI;AACF,IAAA,MAAM,CAAA,GAAI,OAAA,CAAQ,QAAA,EAAS,EAAG,YAAA;AAC9B,IAAA,OAAO,OAAO,CAAA,KAAM,QAAA,IAAY,OAAO,QAAA,CAAS,CAAC,IAAI,CAAA,GAAI,CAAA;AAAA,EAC3D,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,CAAA;AAAA,EACT;AACF;AAEO,SAAS,gBAAA,GAA4B;AAC1C,EAAA,IAAI;AACF,IAAA,OAAO,OAAA,CAAQ,UAAS,KAAM,KAAA,CAAA;AAAA,EAChC,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,KAAA;AAAA,EACT;AACF;AAEO,SAAS,sBAAA,GAA6C;AAC3D,EAAA,IAAI;AACF,IAAA,OAAO,OAAA,CAAQ,UAAS,EAAG,QAAA;AAAA,EAC7B,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,MAAA;AAAA,EACT;AACF;AAEO,SAAS,eAAA,GAA2B;AACzC,EAAA,IAAI;AACF,IAAA,MAAM,CAAA,GAAI,QAAQ,QAAA,EAAS;AAC3B,IAAA,OAAO,CAAA,GAAI,EAAE,MAAA,GAAS,KAAA;AAAA,EACxB,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,KAAA;AAAA,EACT;AACF;AAGO,SAAS,yBAAA,GAA4D;AAC1E,EAAA,IAAI;AACF,IAAA,OAAO,OAAA,CAAQ,UAAS,EAAG,WAAA;AAAA,EAC7B,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,MAAA;AAAA,EACT;AACF;AAMO,SAAS,cAAA,CACd,OAAA,EACA,EAAA,EACA,WAAA,GAAkC,2BAA0B,EAChD;AACZ,EAAA,MAAM,OAAA,GAAmC;AAAA,IACvC,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,SAAS,OAAA,CAAQ,OAAA;AAAA,IACjB,UAAU,OAAA,CAAQ,QAAA;AAAA,IAClB,QAAQ,OAAA,CAAQ,MAAA;AAAA,IAChB,UAAU,OAAA,CAAQ,QAAA;AAAA,IAClB,WAAA;AAAA,IACA,YAAA,EAAc;AAAA,GAChB;AAEA,EAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,EAAS,MAAA,KAAW;AACtC,IAAA,OAAA,CAAQ,GAAA,CAAI,SAAS,MAAM;AACzB,MAAA,IAAI;AACF,QAAA,OAAA,CAAQ,QAAQ,EAAA,EAAI,CAAA,CAAE,IAAA,CAAK,SAAS,MAAM,CAAA;AAAA,MAC5C,SAAS,CAAA,EAAG;AACV,QAAA,MAAA,CAAO,CAAC,CAAA;AAAA,MACV;AAAA,IACF,CAAC,CAAA;AAAA,EACH,CAAC,CAAA;AACH;AAMO,SAAS,kBAAA,CACd,QACA,EAAA,EACY;AACZ,EAAA,IAAI,MAAA;AACJ,EAAA,IAAI;AACF,IAAA,MAAA,GAAS,QAAQ,QAAA,EAAS;AAAA,EAC5B,CAAA,CAAA,MAAQ;AACN,IAAA,MAAA,GAAS,MAAA;AAAA,EACX;AAEA,EAAA,IAAI,CAAC,MAAA,EAAQ;AACX,IAAA,OAAOA,QAAO,EAAE,CAAA;AAAA,EAClB;AAEA,EAAA,MAAM,OAAA,GAAmC;AAAA,IACvC,OAAO,MAAA,CAAO,KAAA;AAAA,IACd,SAAS,MAAA,CAAO,OAAA;AAAA,IAChB,UAAU,MAAA,CAAO,QAAA;AAAA,IACjB,QAAQ,MAAA,CAAO,MAAA;AAAA,IACf,UAAU,MAAA,CAAO,QAAA;AAAA,IACjB,aAAa,MAAA,CAAO,WAAA;AAAA,IACpB,aAAA,EAAe,MAAA;AAAA,IACf,YAAA,EAAc,OAAO,YAAA,GAAe;AAAA,GACtC;AAEA,EAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,EAAS,MAAA,KAAW;AACtC,IAAA,OAAA,CAAQ,GAAA,CAAI,SAAS,MAAM;AACzB,MAAA,IAAI;AACF,QAAA,OAAA,CAAQ,QAAQ,EAAA,EAAI,CAAA,CAAE,IAAA,CAAK,SAAS,MAAM,CAAA;AAAA,MAC5C,SAAS,CAAA,EAAG;AACV,QAAA,MAAA,CAAO,CAAC,CAAA;AAAA,MACV;AAAA,IACF,CAAC,CAAA;AAAA,EACH,CAAC,CAAA;AACH;;;AC9MO,IAAM,eAAA,GAAkB;AAGxB,IAAM,wBAAA,GAA2B;AAGjC,IAAM,kBAAA,GAAqB;AAElC,SAAS,eAAe,KAAA,EAAuB;AAC7C,EAAA,IAAI,CAAC,MAAA,CAAO,QAAA,CAAS,KAAK,CAAA,IAAK,QAAQ,CAAA,EAAG;AACxC,IAAA,OAAO,CAAA;AAAA,EACT;AACA,EAAA,OAAO,KAAK,GAAA,CAAI,IAAA,CAAK,KAAA,CAAM,KAAK,GAAG,kBAAkB,CAAA;AACvD;AAEA,SAAS,SAAA,CAAU,OAAO,EAAA,EAAU;AAClC,EAAA,IAAI;AACF,IAAA,OAAA,CAAQ,IAAI,IAAI,CAAA;AAAA,EAClB,CAAA,CAAA,MAAQ;AAAA,EAER;AACF;AAGO,SAAS,UAAU,KAAA,EAAuB;AAC/C,EAAA,OAAO,eAAA,CAAgB,MAAA,CAAO,cAAA,CAAe,KAAK,CAAC,CAAA;AACrD;AAGO,SAAS,mBAAmB,IAAA,EAAsB;AACvD,EAAA,IAAI,OAAO,IAAA,KAAS,QAAA,IAAY,IAAA,CAAK,IAAA,OAAW,EAAA,EAAI;AAClD,IAAA,OAAO,SAAA;AAAA,EACT;AACA,EAAA,OAAO,YAAA,CAAa,MAAM,wBAAwB,CAAA;AACpD;AAEA,SAAS,cAAc,MAAA,EAAwC;AAC7D,EAAA,IAAI,MAAA,KAAW,SAAA,EAAW,OAAO,cAAA,CAAM,MAAM,QAAG,CAAA;AAChD,EAAA,IAAI,MAAA,KAAW,OAAA,EAAS,OAAO,cAAA,CAAM,IAAI,QAAG,CAAA;AAC5C,EAAA,OAAO,cAAA,CAAM,OAAO,QAAG,CAAA;AACzB;AAGO,SAAS,cAAA,CACd,IAAA,EACAC,WAAAA,EACA,MAAA,EACA,KAAA,EACQ;AACR,EAAA,IAAI;AACF,IAAA,MAAM,EAAA,GAAK,mBAAmB,IAAI,CAAA;AAClC,IAAA,MAAM,GAAA,GAAM,SAAA,CAAU,KAAA,IAAS,CAAC,CAAA;AAChC,IAAA,IAAI,MAAA,KAAW,SAAA,IAAaA,WAAAA,KAAe,KAAA,CAAA,EAAW;AACpD,MAAA,OAAO,CAAA,EAAG,GAAG,CAAA,EAAG,cAAA,CAAM,OAAO,QAAG,CAAC,IAAI,EAAE,CAAA,CAAA;AAAA,IACzC;AACA,IAAA,MAAM,MAAA,GACJA,WAAAA,KAAe,KAAA,CAAA,IAAa,MAAA,CAAO,SAASA,WAAoB,CAAA;AAClE,IAAA,MAAM,GAAA,GAAM,MAAA,GAAS,cAAA,CAAeA,WAAoB,CAAA,GAAI,KAAA,CAAA;AAC5D,IAAA,IAAI,WAAW,SAAA,EAAW;AACxB,MAAA,OAAO,GAAA,KAAQ,SACX,CAAA,EAAG,GAAG,GAAG,cAAA,CAAM,MAAA,CAAO,QAAG,CAAC,CAAA,CAAA,EAAI,EAAE,KAAK,GAAG,CAAA,CAAA,CAAA,GACxC,GAAG,GAAG,CAAA,EAAG,eAAM,MAAA,CAAO,QAAG,CAAC,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA;AAAA,IACtC;AACA,IAAA,IAAI,CAAC,MAAA,IAAU,GAAA,KAAQ,KAAA,CAAA,EAAW;AAChC,MAAA,OAAO,CAAA,EAAG,GAAG,CAAA,EAAG,cAAA,CAAM,OAAO,QAAG,CAAC,IAAI,EAAE,CAAA,CAAA;AAAA,IACzC;AACA,IAAA,IAAI,WAAW,SAAA,EAAW;AACxB,MAAA,OAAO,CAAA,EAAG,GAAG,CAAA,EAAG,aAAA,CAAc,SAAS,CAAC,CAAA,CAAA,EAAI,EAAE,CAAA,EAAA,EAAK,GAAG,CAAA,CAAA,CAAA;AAAA,IACxD;AACA,IAAA,OAAO,CAAA,EAAG,GAAG,CAAA,EAAG,aAAA,CAAc,OAAO,CAAC,CAAA,CAAA,EAAI,EAAE,CAAA,EAAA,EAAK,GAAG,CAAA,CAAA,CAAA;AAAA,EACtD,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,EAAA;AAAA,EACT;AACF;AAGO,SAAS,eAAA,CAAgB,OAAkB,KAAA,EAAwB;AACxE,EAAA,IAAI;AACF,IAAA,MAAM,MACJ,OAAO,KAAA,CAAM,OAAA,KAAY,QAAA,GAAW,MAAM,OAAA,GAAU,EAAA;AACtD,IAAA,MAAM,GAAA,GAAM,SAAA,CAAA,CAAW,KAAA,IAAS,CAAA,IAAK,CAAC,CAAA;AACtC,IAAA,OAAO,CAAA,EAAG,GAAG,CAAA,OAAA,EAAU,GAAG,CAAA,CAAA;AAAA,EAC5B,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,EAAA;AAAA,EACT;AACF;AAGO,SAAS,gBAAA,CACdA,WAAAA,EACA,MAAA,EACA,aAAA,EACU;AACV,EAAA,IAAI;AACF,IAAA,MAAM,GAAA,GAAM,OAAO,QAAA,CAASA,WAAU,IAClC,cAAA,CAAeA,WAAU,CAAA,GACzB,cAAA,CAAe,CAAC,CAAA;AACpB,IAAA,MAAM,OACJ,MAAA,KAAW,OAAA,GAAU,aAAa,GAAG,CAAA,CAAA,GAAK,gBAAgB,GAAG,CAAA,CAAA;AAC/D,IAAA,MAAM,KAAA,GAAQ,CAAC,IAAI,CAAA;AACnB,IAAA,IAAI,aAAA,KAAkB,KAAA,CAAA,IAAa,aAAA,CAAc,IAAA,OAAW,EAAA,EAAI;AAC9D,MAAA,KAAA,CAAM,IAAA,CAAK,CAAA,OAAA,EAAU,aAAa,CAAA,CAAE,CAAA;AAAA,IACtC;AACA,IAAA,OAAO,KAAA;AAAA,EACT,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,EAAC;AAAA,EACV;AACF;AAGO,SAAS,aAAA,CAAc,OAAe,IAAA,EAAoB;AAC/D,EAAA,IAAI,iBAAgB,EAAG;AACvB,EAAA,IAAI;AACF,IAAA,SAAA,CAAU,EAAE,CAAA;AACZ,IAAA,MAAM,SAAS,CAAA,EAAG,cAAA,CAAM,IAAA,CAAK,IAAA,CAAK,yBAAkB,CAAC,CAAA,CAAA,EAAI,kBAAA,CAAmB,IAAI,CAAC,CAAA,CAAA,EAAI,cAAA,CAAM,IAAI,CAAA,CAAA,EAAI,KAAK,GAAG,CAAC,CAAA,CAAA;AAC5G,IAAA,SAAA,CAAU,MAAM,CAAA;AAAA,EAClB,CAAA,CAAA,MAAQ;AAAA,EAER;AACF;AAGO,SAAS,cAAA,CAAe,IAAA,EAAc,KAAA,GAAQ,CAAA,EAAS;AAC5D,EAAA,IAAI,iBAAgB,EAAG;AACvB,EAAA,IAAI;AACF,IAAA,SAAA,CAAU,cAAA,CAAe,IAAA,EAAM,KAAA,CAAA,EAAW,SAAA,EAAW,KAAK,CAAC,CAAA;AAAA,EAC7D,CAAA,CAAA,MAAQ;AAAA,EAER;AACF;AAGO,SAAS,iBAAA,CACd,IAAA,EACAA,WAAAA,EACA,MAAA,EACA,QAAQ,CAAA,EACF;AACN,EAAA,IAAI,iBAAgB,EAAG;AACvB,EAAA,IAAI;AACF,IAAA,SAAA,CAAU,cAAA,CAAe,IAAA,EAAMA,WAAAA,EAAY,MAAA,EAAQ,KAAK,CAAC,CAAA;AAAA,EAC3D,CAAA,CAAA,MAAQ;AAAA,EAER;AACF;AAGO,SAAS,UAAA,CAAW,KAAA,EAAkB,KAAA,GAAQ,CAAA,EAAS;AAC5D,EAAA,IAAI,iBAAgB,EAAG;AACvB,EAAA,IAAI;AACF,IAAA,SAAA,CAAU,eAAA,CAAgB,KAAA,EAAO,KAAK,CAAC,CAAA;AAAA,EACzC,CAAA,CAAA,MAAQ;AAAA,EAER;AACF;AAGO,SAAS,gBAAA,CACd,KAAA,EACA,MAAA,EACAA,WAAAA,EACA,QACA,aAAA,EACM;AACN,EAAA,IAAI,iBAAgB,EAAG;AACvB,EAAA,IAAI;AACF,IAAA,MAAM,KAAA,GAAQ,gBAAA,CAAiBA,WAAAA,EAAY,MAAA,EAAQ,aAAa,CAAA;AAChE,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,KAAA,CAAM,QAAQ,CAAA,EAAA,EAAK;AACrC,MAAA,MAAM,IAAA,GAAO,MAAM,CAAC,CAAA;AACpB,MAAA,IAAI,MAAM,CAAA,EAAG;AACX,QAAA,MAAM,KAAA,GACJ,WAAW,OAAA,GACP,cAAA,CAAM,MACN,MAAA,KAAW,SAAA,GACT,cAAA,CAAM,MAAA,GACN,cAAA,CAAM,KAAA;AACd,QAAA,SAAA,CAAU,KAAA,CAAM,IAAI,CAAC,CAAA;AAAA,MACvB,CAAA,MAAO;AACL,QAAA,SAAA,CAAU,cAAA,CAAM,GAAA,CAAI,IAAI,CAAC,CAAA;AAAA,MAC3B;AAAA,IACF;AAAA,EACF,CAAA,CAAA,MAAQ;AAAA,EAER;AACF;AAGO,SAAS,cAAc,QAAA,EAAwB;AACpD,EAAA,IAAI,iBAAgB,EAAG;AACvB,EAAA,IAAI;AACF,IAAA,SAAA,CAAU,CAAA,WAAA,EAAc,kBAAA,CAAmB,QAAQ,CAAC,CAAA,CAAE,CAAA;AAAA,EACxD,CAAA,CAAA,MAAQ;AAAA,EAER;AACF;AC/LO,SAAS,eAAA,CAAgB,OAAA,GAAiC,EAAC,EAAW;AAC3E,EAAA,IAAI,OAAO,QAAQ,GAAA,KAAQ,QAAA,IAAY,QAAQ,GAAA,CAAI,IAAA,OAAW,EAAA,EAAI;AAChE,IAAA,OAAO,OAAA,CAAQ,IAAI,IAAA,EAAK;AAAA,EAC1B;AACA,EAAA,MAAM,MAAA,GAAS,QAAQ,GAAA,CAAI,uBAAA;AAC3B,EAAA,IAAI,OAAO,MAAA,KAAW,QAAA,IAAY,MAAA,CAAO,IAAA,OAAW,EAAA,EAAI;AACtD,IAAA,OAAO,OAAO,IAAA,EAAK;AAAA,EACrB;AACA,EAAA,OAAO,kBAAA,EAAmB;AAC5B;AAEO,IAAM,iBAAN,MAAqB;AAAA,EACjB,IAAA;AAAA,EAET,WAAA,CAAY,OAAA,GAAiC,EAAC,EAAG;AAC/C,IAAA,IAAA,CAAK,IAAA,GAAO,gBAAgB,OAAO,CAAA;AAAA,EACrC;AAAA,EAEA,QAAQ,QAAA,EAA2B;AACjC,IAAA,OAAO,WAAW,IAAA,CAAK,IAAA,CAAK,KAAK,IAAA,EAAM,QAAQ,IAAI,IAAA,CAAK,IAAA;AAAA,EAC1D;AAAA,EAEA,MAAM,IAAA,GAA0B;AAC9B,IAAA,IAAI;AACF,MAAA,MAAM,KAAA,GAAQ,MAAM,OAAA,CAAQ,IAAA,CAAK,IAAI,CAAA;AACrC,MAAA,OAAO,MAAM,MAAA,CAAO,CAAC,MAAM,CAAA,CAAE,QAAA,CAAS,QAAQ,CAAC,CAAA;AAAA,IACjD,SAAS,CAAA,EAAG;AACV,MAAA,IAAI,CAAA,IAAK,OAAO,CAAA,KAAM,QAAA,IAAY,UAAU,CAAA,IAAK,CAAA,CAAE,SAAS,QAAA,EAAU;AACpE,QAAA,OAAO,EAAC;AAAA,MACV;AACA,MAAA,MAAM,CAAA;AAAA,IACR;AAAA,EACF;AAAA,EAEA,MAAM,aAAa,QAAA,EAAkC;AACnD,IAAA,OAAO,MAAM,IAAA,CAAK,IAAA,CAAK,OAAA,CAAQ,QAAQ,CAAC,CAAA;AAAA,EAC1C;AACF;;;AC7BA,SAAS,iBAAiB,IAAA,EAAuB;AAC/C,EAAA,IAAI,OAAO,IAAA,KAAS,QAAA,IAAY,IAAA,CAAK,IAAA,OAAW,EAAA,EAAI;AAClD,IAAA,OAAO,aAAA;AAAA,EACT;AACA,EAAA,OAAO,YAAA,CAAa,IAAA,CAAK,IAAA,EAAK,EAAG,GAAG,CAAA;AACtC;AAEA,eAAe,mBAAA,CACb,OACA,EAAA,EACe;AACf,EAAA,IAAI;AACF,IAAA,MAAM,OAAA,CAAQ,OAAA,CAAQ,EAAA,EAAI,CAAA;AAAA,EAC5B,SAAS,CAAA,EAAG;AACV,IAAA,IAAA,CAAK,CAAA,YAAA,EAAe,KAAK,CAAA,CAAA,EAAI,CAAC,CAAA;AAAA,EAChC;AACF;AAQA,eAAsB,UAAA,CACpB,IAAA,EACA,EAAA,EACA,OAAA,EACY;AACZ,EAAA,IAAI,OAAO,OAAO,UAAA,EAAY;AAC5B,IAAA,MAAM,IAAI,UAAU,2CAA2C,CAAA;AAAA,EACjE;AAEA,EAAA,IAAI,OAAA,EAAS,YAAY,KAAA,EAAO;AAC9B,IAAA,OAAO,OAAA,CAAQ,OAAA,CAAQ,EAAA,EAAI,CAAA;AAAA,EAC7B;AAEA,EAAA,MAAM,OAAA,GAAU,iBAAiB,IAAI,CAAA;AACrC,EAAA,MAAM,QAAQ,WAAA,EAAY;AAC1B,EAAA,MAAM,WAAW,eAAA,CAAgB,EAAE,GAAA,EAAK,OAAA,EAAS,UAAU,CAAA;AAE3D,EAAA,MAAM,WAAA,GAAc,0BAA0B,OAAO,CAAA;AACrD,EAAA,MAAM,WAAA,GAAc,wBAAwB,OAAO,CAAA;AAEnD,EAAA,MAAM,OAAA,GAA4B;AAAA,IAChC,KAAA;AAAA,IACA,OAAA;AAAA,IACA,QAAA;AAAA,IACA,MAAA,EAAQ,SAAS,MAAA,IAAU,KAAA;AAAA,IAC3B,QAAA,EAAU;AAAA,GACZ;AAEA,EAAA,OAAO,cAAA,CAAe,SAAS,YAAY;AACzC,IAAA,MAAM,SAAA,GAAY,KAAK,GAAA,EAAI;AAC3B,IAAA,IAAI,aAAA;AAEJ,IAAA,MAAM,mBAAA,CAAoB,uBAAuB,YAAY;AAC3D,MAAA,aAAA,GAAgB,MAAM,mBAAA,CAAoB,KAAA,EAAO,QAAQ,CAAA;AAAA,IAC3D,CAAC,CAAA;AAED,IAAA,MAAM,mBAAA,CAAoB,gCAAgC,YAAY;AACpE,MAAA,MAAM,OAAA,GAAsB;AAAA,QAC1B,aAAA,EAAe,KAAA;AAAA,QACf,KAAA,EAAO,aAAA;AAAA,QACP,SAAA,EAAW,SAAA;AAAA,QACX,KAAA;AAAA,QACA,IAAA,EAAM,OAAA;AAAA,QACN,SAAA;AAAA,QACA,GAAI,WAAA,KAAgB,MAAA,GAAY,EAAE,QAAA,EAAU,WAAA,KAAgB;AAAC,OAC/D;AACA,MAAA,MAAM,eAAA;AAAA,QACJ,wBAAA,CAAyB,SAAS,WAAW,CAAA;AAAA,QAC7C;AAAA,OACF;AAAA,IACF,CAAC,CAAA;AAED,IAAA,MAAM,mBAAA,CAAoB,iBAAiB,MAAM;AAC/C,MAAA,aAAA,CAAc,OAAO,OAAO,CAAA;AAAA,IAC9B,CAAC,CAAA;AAED,IAAA,IAAI,MAAA;AACJ,IAAA,IAAI;AACF,MAAA,MAAA,GAAS,MAAM,OAAA,CAAQ,OAAA,CAAQ,EAAA,EAAI,CAAA;AAAA,IACrC,SAAS,SAAA,EAAW;AAClB,MAAA,MAAMC,QAAAA,GAAU,KAAK,GAAA,EAAI;AACzB,MAAA,MAAMD,cAAaC,QAAAA,GAAU,SAAA;AAC7B,MAAA,MAAM,SAAA,GAAY,YAAY,SAAS,CAAA;AACvC,MAAA,MAAMC,UAAAA,GAAY,aAAA,IAAiB,gBAAA,CAAiB,KAAA,EAAO,QAAQ,CAAA;AAEnE,MAAA,MAAM,mBAAA,CAAoB,wCAAwC,YAAY;AAC5E,QAAA,MAAM,SAAA,GAAwB;AAAA,UAC5B,aAAA,EAAe,KAAA;AAAA,UACf,KAAA,EAAO,eAAA;AAAA,UACP,SAAA,EAAWD,QAAAA;AAAA,UACX,KAAA;AAAA,UACA,MAAA,EAAQ,OAAA;AAAA,UACR,OAAA,EAAAA,QAAAA;AAAA,UACA,UAAA,EAAAD,WAAAA;AAAA,UACA,KAAA,EAAO;AAAA,SACT;AACA,QAAA,MAAM,eAAA;AAAA,UACJ,wBAAA,CAAyB,WAAW,WAAW,CAAA;AAAA,UAC/C;AAAA,SACF;AAAA,MACF,CAAC,CAAA;AAED,MAAA,MAAM,mBAAA,CAAoB,2BAA2B,MAAM;AACzD,QAAA,gBAAA,CAAiB,OAAA,EAAS,KAAA,EAAOA,WAAAA,EAAY,OAAA,EAASE,UAAS,CAAA;AAAA,MACjE,CAAC,CAAA;AAED,MAAA,MAAM,SAAA;AAAA,IACR;AAEA,IAAA,MAAM,OAAA,GAAU,KAAK,GAAA,EAAI;AACzB,IAAA,MAAMF,cAAa,OAAA,GAAU,SAAA;AAC7B,IAAA,MAAM,SAAA,GAAY,aAAA,IAAiB,gBAAA,CAAiB,KAAA,EAAO,QAAQ,CAAA;AAEnE,IAAA,MAAM,mBAAA,CAAoB,0CAA0C,YAAY;AAC9E,MAAA,MAAM,SAAA,GAAwB;AAAA,QAC5B,aAAA,EAAe,KAAA;AAAA,QACf,KAAA,EAAO,eAAA;AAAA,QACP,SAAA,EAAW,OAAA;AAAA,QACX,KAAA;AAAA,QACA,MAAA,EAAQ,SAAA;AAAA,QACR,OAAA;AAAA,QACA,UAAA,EAAAA;AAAA,OACF;AACA,MAAA,MAAM,eAAA;AAAA,QACJ,wBAAA,CAAyB,WAAW,WAAW,CAAA;AAAA,QAC/C;AAAA,OACF;AAAA,IACF,CAAC,CAAA;AAED,IAAA,MAAM,mBAAA,CAAoB,6BAA6B,MAAM;AAC3D,MAAA,gBAAA,CAAiB,OAAA,EAAS,KAAA,EAAOA,WAAAA,EAAY,SAAA,EAAW,SAAS,CAAA;AAAA,IACnE,CAAC,CAAA;AAED,IAAA,OAAO,MAAA;AAAA,EACT,GAAG,WAAW,CAAA;AAChB;;;AC1JA,IAAM,kBAAA,uBAAyB,GAAA,CAAI,CAAC,KAAK,MAAA,EAAQ,KAAA,EAAO,IAAA,EAAM,SAAS,CAAC,CAAA;AAMjE,SAAS,sBAAsB,KAAA,EAAyB;AAC7D,EAAA,IAAI,KAAA,KAAU,QAAW,OAAO,KAAA;AAChC,EAAA,MAAM,UAAA,GAAa,KAAA,CAAM,IAAA,EAAK,CAAE,WAAA,EAAY;AAC5C,EAAA,IAAI,UAAA,KAAe,IAAI,OAAO,KAAA;AAC9B,EAAA,OAAO,kBAAA,CAAmB,IAAI,UAAU,CAAA;AAC1C;AAQA,eAAsB,eAAA,CACpB,IAAA,EACA,EAAA,EACA,OAAA,EACY;AACZ,EAAA,IAAI,OAAO,OAAO,UAAA,EAAY;AAC5B,IAAA,MAAM,IAAI,UAAU,gDAAgD,CAAA;AAAA,EACtE;AAEA,EAAA,MAAM,OAAA,GACJ,SAAS,OAAA,KAAY,MAAA,GACjB,QAAQ,OAAA,GACR,qBAAA,CAAsB,OAAA,CAAQ,GAAA,CAAI,aAAa,CAAA;AAErD,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,OAAO,OAAA,CAAQ,OAAA,CAAQ,EAAA,EAAI,CAAA;AAAA,EAC7B;AAEA,EAAA,OAAO,UAAA,CAAW,IAAA,EAAM,EAAA,EAAI,OAAO,CAAA;AACrC","file":"chunk-VQUB3WRI.mjs","sourcesContent":["import { AsyncLocalStorage } from \"node:async_hooks\";\n\nimport { extractCorrelationMetadata } from \"./correlation-metadata.js\";\nimport type { ExecutionContext, TraceCorrelationMetadata } from \"./types.js\";\nimport {\n  preparePersistedInspectEventForWrite,\n  resolveTraceSafetyOptions,\n  type TraceSafetyOptions,\n} from \"./trace-event-safety.js\";\nimport type { PersistedInspectEvent } from \"./types/persisted-inspect-event.js\";\nimport type { TraceWriter, TraceWriterStats } from \"./writers/index.js\";\n\nexport interface InspectorRuntimeOptions {\n  enabled?: boolean;\n  writer?: TraceWriter;\n  traceSafety?: TraceSafetyOptions;\n}\n\nexport interface InspectorRuntimeContext extends ExecutionContext {\n  runtimeId: string;\n}\n\nexport interface InspectorRuntimeDiagnostics {\n  instrumentationErrors: number;\n  lastInstrumentationError?: string;\n  writerStats?: TraceWriterStats;\n}\n\ntype RuntimeStore = InspectorRuntimeContext & {\n  currentStepId?: string;\n  currentDepth: number;\n  traceSafety: TraceSafetyOptions;\n};\n\nexport interface InspectorRuntime {\n  readonly runtimeId: string;\n  readonly enabled: boolean;\n  runWithContext<T>(\n    context: ExecutionContext,\n    fn: () => Promise<T> | T,\n  ): Promise<T>;\n  runWithStepContext<T>(\n    stepId: string,\n    fn: () => Promise<T> | T,\n  ): Promise<T>;\n  getCurrentContext(): InspectorRuntimeContext | undefined;\n  getCurrentCorrelationMetadata(): TraceCorrelationMetadata | undefined;\n  getCurrentStepId(): string | undefined;\n  getCurrentDepth(): number;\n  getTraceSafety(): TraceSafetyOptions;\n  write(event: PersistedInspectEvent): Promise<void>;\n  flush(): Promise<void>;\n  close(): Promise<void>;\n  getDiagnostics(): InspectorRuntimeDiagnostics;\n}\n\nfunction invoke<T>(fn: () => T | Promise<T>): Promise<T> {\n  return new Promise((resolve, reject) => {\n    try {\n      Promise.resolve(fn()).then(resolve, reject);\n    } catch (error) {\n      reject(error);\n    }\n  });\n}\n\nfunction normalizeError(error: unknown): string {\n  if (error instanceof Error && error.message.trim() !== \"\") {\n    return error.message;\n  }\n  if (typeof error === \"string\" && error.trim() !== \"\") {\n    return error;\n  }\n  return \"Unknown inspector runtime error\";\n}\n\nlet runtimeSequence = 0;\n\nfunction createRuntimeId(): string {\n  runtimeSequence += 1;\n  return `runtime_${runtimeSequence.toString(36)}`;\n}\n\nfunction publicContext(store: RuntimeStore): InspectorRuntimeContext {\n  return {\n    runtimeId: store.runtimeId,\n    runId: store.runId,\n    runName: store.runName,\n    traceDir: store.traceDir,\n    silent: store.silent,\n    metadata: store.metadata,\n  };\n}\n\nexport function createInspectorRuntime(\n  options: InspectorRuntimeOptions = {},\n): InspectorRuntime {\n  const storage = new AsyncLocalStorage<RuntimeStore>();\n  const enabled = options.enabled ?? true;\n  const runtimeId = createRuntimeId();\n  const traceSafety = options.traceSafety ?? resolveTraceSafetyOptions();\n  let closed = false;\n  let instrumentationErrors = 0;\n  let lastInstrumentationError: string | undefined;\n\n  function recordInstrumentationError(error: unknown): void {\n    instrumentationErrors += 1;\n    lastInstrumentationError = normalizeError(error);\n  }\n\n  function currentStore(): RuntimeStore | undefined {\n    try {\n      return storage.getStore();\n    } catch (error) {\n      recordInstrumentationError(error);\n      return undefined;\n    }\n  }\n\n  const runtime: InspectorRuntime = {\n    runtimeId,\n    enabled,\n    runWithContext(context, fn) {\n      if (!enabled) return invoke(fn);\n\n      const store: RuntimeStore = {\n        runtimeId,\n        runId: context.runId,\n        runName: context.runName,\n        traceDir: context.traceDir,\n        silent: context.silent,\n        metadata: context.metadata,\n        traceSafety,\n        currentDepth: 0,\n      };\n\n      return new Promise((resolve, reject) => {\n        storage.run(store, () => {\n          invoke(fn).then(resolve, reject);\n        });\n      });\n    },\n    runWithStepContext(stepId, fn) {\n      if (!enabled) return invoke(fn);\n      const parent = currentStore();\n      if (!parent) return invoke(fn);\n\n      const store: RuntimeStore = {\n        runtimeId,\n        runId: parent.runId,\n        runName: parent.runName,\n        traceDir: parent.traceDir,\n        silent: parent.silent,\n        metadata: parent.metadata,\n        traceSafety: parent.traceSafety,\n        currentStepId: stepId,\n        currentDepth: parent.currentDepth + 1,\n      };\n\n      return new Promise((resolve, reject) => {\n        storage.run(store, () => {\n          invoke(fn).then(resolve, reject);\n        });\n      });\n    },\n    getCurrentContext() {\n      const store = currentStore();\n      return store ? publicContext(store) : undefined;\n    },\n    getCurrentCorrelationMetadata() {\n      return extractCorrelationMetadata(currentStore()?.metadata);\n    },\n    getCurrentStepId() {\n      return currentStore()?.currentStepId;\n    },\n    getCurrentDepth() {\n      const depth = currentStore()?.currentDepth;\n      return typeof depth === \"number\" && Number.isFinite(depth) ? depth : 0;\n    },\n    getTraceSafety() {\n      return traceSafety;\n    },\n    async write(event) {\n      if (!enabled || closed || !options.writer) return;\n      try {\n        const safe = preparePersistedInspectEventForWrite(event, traceSafety);\n        if (safe === undefined) {\n          recordInstrumentationError(\"Invalid persisted inspect event\");\n          return;\n        }\n        await options.writer.write(safe);\n      } catch (error) {\n        recordInstrumentationError(error);\n      }\n    },\n    async flush() {\n      if (!options.writer) return;\n      try {\n        await options.writer.flush?.();\n      } catch (error) {\n        recordInstrumentationError(error);\n      }\n    },\n    async close() {\n      if (closed) return;\n      try {\n        await options.writer?.close?.();\n      } catch (error) {\n        recordInstrumentationError(error);\n      } finally {\n        closed = true;\n      }\n    },\n    getDiagnostics() {\n      const diagnostics: InspectorRuntimeDiagnostics = {\n        instrumentationErrors,\n      };\n      if (lastInstrumentationError !== undefined) {\n        diagnostics.lastInstrumentationError = lastInstrumentationError;\n      }\n      const writerStats = options.writer?.getStats?.();\n      if (writerStats !== undefined) {\n        diagnostics.writerStats = writerStats;\n      }\n      return diagnostics;\n    },\n  };\n\n  return runtime;\n}\n","import { createInspectorRuntime } from \"./inspector-runtime.js\";\nimport type { InspectorRuntime } from \"./inspector-runtime.js\";\nimport type { InspectKind } from \"./types/inspect-event.js\";\nimport type {\n  PersistedInspectError,\n  PersistedInspectEvent,\n} from \"./types/persisted-inspect-event.js\";\nimport type { RedactionProfile, StepMetadata, StepType } from \"./types.js\";\nimport {\n  normalizeObserveOutcomeInput,\n  type ObserveOutcomeOptions,\n} from \"./outcomes/index.js\";\nimport {\n  preparePersistedInspectEventForWrite,\n  resolveTraceSafetyOptions,\n  type TraceSafetyOptions,\n} from \"./trace-event-safety.js\";\nimport type { TraceWriter } from \"./writers/index.js\";\nimport {\n  createRunId,\n  createStepId,\n  getDefaultTraceDir,\n  truncateName,\n} from \"./utils.js\";\n\nconst INSPECTOR_PERSISTED_SCHEMA_VERSION =\n  \"1.0\" satisfies PersistedInspectEvent[\"schemaVersion\"];\n\nexport interface InspectorCaptureOptions {\n  onSuccess?: \"none\" | \"metadata-only\";\n  onError?: \"none\" | \"metadata-only\";\n}\n\nexport interface CreateInspectorOptions {\n  enabled?: boolean;\n  writer?: TraceWriter;\n  /**\n   * Context metadata only. Does not configure writer output; use\n   * `fileWriter({ dir })` or another explicit writer for persistence paths.\n   *\n   * @experimental\n   */\n  traceDir?: string;\n  /**\n   * Context metadata only for compatibility with existing terminal helpers.\n   * `createInspector()` does not print lifecycle output.\n   *\n   * @experimental\n   */\n  silent?: boolean;\n  metadata?: Record<string, unknown>;\n  redactionProfile?: RedactionProfile;\n  /**\n   * Metadata-only summaries for persisted run/step completion rows.\n   * This never stores raw return values, prompts, outputs, or thrown objects.\n   *\n   * @experimental\n   */\n  capture?: InspectorCaptureOptions;\n  traceSafety?: TraceSafetyOptions;\n}\n\nexport interface InspectorRunOptions {\n  runId?: string;\n  traceDir?: string;\n  silent?: boolean;\n  metadata?: Record<string, unknown>;\n}\n\nexport interface InspectorStepOptions {\n  type?: StepType;\n  metadata?: StepMetadata;\n}\n\nexport type InspectorObserveOptions = InspectorStepOptions;\n\nexport interface Inspector {\n  /**\n   * Low-level runtime access is retained for v1.6 compatibility. Prefer\n   * `getDiagnostics()` unless you need advanced runtime context primitives.\n   *\n   * @experimental\n   */\n  readonly runtime: InspectorRuntime;\n  run<T>(\n    name: string,\n    fn: () => T | Promise<T>,\n    options?: InspectorRunOptions,\n  ): Promise<T>;\n  step<T>(\n    name: string,\n    fn: () => T | Promise<T>,\n    options?: InspectorStepOptions,\n  ): Promise<T>;\n  tool<T>(\n    name: string,\n    fn: () => T | Promise<T>,\n    options?: InspectorStepOptions,\n  ): Promise<T>;\n  llm<T>(\n    name: string,\n    fn: () => T | Promise<T>,\n    options?: InspectorStepOptions,\n  ): Promise<T>;\n  observe<TFunction extends (...args: any[]) => any>(\n    name: string,\n    fn: TFunction,\n    options?: InspectorObserveOptions,\n  ): (...args: Parameters<TFunction>) => Promise<Awaited<ReturnType<TFunction>>>;\n  observeOutcome(name: string, options: ObserveOutcomeOptions): Promise<void>;\n  getDiagnostics(): ReturnType<InspectorRuntime[\"getDiagnostics\"]>;\n  flush(): Promise<void>;\n  close(): Promise<void>;\n}\n\nfunction normalizeName(name: unknown, fallback: string): string {\n  if (typeof name !== \"string\" || name.trim() === \"\") return fallback;\n  return truncateName(name.trim(), 100);\n}\n\nfunction nowIso(): string {\n  return new Date().toISOString();\n}\n\nfunction durationMs(startedAt: string, endedAt: string): number {\n  return Math.max(0, Date.parse(endedAt) - Date.parse(startedAt));\n}\n\nfunction mergeMetadata(\n  base: Record<string, unknown> | undefined,\n  override: Record<string, unknown> | undefined,\n): Record<string, unknown> | undefined {\n  if (base === undefined && override === undefined) return undefined;\n  return {\n    ...(base ?? {}),\n    ...(override ?? {}),\n  };\n}\n\nconst SAFE_ERROR_CODE_MAX_LENGTH = 128;\nconst SAFE_ERROR_CODE_PATTERN = /^[A-Za-z0-9_.:-]+$/;\n\n/**\n * Normalize a thrown error's `code` or `status` into a bounded safe string.\n * Accepts finite numbers (e.g. HTTP 404) and short alphanumeric codes.\n * Omits objects, arrays, multiline/oversized values, and arbitrary properties.\n */\nfunction toSafeErrorCode(error: unknown): string | undefined {\n  if (typeof error !== \"object\" || error === null) {\n    return undefined;\n  }\n  const record = error as Record<string, unknown>;\n  const raw = record.code !== undefined ? record.code : record.status;\n  let candidate: string | undefined;\n  if (typeof raw === \"number\" && Number.isFinite(raw)) {\n    candidate = String(raw);\n  } else if (typeof raw === \"string\") {\n    candidate = raw.trim();\n  }\n  if (\n    candidate === undefined ||\n    candidate.length === 0 ||\n    candidate.length > SAFE_ERROR_CODE_MAX_LENGTH ||\n    !SAFE_ERROR_CODE_PATTERN.test(candidate)\n  ) {\n    return undefined;\n  }\n  return candidate;\n}\n\nfunction toPersistedError(error: unknown): PersistedInspectError {\n  if (error instanceof Error) {\n    const persisted: PersistedInspectError = {\n      name: error.name,\n      message: error.message,\n    };\n    const code = toSafeErrorCode(error);\n    if (code !== undefined) {\n      persisted.code = code;\n    }\n    return persisted;\n  }\n  if (typeof error === \"string\") {\n    return { message: error };\n  }\n  if (typeof error === \"object\" && error !== null) {\n    const record = error as Record<string, unknown>;\n    const message =\n      typeof record.message === \"string\" && record.message.length > 0\n        ? record.message\n        : \"Unknown error\";\n    const persisted: PersistedInspectError = { message };\n    if (typeof record.name === \"string\" && record.name.length > 0) {\n      persisted.name = record.name;\n    }\n    const code = toSafeErrorCode(error);\n    if (code !== undefined) {\n      persisted.code = code;\n    }\n    return persisted;\n  }\n  return { message: \"Unknown error\" };\n}\n\nfunction summarizeValue(value: unknown): Record<string, unknown> {\n  if (value === null) return { type: \"null\" };\n  if (Array.isArray(value)) return { type: \"array\", length: value.length };\n\n  if (typeof value === \"string\") return { type: \"string\", length: value.length };\n  if (typeof value === \"number\") {\n    return { type: \"number\", finite: Number.isFinite(value) };\n  }\n  if (typeof value === \"bigint\") return { type: \"bigint\" };\n  if (typeof value === \"boolean\") return { type: \"boolean\" };\n  if (typeof value === \"undefined\") return { type: \"undefined\" };\n  if (typeof value === \"symbol\") return { type: \"symbol\" };\n  if (typeof value === \"function\") {\n    return { type: \"function\", name: value.name || undefined };\n  }\n  if (typeof value === \"object\") {\n    const record = value as Record<string, unknown>;\n    let keyCount: number | undefined;\n    try {\n      keyCount = Object.keys(record).length;\n    } catch {\n      keyCount = undefined;\n    }\n    return {\n      type: \"object\",\n      constructorName: value?.constructor?.name,\n      ...(keyCount !== undefined ? { keyCount } : {}),\n    };\n  }\n  return { type: typeof value };\n}\n\nfunction summarizeCapturedError(error: unknown): Record<string, unknown> {\n  if (error instanceof Error) {\n    return { type: \"error\", name: error.name };\n  }\n  return summarizeValue(error);\n}\n\nfunction stepTypeToKind(type: StepType): InspectKind {\n  switch (type) {\n    case \"llm\":\n      return \"LLM\";\n    case \"tool\":\n      return \"TOOL\";\n    case \"decision\":\n      return \"DECISION\";\n    case \"run\":\n      return \"RUN\";\n    default:\n      return \"LOGIC\";\n  }\n}\n\nexport function createInspector(\n  options: CreateInspectorOptions = {},\n): Inspector {\n  const traceSafety =\n    options.traceSafety ??\n    resolveTraceSafetyOptions({\n      redactionProfile: options.redactionProfile,\n    });\n  const runtime = createInspectorRuntime({\n    enabled: options.enabled,\n    writer: options.writer,\n    traceSafety,\n  });\n\n  async function write(event: PersistedInspectEvent): Promise<void> {\n    const safe = preparePersistedInspectEventForWrite(event, traceSafety);\n    if (safe !== undefined) {\n      await runtime.write(safe);\n    }\n  }\n\n  async function run<T>(\n    name: string,\n    fn: () => T | Promise<T>,\n    runOptions: InspectorRunOptions = {},\n  ): Promise<T> {\n    if (typeof fn !== \"function\") {\n      throw new TypeError(\"inspector.run requires `fn` to be a function\");\n    }\n    if (options.enabled === false) {\n      return Promise.resolve(fn());\n    }\n\n    const runName = normalizeName(name, \"unnamed-run\");\n    const runId = runOptions.runId ?? createRunId();\n    const traceDir = runOptions.traceDir ?? options.traceDir ?? getDefaultTraceDir();\n    const metadata = mergeMetadata(options.metadata, runOptions.metadata);\n    const startedAt = nowIso();\n\n    return runtime.runWithContext(\n      {\n        runId,\n        runName,\n        traceDir,\n        silent: runOptions.silent ?? options.silent ?? true,\n        metadata,\n      },\n      async () => {\n        await write({\n          schemaVersion: INSPECTOR_PERSISTED_SCHEMA_VERSION,\n          eventId: `${runId}_started`,\n          runId,\n          kind: \"RUN\",\n          name: runName,\n          status: \"running\",\n          timestamp: startedAt,\n          startedAt,\n          confidence: \"explicit\",\n          source: { type: \"manual\", name: \"createInspector\" },\n          attributes: {\n            legacyEvent: \"run_started\",\n            ...(metadata !== undefined ? { metadata } : {}),\n          },\n        });\n\n        try {\n          const result = await Promise.resolve(fn());\n          const endedAt = nowIso();\n          await write({\n            schemaVersion: INSPECTOR_PERSISTED_SCHEMA_VERSION,\n            eventId: `${runId}_completed`,\n            runId,\n            kind: \"RUN\",\n            name: runName,\n            status: \"ok\",\n            timestamp: endedAt,\n            endedAt,\n            durationMs: durationMs(startedAt, endedAt),\n            confidence: \"explicit\",\n            source: { type: \"manual\", name: \"createInspector\" },\n            attributes: { legacyEvent: \"run_completed\" },\n            ...(options.capture?.onSuccess === \"metadata-only\"\n              ? { outputSummary: summarizeValue(result) }\n              : {}),\n          });\n          return result;\n        } catch (error) {\n          const endedAt = nowIso();\n          await write({\n            schemaVersion: INSPECTOR_PERSISTED_SCHEMA_VERSION,\n            eventId: `${runId}_completed`,\n            runId,\n            kind: \"RUN\",\n            name: runName,\n            status: \"error\",\n            timestamp: endedAt,\n            endedAt,\n            durationMs: durationMs(startedAt, endedAt),\n            confidence: \"explicit\",\n            source: { type: \"manual\", name: \"createInspector\" },\n            attributes: { legacyEvent: \"run_completed\" },\n            ...(options.capture?.onError === \"metadata-only\"\n              ? { outputSummary: summarizeCapturedError(error) }\n              : {}),\n            error: toPersistedError(error),\n          });\n          throw error;\n        }\n      },\n    );\n  }\n\n  async function step<T>(\n    name: string,\n    fn: () => T | Promise<T>,\n    stepOptions: InspectorStepOptions = {},\n  ): Promise<T> {\n    if (typeof fn !== \"function\") {\n      throw new TypeError(\"inspector.step requires `fn` to be a function\");\n    }\n    if (options.enabled === false || !runtime.getCurrentContext()) {\n      return Promise.resolve(fn());\n    }\n\n    const context = runtime.getCurrentContext()!;\n    const stepName = normalizeName(name, \"unnamed-step\");\n    const stepId = createStepId();\n    const parentId = runtime.getCurrentStepId();\n    const stepType = stepOptions.type ?? \"logic\";\n    const startedAt = nowIso();\n    const attributes = {\n      legacyEvent: \"step_started\",\n      stepId,\n      stepType,\n      ...(stepOptions.metadata !== undefined\n        ? { metadata: stepOptions.metadata }\n        : {}),\n    };\n\n    await write({\n      schemaVersion: INSPECTOR_PERSISTED_SCHEMA_VERSION,\n      eventId: `${stepId}_started`,\n      runId: context.runId,\n      ...(parentId !== undefined ? { parentId } : {}),\n      kind: stepTypeToKind(stepType),\n      name: stepName,\n      status: \"running\",\n      timestamp: startedAt,\n      startedAt,\n      confidence: \"explicit\",\n      source: { type: \"manual\", name: \"createInspector\" },\n      attributes,\n    });\n\n    return runtime.runWithStepContext(stepId, async () => {\n      try {\n        const result = await Promise.resolve(fn());\n        const endedAt = nowIso();\n        await write({\n          schemaVersion: INSPECTOR_PERSISTED_SCHEMA_VERSION,\n          eventId: `${stepId}_completed`,\n          runId: context.runId,\n          kind: stepTypeToKind(stepType),\n          name: stepName,\n          status: \"ok\",\n          timestamp: endedAt,\n          endedAt,\n          durationMs: durationMs(startedAt, endedAt),\n          confidence: \"explicit\",\n          source: { type: \"manual\", name: \"createInspector\" },\n          attributes: {\n            legacyEvent: \"step_completed\",\n            stepId,\n            stepType,\n          },\n          ...(options.capture?.onSuccess === \"metadata-only\"\n            ? { outputSummary: summarizeValue(result) }\n            : {}),\n        });\n        return result;\n      } catch (error) {\n        const endedAt = nowIso();\n        await write({\n          schemaVersion: INSPECTOR_PERSISTED_SCHEMA_VERSION,\n          eventId: `${stepId}_completed`,\n          runId: context.runId,\n          kind: stepTypeToKind(stepType),\n          name: stepName,\n          status: \"error\",\n          timestamp: endedAt,\n          endedAt,\n          durationMs: durationMs(startedAt, endedAt),\n          confidence: \"explicit\",\n          source: { type: \"manual\", name: \"createInspector\" },\n          attributes: {\n            legacyEvent: \"step_completed\",\n            stepId,\n            stepType,\n          },\n          ...(options.capture?.onError === \"metadata-only\"\n            ? { outputSummary: summarizeCapturedError(error) }\n            : {}),\n          error: toPersistedError(error),\n        });\n        throw error;\n      }\n    });\n  }\n\n  const inspector: Inspector = {\n    runtime,\n    run,\n    step,\n    tool(name, fn, toolOptions) {\n      const toolName = normalizeName(name, \"unknown-tool\");\n      return step(`tool:${toolName}`, fn, {\n        ...toolOptions,\n        type: \"tool\",\n        metadata: {\n          ...(toolOptions?.metadata ?? {}),\n          toolName,\n        },\n      });\n    },\n    llm(name, fn, llmOptions) {\n      const model = normalizeName(name, \"unknown-model\");\n      return step(`llm:${model}`, fn, {\n        ...llmOptions,\n        type: \"llm\",\n        metadata: {\n          ...(llmOptions?.metadata ?? {}),\n          model,\n        },\n      });\n    },\n    observe(name, fn, observeOptions) {\n      return async (...args) =>\n        step(name, () => Promise.resolve(fn(...args)), observeOptions);\n    },\n    async observeOutcome(name, outcomeOptions) {\n      const ctx = runtime.getCurrentContext();\n      if (!ctx) return;\n      let normalized;\n      try {\n        normalized = normalizeObserveOutcomeInput(name, outcomeOptions);\n      } catch {\n        return;\n      }\n      const outcomeId = createStepId();\n      const parentId = runtime.getCurrentStepId();\n      await write({\n        schemaVersion: INSPECTOR_PERSISTED_SCHEMA_VERSION,\n        eventId: outcomeId,\n        runId: ctx.runId,\n        ...(parentId !== undefined ? { parentId } : {}),\n        kind: \"OUTCOME\",\n        name: normalized.name,\n        status: normalized.status === \"failed\" ? \"error\" : \"ok\",\n        timestamp: new Date(normalized.observedAt).toISOString(),\n        confidence: \"explicit\",\n        source: { type: \"manual\", name: \"createInspector\" },\n        attributes: {\n          legacyEvent: \"outcome_observed\",\n          outcomeId,\n          outcomeStatus: normalized.status,\n          expectation: normalized.expectation,\n          ...(normalized.method !== undefined ? { method: normalized.method } : {}),\n          ...(normalized.actual !== undefined ? { actual: normalized.actual } : {}),\n          ...(normalized.evidence !== undefined ? { evidence: normalized.evidence } : {}),\n          observedAt: new Date(normalized.observedAt).toISOString(),\n        },\n        ...(normalized.actual !== undefined ? { outputSummary: normalized.actual } : {}),\n      });\n    },\n    getDiagnostics() {\n      return runtime.getDiagnostics();\n    },\n    flush() {\n      return runtime.flush();\n    },\n    close() {\n      return runtime.close();\n    },\n  };\n\n  return inspector;\n}\n","import { AsyncLocalStorage } from \"node:async_hooks\";\n\nimport { extractCorrelationMetadata } from \"./correlation-metadata.js\";\nimport type { ExecutionContext, TraceCorrelationMetadata } from \"./types.js\";\nimport {\n  resolveTraceSafetyOptions,\n  type TraceSafetyOptions,\n} from \"./trace-event-safety.js\";\n\ntype RuntimeExecutionContext = ExecutionContext & {\n  currentStepId?: string;\n  currentDepth: number;\n  traceSafety: TraceSafetyOptions;\n};\n\nconst storage = new AsyncLocalStorage<RuntimeExecutionContext>();\n\nfunction toPublicContext(ctx: RuntimeExecutionContext): ExecutionContext {\n  return {\n    runId: ctx.runId,\n    runName: ctx.runName,\n    traceDir: ctx.traceDir,\n    silent: ctx.silent,\n    metadata: ctx.metadata,\n  };\n}\n\nfunction invoke<T>(fn: () => T | Promise<T>): Promise<T> {\n  return new Promise((resolve, reject) => {\n    try {\n      Promise.resolve(fn()).then(resolve, reject);\n    } catch (e) {\n      reject(e);\n    }\n  });\n}\n\n/** Returns the active run context, without internal step fields. */\nexport function getCurrentContext(): ExecutionContext | undefined {\n  try {\n    const s = storage.getStore();\n    if (!s) return undefined;\n    return toPublicContext(s);\n  } catch {\n    return undefined;\n  }\n}\n\n/** Active `runId` when inside `runWithContext`, else `undefined`. */\nexport function getCurrentRunId(): string | undefined {\n  try {\n    return storage.getStore()?.runId;\n  } catch {\n    return undefined;\n  }\n}\n\n/**\n * Correlation metadata for the active run (`correlationId`, `requestId`, `decisionId`, `groupId`).\n * `undefined` outside `inspectRun` / `maybeInspectRun` or when no correlation fields were set.\n */\nexport function getCurrentCorrelationMetadata():\n  | TraceCorrelationMetadata\n  | undefined {\n  try {\n    return extractCorrelationMetadata(storage.getStore()?.metadata);\n  } catch {\n    return undefined;\n  }\n}\n\n/** Active `runName` when inside `runWithContext`, else `undefined`. */\nexport function getCurrentRunName(): string | undefined {\n  try {\n    return storage.getStore()?.runName;\n  } catch {\n    return undefined;\n  }\n}\n\n/**\n * Active step id in this async scope (parent for nested `step()` calls).\n * `undefined` at run root or outside any run.\n */\nexport function getCurrentStepId(): string | undefined {\n  try {\n    return storage.getStore()?.currentStepId;\n  } catch {\n    return undefined;\n  }\n}\n\n/** Alias of {@link getCurrentStepId} for readability in step instrumentation. */\nexport function getParentStepId(): string | undefined {\n  return getCurrentStepId();\n}\n\n/**\n * Nesting depth: `0` at run root, increments by one per nested `runWithStepContext`.\n * Returns `0` outside any run.\n */\nexport function getCurrentDepth(): number {\n  try {\n    const d = storage.getStore()?.currentDepth;\n    return typeof d === \"number\" && Number.isFinite(d) ? d : 0;\n  } catch {\n    return 0;\n  }\n}\n\nexport function hasActiveContext(): boolean {\n  try {\n    return storage.getStore() !== undefined;\n  } catch {\n    return false;\n  }\n}\n\nexport function getTraceDirFromContext(): string | undefined {\n  try {\n    return storage.getStore()?.traceDir;\n  } catch {\n    return undefined;\n  }\n}\n\nexport function isSilentContext(): boolean {\n  try {\n    const s = storage.getStore();\n    return s ? s.silent : false;\n  } catch {\n    return false;\n  }\n}\n\n/** Resolved trace safety settings for the active run (redaction + size bounds). */\nexport function getTraceSafetyFromContext(): TraceSafetyOptions | undefined {\n  try {\n    return storage.getStore()?.traceSafety;\n  } catch {\n    return undefined;\n  }\n}\n\n/**\n * Runs `fn` with a fresh AgentInspect run context (depth 0, no active step).\n * Propagates sync/async results and rejections; does not swallow user errors.\n */\nexport function runWithContext<T>(\n  context: ExecutionContext,\n  fn: () => Promise<T> | T,\n  traceSafety: TraceSafetyOptions = resolveTraceSafetyOptions(),\n): Promise<T> {\n  const runtime: RuntimeExecutionContext = {\n    runId: context.runId,\n    runName: context.runName,\n    traceDir: context.traceDir,\n    silent: context.silent,\n    metadata: context.metadata,\n    traceSafety,\n    currentDepth: 0,\n  };\n\n  return new Promise((resolve, reject) => {\n    storage.run(runtime, () => {\n      try {\n        Promise.resolve(fn()).then(resolve, reject);\n      } catch (e) {\n        reject(e);\n      }\n    });\n  });\n}\n\n/**\n * Runs `fn` with `stepId` as the active step (incremented depth).\n * If no run is active, runs `fn` without altering async context.\n */\nexport function runWithStepContext<T>(\n  stepId: string,\n  fn: () => Promise<T> | T,\n): Promise<T> {\n  let parent: RuntimeExecutionContext | undefined;\n  try {\n    parent = storage.getStore();\n  } catch {\n    parent = undefined;\n  }\n\n  if (!parent) {\n    return invoke(fn);\n  }\n\n  const derived: RuntimeExecutionContext = {\n    runId: parent.runId,\n    runName: parent.runName,\n    traceDir: parent.traceDir,\n    silent: parent.silent,\n    metadata: parent.metadata,\n    traceSafety: parent.traceSafety,\n    currentStepId: stepId,\n    currentDepth: parent.currentDepth + 1,\n  };\n\n  return new Promise((resolve, reject) => {\n    storage.run(derived, () => {\n      try {\n        Promise.resolve(fn()).then(resolve, reject);\n      } catch (e) {\n        reject(e);\n      }\n    });\n  });\n}\n","import chalk from \"chalk\";\n\nimport { isSilentContext } from \"./context.js\";\nimport type { ErrorInfo, RunStatus, StepStatus } from \"./types.js\";\nimport { formatDuration, truncateName } from \"./utils.js\";\n\n/** Two spaces per nesting level in terminal output. */\nexport const TERMINAL_INDENT = \"  \";\n\n/** Max display length for names in terminal output. */\nexport const MAX_TERMINAL_NAME_LENGTH = 80;\n\n/** Max nesting depth used for indentation (prevents huge indents). */\nexport const MAX_TERMINAL_DEPTH = 10;\n\nfunction normalizeDepth(depth: number): number {\n  if (!Number.isFinite(depth) || depth < 0) {\n    return 0;\n  }\n  return Math.min(Math.floor(depth), MAX_TERMINAL_DEPTH);\n}\n\nfunction safePrint(line = \"\"): void {\n  try {\n    console.log(line);\n  } catch {\n    /* never break callers */\n  }\n}\n\n/** Indentation string for a nesting depth (capped, never negative). */\nexport function getIndent(depth: number): string {\n  return TERMINAL_INDENT.repeat(normalizeDepth(depth));\n}\n\n/** Truncates a display name for terminal use; invalid input becomes `\"unnamed\"`. */\nexport function formatTerminalName(name: string): string {\n  if (typeof name !== \"string\" || name.trim() === \"\") {\n    return \"unnamed\";\n  }\n  return truncateName(name, MAX_TERMINAL_NAME_LENGTH);\n}\n\nfunction getStatusIcon(status: StepStatus | RunStatus): string {\n  if (status === \"success\") return chalk.green(\"✔\");\n  if (status === \"error\") return chalk.red(\"✖\");\n  return chalk.yellow(\"⏳\");\n}\n\n/** Renders a single step line (colored); does not consult silent mode. */\nexport function renderStepLine(\n  name: string,\n  durationMs: number | undefined,\n  status: StepStatus,\n  depth?: number,\n): string {\n  try {\n    const nm = formatTerminalName(name);\n    const ind = getIndent(depth ?? 0);\n    if (status === \"running\" && durationMs === undefined) {\n      return `${ind}${chalk.yellow(\"⏳\")} ${nm}`;\n    }\n    const hasDur =\n      durationMs !== undefined && Number.isFinite(durationMs as number);\n    const dur = hasDur ? formatDuration(durationMs as number) : undefined;\n    if (status === \"running\") {\n      return dur !== undefined\n        ? `${ind}${chalk.yellow(\"⏳\")} ${nm} (${dur})`\n        : `${ind}${chalk.yellow(\"⏳\")} ${nm}`;\n    }\n    if (!hasDur || dur === undefined) {\n      return `${ind}${chalk.yellow(\"⏳\")} ${nm}`;\n    }\n    if (status === \"success\") {\n      return `${ind}${getStatusIcon(\"success\")} ${nm} (${dur})`;\n    }\n    return `${ind}${getStatusIcon(\"error\")} ${nm} (${dur})`;\n  } catch {\n    return \"\";\n  }\n}\n\n/** Renders an error summary line (no stack in MVP). */\nexport function renderErrorLine(error: ErrorInfo, depth?: number): string {\n  try {\n    const msg =\n      typeof error.message === \"string\" ? error.message : \"\";\n    const ind = getIndent((depth ?? 0) + 1);\n    return `${ind}Error: ${msg}`;\n  } catch {\n    return \"\";\n  }\n}\n\n/** Plain-text run summary lines (no chalk) for stable testing and CLI reuse. */\nexport function renderRunSummary(\n  durationMs: number,\n  status: RunStatus,\n  traceFilePath?: string,\n): string[] {\n  try {\n    const dur = Number.isFinite(durationMs)\n      ? formatDuration(durationMs)\n      : formatDuration(0);\n    const head =\n      status === \"error\" ? `Failed in ${dur}` : `Completed in ${dur}`;\n    const lines = [head];\n    if (traceFilePath !== undefined && traceFilePath.trim() !== \"\") {\n      lines.push(`Trace: ${traceFilePath}`);\n    }\n    return lines;\n  } catch {\n    return [];\n  }\n}\n\n/** Prints run header with icon and dim run id. */\nexport function printRunStart(runId: string, name: string): void {\n  if (isSilentContext()) return;\n  try {\n    safePrint(\"\");\n    const header = `${chalk.cyan.bold(\"🔍 AgentInspect:\")} ${formatTerminalName(name)} ${chalk.dim(`(${runId})`)}`;\n    safePrint(header);\n  } catch {\n    /* noop */\n  }\n}\n\n/** Prints a running step line. */\nexport function printStepStart(name: string, depth = 0): void {\n  if (isSilentContext()) return;\n  try {\n    safePrint(renderStepLine(name, undefined, \"running\", depth));\n  } catch {\n    /* noop */\n  }\n}\n\n/** Prints a completed step line with duration and status icon. */\nexport function printStepComplete(\n  name: string,\n  durationMs: number,\n  status: StepStatus,\n  depth = 0,\n): void {\n  if (isSilentContext()) return;\n  try {\n    safePrint(renderStepLine(name, durationMs, status, depth));\n  } catch {\n    /* noop */\n  }\n}\n\n/** Prints a structured error line (message only, no stack). */\nexport function printError(error: ErrorInfo, depth = 0): void {\n  if (isSilentContext()) return;\n  try {\n    safePrint(renderErrorLine(error, depth));\n  } catch {\n    /* noop */\n  }\n}\n\n/** Prints run completion summary and optional trace path. */\nexport function printRunComplete(\n  _name: string,\n  _runId: string,\n  durationMs: number,\n  status: RunStatus,\n  traceFilePath?: string,\n): void {\n  if (isSilentContext()) return;\n  try {\n    const lines = renderRunSummary(durationMs, status, traceFilePath);\n    for (let i = 0; i < lines.length; i++) {\n      const line = lines[i]!;\n      if (i === 0) {\n        const color =\n          status === \"error\"\n            ? chalk.red\n            : status === \"running\"\n              ? chalk.yellow\n              : chalk.green;\n        safePrint(color(line));\n      } else {\n        safePrint(chalk.dim(line));\n      }\n    }\n  } catch {\n    /* noop */\n  }\n}\n\n/** Prints which step failed. */\nexport function printFailedAt(stepName: string): void {\n  if (isSilentContext()) return;\n  try {\n    safePrint(`Failed at: ${formatTerminalName(stepName)}`);\n  } catch {\n    /* noop */\n  }\n}\n","import type { Stats } from \"node:fs\";\nimport { readdir, stat } from \"node:fs/promises\";\nimport path from \"node:path\";\n\nimport { getDefaultTraceDir } from \"./utils.js\";\n\nexport interface TraceDirectoryOptions {\n  dir?: string;\n}\n\nexport function resolveTraceDir(options: TraceDirectoryOptions = {}): string {\n  if (typeof options.dir === \"string\" && options.dir.trim() !== \"\") {\n    return options.dir.trim();\n  }\n  const envDir = process.env.AGENT_INSPECT_TRACE_DIR;\n  if (typeof envDir === \"string\" && envDir.trim() !== \"\") {\n    return envDir.trim();\n  }\n  return getDefaultTraceDir();\n}\n\nexport class TraceDirectory {\n  readonly #dir: string;\n\n  constructor(options: TraceDirectoryOptions = {}) {\n    this.#dir = resolveTraceDir(options);\n  }\n\n  getPath(filename?: string): string {\n    return filename ? path.join(this.#dir, filename) : this.#dir;\n  }\n\n  async list(): Promise<string[]> {\n    try {\n      const files = await readdir(this.#dir);\n      return files.filter((f) => f.endsWith(\".jsonl\"));\n    } catch (e) {\n      if (e && typeof e === \"object\" && \"code\" in e && e.code === \"ENOENT\") {\n        return [];\n      }\n      throw e;\n    }\n  }\n\n  async getFileStats(filename: string): Promise<Stats> {\n    return await stat(this.getPath(filename));\n  }\n}\n\n","import { buildRunStartedMetadata } from \"./correlation-metadata.js\";\nimport { runWithContext } from \"./context.js\";\nimport type { ExecutionContext, InspectRunOptions, TraceEvent } from \"./types.js\";\nimport { initializeTraceFile, writeTraceEvent } from \"./storage.js\";\nimport { printRunComplete, printRunStart } from \"./terminal.js\";\nimport { resolveTraceDir } from \"./trace-directory.js\";\nimport {\n  prepareTraceEventForDisk,\n  resolveTraceSafetyOptions,\n} from \"./trace-event-safety.js\";\nimport {\n  createRunId,\n  formatError,\n  getTraceFilePath,\n  truncateName,\n  warn,\n} from \"./utils.js\";\n\nfunction normalizeRunName(name: unknown): string {\n  if (typeof name !== \"string\" || name.trim() === \"\") {\n    return \"unnamed-run\";\n  }\n  return truncateName(name.trim(), 100);\n}\n\nasync function safeInstrumentation(\n  label: string,\n  op: () => void | Promise<void>,\n): Promise<void> {\n  try {\n    await Promise.resolve(op());\n  } catch (e) {\n    warn(`inspectRun: ${label}`, e);\n  }\n}\n\n/**\n * Stable v1.0 API for local manual run tracing.\n *\n * Runs `fn` inside an AgentInspect trace: JSONL `run_started` / `run_completed`, optional terminal output,\n * and {@link ExecutionContext} for nested APIs. Instrumentation failures are swallowed; user errors are re-thrown.\n */\nexport async function inspectRun<T>(\n  name: string,\n  fn: () => Promise<T> | T,\n  options?: InspectRunOptions,\n): Promise<T> {\n  if (typeof fn !== \"function\") {\n    throw new TypeError(\"inspectRun requires `fn` to be a function\");\n  }\n\n  if (options?.enabled === false) {\n    return Promise.resolve(fn());\n  }\n\n  const runName = normalizeRunName(name);\n  const runId = createRunId();\n  const traceDir = resolveTraceDir({ dir: options?.traceDir });\n\n  const traceSafety = resolveTraceSafetyOptions(options);\n  const runMetadata = buildRunStartedMetadata(options);\n\n  const context: ExecutionContext = {\n    runId,\n    runName,\n    traceDir,\n    silent: options?.silent ?? false,\n    metadata: runMetadata,\n  };\n\n  return runWithContext(context, async () => {\n    const startTime = Date.now();\n    let traceFilePath: string | undefined;\n\n    await safeInstrumentation(\"initializeTraceFile\", async () => {\n      traceFilePath = await initializeTraceFile(runId, traceDir);\n    });\n\n    await safeInstrumentation(\"writeTraceEvent(run_started)\", async () => {\n      const started: TraceEvent = {\n        schemaVersion: \"0.1\",\n        event: \"run_started\",\n        timestamp: startTime,\n        runId,\n        name: runName,\n        startTime,\n        ...(runMetadata !== undefined ? { metadata: runMetadata } : {}),\n      };\n      await writeTraceEvent(\n        prepareTraceEventForDisk(started, traceSafety),\n        traceDir,\n      );\n    });\n\n    await safeInstrumentation(\"printRunStart\", () => {\n      printRunStart(runId, runName);\n    });\n\n    let result: T;\n    try {\n      result = await Promise.resolve(fn());\n    } catch (userError) {\n      const endTime = Date.now();\n      const durationMs = endTime - startTime;\n      const formatted = formatError(userError);\n      const printPath = traceFilePath ?? getTraceFilePath(runId, traceDir);\n\n      await safeInstrumentation(\"writeTraceEvent(run_completed error)\", async () => {\n        const completed: TraceEvent = {\n          schemaVersion: \"0.1\",\n          event: \"run_completed\",\n          timestamp: endTime,\n          runId,\n          status: \"error\",\n          endTime,\n          durationMs,\n          error: formatted,\n        };\n        await writeTraceEvent(\n          prepareTraceEventForDisk(completed, traceSafety),\n          traceDir,\n        );\n      });\n\n      await safeInstrumentation(\"printRunComplete(error)\", () => {\n        printRunComplete(runName, runId, durationMs, \"error\", printPath);\n      });\n\n      throw userError;\n    }\n\n    const endTime = Date.now();\n    const durationMs = endTime - startTime;\n    const printPath = traceFilePath ?? getTraceFilePath(runId, traceDir);\n\n    await safeInstrumentation(\"writeTraceEvent(run_completed success)\", async () => {\n      const completed: TraceEvent = {\n        schemaVersion: \"0.1\",\n        event: \"run_completed\",\n        timestamp: endTime,\n        runId,\n        status: \"success\",\n        endTime,\n        durationMs,\n      };\n      await writeTraceEvent(\n        prepareTraceEventForDisk(completed, traceSafety),\n        traceDir,\n      );\n    });\n\n    await safeInstrumentation(\"printRunComplete(success)\", () => {\n      printRunComplete(runName, runId, durationMs, \"success\", printPath);\n    });\n\n    return result;\n  }, traceSafety);\n}\n","import { inspectRun } from \"./inspect-run.js\";\nimport type { InspectRunOptions } from \"./types.js\";\n\nconst ENABLED_ENV_VALUES = new Set([\"1\", \"true\", \"yes\", \"on\", \"enabled\"]);\n\n/**\n * Returns true when `value` is one of the recognized AGENT_INSPECT enable tokens\n * (`1`, `true`, `yes`, `on`, `enabled`, case-insensitive). Undefined or any other value is false.\n */\nexport function isAgentInspectEnabled(value?: string): boolean {\n  if (value === undefined) return false;\n  const normalized = value.trim().toLowerCase();\n  if (normalized === \"\") return false;\n  return ENABLED_ENV_VALUES.has(normalized);\n}\n\n/**\n * Runs `fn` with tracing when enabled; otherwise passthrough (no trace file, no context).\n *\n * Enablement order: explicit `options.enabled` wins; when omitted, reads `process.env.AGENT_INSPECT`.\n * Unset or unrecognized env values disable tracing.\n */\nexport async function maybeInspectRun<T>(\n  name: string,\n  fn: () => Promise<T> | T,\n  options?: InspectRunOptions,\n): Promise<T> {\n  if (typeof fn !== \"function\") {\n    throw new TypeError(\"maybeInspectRun requires `fn` to be a function\");\n  }\n\n  const enabled =\n    options?.enabled !== undefined\n      ? options.enabled\n      : isAgentInspectEnabled(process.env.AGENT_INSPECT);\n\n  if (!enabled) {\n    return Promise.resolve(fn());\n  }\n\n  return inspectRun(name, fn, options);\n}\n"]}