scoutline 0.9.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/README.md +23 -20
  2. package/dist/capabilities/quota.d.ts +1 -1
  3. package/dist/capabilities/quota.d.ts.map +1 -1
  4. package/dist/commands/crawl.js +1 -1
  5. package/dist/commands/doctor.js +1 -1
  6. package/dist/commands/map.js +1 -1
  7. package/dist/commands/read.js +1 -1
  8. package/dist/commands/research.js +5 -5
  9. package/dist/commands/research.js.map +1 -1
  10. package/dist/commands/search.js +1 -1
  11. package/dist/index.js +1 -1
  12. package/dist/lib/async-job-state.d.ts +119 -0
  13. package/dist/lib/async-job-state.d.ts.map +1 -0
  14. package/dist/lib/{research-state.js → async-job-state.js} +43 -34
  15. package/dist/lib/async-job-state.js.map +1 -0
  16. package/dist/lib/cache.d.ts +16 -8
  17. package/dist/lib/cache.d.ts.map +1 -1
  18. package/dist/lib/cache.js +33 -8
  19. package/dist/lib/cache.js.map +1 -1
  20. package/dist/lib/execution.d.ts.map +1 -1
  21. package/dist/lib/execution.js +8 -4
  22. package/dist/lib/execution.js.map +1 -1
  23. package/dist/lib/redact.d.ts +1 -1
  24. package/dist/lib/redact.d.ts.map +1 -1
  25. package/dist/lib/redact.js +9 -1
  26. package/dist/lib/redact.js.map +1 -1
  27. package/dist/providers/exa/adapter.d.ts +2 -2
  28. package/dist/providers/exa/adapter.d.ts.map +1 -1
  29. package/dist/providers/exa/adapter.js +5 -3
  30. package/dist/providers/exa/adapter.js.map +1 -1
  31. package/dist/providers/firecrawl/adapter.d.ts +53 -0
  32. package/dist/providers/firecrawl/adapter.d.ts.map +1 -0
  33. package/dist/providers/firecrawl/adapter.js +962 -0
  34. package/dist/providers/firecrawl/adapter.js.map +1 -0
  35. package/dist/providers/firecrawl/client.d.ts +182 -0
  36. package/dist/providers/firecrawl/client.d.ts.map +1 -0
  37. package/dist/providers/firecrawl/client.js +426 -0
  38. package/dist/providers/firecrawl/client.js.map +1 -0
  39. package/dist/providers/firecrawl/credentials.d.ts +38 -0
  40. package/dist/providers/firecrawl/credentials.d.ts.map +1 -0
  41. package/dist/providers/firecrawl/credentials.js +60 -0
  42. package/dist/providers/firecrawl/credentials.js.map +1 -0
  43. package/dist/providers/firecrawl/diagnostics.d.ts +36 -0
  44. package/dist/providers/firecrawl/diagnostics.d.ts.map +1 -0
  45. package/dist/providers/firecrawl/diagnostics.js +65 -0
  46. package/dist/providers/firecrawl/diagnostics.js.map +1 -0
  47. package/dist/providers/firecrawl/quota.d.ts +46 -0
  48. package/dist/providers/firecrawl/quota.d.ts.map +1 -0
  49. package/dist/providers/firecrawl/quota.js +120 -0
  50. package/dist/providers/firecrawl/quota.js.map +1 -0
  51. package/dist/providers/registry.d.ts.map +1 -1
  52. package/dist/providers/registry.js +2 -0
  53. package/dist/providers/registry.js.map +1 -1
  54. package/dist/providers/tavily/adapter.d.ts +2 -2
  55. package/dist/providers/tavily/adapter.d.ts.map +1 -1
  56. package/dist/providers/tavily/adapter.js +5 -3
  57. package/dist/providers/tavily/adapter.js.map +1 -1
  58. package/dist/providers/types.d.ts +1 -1
  59. package/dist/providers/types.d.ts.map +1 -1
  60. package/dist/providers/types.js +1 -1
  61. package/dist/providers/types.js.map +1 -1
  62. package/package.json +1 -1
  63. package/dist/lib/research-state.d.ts +0 -104
  64. package/dist/lib/research-state.d.ts.map +0 -1
  65. package/dist/lib/research-state.js.map +0 -1
  66. package/dist/providers/minimax/sdk-client.d.ts +0 -29
  67. package/dist/providers/minimax/sdk-client.d.ts.map +0 -1
  68. package/dist/providers/minimax/sdk-client.js +0 -50
  69. package/dist/providers/minimax/sdk-client.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/providers/firecrawl/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,IAAI,MAAM,WAAW,CAAC;AAwB7B,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAQ5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EACL,wBAAwB,EACxB,iCAAiC,GAGlC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EACL,QAAQ,EACR,SAAS,EACT,kBAAkB,EAClB,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,sBAAsB,EACtB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,yBAAyB,EACzB,kBAAkB,GAMnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AACjF,OAAO,EAAE,8BAA8B,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,oCAAoC,EAAE,MAAM,kBAAkB,CAAC;AAExE,8EAA8E;AAC9E,6BAA6B;AAC7B,8EAA8E;AAE9E,SAAS,qBAAqB,CAAC,MAAc;IAC3C,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,aAAa,CAAC,GAAsB;IAC3C,OAAO,sBAAsB,CAAC,GAAG,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,aAAa,CAAC,GAAY;IACjC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,eAAe,CAAC,iDAAiD,CAAC,CAAC;IAC/E,CAAC;IACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,eAAe,CAAC,yCAAyC,CAAC,CAAC;IACvE,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,wEAAwE;AACxE,8EAA8E;AAE9E;;;GAGG;AACH,SAAS,eAAe,CAAC,OAAsB;IAC7C,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,QAAQ;YACX,OAAO,OAAO,CAAC;QACjB,KAAK,SAAS;YACZ,OAAO,OAAO,CAAC;QACjB,KAAK,UAAU;YACb,OAAO,OAAO,CAAC;QACjB,KAAK,SAAS;YACZ,OAAO,OAAO,CAAC;QACjB,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC;QACnB;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,iBAAiB,CAAC,QAAyB;IAClD,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC;IAC9B,MAAM,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IAC9D,MAAM,MAAM,GAKR,EAAE,OAAO,EAAE,CAAC;IAChB,IAAI,QAAQ,EAAE,MAAM,EAAE,CAAC;QACrB,MAAM,CAAC,cAAc,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,QAAQ,EAAE,OAAO,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,GAAG;YAAE,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;IAC5B,CAAC;IACD,IAAI,QAAQ,EAAE,WAAW,KAAK,MAAM,EAAE,CAAC;QACrC,MAAM,CAAC,aAAa,GAAG,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;IACnD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,8EAA8E;AAC9E,yBAAyB;AACzB,8EAA8E;AAE9E;;;;;;;;;;;;;;;GAeG;AACH,SAAS,+BAA+B,CAAC,GAAY;IACnD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,QAAQ,CAAC,gDAAgD,EAAE,GAAG,CAAC,CAAC;IAC5E,CAAC;IACD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IACtB,IAAI,OAAgB,CAAC;IACrB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;SAAM,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,oEAAoE;QACpE,8DAA8D;QAC9D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACrB,OAAO;YACL,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAClG,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,QAAQ,CAAC,gDAAgD,EAAE,GAAG,CAAC,CAAC;IAC5E,CAAC;IACD,MAAM,GAAG,GAAmB,EAAE,CAAC;IAC/B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,QAAQ,CAAC,gDAAgD,EAAE,GAAG,CAAC,CAAC;QAC5E,CAAC;QACD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAC1B,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;QACtB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YACzD,MAAM,IAAI,QAAQ,CAAC,gDAAgD,EAAE,GAAG,CAAC,CAAC;QAC5E,CAAC;QACD,gEAAgE;QAChE,mEAAmE;QACnE,MAAM,QAAQ,GAAG,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QACjF,MAAM,WAAW,GAAG,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1F,MAAM,OAAO,GAAG,QAAQ,IAAI,WAAW,IAAI,EAAE,CAAC;QAC9C,MAAM,MAAM,GACV,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ;YAC9B,CAAC,CAAC,KAAK,CAAC,MAAM;YACd,CAAC,CAAC,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ;gBAClC,CAAC,CAAC,KAAK,CAAC,QAAQ;gBAChB,CAAC,CAAC,SAAS,CAAC;QAClB,MAAM,MAAM,GAAiB,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;QACrD,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;QACjD,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,8BAA8B,CACrC,GAAY,EACZ,OAA2B;IAE3B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,QAAQ,CAAC,gDAAgD,EAAE,GAAG,CAAC,CAAC;IAC5E,CAAC;IACD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IACtB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,QAAQ,CAAC,gDAAgD,EAAE,GAAG,CAAC,CAAC;IAC5E,CAAC;IACD,MAAM,aAAa,GAAwB,OAAO,CAAC,MAAM,IAAI,UAAU,CAAC;IACxE,MAAM,YAAY,GAAG,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC;IACpE,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;IACnC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,QAAQ,CAAC,gDAAgD,EAAE,GAAG,CAAC,CAAC;IAC5E,CAAC;IACD,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IACnE,MAAM,SAAS,GACb,OAAO,QAAQ,CAAC,SAAS,KAAK,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;QACrE,CAAC,CAAC,QAAQ,CAAC,SAAS;QACpB,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,QAAQ,GAAG,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC;IAC1C,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IACjF,MAAM,KAAK,GAAG,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;IAErF,OAAO;QACL,aAAa,EAAE,CAAC;QAChB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,QAAQ;QACR,KAAK;QACL,OAAO;QACP,aAAa;KACd,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,2BAA2B,CAAC,GAAY,EAAE,OAAmB;IACpE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,QAAQ,CAAC,6CAA6C,EAAE,GAAG,CAAC,CAAC;IACzE,CAAC;IACD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;IACxB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,QAAQ,CAAC,6CAA6C,EAAE,GAAG,CAAC,CAAC;IACzE,CAAC;IACD,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,GAAY,CAAC;QACjB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,GAAG,GAAG,KAAK,CAAC;QACd,CAAC;aAAM,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;QAClB,CAAC;QACD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,QAAQ,CAAC,6CAA6C,EAAE,GAAG,CAAC,CAAC;QACzE,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC;IACD,OAAO;QACL,aAAa,EAAE,CAAC;QAChB,OAAO,EAAE,OAAO,CAAC,GAAG;QACpB,IAAI;QACJ,SAAS,EAAE,IAAI,CAAC,MAAM;KACvB,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,wEAAwE;AACxE,8EAA8E;AAE9E;;;;GAIG;AACH,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACtE,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,SAAS,wBAAwB,CAAC,UAAkB;IAClD,IAAI,UAAU,KAAK,GAAG;QAAE,OAAO,+BAA+B,CAAC;IAC/D,OAAO,0BAA0B,CAAC;AACpC,CAAC;AAED;;;GAGG;AACH,SAAS,uBAAuB,CAAC,KAAc;IAC7C,gEAAgE;IAChE,IAAI,KAAK,YAAY,UAAU;QAAE,OAAO,KAAK,CAAC;IAE9C,qEAAqE;IACrE,6CAA6C;IAC7C,IACE,KAAK,YAAY,eAAe;QAChC,KAAK,YAAY,sBAAsB;QACvC,KAAK,YAAY,kBAAkB,EACnC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,kEAAkE;IAClE,2DAA2D;IAC3D,IAAI,KAAK,YAAY,SAAS,EAAE,CAAC;QAC/B,OAAO,IAAI,SAAS,CAAC,iCAAiC,EAAE,mBAAmB,CAAC,CAAC;IAC/E,CAAC;IACD,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;QAClC,OAAO,IAAI,YAAY,CAAC,yBAAyB,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;QAClC,OAAO,IAAI,YAAY,CACrB,KAAK,CAAC,UAAU,EAChB,8DAA8D,CAC/D,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACrD,OAAO,IAAI,QAAQ,CAAC,wBAAwB,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,CAAC;IACxE,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACpC,IACE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;QACrB,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;QACrB,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC;QAC9B,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EAC3B,CAAC;QACD,OAAO,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;IAC1D,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5F,OAAO,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IACD,IACE,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC;QAC9B,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC5B,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;QACzB,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC3B,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,EAC9B,CAAC;QACD,OAAO,IAAI,YAAY,CAAC,yBAAyB,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QAC1D,OAAO,IAAI,QAAQ,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,IAAI,QAAQ,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAC;AACvD,CAAC;AAED,8EAA8E;AAC9E,4BAA4B;AAC5B,8EAA8E;AAE9E,+DAA+D;AAC/D,MAAM,0BAA0B,GAAG;IACjC,kBAAkB;IAClB,OAAO;IACP,gBAAgB;IAChB,mBAAmB;CACX,CAAC;AAEX,SAAS,gCAAgC,CAAC,OAA2B;IACnE,KAAK,MAAM,GAAG,IAAI,0BAA0B,EAAE,CAAC;QAC7C,oEAAoE;QACpE,gEAAgE;QAChE,iEAAiE;QACjE,mEAAmE;QACnE,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;YAC1B,MAAM,IAAI,sBAAsB,CAAC,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;AACH,CAAC;AAWD,SAAS,+BAA+B,CACtC,OAAyC;IAEzC,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAEnC,MAAM,UAAU,GAAqB;QACnC,QAAQ,CAAC,OAAsB;YAC7B,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBACjF,MAAM,IAAI,eAAe,CACvB,iEAAiE,CAClE,CAAC;YACJ,CAAC;YACD,8DAA8D;YAC9D,oEAAoE;YACpE,IAAI,OAAO,CAAC,QAAQ,EAAE,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC7C,MAAM,IAAI,sBAAsB,CAAC,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;YACtE,CAAC;YACD,qEAAqE;YACrE,oEAAoE;YACpE,yDAAyD;YACzD,IAAI,OAAO,CAAC,QAAQ,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC1C,MAAM,IAAI,eAAe,CACvB,8EAA8E,CAC/E,CAAC;YACJ,CAAC;QACH,CAAC;QAED,aAAa,CAAC,OAAsB;YAClC,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;YAClC,MAAM,eAAe,GAAiD;gBACpE,KAAK,EAAE,OAAO,CAAC,KAAK;aACrB,CAAC;YACF,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACrB,eAAe,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;YAC9C,CAAC;YACD,OAAO;gBACL,QAAQ,EAAE,WAAW;gBACrB,UAAU,EAAE,QAAQ;gBACpB,qBAAqB,EAAE,qBAAqB,CAAC,MAAM,CAAC;gBACpD,OAAO,EAAE,eAAe;aACzB,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,OAAsB;YACjC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAE7B,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;YAClC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACnD,MAAM,GAAG,GAAG,MAAM,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;gBACjF,OAAO,+BAA+B,CAAC,GAAG,CAAC,CAAC;YAC9C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,uBAAuB,CAAC,KAAK,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;KACF,CAAC;IAEF,OAAO,UAAU,CAAC;AACpB,CAAC;AAWD,SAAS,+BAA+B,CACtC,OAAyC;IAEzC,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAEnC,MAAM,KAAK,GAA2D;QACpE,IAAI,EAAE,cAAc;QAEpB,QAAQ,CAAC,OAA2B;YAClC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC3B,gCAAgC,CAAC,OAAO,CAAC,CAAC;QAC5C,CAAC;QAED,aAAa,CACX,OAA2B;YAE3B,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;YAClC,OAAO;gBACL,QAAQ,EAAE,WAAW;gBACrB,UAAU,EAAE,QAAQ;gBACpB,SAAS,EAAE,cAAc;gBACzB,qBAAqB,EAAE,qBAAqB,CAAC,MAAM,CAAC;gBACpD,OAAO;gBACP,gBAAgB,EAAE,EAAE;aACrB,CAAC;QACJ,CAAC;QAED,YAAY,CAAC,KAAc;YACzB,OAAO,uBAAuB,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,OAA2B;YACtC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAExB,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;YAClC,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;gBACpE,iEAAiE;gBACjE,iEAAiE;gBACjE,kCAAkC;gBAClC,MAAM,MAAM,GAA0B;oBACpC,OAAO;oBACP,KAAK,EAAE,OAAO;oBACd,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACxE,CAAC;gBACF,MAAM,GAAG,GAAG,MAAM,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;gBAC/E,OAAO,8BAA8B,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YACtD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,uBAAuB,CAAC,KAAK,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;KACF,CAAC;IAEF,OAAO,EAAE,KAAK,EAAE,CAAC;AACnB,CAAC;AAED,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E;;;;;;;;;GASG;AACH,SAAS,cAAc,CAAC,OAAmB;IACzC,MAAM,MAAM,GAAwC,EAAE,CAAC;IACvD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;QAAE,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC9D,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS;QAAE,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAC7E,OAAO,MAAM,CAAC;AAChB,CAAC;AAOD,SAAS,4BAA4B,CAAC,OAAsC;IAC1E,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAEnC,MAAM,KAAK,GAAiB;QAC1B,IAAI,EAAE,WAAW;QAEjB,QAAQ,CAAC,OAAmB;YAC1B,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC3B,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;gBACtD,MAAM,IAAI,eAAe,CAAC,kCAAkC,CAAC,CAAC;YAChE,CAAC;YACD,wEAAwE;YACxE,uEAAuE;YACvE,oEAAoE;YACpE,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAChC,MAAM,IAAI,sBAAsB,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YAChE,CAAC;YACD,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBAClC,MAAM,IAAI,sBAAsB,CAAC,WAAW,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;YAClE,CAAC;YACD,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;gBACtC,MAAM,IAAI,sBAAsB,CAAC,WAAW,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;YACtE,CAAC;YACD,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;gBACvC,MAAM,IAAI,sBAAsB,CAAC,WAAW,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;QAED,aAAa,CAAC,OAAmB;YAC/B,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;YAClC,OAAO;gBACL,QAAQ,EAAE,WAAW;gBACrB,UAAU,EAAE,KAAK;gBACjB,qBAAqB,EAAE,qBAAqB,CAAC,MAAM,CAAC;gBACpD,OAAO;aACR,CAAC;QACJ,CAAC;QAED,YAAY,CAAC,KAAc;YACzB,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,OAAmB;YAC9B,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAExB,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;YAClC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;gBACvC,MAAM,GAAG,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;gBAC5E,OAAO,2BAA2B,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YACnD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,uBAAuB,CAAC,KAAK,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;KACF,CAAC;IAEF,OAAO,EAAE,KAAK,EAAE,CAAC;AACnB,CAAC;AAED,8EAA8E;AAC9E,6DAA6D;AAC7D,8EAA8E;AAE9E,MAAM,8BAA8B,GAAG,IAAI,CAAC;AAC5C,qEAAqE;AACrE,MAAM,yBAAyB,GAAG,GAAG,CAAC;AACtC,0EAA0E;AAC1E,MAAM,sBAAsB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEnD,wEAAwE;AACxE,SAAS,iBAAiB,CAAC,KAAyB;IAClD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IACjE,OAAO,KAAK;SACT,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,aAAa,CAAC,GAAY;IACjC,OAAO,CACL,OAAO,GAAG,KAAK,QAAQ;QACvB,GAAG,KAAK,IAAI;QACZ,MAAM,IAAI,GAAG;QACZ,GAA6B,CAAC,IAAI,KAAK,QAAQ,CACjD,CAAC;AACJ,CAAC;AAED,SAAS,0BAA0B,CAAC,GAAkC;IACpE,MAAM,GAAG,GAAG,GAAG,EAAE,gCAAgC,CAAC;IAClD,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IACvC,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,8BAA8B,CAAC;AAC1F,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc,CACrB,IAAwC,EACxC,MAAoB;IAEpB,MAAM,IAAI,GAAG,IAAI,EAAE,UAAU,IAAI,UAAU,CAAC;IAC5C,MAAM,MAAM,GAAG,IAAI,EAAE,YAAY,IAAI,YAAY,CAAC;IAClD,OAAO,CAAC,EAAU,EAAE,EAAE,CACpB,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACpC,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,YAAY,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC,CAAC;YACrD,OAAO;QACT,CAAC;QACD,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;YACZ,YAAY,CAAC,GAAG,EAAE;gBAChB,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;oBACpB,MAAM,CAAC,IAAI,YAAY,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC,CAAC;oBACrD,OAAO;gBACT,CAAC;gBACD,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,MAAM,OAAO,GAAG,GAAS,EAAE;YACzB,MAAM,CAAC,EAAE,CAAC,CAAC;YACX,MAAM,CAAC,IAAI,YAAY,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC,CAAC;QACvD,CAAC,CAAC;QACF,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE;YACnB,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC9C,OAAO,EAAE,CAAC;QACZ,CAAC,EAAE,EAAE,CAAC,CAAC;QACP,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;;;GAMG;AACH,SAAS,gBAAgB,CAAC,OAAqB;IAC7C,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,IAAI,UAAU,CAAC;IACnD,MAAM,MAAM,GAMR,EAAE,aAAa,EAAE,EAAE,OAAO,EAAE,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC;IACpE,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;QAAE,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC;IACjE,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;QAAE,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC9D,MAAM,YAAY,GAAG,iBAAiB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC5D,IAAI,YAAY,KAAK,SAAS;QAAE,MAAM,CAAC,YAAY,GAAG,YAAY,CAAC;IACnE,MAAM,YAAY,GAAG,iBAAiB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC7D,IAAI,YAAY,KAAK,SAAS;QAAE,MAAM,CAAC,YAAY,GAAG,YAAY,CAAC;IACnE,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,mBAAmB,CAAC,IAAwB,EAAE,OAAqB;IAC1E,MAAM,aAAa,GAAwB,OAAO,CAAC,MAAM,IAAI,UAAU,CAAC;IACxE,MAAM,YAAY,GAAG,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC;IACpE,MAAM,KAAK,GAAgB,EAAE,CAAC;IAC9B,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;QACzB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,QAAQ,CAAC,+CAA+C,EAAE,GAAG,CAAC,CAAC;QAC3E,CAAC;QACD,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,MAAM,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC;QAC/B,MAAM,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;QACpC,IACE,OAAO,GAAG,KAAK,QAAQ;YACvB,GAAG,CAAC,MAAM,KAAK,CAAC;YAChB,OAAO,OAAO,KAAK,QAAQ;YAC3B,OAAO,CAAC,MAAM,KAAK,CAAC,EACpB,CAAC;YACD,MAAM,IAAI,QAAQ,CAAC,+CAA+C,EAAE,GAAG,CAAC,CAAC;QAC3E,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,kBAAkB,CAC/B,IAAoE,EACpE,MAAc,EACd,OAAqB,EACrB,SAA6C;IAE7C,MAAM,KAAK,GAAgB,EAAE,CAAC;IAC9B,IAAI,IAAI,CAAC,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IACtE,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACrB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,OAAO,IAAI,KAAK,SAAS,EAAE,CAAC;QAC1B,KAAK,IAAI,CAAC,CAAC;QACX,IAAI,KAAK,GAAG,yBAAyB,EAAE,CAAC;YACtC,MAAM,IAAI,QAAQ,CAAC,sDAAsD,EAAE,GAAG,CAAC,CAAC;QAClF,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,uBAAuB,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QACpE,IAAI,IAAI,CAAC,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;QACtE,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IACD,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;AACrF,CAAC;AAED;;;GAGG;AACH,SAAS,yBAAyB,CAAC,CAAU,EAAE,QAAuC;IACpF,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACxC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACpC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,GAAI,CAAe,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAC/F,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,sBAAsB,CAAC,OAAgB,EAAE,MAA4B;IAC5E,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1C,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IACxF,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IAC/E,MAAM,eAAe,GAAG,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC;IACtD,MAAM,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC;IACjC,IAAI,eAAe,KAAK,SAAS,IAAI,aAAa,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;QACpF,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,GAAI,EAAE,CAAC,OAAqB,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAClE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACzD,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;IACjC,CAAC;IACD,kEAAkE;IAClE,yEAAyE;IACzE,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC;QAAE,OAAO,KAAK,CAAC;IACxF,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC;QAAE,OAAO,KAAK,CAAC;IACxF,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,SAAS,gBAAgB,CACvB,MAKG,EACH,OAAqB,EACrB,MAA4B;IAE5B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,CAAC,GAAG;YAAE,SAAS;QACxC,MAAM,EAAE,GAAG,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAC/E,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,GAAG,GAAG,EAAE,GAAG,sBAAsB;YAAE,SAAS;QACxE,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC;YAAE,SAAS;QAC5F,OAAO,KAAK,CAAC,EAAE,CAAC;IAClB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,cAAc,CAC3B,SAA4B,EAC5B,YAAoB,EACpB,EAAU;IAEV,MAAM,KAAK,GAAkB;QAC3B,SAAS,EAAE,EAAE;QACb,YAAY;QACZ,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,MAAM,EAAE,SAAS;KAClB,CAAC;IACF,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QAC3C,OAAO,EAAE,CAAC;IACZ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACpD,OAAO,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,mDAAmD;AACnD,8EAA8E;AAE9E,2EAA2E;AAC3E,MAAM,qBAAqB,GAAG,KAAK,CAAC;AACpC,2EAA2E;AAC3E,MAAM,mBAAmB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAE3C;;;;;;;;;GASG;AACH,KAAK,UAAU,aAAa,CAC1B,QAA4B,EAC5B,YAAoB,EACpB,EAAoB,EACpB,IAAwC;IAExC,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,EAAE,EAAE,CAAC;IACxC,MAAM,IAAI,GAAG,IAAI,EAAE,UAAU,IAAI,UAAU,CAAC;IAC5C,MAAM,KAAK,GAAG,CAAC,EAAU,EAAiB,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IACrF,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,YAAY,OAAO,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,qBAAqB,CAAC;IACpD,SAAS,CAAC;QACR,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC7C,IAAI,CAAC;gBACH,OAAO,MAAM,EAAE,EAAE,CAAC;YACpB,CAAC;oBAAS,CAAC;gBACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBACrC,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;gBAAE,MAAM,GAAG,CAAC;YACnC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;gBAC1B,MAAM,IAAI,QAAQ,CAAC,uCAAuC,EAAE,GAAG,CAAC,CAAC;YACnE,CAAC;YACD,0DAA0D;YAC1D,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;YACvD,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,GAAG,mBAAmB,EAAE,CAAC;gBAC5D,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBAC1C,SAAS;YACX,CAAC;YACD,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,uBAAuB,CACpC,MAAc,EACd,OAAqB,EACrB,YAAoB,EACpB,MAA4B,EAC5B,SAA4B,EAC5B,SAA6C,EAC7C,QAA4B;IAE5B,OAAO,aAAa,CAClB,QAAQ,EACR,YAAY,EACZ,KAAK,IAAI,EAAE;QACT,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAClE,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAC1D,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,cAAc,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;QAC1D,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QACnF,OAAO,cAAc,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;IAC7D,CAAC,EACD,SAAS,CACV,CAAC;AACJ,CAAC;AAUD,SAAS,8BAA8B,CAAC,OAAwC;IAC9E,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAExD,MAAM,KAAK,GAAmB;QAC5B,IAAI,EAAE,aAAa;QAEnB,QAAQ,CAAC,OAAqB;YAC5B,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC3B,mEAAmE;YACnE,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBAClC,MAAM,IAAI,sBAAsB,CAAC,WAAW,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;YACpE,CAAC;YACD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAChC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,GAAG,CAAC,IAAI,OAAO,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;oBAC/E,MAAM,IAAI,eAAe,CAAC,gDAAgD,CAAC,CAAC;gBAC9E,CAAC;YACH,CAAC;YACD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;gBACtD,MAAM,IAAI,eAAe,CAAC,oCAAoC,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;QAED,aAAa,CAAC,OAAqB;YACjC,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;YAClC,OAAO;gBACL,QAAQ,EAAE,WAAW;gBACrB,UAAU,EAAE,OAAO;gBACnB,qBAAqB,EAAE,qBAAqB,CAAC,MAAM,CAAC;gBACpD,OAAO;aACR,CAAC;QACJ,CAAC;QAED,YAAY,CAAC,KAAc;YACzB,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,OAAqB,EAAE,MAAoB;YACtD,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAExB,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;YAClC,MAAM,eAAe,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;YACtD,MAAM,YAAY,GAAG,wBAAwB,CAAC;gBAC5C,QAAQ,EAAE,WAAW;gBACrB,UAAU,EAAE,OAAO;gBACnB,qBAAqB,EAAE,eAAe;gBACtC,OAAO;aACR,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;YACzC,MAAM,cAAc,GAAG,0BAA0B,CAAC,GAAG,CAAC,CAAC;YACvD,MAAM,KAAK,GAAG,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAEhD,IAAI,CAAC;gBACH,qEAAqE;gBACrE,qEAAqE;gBACrE,qCAAqC;gBACrC,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACpD,IAAI,EAAU,CAAC;gBACf,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;oBACtB,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAC;gBAC1B,CAAC;qBAAM,CAAC;oBACN,mEAAmE;oBACnE,EAAE,GAAG,MAAM,uBAAuB,CAChC,MAAM,EACN,OAAO,EACP,YAAY,EACZ,MAAM,EACN,SAAS,EACT,SAAS,EACT,QAAQ,CACT,CAAC;gBACJ,CAAC;gBAED,kEAAkE;gBAClE,6DAA6D;gBAC7D,sDAAsD;gBACtD,IAAI,SAAS,GAAG,KAAK,CAAC;gBACtB,SAAS,CAAC;oBACR,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;wBACpB,MAAM,IAAI,YAAY,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC;oBACrD,CAAC;oBACD,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;oBAE7D,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;wBAChC,8DAA8D;wBAC9D,gEAAgE;wBAChE,+DAA+D;wBAC/D,6DAA6D;wBAC7D,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;wBAC1E,MAAM,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;wBACrC,OAAO,MAAM,CAAC;oBAChB,CAAC;oBACD,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;wBAC7B,MAAM,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;wBACrC,MAAM,IAAI,QAAQ,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAC;oBACxD,CAAC;oBACD,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;wBAChC,6DAA6D;wBAC7D,0DAA0D;wBAC1D,uDAAuD;wBACvD,4CAA4C;wBAC5C,IAAI,SAAS,EAAE,CAAC;4BACd,MAAM,IAAI,QAAQ,CAAC,uDAAuD,EAAE,GAAG,CAAC,CAAC;wBACnF,CAAC;wBACD,SAAS,GAAG,IAAI,CAAC;wBACjB,MAAM,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;wBACrC,EAAE,GAAG,MAAM,uBAAuB,CAChC,MAAM,EACN,OAAO,EACP,YAAY,EACZ,MAAM,EACN,SAAS,EACT,SAAS,EACT,QAAQ,CACT,CAAC;wBACF,SAAS;oBACX,CAAC;oBACD,+DAA+D;oBAC/D,8CAA8C;oBAC9C,MAAM,KAAK,CAAC,cAAc,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,uBAAuB,CAAC,KAAK,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;KACF,CAAC;IAEF,OAAO,EAAE,KAAK,EAAE,CAAC;AACnB,CAAC;AAqBD;;;;;;GAMG;AACH,MAAM,UAAU,yBAAyB,CACvC,YAA2C;IAE3C,MAAM,SAAS,GAAG,YAAY,EAAE,SAAS,CAAC;IAC1C,MAAM,aAAa,GAAG,YAAY,EAAE,aAAa,IAAI,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC/E,MAAM,cAAc,GAClB,YAAY,EAAE,cAAc,IAAI,iCAAiC,CAAC,aAAa,CAAC,CAAC;IAEnF,OAAO;QACL,EAAE,EAAE,WAAW;QACf,YAAY,CAAC,GAAsB;YACjC,OAAO,qBAAqB,CAAC,GAAG,CAAC,CAAC;QACpC,CAAC;QACD,YAAY;YACV,OAAO,IAAI,GAAG,CAAqB;gBACjC,QAAQ;gBACR,QAAQ;gBACR,OAAO;gBACP,KAAK;gBACL,OAAO;gBACP,aAAa;aACd,CAAC,CAAC;QACL,CAAC;QACD,MAAM,CAAC,OAAwB;YAC7B,MAAM,MAAM,GAAG,+BAA+B,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;YAChF,MAAM,MAAM,GAAG,+BAA+B,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;YAChF,MAAM,KAAK,GAAG,8BAA8B,CAAC;gBAC3C,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,SAAS;gBACT,SAAS,EAAE,cAAc;gBACzB,QAAQ,EAAE,aAAa;aACxB,CAAC,CAAC;YACH,MAAM,GAAG,GAAG,4BAA4B,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;YAC1E,MAAM,KAAK,GAAG,8BAA8B,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;YAC9E,MAAM,WAAW,GAAG,oCAAoC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;YAC1F,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;QAC7E,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,182 @@
1
+ /**
2
+ * Firecrawl direct HTTP transport (firecrawl tech-plan §1, D3).
3
+ *
4
+ * Performs direct POSTs against the Firecrawl v2 REST endpoints with an
5
+ * `Authorization: Bearer fc-<key>` header. There is NO internal retry —
6
+ * shared execution owns retry policy. Fetch and timer are injectable for
7
+ * tests.
8
+ *
9
+ * Mirrors `providers/tavily/client.ts` in structure, with one
10
+ * Firecrawl-specific difference: the **error-envelope dual-check**.
11
+ * Firecrawl returns HTTP 200 with `{ success: false }` for some business
12
+ * errors (investigation §1.2), so the transport checks BOTH
13
+ * `response.ok` and `body.success === false` after parsing.
14
+ *
15
+ * Boundary rules (ARCHITECTURE.md §2):
16
+ * - May import Adapter-local config and normalized errors.
17
+ * - May import `ProviderQuotaFetch` from `providers/types.ts`.
18
+ * - Must NOT import command presentation, capability contracts, or
19
+ * another Provider's Adapter.
20
+ * - Must NOT perform response field normalization — the Adapter owns
21
+ * that. This module declares Provider-native request-body types only
22
+ * (Firecrawl API field names); it does not import SearchControls or
23
+ * any capability contract.
24
+ */
25
+ import type { ProviderQuotaFetch } from "../types.js";
26
+ /** Injectable transport dependencies (fetch, timers, env). */
27
+ export interface FirecrawlTransportDeps {
28
+ readonly fetch?: ProviderQuotaFetch;
29
+ readonly setTimeout?: typeof setTimeout;
30
+ readonly clearTimeout?: typeof clearTimeout;
31
+ readonly env?: NodeJS.ProcessEnv;
32
+ }
33
+ /**
34
+ * Provider-native search request body fields (Firecrawl API field names).
35
+ * The Adapter maps the Provider-neutral `SearchControls` into these before
36
+ * calling {@link fetchFirecrawlSearch}; the transport never imports a
37
+ * capability contract.
38
+ *
39
+ * `scrapeOptions` is nested (unlike `/scrape` which takes `formats`
40
+ * top-level) — investigation §3.2 / tech-plan D4.
41
+ */
42
+ export interface FirecrawlSearchParams {
43
+ /** `[{type:"web"}]` default; `[{type:"news"}]` for news topic. */
44
+ readonly sources?: readonly {
45
+ readonly type: string;
46
+ }[];
47
+ readonly includeDomains?: readonly string[];
48
+ readonly tbs?: string;
49
+ /** Gated by `--content-size high` → `{ formats: ["markdown"] }`. */
50
+ readonly scrapeOptions?: {
51
+ readonly formats: readonly string[];
52
+ };
53
+ }
54
+ /**
55
+ * Provider-native scrape request body fields (Firecrawl API field names).
56
+ * The Adapter maps the Reader request into these before calling
57
+ * {@link fetchFirecrawlScrape}.
58
+ */
59
+ export interface FirecrawlScrapeParams {
60
+ /** `["markdown"]` (default) or `["text"]`. */
61
+ readonly formats: readonly string[];
62
+ /** Inverted from `retainImages`. */
63
+ readonly removeBase64Images?: boolean;
64
+ /** Pinned per tech-plan D9 (cost-safety — avoids 5-credit enhanced proxy). */
65
+ readonly proxy: "basic";
66
+ }
67
+ /** Provider-native map request body fields (Firecrawl API field names). */
68
+ export interface FirecrawlMapParams {
69
+ readonly limit?: number;
70
+ /** Mapped from `--instructions`. */
71
+ readonly search?: string;
72
+ }
73
+ /**
74
+ * Perform ONE POST against the Firecrawl /v2/search endpoint. No retry;
75
+ * no response body in public errors. Returns the parsed JSON body (raw;
76
+ * the Adapter post-processes into normalized search sources).
77
+ *
78
+ * `params` carries Firecrawl-native API fields already mapped from
79
+ * `SearchControls` by the Adapter.
80
+ */
81
+ export declare function fetchFirecrawlSearch(apiKey: string, query: string, params: FirecrawlSearchParams | undefined, deps?: FirecrawlTransportDeps): Promise<unknown>;
82
+ /**
83
+ * Perform ONE POST against the Firecrawl /v2/scrape endpoint. No retry;
84
+ * no response body in public errors. Returns the parsed JSON body (raw;
85
+ * the Adapter post-processes into a normalized ReaderFetchResult).
86
+ *
87
+ * `url` is a single URL; `params` carries the format + image/proxy options
88
+ * already mapped from the Reader request by the Adapter.
89
+ */
90
+ export declare function fetchFirecrawlScrape(apiKey: string, url: string, params: FirecrawlScrapeParams, deps?: FirecrawlTransportDeps): Promise<unknown>;
91
+ /**
92
+ * Perform ONE POST against the Firecrawl /v2/map endpoint. No retry; no
93
+ * response body in public errors. Returns the parsed JSON body (raw; the
94
+ * Adapter post-processes into a normalized MapResult).
95
+ *
96
+ * `params` carries Firecrawl-native API fields already mapped from
97
+ * `MapRequest` by the Adapter. The /v2/map response is
98
+ * `{ success, links: string[] }`.
99
+ */
100
+ export declare function fetchFirecrawlMap(apiKey: string, url: string, params: FirecrawlMapParams | undefined, deps?: FirecrawlTransportDeps): Promise<unknown>;
101
+ /**
102
+ * Perform ONE GET against Firecrawl /v2/team/credit-usage. No retry; no
103
+ * response body in public errors. Returns the parsed JSON body (raw; the
104
+ * quota Adapter normalizes into a `QuotaCategory`). The dual-check applies.
105
+ */
106
+ export declare function fetchFirecrawlCreditUsage(apiKey: string, deps?: FirecrawlTransportDeps): Promise<unknown>;
107
+ /**
108
+ * Provider-native crawl request body fields (Firecrawl API field names).
109
+ * The Adapter maps `CrawlRequest` into these. `breadth` has no Firecrawl
110
+ * equivalent and is rejected by the Adapter; `proxy` is pinned to
111
+ * `"basic"` per tech-plan D9 (cost-safety — avoids the 5-credit enhanced
112
+ * proxy) and nests under `scrapeOptions` (crawl/search nest scrape fields;
113
+ * `/scrape` takes `proxy` top-level). `scrapeOptions` carries the same
114
+ * fields as `/scrape`.
115
+ */
116
+ export interface FirecrawlCrawlParams {
117
+ readonly maxDepth?: number;
118
+ readonly limit?: number;
119
+ readonly includePaths?: readonly string[];
120
+ readonly excludePaths?: readonly string[];
121
+ readonly scrapeOptions: {
122
+ readonly formats: readonly string[];
123
+ readonly proxy: "basic";
124
+ };
125
+ }
126
+ /** Result of POST /v2/crawl — `{ success, id, url }`. */
127
+ export interface FirecrawlCrawlCreateResult {
128
+ readonly id: string;
129
+ }
130
+ /** Poll status values Firecrawl returns for GET /v2/crawl/{id}. */
131
+ export type FirecrawlCrawlStatus = "scraping" | "completed" | "failed" | "not_found";
132
+ /**
133
+ * Structured poll result. `status:"not_found"` is returned (not thrown)
134
+ * for HTTP 404 so the Adapter can drop a stale state file and create a
135
+ * fresh job. A `success:false` envelope is treated as a job failure
136
+ * (`status:"failed"`).
137
+ */
138
+ export interface FirecrawlCrawlPollResult {
139
+ readonly status: FirecrawlCrawlStatus;
140
+ /** Pages collected so far — present once the job is `completed`. */
141
+ readonly data?: readonly unknown[];
142
+ /** Pagination cursor for large completed sets; absent when exhausted. */
143
+ readonly next?: string;
144
+ }
145
+ /** One entry from GET /v2/crawl/active — used for reclaim-on-miss. */
146
+ export interface FirecrawlActiveCrawl {
147
+ readonly id: string;
148
+ readonly url?: string;
149
+ readonly created_at?: string;
150
+ readonly options?: unknown;
151
+ }
152
+ /**
153
+ * Perform ONE POST against Firecrawl /v2/crawl (zero-retry is enforced by
154
+ * shared execution, not here). Returns the structured create result
155
+ * `{ id }`. The dual-check applies: a 200 with `{success:false}` is a
156
+ * business error.
157
+ */
158
+ export declare function createFirecrawlCrawl(apiKey: string, url: string, params: FirecrawlCrawlParams, deps?: FirecrawlTransportDeps): Promise<FirecrawlCrawlCreateResult>;
159
+ /**
160
+ * Perform ONE GET against Firecrawl /v2/crawl/{id}. No retry. A 404 is NOT
161
+ * a terminal transport error: it means the server-side job disappeared, so
162
+ * the Adapter can drop the stale state file and create a fresh job. Returns
163
+ * a structured poll result. A `success:false` envelope or `status:"failed"`
164
+ * maps to `status:"failed"` so the Adapter handles job failure uniformly.
165
+ */
166
+ export declare function pollFirecrawlCrawl(apiKey: string, id: string, deps?: FirecrawlTransportDeps): Promise<FirecrawlCrawlPollResult>;
167
+ /**
168
+ * Perform ONE GET against Firecrawl /v2/crawl/active (reclaim-on-miss).
169
+ * Returns the active-job entries. The dual-check applies.
170
+ */
171
+ export declare function listActiveFirecrawlCrawls(apiKey: string, deps?: FirecrawlTransportDeps): Promise<FirecrawlActiveCrawl[]>;
172
+ /**
173
+ * Perform ONE GET against a Firecrawl crawl pagination `next` URL (large
174
+ * completed sets). `next` may be absolute or relative; relative URLs are
175
+ * resolved against {@link BASE_URL}. Returns `{ data?, next? }`. The
176
+ * dual-check applies.
177
+ */
178
+ export declare function fetchFirecrawlCrawlNext(apiKey: string, next: string, deps?: FirecrawlTransportDeps): Promise<{
179
+ readonly data?: readonly unknown[];
180
+ readonly next?: string;
181
+ }>;
182
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/providers/firecrawl/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,426 @@
1
+ /**
2
+ * Firecrawl direct HTTP transport (firecrawl tech-plan §1, D3).
3
+ *
4
+ * Performs direct POSTs against the Firecrawl v2 REST endpoints with an
5
+ * `Authorization: Bearer fc-<key>` header. There is NO internal retry —
6
+ * shared execution owns retry policy. Fetch and timer are injectable for
7
+ * tests.
8
+ *
9
+ * Mirrors `providers/tavily/client.ts` in structure, with one
10
+ * Firecrawl-specific difference: the **error-envelope dual-check**.
11
+ * Firecrawl returns HTTP 200 with `{ success: false }` for some business
12
+ * errors (investigation §1.2), so the transport checks BOTH
13
+ * `response.ok` and `body.success === false` after parsing.
14
+ *
15
+ * Boundary rules (ARCHITECTURE.md §2):
16
+ * - May import Adapter-local config and normalized errors.
17
+ * - May import `ProviderQuotaFetch` from `providers/types.ts`.
18
+ * - Must NOT import command presentation, capability contracts, or
19
+ * another Provider's Adapter.
20
+ * - Must NOT perform response field normalization — the Adapter owns
21
+ * that. This module declares Provider-native request-body types only
22
+ * (Firecrawl API field names); it does not import SearchControls or
23
+ * any capability contract.
24
+ */
25
+ import { createRequire } from "node:module";
26
+ import { ApiError, AuthError, NetworkError, TimeoutError } from "../../lib/errors.js";
27
+ const require = createRequire(import.meta.url);
28
+ const { version: VERSION } = require("../../../package.json");
29
+ const BASE_URL = "https://api.firecrawl.dev";
30
+ const SEARCH_PATH = "/v2/search";
31
+ const SCRAPE_PATH = "/v2/scrape";
32
+ const MAP_PATH = "/v2/map";
33
+ const DEFAULT_TIMEOUT_MS = 30000;
34
+ const USER_AGENT = `scoutline/${VERSION}`;
35
+ const TIMEOUT_HELP_TEXT = "Try again or increase timeout with FIRECRAWL_TIMEOUT env var";
36
+ function resolveTimeoutMs(env) {
37
+ const raw = parseInt(env.FIRECRAWL_TIMEOUT || String(DEFAULT_TIMEOUT_MS), 10);
38
+ return Number.isFinite(raw) && raw > 0 ? raw : DEFAULT_TIMEOUT_MS;
39
+ }
40
+ function isPlainObject(value) {
41
+ return typeof value === "object" && value !== null && !Array.isArray(value);
42
+ }
43
+ /**
44
+ * Layer 1 — HTTP-status mapping. Runs BEFORE the body is parsed; on a
45
+ * non-2xx response we discard the body and throw a typed error.
46
+ *
47
+ * Firecrawl uses HTTP-status for transport errors. 401/403 → AuthError;
48
+ * 408/504 → TimeoutError; 429 → rate-limit ApiError; 4xx/5xx → ApiError
49
+ * with the real status preserved so `isOperationRetryableError` classifies
50
+ * retry correctly (terminal 400/404/410/422; retryable 429/5xx). The
51
+ * transport never embeds credential material in any error message.
52
+ */
53
+ function mapStatusError(status, timeoutMs) {
54
+ if (status === 401 || status === 403) {
55
+ return new AuthError("Firecrawl authentication failed", "FIRECRAWL_API_KEY");
56
+ }
57
+ if (status === 408 || status === 504) {
58
+ return new TimeoutError(timeoutMs, TIMEOUT_HELP_TEXT);
59
+ }
60
+ return new ApiError("Firecrawl request failed", status);
61
+ }
62
+ function normalizeTransportError(err, timeoutMs) {
63
+ if (err instanceof AuthError || err instanceof ApiError || err instanceof TimeoutError) {
64
+ return err;
65
+ }
66
+ if (err instanceof Error) {
67
+ if (err.name === "AbortError") {
68
+ return new TimeoutError(timeoutMs, TIMEOUT_HELP_TEXT);
69
+ }
70
+ const lower = err.message.toLowerCase();
71
+ if (lower.includes("fetch") ||
72
+ lower.includes("econnrefused") ||
73
+ lower.includes("econnreset") ||
74
+ lower.includes("enotfound") ||
75
+ lower.includes("network")) {
76
+ return new NetworkError("Firecrawl network error");
77
+ }
78
+ }
79
+ return new ApiError("Firecrawl request failed", 500);
80
+ }
81
+ /**
82
+ * Core POST. Sends the JSON body, maps a non-2xx status, parses the
83
+ * response, and applies the **error-envelope dual-check**: Firecrawl
84
+ * returns HTTP 200 with `{ success: false }` for some business errors,
85
+ * so a parsed body that signals failure throws a terminal `ApiError`
86
+ * (422 — business errors are not retried).
87
+ */
88
+ async function postFirecrawlJson(apiKey, path, body, deps, endpointLabel) {
89
+ const f = deps.fetch ?? fetch;
90
+ const setT = deps.setTimeout ?? setTimeout;
91
+ const clearT = deps.clearTimeout ?? clearTimeout;
92
+ const env = deps.env ?? process.env;
93
+ const timeoutMs = resolveTimeoutMs(env);
94
+ const url = `${BASE_URL}${path}`;
95
+ const controller = new AbortController();
96
+ const timeoutId = setT(() => controller.abort(), timeoutMs);
97
+ try {
98
+ const res = await f(url, {
99
+ method: "POST",
100
+ headers: {
101
+ Authorization: `Bearer ${apiKey}`,
102
+ "Content-Type": "application/json",
103
+ "User-Agent": USER_AGENT,
104
+ },
105
+ body: JSON.stringify(body),
106
+ signal: controller.signal,
107
+ });
108
+ clearT(timeoutId);
109
+ if (!res.ok) {
110
+ await res.text().catch(() => { });
111
+ throw mapStatusError(res.status, timeoutMs);
112
+ }
113
+ let parsed;
114
+ try {
115
+ parsed = await res.json();
116
+ }
117
+ catch {
118
+ throw new ApiError(`Firecrawl ${endpointLabel} returned a malformed response`, 500);
119
+ }
120
+ // Dual-check: 200 with { success: false } is a business error.
121
+ if (isPlainObject(parsed) && parsed.success === false) {
122
+ throw new ApiError(`Firecrawl ${endpointLabel} request failed`, 422);
123
+ }
124
+ return parsed;
125
+ }
126
+ catch (err) {
127
+ clearT(timeoutId);
128
+ throw normalizeTransportError(err, timeoutMs);
129
+ }
130
+ finally {
131
+ controller.abort();
132
+ }
133
+ }
134
+ /**
135
+ * Perform ONE POST against the Firecrawl /v2/search endpoint. No retry;
136
+ * no response body in public errors. Returns the parsed JSON body (raw;
137
+ * the Adapter post-processes into normalized search sources).
138
+ *
139
+ * `params` carries Firecrawl-native API fields already mapped from
140
+ * `SearchControls` by the Adapter.
141
+ */
142
+ export async function fetchFirecrawlSearch(apiKey, query, params, deps = {}) {
143
+ const body = { query };
144
+ if (params) {
145
+ if (params.sources !== undefined) {
146
+ body.sources = params.sources.map((s) => ({ type: s.type }));
147
+ }
148
+ if (params.includeDomains !== undefined) {
149
+ body.includeDomains = [...params.includeDomains];
150
+ }
151
+ if (params.tbs !== undefined) {
152
+ body.tbs = params.tbs;
153
+ }
154
+ if (params.scrapeOptions !== undefined) {
155
+ body.scrapeOptions = { formats: [...params.scrapeOptions.formats] };
156
+ }
157
+ }
158
+ return postFirecrawlJson(apiKey, SEARCH_PATH, body, deps, "search");
159
+ }
160
+ /**
161
+ * Perform ONE POST against the Firecrawl /v2/scrape endpoint. No retry;
162
+ * no response body in public errors. Returns the parsed JSON body (raw;
163
+ * the Adapter post-processes into a normalized ReaderFetchResult).
164
+ *
165
+ * `url` is a single URL; `params` carries the format + image/proxy options
166
+ * already mapped from the Reader request by the Adapter.
167
+ */
168
+ export async function fetchFirecrawlScrape(apiKey, url, params, deps = {}) {
169
+ const body = {
170
+ url,
171
+ formats: [...params.formats],
172
+ proxy: params.proxy,
173
+ };
174
+ if (params.removeBase64Images !== undefined) {
175
+ body.removeBase64Images = params.removeBase64Images;
176
+ }
177
+ return postFirecrawlJson(apiKey, SCRAPE_PATH, body, deps, "scrape");
178
+ }
179
+ /**
180
+ * Perform ONE POST against the Firecrawl /v2/map endpoint. No retry; no
181
+ * response body in public errors. Returns the parsed JSON body (raw; the
182
+ * Adapter post-processes into a normalized MapResult).
183
+ *
184
+ * `params` carries Firecrawl-native API fields already mapped from
185
+ * `MapRequest` by the Adapter. The /v2/map response is
186
+ * `{ success, links: string[] }`.
187
+ */
188
+ export async function fetchFirecrawlMap(apiKey, url, params, deps = {}) {
189
+ const body = { url };
190
+ if (params) {
191
+ if (params.limit !== undefined) {
192
+ body.limit = params.limit;
193
+ }
194
+ if (params.search !== undefined) {
195
+ body.search = params.search;
196
+ }
197
+ }
198
+ return postFirecrawlJson(apiKey, MAP_PATH, body, deps, "map");
199
+ }
200
+ /**
201
+ * Perform ONE GET against Firecrawl /v2/team/credit-usage. No retry; no
202
+ * response body in public errors. Returns the parsed JSON body (raw; the
203
+ * quota Adapter normalizes into a `QuotaCategory`). The dual-check applies.
204
+ */
205
+ export async function fetchFirecrawlCreditUsage(apiKey, deps = {}) {
206
+ return getFirecrawlJson(apiKey, CREDIT_USAGE_PATH, deps, "credit-usage");
207
+ }
208
+ // ---------------------------------------------------------------------------
209
+ // Async crawl — create / poll / list-active (tech-plan D2)
210
+ // ---------------------------------------------------------------------------
211
+ const CRAWL_PATH = "/v2/crawl";
212
+ const CRAWL_ACTIVE_PATH = "/v2/crawl/active";
213
+ const CREDIT_USAGE_PATH = "/v2/team/credit-usage";
214
+ /**
215
+ * Perform ONE POST against Firecrawl /v2/crawl (zero-retry is enforced by
216
+ * shared execution, not here). Returns the structured create result
217
+ * `{ id }`. The dual-check applies: a 200 with `{success:false}` is a
218
+ * business error.
219
+ */
220
+ export async function createFirecrawlCrawl(apiKey, url, params, deps = {}) {
221
+ const body = { url };
222
+ if (params.maxDepth !== undefined)
223
+ body.maxDepth = params.maxDepth;
224
+ if (params.limit !== undefined)
225
+ body.limit = params.limit;
226
+ if (params.includePaths !== undefined)
227
+ body.includePaths = [...params.includePaths];
228
+ if (params.excludePaths !== undefined)
229
+ body.excludePaths = [...params.excludePaths];
230
+ body.scrapeOptions = {
231
+ formats: [...params.scrapeOptions.formats],
232
+ proxy: params.scrapeOptions.proxy,
233
+ };
234
+ const raw = (await postFirecrawlJson(apiKey, CRAWL_PATH, body, deps, "crawl"));
235
+ if (!isPlainObject(raw)) {
236
+ throw new ApiError("Firecrawl crawl returned a malformed response", 500);
237
+ }
238
+ const id = raw.id;
239
+ if (typeof id !== "string" || id.length === 0) {
240
+ throw new ApiError("Firecrawl crawl returned a malformed response", 500);
241
+ }
242
+ return { id };
243
+ }
244
+ /**
245
+ * Perform ONE GET against Firecrawl /v2/crawl/{id}. No retry. A 404 is NOT
246
+ * a terminal transport error: it means the server-side job disappeared, so
247
+ * the Adapter can drop the stale state file and create a fresh job. Returns
248
+ * a structured poll result. A `success:false` envelope or `status:"failed"`
249
+ * maps to `status:"failed"` so the Adapter handles job failure uniformly.
250
+ */
251
+ export async function pollFirecrawlCrawl(apiKey, id, deps = {}) {
252
+ const f = deps.fetch ?? fetch;
253
+ const setT = deps.setTimeout ?? setTimeout;
254
+ const clearT = deps.clearTimeout ?? clearTimeout;
255
+ const env = deps.env ?? process.env;
256
+ const timeoutMs = resolveTimeoutMs(env);
257
+ const url = `${BASE_URL}${CRAWL_PATH}/${encodeURIComponent(id)}`;
258
+ const controller = new AbortController();
259
+ const timeoutId = setT(() => controller.abort(), timeoutMs);
260
+ try {
261
+ let res;
262
+ try {
263
+ res = await f(url, {
264
+ method: "GET",
265
+ headers: { Authorization: `Bearer ${apiKey}`, "User-Agent": USER_AGENT },
266
+ signal: controller.signal,
267
+ });
268
+ clearT(timeoutId);
269
+ }
270
+ catch (err) {
271
+ clearT(timeoutId);
272
+ throw normalizeTransportError(err, timeoutMs);
273
+ }
274
+ if (res.status === 404) {
275
+ await res.text().catch(() => { });
276
+ return { status: "not_found" };
277
+ }
278
+ if (!res.ok) {
279
+ await res.text().catch(() => { });
280
+ throw mapStatusError(res.status, timeoutMs);
281
+ }
282
+ let parsed;
283
+ try {
284
+ parsed = await res.json();
285
+ }
286
+ catch {
287
+ throw new ApiError("Firecrawl crawl returned a malformed response", 500);
288
+ }
289
+ if (!isPlainObject(parsed)) {
290
+ throw new ApiError("Firecrawl crawl returned a malformed response", 500);
291
+ }
292
+ // A success:false envelope or an explicit failed status is a job
293
+ // failure (handled by the Adapter: drop state, throw ApiError 500).
294
+ const status = parsed.status;
295
+ if (parsed.success === false || status === "failed") {
296
+ return { status: "failed" };
297
+ }
298
+ if (status !== "scraping" && status !== "completed") {
299
+ throw new ApiError("Firecrawl crawl returned a malformed response", 500);
300
+ }
301
+ if (status !== "completed") {
302
+ return { status };
303
+ }
304
+ const data = parsed.data;
305
+ if (data !== undefined && !Array.isArray(data)) {
306
+ throw new ApiError("Firecrawl crawl returned a malformed response", 500);
307
+ }
308
+ const next = typeof parsed.next === "string" && parsed.next.length > 0 ? parsed.next : undefined;
309
+ return {
310
+ status,
311
+ ...(Array.isArray(data) ? { data } : {}),
312
+ ...(next !== undefined ? { next } : {}),
313
+ };
314
+ }
315
+ finally {
316
+ controller.abort();
317
+ }
318
+ }
319
+ /**
320
+ * Perform ONE GET against Firecrawl /v2/crawl/active (reclaim-on-miss).
321
+ * Returns the active-job entries. The dual-check applies.
322
+ */
323
+ export async function listActiveFirecrawlCrawls(apiKey, deps = {}) {
324
+ const raw = await getFirecrawlJson(apiKey, CRAWL_ACTIVE_PATH, deps, "crawl/active");
325
+ if (!isPlainObject(raw)) {
326
+ throw new ApiError("Firecrawl crawl/active returned a malformed response", 500);
327
+ }
328
+ // Live-confirmed shape (FC-06): { success, crawls: [...] } (not `data`).
329
+ const data = raw.crawls ?? raw.data;
330
+ if (!Array.isArray(data)) {
331
+ throw new ApiError("Firecrawl crawl/active returned a malformed response", 500);
332
+ }
333
+ const out = [];
334
+ for (const entry of data) {
335
+ if (!isPlainObject(entry)) {
336
+ throw new ApiError("Firecrawl crawl/active returned a malformed response", 500);
337
+ }
338
+ const id = entry.id;
339
+ if (typeof id !== "string" || id.length === 0) {
340
+ throw new ApiError("Firecrawl crawl/active returned a malformed response", 500);
341
+ }
342
+ out.push({
343
+ id,
344
+ ...(typeof entry.url === "string" ? { url: entry.url } : {}),
345
+ ...(typeof entry.created_at === "string" ? { created_at: entry.created_at } : {}),
346
+ ...(entry.options !== undefined ? { options: entry.options } : {}),
347
+ });
348
+ }
349
+ return out;
350
+ }
351
+ /**
352
+ * Perform ONE GET against a Firecrawl crawl pagination `next` URL (large
353
+ * completed sets). `next` may be absolute or relative; relative URLs are
354
+ * resolved against {@link BASE_URL}. Returns `{ data?, next? }`. The
355
+ * dual-check applies.
356
+ */
357
+ export async function fetchFirecrawlCrawlNext(apiKey, next, deps = {}) {
358
+ // Resolve the cursor to a path: parse absolute URLs to pathname+search
359
+ // (a cross-host cursor would otherwise be mangled by the BASE_URL
360
+ // prepend); relative cursors pass through unchanged.
361
+ let nextPath = next;
362
+ try {
363
+ const parsed = new URL(next, BASE_URL);
364
+ nextPath = parsed.pathname + parsed.search;
365
+ }
366
+ catch {
367
+ // not an absolute URL — use as-is
368
+ }
369
+ const raw = await getFirecrawlJson(apiKey, nextPath, deps, "crawl/next");
370
+ if (!isPlainObject(raw)) {
371
+ throw new ApiError("Firecrawl crawl/next returned a malformed response", 500);
372
+ }
373
+ const data = raw.data;
374
+ const result = {};
375
+ if (Array.isArray(data))
376
+ result.data = data;
377
+ if (typeof raw.next === "string" && raw.next.length > 0)
378
+ result.next = raw.next;
379
+ return result;
380
+ }
381
+ /**
382
+ * Core GET (mirrors postFirecrawlJson for GET verbs). Applies the same
383
+ * error-envelope dual-check: a 200 with `{success:false}` is a business
384
+ * error.
385
+ */
386
+ async function getFirecrawlJson(apiKey, path, deps, endpointLabel) {
387
+ const f = deps.fetch ?? fetch;
388
+ const setT = deps.setTimeout ?? setTimeout;
389
+ const clearT = deps.clearTimeout ?? clearTimeout;
390
+ const env = deps.env ?? process.env;
391
+ const timeoutMs = resolveTimeoutMs(env);
392
+ const url = `${BASE_URL}${path}`;
393
+ const controller = new AbortController();
394
+ const timeoutId = setT(() => controller.abort(), timeoutMs);
395
+ try {
396
+ const res = await f(url, {
397
+ method: "GET",
398
+ headers: { Authorization: `Bearer ${apiKey}`, "User-Agent": USER_AGENT },
399
+ signal: controller.signal,
400
+ });
401
+ clearT(timeoutId);
402
+ if (!res.ok) {
403
+ await res.text().catch(() => { });
404
+ throw mapStatusError(res.status, timeoutMs);
405
+ }
406
+ let parsed;
407
+ try {
408
+ parsed = await res.json();
409
+ }
410
+ catch {
411
+ throw new ApiError(`Firecrawl ${endpointLabel} returned a malformed response`, 500);
412
+ }
413
+ if (isPlainObject(parsed) && parsed.success === false) {
414
+ throw new ApiError(`Firecrawl ${endpointLabel} request failed`, 422);
415
+ }
416
+ return parsed;
417
+ }
418
+ catch (err) {
419
+ clearT(timeoutId);
420
+ throw normalizeTransportError(err, timeoutMs);
421
+ }
422
+ finally {
423
+ controller.abort();
424
+ }
425
+ }
426
+ //# sourceMappingURL=client.js.map