@sensigo/realm-cli 0.35.0 → 0.37.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 (39) hide show
  1. package/dist/agent/fixtures/tool-schemas.d.ts +42 -0
  2. package/dist/agent/fixtures/tool-schemas.d.ts.map +1 -0
  3. package/dist/agent/fixtures/tool-schemas.js +150 -0
  4. package/dist/agent/fixtures/tool-schemas.js.map +1 -0
  5. package/dist/agent/mcp/mcp-extensions.d.ts +40 -4
  6. package/dist/agent/mcp/mcp-extensions.d.ts.map +1 -1
  7. package/dist/agent/providers/agent-utils.d.ts +22 -0
  8. package/dist/agent/providers/agent-utils.d.ts.map +1 -1
  9. package/dist/agent/providers/agent-utils.js +36 -0
  10. package/dist/agent/providers/agent-utils.js.map +1 -1
  11. package/dist/agent/providers/anthropic-provider.d.ts +12 -1
  12. package/dist/agent/providers/anthropic-provider.d.ts.map +1 -1
  13. package/dist/agent/providers/anthropic-provider.js +115 -23
  14. package/dist/agent/providers/anthropic-provider.js.map +1 -1
  15. package/dist/agent/providers/llm-provider.d.ts +49 -4
  16. package/dist/agent/providers/llm-provider.d.ts.map +1 -1
  17. package/dist/agent/providers/llm-provider.js +25 -5
  18. package/dist/agent/providers/llm-provider.js.map +1 -1
  19. package/dist/agent/providers/openai-provider.d.ts +51 -1
  20. package/dist/agent/providers/openai-provider.d.ts.map +1 -1
  21. package/dist/agent/providers/openai-provider.js +216 -9
  22. package/dist/agent/providers/openai-provider.js.map +1 -1
  23. package/dist/agent/providers/openai-reasoning-provider.d.ts +8 -1
  24. package/dist/agent/providers/openai-reasoning-provider.d.ts.map +1 -1
  25. package/dist/agent/providers/openai-reasoning-provider.js +9 -0
  26. package/dist/agent/providers/openai-reasoning-provider.js.map +1 -1
  27. package/dist/agent/run-agent.d.ts +7 -0
  28. package/dist/agent/run-agent.d.ts.map +1 -1
  29. package/dist/agent/run-agent.js +275 -1
  30. package/dist/agent/run-agent.js.map +1 -1
  31. package/dist/commands/agent.d.ts.map +1 -1
  32. package/dist/commands/agent.js +22 -4
  33. package/dist/commands/agent.js.map +1 -1
  34. package/dist/commands/listen.d.ts +12 -0
  35. package/dist/commands/listen.d.ts.map +1 -1
  36. package/dist/commands/listen.js +16 -1
  37. package/dist/commands/listen.js.map +1 -1
  38. package/dist/index.js +1 -1
  39. package/package.json +5 -4
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic-provider.js","sourceRoot":"","sources":["../../../src/agent/providers/anthropic-provider.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,uGAAuG;AACvG,OAAO,EACL,aAAa,EACb,uBAAuB,GAGxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAO3D,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,8BAA8B,EAC9B,4BAA4B,GAC7B,MAAM,kBAAkB,CAAC;AAE1B;;;;;oEAKoE;AACpE,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AAE5C;;;;;GAKG;AACH,SAAS,eAAe,CACtB,MAA+B,EAC/B,IAA2B;IAO3B,OAAO;QACL,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,4DAA4D;QACzE,YAAY,EAAE,MAAM;QACpB,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACnD,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAS,gBAAgB,CAAC,KAAa;IACrC,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9C,IAAI,oCAAoC,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAClE,OAAO,KAAK,CAAC;AACf,CAAC;AAED,gGAAgG;AAChG,+FAA+F;AAC/F,8FAA8F;AAC9F,uEAAuE;AACvE,gGAAgG;AAEhG;;4FAE4F;AAC5F,MAAM,wBAAwB,GAAG,gDAAgD,CAAC;AAElF;;mGAEmG;AACnG,SAAS,iBAAiB,CAAC,GAAY;IACrC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,QAAQ,IAAI,GAAG,EAAE,CAAC;QAC/D,MAAM,MAAM,GAAI,GAA4B,CAAC,MAAM,CAAC;QACpD,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,OAAO,MAAM,CAAC;IAChD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAY;IACvC,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,2BAA4B,SAAQ,KAAK;IAC3C,gBAAgB,CAAuB;IAChD,YACE,OAAe,EACf,gBAAsC,EACtC,OAA6B;QAE7B,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAC;QAC1C,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;IAC3C,CAAC;CACF;AAUD;;;;;;GAMG;AACH,KAAK,UAAU,uBAAuB;AACpC,8DAA8D;AAC9D,MAAW,EACX,SAAuD,EACvD,KAAkB;IAGlB,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAClB,OAAQ,MAAM,CAAC,QAAQ,CAAC,MAA8D,CACpF,SAAS,CAAC,KAAK,CAAC,CACjB,CAAC;IACJ,CAAC;IACD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MACf,MAAM,CAAC,QAAQ,CAAC,MACjB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QACnB,KAAK,CAAC,IAAI,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC7C,OAAO,QAAQ,CAAC;IAClB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG;YAAE,MAAM,GAAG,CAAC,CAAC,8CAA8C;QAC/F,MAAM,WAAW,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAC7C,MAAM,gBAAgB,GACpB,MAAM,KAAK,GAAG;YACZ,CAAC,CAAC,qBAAqB;YACvB,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,wBAAwB,CAAC;gBAC9C,CAAC,CAAC,qBAAqB;gBACvB,CAAC,CAAC,qBAAqB,CAAC;QAC9B,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,yCAAyC;QAC/D,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MACf,MAAM,CAAC,QAAQ,CAAC,MACjB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;YACpB,KAAK,CAAC,IAAI,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,CAAC;YAC7E,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,QAAQ,EAAE,CAAC;YAClB,MAAM,IAAI,2BAA2B,CACnC,mBAAmB,CAAC,QAAQ,CAAC,EAC7B,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,EAC/D,EAAE,KAAK,EAAE,QAAQ,EAAE,CACpB,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,iBAAkB,SAAQ,sBAAsB;IAC9B;IAA7B,YAA6B,KAAa;QACxC,KAAK,EAAE,CAAC;QADmB,UAAK,GAAL,KAAK,CAAQ;IAE1C,CAAC;IAED,8DAA8D;IACtD,KAAK,CAAC,SAAS;QACrB,+EAA+E;QAC/E,4EAA4E;QAC5E,8DAA8D;QAC9D,IAAI,GAAQ,CAAC;QACb,IAAI,CAAC;YACH,MAAM,QAAQ,GAAW,mBAAmB,CAAC;YAC7C,GAAG,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,KAAK,CACX,wFAAwF,CACzF,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,8DAA8D;QAC9D,OAAO,IAAK,GAAG,CAAC,OAAsD,CAAC;YACrE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;SACzC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,gBAAgB,CAC5B,MAAc,EACd,WAAgD,EAChD,wBAA4C,EAC5C,eAAoC;QAEpC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACtC,MAAM,KAAK,GAAgB,EAAE,MAAM,EAAE,eAAe,KAAK,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAEjF,+FAA+F;QAC/F,8FAA8F;QAC9F,+FAA+F;QAC/F,kGAAkG;QAClG,4FAA4F;QAC5F,8FAA8F;QAC9F,kFAAkF;QAClF,MAAM,SAAS,GAAG,WAAW,KAAK,SAAS,CAAC;QAC5C,MAAM,YAAY,GAAG,iBAAiB,CACpC,WAAW,EACX,wBAAwB;QACxB,2BAA2B,CAAC,SAAS,CACtC,CAAC;QAQF,MAAM,WAAW,GAAG,KAAK,EAAE,WAAmB,EAAuB,EAAE;YACrE,MAAM,SAAS,GAAG,CAAC,MAAe,EAA2B,EAAE;gBAC7D,MAAM,UAAU,GAAG,SAAS;oBAC1B,CAAC,CAAC,eAAe,CAAC,WAAY,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;oBACtE,CAAC,CAAC,SAAS,CAAC;gBACd,MAAM,IAAI,GAA4B;oBACpC,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,UAAU,EAAE,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;oBACxC,MAAM,EAAE,YAAY;oBACpB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;iBACnD,CAAC;gBACF,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;oBAC7B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;oBAC7B,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gBACzC,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC,CAAC;YACF,MAAM,QAAQ,GAAG,MAAM,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;YACzE,MAAM,MAAM,GAAG,QAAQ,CAAC,OAKtB,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC;YACzF,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;YACxD,OAAO;gBACL,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,KAAgC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzF,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE;gBAC3B,GAAG,CAAC,OAAO,QAAQ,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC1F,CAAC;QACJ,CAAC,CAAC;QAEF,4FAA4F;QAC5F,uEAAuE;QACvE,MAAM,OAAO,GAAG,CAAC,MAAkB,EAAkC,EAAE,CACrE,MAAM,CAAC,SAAS,IAAI,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAErD,2FAA2F;QAC3F,0DAA0D;QAC1D,MAAM,WAAW,GAAG,CAClB,MAA+B,EAC/B,OAAgB,EACkD,EAAE;YACpE,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;gBAAE,OAAO,EAAE,MAAM,EAAE,CAAC;YAChD,OAAO;gBACL,MAAM;gBACN,IAAI,EAAE,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,kBAAkB,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE;aACvE,CAAC;QACJ,CAAC,CAAC;QAEF,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC;QACxC,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,WAAW,KAAK,IAAI;YAAE,OAAO,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;QAEzF,uFAAuF;QACvF,MAAM,WAAW,GAAG,GAAG,MAAM,iFAAiF,CAAC;QAC/G,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,CAAC;QAC7C,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,WAAW,KAAK,IAAI;YAAE,OAAO,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;QAEzF,gGAAgG;QAChG,mFAAmF;QACnF,IAAI,KAAK,CAAC,UAAU,KAAK,YAAY,EAAE,CAAC;YACtC,MAAM,IAAI,aAAa,CACrB,aAAa,CACX,yFAAyF,CAC1F,EACD,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAC1F,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,aAAa,CACrB,aAAa,CAAC,oDAAoD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAC7F,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAC1F,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,MAAc,EACd,WAAqC,EACrC,wBAAiC;QAEjC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAC5C,MAAM,EACN,WAAW,EACX,wBAAwB,EACxB,SAAS,CACV,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;yFACqF;IAC5E,KAAK,CAAC,gBAAgB,CAC7B,MAAc,EACd,WAAqC,EACrC,wBAAiC,EACjC,IAA2C;QAE3C,OAAO,IAAI,CAAC,gBAAgB,CAC1B,MAAM,EACN,WAAW,EACX,wBAAwB,EACxB,IAAI,EAAE,sBAAsB,KAAK,IAAI,CACtC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,iBAAiB,CACrB,MAAc,EACd,KAAuB,EACvB,QAAsB,EACtB,OAQC;QAED,8DAA8D;QAC9D,IAAI,GAAQ,CAAC;QACb,IAAI,CAAC;YACH,MAAM,QAAQ,GAAW,mBAAmB,CAAC;YAC7C,GAAG,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,KAAK,CACX,wFAAwF,CACzF,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,8DAA8D;QAC9D,MAAM,MAAM,GAAG,IAAK,GAAG,CAAC,OAAsD,CAAC;YAC7E,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;SACzC,CAAC,CAAC;QAEH,uFAAuF;QACvF,4FAA4F;QAC5F,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC5C,MAAM,cAAc,GAIf,EAAE,CAAC;QACR,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CACb,wCAAwC,IAAI,CAAC,IAAI,oFAAoF,CACtI,CAAC;YACJ,CAAC;YACD,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YAClC,cAAc,CAAC,IAAI,CAAC;gBAClB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,YAAY,EAAE,IAAI,CAAC,WAAW,EAAE,qCAAqC;aACtE,CAAC,CAAC;QACL,CAAC;QAED,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC;QAC5C,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACpC,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,wBAAwB,GAAG,KAAK,CAAC;QACrC,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,6FAA6F;QAC7F,4FAA4F;QAC5F,2FAA2F;QAC3F,sFAAsF;QACtF,uCAAuC;QACvC,IAAI,gBAAgB,GAAG,CAAC,CAAC;QACzB,MAAM,iBAAiB,GAAqB,EAAE,CAAC;QAC/C,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,wBAAwB,CAAC,CAAC;QACxF,yFAAyF;QACzF,MAAM,mBAAmB,GAAG,CAAC,MAA2B,EAAuB,EAAE,CAC/E,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,eAAe,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;QAEnF,8DAA8D;QAC9D,MAAM,OAAO,GAAU,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAE3D,MAAM,iBAAiB,GAAG,GAA4B,EAAE;YACtD,MAAM,IAAI,GAA4B;gBACpC,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,UAAU,EAAE,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;gBACxC,MAAM;gBACN,QAAQ,EAAE,OAAO;aAClB,CAAC;YACF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC;gBAAE,IAAI,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC;YAC9D,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,iGAAiG;QACjG,kGAAkG;QAClG,+FAA+F;QAC/F,kGAAkG;QAClG,8FAA8F;QAC9F,8EAA8E;QAC9E,MAAM,sBAAsB,GAAG,KAAK,IAAkC,EAAE;YACtE,0FAA0F;YAC1F,2FAA2F;YAC3F,0FAA0F;YAC1F,yFAAyF;YACzF,6DAA6D;YAC7D,MAAM,eAAe,GACnB,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACvF,MAAM,SAAS,GAA4B;gBACzC,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,UAAU,EAAE,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;gBACxC,MAAM;gBACN,QAAQ,EAAE,OAAO;aAClB,CAAC;YACF,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;gBAClC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;gBACvC,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gBAC5C,+CAA+C;gBAC/C,kFAAkF;gBAClF,wFAAwF;gBACxF,oFAAoF;gBACpF,yCAAyC;YAC3C,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,8DAA8D;aACjF,MAAM,CAAC,QAAQ,CAAC,MAA0D,CAAC,SAAS,CAAC,CAAC;YACvF,MAAM,MAAM,GAAG,KAAK,CAAC,OAKnB,CAAC;YACH,gFAAgF;YAChF,0EAA0E;YAC1E,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC;YACzF,qFAAqF;YACrF,yFAAyF;YACzF,0FAA0F;YAC1F,yFAAyF;YACzF,0FAA0F;YAC1F,sFAAsF;YACtF,qFAAqF;YACrF,mFAAmF;YACnF,0FAA0F;YAC1F,wFAAwF;YACxF,8EAA8E;YAC9E,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,OAAO,mBAAmB,CAAC;oBACzB,MAAM,EAAE,OAAO,CAAC,KAAgC;oBAChD,SAAS,EAAE,iBAAiB;iBAC7B,CAAC,CAAC;YACL,CAAC;YACD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;YACxD,MAAM,IAAI,GAAG,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACvC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACpB,OAAO,mBAAmB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC,CAAC;YAC/E,CAAC;YACD,kFAAkF;YAClF,8DAA8D;YAC9D,MAAM,IAAI,aAAa,CACrB,aAAa,CAAC,oDAAoD,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EACvF;gBACE,IAAI,EAAE,oBAAoB;gBAC1B,QAAQ,EAAE,QAAQ;gBAClB,WAAW,EAAE,MAAM;gBACnB,SAAS,EAAE,KAAK;aACjB,CACF,CAAC;QACJ,CAAC,CAAC;QAEF,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,QAAQ,GAAG,MAAM,8DAA8D;aACpF,MAAM,CAAC,QAAQ,CAAC,MAA0D,CACzE,iBAAiB,EAAE,CACpB,CAAC;YACF,MAAM,aAAa,GACjB,QAAQ,CAAC,OACV,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;YAEvC,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;gBAE/D,MAAM,uBAAuB,GAIxB,EAAE,CAAC;gBACR,IAAI,0BAA0B,GAAG,KAAK,CAAC;gBAEvC,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;oBAClC,MAAM,aAAa,GAAG,KAAK,CAAC,EAAG,CAAC,CAAC,uCAAuC;oBAExE,IAAI,eAAe,IAAI,QAAQ,IAAI,wBAAwB,EAAE,CAAC;wBAC5D,0EAA0E;wBAC1E,uBAAuB,CAAC,IAAI,CAAC;4BAC3B,IAAI,EAAE,aAAa;4BACnB,WAAW,EAAE,aAAa;4BAC1B,OAAO,EAAE,mCAAmC;yBAC7C,CAAC,CAAC;wBACH,0BAA0B,GAAG,IAAI,CAAC;wBAClC,SAAS;oBACX,CAAC;oBAED,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAK,CAAE,CAAC;oBAC/C,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;oBAC7D,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAA4B,CAAC;oBAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBAEzB,IAAI,aAAqB,CAAC;oBAC1B,IAAI,MAAsB,CAAC;oBAE3B,IAAI,CAAC;wBACH,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;4BACnC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC;4BAC1B,WAAW,CAAC,OAAO,CAAC,aAAa,IAAI,KAAK,CAAC;yBAC5C,CAAC,CAAC;wBACH,MAAM,UAAU,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;wBAClD,MAAM,GAAG;4BACP,SAAS,EAAE,QAAQ;4BACnB,IAAI,EAAE,QAAQ;4BACd,IAAI;4BACJ,MAAM,EAAE,UAAU;4BAClB,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;yBAChC,CAAC;wBACF,aAAa,GAAG,UAAU,CAAC;oBAC7B,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;wBACrC,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,SAAS,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC;wBACnF,MAAM,GAAG;4BACP,SAAS,EAAE,QAAQ;4BACnB,IAAI,EAAE,QAAQ;4BACd,IAAI;4BACJ,MAAM,EAAE,IAAI;4BACZ,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;4BAC/B,KAAK,EAAE,SAAS;yBACjB,CAAC;wBACF,aAAa,GAAG,OAAO,CAAC;oBAC1B,CAAC;oBAED,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC/B,eAAe,EAAE,CAAC;oBAClB,IACE,SAAS,KAAK,SAAS;wBACvB,CAAC,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,iBAAiB,CAAC,EAC5D,CAAC;wBACD,aAAa,EAAE,CAAC;wBAChB,IAAI,aAAa,IAAI,SAAS,EAAE,CAAC;4BAC/B,wBAAwB,GAAG,IAAI,CAAC;4BAChC,0BAA0B,GAAG,IAAI,CAAC;wBACpC,CAAC;oBACH,CAAC;oBACD,uBAAuB,CAAC,IAAI,CAAC;wBAC3B,IAAI,EAAE,aAAa;wBACnB,WAAW,EAAE,aAAa;wBAC1B,OAAO,EAAE,aAAa;qBACvB,CAAC,CAAC;gBACL,CAAC;gBAED,MAAM,SAAS,GAAG,0BAA0B,IAAI,eAAe,IAAI,QAAQ,CAAC;gBAE5E,IAAI,SAAS,EAAE,CAAC;oBACd,+EAA+E;oBAC/E,uEAAuE;oBACvE,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE;4BACP,GAAG,uBAAuB;4BAC1B;gCACE,IAAI,EAAE,MAAe;gCACrB,IAAI,EAAE,0KAA0K;6BACjL;yBACF;qBACF,CAAC,CAAC;oBACH,OAAO,sBAAsB,EAAE,CAAC;gBAClC,CAAC;gBAED,yEAAyE;gBACzE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC,CAAC;YACnE,CAAC;iBAAM,CAAC;gBACN,qFAAqF;gBACrF,8EAA8E;gBAC9E,0FAA0F;gBAC1F,uFAAuF;gBACvF,qFAAqF;gBACrF,2FAA2F;gBAC3F,MAAM,SAAS,GAAI,QAAQ,CAAC,OAAkD,CAAC,IAAI,CACjF,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CACzB,CAAC;gBACF,MAAM,IAAI,GAAG,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC;gBACnC,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBACvC,MAAM,OAAO,GACX,MAAM,KAAK,IAAI;oBACb,CAAC,CAAC,uBAAuB,CACrB,MAAM,EACN;wBACE,GAAG,CAAC,OAAO,CAAC,qBAAqB,KAAK,SAAS;4BAC7C,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,qBAAmC,EAAE;4BAC9D,CAAC,CAAC,EAAE,CAAC;wBACP,GAAG,CAAC,OAAO,CAAC,sBAAsB,KAAK,SAAS;4BAC9C,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,sBAAoC,EAAE;4BAChE,CAAC,CAAC,EAAE,CAAC;qBACR,EACD,mBAAmB,CACpB;oBACH,CAAC,CAAC,SAAS,CAAC;gBAChB,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,EAAE,KAAK,KAAK,IAAI,EAAE,CAAC;oBAC/C,OAAO,mBAAmB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC,CAAC;gBAC/E,CAAC;gBACD,mFAAmF;gBACnF,uFAAuF;gBACvF,wFAAwF;gBACxF,oFAAoF;gBACpF,yFAAyF;gBACzF,gBAAgB,EAAE,CAAC;gBACnB,MAAM,OAAO,GACX,OAAO,KAAK,SAAS;oBACnB,CAAC,CAAC,8BAA8B,CAAC,OAAO,CAAC,SAAS,CAAC;yBAC9C,GAAG,CAAC,4BAA4B,CAAC;yBACjC,IAAI,CAAC,IAAI,CAAC;oBACf,CAAC,CAAC,2DAA2D,CAAC;gBAClE,OAAO,CAAC,KAAK,CAAC,sDAAsD,gBAAgB,GAAG,CAAC,CAAC;gBACzF,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC/D,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,yDAAyD,OAAO,cAAc;iBACxF,CAAC,CAAC;gBACH,eAAe,EAAE,CAAC,CAAC,oCAAoC;gBACvD,IAAI,eAAe,IAAI,QAAQ,EAAE,CAAC;oBAChC,OAAO,sBAAsB,EAAE,CAAC;gBAClC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"anthropic-provider.js","sourceRoot":"","sources":["../../../src/agent/providers/anthropic-provider.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,uGAAuG;AACvG,OAAO,EACL,aAAa,EACb,uBAAuB,GAGxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAA6B,MAAM,mBAAmB,CAAC;AAOtF,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,8BAA8B,EAC9B,4BAA4B,EAC5B,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAE1B;;;;;oEAKoE;AACpE,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AAE5C;;;;;GAKG;AACH,SAAS,eAAe,CACtB,MAA+B,EAC/B,IAA2B;IAO3B,OAAO;QACL,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,4DAA4D;QACzE,YAAY,EAAE,MAAM;QACpB,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACnD,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAS,gBAAgB,CAAC,KAAa;IACrC,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9C,IAAI,oCAAoC,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAClE,OAAO,KAAK,CAAC;AACf,CAAC;AAED,gGAAgG;AAChG,+FAA+F;AAC/F,8FAA8F;AAC9F,uEAAuE;AACvE,gGAAgG;AAEhG;;4FAE4F;AAC5F,MAAM,wBAAwB,GAAG,gDAAgD,CAAC;AAElF,+FAA+F;AAC/F,sFAAsF;AAEtF,SAAS,mBAAmB,CAAC,GAAY;IACvC,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,2BAA4B,SAAQ,KAAK;IAC3C,gBAAgB,CAAuB;IAChD,YACE,OAAe,EACf,gBAAsC,EACtC,OAA6B;QAE7B,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAC;QAC1C,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;IAC3C,CAAC;CACF;AAUD;;;;;;GAMG;AACH,KAAK,UAAU,uBAAuB;AACpC,8DAA8D;AAC9D,MAAW,EACX,SAAuD,EACvD,KAAkB;IAGlB,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAClB,OAAQ,MAAM,CAAC,QAAQ,CAAC,MAA8D,CACpF,SAAS,CAAC,KAAK,CAAC,CACjB,CAAC;IACJ,CAAC;IACD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MACf,MAAM,CAAC,QAAQ,CAAC,MACjB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QACnB,KAAK,CAAC,IAAI,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC7C,OAAO,QAAQ,CAAC;IAClB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG;YAAE,MAAM,GAAG,CAAC,CAAC,8CAA8C;QAC/F,MAAM,WAAW,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAC7C,MAAM,gBAAgB,GACpB,MAAM,KAAK,GAAG;YACZ,CAAC,CAAC,qBAAqB;YACvB,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,wBAAwB,CAAC;gBAC9C,CAAC,CAAC,qBAAqB;gBACvB,CAAC,CAAC,qBAAqB,CAAC;QAC9B,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,yCAAyC;QAC/D,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MACf,MAAM,CAAC,QAAQ,CAAC,MACjB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;YACpB,KAAK,CAAC,IAAI,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,CAAC;YAC7E,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,QAAQ,EAAE,CAAC;YAClB,MAAM,IAAI,2BAA2B,CACnC,mBAAmB,CAAC,QAAQ,CAAC,EAC7B,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,EAC/D,EAAE,KAAK,EAAE,QAAQ,EAAE,CACpB,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,iBAAkB,SAAQ,sBAAsB;IAC9B;IAA7B,YAA6B,KAAa;QACxC,KAAK,EAAE,CAAC;QADmB,UAAK,GAAL,KAAK,CAAQ;IAE1C,CAAC;IAED;;;;;;;;;OASG;IACH,YAAY;QACV,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;IAC5E,CAAC;IAED,8DAA8D;IACtD,KAAK,CAAC,SAAS;QACrB,+EAA+E;QAC/E,4EAA4E;QAC5E,8DAA8D;QAC9D,IAAI,GAAQ,CAAC;QACb,IAAI,CAAC;YACH,MAAM,QAAQ,GAAW,mBAAmB,CAAC;YAC7C,GAAG,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,KAAK,CACX,wFAAwF,CACzF,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,8DAA8D;QAC9D,OAAO,IAAK,GAAG,CAAC,OAAsD,CAAC;YACrE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;SACzC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,gBAAgB,CAC5B,MAAc,EACd,WAAgD,EAChD,wBAA4C,EAC5C,eAAoC;QAEpC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACtC,MAAM,KAAK,GAAgB,EAAE,MAAM,EAAE,eAAe,KAAK,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAEjF,+FAA+F;QAC/F,8FAA8F;QAC9F,+FAA+F;QAC/F,kGAAkG;QAClG,4FAA4F;QAC5F,8FAA8F;QAC9F,kFAAkF;QAClF,MAAM,SAAS,GAAG,WAAW,KAAK,SAAS,CAAC;QAC5C,MAAM,YAAY,GAAG,iBAAiB,CACpC,WAAW,EACX,wBAAwB;QACxB,2BAA2B,CAAC,SAAS,CACtC,CAAC;QAQF,MAAM,WAAW,GAAG,KAAK,EAAE,WAAmB,EAAuB,EAAE;YACrE,MAAM,SAAS,GAAG,CAAC,MAAe,EAA2B,EAAE;gBAC7D,MAAM,UAAU,GAAG,SAAS;oBAC1B,CAAC,CAAC,eAAe,CAAC,WAAY,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;oBACtE,CAAC,CAAC,SAAS,CAAC;gBACd,MAAM,IAAI,GAA4B;oBACpC,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,UAAU,EAAE,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;oBACxC,MAAM,EAAE,YAAY;oBACpB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;iBACnD,CAAC;gBACF,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;oBAC7B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;oBAC7B,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gBACzC,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC,CAAC;YACF,MAAM,QAAQ,GAAG,MAAM,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;YACzE,MAAM,MAAM,GAAG,QAAQ,CAAC,OAKtB,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC;YACzF,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;YACxD,OAAO;gBACL,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,KAAgC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzF,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE;gBAC3B,GAAG,CAAC,OAAO,QAAQ,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC1F,CAAC;QACJ,CAAC,CAAC;QAEF,4FAA4F;QAC5F,uEAAuE;QACvE,MAAM,OAAO,GAAG,CAAC,MAAkB,EAAkC,EAAE,CACrE,MAAM,CAAC,SAAS,IAAI,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAErD,2FAA2F;QAC3F,0DAA0D;QAC1D,MAAM,WAAW,GAAG,CAClB,MAA+B,EAC/B,OAAgB,EACkD,EAAE;YACpE,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;gBAAE,OAAO,EAAE,MAAM,EAAE,CAAC;YAChD,OAAO;gBACL,MAAM;gBACN,IAAI,EAAE,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,kBAAkB,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE;aACvE,CAAC;QACJ,CAAC,CAAC;QAEF,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC;QACxC,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,WAAW,KAAK,IAAI;YAAE,OAAO,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;QAEzF,uFAAuF;QACvF,MAAM,WAAW,GAAG,GAAG,MAAM,iFAAiF,CAAC;QAC/G,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,CAAC;QAC7C,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,WAAW,KAAK,IAAI;YAAE,OAAO,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;QAEzF,gGAAgG;QAChG,mFAAmF;QACnF,IAAI,KAAK,CAAC,UAAU,KAAK,YAAY,EAAE,CAAC;YACtC,MAAM,IAAI,aAAa,CACrB,aAAa,CACX,yFAAyF,CAC1F,EACD,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAC1F,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,aAAa,CACrB,aAAa,CAAC,oDAAoD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAC7F,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAC1F,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,MAAc,EACd,WAAqC,EACrC,wBAAiC;QAEjC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAC5C,MAAM,EACN,WAAW,EACX,wBAAwB,EACxB,SAAS,CACV,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;yFACqF;IAC5E,KAAK,CAAC,gBAAgB,CAC7B,MAAc,EACd,WAAqC,EACrC,wBAAiC,EACjC,IAA2C;QAE3C,OAAO,IAAI,CAAC,gBAAgB,CAC1B,MAAM,EACN,WAAW,EACX,wBAAwB,EACxB,IAAI,EAAE,sBAAsB,KAAK,IAAI,CACtC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,iBAAiB,CACrB,MAAc,EACd,KAAuB,EACvB,QAAsB,EACtB,OAQC;QAED,8DAA8D;QAC9D,IAAI,GAAQ,CAAC;QACb,IAAI,CAAC;YACH,MAAM,QAAQ,GAAW,mBAAmB,CAAC;YAC7C,GAAG,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,KAAK,CACX,wFAAwF,CACzF,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,8DAA8D;QAC9D,MAAM,MAAM,GAAG,IAAK,GAAG,CAAC,OAAsD,CAAC;YAC7E,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;SACzC,CAAC,CAAC;QAEH,uFAAuF;QACvF,4FAA4F;QAC5F,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC5C,MAAM,cAAc,GAKf,EAAE,CAAC;QACR,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CACb,wCAAwC,IAAI,CAAC,IAAI,oFAAoF,CACtI,CAAC;YACJ,CAAC;YACD,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YAClC,cAAc,CAAC,IAAI,CAAC;gBAClB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,YAAY,EAAE,IAAI,CAAC,WAAW,EAAE,qCAAqC;gBACrE,0FAA0F;gBAC1F,0FAA0F;gBAC1F,8CAA8C;gBAC9C,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAClD,CAAC,CAAC;QACL,CAAC;QAED,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC;QAC5C,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACpC,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,wBAAwB,GAAG,KAAK,CAAC;QACrC,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,6FAA6F;QAC7F,4FAA4F;QAC5F,2FAA2F;QAC3F,sFAAsF;QACtF,uCAAuC;QACvC,IAAI,gBAAgB,GAAG,CAAC,CAAC;QACzB,MAAM,iBAAiB,GAAqB,EAAE,CAAC;QAC/C,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,wBAAwB,CAAC,CAAC;QACxF;;;qFAG6E;QAC7E,MAAM,mBAAmB,GAAG,CAAC,MAA2B,EAAuB,EAAE,CAAC,CAAC;YACjF,GAAG,MAAM;YACT,GAAG,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtE,GAAG,CAAC,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACpE,CAAC,CAAC;QAEH,8DAA8D;QAC9D,MAAM,OAAO,GAAU,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAE3D,MAAM,iBAAiB,GAAG,GAA4B,EAAE;YACtD,MAAM,IAAI,GAA4B;gBACpC,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,UAAU,EAAE,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;gBACxC,MAAM;gBACN,QAAQ,EAAE,OAAO;aAClB,CAAC;YACF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,0FAA0F;gBAC1F,uFAAuF;gBACvF,wFAAwF;gBACxF,qFAAqF;gBACrF,sFAAsF;gBACtF,2EAA2E;gBAC3E,IAAI,CAAC,OAAO,CAAC,GAAG,sBAAsB;oBACpC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC;oBAC5D,CAAC,CAAC,cAAc,CAAC;YACrB,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,4FAA4F;QAC5F,6FAA6F;QAC7F,iFAAiF;QACjF,oCAAoC;QACpC,EAAE;QACF,4FAA4F;QAC5F,sFAAsF;QACtF,6FAA6F;QAC7F,kDAAkD;QAClD,4FAA4F;QAC5F,IAAI,oBAAoB,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC;QACzE,IAAI,sBAAsB,GAAG,KAAK,CAAC;QACnC,IAAI,qBAAqB,GAAG,CAAC,CAAC;QAC9B,IAAI,kBAA6D,CAAC;QAElE,2FAA2F;QAC3F,MAAM,kBAAkB,GAAG,GAAS,EAAE;YACpC,oBAAoB,GAAG,KAAK,CAAC;YAC7B,sBAAsB,GAAG,IAAI,CAAC;QAChC,CAAC,CAAC;QAEF,8DAA8D;QAC9D,MAAM,cAAc,GAAG,KAAK,IAAkB,EAAE;YAC9C,MAAM,aAAa,GAAG,oBAAoB,CAAC;YAC3C,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,8DAA8D;iBACpF,MAAM,CAAC,QAAQ,CAAC,MAA0D,CACzE,iBAAiB,EAAE,CACpB,CAAC;gBACF,iFAAiF;gBACjF,gEAAgE;gBAChE,IAAI,aAAa;oBAAE,qBAAqB,IAAI,CAAC,CAAC;gBAC9C,OAAO,QAAQ,CAAC;YAClB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,qFAAqF;gBACrF,wFAAwF;gBACxF,qBAAqB;gBACrB,IAAI,CAAC,aAAa;oBAAE,MAAM,GAAG,CAAC;gBAC9B,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;gBACtC,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG;oBAAE,MAAM,GAAG,CAAC,CAAC,mCAAmC;gBACpF,MAAM,WAAW,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;gBAC7C,MAAM,MAAM,GACV,MAAM,KAAK,GAAG;oBACZ,CAAC,CAAC,qBAAqB;oBACvB,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,wBAAwB,CAAC;wBAC9C,CAAC,CAAC,qBAAqB;wBACvB,CAAC,CAAC,qBAAqB,CAAC;gBAC9B,wFAAwF;gBACxF,mFAAmF;gBACnF,kBAAkB,GAAG;oBACnB,MAAM;oBACN,WAAW;oBACX,wBAAwB,EAAE,qBAAqB;iBAChD,CAAC;gBACF,kBAAkB,EAAE,CAAC;gBACrB,wFAAwF;gBACxF,4DAA4D;gBAC5D,OAAO,MAAM,8DAA8D;iBAC1E,MAAM,CAAC,QAAQ,CAAC,MAA0D,CACzE,iBAAiB,EAAE,CACpB,CAAC;YACJ,CAAC;QACH,CAAC,CAAC;QAEF,iGAAiG;QACjG,kGAAkG;QAClG,+FAA+F;QAC/F,kGAAkG;QAClG,8FAA8F;QAC9F,8EAA8E;QAC9E,MAAM,sBAAsB,GAAG,KAAK,IAAkC,EAAE;YACtE,0FAA0F;YAC1F,kCAAkC;YAClC,EAAE;YACF,0FAA0F;YAC1F,4FAA4F;YAC5F,4FAA4F;YAC5F,2FAA2F;YAC3F,uFAAuF;YACvF,yFAAyF;YACzF,8BAA8B;YAC9B,EAAE;YACF,yFAAyF;YACzF,0FAA0F;YAC1F,uEAAuE;YACvE,MAAM,eAAe,GACnB,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACvF,MAAM,SAAS,GAA4B;gBACzC,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,UAAU,EAAE,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;gBACxC,MAAM;gBACN,QAAQ,EAAE,OAAO;aAClB,CAAC;YACF,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;gBAClC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;gBACvC,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gBAC5C,+CAA+C;gBAC/C,kFAAkF;gBAClF,wFAAwF;gBACxF,oFAAoF;gBACpF,yCAAyC;YAC3C,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,8DAA8D;aACjF,MAAM,CAAC,QAAQ,CAAC,MAA0D,CAAC,SAAS,CAAC,CAAC;YACvF,MAAM,MAAM,GAAG,KAAK,CAAC,OAKnB,CAAC;YACH,gFAAgF;YAChF,0EAA0E;YAC1E,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC;YACzF,qFAAqF;YACrF,yFAAyF;YACzF,0FAA0F;YAC1F,yFAAyF;YACzF,0FAA0F;YAC1F,sFAAsF;YACtF,qFAAqF;YACrF,mFAAmF;YACnF,0FAA0F;YAC1F,wFAAwF;YACxF,8EAA8E;YAC9E,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,OAAO,mBAAmB,CAAC;oBACzB,MAAM,EAAE,OAAO,CAAC,KAAgC;oBAChD,SAAS,EAAE,iBAAiB;iBAC7B,CAAC,CAAC;YACL,CAAC;YACD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;YACxD,MAAM,IAAI,GAAG,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACvC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACpB,OAAO,mBAAmB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC,CAAC;YAC/E,CAAC;YACD,kFAAkF;YAClF,8DAA8D;YAC9D,MAAM,IAAI,aAAa,CACrB,aAAa,CAAC,oDAAoD,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EACvF;gBACE,IAAI,EAAE,oBAAoB;gBAC1B,QAAQ,EAAE,QAAQ;gBAClB,WAAW,EAAE,MAAM;gBACnB,SAAS,EAAE,KAAK;aACjB,CACF,CAAC;QACJ,CAAC,CAAC;QAEF,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,QAAQ,GAAG,MAAM,cAAc,EAAE,CAAC;YACxC,MAAM,aAAa,GACjB,QAAQ,CAAC,OACV,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;YAEvC,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;gBAE/D,MAAM,uBAAuB,GAIxB,EAAE,CAAC;gBACR,IAAI,0BAA0B,GAAG,KAAK,CAAC;gBAEvC,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;oBAClC,MAAM,aAAa,GAAG,KAAK,CAAC,EAAG,CAAC,CAAC,uCAAuC;oBAExE,IAAI,eAAe,IAAI,QAAQ,IAAI,wBAAwB,EAAE,CAAC;wBAC5D,0EAA0E;wBAC1E,uBAAuB,CAAC,IAAI,CAAC;4BAC3B,IAAI,EAAE,aAAa;4BACnB,WAAW,EAAE,aAAa;4BAC1B,OAAO,EAAE,mCAAmC;yBAC7C,CAAC,CAAC;wBACH,0BAA0B,GAAG,IAAI,CAAC;wBAClC,SAAS;oBACX,CAAC;oBAED,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAK,CAAE,CAAC;oBAC/C,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;oBAC7D,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAA4B,CAAC;oBAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBAEzB,IAAI,aAAqB,CAAC;oBAC1B,IAAI,MAAsB,CAAC;oBAE3B,IAAI,CAAC;wBACH,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;4BACnC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC;4BAC1B,WAAW,CAAC,OAAO,CAAC,aAAa,IAAI,KAAK,CAAC;yBAC5C,CAAC,CAAC;wBACH,MAAM,UAAU,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;wBAClD,MAAM,GAAG;4BACP,SAAS,EAAE,QAAQ;4BACnB,IAAI,EAAE,QAAQ;4BACd,IAAI;4BACJ,MAAM,EAAE,UAAU;4BAClB,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;yBAChC,CAAC;wBACF,aAAa,GAAG,UAAU,CAAC;oBAC7B,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;wBACrC,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,SAAS,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC;wBACnF,MAAM,GAAG;4BACP,SAAS,EAAE,QAAQ;4BACnB,IAAI,EAAE,QAAQ;4BACd,IAAI;4BACJ,MAAM,EAAE,IAAI;4BACZ,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;4BAC/B,KAAK,EAAE,SAAS;yBACjB,CAAC;wBACF,aAAa,GAAG,OAAO,CAAC;oBAC1B,CAAC;oBAED,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC/B,eAAe,EAAE,CAAC;oBAClB,IACE,SAAS,KAAK,SAAS;wBACvB,CAAC,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,iBAAiB,CAAC,EAC5D,CAAC;wBACD,aAAa,EAAE,CAAC;wBAChB,IAAI,aAAa,IAAI,SAAS,EAAE,CAAC;4BAC/B,wBAAwB,GAAG,IAAI,CAAC;4BAChC,0BAA0B,GAAG,IAAI,CAAC;wBACpC,CAAC;oBACH,CAAC;oBACD,uBAAuB,CAAC,IAAI,CAAC;wBAC3B,IAAI,EAAE,aAAa;wBACnB,WAAW,EAAE,aAAa;wBAC1B,OAAO,EAAE,aAAa;qBACvB,CAAC,CAAC;gBACL,CAAC;gBAED,MAAM,SAAS,GAAG,0BAA0B,IAAI,eAAe,IAAI,QAAQ,CAAC;gBAE5E,IAAI,SAAS,EAAE,CAAC;oBACd,+EAA+E;oBAC/E,uEAAuE;oBACvE,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE;4BACP,GAAG,uBAAuB;4BAC1B;gCACE,IAAI,EAAE,MAAe;gCACrB,IAAI,EAAE,0KAA0K;6BACjL;yBACF;qBACF,CAAC,CAAC;oBACH,OAAO,sBAAsB,EAAE,CAAC;gBAClC,CAAC;gBAED,yEAAyE;gBACzE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC,CAAC;YACnE,CAAC;iBAAM,CAAC;gBACN,qFAAqF;gBACrF,8EAA8E;gBAC9E,0FAA0F;gBAC1F,uFAAuF;gBACvF,qFAAqF;gBACrF,2FAA2F;gBAC3F,MAAM,SAAS,GAAI,QAAQ,CAAC,OAAkD,CAAC,IAAI,CACjF,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CACzB,CAAC;gBACF,MAAM,IAAI,GAAG,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC;gBACnC,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBACvC,MAAM,OAAO,GACX,MAAM,KAAK,IAAI;oBACb,CAAC,CAAC,uBAAuB,CACrB,MAAM,EACN;wBACE,GAAG,CAAC,OAAO,CAAC,qBAAqB,KAAK,SAAS;4BAC7C,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,qBAAmC,EAAE;4BAC9D,CAAC,CAAC,EAAE,CAAC;wBACP,GAAG,CAAC,OAAO,CAAC,sBAAsB,KAAK,SAAS;4BAC9C,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,sBAAoC,EAAE;4BAChE,CAAC,CAAC,EAAE,CAAC;qBACR,EACD,mBAAmB,CACpB;oBACH,CAAC,CAAC,SAAS,CAAC;gBAChB,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,EAAE,KAAK,KAAK,IAAI,EAAE,CAAC;oBAC/C,OAAO,mBAAmB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC,CAAC;gBAC/E,CAAC;gBACD,mFAAmF;gBACnF,uFAAuF;gBACvF,wFAAwF;gBACxF,oFAAoF;gBACpF,yFAAyF;gBACzF,gBAAgB,EAAE,CAAC;gBACnB,MAAM,OAAO,GACX,OAAO,KAAK,SAAS;oBACnB,CAAC,CAAC,8BAA8B,CAAC,OAAO,CAAC,SAAS,CAAC;yBAC9C,GAAG,CAAC,4BAA4B,CAAC;yBACjC,IAAI,CAAC,IAAI,CAAC;oBACf,CAAC,CAAC,2DAA2D,CAAC;gBAClE,OAAO,CAAC,KAAK,CAAC,sDAAsD,gBAAgB,GAAG,CAAC,CAAC;gBACzF,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC/D,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,yDAAyD,OAAO,cAAc;iBACxF,CAAC,CAAC;gBACH,eAAe,EAAE,CAAC,CAAC,oCAAoC;gBACvD,IAAI,eAAe,IAAI,QAAQ,EAAE,CAAC;oBAChC,OAAO,sBAAsB,EAAE,CAAC;gBAClC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
@@ -12,6 +12,42 @@ export interface ProviderCapabilities {
12
12
  * This is the universal baseline — all providers work without json_object mode.
13
13
  */
14
14
  jsonMode: boolean;
15
+ /**
16
+ * Whether this provider READS `ToolDefinition.strict` and places per-tool strict on the wire
17
+ * (issue #311's per-tool grammar-constrained tool arguments).
18
+ *
19
+ * Additive-optional and CONSERVATIVE BY DEFAULT: absent reads as false, so the base
20
+ * `capabilities()` below, every existing override, and every third-party `--provider-module`
21
+ * provider are all correctly reported as non-consumers without touching them. Only a provider
22
+ * that actually threads the marker onto its request may declare `true`.
23
+ *
24
+ * This is load-bearing for evidence honesty, not just dispatch: `tool_args.strict_sent` claims
25
+ * realm placed strict on the request handed to the SDK, so run-agent must not mark tools (or
26
+ * record them as sent) for a provider whose wire builder ignores the marker entirely.
27
+ */
28
+ toolArgsStrict?: boolean;
29
+ /**
30
+ * Issue #313: which provider this instance IS. In-repo providers declare it; third-party
31
+ * `--provider-module` providers omit it (agent.ts supplies a `module:<basename>` identity for
32
+ * those through `AgentDeps` instead).
33
+ *
34
+ * Two consumers: run-agent selects the eligibility RULE PROFILE from it (`'openai'` ⇒ the
35
+ * OpenAI profile, everything else ⇒ Anthropic), and it is minted into evidence as the
36
+ * attempt's provider provenance.
37
+ */
38
+ providerId?: 'anthropic' | 'openai' | 'openai-reasoning';
39
+ /**
40
+ * Issue #313: an ENDPOINT-scoped reason this provider instance must not be sent strict at all,
41
+ * even for a schema that passes eligibility. Set by `OpenAIProvider` when it is pointed at an
42
+ * OpenAI-compatible endpoint (`--base-url`) without the author's `--strict-base-url`
43
+ * attestation: compat endpoints vary from full grammar enforcement (vLLM, llama.cpp) to
44
+ * accepting the field and ignoring it, and no capability-discovery API exists to tell them
45
+ * apart. Fail-safe default-off, author opt-in.
46
+ *
47
+ * Read by BOTH dimensions (step output and, from the follow-up PR, tool arguments), which is
48
+ * why it is endpoint-scoped rather than named per-dimension.
49
+ */
50
+ strictGate?: 'compat_endpoint';
15
51
  }
16
52
  /**
17
53
  * Abstract base class for LLM providers used by realm agent.
@@ -26,9 +62,15 @@ export declare abstract class LlmProvider {
26
62
  * `--provider-module` that only implements `callStep` inherits a disclosed no-op BY
27
63
  * CONSTRUCTION — `{ output }`, no `meta` — WITHOUT needing to know this method exists (the
28
64
  * `instanceof` check at agent.ts is unaffected; a plugin author never has to override this).
29
- * `AnthropicProvider` is the only override in this codebase — it actually honors
30
- * `opts.structuredOutputStrict`. The OpenAI provider gets this SAME default no-op; it is never
31
- * special-cased (design record §5, final gate: restored do not add an OpenAI override).
65
+ *
66
+ * OVERRIDES (issue #313 this paragraph replaces the #236 rail that once forbade an OpenAI
67
+ * override; that rail is formally OVERTURNED on the record by the #313 design record, which is
68
+ * the designed special-casing #236 deliberately deferred). `AnthropicProvider` and
69
+ * `OpenAIProvider` both override this method today — each honours `opts.structuredOutputStrict`
70
+ * through its OWN API's mechanism (Anthropic: a `strict` submit tool; OpenAI: Chat Completions
71
+ * `response_format: json_schema`), which is exactly why a single shared implementation was never
72
+ * possible. A provider that does NOT override still inherits the honest no-op above, and
73
+ * run-agent's synthesis rule reports that as `provider_unsupported`.
32
74
  */
33
75
  callStepWithMeta(prompt: string, inputSchema?: Record<string, unknown>, agentProfileInstructions?: string, opts?: {
34
76
  structuredOutputStrict?: boolean;
@@ -91,5 +133,8 @@ export type ProviderName = 'openai' | 'anthropic';
91
133
  * Resolves the correct LLM provider from environment and CLI flags.
92
134
  * Throws if no API key is found or the specified package is not installed.
93
135
  */
94
- export declare function resolveProvider(providerFlag: ProviderName | undefined, modelFlag: string | undefined, baseUrlFlag?: string): Promise<LlmProvider>;
136
+ export declare function resolveProvider(providerFlag: ProviderName | undefined, modelFlag: string | undefined, baseUrlFlag?: string,
137
+ /** Issue #313: the author's attestation that the `--base-url` endpoint genuinely enforces
138
+ * strict. Only meaningful together with `--base-url` on the OpenAI provider. */
139
+ strictBaseUrlFlag?: boolean): Promise<LlmProvider>;
95
140
  //# sourceMappingURL=llm-provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"llm-provider.d.ts","sourceRoot":"","sources":["../../../src/agent/providers/llm-provider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAElG;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;GAGG;AACH,8BAAsB,WAAW;IAC/B,gEAAgE;IAChE,QAAQ,CAAC,QAAQ,CACf,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,wBAAwB,CAAC,EAAE,MAAM,GAChC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnC;;;;;;;;;OASG;IACG,gBAAgB,CACpB,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,wBAAwB,CAAC,EAAE,MAAM,EAEjC,IAAI,CAAC,EAAE;QAAE,sBAAsB,CAAC,EAAE,OAAO,CAAA;KAAE,GAC1C,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,IAAI,CAAC,EAAE,oBAAoB,CAAA;KAAE,CAAC;IAK5E,6DAA6D;IAC7D,YAAY,IAAI,oBAAoB;CAGrC;AAED;;;GAGG;AACH,8BAAsB,sBAAuB,SAAQ,WAAW;IAC9D;;;;;;;OAOG;IACH,QAAQ,CAAC,iBAAiB,CACxB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,cAAc,EAAE,EACvB,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE;QACP;;;;;;WAMG;QACH,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACtC;;;;;;WAMG;QACH,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChD;;;;;WAKG;QACH,sBAAsB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjD,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,wBAAwB,CAAC,EAAE,MAAM,CAAC;KACnC,GACA,OAAO,CAAC,mBAAmB,CAAC;CAChC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,WAAW,GAAG,QAAQ,IAAI,sBAAsB,CAEvF;AAED,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,WAAW,CAAC;AAElD;;;GAGG;AACH,wBAAsB,eAAe,CACnC,YAAY,EAAE,YAAY,GAAG,SAAS,EACtC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,WAAW,CAAC,CAmCtB"}
1
+ {"version":3,"file":"llm-provider.d.ts","sourceRoot":"","sources":["../../../src/agent/providers/llm-provider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAElG;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;;;;;;;;;;;OAYG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,WAAW,GAAG,QAAQ,GAAG,kBAAkB,CAAC;IACzD;;;;;;;;;;OAUG;IACH,UAAU,CAAC,EAAE,iBAAiB,CAAC;CAChC;AAED;;;GAGG;AACH,8BAAsB,WAAW;IAC/B,gEAAgE;IAChE,QAAQ,CAAC,QAAQ,CACf,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,wBAAwB,CAAC,EAAE,MAAM,GAChC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnC;;;;;;;;;;;;;;;OAeG;IACG,gBAAgB,CACpB,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,wBAAwB,CAAC,EAAE,MAAM,EAEjC,IAAI,CAAC,EAAE;QAAE,sBAAsB,CAAC,EAAE,OAAO,CAAA;KAAE,GAC1C,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,IAAI,CAAC,EAAE,oBAAoB,CAAA;KAAE,CAAC;IAK5E,6DAA6D;IAC7D,YAAY,IAAI,oBAAoB;CAGrC;AAED;;;GAGG;AACH,8BAAsB,sBAAuB,SAAQ,WAAW;IAC9D;;;;;;;OAOG;IACH,QAAQ,CAAC,iBAAiB,CACxB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,cAAc,EAAE,EACvB,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE;QACP;;;;;;WAMG;QACH,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACtC;;;;;;WAMG;QACH,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChD;;;;;WAKG;QACH,sBAAsB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjD,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,wBAAwB,CAAC,EAAE,MAAM,CAAC;KACnC,GACA,OAAO,CAAC,mBAAmB,CAAC;CAChC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,WAAW,GAAG,QAAQ,IAAI,sBAAsB,CAEvF;AAED,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,WAAW,CAAC;AAElD;;;GAGG;AACH,wBAAsB,eAAe,CACnC,YAAY,EAAE,YAAY,GAAG,SAAS,EACtC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,WAAW,CAAC,EAAE,MAAM;AACpB;iFACiF;AACjF,iBAAiB,CAAC,EAAE,OAAO,GAC1B,OAAO,CAAC,WAAW,CAAC,CAgDtB"}
@@ -9,9 +9,15 @@ export class LlmProvider {
9
9
  * `--provider-module` that only implements `callStep` inherits a disclosed no-op BY
10
10
  * CONSTRUCTION — `{ output }`, no `meta` — WITHOUT needing to know this method exists (the
11
11
  * `instanceof` check at agent.ts is unaffected; a plugin author never has to override this).
12
- * `AnthropicProvider` is the only override in this codebase — it actually honors
13
- * `opts.structuredOutputStrict`. The OpenAI provider gets this SAME default no-op; it is never
14
- * special-cased (design record §5, final gate: restored do not add an OpenAI override).
12
+ *
13
+ * OVERRIDES (issue #313 this paragraph replaces the #236 rail that once forbade an OpenAI
14
+ * override; that rail is formally OVERTURNED on the record by the #313 design record, which is
15
+ * the designed special-casing #236 deliberately deferred). `AnthropicProvider` and
16
+ * `OpenAIProvider` both override this method today — each honours `opts.structuredOutputStrict`
17
+ * through its OWN API's mechanism (Anthropic: a `strict` submit tool; OpenAI: Chat Completions
18
+ * `response_format: json_schema`), which is exactly why a single shared implementation was never
19
+ * possible. A provider that does NOT override still inherits the honest no-op above, and
20
+ * run-agent's synthesis rule reports that as `provider_unsupported`.
15
21
  */
16
22
  async callStepWithMeta(prompt, inputSchema, agentProfileInstructions,
17
23
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
@@ -40,7 +46,10 @@ export function isToolCapable(provider) {
40
46
  * Resolves the correct LLM provider from environment and CLI flags.
41
47
  * Throws if no API key is found or the specified package is not installed.
42
48
  */
43
- export async function resolveProvider(providerFlag, modelFlag, baseUrlFlag) {
49
+ export async function resolveProvider(providerFlag, modelFlag, baseUrlFlag,
50
+ /** Issue #313: the author's attestation that the `--base-url` endpoint genuinely enforces
51
+ * strict. Only meaningful together with `--base-url` on the OpenAI provider. */
52
+ strictBaseUrlFlag) {
44
53
  const hasOpenAI = process.env['OPENAI_API_KEY'] !== undefined;
45
54
  const hasAnthropic = process.env['ANTHROPIC_API_KEY'] !== undefined;
46
55
  if (!hasOpenAI && !hasAnthropic) {
@@ -58,11 +67,22 @@ export async function resolveProvider(providerFlag, modelFlag, baseUrlFlag) {
58
67
  // function calling, so they route to OpenAIProvider.
59
68
  const REASONING_MODELS = /^o1(-|$)/i;
60
69
  if (modelFlag !== undefined && REASONING_MODELS.test(modelFlag)) {
70
+ // issue #313 (dead-config cell 4): this branch has always DROPPED --base-url silently —
71
+ // the o1 provider takes neither it nor the strict attestation. Silently ignoring an
72
+ // explicit flag is exactly the class the #291 F10 precedent says to warn about.
73
+ if (baseUrlFlag !== undefined || strictBaseUrlFlag === true) {
74
+ const dropped = [
75
+ ...(baseUrlFlag !== undefined ? ['--base-url'] : []),
76
+ ...(strictBaseUrlFlag === true ? ['--strict-base-url'] : []),
77
+ ].join(' and ');
78
+ console.error(` ⚠ ${dropped} ${baseUrlFlag !== undefined && strictBaseUrlFlag === true ? 'are' : 'is'} ignored for the o1 model family — ` +
79
+ `these models use a dedicated provider that always talks to the native OpenAI endpoint.`);
80
+ }
61
81
  const { OpenAIReasoningProvider } = await import('./openai-reasoning-provider.js');
62
82
  return new OpenAIReasoningProvider(modelFlag);
63
83
  }
64
84
  const { OpenAIProvider } = await import('./openai-provider.js');
65
- return new OpenAIProvider(modelFlag ?? 'gpt-4o', baseUrlFlag);
85
+ return new OpenAIProvider(modelFlag ?? 'gpt-4o', baseUrlFlag, strictBaseUrlFlag === true);
66
86
  }
67
87
  else {
68
88
  const { AnthropicProvider } = await import('./anthropic-provider.js');
@@ -1 +1 @@
1
- {"version":3,"file":"llm-provider.js","sourceRoot":"","sources":["../../../src/agent/providers/llm-provider.ts"],"names":[],"mappings":"AAkBA;;;GAGG;AACH,MAAM,OAAgB,WAAW;IAQ/B;;;;;;;;;OASG;IACH,KAAK,CAAC,gBAAgB,CACpB,MAAc,EACd,WAAqC,EACrC,wBAAiC;IACjC,6DAA6D;IAC7D,IAA2C;QAE3C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,wBAAwB,CAAC,CAAC;QAClF,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;IAED,6DAA6D;IAC7D,YAAY;QACV,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC7B,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAgB,sBAAuB,SAAQ,WAAW;CA2C/D;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,QAAqB;IACjD,OAAO,QAAQ,YAAY,sBAAsB,CAAC;AACpD,CAAC;AAID;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,YAAsC,EACtC,SAA6B,EAC7B,WAAoB;IAEpB,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,SAAS,CAAC;IAC9D,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,KAAK,SAAS,CAAC;IAEpE,IAAI,CAAC,SAAS,IAAI,CAAC,YAAY,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CACb,+EAA+E,CAChF,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,YAAY,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAEtE,IAAI,WAAW,KAAK,SAAS,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CACb,wFAAwF;YACtF,wFAAwF,CAC3F,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,8EAA8E;QAC9E,sEAAsE;QACtE,+EAA+E;QAC/E,qDAAqD;QACrD,MAAM,gBAAgB,GAAG,WAAW,CAAC;QACrC,IAAI,SAAS,KAAK,SAAS,IAAI,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YAChE,MAAM,EAAE,uBAAuB,EAAE,GAAG,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAC;YACnF,OAAO,IAAI,uBAAuB,CAAC,SAAS,CAAC,CAAC;QAChD,CAAC;QACD,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;QAChE,OAAO,IAAI,cAAc,CAAC,SAAS,IAAI,QAAQ,EAAE,WAAW,CAAC,CAAC;IAChE,CAAC;SAAM,CAAC;QACN,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;QACtE,OAAO,IAAI,iBAAiB,CAAC,SAAS,IAAI,mBAAmB,CAAC,CAAC;IACjE,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"llm-provider.js","sourceRoot":"","sources":["../../../src/agent/providers/llm-provider.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,19 @@
1
+ import { type StructuredOutputMeta } from '@sensigo/realm';
1
2
  import { ToolCapableLlmProvider, type ProviderCapabilities } from './llm-provider.js';
2
3
  import type { ToolDefinition, ToolExecutor, StepWithToolsResult } from '../mcp/mcp-extensions.js';
4
+ /**
5
+ * Issue #313 — the OpenAI analog of the Anthropic ladder's error: thrown when the drop-strict
6
+ * RETRY also fails, carrying the meta so run-agent's no-result arm can still arm sticky and
7
+ * disclose the downgrade for an attempt that produced no output at all. run-agent reads
8
+ * `.structuredOutput` duck-typed, so this deliberately does not import the Anthropic class —
9
+ * the two provider modules stay independently loadable (each SDK is an optional peer dep).
10
+ */
11
+ export declare class OpenAIStructuredOutputLadderError extends Error {
12
+ readonly structuredOutput: StructuredOutputMeta;
13
+ constructor(message: string, structuredOutput: StructuredOutputMeta, options?: {
14
+ cause?: unknown;
15
+ });
16
+ }
3
17
  /**
4
18
  * OpenAI LLM provider for realm agent.
5
19
  * Uses the Chat Completions API. Sends `response_format: json_object` on native
@@ -9,14 +23,50 @@ import type { ToolDefinition, ToolExecutor, StepWithToolsResult } from '../mcp/m
9
23
  export declare class OpenAIProvider extends ToolCapableLlmProvider {
10
24
  private readonly model;
11
25
  private readonly baseUrl;
12
- constructor(model: string, baseUrl?: string);
26
+ private readonly strictBaseUrl;
27
+ constructor(model: string, baseUrl?: string, strictBaseUrl?: boolean);
13
28
  /**
14
29
  * Native OpenAI endpoints have a well-defined, tested capability surface that includes
15
30
  * json_object mode. Custom compat endpoints behind --base-url do not guarantee this feature.
16
31
  * Default to prompt-only enforcement for any unknown endpoint.
32
+ *
33
+ * Issue #313: `strictGate` is set on a compat endpoint UNLESS the author attested via
34
+ * `--strict-base-url`. Compat endpoints range from full grammar enforcement (vLLM,
35
+ * llama.cpp, LM Studio) to accepting `response_format` and quietly ignoring it, and no
36
+ * capability-discovery API exists — so realm defaults to not sending strict there and
37
+ * discloses `compat_endpoint` rather than risk a silent non-enforcement.
38
+ *
39
+ * `toolArgsStrict` is declared because this provider's tools wire builder genuinely consumes
40
+ * `ToolDefinition.strict` (see `callStepWithTools` below) — the two ship together by design,
41
+ * and the conformance suite asserts the pairing so a declaration can never outrun the wire.
17
42
  */
18
43
  capabilities(): ProviderCapabilities;
19
44
  callStep(prompt: string, inputSchema?: Record<string, unknown>, agentProfileInstructions?: string): Promise<Record<string, unknown>>;
45
+ /**
46
+ * Issue #313 — the structured_output-aware entry point (the #236 rail against an OpenAI
47
+ * override is formally overturned; see llm-provider.ts).
48
+ *
49
+ * Two paths, deliberately disjoint:
50
+ *
51
+ * - Strict NOT requested (a gate-ineligible, sticky, or compat-gated attempt, where run-agent
52
+ * already holds the meta it will record): delegate to `callStep` VERBATIM. The json_object
53
+ * path is therefore byte-identical to pre-#313 by construction, not by careful copying.
54
+ * - Strict requested: Chat Completions `response_format: json_schema` with `strict: true`
55
+ * ALWAYS explicit. Omitting `strict` is NOT a neutral default — probe P1 executed it: an
56
+ * omitted flag yields 200 with the schema unenforced, i.e. a silent non-enforcement mode.
57
+ *
58
+ * The ladder is status-keyed, never message-keyed: a 400 on a strict-carrying request drops
59
+ * strict and retries the turn once; a second 400 throws an error CARRYING the meta. Anything
60
+ * else — 5xx, transport, timeouts — propagates untouched and never drops or sticks, because
61
+ * OpenAI has no 503-grammar analog and a slow first strict call (schema compilation) must be
62
+ * retried as transport, never recorded as a schema failure.
63
+ */
64
+ callStepWithMeta(prompt: string, inputSchema?: Record<string, unknown>, agentProfileInstructions?: string, opts?: {
65
+ structuredOutputStrict?: boolean;
66
+ }): Promise<{
67
+ output: Record<string, unknown>;
68
+ meta?: StructuredOutputMeta;
69
+ }>;
20
70
  /**
21
71
  * Agentic loop for tool-capable steps. Executes tool calls serially (V1 constraint)
22
72
  * until the model returns a final JSON answer or the tool call budget is exhausted.
@@ -1 +1 @@
1
- {"version":3,"file":"openai-provider.d.ts","sourceRoot":"","sources":["../../../src/agent/providers/openai-provider.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACtF,OAAO,KAAK,EAEV,cAAc,EACd,YAAY,EACZ,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAYlC;;;;;GAKG;AACH,qBAAa,cAAe,SAAQ,sBAAsB;IACxD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;gBAEjC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;IAM3C;;;;OAIG;IACH,YAAY,IAAI,oBAAoB;IAI9B,QAAQ,CACZ,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,wBAAwB,CAAC,EAAE,MAAM,GAChC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IA4DnC;;;OAGG;IACG,iBAAiB,CACrB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,cAAc,EAAE,EACvB,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE;QACP,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACtC,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChD,sBAAsB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjD,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,wBAAwB,CAAC,EAAE,MAAM,CAAC;KACnC,GACA,OAAO,CAAC,mBAAmB,CAAC;CAwPhC"}
1
+ {"version":3,"file":"openai-provider.d.ts","sourceRoot":"","sources":["../../../src/agent/providers/openai-provider.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,KAAK,oBAAoB,EAC1B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACtF,OAAO,KAAK,EAEV,cAAc,EACd,YAAY,EACZ,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAoBlC;;;;;;GAMG;AACH,qBAAa,iCAAkC,SAAQ,KAAK;IAC1D,QAAQ,CAAC,gBAAgB,EAAE,oBAAoB,CAAC;gBAE9C,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,oBAAoB,EACtC,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAMhC;AAED;;;;;GAKG;AACH,qBAAa,cAAe,SAAQ,sBAAsB;IACxD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;gBAE5B,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,aAAa,UAAQ;IAOlE;;;;;;;;;;;;;;OAcG;IACH,YAAY,IAAI,oBAAoB;IAW9B,QAAQ,CACZ,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,wBAAwB,CAAC,EAAE,MAAM,GAChC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IA4DnC;;;;;;;;;;;;;;;;;;OAkBG;IACG,gBAAgB,CACpB,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,wBAAwB,CAAC,EAAE,MAAM,EACjC,IAAI,CAAC,EAAE;QAAE,sBAAsB,CAAC,EAAE,OAAO,CAAA;KAAE,GAC1C,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,IAAI,CAAC,EAAE,oBAAoB,CAAA;KAAE,CAAC;IAkG5E;;;OAGG;IACG,iBAAiB,CACrB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,cAAc,EAAE,EACvB,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE;QACP,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACtC,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChD,sBAAsB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjD,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,wBAAwB,CAAC,EAAE,MAAM,CAAC;KACnC,GACA,OAAO,CAAC,mBAAmB,CAAC;CA6ThC"}
@@ -1,8 +1,28 @@
1
1
  // openai-provider.ts — OpenAI LLM provider implementation for realm agent.
2
2
  // Requires openai >= 4.0.0 as an optional peer dependency (npm install openai).
3
- import { WorkflowError, validateAgentSubmission } from '@sensigo/realm';
3
+ import { WorkflowError, validateAgentSubmission, } from '@sensigo/realm';
4
4
  import { ToolCapableLlmProvider } from './llm-provider.js';
5
- import { sanitizeError, serializeToolResult, parseNamespacedId, extractJsonObject, rejectAfter, buildSystemPrompt, summarizeAgentValidationErrors, renderValidationSummaryEntry, } from './agent-utils.js';
5
+ import { sanitizeError, serializeToolResult, parseNamespacedId, extractJsonObject, rejectAfter, buildSystemPrompt, summarizeAgentValidationErrors, renderValidationSummaryEntry, extractHttpStatus, extractApiErrorFields, } from './agent-utils.js';
6
+ /**
7
+ * Issue #313: the schema name OpenAI requires on `response_format.json_schema`. Must match
8
+ * `[a-zA-Z0-9_-]{1,64}`; it is an identifier for the schema, never shown to the model as content.
9
+ */
10
+ const JSON_SCHEMA_NAME = 'realm_step_output';
11
+ /**
12
+ * Issue #313 — the OpenAI analog of the Anthropic ladder's error: thrown when the drop-strict
13
+ * RETRY also fails, carrying the meta so run-agent's no-result arm can still arm sticky and
14
+ * disclose the downgrade for an attempt that produced no output at all. run-agent reads
15
+ * `.structuredOutput` duck-typed, so this deliberately does not import the Anthropic class —
16
+ * the two provider modules stay independently loadable (each SDK is an optional peer dep).
17
+ */
18
+ export class OpenAIStructuredOutputLadderError extends Error {
19
+ structuredOutput;
20
+ constructor(message, structuredOutput, options) {
21
+ super(message, options);
22
+ this.name = 'OpenAIStructuredOutputLadderError';
23
+ this.structuredOutput = structuredOutput;
24
+ }
25
+ }
6
26
  /**
7
27
  * OpenAI LLM provider for realm agent.
8
28
  * Uses the Chat Completions API. Sends `response_format: json_object` on native
@@ -12,18 +32,37 @@ import { sanitizeError, serializeToolResult, parseNamespacedId, extractJsonObjec
12
32
  export class OpenAIProvider extends ToolCapableLlmProvider {
13
33
  model;
14
34
  baseUrl;
15
- constructor(model, baseUrl) {
35
+ strictBaseUrl;
36
+ constructor(model, baseUrl, strictBaseUrl = false) {
16
37
  super();
17
38
  this.model = model;
18
39
  this.baseUrl = baseUrl;
40
+ this.strictBaseUrl = strictBaseUrl;
19
41
  }
20
42
  /**
21
43
  * Native OpenAI endpoints have a well-defined, tested capability surface that includes
22
44
  * json_object mode. Custom compat endpoints behind --base-url do not guarantee this feature.
23
45
  * Default to prompt-only enforcement for any unknown endpoint.
46
+ *
47
+ * Issue #313: `strictGate` is set on a compat endpoint UNLESS the author attested via
48
+ * `--strict-base-url`. Compat endpoints range from full grammar enforcement (vLLM,
49
+ * llama.cpp, LM Studio) to accepting `response_format` and quietly ignoring it, and no
50
+ * capability-discovery API exists — so realm defaults to not sending strict there and
51
+ * discloses `compat_endpoint` rather than risk a silent non-enforcement.
52
+ *
53
+ * `toolArgsStrict` is declared because this provider's tools wire builder genuinely consumes
54
+ * `ToolDefinition.strict` (see `callStepWithTools` below) — the two ship together by design,
55
+ * and the conformance suite asserts the pairing so a declaration can never outrun the wire.
24
56
  */
25
57
  capabilities() {
26
- return { jsonMode: this.baseUrl === undefined };
58
+ return {
59
+ jsonMode: this.baseUrl === undefined,
60
+ providerId: 'openai',
61
+ toolArgsStrict: true,
62
+ ...(this.baseUrl !== undefined && !this.strictBaseUrl
63
+ ? { strictGate: 'compat_endpoint' }
64
+ : {}),
65
+ };
27
66
  }
28
67
  async callStep(prompt, inputSchema, agentProfileInstructions) {
29
68
  // Dynamically import openai to keep it an optional peer dependency.
@@ -80,6 +119,110 @@ export class OpenAIProvider extends ToolCapableLlmProvider {
80
119
  return retryParsed;
81
120
  throw new Error(sanitizeError(`OpenAI returned non-JSON content after retry: ${retry.slice(0, 200)}`));
82
121
  }
122
+ /**
123
+ * Issue #313 — the structured_output-aware entry point (the #236 rail against an OpenAI
124
+ * override is formally overturned; see llm-provider.ts).
125
+ *
126
+ * Two paths, deliberately disjoint:
127
+ *
128
+ * - Strict NOT requested (a gate-ineligible, sticky, or compat-gated attempt, where run-agent
129
+ * already holds the meta it will record): delegate to `callStep` VERBATIM. The json_object
130
+ * path is therefore byte-identical to pre-#313 by construction, not by careful copying.
131
+ * - Strict requested: Chat Completions `response_format: json_schema` with `strict: true`
132
+ * ALWAYS explicit. Omitting `strict` is NOT a neutral default — probe P1 executed it: an
133
+ * omitted flag yields 200 with the schema unenforced, i.e. a silent non-enforcement mode.
134
+ *
135
+ * The ladder is status-keyed, never message-keyed: a 400 on a strict-carrying request drops
136
+ * strict and retries the turn once; a second 400 throws an error CARRYING the meta. Anything
137
+ * else — 5xx, transport, timeouts — propagates untouched and never drops or sticks, because
138
+ * OpenAI has no 503-grammar analog and a slow first strict call (schema compilation) must be
139
+ * retried as transport, never recorded as a schema failure.
140
+ */
141
+ async callStepWithMeta(prompt, inputSchema, agentProfileInstructions, opts) {
142
+ if (opts?.structuredOutputStrict !== true || inputSchema === undefined) {
143
+ return { output: await this.callStep(prompt, inputSchema, agentProfileInstructions) };
144
+ }
145
+ // Dynamically import openai to keep it an optional peer dependency (same `moduleId` idiom as
146
+ // callStep — the indirection is what keeps the import out of static resolution).
147
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
148
+ let mod;
149
+ try {
150
+ const moduleId = 'openai';
151
+ mod = await import(moduleId);
152
+ }
153
+ catch {
154
+ console.error('realm agent requires the openai package. Run: npm install openai');
155
+ process.exit(1);
156
+ }
157
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
158
+ const client = new mod.default({
159
+ apiKey: process.env['OPENAI_API_KEY'],
160
+ ...(this.baseUrl !== undefined ? { baseURL: this.baseUrl } : {}),
161
+ });
162
+ const systemPrompt = buildSystemPrompt(inputSchema, agentProfileInstructions);
163
+ const messages = [
164
+ { role: 'system', content: systemPrompt },
165
+ { role: 'user', content: prompt },
166
+ ];
167
+ const buildOpts = (strict) => ({
168
+ model: this.model,
169
+ messages,
170
+ ...(strict
171
+ ? {
172
+ response_format: {
173
+ type: 'json_schema',
174
+ json_schema: { name: JSON_SCHEMA_NAME, strict: true, schema: inputSchema },
175
+ },
176
+ }
177
+ : this.capabilities().jsonMode
178
+ ? { response_format: { type: 'json_object' } }
179
+ : {}),
180
+ });
181
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
182
+ const create = (o) =>
183
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
184
+ client.chat.completions.create(o);
185
+ /** Reads the answer, honouring the refusal field as an L1-class escape. */
186
+ const readContent = (response) => {
187
+ const message = response.choices?.[0]?.message;
188
+ const refusal = message?.refusal;
189
+ if (typeof refusal === 'string' && refusal.length > 0) {
190
+ // A refusal is a well-formed API response, not a transport failure: surface it the same
191
+ // way a non-JSON answer surfaces, so the existing validation/reask layer handles it.
192
+ throw new Error(sanitizeError(`OpenAI refused the request: ${refusal.slice(0, 200)}`));
193
+ }
194
+ const parsed = extractJsonObject(message?.content ?? '');
195
+ if (parsed !== null)
196
+ return parsed;
197
+ throw new Error(sanitizeError(`OpenAI returned non-JSON content under strict decoding: ${(message?.content ?? '').slice(0, 200)}`));
198
+ };
199
+ try {
200
+ const response = await create(buildOpts(true));
201
+ return { output: readContent(response), meta: { requested: true, sent: true } };
202
+ }
203
+ catch (err) {
204
+ const status = extractHttpStatus(err);
205
+ // 5xx / transport / timeout: NEVER a downgrade and never sticky — the schema is not what
206
+ // failed. Propagates so the caller's own retry treats it as the transport error it is.
207
+ if (status !== 400)
208
+ throw err;
209
+ const api_message = err instanceof Error ? err.message : String(err);
210
+ const meta = {
211
+ requested: true,
212
+ sent: false,
213
+ downgrade_reason: 'api_rejected_schema',
214
+ api_message,
215
+ ...extractApiErrorFields(err),
216
+ };
217
+ try {
218
+ const retry = await create(buildOpts(false));
219
+ return { output: readContent(retry), meta };
220
+ }
221
+ catch (retryErr) {
222
+ throw new OpenAIStructuredOutputLadderError(retryErr instanceof Error ? retryErr.message : String(retryErr), meta, { cause: retryErr });
223
+ }
224
+ }
225
+ }
83
226
  /**
84
227
  * Agentic loop for tool-capable steps. Executes tool calls serially (V1 constraint)
85
228
  * until the model returns a final JSON answer or the tool call budget is exhausted.
@@ -118,6 +261,10 @@ export class OpenAIProvider extends ToolCapableLlmProvider {
118
261
  name: tool.name,
119
262
  description: tool.description,
120
263
  parameters: tool.inputSchema,
264
+ // issue #313: per-tool strict, consumed from the marker run-agent set. The key only
265
+ // appears for a selected tool, so an unmarked tool's wire entry is byte-identical to
266
+ // pre-#313 — and mixing marked with unmarked in one request is legal (probe P4).
267
+ ...(tool.strict === true ? { strict: true } : {}),
121
268
  },
122
269
  });
123
270
  }
@@ -134,7 +281,14 @@ export class OpenAIProvider extends ToolCapableLlmProvider {
134
281
  let correction_count = 0;
135
282
  const tool_call_records = [];
136
283
  /** Attaches `correctionCount` to a result only when at least one correction happened. */
137
- const withCorrectionCount = (result) => correction_count > 0 ? { ...result, correctionCount: correction_count } : result;
284
+ /** Attaches `correctionCount` when corrections happened, plus (issue #313) the tool-args drop
285
+ * facts when the ladder dropped strict mid-attempt. The single result chokepoint for this
286
+ * method, so neither field can be forgotten on a new exit path. */
287
+ const withCorrectionCount = (result) => ({
288
+ ...result,
289
+ ...(correction_count > 0 ? { correctionCount: correction_count } : {}),
290
+ ...(toolArgsStrictDrop !== undefined ? { toolArgsStrictDrop } : {}),
291
+ });
138
292
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
139
293
  const history = [
140
294
  {
@@ -145,12 +299,66 @@ export class OpenAIProvider extends ToolCapableLlmProvider {
145
299
  ];
146
300
  const buildMainCallOpts = () => {
147
301
  const opts = { model: this.model, messages: history };
148
- if (openaiTools.length > 0)
149
- opts['tools'] = openaiTools;
302
+ if (openaiTools.length > 0) {
303
+ // issue #313: after a drop, later turns send STRIPPED COPIES rather than the mutated
304
+ // originals. Mutating in place would retroactively rewrite the request objects already
305
+ // handed to the SDK for earlier turns — the aliasing hazard #311 hit on the Anthropic
306
+ // side, which also makes the wire history unreadable. Pre-drop the original array is
307
+ // passed with no copy at all.
308
+ opts['tools'] = toolArgsStrictStripped
309
+ ? openaiTools.map((t) => {
310
+ const { strict: _strict, ...fn } = t.function;
311
+ return { ...t, function: fn };
312
+ })
313
+ : openaiTools;
314
+ }
150
315
  if (responseFormat !== undefined)
151
316
  opts['response_format'] = responseFormat;
152
317
  return opts;
153
318
  };
319
+ // -------------------------------------------------------------------------------------------
320
+ // issue #313 — the TOOLS-fork ladder. Deliberately SIMPLER than the output ladder and simpler
321
+ // than Anthropic's tools ladder, and the evidence says so: OpenAI has no 503-grammar analog,
322
+ // so ONLY a 400 on a strict-carrying request drops. 5xx, transport errors and timeouts
323
+ // propagate untouched — first-call schema-compile latency must be retried as the transport
324
+ // event it is, never recorded as a schema failure.
325
+ //
326
+ // A second 400 after the drop propagates PLAINLY. That is the shipped tools-fork discipline
327
+ // (the meta-carrying error device belongs to the OUTPUT dimension, where run-agent has a
328
+ // no-result arm to consume it; the tools path has none).
329
+ // -------------------------------------------------------------------------------------------
330
+ let toolArgsStrictActive = openaiTools.some((t) => t.function.strict === true);
331
+ let toolArgsStrictStripped = false;
332
+ let strictTurnsBeforeDrop = 0;
333
+ let toolArgsStrictDrop;
334
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
335
+ const createMainTurn = async () => {
336
+ const carriedStrict = toolArgsStrictActive;
337
+ try {
338
+ const response = await // eslint-disable-next-line @typescript-eslint/no-explicit-any
339
+ client.chat.completions.create(buildMainCallOpts());
340
+ if (carriedStrict)
341
+ strictTurnsBeforeDrop += 1;
342
+ return response;
343
+ }
344
+ catch (err) {
345
+ // A turn that carried no strict is none of this ladder's business.
346
+ if (!carriedStrict)
347
+ throw err;
348
+ if (extractHttpStatus(err) !== 400)
349
+ throw err;
350
+ toolArgsStrictDrop = {
351
+ reason: 'api_rejected_schema',
352
+ api_message: err instanceof Error ? err.message : String(err),
353
+ strict_turns_before_drop: strictTurnsBeforeDrop,
354
+ ...extractApiErrorFields(err),
355
+ };
356
+ toolArgsStrictActive = false;
357
+ toolArgsStrictStripped = true;
358
+ return await // eslint-disable-next-line @typescript-eslint/no-explicit-any
359
+ client.chat.completions.create(buildMainCallOpts());
360
+ }
361
+ };
154
362
  const buildFinalCallOpts = () => {
155
363
  const opts = { model: this.model, messages: history };
156
364
  if (responseFormat !== undefined)
@@ -187,8 +395,7 @@ export class OpenAIProvider extends ToolCapableLlmProvider {
187
395
  });
188
396
  };
189
397
  while (true) {
190
- const response = await // eslint-disable-next-line @typescript-eslint/no-explicit-any
191
- client.chat.completions.create(buildMainCallOpts());
398
+ const response = await createMainTurn();
192
399
  const message = response.choices[0].message;
193
400
  if (message.tool_calls?.length) {
194
401
  const batch = message.tool_calls;