@cyanheads/cpsc-recalls-mcp-server 0.2.0 → 0.2.1

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 (32) hide show
  1. package/AGENTS.md +3 -1
  2. package/CLAUDE.md +3 -1
  3. package/README.md +7 -6
  4. package/changelog/0.2.x/0.2.1.md +19 -0
  5. package/dist/mcp-server/tools/definitions/cpsc-get-recall.tool.d.ts +1 -1
  6. package/dist/mcp-server/tools/definitions/cpsc-get-recall.tool.d.ts.map +1 -1
  7. package/dist/mcp-server/tools/definitions/cpsc-get-recall.tool.js +22 -20
  8. package/dist/mcp-server/tools/definitions/cpsc-get-recall.tool.js.map +1 -1
  9. package/dist/mcp-server/tools/definitions/cpsc-get-recent.tool.d.ts +1 -1
  10. package/dist/mcp-server/tools/definitions/cpsc-get-recent.tool.d.ts.map +1 -1
  11. package/dist/mcp-server/tools/definitions/cpsc-get-recent.tool.js +11 -9
  12. package/dist/mcp-server/tools/definitions/cpsc-get-recent.tool.js.map +1 -1
  13. package/dist/mcp-server/tools/definitions/cpsc-search-recalls.tool.d.ts +1 -1
  14. package/dist/mcp-server/tools/definitions/cpsc-search-recalls.tool.d.ts.map +1 -1
  15. package/dist/mcp-server/tools/definitions/cpsc-search-recalls.tool.js +17 -15
  16. package/dist/mcp-server/tools/definitions/cpsc-search-recalls.tool.js.map +1 -1
  17. package/dist/mcp-server/tools/markdown-escape.d.ts +29 -0
  18. package/dist/mcp-server/tools/markdown-escape.d.ts.map +1 -0
  19. package/dist/mcp-server/tools/markdown-escape.js +93 -0
  20. package/dist/mcp-server/tools/markdown-escape.js.map +1 -0
  21. package/dist/services/cpsc-recall/cpsc-recall-service.d.ts +14 -0
  22. package/dist/services/cpsc-recall/cpsc-recall-service.d.ts.map +1 -1
  23. package/dist/services/cpsc-recall/cpsc-recall-service.js +55 -14
  24. package/dist/services/cpsc-recall/cpsc-recall-service.js.map +1 -1
  25. package/dist/services/cpsc-recall/normalize-text.d.ts +18 -0
  26. package/dist/services/cpsc-recall/normalize-text.d.ts.map +1 -0
  27. package/dist/services/cpsc-recall/normalize-text.js +108 -0
  28. package/dist/services/cpsc-recall/normalize-text.js.map +1 -0
  29. package/dist/services/cpsc-recall/types.d.ts +2 -1
  30. package/dist/services/cpsc-recall/types.d.ts.map +1 -1
  31. package/package.json +1 -1
  32. package/server.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"cpsc-search-recalls.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/cpsc-search-recalls.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cpsc-search-recalls.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/cpsc-search-recalls.tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EACL,WAAW,EACX,eAAe,EACf,cAAc,IAAI,EAAE,GACrB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,+CAA+C,CAAC;AAGrF;;;GAGG;AACH,MAAM,YAAY,GAChB,8PAA8P,CAAC;AAEjQ,2DAA2D;AAC3D,MAAM,WAAW,GACf,8RAA8R,CAAC;AAEjS;;;;;GAKG;AACH,MAAM,iBAAiB,GAAG,YAAY,CAAC;AA4BvC,MAAM,KAAK,GAAG,CAAC,OAAwC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAE/F,2EAA2E;AAC3E,MAAM,YAAY,GAA0B;IAC1C,EAAE,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE;IAC7E,EAAE,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE;IACnF,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE;IACvE,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE;IACvE,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE;IAChF,EAAE,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;IACrE,EAAE,GAAG,EAAE,oBAAoB,EAAE,KAAK,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE;IACvF,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE;IAClE,4EAA4E;IAC5E;QACE,GAAG,EAAE,eAAe;QACpB,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;KAC/E;CACF,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,CAAU,CAAC;AAExF,2FAA2F;AAC3F,SAAS,IAAI,CAAC,IAAY;IACxB,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AAClD,CAAC;AAED;;;GAGG;AACH,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAEpC;;;;;;;GAOG;AACH,SAAS,YAAY,CAAC,KAAa;IACjC,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;QAClD,IAAI,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM;YAAE,OAAO,GAAG,QAAQ,CAAC;IAC3D,CAAC;IACD,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,KAAK,IAAI,IAAI,eAAe,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;QAChE,IAAI,KAAK,GAAG,uBAAuB;YAAE,MAAM;QAC3C,IAAI,IAAI,IAAI,CAAC;IACf,CAAC;IACD,OAAO,IAAI,IAAI,SAAS,CAAC;AAC3B,CAAC;AAED,kGAAkG;AAClG,SAAS,gBAAgB,CAAC,MAAiB,EAAE,MAAqB;IAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACtD,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,YAAY,GAAG,CAAC;KACnB,MAAM,CAAC;IACN,aAAa,EAAE,CAAC;SACb,MAAM,EAAE;SACR,QAAQ,CACP,+KAA+K,CAChL;IACH,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;IACzE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IACpD,OAAO,EAAE,CAAC;SACP,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC,CAAC;SACrE,QAAQ,CAAC,6DAA6D,CAAC;IAC1E,cAAc,EAAE,CAAC;SACd,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;SAC1C,QAAQ,CACP,kRAAkR,CACnR;IACH,cAAc,EAAE,CAAC;SACd,MAAM,EAAE;SACR,QAAQ,CAAC,0EAA0E,CAAC;IACvF,QAAQ,EAAE,CAAC;SACR,KAAK,CACJ,CAAC;SACE,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC1C,cAAc,EAAE,CAAC;aACd,MAAM,EAAE;aACR,QAAQ,CAAC,yDAAyD,CAAC;KACvE,CAAC;SACD,QAAQ,CAAC,mCAAmC,CAAC,CACjD;SACA,QAAQ,CAAC,wEAAwE,CAAC;IACrF,IAAI,EAAE,CAAC;SACJ,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;SACvC,QAAQ,CACP,0MAA0M,CAC3M;IACH,aAAa,EAAE,CAAC;SACb,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;SAChD,QAAQ,CAAC,+EAA+E,CAAC;IAC5F,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IAC7F,SAAS,EAAE,CAAC;SACT,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC,CAAC;SAC7D,QAAQ,CACP,wFAAwF,CACzF;IACH,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;IACtF,MAAM,EAAE,CAAC;SACN,KAAK,CACJ,CAAC;SACE,MAAM,CAAC;QACN,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;QACtC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;KAC/C,CAAC;SACD,QAAQ,CAAC,kCAAkC,CAAC,CAChD;SACA,QAAQ,CAAC,wCAAwC,CAAC;IACrD,kBAAkB,EAAE,CAAC;SAClB,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC,CAAC;SAC/D,QAAQ,CACP,sNAAsN,CACvN;CACJ,CAAC;KACD,QAAQ,CAAC,uBAAuB,CAAC,CAAC;AAIrC,mDAAmD;AACnD,SAAS,cAAc,CAAC,CAAY;IAClC,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACtC,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,cAAc,EAAE,CAAC,CAAC,aAAa,IAAI,EAAE;KACtC,CAAC,CAAC,CAAC;IAEJ,MAAM,kBAAkB,GAAa,EAAE,CAAC;IACxC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,kBAAkB,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;IAChF,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,kBAAkB,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;IAC7E,CAAC;IAED,OAAO;QACL,aAAa,EAAE,CAAC,CAAC,YAAY;QAC7B,WAAW,EAAE,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;QACtC,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,OAAO;QACP,cAAc,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QACpE,cAAc,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;aAC9C,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,GAAG,CAAC;QACZ,QAAQ;QACR,IAAI,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QACrD,aAAa,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QACjE,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QACzD,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QAC7D,QAAQ,EAAE,CAAC,CAAC,GAAG;QACf,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACvE,kBAAkB;KACnB,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,iBAAiB,CAAC,CAAe;IACxC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,aAAa,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC;IAC1E,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAElC,MAAM,UAAU,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;IACrF,KAAK,CAAC,IAAI,CAAC,eAAe,UAAU,EAAE,CAAC,CAAC;IAExC,MAAM,WAAW,GACf,CAAC,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;IAClF,MAAM,UAAU,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC;IACrF,KAAK,CAAC,IAAI,CAAC,eAAe,WAAW,MAAM,UAAU,EAAE,CAAC,CAAC;IAEzD,MAAM,YAAY,GAAG,CAAC,CAAC,QAAQ;SAC5B,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,qBAAqB,GAAG,CAC5F;SACA,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,KAAK,CAAC,IAAI,CAAC,iBAAiB,YAAY,IAAI,eAAe,EAAE,CAAC,CAAC;IAE/D,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;IACrF,KAAK,CAAC,IAAI,CAAC,gBAAgB,MAAM,EAAE,CAAC,CAAC;IAErC;;;OAGG;IACH,IAAI,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5D,CAAC;IACD,IAAI,CAAC,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7D,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,MAAM,QAAQ,OAAO,EAAE,CAAC,CAAC;IAC5D,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACjC,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,iBAAiB,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC5D,IAAI,CAAC,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACtF,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAWD,qFAAqF;AACrF,SAAS,YAAY,CAAC,IAAe,EAAE,QAAgB;IACrD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;IACvD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ;QAC1B,CAAC,CAAC,wCAAwC,IAAI,CAAC,MAAM,GAAG,QAAQ,GAAG;QACnE,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,MAAM,GACV,IAAI,CAAC,WAAW,KAAK,CAAC;QACpB,CAAC,CAAC,yCAAyC;QAC3C,CAAC,CAAC,WAAW,QAAQ,OAAO,IAAI,CAAC,WAAW,WAAW,SAAS,wBAAwB,IAAI,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC;IACpH,OAAO;QACL,MAAM;QACN,WAAW,IAAI,CAAC,WAAW,EAAE;QAC7B,sBAAsB,IAAI,CAAC,iBAAiB,EAAE;KAC/C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CACtB,OAAiC,EACjC,mBAA2B,EAC3B,YAAqB;IAErB,MAAM,KAAK,GAAG,CAAC,4CAA4C,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,eAAe,IAAI,CAAC,YAAY,CAAC;IAChG,IAAI,UAAU,EAAE,CAAC;QACf,KAAK,CAAC,IAAI,CACR,oIAAoI,CACrI,CAAC;IACJ,CAAC;SAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,eAAe,CAAC,IAAI,mBAAmB,GAAG,CAAC,EAAE,CAAC;QACrF,KAAK,CAAC,IAAI,CACR,GAAG,mBAAmB,UAAU,mBAAmB,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,mIAAmI,CACxM,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;QAC5C,KAAK,CAAC,IAAI,CACR,kGAAkG,CACnG,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,cAAc,CAAC,EAAE,CAAC;QAClD,KAAK,CAAC,IAAI,CACR,kJAAkJ,CACnJ,CAAC;IACJ,CAAC;IACD,IAAI,YAAY,EAAE,CAAC;QACjB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC;IAC/F,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACzB,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC,qBAAqB,EAAE;IAC3D,KAAK,EAAE,qBAAqB;IAC5B,WAAW,EACT,6xCAA6xC;IAC/xC,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;IAEzD;;;;OAIG;IACH,YAAY,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE;IAEzC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,YAAY,EAAE,CAAC;aACZ,MAAM,EAAE;aACR,GAAG,CAAC,GAAG,CAAC;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,gKAAgK,CACjK;QACH,YAAY,EAAE,CAAC;aACZ,MAAM,EAAE;aACR,GAAG,CAAC,GAAG,CAAC;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,0PAA0P,CAC3P;QACH,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,GAAG,CAAC,GAAG,CAAC;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,+JAA+J,CAChK;QACH,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,GAAG,CAAC,GAAG,CAAC;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,mLAAmL,CACpL;QACH,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,GAAG,CAAC,GAAG,CAAC;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,6MAA6M,CAC9M;QACH,YAAY,EAAE,CAAC;aACZ,MAAM,EAAE;aACR,GAAG,CAAC,GAAG,CAAC;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,4QAA4Q,CAC7Q;QACH,kBAAkB,EAAE,CAAC;aAClB,MAAM,EAAE;aACR,GAAG,CAAC,GAAG,CAAC;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,yVAAyV,CAC1V;QACH,MAAM,EAAE,CAAC;aACN,MAAM,EAAE;aACR,GAAG,CAAC,GAAG,CAAC;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,2cAA2c,CAC5c;QACH,aAAa,EAAE,CAAC;aACb,MAAM,EAAE;aACR,GAAG,CAAC,GAAG,CAAC;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,uVAAuV,CACxV;QACH,UAAU,EAAE,CAAC;aACV,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC,CAAC,CAAC;aAC7E,QAAQ,EAAE;aACV,QAAQ,CACP,uJAAuJ,CACxJ;QACH,QAAQ,EAAE,CAAC;aACR,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC,CAAC,CAAC;aAC7E,QAAQ,EAAE;aACV,QAAQ,CACP,uIAAuI,CACxI;QACH,aAAa,EAAE,CAAC;aACb,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC,CAAC,CAAC;aAC7E,QAAQ,EAAE;aACV,QAAQ,CACP,yRAAyR,CAC1R;QACH,WAAW,EAAE,CAAC;aACX,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC,CAAC,CAAC;aAC7E,QAAQ,EAAE;aACV,QAAQ,CACP,iKAAiK,CAClK;QACH,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,GAAG,CAAC;aACR,OAAO,CAAC,EAAE,CAAC;aACX,QAAQ,CACP,8KAA8K,CAC/K;QACH,MAAM,EAAE,CAAC;aACN,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,OAAO,CAAC,CAAC,CAAC;aACV,QAAQ,CACP,wSAAwS,CACzS;KACJ,CAAC;IAEF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,yCAAyC,CAAC;QAClF,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,QAAQ,CACP,yIAAyI,CAC1I;QACH,SAAS,EAAE,CAAC;aACT,OAAO,EAAE;aACT,QAAQ,CAAC,8EAA8E,CAAC;QAC3F,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;QACrF,QAAQ,EAAE,CAAC;aACR,OAAO,EAAE;aACT,QAAQ,CACP,8GAA8G,CAC/G;QACH,iBAAiB,EAAE,CAAC;aACjB,MAAM,EAAE;aACR,QAAQ,CACP,gKAAgK,CACjK;QACH,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,QAAQ,CACP,yMAAyM,CAC1M;KACJ,CAAC;IAEF,UAAU,EAAE;QACV,cAAc,EAAE,CAAC;aACd,MAAM,EAAE;aACR,QAAQ,CACP,iKAAiK,CAClK;QACH,MAAM,EAAE,CAAC;aACN,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,0MAA0M,CAC3M;KACJ;IAED,MAAM,EAAE;QACN;YACE,MAAM,EAAE,kBAAkB;YAC1B,IAAI,EAAE,gBAAgB,CAAC,eAAe;YACtC,IAAI,EAAE,iGAAiG;YACvG,QAAQ,EACN,qSAAqS;SACxS;QACD;YACE,MAAM,EAAE,oBAAoB;YAC5B,IAAI,EAAE,gBAAgB,CAAC,eAAe;YACtC,IAAI,EAAE,6GAA6G;YACnH,QAAQ,EACN,4KAA4K;SAC/K;QACD;YACE,MAAM,EAAE,gBAAgB;YACxB,IAAI,EAAE,gBAAgB,CAAC,kBAAkB;YACzC,IAAI,EAAE,8JAA8J;YACpK,QAAQ,EAAE,8EAA8E;YACxF,SAAS,EAAE,IAAI;SAChB;QACD;YACE,MAAM,EAAE,mBAAmB;YAC3B,IAAI,EAAE,gBAAgB,CAAC,kBAAkB;YACzC,IAAI,EAAE,oGAAoG;YAC1G,QAAQ,EACN,uJAAuJ;YACzJ,SAAS,EAAE,KAAK;SACjB;KACF;IAED,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG;QACtB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,wBAAwB,EAAE;YACrC,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;YAC5C,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,CAAC,CAAC;QAEH,8FAA8F;QAC9F,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,EAAmB,EAAE;YAC/D,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC/D,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,CAAC,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAC7C,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;YACzB,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpD,MAAM,GAAG,CAAC,IAAI,CACZ,kBAAkB,EAClB,4IAA4I,EAC5I,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,kBAAkB,CAAC,EAAE,CAC3C,CAAC;QACJ,CAAC;QAED,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC5E,MAAM,GAAG,CAAC,IAAI,CACZ,oBAAoB,EACpB,eAAe,KAAK,CAAC,UAAU,6BAA6B,KAAK,CAAC,QAAQ,IAAI,EAC9E,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,oBAAoB,CAAC,EAAE,CAC7C,CAAC;QACJ,CAAC;QAED,IAAI,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YACxF,MAAM,GAAG,CAAC,IAAI,CACZ,oBAAoB,EACpB,kBAAkB,KAAK,CAAC,aAAa,gCAAgC,KAAK,CAAC,WAAW,IAAI,EAC1F,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,oBAAoB,CAAC,EAAE,CAC7C,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAqB;YAC/B,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,eAAe,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;YAC9D,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,aAAa,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;YACxD,GAAG,CAAC,KAAK,CAAC,aAAa,IAAI,EAAE,oBAAoB,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC;YACzE,GAAG,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,kBAAkB,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;SACpE,CAAC;QACF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,KAAK;gBAAE,SAAS;YAC5B,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACxC,IAAI,IAAI;gBAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;QACxC,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,CAAC,eAAe,GAAG,iBAAiB,CAAC;QAEjF,MAAM,GAAG,GAAG,oBAAoB,EAAE,CAAC;QACnC,IAAI,GAAgB,CAAC;QACrB,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAChE,IAAI,GAAG,YAAY,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,SAAS,KAAK,KAAK,EAAE,CAAC;gBAC7D,MAAM,GAAG,CAAC,IAAI,CACZ,mBAAmB,EACnB,MAAM,EACN,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,mBAAmB,CAAC,EAAE,EAC3C,EAAE,KAAK,EAAE,GAAG,EAAE,CACf,CAAC;YACJ,CAAC;YACD,MAAM,GAAG,CAAC,IAAI,CACZ,gBAAgB,EAChB,4BAA4B,MAAM,EAAE,EACpC,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,EACxC,EAAE,KAAK,EAAE,GAAG,EAAE,CACf,CAAC;QACJ,CAAC;QAED;;;;WAIG;QACH,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,eAAe,CAAC,CAAC;QACpE,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC;QAC/D,MAAM,mBAAmB,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAC3C,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAClD,CAAC;QACF,MAAM,OAAO,GAAG,YAAY;YAC1B,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;YACtE,CAAC,CAAC,mBAAmB,CAAC;QAExB,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;QACnC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC3F,MAAM,cAAc,GAAG;YACrB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5D,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;SAChD,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEhB,MAAM,IAAI,GAAG;YACX,WAAW;YACX,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,iBAAiB,EAAE,YAAY;YAC/B,WAAW,EAAE,WAAW;SACzB,CAAC;QAEF;;;WAGG;QACH,MAAM,QAAQ,GAAG,iBAAiB,CAChC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAC3D,YAAY,CAAC,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,EACvE;YACE,cAAc;YACd,MAAM,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;SAC9E,CACF,CAAC;QACF,MAAM,QAAQ,GAAG,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,EAAE,QAAQ,CAAC,CAAC;QACxE,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAG,QAAQ,GAAG,WAAW,CAAC;QAEvD,gFAAgF;QAChF,MAAM,MAAM,GACV,WAAW,KAAK,CAAC;YACf,CAAC,CAAC,eAAe,CAAC,OAAO,EAAE,mBAAmB,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;YAC7E,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,WAAW;gBAC3B,CAAC,CAAC,UAAU,KAAK,CAAC,MAAM,4BAA4B,WAAW,mBAAmB,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,gDAAgD,WAAW,GAAG;gBAC5K,CAAC,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM;oBACxB,CAAC,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC;oBACjE,CAAC,CAAC,SAAS,CAAC;QAEpB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAChC,IAAI,MAAM;YAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEtC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAC9B,WAAW;YACX,QAAQ;YACR,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,QAAQ;SACT,CAAC,CAAC;QAEH,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;IAC7D,CAAC;IAED,MAAM,CAAC,MAAM;QACX,MAAM,IAAI,GAAG;YACX,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;YACxC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;SAC5C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAClC,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * @fileoverview Markdown escaping for CPSC text interpolated into `content[]`, so a
3
+ * renderer shows every character of the record instead of reading some as markup.
4
+ * @module mcp-server/tools/markdown-escape
5
+ */
6
+ /**
7
+ * Backslash-escapes `text` so CommonMark and GFM render it as the literal characters.
8
+ * A carriage return, which CommonMark reads as a line ending, becomes a line feed first,
9
+ * so every line start is escaped and callers that split on `\n` see every line. A web
10
+ * address GFM autolinks is left as it is, since the autolink would show a backslash inside
11
+ * it literally; any other address is plain text and escaped like the text around it.
12
+ * Applied where upstream text is interpolated into `content[]`, never to `structuredContent`.
13
+ */
14
+ export declare function escapeMarkdown(text: string): string;
15
+ /**
16
+ * `url` as a Markdown link destination. A bare destination ends at the first space and
17
+ * cannot hold `<`, `>`, or an unbalanced parenthesis, so those are percent-encoded. A
18
+ * destination also reads backslash escapes and character references, so a backslash and an
19
+ * `&` opening a reference are backslash-escaped, and the link points at `url` as stored.
20
+ */
21
+ export declare function linkDestination(url: string): string;
22
+ /**
23
+ * `url` shown as a bare address. A web address has its delimiters percent-encoded, and a
24
+ * trailing `.`, `_`, or `~` — which GFM leaves out of an autolink — is percent-encoded too,
25
+ * so the autolink covers the whole address; encoding those unreserved characters names the
26
+ * same address. A value that is not a web address is escaped as text.
27
+ */
28
+ export declare function bareAddress(url: string): string;
29
+ //# sourceMappingURL=markdown-escape.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown-escape.d.ts","sourceRoot":"","sources":["../../../src/mcp-server/tools/markdown-escape.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA+CH;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAwBnD;AAYD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAM/C"}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * @fileoverview Markdown escaping for CPSC text interpolated into `content[]`, so a
3
+ * renderer shows every character of the record instead of reading some as markup.
4
+ * @module mcp-server/tools/markdown-escape
5
+ */
6
+ /**
7
+ * A character that changes the rendering of plain text wherever it sits — backslash, code
8
+ * and emphasis delimiters, link brackets, strikethrough tildes, `<` opening a tag or
9
+ * autolink, `&` opening a character reference, `_` unless both neighbours are letters or
10
+ * digits (an intraword underscore such as `AMG005197_12_Q` never delimits emphasis), and
11
+ * the first `#` of a run ending a line, which a heading would drop as its closing sequence.
12
+ */
13
+ const SPECIAL = /[\\`*[\]~]|<(?=[A-Za-z/!?])|&(?=#?[A-Za-z\d]{1,32};)|(?<![\p{L}\p{N}])_|_(?![\p{L}\p{N}])|(?<=[ \t])#(?=#*[ \t]*(?:\n|$))/gu;
14
+ /** A bare web address whose host starts with a letter or digit. */
15
+ const ADDRESS = /(?<![\p{L}\p{N}])(?:https?:\/\/|www\.)(?=[\p{L}\p{N}])[^\s<]*/u;
16
+ /**
17
+ * One pass over the text: group 1 is an {@link ADDRESS}, every other match a
18
+ * {@link SPECIAL} character. Each alternative is anchored on one character and scans at
19
+ * most a bounded or disjoint run, so the pass is linear.
20
+ */
21
+ const INLINE = new RegExp(`(${ADDRESS.source})|${SPECIAL.source}`, 'gu');
22
+ /**
23
+ * A line start — the string's first character or one after a newline, past any
24
+ * indentation — carrying a block marker: a heading, quote, list bullet, setext underline,
25
+ * table pipe, or the `:` that opens a table delimiter row, or an ordered-list number
26
+ * followed by `.` or `)` and whitespace. Anchored at `^` or `\n`, so each whitespace run is
27
+ * scanned once.
28
+ */
29
+ const LINE_START = /(^|\n)([ \t]*)(?:([#>+=|:-])|(\d{1,9})([.)])(?=\s|$))/g;
30
+ /**
31
+ * Whether GFM — cmark-gfm and micromark alike — autolinks `address` where it sits after
32
+ * `before`: a `www.` address only at the start of the text or after whitespace, `(`, `*`,
33
+ * `_`, or `~`, and any address only when the last two labels of its host hold no `_`.
34
+ */
35
+ function autolinks(address, before) {
36
+ if (address.startsWith('www.') && before !== undefined && !/[\s(*_~]/u.test(before)) {
37
+ return false;
38
+ }
39
+ const host = address.replace(/^https?:\/\//, '').replace(/[^\p{L}\p{N}_.-][\s\S]*/u, '');
40
+ return !host
41
+ .split('.')
42
+ .slice(-2)
43
+ .some((label) => label.includes('_'));
44
+ }
45
+ /**
46
+ * Backslash-escapes `text` so CommonMark and GFM render it as the literal characters.
47
+ * A carriage return, which CommonMark reads as a line ending, becomes a line feed first,
48
+ * so every line start is escaped and callers that split on `\n` see every line. A web
49
+ * address GFM autolinks is left as it is, since the autolink would show a backslash inside
50
+ * it literally; any other address is plain text and escaped like the text around it.
51
+ * Applied where upstream text is interpolated into `content[]`, never to `structuredContent`.
52
+ */
53
+ export function escapeMarkdown(text) {
54
+ return text
55
+ .replace(/\r\n?/g, '\n')
56
+ .replace(INLINE, (char, address, offset, whole) => address === undefined
57
+ ? `\\${char}`
58
+ : autolinks(address, whole[offset - 1])
59
+ ? address
60
+ : address.replace(SPECIAL, '\\$&'))
61
+ .replace(LINE_START, (_line, lead, indent, marker, digits, delimiter) => marker === undefined
62
+ ? `${lead}${indent}${digits}\\${delimiter}`
63
+ : `${lead}${indent}\\${marker}`);
64
+ }
65
+ /**
66
+ * `url` with whitespace, `<`, `>`, and parentheses percent-encoded as UTF-8 — the
67
+ * characters that end or unbalance an address in Markdown. The address they name is the same.
68
+ */
69
+ function encodeDelimiters(url) {
70
+ return url.replace(/[\s<>()]/gu, (char) => char === '(' ? '%28' : char === ')' ? '%29' : encodeURIComponent(char));
71
+ }
72
+ /**
73
+ * `url` as a Markdown link destination. A bare destination ends at the first space and
74
+ * cannot hold `<`, `>`, or an unbalanced parenthesis, so those are percent-encoded. A
75
+ * destination also reads backslash escapes and character references, so a backslash and an
76
+ * `&` opening a reference are backslash-escaped, and the link points at `url` as stored.
77
+ */
78
+ export function linkDestination(url) {
79
+ return encodeDelimiters(url).replace(/\\|&(?=#?[A-Za-z\d]{1,32};)/g, '\\$&');
80
+ }
81
+ /**
82
+ * `url` shown as a bare address. A web address has its delimiters percent-encoded, and a
83
+ * trailing `.`, `_`, or `~` — which GFM leaves out of an autolink — is percent-encoded too,
84
+ * so the autolink covers the whole address; encoding those unreserved characters names the
85
+ * same address. A value that is not a web address is escaped as text.
86
+ */
87
+ export function bareAddress(url) {
88
+ if (!/^https?:\/\//.test(url))
89
+ return escapeMarkdown(url);
90
+ const destination = encodeDelimiters(url).replace(/[._~]+$/, (run) => run.replace(/./g, (char) => `%${char.charCodeAt(0).toString(16).toUpperCase()}`));
91
+ return escapeMarkdown(destination);
92
+ }
93
+ //# sourceMappingURL=markdown-escape.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown-escape.js","sourceRoot":"","sources":["../../../src/mcp-server/tools/markdown-escape.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;GAMG;AACH,MAAM,OAAO,GACX,6HAA6H,CAAC;AAEhI,mEAAmE;AACnE,MAAM,OAAO,GAAG,gEAAgE,CAAC;AAEjF;;;;GAIG;AACH,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC;AAEzE;;;;;;GAMG;AACH,MAAM,UAAU,GAAG,wDAAwD,CAAC;AAE5E;;;;GAIG;AACH,SAAS,SAAS,CAAC,OAAe,EAAE,MAA0B;IAC5D,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACpF,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAC;IACzF,OAAO,CAAC,IAAI;SACT,KAAK,CAAC,GAAG,CAAC;SACV,KAAK,CAAC,CAAC,CAAC,CAAC;SACT,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,IAAI;SACR,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC;SACvB,OAAO,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,OAA2B,EAAE,MAAc,EAAE,KAAa,EAAE,EAAE,CAC5F,OAAO,KAAK,SAAS;QACnB,CAAC,CAAC,KAAK,IAAI,EAAE;QACb,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACrC,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CACvC;SACA,OAAO,CACN,UAAU,EACV,CACE,KAAK,EACL,IAAY,EACZ,MAAc,EACd,MAAe,EACf,MAAe,EACf,SAAkB,EAClB,EAAE,CACF,MAAM,KAAK,SAAS;QAClB,CAAC,CAAC,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,KAAK,SAAS,EAAE;QAC3C,CAAC,CAAC,GAAG,IAAI,GAAG,MAAM,KAAK,MAAM,EAAE,CACpC,CAAC;AACN,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CAAC,GAAW;IACnC,OAAO,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CACxC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CACvE,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,8BAA8B,EAAE,MAAM,CAAC,CAAC;AAC/E,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;IAC1D,MAAM,WAAW,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CACnE,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CACjF,CAAC;IACF,OAAO,cAAc,CAAC,WAAW,CAAC,CAAC;AACrC,CAAC"}
@@ -21,8 +21,22 @@ export declare class CpscRecallService {
21
21
  * dates returns the whole dataset (over 10,000 records), which is too large to be useful.
22
22
  */
23
23
  getRecent(dateStart: string, dateEnd: string, ctx: Context): Promise<RawRecall[]>;
24
+ /** The request URL: `format` first, or — for the provider-failure retry — last. */
24
25
  private buildUrl;
26
+ /**
27
+ * Fetches the records matching `params`, their text normalized.
28
+ *
29
+ * A provider-failure error row gets one immediate retry through the same query with
30
+ * `format` moved last: CPSC serves a failed query's error row from a cache keyed on the
31
+ * exact query string, so repeating the URL keeps failing while the reordered one misses
32
+ * the cache. A second provider failure surfaces as retryable.
33
+ */
25
34
  private fetchRecalls;
35
+ /**
36
+ * One fetch of `url` under the retry boundary. A provider-failure row comes back as a
37
+ * value rather than a throw, so `withRetry` never repeats a URL CPSC answers from cache.
38
+ */
39
+ private fetchOnce;
26
40
  }
27
41
  export declare function initCpscRecallService(): void;
28
42
  export declare function getCpscRecallService(): CpscRecallService;
@@ -1 +1 @@
1
- {"version":3,"file":"cpsc-recall-service.d.ts","sourceRoot":"","sources":["../../../src/services/cpsc-recall/cpsc-recall-service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAGtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAsB9D,qBAAa,iBAAiB;IAC5B;;;OAGG;IACH,MAAM,CAAC,MAAM,EAAE,gBAAgB,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAgBnE;IAED;;;OAGG;IACG,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAI/E;IAED;;;OAGG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAGhF;IAED,OAAO,CAAC,QAAQ;IAQhB,OAAO,CAAC,YAAY;CA2CrB;AAMD,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAED,wBAAgB,oBAAoB,IAAI,iBAAiB,CAKxD"}
1
+ {"version":3,"file":"cpsc-recall-service.d.ts","sourceRoot":"","sources":["../../../src/services/cpsc-recall/cpsc-recall-service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAItD,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAkC9D,qBAAa,iBAAiB;IAC5B;;;OAGG;IACH,MAAM,CAAC,MAAM,EAAE,gBAAgB,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAkBnE;IAED;;;OAGG;IACG,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAG/E;IAED;;;OAGG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAEhF;IAED,mFAAmF;IACnF,OAAO,CAAC,QAAQ;IAUhB;;;;;;;OAOG;YACW,YAAY;IAgB1B;;;OAGG;IACH,OAAO,CAAC,SAAS;CAkDlB;AAMD,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAED,wBAAgB,oBAAoB,IAAI,iBAAiB,CAKxD"}
@@ -5,11 +5,17 @@
5
5
  */
6
6
  import { serviceUnavailable } from '@cyanheads/mcp-ts-core/errors';
7
7
  import { fetchWithTimeout, withRetry } from '@cyanheads/mcp-ts-core/utils';
8
+ import { normalizeRecall } from './normalize-text.js';
8
9
  const BASE_URL = 'https://www.saferproducts.gov/RestWebServices/Recall';
9
10
  /** Request timeout: 30 s. The API returns full datasets; allow enough time. */
10
11
  const TIMEOUT_MS = 30_000;
11
12
  /** Upper bound on how much of the upstream error text is echoed back in the thrown message. */
12
13
  const ERROR_ROW_MESSAGE_LIMIT = 200;
14
+ /**
15
+ * The error-row message CPSC sends when its data source failed, rather than the request.
16
+ * Every other error-row message (an unparseable date filter, for example) is deterministic.
17
+ */
18
+ const PROVIDER_FAILURE = /underlying provider failed/i;
13
19
  /**
14
20
  * True when a row is CPSC's error row rather than a recall record.
15
21
  *
@@ -30,7 +36,7 @@ export class CpscRecallService {
30
36
  * server-side pagination); client-side limiting must be applied by callers.
31
37
  */
32
38
  search(params, ctx) {
33
- const url = this.buildUrl({
39
+ return this.fetchRecalls({
34
40
  ProductName: params.ProductName,
35
41
  Manufacturer: params.Manufacturer,
36
42
  Retailer: params.Retailer,
@@ -43,16 +49,14 @@ export class CpscRecallService {
43
49
  RecallDateEnd: params.RecallDateEnd,
44
50
  LastPublishDateStart: params.LastPublishDateStart,
45
51
  LastPublishDateEnd: params.LastPublishDateEnd,
46
- });
47
- return this.fetchRecalls(url, ctx);
52
+ }, ctx);
48
53
  }
49
54
  /**
50
55
  * Fetch a single recall by recall number. Returns `null` when no matching record
51
56
  * exists (API returns empty array for unknown numbers).
52
57
  */
53
58
  async getByNumber(recallNumber, ctx) {
54
- const url = this.buildUrl({ RecallNumber: recallNumber });
55
- const results = await this.fetchRecalls(url, ctx);
59
+ const results = await this.fetchRecalls({ RecallNumber: recallNumber }, ctx);
56
60
  return results[0] ?? null;
57
61
  }
58
62
  /**
@@ -60,18 +64,49 @@ export class CpscRecallService {
60
64
  * dates returns the whole dataset (over 10,000 records), which is too large to be useful.
61
65
  */
62
66
  getRecent(dateStart, dateEnd, ctx) {
63
- const url = this.buildUrl({ RecallDateStart: dateStart, RecallDateEnd: dateEnd });
64
- return this.fetchRecalls(url, ctx);
67
+ return this.fetchRecalls({ RecallDateStart: dateStart, RecallDateEnd: dateEnd }, ctx);
65
68
  }
66
- buildUrl(params) {
67
- const qs = new URLSearchParams({ format: 'json' });
69
+ /** The request URL: `format` first, or — for the provider-failure retry — last. */
70
+ buildUrl(params, formatLast = false) {
71
+ const qs = new URLSearchParams();
72
+ if (!formatLast)
73
+ qs.set('format', 'json');
68
74
  for (const [key, value] of Object.entries(params)) {
69
75
  if (value !== undefined && value !== '')
70
76
  qs.set(key, value);
71
77
  }
78
+ if (formatLast)
79
+ qs.set('format', 'json');
72
80
  return `${BASE_URL}?${qs.toString()}`;
73
81
  }
74
- fetchRecalls(url, ctx) {
82
+ /**
83
+ * Fetches the records matching `params`, their text normalized.
84
+ *
85
+ * A provider-failure error row gets one immediate retry through the same query with
86
+ * `format` moved last: CPSC serves a failed query's error row from a cache keyed on the
87
+ * exact query string, so repeating the URL keeps failing while the reordered one misses
88
+ * the cache. A second provider failure surfaces as retryable.
89
+ */
90
+ async fetchRecalls(params, ctx) {
91
+ let outcome = await this.fetchOnce(this.buildUrl(params), ctx);
92
+ if ('providerFailure' in outcome) {
93
+ ctx.log.info('CPSC reported a provider failure; retrying with the query reordered', {
94
+ upstreamMessage: outcome.providerFailure,
95
+ });
96
+ outcome = await this.fetchOnce(this.buildUrl(params, true), ctx);
97
+ }
98
+ if ('providerFailure' in outcome) {
99
+ throw serviceUnavailable(`CPSC reported a temporary failure: ${outcome.providerFailure}`, {
100
+ retryable: true,
101
+ });
102
+ }
103
+ return outcome.recalls.map(normalizeRecall);
104
+ }
105
+ /**
106
+ * One fetch of `url` under the retry boundary. A provider-failure row comes back as a
107
+ * value rather than a throw, so `withRetry` never repeats a URL CPSC answers from cache.
108
+ */
109
+ fetchOnce(url, ctx) {
75
110
  return withRetry(async () => {
76
111
  const response = await fetchWithTimeout(url, TIMEOUT_MS, ctx, {
77
112
  signal: ctx.signal,
@@ -93,14 +128,20 @@ export class CpscRecallService {
93
128
  }
94
129
  const errorRow = data.find(isCpscErrorRow);
95
130
  if (errorRow !== undefined) {
96
- const upstreamMessage = errorRow?.Title;
97
- throw serviceUnavailable(typeof upstreamMessage === 'string' && upstreamMessage.length > 0
98
- ? `CPSC rejected the request: ${upstreamMessage.slice(0, ERROR_ROW_MESSAGE_LIMIT)}`
131
+ const title = errorRow?.Title;
132
+ const upstreamMessage = typeof title === 'string' && title.length > 0
133
+ ? title.slice(0, ERROR_ROW_MESSAGE_LIMIT)
134
+ : undefined;
135
+ if (upstreamMessage && PROVIDER_FAILURE.test(upstreamMessage)) {
136
+ return { providerFailure: upstreamMessage };
137
+ }
138
+ throw serviceUnavailable(upstreamMessage
139
+ ? `CPSC rejected the request: ${upstreamMessage}`
99
140
  : 'CPSC rejected the request without saying why.',
100
141
  // Deterministic — the same request produces the same error row, so skip retries.
101
142
  { retryable: false });
102
143
  }
103
- return data;
144
+ return { recalls: data };
104
145
  }, {
105
146
  operation: 'CpscRecallService.fetchRecalls',
106
147
  context: ctx,
@@ -1 +1 @@
1
- {"version":3,"file":"cpsc-recall-service.js","sourceRoot":"","sources":["../../../src/services/cpsc-recall/cpsc-recall-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cpsc-recall-service.js","sourceRoot":"","sources":["../../../src/services/cpsc-recall/cpsc-recall-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @fileoverview Converts the HTML residue CPSC stores in its recall text — character
3
+ * references and stray tags — to plain text, once, before any record reaches a handler.
4
+ * @module services/cpsc-recall/normalize-text
5
+ */
6
+ import type { RawRecall } from './types.js';
7
+ /**
8
+ * Decodes character references and removes tags in one pass.
9
+ *
10
+ * A removed tag never joins its neighbours: it leaves one space, or one line break for
11
+ * `br`/`p`/`tr`/`li`/`div`, in place of itself and the whitespace around it, and nothing
12
+ * at either end of the string. An unknown or out-of-range reference (`C&T;`), a reference
13
+ * to a control character, and a bare `&` stay as they are.
14
+ */
15
+ export declare function normalizeText(text: string): string;
16
+ /** A copy of `record` with every text field — nested entries included — passed through {@link normalizeText}. */
17
+ export declare function normalizeRecall(record: RawRecall): RawRecall;
18
+ //# sourceMappingURL=normalize-text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize-text.d.ts","sourceRoot":"","sources":["../../../src/services/cpsc-recall/normalize-text.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAyC5C;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAuClD;AAsBD,iHAAiH;AACjH,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,CAE5D"}
@@ -0,0 +1,108 @@
1
+ /**
2
+ * @fileoverview Converts the HTML residue CPSC stores in its recall text — character
3
+ * references and stray tags — to plain text, once, before any record reaches a handler.
4
+ * @module services/cpsc-recall/normalize-text
5
+ */
6
+ /** The named references decoded: the five XML ones and `&nbsp;`. Anything else passes through. */
7
+ const NAMED_REFERENCES = {
8
+ amp: '&',
9
+ lt: '<',
10
+ gt: '>',
11
+ quot: '"',
12
+ apos: "'",
13
+ nbsp: ' ',
14
+ };
15
+ /**
16
+ * One alternation, matched in a single left-to-right pass, so text a reference decodes to
17
+ * is never read again as markup. Groups: 1 decimal, 2 hex, 3 named reference; 4 tag name.
18
+ *
19
+ * A tag needs a letter after `<` or `</` (`<5mW` is data). It ends at the next `>`, or — cut
20
+ * off — at the end of the string after its name and an optional `/`. The lookahead stops
21
+ * the name from backtracking, and `[^<>]*` stops at the next `<`, which keeps the scan
22
+ * linear on unterminated input.
23
+ */
24
+ const MARKUP = /&(?:#(\d{1,7})|#[xX]([\da-fA-F]{1,6})|(amp|lt|gt|quot|apos|nbsp));|<\/?([A-Za-z][A-Za-z\d]*)(?![A-Za-z\d])(?:[^<>]*>|\/?$)/g;
25
+ /** Tags whose removal ends a line; any other tag becomes a space. */
26
+ const LINE_BREAK_TAGS = new Set(['br', 'p', 'tr', 'li', 'div']);
27
+ /**
28
+ * The character a numeric reference names, or `undefined` for a code point no string can
29
+ * hold or a control character other than tab, line feed, and carriage return. A control
30
+ * character would be invisible, and HTML reads 128–159 as Windows-1252 punctuation rather
31
+ * than C1 controls, so those references stay as written.
32
+ */
33
+ function fromCodePoint(codePoint) {
34
+ const control = (codePoint < 0x20 && codePoint !== 0x09 && codePoint !== 0x0a && codePoint !== 0x0d) ||
35
+ (codePoint >= 0x7f && codePoint <= 0x9f);
36
+ const surrogate = codePoint >= 0xd800 && codePoint <= 0xdfff;
37
+ return control || surrogate || codePoint > 0x10ffff ? undefined : String.fromCodePoint(codePoint);
38
+ }
39
+ /**
40
+ * Decodes character references and removes tags in one pass.
41
+ *
42
+ * A removed tag never joins its neighbours: it leaves one space, or one line break for
43
+ * `br`/`p`/`tr`/`li`/`div`, in place of itself and the whitespace around it, and nothing
44
+ * at either end of the string. An unknown or out-of-range reference (`C&T;`), a reference
45
+ * to a control character, and a bare `&` stay as they are.
46
+ */
47
+ export function normalizeText(text) {
48
+ if (!text.includes('&') && !text.includes('<'))
49
+ return text;
50
+ let out = '';
51
+ let last = 0;
52
+ /** Separator owed by tags removed since the last emitted text. */
53
+ let owed = '';
54
+ const emit = (segment) => {
55
+ if (owed) {
56
+ segment = segment.trimStart();
57
+ if (!segment)
58
+ return;
59
+ if (out)
60
+ out += owed;
61
+ owed = '';
62
+ }
63
+ out += segment;
64
+ };
65
+ for (const match of text.matchAll(MARKUP)) {
66
+ const [whole, decimal, hex, named, tagName] = match;
67
+ const before = text.slice(last, match.index);
68
+ last = match.index + whole.length;
69
+ if (tagName === undefined) {
70
+ const codePoint = decimal ?? hex;
71
+ const decoded = codePoint === undefined
72
+ ? NAMED_REFERENCES[named]
73
+ : fromCodePoint(Number.parseInt(codePoint, decimal === undefined ? 16 : 10));
74
+ emit(before + (decoded ?? whole));
75
+ continue;
76
+ }
77
+ emit(before.trimEnd());
78
+ owed = owed === '\n' || LINE_BREAK_TAGS.has(tagName.toLowerCase()) ? '\n' : ' ';
79
+ }
80
+ emit(text.slice(last));
81
+ return out;
82
+ }
83
+ /** Keys whose values are addresses, not text: carried unchanged. */
84
+ const ADDRESS_KEYS = new Set(['URL']);
85
+ /**
86
+ * Normalizes every string in `value`, recursing through arrays and objects, except under
87
+ * `ADDRESS_KEYS`. Builds each copy with `for…in` rather than `Object.entries`, which cost
88
+ * over twice as much across a full-dataset fetch.
89
+ */
90
+ function normalizeValue(value) {
91
+ if (typeof value === 'string')
92
+ return normalizeText(value);
93
+ if (Array.isArray(value))
94
+ return value.map(normalizeValue);
95
+ if (value === null || typeof value !== 'object')
96
+ return value;
97
+ const copy = {};
98
+ for (const key in value) {
99
+ const field = value[key];
100
+ copy[key] = ADDRESS_KEYS.has(key) ? field : normalizeValue(field);
101
+ }
102
+ return copy;
103
+ }
104
+ /** A copy of `record` with every text field — nested entries included — passed through {@link normalizeText}. */
105
+ export function normalizeRecall(record) {
106
+ return normalizeValue(record);
107
+ }
108
+ //# sourceMappingURL=normalize-text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize-text.js","sourceRoot":"","sources":["../../../src/services/cpsc-recall/normalize-text.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,8 @@
8
8
  * The identifying fields (`RecallNumber`, `RecallDate`, `Title`) are always present on a
9
9
  * genuine record. CPSC nulls them on the error row it substitutes for results when a
10
10
  * request is malformed upstream; `CpscRecallService` rejects that row before any record
11
- * reaches a handler, so consumers of this type can treat them as non-null.
11
+ * reaches a handler, so consumers of this type can treat them as non-null. The service also
12
+ * converts the HTML markup and character codes in every text field to plain text first.
12
13
  */
13
14
  export interface RawRecall {
14
15
  ConsumerContact: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/cpsc-recall/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/cpsc-recall/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cyanheads/cpsc-recalls-mcp-server",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "mcpName": "io.github.cyanheads/cpsc-recalls-mcp-server",
5
5
  "description": "Search and retrieve US consumer product recalls from the CPSC (Consumer Product Safety Commission) via MCP. STDIO or Streamable HTTP.",
6
6
  "type": "module",
package/server.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "url": "https://github.com/cyanheads/cpsc-recalls-mcp-server",
7
7
  "source": "github"
8
8
  },
9
- "version": "0.2.0",
9
+ "version": "0.2.1",
10
10
  "remotes": [
11
11
  {
12
12
  "type": "streamable-http",
@@ -19,7 +19,7 @@
19
19
  "registryBaseUrl": "https://registry.npmjs.org",
20
20
  "identifier": "@cyanheads/cpsc-recalls-mcp-server",
21
21
  "runtimeHint": "bun",
22
- "version": "0.2.0",
22
+ "version": "0.2.1",
23
23
  "packageArguments": [
24
24
  {
25
25
  "type": "positional",
@@ -48,7 +48,7 @@
48
48
  "registryBaseUrl": "https://registry.npmjs.org",
49
49
  "identifier": "@cyanheads/cpsc-recalls-mcp-server",
50
50
  "runtimeHint": "bun",
51
- "version": "0.2.0",
51
+ "version": "0.2.1",
52
52
  "packageArguments": [
53
53
  {
54
54
  "type": "positional",