@animalabs/membrane 0.5.68 → 0.5.70

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 (67) hide show
  1. package/dist/formatters/anthropic-xml.d.ts.map +1 -1
  2. package/dist/formatters/anthropic-xml.js +14 -8
  3. package/dist/formatters/anthropic-xml.js.map +1 -1
  4. package/dist/formatters/index.d.ts +1 -0
  5. package/dist/formatters/index.d.ts.map +1 -1
  6. package/dist/formatters/index.js +1 -0
  7. package/dist/formatters/index.js.map +1 -1
  8. package/dist/formatters/native.d.ts +3 -0
  9. package/dist/formatters/native.d.ts.map +1 -1
  10. package/dist/formatters/native.js +70 -14
  11. package/dist/formatters/native.js.map +1 -1
  12. package/dist/formatters/openai-responses.d.ts +23 -0
  13. package/dist/formatters/openai-responses.d.ts.map +1 -0
  14. package/dist/formatters/openai-responses.js +176 -0
  15. package/dist/formatters/openai-responses.js.map +1 -0
  16. package/dist/membrane.d.ts.map +1 -1
  17. package/dist/membrane.js +61 -14
  18. package/dist/membrane.js.map +1 -1
  19. package/dist/providers/anthropic-tool-schema.d.ts +43 -0
  20. package/dist/providers/anthropic-tool-schema.d.ts.map +1 -0
  21. package/dist/providers/anthropic-tool-schema.js +165 -0
  22. package/dist/providers/anthropic-tool-schema.js.map +1 -0
  23. package/dist/providers/anthropic.d.ts.map +1 -1
  24. package/dist/providers/anthropic.js +130 -7
  25. package/dist/providers/anthropic.js.map +1 -1
  26. package/dist/providers/gemini.d.ts.map +1 -1
  27. package/dist/providers/gemini.js +15 -0
  28. package/dist/providers/gemini.js.map +1 -1
  29. package/dist/providers/index.d.ts +2 -0
  30. package/dist/providers/index.d.ts.map +1 -1
  31. package/dist/providers/index.js +2 -0
  32. package/dist/providers/index.js.map +1 -1
  33. package/dist/providers/openai-responses-api.d.ts +129 -0
  34. package/dist/providers/openai-responses-api.d.ts.map +1 -0
  35. package/dist/providers/openai-responses-api.js +475 -0
  36. package/dist/providers/openai-responses-api.js.map +1 -0
  37. package/dist/providers/openrouter.d.ts +6 -0
  38. package/dist/providers/openrouter.d.ts.map +1 -1
  39. package/dist/providers/openrouter.js +87 -4
  40. package/dist/providers/openrouter.js.map +1 -1
  41. package/dist/types/provider.d.ts +8 -0
  42. package/dist/types/provider.d.ts.map +1 -1
  43. package/dist/types/request.d.ts +8 -0
  44. package/dist/types/request.d.ts.map +1 -1
  45. package/dist/utils/image-media.d.ts +54 -0
  46. package/dist/utils/image-media.d.ts.map +1 -0
  47. package/dist/utils/image-media.js +135 -0
  48. package/dist/utils/image-media.js.map +1 -0
  49. package/dist/utils/tool-parser.d.ts.map +1 -1
  50. package/dist/utils/tool-parser.js +15 -9
  51. package/dist/utils/tool-parser.js.map +1 -1
  52. package/package.json +1 -1
  53. package/src/formatters/anthropic-xml.ts +13 -8
  54. package/src/formatters/index.ts +4 -0
  55. package/src/formatters/native.ts +70 -14
  56. package/src/formatters/openai-responses.ts +206 -0
  57. package/src/membrane.ts +66 -16
  58. package/src/providers/anthropic-tool-schema.ts +194 -0
  59. package/src/providers/anthropic.ts +140 -10
  60. package/src/providers/gemini.ts +14 -0
  61. package/src/providers/index.ts +13 -0
  62. package/src/providers/openai-responses-api.ts +644 -0
  63. package/src/providers/openrouter.ts +94 -5
  64. package/src/types/provider.ts +7 -1
  65. package/src/types/request.ts +8 -0
  66. package/src/utils/image-media.ts +150 -0
  67. package/src/utils/tool-parser.ts +14 -9
@@ -1 +1 @@
1
- {"version":3,"file":"tool-parser.js","sourceRoot":"","sources":["../../src/utils/tool-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E;;;;GAIG;AACH,SAAS,eAAe,CAAC,KAAa;IACpC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAE7B,kEAAkE;IAClE,qFAAqF;IACrF,MAAM,iBAAiB,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpD,IAAI,iBAAiB,EAAE,CAAC;QACtB,uCAAuC;QACvC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,uBAAuB;IACvB,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E,yDAAyD;AACzD,wDAAwD;AACxD,MAAM,oBAAoB,GAAG,iEAAiE,CAAC;AAE/F,gCAAgC;AAChC,MAAM,iBAAiB,GAAG,kEAAkE,CAAC;AAE7F,2CAA2C;AAC3C,MAAM,uBAAuB,GAAG,0CAA0C,CAAC;AAE3E,iBAAiB;AACjB,MAAM,eAAe,GAAG,wEAAwE,CAAC;AAEjG,+CAA+C;AAC/C,MAAM,sBAAsB,GAAG,6BAA6B,CAAC;AAE7D;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,cAAc;IACd,oBAAoB,CAAC,SAAS,GAAG,CAAC,CAAC;IAEnC,kEAAkE;IAClE,IAAI,UAAU,GAA2B,IAAI,CAAC;IAC9C,IAAI,mBAAmB,GAA2B,IAAI,CAAC;IAEvD,OAAO,CAAC,UAAU,GAAG,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC/D,mDAAmD;QACnD,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACzD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,uBAAuB;QAE/E,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC;YACxD,iDAAiD;YACjD,+DAA+D;YAC/D,mBAAmB,GAAG;gBACpB,GAAG,UAAU;gBACb,KAAK,EAAE,UAAU,CAAC,KAAK;gBACvB,KAAK,EAAE,UAAU,CAAC,KAAK;aACL,CAAC;QACvB,CAAC;IACH,CAAC;IAED,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,SAAS,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;IACzC,MAAM,YAAY,GAAG,mBAAmB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,kCAAkC;IACrF,MAAM,UAAU,GAAG,mBAAmB,CAAC,KAAK,CAAC;IAE7C,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAE5D,MAAM,KAAK,GAAe,EAAE,CAAC;IAE7B,wDAAwD;IACxD,iBAAiB,CAAC,SAAS,GAAG,CAAC,CAAC;IAChC,IAAI,WAAmC,CAAC;IAExC,OAAO,CAAC,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACrE,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,sBAAsB;QAC7D,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,yBAAyB;QAErE,mBAAmB;QACnB,MAAM,KAAK,GAA4B,EAAE,CAAC;QAC1C,eAAe,CAAC,SAAS,GAAG,CAAC,CAAC;QAC9B,IAAI,UAAkC,CAAC;QAEvC,OAAO,CAAC,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACnE,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,sBAAsB;YAC7D,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,uBAAuB;YAE/D,uDAAuD;YACvD,KAAK,CAAC,SAAS,CAAC,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;QACjD,CAAC;QAED,KAAK,CAAC,IAAI,CAAC;YACT,EAAE,EAAE,cAAc,EAAE;YACpB,IAAI,EAAE,QAAQ;YACd,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED,iDAAiD;IACjD,uBAAuB,CAAC,SAAS,GAAG,CAAC,CAAC;IACtC,IAAI,cAAsC,CAAC;IAE3C,OAAO,CAAC,cAAc,GAAG,uBAAuB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9E,MAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,sBAAsB;QAEhE,KAAK,CAAC,IAAI,CAAC;YACT,EAAE,EAAE,cAAc,EAAE;YACpB,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,EAAE,EAAE,qCAAqC;SACjD,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,KAAK;QACL,UAAU;QACV,SAAS;QACT,SAAS;KACV,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,6DAA6D;IAC7D,MAAM,WAAW,GAAG,4BAA4B,CAAC;IACjD,MAAM,YAAY,GAAG,8BAA8B,CAAC;IAEpD,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;IACzD,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;IAC3D,OAAO,SAAS,GAAG,UAAU,CAAC;AAChC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAAY;IACnD,kDAAkD;IAClD,IAAI,gCAAgC,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7D,IAAI,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACrD,IAAI,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAExD,2BAA2B;IAC3B,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC;AAED,+EAA+E;AAC/E,yBAAyB;AACzB,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAqB;IACrD,MAAM,KAAK,GAAa,CAAC,oBAAoB,CAAC,CAAC;IAE/C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;QACpD,KAAK,CAAC,IAAI,CAAC,IAAI,OAAO,iBAAiB,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC;QAE7D,uCAAuC;QACvC,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACvC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QACxC,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YACzC,4BAA4B;YAC5B,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBAC1B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBACpC,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBAClC,+CAA+C;oBAC/C,2CAA2C;oBAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;oBACpE,KAAK,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,MAAM,CAAC,SAAS,MAAM,MAAM,KAAK,CAAC,CAAC;gBACjE,CAAC;YACH,CAAC;QACH,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,KAAK,OAAO,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAClC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAkB;IACjD,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACrC,CAAC;AAiBD;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAgC;IACpE,MAAM,KAAK,GAAa,CAAC,SAAS,CAAC,CAAC;IAEpC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,eAAe,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpD,KAAK,CAAC,IAAI,CAAC,gBAAgB,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;QACxE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAE3B,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACjE,MAAM,KAAK,GAAa,CAAC,SAAS,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;YACnF,IAAI,KAAK,CAAC,QAAQ;gBAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAClD,IAAI,KAAK,CAAC,IAAI;gBAAE,KAAK,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAE7D,KAAK,CAAC,IAAI,CAAC,cAAc,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC7C,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;gBACtB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;YAC3C,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC7B,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,+EAA+E;AAC/E,6CAA6C;AAC7C,+EAA+E;AAE/E,sEAAsE;AACtE,MAAM,oBAAoB,GAAG,qDAAqD,CAAC;AAEnF,8DAA8D;AAC9D,MAAM,iCAAiC,GAAG,iEAAiE,CAAC;AAE5G,gEAAgE;AAChE,MAAM,4BAA4B,GAAG,qEAAqE,CAAC;AAE3G,4DAA4D;AAC5D,MAAM,YAAY,GAAG,uDAAuD,CAAC;AAC7E,MAAM,WAAW,GAAG,qDAAqD,CAAC;AAE1E;;;;;;;;GAQG;AACH,MAAM,UAAU,0BAA0B,CACxC,IAAY,EACZ,OAAyE;IAMzE,iFAAiF;IACjF,kDAAkD;IAClD,IAAI,aAAa,GAAG,IAAI,CAAC;IACzB,IAAI,OAAO,EAAE,gBAAgB,KAAK,UAAU,EAAE,CAAC;QAC7C,aAAa,GAAG,YAAY,GAAG,IAAI,CAAC;IACtC,CAAC;SAAM,IAAI,OAAO,EAAE,gBAAgB,KAAK,WAAW,EAAE,CAAC;QACrD,aAAa,GAAG,kBAAkB,GAAG,IAAI,CAAC;IAC5C,CAAC;SAAM,IAAI,OAAO,EAAE,gBAAgB,KAAK,aAAa,EAAE,CAAC;QACvD,aAAa,GAAG,oBAAoB,GAAG,IAAI,CAAC;IAC9C,CAAC;IACD,MAAM,MAAM,GAAmB,EAAE,CAAC;IAClC,MAAM,SAAS,GAAe,EAAE,CAAC;IACjC,MAAM,WAAW,GAAiB,EAAE,CAAC;IAQrC,MAAM,SAAS,GAAoB,EAAE,CAAC;IAEtC,2BAA2B;IAC3B,oBAAoB,CAAC,SAAS,GAAG,CAAC,CAAC;IACnC,IAAI,aAAqC,CAAC;IAC1C,OAAO,CAAC,aAAa,GAAG,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC3E,SAAS,CAAC,IAAI,CAAC;YACb,KAAK,EAAE,aAAa,CAAC,KAAK;YAC1B,GAAG,EAAE,aAAa,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM;YAClD,KAAK,EAAE;gBACL,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE;aACjC;SACF,CAAC,CAAC;IACL,CAAC;IAED,4DAA4D;IAC5D,iCAAiC,CAAC,SAAS,GAAG,CAAC,CAAC;IAChD,IAAI,SAAiC,CAAC;IACtC,OAAO,CAAC,SAAS,GAAG,iCAAiC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACpF,MAAM,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,cAAc,GAAmB,EAAE,CAAC;QAE1C,kCAAkC;QAClC,iBAAiB,CAAC,SAAS,GAAG,CAAC,CAAC;QAChC,IAAI,WAAmC,CAAC;QACxC,OAAO,CAAC,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACrE,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACtC,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC3C,MAAM,KAAK,GAA4B,EAAE,CAAC;YAE1C,mBAAmB;YACnB,eAAe,CAAC,SAAS,GAAG,CAAC,CAAC;YAC9B,IAAI,UAAkC,CAAC;YACvC,OAAO,CAAC,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBACnE,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACtC,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACvC,uDAAuD;gBACvD,KAAK,CAAC,SAAS,CAAC,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;YACjD,CAAC;YAED,MAAM,EAAE,GAAG,cAAc,EAAE,CAAC;YAC5B,MAAM,QAAQ,GAAa,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;YACzD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzB,cAAc,CAAC,IAAI,CAAC;gBAClB,IAAI,EAAE,UAAU;gBAChB,EAAE;gBACF,IAAI,EAAE,QAAQ;gBACd,KAAK;aACN,CAAC,CAAC;QACL,CAAC;QAED,iCAAiC;QACjC,uBAAuB,CAAC,SAAS,GAAG,CAAC,CAAC;QACtC,IAAI,cAAsC,CAAC;QAC3C,OAAO,CAAC,cAAc,GAAG,uBAAuB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC9E,MAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACzC,MAAM,EAAE,GAAG,cAAc,EAAE,CAAC;YAC5B,MAAM,QAAQ,GAAa,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;YAC7D,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzB,cAAc,CAAC,IAAI,CAAC;gBAClB,IAAI,EAAE,UAAU;gBAChB,EAAE;gBACF,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,EAAE;aACV,CAAC,CAAC;QACL,CAAC;QAED,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,SAAS,CAAC,IAAI,CAAC;gBACb,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,GAAG,EAAE,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM;gBAC1C,KAAK,EAAE,cAAc;aACtB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,2DAA2D;IAC3D,4BAA4B,CAAC,SAAS,GAAG,CAAC,CAAC;IAC3C,IAAI,YAAoC,CAAC;IACzC,OAAO,CAAC,YAAY,GAAG,4BAA4B,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAClF,MAAM,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3C,MAAM,YAAY,GAAmB,EAAE,CAAC;QAExC,oBAAoB;QACpB,YAAY,CAAC,SAAS,GAAG,CAAC,CAAC;QAC3B,IAAI,WAAmC,CAAC;QACxC,OAAO,CAAC,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAChE,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACvC,MAAM,OAAO,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAClD,MAAM,MAAM,GAAe,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;YAClE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzB,YAAY,CAAC,IAAI,CAAC;gBAChB,IAAI,EAAE,aAAa;gBACnB,SAAS;gBACT,OAAO;gBACP,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;QACL,CAAC;QAED,mBAAmB;QACnB,WAAW,CAAC,SAAS,GAAG,CAAC,CAAC;QAC1B,IAAI,UAAkC,CAAC;QACvC,OAAO,CAAC,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC9D,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACtC,MAAM,OAAO,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACjD,MAAM,MAAM,GAAe,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACjE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzB,YAAY,CAAC,IAAI,CAAC;gBAChB,IAAI,EAAE,aAAa;gBACnB,SAAS;gBACT,OAAO;gBACP,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;QACL,CAAC;QAED,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,SAAS,CAAC,IAAI,CAAC;gBACb,KAAK,EAAE,YAAY,CAAC,KAAK;gBACzB,GAAG,EAAE,YAAY,CAAC,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM;gBAChD,KAAK,EAAE,YAAY;aACpB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,gCAAgC;IAChC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAE5C,yEAAyE;IACzE,mEAAmE;IACnE,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,uDAAuD;QACvD,IAAI,GAAG,CAAC,KAAK,GAAG,OAAO,EAAE,CAAC;YACxB,MAAM,WAAW,GAAG,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;YACnE,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;QAED,2BAA2B;QAC3B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;QAED,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC;IACpB,CAAC;IAED,sDAAsD;IACtD,sEAAsE;IACtE,wDAAwD;IACxD,IAAI,OAAO,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC;QACnC,MAAM,WAAW,GAAG,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QACxD,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;AAC5C,CAAC;AAQD,+DAA+D;AAC/D,MAAM,eAAe,GAAG,GAAG,GAAG,iBAAiB,CAAC;AAChD,MAAM,gBAAgB,GAAG,IAAI,GAAG,iBAAiB,CAAC;AAClD,MAAM,WAAW,GAAG,GAAG,GAAG,eAAe,CAAC;AAC1C,MAAM,YAAY,GAAG,IAAI,GAAG,SAAS,CAAC;AACtC,MAAM,UAAU,GAAG,GAAG,GAAG,kBAAkB,CAAC;AAC5C,MAAM,WAAW,GAAG,IAAI,GAAG,YAAY,CAAC;AAExC;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAuB;IACzD,qBAAqB;IACrB,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACrC,MAAM,OAAO,GAAG;YACd,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,IAAI,CAAC,WAAW;SAC7B,CAAC;QACF,OAAO,aAAa,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,iCAAiC;IACjC,OAAO;EACP,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;;;;EAItB,eAAe;EACf,WAAW;EACX,UAAU,gCAAgC,WAAW;EACrD,YAAY;EACZ,gBAAgB,EAAE,CAAC;AACrB,CAAC;AAkBD;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAqB;IACzD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YAClC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,EAAE,CAAC;gBACzD,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAwBD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,6BAA6B,CAAC,OAAqB;IACjE,MAAM,MAAM,GAAyB,EAAE,CAAC;IACxC,IAAI,cAAc,GAAG,sBAAsB,CAAC;IAC5C,IAAI,aAAa,GAAG,EAAE,CAAC;IACvB,IAAI,mBAAmB,GAAG,CAAC,CAAC,CAAC,CAAC,wCAAwC;IAEtE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;QAEpD,kCAAkC;QAClC,IAAI,eAAe,GAAG,KAAK,CAAC;QAC5B,IAAI,SAAS,GAAa,EAAE,CAAC;QAC7B,IAAI,YAAY,GAAyB,EAAE,CAAC;QAE5C,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACvC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAC5C,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YACzC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBAC1B,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBACxC,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBAClC,eAAe,GAAG,IAAI,CAAC;oBACvB,YAAY,CAAC,IAAI,CAAC;wBAChB,IAAI,EAAE,OAAO;wBACb,MAAM,EAAE;4BACN,IAAI,EAAE,QAAQ;4BACd,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS;4BAClC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;yBACxB;qBACF,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,eAAe,IAAI,mBAAmB,KAAK,CAAC,CAAC,EAAE,CAAC;YAClD,wCAAwC;YACxC,mBAAmB,GAAG,CAAC,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;YAE7B,wDAAwD;YACxD,cAAc,IAAI,IAAI,OAAO,iBAAiB,MAAM,CAAC,SAAS,MAAM,CAAC;YACrE,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,cAAc,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzC,CAAC;YACD,kEAAkE;YAElE,sEAAsE;YACtE,aAAa,GAAG,KAAK,OAAO,KAAK,CAAC;YAElC,+CAA+C;YAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5C,MAAM,eAAe,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC;gBACpC,aAAa,IAAI,qBAAqB,CAAC,eAAe,CAAC,CAAC;YAC1D,CAAC;YACD,aAAa,IAAI,qBAAqB,CAAC;YAEvC,6CAA6C;YAC7C,MAAM;QACR,CAAC;aAAM,IAAI,mBAAmB,KAAK,CAAC,CAAC,EAAE,CAAC;YACtC,oDAAoD;YACpD,cAAc,IAAI,IAAI,OAAO,iBAAiB,MAAM,CAAC,SAAS,MAAM,CAAC;YACrE,cAAc,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvC,cAAc,IAAI,OAAO,OAAO,KAAK,CAAC;QACxC,CAAC;IACH,CAAC;IAED,qDAAqD;IACrD,IAAI,mBAAmB,KAAK,CAAC,CAAC,EAAE,CAAC;QAC/B,cAAc,IAAI,qBAAqB,CAAC;QACxC,OAAO;YACL,cAAc;YACd,MAAM,EAAE,EAAE;YACV,aAAa,EAAE,EAAE;YACjB,SAAS,EAAE,KAAK;SACjB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,cAAc;QACd,MAAM;QACN,aAAa;QACb,SAAS,EAAE,IAAI;KAChB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,MAAkB;IAC/C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;IACpD,IAAI,GAAG,GAAG,IAAI,OAAO,iBAAiB,MAAM,CAAC,SAAS,MAAM,CAAC;IAE7D,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACvC,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QACzC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC1B,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAClC,qEAAqE;gBACrE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;gBACpE,GAAG,IAAI,WAAW,KAAK,CAAC,MAAM,CAAC,SAAS,MAAM,MAAM,KAAK,CAAC;YAC5D,CAAC;QACH,CAAC;IACH,CAAC;IAED,GAAG,IAAI,OAAO,OAAO,KAAK,CAAC;IAC3B,OAAO,GAAG,CAAC;AACb,CAAC;AAED,+EAA+E;AAC/E,YAAY;AACZ,+EAA+E;AAE/E,IAAI,aAAa,GAAG,CAAC,CAAC;AAEtB,SAAS,cAAc;IACrB,aAAa,EAAE,CAAC;IAChB,OAAO,QAAQ,IAAI,CAAC,GAAG,EAAE,IAAI,aAAa,EAAE,CAAC;AAC/C,CAAC;AAED,SAAS,SAAS,CAAC,IAAY;IAC7B,OAAO,IAAI;SACR,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,IAAI;SACR,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;SACvB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;SACvB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;SACrB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;SACrB,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"file":"tool-parser.js","sourceRoot":"","sources":["../../src/utils/tool-parser.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@animalabs/membrane",
3
- "version": "0.5.68",
3
+ "version": "0.5.70",
4
4
  "description": "LLM middleware - a selective boundary that transforms what passes through",
5
5
  "repository": {
6
6
  "type": "git",
@@ -31,6 +31,7 @@ import {
31
31
  type ToolDefinitionForPrompt,
32
32
  } from '../utils/tool-parser.js';
33
33
  import { IncrementalXmlParser } from '../utils/stream-parser.js';
34
+ import { isAcceptedImageMediaType, strippedImagePlaceholder } from '../utils/image-media.js';
34
35
 
35
36
  // ============================================================================
36
37
  // Configuration
@@ -414,14 +415,18 @@ export class AnthropicXmlFormatter implements PrefillFormatter {
414
415
  parts.push(block.text);
415
416
  } else if (block.type === 'image') {
416
417
  if (block.source.type === 'base64') {
417
- images.push({
418
- type: 'image',
419
- source: {
420
- type: 'base64',
421
- media_type: block.source.mediaType,
422
- data: block.source.data,
423
- },
424
- });
418
+ if (!isAcceptedImageMediaType(block.source.mediaType)) {
419
+ parts.push(strippedImagePlaceholder(block.source.mediaType).text);
420
+ } else {
421
+ images.push({
422
+ type: 'image',
423
+ source: {
424
+ type: 'base64',
425
+ media_type: block.source.mediaType,
426
+ data: block.source.data,
427
+ },
428
+ });
429
+ }
425
430
  }
426
431
  } else if (block.type === 'tool_use') {
427
432
  parts.push(`${participant}>[${block.name}]: ${JSON.stringify(block.input)}`);
@@ -16,6 +16,10 @@ export type {
16
16
 
17
17
  export { AnthropicXmlFormatter, type AnthropicXmlFormatterConfig } from './anthropic-xml.js';
18
18
  export { NativeFormatter, type NativeFormatterConfig } from './native.js';
19
+ export {
20
+ OpenAIResponsesFormatter,
21
+ OPENAI_RESPONSES_ITEMS_METADATA_KEY,
22
+ } from './openai-responses.js';
19
23
  export { CompletionsFormatter, type CompletionsFormatterConfig } from './completions.js';
20
24
 
21
25
  export {
@@ -29,6 +29,19 @@ import type {
29
29
  StreamEmission,
30
30
  } from './types.js';
31
31
  import { normalizeToolPairs, mergeConsecutiveRoles } from './normalize-tool-pairs.js';
32
+ import { isAcceptedImageMediaType, strippedImagePlaceholder } from '../utils/image-media.js';
33
+
34
+ /** Index of the last content block that can carry cache_control. Anthropic
35
+ * rejects cache_control on thinking / redacted_thinking blocks, so a cache
36
+ * breakpoint must attach to the last NON-thinking block. Returns -1 when the
37
+ * message has only thinking blocks (the breakpoint is then skipped). */
38
+ function lastCacheableBlockIndex(blocks: Array<Record<string, unknown>>): number {
39
+ for (let k = blocks.length - 1; k >= 0; k--) {
40
+ const t = blocks[k]?.type as string | undefined;
41
+ if (t !== 'thinking' && t !== 'redacted_thinking') return k;
42
+ }
43
+ return -1;
44
+ }
32
45
 
33
46
  // ============================================================================
34
47
  // Configuration
@@ -243,8 +256,9 @@ export class NativeFormatter implements PrefillFormatter {
243
256
  if (hasCacheMarker && hasCacheMarker(message, i) && cacheControl && providerMessages.length > 0) {
244
257
  const prevMsg = providerMessages[providerMessages.length - 1]!;
245
258
  const prevContent = Array.isArray(prevMsg.content) ? prevMsg.content as Record<string, unknown>[] : [];
246
- if (prevContent.length > 0) {
247
- prevContent[prevContent.length - 1]!.cache_control = cacheControl;
259
+ const prevIdx = lastCacheableBlockIndex(prevContent);
260
+ if (prevIdx >= 0) {
261
+ prevContent[prevIdx]!.cache_control = cacheControl;
248
262
  markedBreakpoints++;
249
263
  }
250
264
  }
@@ -253,8 +267,11 @@ export class NativeFormatter implements PrefillFormatter {
253
267
 
254
268
  // cacheBreakpoint: cache up to and INCLUDING this message — tag last block
255
269
  if (message.cacheBreakpoint && cacheControl && content.length > 0) {
256
- (content[content.length - 1] as Record<string, unknown>).cache_control = cacheControl;
257
- markedBreakpoints++;
270
+ const bpIdx = lastCacheableBlockIndex(content as Record<string, unknown>[]);
271
+ if (bpIdx >= 0) {
272
+ (content[bpIdx] as Record<string, unknown>).cache_control = cacheControl;
273
+ markedBreakpoints++;
274
+ }
258
275
  }
259
276
  }
260
277
 
@@ -349,6 +366,25 @@ export class NativeFormatter implements PrefillFormatter {
349
366
  // PRIVATE HELPERS
350
367
  // ==========================================================================
351
368
 
369
+ /** Replace API-unacceptable image blocks nested in tool_result content with
370
+ * text placeholders. Non-array content passes through untouched. */
371
+ private static sanitizeToolResultContent(content: unknown): unknown {
372
+ if (!Array.isArray(content)) return content;
373
+ return content.map((item) => {
374
+ if (
375
+ item &&
376
+ typeof item === 'object' &&
377
+ (item as { type?: string }).type === 'image'
378
+ ) {
379
+ const src = (item as { source?: { media_type?: string } }).source;
380
+ if (!isAcceptedImageMediaType(src?.media_type)) {
381
+ return strippedImagePlaceholder(src?.media_type);
382
+ }
383
+ }
384
+ return item;
385
+ });
386
+ }
387
+
352
388
  private convertContent(
353
389
  content: ContentBlock[],
354
390
  participant: string,
@@ -371,19 +407,39 @@ export class NativeFormatter implements PrefillFormatter {
371
407
  result.push(textBlock);
372
408
  } else if (block.type === 'image') {
373
409
  if (block.source.type === 'base64') {
374
- const imageBlock: Record<string, unknown> = {
375
- type: 'image',
410
+ if (!isAcceptedImageMediaType(block.source.mediaType)) {
411
+ // Unacceptable media type (e.g. image/svg): degrade to a text
412
+ // placeholder instead of poisoning the whole request.
413
+ result.push(strippedImagePlaceholder(block.source.mediaType));
414
+ } else {
415
+ const imageBlock: Record<string, unknown> = {
416
+ type: 'image',
417
+ source: {
418
+ type: 'base64',
419
+ media_type: block.source.mediaType,
420
+ data: block.source.data,
421
+ },
422
+ };
423
+ // Preserve sourceUrl for providers that use URL-as-text (Gemini 3.x)
424
+ if (block.sourceUrl) {
425
+ imageBlock.sourceUrl = block.sourceUrl;
426
+ }
427
+ result.push(imageBlock);
428
+ }
429
+ }
430
+ } else if (block.type === 'audio') {
431
+ // Pass audio through in the same shape as images — the provider
432
+ // adapters convert it (Gemini → inlineData, OpenRouter → input_audio).
433
+ // Whether a given model accepts audio is the provider/model's concern.
434
+ if (block.source.type === 'base64') {
435
+ result.push({
436
+ type: 'audio',
376
437
  source: {
377
438
  type: 'base64',
378
439
  media_type: block.source.mediaType,
379
440
  data: block.source.data,
380
441
  },
381
- };
382
- // Preserve sourceUrl for providers that use URL-as-text (Gemini 3.x)
383
- if (block.sourceUrl) {
384
- imageBlock.sourceUrl = block.sourceUrl;
385
- }
386
- result.push(imageBlock);
442
+ });
387
443
  }
388
444
  } else if (block.type === 'tool_use') {
389
445
  result.push({
@@ -396,7 +452,7 @@ export class NativeFormatter implements PrefillFormatter {
396
452
  result.push({
397
453
  type: 'tool_result',
398
454
  tool_use_id: block.toolUseId,
399
- content: block.content,
455
+ content: NativeFormatter.sanitizeToolResultContent(block.content),
400
456
  is_error: block.isError,
401
457
  });
402
458
  } else if (block.type === 'thinking') {
@@ -414,7 +470,7 @@ export class NativeFormatter implements PrefillFormatter {
414
470
  } else if (block.type === 'redacted_thinking') {
415
471
  // Pass through verbatim (carries encrypted data field)
416
472
  result.push({ ...(block as unknown as Record<string, unknown>) });
417
- } else if (block.type === 'document' || block.type === 'audio') {
473
+ } else if (block.type === 'document') {
418
474
  hasUnsupportedMedia = true;
419
475
  }
420
476
  }
@@ -0,0 +1,206 @@
1
+ /**
2
+ * Formatter for stateless, provider-native OpenAI Responses histories.
3
+ *
4
+ * Imported/native items are carried either in message metadata under
5
+ * `openaiResponsesItems` or on content blocks as `rawItem`. Those items are
6
+ * emitted verbatim and in order. Normalized messages created after import are
7
+ * converted to Responses input items without rewriting the native prefix.
8
+ */
9
+
10
+ import type {
11
+ ContentBlock,
12
+ NormalizedMessage,
13
+ ToolCall,
14
+ ToolResult,
15
+ } from '../types/index.js';
16
+ import type {
17
+ BuildOptions,
18
+ BuildResult,
19
+ BlockEvent,
20
+ ParseResult,
21
+ PrefillFormatter,
22
+ StreamEmission,
23
+ StreamParser,
24
+ } from './types.js';
25
+
26
+ export const OPENAI_RESPONSES_ITEMS_METADATA_KEY = 'openaiResponsesItems';
27
+
28
+ class ResponsesPassthroughParser implements StreamParser {
29
+ private accumulated = '';
30
+ private blockIndex = 0;
31
+ private blockStarted = false;
32
+
33
+ push(chunk: string): void { this.accumulated += chunk; }
34
+ processChunk(chunk: string): ParseResult {
35
+ this.accumulated += chunk;
36
+ const meta = { type: 'text' as const, visible: true, blockIndex: this.blockIndex };
37
+ const emissions: StreamEmission[] = [];
38
+ const blockEvents: BlockEvent[] = [];
39
+ if (!this.blockStarted) {
40
+ const event: BlockEvent = { event: 'block_start', index: this.blockIndex, block: { type: 'text' } };
41
+ emissions.push({ kind: 'blockEvent', event });
42
+ blockEvents.push(event);
43
+ this.blockStarted = true;
44
+ }
45
+ emissions.push({ kind: 'content', text: chunk, meta });
46
+ return { emissions, content: [{ text: chunk, meta }], blockEvents };
47
+ }
48
+ flush(): ParseResult {
49
+ const emissions: StreamEmission[] = [];
50
+ const blockEvents: BlockEvent[] = [];
51
+ if (this.blockStarted) {
52
+ const event: BlockEvent = {
53
+ event: 'block_complete', index: this.blockIndex,
54
+ block: { type: 'text', content: this.accumulated },
55
+ };
56
+ emissions.push({ kind: 'blockEvent', event });
57
+ blockEvents.push(event);
58
+ this.blockStarted = false;
59
+ }
60
+ return { emissions, content: [], blockEvents };
61
+ }
62
+ getAccumulated(): string { return this.accumulated; }
63
+ reset(): void { this.accumulated = ''; this.blockIndex = 0; this.blockStarted = false; }
64
+ isInsideBlock(): boolean { return false; }
65
+ getCurrentBlockType() { return 'text' as const; }
66
+ getBlockIndex(): number { return this.blockIndex; }
67
+ incrementBlockIndex(): void { this.blockIndex++; }
68
+ getDepths() { return { functionCalls: 0, functionResults: 0, thinking: 0 }; }
69
+ resetForNewIteration(): void {}
70
+ }
71
+
72
+ type NativeItem = { type?: string; id?: string; [key: string]: unknown };
73
+
74
+ export class OpenAIResponsesFormatter implements PrefillFormatter {
75
+ readonly name = 'openai-responses';
76
+ readonly usesPrefill = false;
77
+
78
+ buildMessages(messages: NormalizedMessage[], options: BuildOptions): BuildResult {
79
+ const items: NativeItem[] = [];
80
+ let hasNativeHistory = false;
81
+
82
+ for (const message of messages) {
83
+ const nativeItems = message.metadata?.[OPENAI_RESPONSES_ITEMS_METADATA_KEY];
84
+ if (Array.isArray(nativeItems)) {
85
+ items.push(...nativeItems as NativeItem[]);
86
+ hasNativeHistory = true;
87
+ continue;
88
+ }
89
+
90
+ const seenRawItems = new Set<string>();
91
+ let pendingParts: ContentBlock[] = [];
92
+ const flushPending = () => {
93
+ if (pendingParts.length === 0) return;
94
+ items.push(...this.convertBlocks(message, pendingParts, options.assistantParticipant));
95
+ pendingParts = [];
96
+ };
97
+
98
+ for (const block of message.content) {
99
+ const rawItem = (block as unknown as { rawItem?: NativeItem }).rawItem;
100
+ if (!rawItem || typeof rawItem !== 'object') {
101
+ pendingParts.push(block);
102
+ continue;
103
+ }
104
+
105
+ flushPending();
106
+ hasNativeHistory = true;
107
+ const key = typeof rawItem.id === 'string'
108
+ ? `${rawItem.type ?? ''}:${rawItem.id}`
109
+ : JSON.stringify(rawItem);
110
+ if (!seenRawItems.has(key)) {
111
+ items.push(rawItem);
112
+ seenRawItems.add(key);
113
+ }
114
+ }
115
+ flushPending();
116
+ }
117
+
118
+ return {
119
+ // BuildResult's historical type says chat envelopes, but Membrane's
120
+ // provider boundary deliberately accepts unknown provider-native items.
121
+ messages: items as unknown as BuildResult['messages'],
122
+ // An imported rollout already contains its developer/system items.
123
+ // Re-injecting the recipe prompt would alter the stable prefix.
124
+ systemContent: hasNativeHistory ? undefined : options.systemPrompt,
125
+ stopSequences: options.additionalStopSequences ?? [],
126
+ nativeTools: options.tools?.map(tool => ({
127
+ type: 'function',
128
+ name: tool.name,
129
+ description: tool.description,
130
+ parameters: tool.inputSchema,
131
+ })),
132
+ ready: true,
133
+ };
134
+ }
135
+
136
+ private convertBlocks(
137
+ message: NormalizedMessage,
138
+ blocks: ContentBlock[],
139
+ assistantParticipant: string,
140
+ ): NativeItem[] {
141
+ const isAssistant = message.participant === assistantParticipant;
142
+ const out: NativeItem[] = [];
143
+ let messageParts: unknown[] = [];
144
+
145
+ const flushMessage = () => {
146
+ if (messageParts.length === 0) return;
147
+ out.push({
148
+ type: 'message',
149
+ role: isAssistant ? 'assistant' : 'user',
150
+ content: messageParts,
151
+ });
152
+ messageParts = [];
153
+ };
154
+
155
+ for (const block of blocks) {
156
+ if (block.type === 'text') {
157
+ messageParts.push({
158
+ type: isAssistant ? 'output_text' : 'input_text',
159
+ text: block.text,
160
+ });
161
+ } else if (block.type === 'image' && !isAssistant) {
162
+ const source = block.source;
163
+ messageParts.push(source.type === 'url'
164
+ ? { type: 'input_image', image_url: source.url }
165
+ : { type: 'input_image', image_url: `data:${source.mediaType};base64,${source.data}` });
166
+ } else if (block.type === 'tool_use') {
167
+ flushMessage();
168
+ out.push({
169
+ type: 'function_call',
170
+ call_id: block.id,
171
+ name: block.name,
172
+ arguments: JSON.stringify(block.input ?? {}),
173
+ });
174
+ } else if (block.type === 'tool_result') {
175
+ flushMessage();
176
+ out.push({
177
+ type: 'function_call_output',
178
+ call_id: block.toolUseId,
179
+ output: typeof block.content === 'string'
180
+ ? block.content
181
+ : JSON.stringify(block.content),
182
+ });
183
+ } else if (block.type === 'redacted_thinking') {
184
+ flushMessage();
185
+ out.push({ type: 'reasoning', encrypted_content: block.data });
186
+ }
187
+ }
188
+ flushMessage();
189
+ return out;
190
+ }
191
+
192
+ formatToolResults(results: ToolResult[]): string {
193
+ return JSON.stringify(results.map(result => ({
194
+ type: 'function_call_output',
195
+ call_id: result.toolUseId,
196
+ output: result.content,
197
+ })));
198
+ }
199
+
200
+ createStreamParser(): StreamParser { return new ResponsesPassthroughParser(); }
201
+ parseToolCalls(_content: string): ToolCall[] { return []; }
202
+ hasToolUse(_content: string): boolean { return false; }
203
+ parseContentBlocks(content: string): ContentBlock[] {
204
+ return content ? [{ type: 'text', text: content }] : [];
205
+ }
206
+ }
package/src/membrane.ts CHANGED
@@ -55,6 +55,11 @@ import { AnthropicXmlFormatter } from './formatters/anthropic-xml.js';
55
55
  import { normalizeToolPairs, mergeConsecutiveRoles } from './formatters/normalize-tool-pairs.js';
56
56
  import { YieldingStreamImpl } from './yielding-stream.js';
57
57
  import { calculateCost } from './utils/cost.js';
58
+ import {
59
+ isAcceptedImageMediaType,
60
+ strippedImagePlaceholder,
61
+ shedImagesToFitByteBudget, assertWithinByteBudget,
62
+ } from './utils/image-media.js';
58
63
  import { getDefaultPricing } from './registry/default-pricing.js';
59
64
 
60
65
  // ============================================================================
@@ -231,7 +236,7 @@ export class Membrane {
231
236
  // Auto mode: choose based on formatter
232
237
  // NativeFormatter → native tools via API
233
238
  // AnthropicXmlFormatter (default) → XML tools in prefill
234
- if (this.formatter.name === 'native') {
239
+ if (this.formatter.name === 'native' || this.formatter.name === 'openai-responses') {
235
240
  return 'native';
236
241
  }
237
242
 
@@ -981,6 +986,14 @@ export class Membrane {
981
986
  request: NormalizedRequest,
982
987
  messages: typeof request.messages
983
988
  ): any {
989
+ // Provider-native formatters own their complete input-item shape. The
990
+ // legacy implementation below is intentionally Anthropic-specific; using
991
+ // it for Responses would normalize away item IDs, encrypted reasoning,
992
+ // assistant phases, and compaction items.
993
+ if (this.formatter.name === 'openai-responses') {
994
+ return this.transformRequest({ ...request, messages }, this.formatter).providerRequest;
995
+ }
996
+
984
997
  // Convert messages to provider format
985
998
  const providerMessages: any[] = [];
986
999
 
@@ -1045,19 +1058,26 @@ export class Membrane {
1045
1058
  content.push({ ...(block as unknown as Record<string, unknown>) });
1046
1059
  } else if (block.type === 'image') {
1047
1060
  if (block.source.type === 'base64') {
1048
- const imageBlock: Record<string, unknown> = {
1049
- type: 'image',
1050
- source: {
1051
- type: 'base64',
1052
- media_type: block.source.mediaType,
1053
- data: block.source.data,
1054
- },
1055
- };
1056
- // Preserve sourceUrl for providers that use URL-as-text (Gemini 3.x)
1057
- if (block.sourceUrl) {
1058
- imageBlock.sourceUrl = block.sourceUrl;
1061
+ if (!isAcceptedImageMediaType(block.source.mediaType)) {
1062
+ // API-unacceptable media type (e.g. image/svg): degrade to a
1063
+ // loud text placeholder instead of poisoning the whole request
1064
+ // (one bad stored block otherwise 400s every compile forever).
1065
+ content.push(strippedImagePlaceholder(block.source.mediaType));
1066
+ } else {
1067
+ const imageBlock: Record<string, unknown> = {
1068
+ type: 'image',
1069
+ source: {
1070
+ type: 'base64',
1071
+ media_type: block.source.mediaType,
1072
+ data: block.source.data,
1073
+ },
1074
+ };
1075
+ // Preserve sourceUrl for providers that use URL-as-text (Gemini 3.x)
1076
+ if (block.sourceUrl) {
1077
+ imageBlock.sourceUrl = block.sourceUrl;
1078
+ }
1079
+ content.push(imageBlock);
1059
1080
  }
1060
- content.push(imageBlock);
1061
1081
  }
1062
1082
  }
1063
1083
  }
@@ -1132,6 +1152,14 @@ export class Membrane {
1132
1152
  // Anthropic requires temperature=1 when extended thinking is enabled
1133
1153
  const temperature = alwaysOnThinking ? undefined : (thinking ? 1 : request.config.temperature);
1134
1154
 
1155
+ // Byte-wall policy point (see transformRequest): loud failure unless the
1156
+ // caller explicitly owns image loss.
1157
+ if (request.shedOversizeImages) {
1158
+ shedImagesToFitByteBudget(mergedMessages, undefined, 'buildNativeToolRequest');
1159
+ } else {
1160
+ assertWithinByteBudget(mergedMessages, undefined, 'buildNativeToolRequest');
1161
+ }
1162
+
1135
1163
  return {
1136
1164
  model: request.config.model,
1137
1165
  maxTokens: request.config.maxTokens,
@@ -1154,20 +1182,25 @@ export class Membrane {
1154
1182
  const blocks: ContentBlock[] = [];
1155
1183
  for (const item of content) {
1156
1184
  if (item.type === 'text') {
1157
- blocks.push({ type: 'text', text: item.text });
1185
+ blocks.push({
1186
+ type: 'text', text: item.text,
1187
+ ...(item.rawItem ? { rawItem: item.rawItem } : {}),
1188
+ } as ContentBlock);
1158
1189
  } else if (item.type === 'tool_use') {
1159
1190
  blocks.push({
1160
1191
  type: 'tool_use',
1161
1192
  id: item.id,
1162
1193
  name: unsanitizeToolName(item.name),
1163
1194
  input: item.input,
1164
- });
1195
+ ...(item.rawItem ? { rawItem: item.rawItem } : {}),
1196
+ } as ContentBlock);
1165
1197
  } else if (item.type === 'thinking') {
1166
1198
  blocks.push({
1167
1199
  type: 'thinking',
1168
1200
  thinking: item.thinking ?? '',
1169
1201
  ...(item.signature ? { signature: item.signature } : {}),
1170
- });
1202
+ ...(item.rawItem ? { rawItem: item.rawItem } : {}),
1203
+ } as ContentBlock);
1171
1204
  } else if (item.type === 'redacted_thinking') {
1172
1205
  // Pass through verbatim — carries the encrypted `data` payload
1173
1206
  blocks.push({ ...item } as ContentBlock);
@@ -1177,6 +1210,12 @@ export class Membrane {
1177
1210
  data: item.data,
1178
1211
  mimeType: item.mimeType,
1179
1212
  });
1213
+ } else if (item.rawItem) {
1214
+ // Opaque Responses items such as encrypted compaction or custom
1215
+ // tool records have no normalized ContentBlock equivalent. Retain a
1216
+ // zero-width carrier so Chronicle and the Responses formatter can
1217
+ // replay the raw item without surfacing synthetic prompt text.
1218
+ blocks.push({ type: 'text', text: '', rawItem: item.rawItem } as ContentBlock);
1180
1219
  }
1181
1220
  }
1182
1221
  return blocks;
@@ -1369,6 +1408,17 @@ export class Membrane {
1369
1408
  prefillUserMessage: request.prefillUserMessage,
1370
1409
  });
1371
1410
 
1411
+ // Byte-wall policy point (2026-07-12): transformRequest serves BOTH
1412
+ // complete() and the streaming path through EVERY adapter. Oversize
1413
+ // requests FAIL LOUDLY here, before the API round-trip, unless the
1414
+ // caller explicitly owns image loss via `shedOversizeImages` (and the
1415
+ // shed itself reports at error grade). No silent transport mutation.
1416
+ if (request.shedOversizeImages) {
1417
+ shedImagesToFitByteBudget(buildResult.messages, undefined, 'transformRequest');
1418
+ } else {
1419
+ assertWithinByteBudget(buildResult.messages, undefined, 'transformRequest');
1420
+ }
1421
+
1372
1422
  const providerRequest = {
1373
1423
  ...this.getBaseProviderParams(request.config),
1374
1424
  messages: buildResult.messages,