mirascope 2.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/README.md +397 -0
  2. package/dist/bun.cjs +447 -0
  3. package/dist/bun.cjs.map +1 -0
  4. package/dist/bun.d.cts +53 -0
  5. package/dist/bun.d.ts +53 -0
  6. package/dist/bun.js +94 -0
  7. package/dist/bun.js.map +1 -0
  8. package/dist/chunk-2R5IW35Y.js +116 -0
  9. package/dist/chunk-2R5IW35Y.js.map +1 -0
  10. package/dist/chunk-A6ZCB7BU.js +6826 -0
  11. package/dist/chunk-A6ZCB7BU.js.map +1 -0
  12. package/dist/chunk-NSBPE2FW.js +15 -0
  13. package/dist/chunk-NSBPE2FW.js.map +1 -0
  14. package/dist/chunk-RMNCGJYW.js +49 -0
  15. package/dist/chunk-RMNCGJYW.js.map +1 -0
  16. package/dist/chunk-U4MFJ4DP.js +358 -0
  17. package/dist/chunk-U4MFJ4DP.js.map +1 -0
  18. package/dist/index.cjs +7705 -0
  19. package/dist/index.cjs.map +1 -0
  20. package/dist/index.d.cts +4859 -0
  21. package/dist/index.d.ts +4859 -0
  22. package/dist/index.js +324 -0
  23. package/dist/index.js.map +1 -0
  24. package/dist/model-T6IQ7UUA.js +4 -0
  25. package/dist/model-T6IQ7UUA.js.map +1 -0
  26. package/dist/tool-schema-Dh-RLHhC.d.cts +45 -0
  27. package/dist/tool-schema-Dh-RLHhC.d.ts +45 -0
  28. package/dist/transform/index.cjs +525 -0
  29. package/dist/transform/index.cjs.map +1 -0
  30. package/dist/transform/index.d.cts +89 -0
  31. package/dist/transform/index.d.ts +89 -0
  32. package/dist/transform/index.js +6 -0
  33. package/dist/transform/index.js.map +1 -0
  34. package/dist/transform/plugins/esbuild.cjs +472 -0
  35. package/dist/transform/plugins/esbuild.cjs.map +1 -0
  36. package/dist/transform/plugins/esbuild.d.cts +46 -0
  37. package/dist/transform/plugins/esbuild.d.ts +46 -0
  38. package/dist/transform/plugins/esbuild.js +5 -0
  39. package/dist/transform/plugins/esbuild.js.map +1 -0
  40. package/dist/transform/plugins/vite.cjs +405 -0
  41. package/dist/transform/plugins/vite.cjs.map +1 -0
  42. package/dist/transform/plugins/vite.d.cts +50 -0
  43. package/dist/transform/plugins/vite.d.ts +50 -0
  44. package/dist/transform/plugins/vite.js +5 -0
  45. package/dist/transform/plugins/vite.js.map +1 -0
  46. package/package.json +127 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/transform/type-to-schema.ts","../../../src/transform/transformer.ts","../../../src/transform/plugins/vite.ts"],"names":["ts","typescript"],"mappings":";;;;;;;;;;;;;AAmCA,SAAS,eAAA,CAAgB,MAAe,OAAA,EAAkC;AAExE,EAAA,IAAI,IAAA,CAAK,QAAA,EAAS,GAAIA,mBAAA,CAAG,UAAU,MAAA,EAAQ;AACzC,IAAA,MAAM,UAAA,GAAa,IAAA;AACnB,IAAA,MAAM,cAAc,UAAA,CAAW,WAAA;AAG/B,IAAA,IAAI,WAAA,GAAcA,mBAAA,CAAG,WAAA,CAAY,SAAA,EAAW;AAC1C,MAAA,MAAM,OAAA,GAAU,IAAA;AAChB,MAAA,MAAM,SAAS,OAAA,CAAQ,MAAA;AACvB,MAAA,IAAI,MAAA,IAAU,MAAA,CAAO,OAAA,EAAQ,KAAM,OAAA,EAAS;AAC1C,QAAA,OAAO,IAAA;AAAA,MACT;AAEA,MAAA,MAAM,SAAS,OAAA,CAAQ,MAAA;AACvB,MAAA,IAAI,UAAU,MAAA,CAAO,MAAA,IAAU,OAAO,MAAA,CAAO,OAAA,OAAc,OAAA,EAAS;AAClE,QAAA,OAAO,IAAA;AAAA,MACT;AAAA,IACF;AAAA,EACF;AAGA,EAAA,MAAM,UAAA,GAAa,OAAA,CAAQ,YAAA,CAAa,IAAI,CAAA;AAC5C,EAAA,IAAI,WAAW,QAAA,CAAS,IAAI,KAAK,UAAA,CAAW,UAAA,CAAW,QAAQ,CAAA,EAAG;AAChE,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,OAAO,KAAA;AACT;AAUO,SAAS,gBAAA,CACd,MACA,GAAA,EACoB;AACpB,EAAA,MAAM,UAAU,GAAA,CAAI,OAAA;AAGpB,EAAA,IAAI,IAAA,CAAK,SAAQ,EAAG;AAClB,IAAA,OAAO,eAAA,CAAgB,MAAM,GAAG,CAAA;AAAA,EAClC;AAGA,EAAA,IAAI,IAAA,CAAK,gBAAe,EAAG;AACzB,IAAA,OAAO,sBAAA,CAAuB,MAAM,GAAG,CAAA;AAAA,EACzC;AAGA,EAAA,IAAI,IAAA,CAAK,WAAU,EAAG;AACpB,IAAA,OAAO,kBAAkB,IAAI,CAAA;AAAA,EAC/B;AAIA,EAAA,MAAM,KAAA,GAAQ,KAAK,QAAA,EAAS;AAC5B,EAAA,IAAI,KAAA,GAAQA,mBAAA,CAAG,SAAA,CAAU,cAAA,EAAgB;AACvC,IAAA,MAAM,gBAAiB,IAAA,CACpB,aAAA;AACH,IAAA,MAAM,SAAS,aAAA,KAAkB,MAAA;AACjC,IAAA,OAAO,EAAE,IAAA,EAAM,SAAA,EAAW,IAAA,EAAM,CAAC,MAAM,CAAA,EAAE;AAAA,EAC3C;AAIA,EAAA,IAAI,KAAA,GAAQA,mBAAA,CAAG,SAAA,CAAU,MAAA,EAAQ;AAC/B,IAAA,OAAO,EAAE,MAAM,QAAA,EAAS;AAAA,EAC1B;AAEA,EAAA,IAAI,KAAA,GAAQA,mBAAA,CAAG,SAAA,CAAU,MAAA,EAAQ;AAC/B,IAAA,OAAO,EAAE,MAAM,QAAA,EAAS;AAAA,EAC1B;AAEA,EAAA,IAAI,KAAA,GAAQA,mBAAA,CAAG,SAAA,CAAU,IAAA,EAAM;AAC7B,IAAA,OAAO,EAAE,MAAM,MAAA,EAAO;AAAA,EACxB;AAEA,EAAA,IAAI,KAAA,GAAQA,mBAAA,CAAG,SAAA,CAAU,SAAA,EAAW;AAElC,IAAA,OAAO,EAAC;AAAA,EACV;AAIA,EAAA,IAAI,QAAQ,WAAA,CAAY,IAAI,KAAK,eAAA,CAAgB,IAAA,EAAM,OAAO,CAAA,EAAG;AAC/D,IAAA,MAAM,OAAA,GAAU,IAAA;AAChB,IAAA,MAAM,QAAA,GAAW,OAAA,CAAQ,gBAAA,CAAiB,OAAO,CAAA;AACjD,IAAA,IAAI,QAAA,IAAY,QAAA,CAAS,MAAA,GAAS,CAAA,EAAG;AACnC,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,OAAA;AAAA,QACN,KAAA,EAAO,gBAAA,CAAiB,QAAA,CAAS,CAAC,GAAI,GAAG;AAAA,OAC3C;AAAA,IACF;AAGA,IAAA,OAAO,EAAE,MAAM,OAAA,EAAQ;AAAA,EACzB;AAGA,EAAA,IAAI,KAAA,GAAQA,mBAAA,CAAG,SAAA,CAAU,MAAA,EAAQ;AAC/B,IAAA,OAAO,gBAAA,CAAiB,MAAuB,GAAG,CAAA;AAAA,EACpD;AAGA,EAAA,OAAO,EAAC;AACV;AAMA,SAAS,eAAA,CACP,MACA,GAAA,EACoB;AACpB,EAAA,MAAM,QAAQ,IAAA,CAAK,KAAA;AAGnB,EAAA,MAAM,oBAAoB,KAAA,CAAM,MAAA;AAAA,IAC9B,CAAC,CAAA,KAAM,EAAE,EAAE,QAAA,EAAS,GAAIA,oBAAG,SAAA,CAAU,SAAA;AAAA,GACvC;AAGA,EAAA,IACE,iBAAA,CAAkB,MAAA,KAAW,CAAA,IAC7B,iBAAA,CAAkB,KAAA,CAAM,CAAC,CAAA,KAAM,CAAA,CAAE,QAAA,EAAS,GAAIA,mBAAA,CAAG,SAAA,CAAU,cAAc,CAAA,EACzE;AACA,IAAA,OAAO,EAAE,MAAM,SAAA,EAAU;AAAA,EAC3B;AAGA,EAAA,IACE,iBAAA,CAAkB,KAAA;AAAA,IAAM,CAAC,CAAA,KACvB,CAAA,CAAE,eAAA;AAAgB,GACpB,EACA;AACA,IAAA,OAAO;AAAA,MACL,IAAA,EAAM,QAAA;AAAA,MACN,MAAM,iBAAA,CAAkB,GAAA,CAAI,CAAC,CAAA,KAAM,EAAE,KAAK;AAAA,KAC5C;AAAA,EACF;AAEA,EAAA,IACE,iBAAA,CAAkB,KAAA;AAAA,IAAM,CAAC,CAAA,KACvB,CAAA,CAAE,eAAA;AAAgB,GACpB,EACA;AACA,IAAA,OAAO;AAAA,MACL,IAAA,EAAM,QAAA;AAAA,MACN,MAAM,iBAAA,CAAkB,GAAA,CAAI,CAAC,CAAA,KAAM,EAAE,KAAK;AAAA,KAC5C;AAAA,EACF;AAGA,EAAA,IAAI,iBAAA,CAAkB,WAAW,CAAA,EAAG;AAClC,IAAA,OAAO,gBAAA,CAAiB,iBAAA,CAAkB,CAAC,CAAA,EAAI,GAAG,CAAA;AAAA,EACpD;AAGA,EAAA,OAAO;AAAA,IACL,KAAA,EAAO,kBAAkB,GAAA,CAAI,CAAC,MAAM,gBAAA,CAAiB,CAAA,EAAG,GAAG,CAAC;AAAA,GAC9D;AACF;AAKA,SAAS,sBAAA,CACP,MACA,GAAA,EACoB;AACpB,EAAA,MAAM,KAAA,GAAQ,KAAK,KAAA,CAAM,GAAA,CAAI,CAAC,CAAA,KAAM,gBAAA,CAAiB,CAAA,EAAG,GAAG,CAAC,CAAA;AAG5D,EAAA,IAAI,MAAM,KAAA,CAAM,CAAC,MAAM,CAAA,CAAE,IAAA,KAAS,QAAQ,CAAA,EAAG;AAC3C,IAAA,MAAM,MAAA,GAA6B;AAAA,MACjC,IAAA,EAAM,QAAA;AAAA,MACN,YAAY,EAAC;AAAA,MACb,UAAU;AAAC,KACb;AAEA,IAAA,KAAA,MAAW,UAAU,KAAA,EAAO;AAC1B,MAAA,IAAI,OAAO,UAAA,EAAY;AACrB,QAAA,MAAA,CAAO,aAAa,EAAE,GAAG,OAAO,UAAA,EAAY,GAAG,OAAO,UAAA,EAAW;AAAA,MACnE;AACA,MAAA,IAAI,OAAO,QAAA,EAAU;AACnB,QAAA,MAAA,CAAO,QAAA,GAAW;AAAA,UAChB,GAAI,MAAA,CAAO,QAAA;AAAA,UACX,GAAI,MAAA,CAAO;AAAA,SACb;AAAA,MACF;AAAA,IACF;AAEA,IAAA,OAAO,MAAA;AAAA,EACT;AAEA,EAAA,OAAO,EAAE,KAAA,EAAM;AACjB;AAOA,SAAS,kBAAkB,IAAA,EAAmC;AAC5D,EAAA,IAAI,IAAA,CAAK,iBAAgB,EAAG;AAC1B,IAAA,OAAO,EAAE,IAAA,EAAM,QAAA,EAAU,MAAM,CAAC,IAAA,CAAK,KAAK,CAAA,EAAE;AAAA,EAC9C;AAEA,EAAA,IAAI,IAAA,CAAK,iBAAgB,EAAG;AAC1B,IAAA,OAAO,EAAE,IAAA,EAAM,QAAA,EAAU,MAAM,CAAC,IAAA,CAAK,KAAK,CAAA,EAAE;AAAA,EAC9C;AAGA,EAAA,OAAO,EAAC;AACV;AAMA,SAAS,gBAAA,CACP,MACA,GAAA,EACoB;AACpB,EAAA,MAAM,UAAU,GAAA,CAAI,OAAA;AACpB,EAAA,MAAM,aAAiD,EAAC;AACxD,EAAA,MAAM,WAAqB,EAAC;AAG5B,EAAA,MAAM,KAAA,GAAQ,OAAA,CAAQ,mBAAA,CAAoB,IAAI,CAAA;AAE9C,EAAA,KAAA,MAAW,QAAQ,KAAA,EAAO;AACxB,IAAA,MAAM,QAAA,GAAW,KAAK,OAAA,EAAQ;AAC9B,IAAA,MAAM,QAAA,GAAW,OAAA,CAAQ,eAAA,CAAgB,IAAI,CAAA;AAG7C,IAAA,MAAM,cAAc,IAAA,CAAK,QAAA,EAAS,GAAIA,mBAAA,CAAG,YAAY,QAAA,MAAc,CAAA;AAGnE,IAAA,MAAM,UAAA,GAAa,gBAAA,CAAiB,QAAA,EAAU,GAAG,CAAA;AAGjD,IAAA,MAAM,YAAA,GAAe,IAAA,CAAK,uBAAA,CAAwB,OAAO,CAAA;AACzD,IAAA,IAAI,YAAA,CAAa,SAAS,CAAA,EAAG;AAC3B,MAAA,MAAM,WAAA,GAAc,aAAa,GAAA,CAAI,CAAC,MAAM,CAAA,CAAE,IAAI,CAAA,CAAE,IAAA,CAAK,EAAE,CAAA;AAC3D,MAAA,UAAA,CAAW,WAAA,GAAc,WAAA;AAAA,IAC3B;AAEA,IAAA,UAAA,CAAW,QAAQ,CAAA,GAAI,UAAA;AAGvB,IAAA,IAAI,CAAC,UAAA,EAAY;AACf,MAAA,QAAA,CAAS,KAAK,QAAQ,CAAA;AAAA,IACxB;AAAA,EACF;AAEA,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,QAAA;AAAA,IACN,UAAA;AAAA,IACA,QAAA,EAAU,QAAA,CAAS,MAAA,GAAS,CAAA,GAAI,QAAA,GAAW;AAAA,GAC7C;AACF;AAYO,SAAS,yBAAA,CACd,MACA,OAAA,EACqB;AACrB,EAAA,MAAM,GAAA,GAAyB;AAAA,IAC7B,OAAA;AAAA,IACA,WAAA,sBAAiB,GAAA,EAEnB,CAAA;AAEA,EAAA,MAAM,MAAA,GAAS,gBAAA,CAAiB,IAAA,EAAM,GAAG,CAAA;AAGzC,EAAA,IAAI,MAAA,CAAO,SAAS,QAAA,EAAU;AAC5B,IAAA,MAAM,IAAI,KAAA;AAAA,MACR,mDAAA,GACE,IAAA,CAAK,SAAA,CAAU,MAAM;AAAA,KACzB;AAAA,EACF;AAGA,EAAA,MAAM,MAAA,GAMF;AAAA,IACF,IAAA,EAAM,QAAA;AAAA,IACN,UAAA,EAAY,MAAA,CAAO,UAAA,IAAc,EAAC;AAAA,IAClC,QAAA,EAAW,MAAA,CAAO,QAAA,IAAkC,EAAC;AAAA,IACrD,oBAAA,EAAsB;AAAA,GACxB;AAIA,EAAA,IAAI,GAAA,CAAI,WAAA,CAAY,IAAA,GAAO,CAAA,EAAG;AAC5B,IAAA,MAAA,CAAO,KAAA,GAAQ,MAAA,CAAO,WAAA,CAAY,GAAA,CAAI,WAAW,CAAA;AAAA,EACnD;AAGA,EAAA,OAAO,MAAA;AACT;;;ACtVA,IAAM,sCAAsB,IAAI,GAAA,CAAI,CAAC,YAAA,EAAc,mBAAmB,CAAC,CAAA;AAKvE,IAAM,qBAAA,mBAAwB,IAAI,GAAA,CAAI,CAAC,cAAc,CAAC,CAAA;AAQ/C,SAAS,4BACd,OAAA,EACsC;AACtC,EAAA,MAAM,OAAA,GAAU,QAAQ,cAAA,EAAe;AAEvC,EAAA,OAAO,CAAC,OAAA,KAAsC;AAC5C,IAAA,OAAO,CAAC,UAAA,KAA8B;AACpC,MAAA,MAAM,OAAA,GAAU,CAAC,IAAA,KAA2B;AAE1C,QAAA,IAAIA,mBAAAA,CAAG,gBAAA,CAAiB,IAAI,CAAA,EAAG;AAE7B,UAAA,MAAM,eAAA,GAAkB,oBAAA,CAAqB,IAAA,EAAM,OAAA,EAAS,OAAO,CAAA;AACnE,UAAA,IAAI,eAAA,EAAiB;AACnB,YAAA,OAAO,eAAA;AAAA,UACT;AAGA,UAAA,MAAM,iBAAA,GAAoB,sBAAA;AAAA,YACxB,IAAA;AAAA,YACA,OAAA;AAAA,YACA;AAAA,WACF;AACA,UAAA,IAAI,iBAAA,EAAmB;AACrB,YAAA,OAAO,iBAAA;AAAA,UACT;AAAA,QACF;AAGA,QAAA,OAAOA,mBAAAA,CAAG,cAAA,CAAe,IAAA,EAAM,OAAA,EAAS,OAAO,CAAA;AAAA,MACjD,CAAA;AAEA,MAAA,OAAOA,mBAAAA,CAAG,SAAA,CAAU,UAAA,EAAY,OAAO,CAAA;AAAA,IACzC,CAAA;AAAA,EACF,CAAA;AACF;AAUA,SAAS,oBAAA,CACP,IAAA,EACA,OAAA,EACA,OAAA,EAC+B;AAE/B,EAAA,MAAM,YAAA,GAAe,gBAAgB,IAAI,CAAA;AACzC,EAAA,IAAI,CAAC,YAAA,IAAgB,CAAC,mBAAA,CAAoB,GAAA,CAAI,YAAY,CAAA,EAAG;AAC3D,IAAA,OAAO,MAAA;AAAA,EACT;AAGA,EAAA,MAAM,WAAW,IAAA,CAAK,aAAA;AACtB,EAAA,IAAI,CAAC,QAAA,IAAY,QAAA,CAAS,MAAA,KAAW,CAAA,EAAG;AAEtC,IAAA,OAAO,MAAA;AAAA,EACT;AAGA,EAAA,MAAM,YAAA,GAAe,SAAS,CAAC,CAAA;AAC/B,EAAA,MAAM,QAAA,GAAW,OAAA,CAAQ,mBAAA,CAAoB,YAAY,CAAA;AAGzD,EAAA,IAAI,MAAA;AACJ,EAAA,IAAI;AACF,IAAA,MAAA,GAAS,yBAAA,CAA0B,UAAU,OAAO,CAAA;AAAA,EACtD,CAAA,CAAA,MAAQ;AAEN,IAAA,OAAO,MAAA;AAAA,EACT;AAGA,EAAA,MAAM,OAAO,IAAA,CAAK,SAAA;AAClB,EAAA,MAAM,QAAA,GAAW,KAAK,CAAC,CAAA;AACvB,EAAA,IAAI,CAAC,QAAA,IAAY,CAACA,mBAAAA,CAAG,yBAAA,CAA0B,QAAQ,CAAA,EAAG;AACxD,IAAA,OAAO,MAAA;AAAA,EACT;AAEA,EAAA,MAAM,aAAA,GAAgB,QAAA;AAGtB,EAAA,MAAM,SAAA,GAAY,cAAc,UAAA,CAAW,IAAA;AAAA,IACzC,CAAC,IAAA,KACCA,mBAAAA,CAAG,oBAAA,CAAqB,IAAI,CAAA,IAC5BA,mBAAAA,CAAG,YAAA,CAAa,IAAA,CAAK,IAAI,CAAA,IACzB,IAAA,CAAK,KAAK,IAAA,KAAS;AAAA,GACvB;AAEA,EAAA,IAAI,SAAA,EAAW;AAEb,IAAA,OAAO,MAAA;AAAA,EACT;AAGA,EAAA,MAAM,cAAA,GAAiB,oBAAA,CAAqB,MAAA,EAAQ,OAAA,CAAQ,OAAO,CAAA;AAGnE,EAAA,MAAM,aAAA,GAAgB,CAAC,GAAG,aAAA,CAAc,YAAY,cAAc,CAAA;AAClE,EAAA,MAAM,gBAAA,GAAmB,QAAQ,OAAA,CAAQ,6BAAA;AAAA,IACvC,aAAA;AAAA,IACA;AAAA,GACF;AAGA,EAAA,MAAM,UAAU,CAAC,gBAAA,EAAkB,GAAG,IAAA,CAAK,KAAA,CAAM,CAAC,CAAC,CAAA;AACnD,EAAA,OAAO,QAAQ,OAAA,CAAQ,oBAAA;AAAA,IACrB,IAAA;AAAA,IACA,IAAA,CAAK,UAAA;AAAA,IACL,IAAA,CAAK,aAAA;AAAA,IACL;AAAA,GACF;AACF;AAeA,SAAS,sBAAA,CACP,IAAA,EACA,OAAA,EACA,OAAA,EAC+B;AAE/B,EAAA,MAAM,YAAA,GAAe,gBAAgB,IAAI,CAAA;AACzC,EAAA,IAAI,CAAC,YAAA,IAAgB,CAAC,qBAAA,CAAsB,GAAA,CAAI,YAAY,CAAA,EAAG;AAC7D,IAAA,OAAO,MAAA;AAAA,EACT;AAGA,EAAA,MAAM,WAAW,IAAA,CAAK,aAAA;AACtB,EAAA,IAAI,CAAC,QAAA,IAAY,QAAA,CAAS,MAAA,KAAW,CAAA,EAAG;AAEtC,IAAA,OAAO,MAAA;AAAA,EACT;AAGA,EAAA,MAAM,cAAA,GAAiB,SAAS,CAAC,CAAA;AACjC,EAAA,MAAM,UAAA,GAAa,OAAA,CAAQ,mBAAA,CAAoB,cAAc,CAAA;AAG7D,EAAA,MAAM,OAAO,IAAA,CAAK,SAAA;AAClB,EAAA,MAAM,QAAA,GAAW,KAAK,CAAC,CAAA;AACvB,EAAA,IAAI,CAAC,QAAA,EAAU;AACb,IAAA,OAAO,MAAA;AAAA,EACT;AAGA,EAAA,IAAIA,mBAAAA,CAAG,yBAAA,CAA0B,QAAQ,CAAA,EAAG;AAC1C,IAAA,MAAM,gBAAA,GAAmB,QAAA;AAGzB,IAAA,MAAM,SAAA,GAAY,iBAAiB,UAAA,CAAW,IAAA;AAAA,MAC5C,CAAC,IAAA,KACCA,mBAAAA,CAAG,oBAAA,CAAqB,IAAI,CAAA,IAC5BA,mBAAAA,CAAG,YAAA,CAAa,IAAA,CAAK,IAAI,CAAA,IACzB,IAAA,CAAK,KAAK,IAAA,KAAS;AAAA,KACvB;AAEA,IAAA,IAAI,SAAA,EAAW;AAEb,MAAA,OAAO,MAAA;AAAA,IACT;AAGA,IAAA,IAAI,MAAA;AACJ,IAAA,IAAI;AACF,MAAA,MAAA,GAAS,yBAAA,CAA0B,YAAY,OAAO,CAAA;AAAA,IACxD,CAAA,CAAA,MAAQ;AAEN,MAAA,OAAO,MAAA;AAAA,IACT;AAGA,IAAA,MAAM,cAAA,GAAiB,oBAAA,CAAqB,MAAA,EAAQ,OAAA,CAAQ,OAAO,CAAA;AAGnE,IAAA,MAAM,aAAA,GAAgB,CAAC,GAAG,gBAAA,CAAiB,YAAY,cAAc,CAAA;AACrE,IAAA,MAAM,mBAAA,GAAsB,QAAQ,OAAA,CAAQ,6BAAA;AAAA,MAC1C,gBAAA;AAAA,MACA;AAAA,KACF;AAGA,IAAA,MAAM,UAAU,CAAC,mBAAA,EAAqB,GAAG,IAAA,CAAK,KAAA,CAAM,CAAC,CAAC,CAAA;AACtD,IAAA,OAAO,QAAQ,OAAA,CAAQ,oBAAA;AAAA,MACrB,IAAA;AAAA,MACA,IAAA,CAAK,UAAA;AAAA,MACL,IAAA,CAAK,aAAA;AAAA,MACL;AAAA,KACF;AAAA,EACF;AAIA,EAAA,OAAO,MAAA;AACT;AAMA,SAAS,gBAAgB,IAAA,EAA6C;AACpE,EAAA,MAAM,aAAa,IAAA,CAAK,UAAA;AAGxB,EAAA,IAAIA,mBAAAA,CAAG,YAAA,CAAa,UAAU,CAAA,EAAG;AAC/B,IAAA,OAAO,UAAA,CAAW,IAAA;AAAA,EACpB;AAGA,EAAA,IAAIA,mBAAAA,CAAG,0BAAA,CAA2B,UAAU,CAAA,EAAG;AAC7C,IAAA,OAAO,WAAW,IAAA,CAAK,IAAA;AAAA,EACzB;AAEA,EAAA,OAAO,MAAA;AACT;AAMA,SAAS,oBAAA,CACP,QACA,OAAA,EACuB;AACvB,EAAA,OAAO,OAAA,CAAQ,wBAAA;AAAA,IACb,OAAA,CAAQ,iBAAiB,UAAU,CAAA;AAAA,IACnC,SAAA,CAAU,QAAQ,OAAO;AAAA,GAC3B;AACF;AASA,SAAS,SAAA,CAAU,OAAgB,OAAA,EAAwC;AAIzE,EAAA,IAAI,UAAU,IAAA,EAAM;AAClB,IAAA,OAAO,QAAQ,UAAA,EAAW;AAAA,EAC5B;AACA,EAAA,IAAI,UAAU,MAAA,EAAW;AACvB,IAAA,OAAO,OAAA,CAAQ,iBAAiB,WAAW,CAAA;AAAA,EAC7C;AAGA,EAAA,IAAI,OAAO,UAAU,QAAA,EAAU;AAC7B,IAAA,OAAO,OAAA,CAAQ,oBAAoB,KAAK,CAAA;AAAA,EAC1C;AAEA,EAAA,IAAI,OAAO,UAAU,QAAA,EAAU;AAC7B,IAAA,OAAO,OAAA,CAAQ,qBAAqB,KAAK,CAAA;AAAA,EAC3C;AAEA,EAAA,IAAI,OAAO,UAAU,SAAA,EAAW;AAE9B,IAAA,OAAO,KAAA,GAAQ,OAAA,CAAQ,UAAA,EAAW,GAAI,QAAQ,WAAA,EAAY;AAAA,EAC5D;AAEA,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG;AACxB,IAAA,OAAO,OAAA,CAAQ,4BAAA;AAAA,MACb,MAAM,GAAA,CAAI,CAAC,SAAS,SAAA,CAAU,IAAA,EAAM,OAAO,CAAC;AAAA,KAC9C;AAAA,EACF;AAEA,EAAA,IAAI,OAAO,UAAU,QAAA,EAAU;AAC7B,IAAA,MAAM,UAAA,GAAa,MAAA,CAAO,OAAA,CAAQ,KAAK,CAAA,CAAE,GAAA;AAAA,MAAI,CAAC,CAAC,GAAA,EAAK,GAAG,MACrD,OAAA,CAAQ,wBAAA;AAAA,QACN,OAAA,CAAQ,iBAAiB,GAAG,CAAA;AAAA,QAC5B,SAAA,CAAU,KAAK,OAAO;AAAA;AACxB,KACF;AACA,IAAA,OAAO,OAAA,CAAQ,6BAAA,CAA8B,UAAA,EAAY,IAAI,CAAA;AAAA,EAC/D;AAKA,EAAA,OAAO,OAAA,CAAQ,iBAAiB,WAAW,CAAA;AAC7C;;;AC7QO,SAAS,SAAA,CAAU,OAAA,GAAsC,EAAC,EAAa;AAC5E,EAAA,MAAM;AAAA,IACJ,UAAA,EAAY,YAAY,EAAC;AAAA,IACzB,sBAAA;AAAA,IACA,OAAA,GAAU,aAAA;AAAA,IACV,OAAA,GAAU;AAAA,GACZ,GAAI,OAAA;AAMJ,EAAA,MAAM,YAAA,GAAe,CAAC,OAAA,KAA+C;AACnE,IAAA,MAAM,oBAAA,GAAuB,4BAA4B,OAAO,CAAA;AAEhE,IAAA,OAAO;AAAA,MACL,QAAQ,CAAC,oBAAA,EAAsB,GAAI,sBAAA,EAAwB,MAAA,IAAU,EAAG,CAAA;AAAA,MACxE,OAAO,sBAAA,EAAwB,KAAA;AAAA,MAC/B,mBAAmB,sBAAA,EAAwB;AAAA,KAC7C;AAAA,EACF,CAAA;AAGA,EAAA,OAAO;AAAA,IACL;AAAA,MACE,IAAA,EAAM,eAAA;AAAA,MACN,OAAA,EAAS,KAAA;AAAA,MACT,MAAA,GAAS;AACP,QAAA,OAAO;AAAA,UACL,OAAA,EAAS;AAAA;AAAA;AAAA,YAGP,OAAA,EAAS,OAAA;AAAA;AAAA,YACT,OAAA,EAAS;AAAA;AAAA;AACX,SACF;AAAA,MACF;AAAA,KACF;AAAA;AAAA,IAEAC,2BAAA,CAAW;AAAA,MACT,GAAG,SAAA;AAAA,MACH,YAAA;AAAA,MACA,OAAA;AAAA,MACA;AAAA,KACD;AAAA,GACH;AACF;AAEA,IAAO,YAAA,GAAQ","file":"vite.cjs","sourcesContent":["/**\n * Convert TypeScript types to JSON Schema.\n *\n * Uses the TypeScript Compiler API to introspect types and generate\n * JSON Schema representations suitable for LLM tool definitions.\n */\n\nimport ts from \"typescript\";\n\nimport type { JsonSchemaProperty, ToolParameterSchema } from \"@/llm/tools\";\n\n/**\n * Context for type-to-schema conversion.\n */\ninterface ConversionContext {\n /** The TypeScript type checker. */\n checker: ts.TypeChecker;\n /** Definitions for referenced types ($defs). */\n definitions: Map<string, JsonSchemaProperty>;\n /** Set of type names currently being processed (for cycle detection). */\n processing: Set<string>;\n}\n\n/**\n * Check if a type is an array-like type (handles cases where isArrayType doesn't work).\n *\n * This is needed because TypeScript's isArrayType requires proper lib.d.ts setup.\n * We also check for Array<T> and T[] patterns by looking at the type structure.\n *\n * Coverage ignored: This is defensive fallback code for edge cases where\n * checker.isArrayType() fails due to missing/broken lib.d.ts. In normal\n * usage with proper TypeScript setup, checker.isArrayType() succeeds and\n * this function is never called (short-circuit evaluation on line 120).\n */\n/* v8 ignore start */\nfunction isArrayLikeType(type: ts.Type, checker: ts.TypeChecker): boolean {\n // Check if it's a TypeReference with 'Array' as the symbol name\n if (type.getFlags() & ts.TypeFlags.Object) {\n const objectType = type as ts.ObjectType;\n const objectFlags = objectType.objectFlags;\n\n // Check for array reference (Array<T>)\n if (objectFlags & ts.ObjectFlags.Reference) {\n const typeRef = type as ts.TypeReference;\n const symbol = typeRef.symbol;\n if (symbol && symbol.getName() === \"Array\") {\n return true;\n }\n // Also check the target's symbol for ReadonlyArray, etc.\n const target = typeRef.target;\n if (target && target.symbol && target.symbol.getName() === \"Array\") {\n return true;\n }\n }\n }\n\n // Check the type string as a fallback\n const typeString = checker.typeToString(type);\n if (typeString.endsWith(\"[]\") || typeString.startsWith(\"Array<\")) {\n return true;\n }\n\n return false;\n}\n/* v8 ignore end */\n\n/**\n * Convert a TypeScript type to a JSON Schema property.\n *\n * @param type - The TypeScript type to convert.\n * @param ctx - The conversion context.\n * @returns The JSON Schema property.\n */\nexport function typeToJsonSchema(\n type: ts.Type,\n ctx: ConversionContext,\n): JsonSchemaProperty {\n const checker = ctx.checker;\n\n // Handle union types (including optional which is T | undefined)\n if (type.isUnion()) {\n return handleUnionType(type, ctx);\n }\n\n // Handle intersection types\n if (type.isIntersection()) {\n return handleIntersectionType(type, ctx);\n }\n\n // Handle literal types\n if (type.isLiteral()) {\n return handleLiteralType(type);\n }\n\n // Handle boolean literals (true/false) - these aren't captured by isLiteral()\n // They are intrinsic types with BooleanLiteral flag\n const flags = type.getFlags();\n if (flags & ts.TypeFlags.BooleanLiteral) {\n const intrinsicName = (type as ts.Type & { intrinsicName?: string })\n .intrinsicName;\n const isTrue = intrinsicName === \"true\";\n return { type: \"boolean\", enum: [isTrue] };\n }\n\n // Handle primitive types\n\n if (flags & ts.TypeFlags.String) {\n return { type: \"string\" };\n }\n\n if (flags & ts.TypeFlags.Number) {\n return { type: \"number\" };\n }\n\n if (flags & ts.TypeFlags.Null) {\n return { type: \"null\" };\n }\n\n if (flags & ts.TypeFlags.Undefined) {\n // undefined is typically filtered out from unions\n return {};\n }\n\n // Handle array types\n // Check both checker.isArrayType and TypeReference patterns\n if (checker.isArrayType(type) || isArrayLikeType(type, checker)) {\n const typeRef = type as ts.TypeReference;\n const typeArgs = checker.getTypeArguments(typeRef);\n if (typeArgs && typeArgs.length > 0) {\n return {\n type: \"array\",\n items: typeToJsonSchema(typeArgs[0]!, ctx),\n };\n }\n // Coverage ignored: Fallback for arrays without type arguments (e.g., broken lib.d.ts)\n /* v8 ignore next */\n return { type: \"array\" };\n }\n\n // Handle object types (interfaces, type literals, classes)\n if (flags & ts.TypeFlags.Object) {\n return handleObjectType(type as ts.ObjectType, ctx);\n }\n\n /* v8 ignore start */\n return {};\n}\n/* v8 ignore end */\n\n/**\n * Handle union types, including optional types (T | undefined).\n */\nfunction handleUnionType(\n type: ts.UnionType,\n ctx: ConversionContext,\n): JsonSchemaProperty {\n const types = type.types;\n\n // Filter out undefined (for optional properties)\n const nonUndefinedTypes = types.filter(\n (t) => !(t.getFlags() & ts.TypeFlags.Undefined),\n );\n\n // Check if this is a boolean type (union of true | false)\n if (\n nonUndefinedTypes.length === 2 &&\n nonUndefinedTypes.every((t) => t.getFlags() & ts.TypeFlags.BooleanLiteral)\n ) {\n return { type: \"boolean\" };\n }\n\n // If all non-undefined types are string/number literals, create an enum\n if (\n nonUndefinedTypes.every((t): t is ts.StringLiteralType =>\n t.isStringLiteral(),\n )\n ) {\n return {\n type: \"string\",\n enum: nonUndefinedTypes.map((t) => t.value),\n };\n }\n\n if (\n nonUndefinedTypes.every((t): t is ts.NumberLiteralType =>\n t.isNumberLiteral(),\n )\n ) {\n return {\n type: \"number\",\n enum: nonUndefinedTypes.map((t) => t.value),\n };\n }\n\n // If only one non-undefined type remains, use it directly\n if (nonUndefinedTypes.length === 1) {\n return typeToJsonSchema(nonUndefinedTypes[0]!, ctx);\n }\n\n // Otherwise, create a oneOf schema\n return {\n oneOf: nonUndefinedTypes.map((t) => typeToJsonSchema(t, ctx)),\n };\n}\n\n/**\n * Handle intersection types by merging properties.\n */\nfunction handleIntersectionType(\n type: ts.IntersectionType,\n ctx: ConversionContext,\n): JsonSchemaProperty {\n const allOf = type.types.map((t) => typeToJsonSchema(t, ctx));\n\n // If all parts are objects, try to merge them\n if (allOf.every((s) => s.type === \"object\")) {\n const merged: JsonSchemaProperty = {\n type: \"object\",\n properties: {},\n required: [],\n };\n\n for (const schema of allOf) {\n if (schema.properties) {\n merged.properties = { ...merged.properties, ...schema.properties };\n }\n if (schema.required) {\n merged.required = [\n ...(merged.required as string[]),\n ...(schema.required as string[]),\n ];\n }\n }\n\n return merged;\n }\n\n return { allOf };\n}\n\n/**\n * Handle literal types (string, number literals).\n * Note: Boolean literals (true/false) are handled earlier via BooleanLiteral flag\n * since TypeScript's isLiteral() doesn't return true for them.\n */\nfunction handleLiteralType(type: ts.Type): JsonSchemaProperty {\n if (type.isStringLiteral()) {\n return { type: \"string\", enum: [type.value] };\n }\n\n if (type.isNumberLiteral()) {\n return { type: \"number\", enum: [type.value] };\n }\n\n /* v8 ignore start */\n return {};\n}\n/* v8 ignore end */\n\n/**\n * Handle object types (interfaces, type literals, classes).\n */\nfunction handleObjectType(\n type: ts.ObjectType,\n ctx: ConversionContext,\n): JsonSchemaProperty {\n const checker = ctx.checker;\n const properties: Record<string, JsonSchemaProperty> = {};\n const required: string[] = [];\n\n // Get all properties of the type\n const props = checker.getPropertiesOfType(type);\n\n for (const prop of props) {\n const propName = prop.getName();\n const propType = checker.getTypeOfSymbol(prop);\n\n // Check if the property is optional\n const isOptional = (prop.getFlags() & ts.SymbolFlags.Optional) !== 0;\n\n // Convert the property type to schema\n const propSchema = typeToJsonSchema(propType, ctx);\n\n // Extract JSDoc description from property declaration\n const jsDocComment = prop.getDocumentationComment(checker);\n if (jsDocComment.length > 0) {\n const description = jsDocComment.map((c) => c.text).join(\"\");\n propSchema.description = description;\n }\n\n properties[propName] = propSchema;\n\n // Add to required if not optional\n if (!isOptional) {\n required.push(propName);\n }\n }\n\n return {\n type: \"object\",\n properties,\n required: required.length > 0 ? required : undefined,\n };\n}\n\n/**\n * Convert a TypeScript type to a ToolParameterSchema.\n *\n * This is the main entry point for converting tool argument types\n * to the schema format expected by LLM providers.\n *\n * @param type - The TypeScript type to convert (should be an object type).\n * @param checker - The TypeScript type checker.\n * @returns The tool parameter schema.\n */\nexport function typeToToolParameterSchema(\n type: ts.Type,\n checker: ts.TypeChecker,\n): ToolParameterSchema {\n const ctx: ConversionContext = {\n checker,\n definitions: new Map(),\n processing: new Set(),\n };\n\n const schema = typeToJsonSchema(type, ctx);\n\n // Ensure the result is an object schema\n if (schema.type !== \"object\") {\n throw new Error(\n \"Tool parameter type must be an object type, got: \" +\n JSON.stringify(schema),\n );\n }\n\n // Build a mutable result, then return as readonly\n const result: {\n type: \"object\";\n properties: Record<string, JsonSchemaProperty>;\n required: readonly string[];\n additionalProperties: false;\n $defs?: Record<string, JsonSchemaProperty>;\n } = {\n type: \"object\",\n properties: schema.properties ?? {},\n required: (schema.required as readonly string[]) ?? [],\n additionalProperties: false,\n };\n\n // Coverage ignored: $defs only populated for recursive types (not yet implemented)\n /* v8 ignore start */\n if (ctx.definitions.size > 0) {\n result.$defs = Object.fromEntries(ctx.definitions);\n }\n /* v8 ignore end */\n\n return result;\n}\n\n/**\n * Create a ConversionContext for testing or manual use.\n */\nexport function createConversionContext(\n checker: ts.TypeChecker,\n): ConversionContext {\n return {\n checker,\n definitions: new Map(),\n processing: new Set(),\n };\n}\n","/**\n * TypeScript transformer for injecting schemas into tool and format definitions.\n *\n * This transformer finds calls to `defineTool<T>()`, `defineContextTool<T, DepsT>()`,\n * and `defineFormat<T>()` and injects the `__schema` property with the JSON schema\n * generated from type T.\n */\n\nimport ts from \"typescript\";\n\nimport { typeToToolParameterSchema } from \"./type-to-schema\";\n\n/**\n * Names of functions that should have schemas injected.\n */\nconst TOOL_FUNCTION_NAMES = new Set([\"defineTool\", \"defineContextTool\"]);\n\n/**\n * Names of format functions that should have schemas injected.\n */\nconst FORMAT_FUNCTION_NAMES = new Set([\"defineFormat\"]);\n\n/**\n * Create a TypeScript transformer that injects __schema into tool definitions.\n *\n * @param program - The TypeScript program.\n * @returns A transformer factory.\n */\nexport function createToolSchemaTransformer(\n program: ts.Program,\n): ts.TransformerFactory<ts.SourceFile> {\n const checker = program.getTypeChecker();\n\n return (context: ts.TransformationContext) => {\n return (sourceFile: ts.SourceFile) => {\n const visitor = (node: ts.Node): ts.Node => {\n // Look for call expressions\n if (ts.isCallExpression(node)) {\n // Try tool transform first\n const toolTransformed = tryTransformToolCall(node, checker, context);\n if (toolTransformed) {\n return toolTransformed;\n }\n\n // Try format transform\n const formatTransformed = tryTransformFormatCall(\n node,\n checker,\n context,\n );\n if (formatTransformed) {\n return formatTransformed;\n }\n }\n\n // Continue visiting children\n return ts.visitEachChild(node, visitor, context);\n };\n\n return ts.visitNode(sourceFile, visitor) as ts.SourceFile;\n };\n };\n}\n\n/**\n * Try to transform a call expression if it's a tool definition.\n *\n * @param node - The call expression node.\n * @param checker - The type checker.\n * @param context - The transformation context.\n * @returns The transformed node, or undefined if not a tool definition.\n */\nfunction tryTransformToolCall(\n node: ts.CallExpression,\n checker: ts.TypeChecker,\n context: ts.TransformationContext,\n): ts.CallExpression | undefined {\n // Check if this is a call to defineTool or defineContextTool\n const functionName = getFunctionName(node);\n if (!functionName || !TOOL_FUNCTION_NAMES.has(functionName)) {\n return undefined;\n }\n\n // Get the type arguments (the generic parameter T)\n const typeArgs = node.typeArguments;\n if (!typeArgs || typeArgs.length === 0) {\n // No type arguments - can't generate schema\n return undefined;\n }\n\n // Get the first type argument (T for args type)\n const argsTypeNode = typeArgs[0]!;\n const argsType = checker.getTypeFromTypeNode(argsTypeNode);\n\n // Generate the schema from the type\n let schema;\n try {\n schema = typeToToolParameterSchema(argsType, checker);\n } catch {\n // If schema generation fails, leave the call unchanged\n return undefined;\n }\n\n // Get the first argument (the options object)\n const args = node.arguments;\n const firstArg = args[0];\n if (!firstArg || !ts.isObjectLiteralExpression(firstArg)) {\n return undefined;\n }\n\n const optionsObject = firstArg;\n\n // Check if __schema is already present\n const hasSchema = optionsObject.properties.some(\n (prop) =>\n ts.isPropertyAssignment(prop) &&\n ts.isIdentifier(prop.name) &&\n prop.name.text === \"__schema\",\n );\n\n if (hasSchema) {\n // Already has a schema, don't override\n return undefined;\n }\n\n // Create the __schema property\n const schemaProperty = createSchemaProperty(schema, context.factory);\n\n // Create a new options object with __schema added\n const newProperties = [...optionsObject.properties, schemaProperty];\n const newOptionsObject = context.factory.updateObjectLiteralExpression(\n optionsObject,\n newProperties,\n );\n\n // Create a new call expression with the updated options\n const newArgs = [newOptionsObject, ...args.slice(1)];\n return context.factory.updateCallExpression(\n node,\n node.expression,\n node.typeArguments,\n newArgs,\n );\n}\n\n/**\n * Try to transform a call expression if it's a format definition.\n *\n * For defineFormat<T>(options):\n * - If the options arg is an object literal, inject __schema from type T\n * - If __schema is already present, leave unchanged\n * - If options has a validator, the validator's schema is used at runtime\n *\n * @param node - The call expression node.\n * @param checker - The type checker.\n * @param context - The transformation context.\n * @returns The transformed node, or undefined if not a format definition.\n */\nfunction tryTransformFormatCall(\n node: ts.CallExpression,\n checker: ts.TypeChecker,\n context: ts.TransformationContext,\n): ts.CallExpression | undefined {\n // Check if this is a call to defineFormat\n const functionName = getFunctionName(node);\n if (!functionName || !FORMAT_FUNCTION_NAMES.has(functionName)) {\n return undefined;\n }\n\n // Get the type arguments (the generic parameter T)\n const typeArgs = node.typeArguments;\n if (!typeArgs || typeArgs.length === 0) {\n // No type arguments - can't generate schema\n return undefined;\n }\n\n // Get the first type argument (T for the output type)\n const outputTypeNode = typeArgs[0]!;\n const outputType = checker.getTypeFromTypeNode(outputTypeNode);\n\n // Get the first argument\n const args = node.arguments;\n const firstArg = args[0];\n if (!firstArg) {\n return undefined;\n }\n\n // If first arg is an object literal (FormatSpec), inject __schema\n if (ts.isObjectLiteralExpression(firstArg)) {\n const formatSpecObject = firstArg;\n\n // Check if __schema is already present\n const hasSchema = formatSpecObject.properties.some(\n (prop) =>\n ts.isPropertyAssignment(prop) &&\n ts.isIdentifier(prop.name) &&\n prop.name.text === \"__schema\",\n );\n\n if (hasSchema) {\n // Already has a schema, don't override\n return undefined;\n }\n\n // Generate the schema from the type\n let schema;\n try {\n schema = typeToToolParameterSchema(outputType, checker);\n } catch {\n // If schema generation fails, leave the call unchanged\n return undefined;\n }\n\n // Create the __schema property\n const schemaProperty = createSchemaProperty(schema, context.factory);\n\n // Create a new format spec object with __schema added\n const newProperties = [...formatSpecObject.properties, schemaProperty];\n const newFormatSpecObject = context.factory.updateObjectLiteralExpression(\n formatSpecObject,\n newProperties,\n );\n\n // Create a new call expression with the updated format spec\n const newArgs = [newFormatSpecObject, ...args.slice(1)];\n return context.factory.updateCallExpression(\n node,\n node.expression,\n node.typeArguments,\n newArgs,\n );\n }\n\n // If first arg is not an object literal (e.g., a Zod schema identifier),\n // leave unchanged - Zod schemas handle their own schema generation\n return undefined;\n}\n\n/**\n * Get the function name from a call expression.\n */\n/* v8 ignore start */\nfunction getFunctionName(node: ts.CallExpression): string | undefined {\n const expression = node.expression;\n\n // Direct call: defineTool(...)\n if (ts.isIdentifier(expression)) {\n return expression.text;\n }\n\n // Property access: llm.defineTool(...)\n if (ts.isPropertyAccessExpression(expression)) {\n return expression.name.text;\n }\n\n return undefined;\n}\n/* v8 ignore end */\n\n/**\n * Create a __schema property assignment from a schema object.\n */\nfunction createSchemaProperty(\n schema: object,\n factory: ts.NodeFactory,\n): ts.PropertyAssignment {\n return factory.createPropertyAssignment(\n factory.createIdentifier(\"__schema\"),\n jsonToAst(schema, factory),\n );\n}\n\n/**\n * Convert a JSON value to a TypeScript AST expression.\n *\n * Coverage notes: Some branches are ignored because JSON Schema values\n * are always one of: null, string, number, boolean, array, or object.\n * The ignored branches handle edge cases that can't occur with valid schemas.\n */\nfunction jsonToAst(value: unknown, factory: ts.NodeFactory): ts.Expression {\n // Coverage ignored: JSON schemas from typeToToolParameterSchema never contain\n // top-level null/undefined values, but we handle them defensively\n /* v8 ignore start */\n if (value === null) {\n return factory.createNull();\n }\n if (value === undefined) {\n return factory.createIdentifier(\"undefined\");\n }\n /* v8 ignore end */\n\n if (typeof value === \"string\") {\n return factory.createStringLiteral(value);\n }\n\n if (typeof value === \"number\") {\n return factory.createNumericLiteral(value);\n }\n\n if (typeof value === \"boolean\") {\n /* v8 ignore next */\n return value ? factory.createTrue() : factory.createFalse();\n }\n\n if (Array.isArray(value)) {\n return factory.createArrayLiteralExpression(\n value.map((item) => jsonToAst(item, factory)),\n );\n }\n\n if (typeof value === \"object\") {\n const properties = Object.entries(value).map(([key, val]) =>\n factory.createPropertyAssignment(\n factory.createIdentifier(key),\n jsonToAst(val, factory),\n ),\n );\n return factory.createObjectLiteralExpression(properties, true);\n }\n\n // Coverage ignored: After handling all JSON-valid types (null, undefined,\n // string, number, boolean, array, object), this is unreachable\n /* v8 ignore next */\n return factory.createIdentifier(\"undefined\");\n}\n\n/**\n * Default export for ts-patch and other transformer loaders.\n */\nexport default function transformer(\n program: ts.Program,\n): ts.TransformerFactory<ts.SourceFile> {\n return createToolSchemaTransformer(program);\n}\n","/**\n * Vite plugin for Mirascope tool schema transformation.\n *\n * This plugin uses @rollup/plugin-typescript under the hood to ensure\n * access to TypeScript's type checker for schema generation.\n */\n\nimport type { RollupTypescriptOptions } from \"@rollup/plugin-typescript\";\nimport type ts from \"typescript\";\nimport type { Plugin } from \"vite\";\n\nimport typescript from \"@rollup/plugin-typescript\";\n\nimport { createToolSchemaTransformer } from \"../transformer\";\n\nexport interface MirascopeVitePluginOptions {\n /**\n * Options to pass to @rollup/plugin-typescript.\n * Note: The 'transformers' option will be merged with the Mirascope transformer.\n */\n typescript?: Omit<RollupTypescriptOptions, \"transformers\">;\n\n /**\n * Additional transformers to run alongside the Mirascope transformer.\n */\n additionalTransformers?: ts.CustomTransformers;\n\n /**\n * File filter pattern. Defaults to /\\.(ts|tsx)$/\n */\n include?: RegExp | string | string[];\n\n /**\n * Files to exclude. Defaults to /node_modules/\n */\n exclude?: RegExp | string | string[];\n}\n\n/**\n * Vite plugin that applies the Mirascope tool schema transformer.\n *\n * This plugin uses @rollup/plugin-typescript under the hood to ensure\n * access to TypeScript's type checker for schema generation.\n *\n * @example\n * ```typescript\n * // vite.config.ts\n * import { defineConfig } from 'vite';\n * import { mirascope } from 'mirascope/vite';\n *\n * export default defineConfig({\n * plugins: [mirascope()]\n * });\n * ```\n */\nexport function mirascope(options: MirascopeVitePluginOptions = {}): Plugin[] {\n const {\n typescript: tsOptions = {},\n additionalTransformers,\n include = /\\.(ts|tsx)$/,\n exclude = /node_modules/,\n } = options;\n\n // Create the transformers function for @rollup/plugin-typescript\n // Coverage ignored: This callback is invoked by @rollup/plugin-typescript\n // during actual Vite builds, not during plugin creation.\n /* v8 ignore start */\n const transformers = (program: ts.Program): ts.CustomTransformers => {\n const mirascopeTransformer = createToolSchemaTransformer(program);\n\n return {\n before: [mirascopeTransformer, ...(additionalTransformers?.before ?? [])],\n after: additionalTransformers?.after,\n afterDeclarations: additionalTransformers?.afterDeclarations,\n };\n };\n /* v8 ignore end */\n\n return [\n {\n name: \"mirascope:pre\",\n enforce: \"pre\",\n config() {\n return {\n esbuild: {\n // Disable esbuild's TypeScript handling for matched files\n // We'll handle them with @rollup/plugin-typescript instead\n include: exclude, // Only let esbuild handle excluded files\n exclude: include, // Exclude our target files from esbuild\n },\n };\n },\n },\n // Cast needed because @rollup/plugin-typescript returns Rollup plugin\n typescript({\n ...tsOptions,\n transformers,\n include: include as string | string[],\n exclude: exclude as string | string[],\n }) as unknown as Plugin,\n ];\n}\n\nexport default mirascope;\n"]}
@@ -0,0 +1,50 @@
1
+ import { RollupTypescriptOptions } from '@rollup/plugin-typescript';
2
+ import ts from 'typescript';
3
+ import { Plugin } from 'vite';
4
+
5
+ /**
6
+ * Vite plugin for Mirascope tool schema transformation.
7
+ *
8
+ * This plugin uses @rollup/plugin-typescript under the hood to ensure
9
+ * access to TypeScript's type checker for schema generation.
10
+ */
11
+
12
+ interface MirascopeVitePluginOptions {
13
+ /**
14
+ * Options to pass to @rollup/plugin-typescript.
15
+ * Note: The 'transformers' option will be merged with the Mirascope transformer.
16
+ */
17
+ typescript?: Omit<RollupTypescriptOptions, "transformers">;
18
+ /**
19
+ * Additional transformers to run alongside the Mirascope transformer.
20
+ */
21
+ additionalTransformers?: ts.CustomTransformers;
22
+ /**
23
+ * File filter pattern. Defaults to /\.(ts|tsx)$/
24
+ */
25
+ include?: RegExp | string | string[];
26
+ /**
27
+ * Files to exclude. Defaults to /node_modules/
28
+ */
29
+ exclude?: RegExp | string | string[];
30
+ }
31
+ /**
32
+ * Vite plugin that applies the Mirascope tool schema transformer.
33
+ *
34
+ * This plugin uses @rollup/plugin-typescript under the hood to ensure
35
+ * access to TypeScript's type checker for schema generation.
36
+ *
37
+ * @example
38
+ * ```typescript
39
+ * // vite.config.ts
40
+ * import { defineConfig } from 'vite';
41
+ * import { mirascope } from 'mirascope/vite';
42
+ *
43
+ * export default defineConfig({
44
+ * plugins: [mirascope()]
45
+ * });
46
+ * ```
47
+ */
48
+ declare function mirascope(options?: MirascopeVitePluginOptions): Plugin[];
49
+
50
+ export { type MirascopeVitePluginOptions, mirascope as default, mirascope };
@@ -0,0 +1,50 @@
1
+ import { RollupTypescriptOptions } from '@rollup/plugin-typescript';
2
+ import ts from 'typescript';
3
+ import { Plugin } from 'vite';
4
+
5
+ /**
6
+ * Vite plugin for Mirascope tool schema transformation.
7
+ *
8
+ * This plugin uses @rollup/plugin-typescript under the hood to ensure
9
+ * access to TypeScript's type checker for schema generation.
10
+ */
11
+
12
+ interface MirascopeVitePluginOptions {
13
+ /**
14
+ * Options to pass to @rollup/plugin-typescript.
15
+ * Note: The 'transformers' option will be merged with the Mirascope transformer.
16
+ */
17
+ typescript?: Omit<RollupTypescriptOptions, "transformers">;
18
+ /**
19
+ * Additional transformers to run alongside the Mirascope transformer.
20
+ */
21
+ additionalTransformers?: ts.CustomTransformers;
22
+ /**
23
+ * File filter pattern. Defaults to /\.(ts|tsx)$/
24
+ */
25
+ include?: RegExp | string | string[];
26
+ /**
27
+ * Files to exclude. Defaults to /node_modules/
28
+ */
29
+ exclude?: RegExp | string | string[];
30
+ }
31
+ /**
32
+ * Vite plugin that applies the Mirascope tool schema transformer.
33
+ *
34
+ * This plugin uses @rollup/plugin-typescript under the hood to ensure
35
+ * access to TypeScript's type checker for schema generation.
36
+ *
37
+ * @example
38
+ * ```typescript
39
+ * // vite.config.ts
40
+ * import { defineConfig } from 'vite';
41
+ * import { mirascope } from 'mirascope/vite';
42
+ *
43
+ * export default defineConfig({
44
+ * plugins: [mirascope()]
45
+ * });
46
+ * ```
47
+ */
48
+ declare function mirascope(options?: MirascopeVitePluginOptions): Plugin[];
49
+
50
+ export { type MirascopeVitePluginOptions, mirascope as default, mirascope };
@@ -0,0 +1,5 @@
1
+ export { vite_default as default, mirascope } from '../../chunk-RMNCGJYW.js';
2
+ import '../../chunk-U4MFJ4DP.js';
3
+ import '../../chunk-NSBPE2FW.js';
4
+ //# sourceMappingURL=vite.js.map
5
+ //# sourceMappingURL=vite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"vite.js"}
package/package.json ADDED
@@ -0,0 +1,127 @@
1
+ {
2
+ "name": "mirascope",
3
+ "version": "2.0.0-alpha.0",
4
+ "private": false,
5
+ "workspaces": [
6
+ "examples"
7
+ ],
8
+ "files": [
9
+ "dist",
10
+ "README.md",
11
+ "LICENSE"
12
+ ],
13
+ "type": "module",
14
+ "sideEffects": false,
15
+ "main": "./dist/index.cjs",
16
+ "module": "./dist/index.js",
17
+ "types": "./dist/index.d.ts",
18
+ "exports": {
19
+ ".": {
20
+ "types": "./dist/index.d.ts",
21
+ "import": "./dist/index.js",
22
+ "require": "./dist/index.cjs"
23
+ },
24
+ "./transform": {
25
+ "types": "./dist/transform/index.d.ts",
26
+ "import": "./dist/transform/index.js",
27
+ "require": "./dist/transform/index.cjs"
28
+ },
29
+ "./vite": {
30
+ "types": "./dist/transform/plugins/vite.d.ts",
31
+ "import": "./dist/transform/plugins/vite.js",
32
+ "require": "./dist/transform/plugins/vite.cjs"
33
+ },
34
+ "./esbuild": {
35
+ "types": "./dist/transform/plugins/esbuild.d.ts",
36
+ "import": "./dist/transform/plugins/esbuild.js",
37
+ "require": "./dist/transform/plugins/esbuild.cjs"
38
+ },
39
+ "./bun": {
40
+ "types": "./dist/bun.d.ts",
41
+ "import": "./dist/bun.js",
42
+ "require": "./dist/bun.cjs"
43
+ },
44
+ "./package.json": "./package.json"
45
+ },
46
+ "scripts": {
47
+ "clean": "rm -rf dist .packs .tmp-install-test",
48
+ "build": "bun run clean && tsup src/index.ts src/transform/index.ts src/transform/plugins/vite.ts src/transform/plugins/esbuild.ts src/bun.ts --format esm,cjs --dts --sourcemap --out-dir dist --treeshake --external bun --external typescript",
49
+ "typecheck": "bunx tsc --noEmit",
50
+ "lint": "bun run typecheck && bun run lint:oxlint && bun run format:check",
51
+ "lint:oxlint": "oxlint .",
52
+ "lint:oxlint:fix": "oxlint --fix .",
53
+ "format": "oxfmt --ignore-path .oxfmtignore .",
54
+ "format:check": "oxfmt --ignore-path .oxfmtignore --check .",
55
+ "fix": "bun run format && bun run lint:oxlint:fix",
56
+ "test": "vitest run",
57
+ "test:coverage": "vitest run --coverage",
58
+ "test:watch": "vitest",
59
+ "codegen": "bun run scripts/codegen/run.ts",
60
+ "example": "bun run scripts/run-example.ts",
61
+ "prepublishOnly": "bun run build",
62
+ "pack:dry": "npm pack --dry-run",
63
+ "verify": "bun run build && bun run pack:dry",
64
+ "release:alpha": "bun run verify && npm publish --tag alpha"
65
+ },
66
+ "dependencies": {
67
+ "partial-json": "^0.1.7"
68
+ },
69
+ "devDependencies": {
70
+ "@anthropic-ai/sdk": "^0.71.2",
71
+ "@google/genai": "^1.0.0",
72
+ "@pollyjs/adapter-fetch": "^6.0.7",
73
+ "@pollyjs/core": "^6.0.6",
74
+ "@pollyjs/persister": "^6.0.6",
75
+ "@types/bun": "latest",
76
+ "@vitest/coverage-v8": "^3.0.0",
77
+ "dotenv": "^17.2.3",
78
+ "esbuild": "^0.25.5",
79
+ "jiti": "^2.4.2",
80
+ "openai": "^6.16.0",
81
+ "oxfmt": "^0.27.0",
82
+ "oxlint": "^1.42.0",
83
+ "tslib": "^2.8.1",
84
+ "tsup": "^8.0.0",
85
+ "typescript": "^5",
86
+ "vite": "^6.3.5",
87
+ "vitest": "^3.0.0",
88
+ "yaml": "^2.7.0",
89
+ "zod": "^4.0.0"
90
+ },
91
+ "peerDependencies": {
92
+ "@anthropic-ai/sdk": ">=0.71.0",
93
+ "@google/genai": ">=1.0.0",
94
+ "@rollup/plugin-typescript": ">=11.0.0",
95
+ "esbuild": ">=0.17.0",
96
+ "openai": ">=6.16.0",
97
+ "typescript": ">=5.0.0",
98
+ "vite": ">=4.0.0",
99
+ "zod": ">=4.0.0"
100
+ },
101
+ "peerDependenciesMeta": {
102
+ "@anthropic-ai/sdk": {
103
+ "optional": true
104
+ },
105
+ "@google/genai": {
106
+ "optional": true
107
+ },
108
+ "openai": {
109
+ "optional": true
110
+ },
111
+ "zod": {
112
+ "optional": true
113
+ },
114
+ "@rollup/plugin-typescript": {
115
+ "optional": true
116
+ },
117
+ "esbuild": {
118
+ "optional": true
119
+ },
120
+ "typescript": {
121
+ "optional": true
122
+ },
123
+ "vite": {
124
+ "optional": true
125
+ }
126
+ }
127
+ }