fodda-mcp 1.7.0 → 1.31.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 (106) hide show
  1. package/LICENSE +31 -0
  2. package/README.md +184 -24
  3. package/dist/a2aHandler.d.ts +20 -0
  4. package/dist/a2aHandler.d.ts.map +1 -0
  5. package/dist/a2aHandler.js +343 -0
  6. package/dist/a2aHandler.js.map +1 -0
  7. package/dist/agents/fodda-researcher/index.d.ts +38 -0
  8. package/dist/agents/fodda-researcher/index.d.ts.map +1 -0
  9. package/dist/agents/fodda-researcher/index.js +81 -0
  10. package/dist/agents/fodda-researcher/index.js.map +1 -0
  11. package/dist/agents/fodda-researcher/skills.d.ts +16 -0
  12. package/dist/agents/fodda-researcher/skills.d.ts.map +1 -0
  13. package/dist/agents/fodda-researcher/skills.js +163 -0
  14. package/dist/agents/fodda-researcher/skills.js.map +1 -0
  15. package/dist/brandTemplate.d.ts +14 -0
  16. package/dist/brandTemplate.d.ts.map +1 -0
  17. package/dist/brandTemplate.js +742 -0
  18. package/dist/brandTemplate.js.map +1 -0
  19. package/dist/catalogCache.d.ts +207 -0
  20. package/dist/catalogCache.d.ts.map +1 -0
  21. package/dist/catalogCache.js +837 -0
  22. package/dist/catalogCache.js.map +1 -0
  23. package/dist/editorialFill.d.ts +44 -0
  24. package/dist/editorialFill.d.ts.map +1 -0
  25. package/dist/editorialFill.js +377 -0
  26. package/dist/editorialFill.js.map +1 -0
  27. package/dist/enrichment.d.ts +74 -0
  28. package/dist/enrichment.d.ts.map +1 -0
  29. package/dist/enrichment.js +211 -0
  30. package/dist/enrichment.js.map +1 -0
  31. package/dist/errorHandling.d.ts +52 -0
  32. package/dist/errorHandling.d.ts.map +1 -0
  33. package/dist/errorHandling.js +338 -0
  34. package/dist/errorHandling.js.map +1 -0
  35. package/dist/index.d.ts +0 -1
  36. package/dist/index.js +672 -577
  37. package/dist/index.js.map +1 -1
  38. package/dist/pricingCache.d.ts +111 -0
  39. package/dist/pricingCache.d.ts.map +1 -0
  40. package/dist/pricingCache.js +454 -0
  41. package/dist/pricingCache.js.map +1 -0
  42. package/dist/queryCache.d.ts +25 -0
  43. package/dist/queryCache.d.ts.map +1 -0
  44. package/dist/queryCache.js +195 -0
  45. package/dist/queryCache.js.map +1 -0
  46. package/dist/searchTemplate.d.ts +16 -0
  47. package/dist/searchTemplate.d.ts.map +1 -0
  48. package/dist/searchTemplate.js +318 -0
  49. package/dist/searchTemplate.js.map +1 -0
  50. package/dist/sessionTracker.d.ts +39 -0
  51. package/dist/sessionTracker.d.ts.map +1 -0
  52. package/dist/sessionTracker.js +187 -0
  53. package/dist/sessionTracker.js.map +1 -0
  54. package/dist/skillClient.d.ts +142 -0
  55. package/dist/skillClient.d.ts.map +1 -0
  56. package/dist/skillClient.js +256 -0
  57. package/dist/skillClient.js.map +1 -0
  58. package/dist/svgVisuals.d.ts +77 -0
  59. package/dist/svgVisuals.d.ts.map +1 -0
  60. package/dist/svgVisuals.js +323 -0
  61. package/dist/svgVisuals.js.map +1 -0
  62. package/dist/systemPrompt.d.ts +26 -0
  63. package/dist/systemPrompt.d.ts.map +1 -0
  64. package/dist/systemPrompt.js +574 -0
  65. package/dist/systemPrompt.js.map +1 -0
  66. package/dist/test-waverunner-response.d.ts +2 -0
  67. package/dist/test-waverunner-response.d.ts.map +1 -0
  68. package/dist/test-waverunner-response.js +20 -0
  69. package/dist/test-waverunner-response.js.map +1 -0
  70. package/dist/test_analyst.d.ts +2 -0
  71. package/dist/test_analyst.d.ts.map +1 -0
  72. package/dist/test_analyst.js +39 -0
  73. package/dist/test_analyst.js.map +1 -0
  74. package/dist/test_analyst_local.d.ts +2 -0
  75. package/dist/test_analyst_local.d.ts.map +1 -0
  76. package/dist/test_analyst_local.js +51 -0
  77. package/dist/test_analyst_local.js.map +1 -0
  78. package/dist/test_live_mcp.js +1 -1
  79. package/dist/test_skills.d.ts +9 -0
  80. package/dist/test_skills.d.ts.map +1 -0
  81. package/dist/test_skills.js +267 -0
  82. package/dist/test_skills.js.map +1 -0
  83. package/dist/toolHandlers.d.ts +15 -0
  84. package/dist/toolHandlers.d.ts.map +1 -0
  85. package/dist/toolHandlers.js +2986 -0
  86. package/dist/toolHandlers.js.map +1 -0
  87. package/dist/tools.d.ts +78 -3
  88. package/dist/tools.d.ts.map +1 -1
  89. package/dist/tools.js +85 -292
  90. package/dist/tools.js.map +1 -1
  91. package/dist/trialTracker.d.ts +58 -0
  92. package/dist/trialTracker.d.ts.map +1 -0
  93. package/dist/trialTracker.js +179 -0
  94. package/dist/trialTracker.js.map +1 -0
  95. package/dist/types.d.ts +1 -0
  96. package/dist/types.d.ts.map +1 -1
  97. package/dist/verify_hmac.js +1 -1
  98. package/dist/verify_hmac.js.map +1 -1
  99. package/dist/verify_tools_endpoint.js +5 -5
  100. package/dist/verify_tools_endpoint.js.map +1 -1
  101. package/dist/widgetShell.d.ts +15 -0
  102. package/dist/widgetShell.d.ts.map +1 -0
  103. package/dist/widgetShell.js +151 -0
  104. package/dist/widgetShell.js.map +1 -0
  105. package/package.json +8 -4
  106. package/server.json +13 -4
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAKjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEjC,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,4BAA4B;AAC5B,wFAAwF;AACxF,0FAA0F;AAC1F,2FAA2F;AAC3F,oFAAoF;AACpF,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,MAAW,EAAE,EAAE;IAC7C,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,MAAM,EAAE,KAAK,IAAI,MAAM,EAAE,OAAO,IAAI,MAAM,CAAC,CAAC;AAC1G,CAAC,CAAC,CAAC;AACH,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,GAAQ,EAAE,EAAE;IACzC,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,OAAO,IAAI,GAAG,CAAC,CAAC;AAChG,CAAC,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,sBAAsB,CAAC;AAEzE,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;AACtB,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;AAE1C,uCAAuC;AACvC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IACvB,GAAG,CAAC,SAAS,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;IAClD,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,4BAA4B,CAAC,CAAC;IAC5E,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,yFAAyF,CAAC,CAAC;IACzI,GAAG,CAAC,SAAS,CAAC,+BAA+B,EAAE,gBAAgB,CAAC,CAAC;IACjE,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IAC3D,IAAI,EAAE,CAAC;AACX,CAAC,CAAC,CAAC;AAEH,sEAAsE;AACtE,GAAG,CAAC,GAAG,CAAC,uCAAuC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;IAC3D,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,kEAAkE,EAAE,CAAC,CAAC;AACxG,CAAC,CAAC,CAAC;AACH,GAAG,CAAC,GAAG,CAAC,6CAA6C,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;IACjE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC,CAAC;AAC5D,CAAC,CAAC,CAAC;AACH,GAAG,CAAC,GAAG,CAAC,yCAAyC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;IAC7D,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC,CAAC;AAC5D,CAAC,CAAC,CAAC;AACH,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;IAChC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC,CAAC;AAC5D,CAAC,CAAC,CAAC;AAEH,8EAA8E;AAC9E,6DAA6D;AAC7D,8EAA8E;AAE9E,MAAM,WAAW,GAAG,IAAI,GAAG,EAA+C,CAAC;AAC3E,MAAM,aAAa,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa;AAEnD,SAAS,WAAW,CAAC,IAAY;IAC7B,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IAC/B,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACrD,OAAO,EAAE,CAAC;AACd,CAAC;AAED,6DAA6D;AAC7D,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IAChC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC7C,IAAI,CAAC,KAAK;QAAE,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;IACzG,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAC;IAC1D,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;IAC3C,kDAAkD;IAClD,GAAG,CAAC,IAAI,CAAC,+OAA+O,KAAK,CAAC,IAAI,gBAAgB,CAAC,CAAC;AACxR,CAAC,CAAC,CAAC;AAEH,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAE9E,MAAM,UAAU,GAAG,IAAI,GAAG,EAAyC,CAAC;AACpE,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;AACjD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;AACjD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;AACjD,iFAAiF;AACjF,iFAAiF;AACjF,MAAM,WAAW,GAAG,IAAI,GAAG,EAA4F,CAAC;AACxH,gFAAgF;AAChF,4EAA4E;AAC5E,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAC;AAEnD,8EAA8E;AAC9E,qDAAqD;AACrD,8EAA8E;AAE9E,MAAM,mBAAmB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,YAAY;AACvD,MAAM,kBAAkB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAE,SAAS;AAErD,WAAW,CAAC,GAAG,EAAE;IACb,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,wBAAwB;IACxB,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC;QACpC,IAAI,GAAG,GAAG,KAAK,CAAC,SAAS,GAAG,aAAa;YAAE,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACtE,CAAC;IACD,uDAAuD;IACvD,KAAK,MAAM,CAAC,GAAG,CAAC,IAAI,UAAU,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,OAAO,IAAI,GAAG,GAAG,OAAO,GAAG,kBAAkB,EAAE,CAAC;YAChD,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvB,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC3B,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC3B,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC3B,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACxB,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC;IACL,CAAC;AACL,CAAC,EAAE,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC;AAEhC,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAE9E,2DAA2D;AAC3D,uEAAuE;AACvE,kEAAkE;AAClE,SAAS,aAAa;IAClB,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IACxE,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QACxB,mEAAmE;QACnE,2DAA2D;QAC3D,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,IAAI,CAAC;QACpD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QACzD,IAAI,CAAC,OAAO;YAAE,OAAO,CAAC,KAAK,CAAC,wEAAwE,CAAC,CAAC;QACtG,OAAO,WAAW,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,OAAO,IAAI,SAAS,IAAI,MAAM,YAAY,CAAC;IAC1F,CAAC;IACD,OAAO,oBAAoB,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;AAC1D,CAAC;AAED,8EAA8E;AAC9E,sDAAsD;AACtD,8EAA8E;AAE9E;;;GAGG;AACH,KAAK,UAAU,YAAY,CACvB,MAAgC,EAChC,IAAY,EACZ,MAAc,EACd,MAAc,EACd,IAAU,EACV,SAAkB,EAClB,MAAe,EACf,GAAY;IAEZ,oBAAoB;IACpB,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5C,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IAEnC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;IACxC,MAAM,OAAO,GAA2B;QACpC,WAAW,EAAE,MAAM;QACnB,mBAAmB,EAAE,SAAS;QAC9B,iBAAiB,EAAE,kBAAkB,EAAG,sEAAsE;QAC9G,cAAc,EAAE,kBAAkB;KACrC,CAAC;IACF,8FAA8F;IAC9F,IAAI,GAAG,EAAE,CAAC;QACN,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,GAAG,EAAE,CAAC;IAC/C,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC;IAClC,CAAC;IACD,IAAI,SAAS;QAAE,OAAO,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;IACnD,IAAI,MAAM;QAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC;IAE/C,wBAAwB;IACxB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAC5C,IAAI,MAAM,EAAE,CAAC;QACT,MAAM,OAAO,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,OAAO,CAAC,IAAI,IAAI;YAC7D,CAAC,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YACxC,CAAC,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC;QAC7B,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACpF,OAAO,CAAC,mBAAmB,CAAC,GAAG,SAAS,CAAC;IAC7C,CAAC;IAED,MAAM,GAAG,GAAG,GAAG,YAAY,GAAG,IAAI,EAAE,CAAC;IACrC,yDAAyD;IACzD,iGAAiG;IACjG,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IAC1E,MAAM,QAAQ,GAAG,MAAM,KAAK,KAAK;QAC7B,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC;QAC9D,CAAC,CAAC,MAAM,KAAK,OAAO;YACpB,CAAC,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC;YACtE,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAE1E,oBAAoB;IACpB,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE5C,iEAAiE;IACjE,6EAA6E;IAC7E,kFAAkF;IAClF,MAAM,kBAAkB,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,iBAAiB,CAAC,CAAC;IACjE,IAAI,kBAAkB,IAAI,QAAQ,CAAC,IAAI,IAAI,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3E,QAAQ,CAAC,IAAI,CAAC,eAAe,GAAG;YAC5B,OAAO,EAAE,kBAAkB,EAAG,0CAA0C;SAC3E,CAAC;QACF,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAChD,IAAI,GAAG;YAAE,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACnE,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;QACjE,IAAI,aAAa;YAAE,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,GAAG,QAAQ,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IAClG,CAAC;IAED,4CAA4C;IAC5C,gFAAgF;IAChF,gFAAgF;IAChF,+EAA+E;IAC/E,+EAA+E;IAC/E,yDAAyD;IACzD,MAAM,oBAAoB,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,sBAAsB,CAAC;WAChE,CAAC,QAAQ,CAAC,IAAI,IAAI,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC7G,IAAI,oBAAoB,KAAK,UAAU,EAAE,CAAC;QACtC,OAAO,CAAC,KAAK,CAAC,yCAAyC,MAAM,IAAI,IAAI,6HAA6H,CAAC,CAAC;IACxM,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,CAAC;AACzB,CAAC;AAED,8EAA8E;AAC9E,6DAA6D;AAC7D,8EAA8E;AAE9E;;;;GAIG;AACH,KAAK,UAAU,WAAW,CAAC,GAAW;IAClC,IAAI,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,YAAY,kBAAkB,EAAE;YAC5D,OAAO,EAAE,EAAE,eAAe,EAAE,UAAU,GAAG,EAAE,EAAE;YAC7C,OAAO,EAAE,KAAK;SACjB,CAAC,CAAC;QACH,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;QAC1B,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC,gBAAgB,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,cAAc,IAAI,EAAE,EAAE,CAAC;IACrH,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QACd,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;IAC7G,CAAC;AACL,CAAC;AAED,8EAA8E;AAC9E,2EAA2E;AAC3E,8EAA8E;AAE9E;;;;;;;;;;;;GAYG;AACH,KAAK,UAAU,iBAAiB,CAC5B,eAAqC,EACrC,SAAiB,EACjB,UAAkB,EAClB,MAAc,EACd,iBAAsB;IAEtB,0BAA0B;IAC1B,wFAAwF;IAExF,uCAAuC;IACvC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAC7C,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;IAC7F,CAAC;IACD,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;IACtD,MAAM,EAAE,GAAG,IAAI,WAAW,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAE/D,uCAAuC;IACvC,YAAY,CAAC,MAAM,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,EAAE;QAC3D,IAAI,EAAE,eAAe;QACrB,cAAc,EAAE,SAAS;KAC5B,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IAEpF,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,8EAA8E;AAC9E,2EAA2E;AAC3E,8EAA8E;AAE9E,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IAC/B,uDAAuD;IACvD,sEAAsE;IACtE,+DAA+D;IAC/D,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC3C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO,IAAI,EAAE,CAAC;IAEjD,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAC;IAC1D,GAAG,CAAC,IAAI,CAAC;;;;;;0CAM6B,WAAW;8CACP,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAyOjD,CAAC,CAAC;AACV,CAAC,CAAC,CAAC;AAEH,8EAA8E;AAC9E,wBAAwB;AACxB,8EAA8E;AAE9E,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;IAC/B,IAAI,CAAC;QACD,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAW,CAAC;QAC1D,IAAI,SAAwC,CAAC;QAE7C,wEAAwE;QACxE,oEAAoE;QACpE,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC/D,MAAM,GAAG,GAAI,GAAG,CAAC,KAAK,CAAC,GAAc;eAC7B,GAAG,CAAC,OAAO,CAAC,cAAc,CAAY;eACvC,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;eAC3E,EAAE,CAAC;QACV,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC;QAEpB,4DAA4D;QAC5D,uGAAuG;QACvG,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,KAAK,CAAC,OAAkB;eAClD,GAAG,CAAC,OAAO,CAAC,WAAW,CAAY;eACpC,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;eACrE,EAAE,CAAC,CAAC;QACX,MAAM,OAAO,GAAI,GAAG,CAAC,KAAK,CAAC,EAAa,IAAI,EAAE,CAAC;QAC/C,4FAA4F;QAC5F,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,KAAK,CAAC,OAAkB;eAC3D,GAAG,CAAC,OAAO,CAAC,WAAW,CAAY;eACpC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAI,GAAG,CAAC,KAAK,CAAC,MAAiB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAEpE,IAAI,SAAS,IAAI,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACzC,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC;QAC3C,CAAC;aAAM,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC7C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;YACtB,IAAI,IAAI,EAAE,MAAM,KAAK,YAAY,EAAE,CAAC;gBAChC,0EAA0E;gBAC1E,4EAA4E;gBAC5E,2CAA2C;gBAC3C,IAAI,OAAO,GAA4F,IAAI,CAAC;gBAC5G,IAAI,KAAK,EAAE,CAAC;oBACR,MAAM,CAAC,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC;oBACjC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;wBACX,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;4BACxB,OAAO,EAAE,KAAK;4BACd,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,0BAA0B,CAAC,CAAC,KAAK,IAAI,eAAe,EAAE,EAAE;4BACxF,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI;yBACvB,CAAC,CAAC;oBACP,CAAC;oBACD,OAAO,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,CAAC,gBAAgB,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;gBACnF,CAAC;gBACD,6EAA6E;gBAC7E,gFAAgF;gBAChF,wCAAwC;gBACxC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,EAAE,CAAC;gBAC7D,MAAM,iBAAiB,GAAG,KAAK;oBAC3B,CAAC,CAAE,CAAC,CAAC,CAAM,EAAE,CAAM,EAAE,EAAO,EAAE,CAAM,EAAE,CAAO,EAAE,CAAO,EAAE,EAAQ,EAAE,MAAY,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAyB;oBACjL,CAAC,CAAC,CAAC,MAAM;wBACL,CAAC,CAAE,CAAC,CAAC,CAAM,EAAE,CAAM,EAAE,CAAM,EAAE,CAAM,EAAE,CAAO,EAAE,CAAO,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAyB;wBACzH,CAAC,CAAC,YAAY,CAAC,CAAC;gBACxB,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,WAAW,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,IAAI,SAAS,CAAC,CAAC;gBACnJ,SAAS,GAAG,IAAI,6BAA6B,CAAC;oBAC1C,kBAAkB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE;oBAC7C,oBAAoB,EAAE,CAAC,GAAG,EAAE,EAAE;wBAC1B,OAAO,CAAC,KAAK,CAAC,oBAAoB,GAAG,EAAE,CAAC,CAAC;wBACzC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;wBAC/B,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;wBAChC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;wBAChC,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,0BAA0B;wBACjE,IAAI,MAAM;4BAAE,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;wBAC5C,IAAI,OAAO;4BAAE,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;oBAC/C,CAAC;iBACJ,CAAC,CAAC;gBACH,SAAS,CAAC,OAAO,GAAG,GAAG,EAAE;oBACrB,MAAM,GAAG,GAAI,SAAiB,CAAC,SAAS,CAAC;oBACzC,IAAI,GAAG,EAAE,CAAC;wBACN,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;wBACvB,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;wBAC3B,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;wBAC3B,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;wBAC3B,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;wBACxB,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,6BAA6B;oBAC/D,CAAC;gBACL,CAAC,CAAC;gBACF,MAAM,MAAM,CAAC,OAAO,CAAC,SAAgB,CAAC,CAAC;YAC3C,CAAC;iBAAM,CAAC;gBACJ,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBACxB,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,+BAA+B,EAAE;oBACjE,EAAE,EAAE,IAAI;iBACX,CAAC,CAAC;YACP,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACxB,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE;gBACrD,EAAE,EAAE,IAAI;aACX,CAAC,CAAC;QACP,CAAC;QAED,iEAAiE;QACjE,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC3C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACxC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,qBAAqB,CAAC,CAAC,CAAC,qCAAqC,CAAC;YACxG,MAAM,GAAG,GAAG,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,CAAC;YACnF,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;gBAClD,GAAG,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAW,CAAC;YAC9D,CAAC;iBAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;gBACxB,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAW,CAAC,CAAC;YACnE,CAAC;QACL,CAAC;QAED,MAAM,SAAU,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC/B,IAAI,CAAC,GAAG,CAAC,WAAW;YAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC;IACnF,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,uBAAuB;AACvB,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;IAC/B,MAAM,MAAM,GAAI,GAAG,CAAC,KAAK,CAAC,OAAkB,IAAI,EAAE,CAAC;IACnD,MAAM,OAAO,GAAI,GAAG,CAAC,KAAK,CAAC,EAAa,IAAI,EAAE,CAAC;IAC/C,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACjE,MAAM,MAAM,GAAI,GAAG,CAAC,KAAK,CAAC,OAAkB;WACpC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAY;WACpC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAI,GAAG,CAAC,KAAK,CAAC,MAAiB,IAAI,EAAE,CAAC;IAClD,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IACtC,MAAM,SAAS,GAAG,IAAI,kBAAkB,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAE3D,iFAAiF;IACjF,MAAM,iBAAiB,GAAG,MAAM;QAC5B,CAAC,CAAC,CAAC,CAAC,CAAM,EAAE,CAAM,EAAE,CAAM,EAAE,CAAM,EAAE,CAAO,EAAE,CAAO,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAwB;QACvH,CAAC,CAAC,YAAY,CAAC;IAEnB,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;IACpH,MAAM,MAAM,CAAC,OAAO,CAAC,SAAgB,CAAC,CAAC;IACvC,OAAO,CAAC,KAAK,CAAC,gBAAgB,SAAS,EAAE,CAAC,CAAC;AAC/C,CAAC,CAAC,CAAC;AAEH,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;IACrC,oCAAoC;IACpC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;AACzD,CAAC,CAAC,CAAC;AAEH,6EAA6E;AAC7E,MAAM,WAAW,GAAG,6EAA6E,CAAC;AAClG,MAAM,WAAW,GAAG,4EAA4E,CAAC;AAEjG,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5E,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE5E,oEAAoE;AACpE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;IACvB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IAC3C,GAAG,CAAC,IAAI,CAAC;;;0CAG6B,WAAW;8CACP,WAAW;;wBAEjC,kBAAkB;;;eAG3B,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC;AAEH,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC;AAExH,8EAA8E;AAC9E,yDAAyD;AACzD,8EAA8E;AAE9E,gBAAgB,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;AAEpC,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC;AAElD,qEAAqE;AACrE,OAAO,CAAC,GAAG,CAAC;IACR,gBAAgB,EAAE;IAClB,gBAAgB,EAAE;CACrB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;IACT,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,qBAAqB,kBAAkB,YAAY,IAAI,EAAE,CAAC,CAAC,CAAC;AACrG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;IACV,4DAA4D;IAC5D,OAAO,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;IACzE,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,qBAAqB,kBAAkB,YAAY,IAAI,kBAAkB,CAAC,CAAC,CAAC;AACrH,CAAC,CAAC,CAAC"}
@@ -0,0 +1,111 @@
1
+ /**
2
+ * Query Pricing Cache — provides fixed-price lookup per query type.
3
+ *
4
+ * Phase 1: Uses hardcoded pricing defaults (no Airtable dependency).
5
+ * Phase 2: Fetches from Airtable "Query Pricing" table, refreshes hourly.
6
+ *
7
+ * Follows the same fetch-and-cache pattern as catalogCache.ts.
8
+ *
9
+ * Pricing model:
10
+ * - API Call = the atomic billing unit (1 foddaRequest = 1 API call)
11
+ * - Query = MCP-level task (1 Query = N API calls, fixed per query type)
12
+ * - Plans are denominated in API calls
13
+ */
14
+ export interface QueryPricing {
15
+ queryTypeCode: string;
16
+ queryTypeName: string;
17
+ apiCallsCharged: number;
18
+ researchCalls: number;
19
+ overheadCalls: number;
20
+ mcpToolName: string;
21
+ meterInteractionType: string | null;
22
+ isActive: boolean;
23
+ includesSupplementals: boolean;
24
+ absorbsGeminiCost: boolean;
25
+ }
26
+ /**
27
+ * Initialize the pricing cache. Call once at server startup.
28
+ * Loads hardcoded defaults immediately, then attempts Airtable fetch if configured.
29
+ */
30
+ export declare function initPricingCache(): Promise<void>;
31
+ /**
32
+ * Get the API call price for a query type.
33
+ * Returns 0 if the query type is unknown or inactive.
34
+ */
35
+ export declare function getQueryPrice(queryTypeCode: string): number;
36
+ /**
37
+ * Get full pricing details for a query type.
38
+ * Returns null if not found.
39
+ */
40
+ export declare function getQueryPricing(queryTypeCode: string): QueryPricing | null;
41
+ /**
42
+ * Get the query type code for a given MCP tool name.
43
+ * Returns null if no matching query type is found.
44
+ *
45
+ * Note: Some tools map to multiple query types (e.g., deep_research_topic
46
+ * maps to both deep_research_light and deep_research_heavy).
47
+ * Use getQueryTypeForTool() for the default, or specify the exact code.
48
+ */
49
+ export declare function getQueryTypeForTool(toolName: string): string | null;
50
+ /**
51
+ * Get the meter interaction type for a query type.
52
+ * Used when calling POST /v1/research/meter.
53
+ */
54
+ export declare function getMeterInteractionType(queryTypeCode: string): string | null;
55
+ /**
56
+ * Get all active pricing entries.
57
+ * Useful for system prompt generation or debugging.
58
+ */
59
+ export declare function getAllPricing(): QueryPricing[];
60
+ /**
61
+ * Compact tool→cost summary for surfacing to the agent/user (system prompt,
62
+ * get_my_account). Sourced from the same pricing table so it never drifts.
63
+ * Only billable tools (cost > 0) with a real MCP tool name.
64
+ */
65
+ export declare function getToolCostSummary(): Array<{
66
+ tool: string;
67
+ name: string;
68
+ apiCalls: number;
69
+ }>;
70
+ /**
71
+ * Check if the pricing cache has been loaded (from either defaults or Airtable).
72
+ */
73
+ export declare function isPricingLoaded(): boolean;
74
+ /**
75
+ * Get cache metadata for debugging.
76
+ */
77
+ export declare function getPricingCacheInfo(): {
78
+ source: string;
79
+ count: number;
80
+ lastFetchedAt: number;
81
+ };
82
+ export interface ChargeQueryParams {
83
+ queryTypeCode: string;
84
+ apiKey: string;
85
+ userId: string;
86
+ query?: string;
87
+ graphsSearched?: string[];
88
+ /** When set, this is an anonymous SPT session — settle by charging the SPT, not credits. */
89
+ spt?: string | undefined;
90
+ /** foddaRequest function — injected from index.ts to avoid circular deps */
91
+ foddaRequest: (method: 'GET' | 'POST', path: string, apiKey: string, userId: string, body?: any, requestId?: string, source?: string, spt?: string) => Promise<any>;
92
+ }
93
+ export interface ChargeQueryResult {
94
+ charged: boolean;
95
+ apiCallsCharged: number;
96
+ apiCallsRemaining?: number;
97
+ error?: string;
98
+ }
99
+ /**
100
+ * Charge a fixed-price query fee via POST /v1/research/meter.
101
+ *
102
+ * Call this ONCE at the end of each query completion.
103
+ * The X-Fodda-Billing header on foddaRequest() prevents per-call billing,
104
+ * so this is the only debit that hits the user's account.
105
+ *
106
+ * For free query types (visual, admin) — returns immediately, no API call.
107
+ * For trial users — increments trial usage instead.
108
+ * For paid users — fires the meter call (fire-and-forget, non-blocking).
109
+ */
110
+ export declare function chargeQuery(params: ChargeQueryParams): Promise<ChargeQueryResult>;
111
+ //# sourceMappingURL=pricingCache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pricingCache.d.ts","sourceRoot":"","sources":["../src/pricingCache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAQH,MAAM,WAAW,YAAY;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,EAAE,OAAO,CAAC;IAClB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,iBAAiB,EAAE,OAAO,CAAC;CAC9B;AA2ND;;;GAGG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAyBtD;AA2DD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAI3D;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAE1E;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOnE;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG5E;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,YAAY,EAAE,CAE9C;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAI5F;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CAM9F;AAMD,MAAM,WAAW,iBAAiB;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,4FAA4F;IAC5F,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,4EAA4E;IAC5E,YAAY,EAAE,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CACvK;AAED,MAAM,WAAW,iBAAiB;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAgEvF"}
@@ -0,0 +1,454 @@
1
+ /**
2
+ * Query Pricing Cache — provides fixed-price lookup per query type.
3
+ *
4
+ * Phase 1: Uses hardcoded pricing defaults (no Airtable dependency).
5
+ * Phase 2: Fetches from Airtable "Query Pricing" table, refreshes hourly.
6
+ *
7
+ * Follows the same fetch-and-cache pattern as catalogCache.ts.
8
+ *
9
+ * Pricing model:
10
+ * - API Call = the atomic billing unit (1 foddaRequest = 1 API call)
11
+ * - Query = MCP-level task (1 Query = N API calls, fixed per query type)
12
+ * - Plans are denominated in API calls
13
+ */
14
+ import { randomUUID } from 'crypto';
15
+ // ---------------------------------------------------------------------------
16
+ // Hardcoded Defaults (used until Airtable table is created)
17
+ // ---------------------------------------------------------------------------
18
+ const DEFAULT_PRICING = [
19
+ {
20
+ queryTypeCode: 'topic_research',
21
+ queryTypeName: 'Topic Research',
22
+ apiCallsCharged: 15,
23
+ researchCalls: 8,
24
+ overheadCalls: 3,
25
+ mcpToolName: 'search_graph',
26
+ meterInteractionType: null,
27
+ isActive: true,
28
+ includesSupplementals: true,
29
+ absorbsGeminiCost: false,
30
+ },
31
+ {
32
+ queryTypeCode: 'brand_intelligence',
33
+ queryTypeName: 'Brand Intelligence Tracker',
34
+ apiCallsCharged: 20,
35
+ researchCalls: 10,
36
+ overheadCalls: 3,
37
+ mcpToolName: 'brand_tracker',
38
+ meterInteractionType: null,
39
+ isActive: true,
40
+ includesSupplementals: true,
41
+ absorbsGeminiCost: false,
42
+ },
43
+ {
44
+ queryTypeCode: 'weekly_tracker',
45
+ queryTypeName: 'Weekly Tracker',
46
+ apiCallsCharged: 20,
47
+ researchCalls: 12,
48
+ overheadCalls: 3,
49
+ mcpToolName: 'manage_scheduled_reports',
50
+ meterInteractionType: 'scheduled_analyst',
51
+ isActive: true,
52
+ includesSupplementals: true,
53
+ absorbsGeminiCost: false,
54
+ },
55
+ {
56
+ queryTypeCode: 'deep_research_light',
57
+ queryTypeName: 'Deep Research (Light)',
58
+ apiCallsCharged: 20,
59
+ researchCalls: 10,
60
+ overheadCalls: 3,
61
+ mcpToolName: 'deep_research_topic',
62
+ meterInteractionType: 'deep_dive_fast',
63
+ isActive: true,
64
+ includesSupplementals: true,
65
+ absorbsGeminiCost: true,
66
+ },
67
+ {
68
+ queryTypeCode: 'deep_research_heavy',
69
+ queryTypeName: 'Deep Research (Heavy)',
70
+ apiCallsCharged: 30,
71
+ researchCalls: 15,
72
+ overheadCalls: 3,
73
+ mcpToolName: 'deep_research_topic',
74
+ meterInteractionType: 'deep_dive_comprehensive',
75
+ isActive: true,
76
+ includesSupplementals: true,
77
+ absorbsGeminiCost: true,
78
+ },
79
+ {
80
+ queryTypeCode: 'brainstorm',
81
+ queryTypeName: 'Brainstorm',
82
+ apiCallsCharged: 15,
83
+ researchCalls: 8,
84
+ overheadCalls: 3,
85
+ mcpToolName: 'brainstorm_topic',
86
+ meterInteractionType: null,
87
+ isActive: true,
88
+ includesSupplementals: false,
89
+ absorbsGeminiCost: false,
90
+ },
91
+ {
92
+ queryTypeCode: 'url_as_prompt',
93
+ queryTypeName: 'URL as Prompt',
94
+ apiCallsCharged: 15,
95
+ researchCalls: 10,
96
+ overheadCalls: 3,
97
+ mcpToolName: 'read_url',
98
+ meterInteractionType: 'url_context',
99
+ isActive: true,
100
+ includesSupplementals: true,
101
+ absorbsGeminiCost: true,
102
+ },
103
+ {
104
+ queryTypeCode: 'upload_compare',
105
+ queryTypeName: 'Upload & Compare',
106
+ apiCallsCharged: 20,
107
+ researchCalls: 8,
108
+ overheadCalls: 3,
109
+ mcpToolName: 'search_graph',
110
+ meterInteractionType: null,
111
+ isActive: true,
112
+ includesSupplementals: true,
113
+ absorbsGeminiCost: false,
114
+ },
115
+ {
116
+ queryTypeCode: 'visual',
117
+ queryTypeName: 'Visual Intelligence',
118
+ apiCallsCharged: 0,
119
+ researchCalls: 0,
120
+ overheadCalls: 0,
121
+ mcpToolName: 'generate_visual',
122
+ meterInteractionType: null,
123
+ isActive: true,
124
+ includesSupplementals: false,
125
+ absorbsGeminiCost: false,
126
+ },
127
+ {
128
+ queryTypeCode: 'admin',
129
+ queryTypeName: 'Account / Admin',
130
+ apiCallsCharged: 0,
131
+ researchCalls: 0,
132
+ overheadCalls: 0,
133
+ mcpToolName: 'get_my_account',
134
+ meterInteractionType: null,
135
+ isActive: true,
136
+ includesSupplementals: false,
137
+ absorbsGeminiCost: false,
138
+ },
139
+ {
140
+ queryTypeCode: 'standalone_supplemental',
141
+ queryTypeName: 'Standalone Supplemental',
142
+ apiCallsCharged: 5,
143
+ researchCalls: 5, // fan-out to 3-8 sources, avg ~5
144
+ overheadCalls: 0,
145
+ mcpToolName: 'get_supplemental_context',
146
+ meterInteractionType: null,
147
+ isActive: true,
148
+ includesSupplementals: false,
149
+ absorbsGeminiCost: false,
150
+ },
151
+ {
152
+ queryTypeCode: 'standalone_evidence',
153
+ queryTypeName: 'Evidence Lookup',
154
+ apiCallsCharged: 5,
155
+ researchCalls: 1,
156
+ overheadCalls: 0,
157
+ mcpToolName: 'get_evidence',
158
+ meterInteractionType: null,
159
+ isActive: true,
160
+ includesSupplementals: false,
161
+ absorbsGeminiCost: false,
162
+ },
163
+ {
164
+ queryTypeCode: 'standalone_statistics',
165
+ queryTypeName: 'Statistics Search',
166
+ apiCallsCharged: 5,
167
+ researchCalls: 1,
168
+ overheadCalls: 0,
169
+ mcpToolName: 'search_statistics',
170
+ meterInteractionType: null,
171
+ isActive: true,
172
+ includesSupplementals: false,
173
+ absorbsGeminiCost: false,
174
+ },
175
+ {
176
+ queryTypeCode: 'research_chat',
177
+ queryTypeName: 'Research Chat',
178
+ apiCallsCharged: 3,
179
+ researchCalls: 2,
180
+ overheadCalls: 1,
181
+ mcpToolName: '', // App only
182
+ meterInteractionType: 'research_chat',
183
+ isActive: true,
184
+ includesSupplementals: false,
185
+ absorbsGeminiCost: false,
186
+ },
187
+ {
188
+ queryTypeCode: 'expert_agent',
189
+ queryTypeName: 'Expert Agent',
190
+ apiCallsCharged: 5,
191
+ researchCalls: 4,
192
+ overheadCalls: 1,
193
+ mcpToolName: '', // App only
194
+ meterInteractionType: 'expert_agent',
195
+ isActive: true,
196
+ includesSupplementals: false,
197
+ absorbsGeminiCost: false,
198
+ },
199
+ {
200
+ queryTypeCode: 'earnings_intelligence',
201
+ queryTypeName: 'Earnings Intelligence',
202
+ apiCallsCharged: 5,
203
+ researchCalls: 1,
204
+ overheadCalls: 0,
205
+ mcpToolName: 'get_earnings_intelligence',
206
+ meterInteractionType: null,
207
+ isActive: true,
208
+ includesSupplementals: false,
209
+ absorbsGeminiCost: false,
210
+ },
211
+ ];
212
+ // ---------------------------------------------------------------------------
213
+ // Cache State
214
+ // ---------------------------------------------------------------------------
215
+ let pricingMap = new Map();
216
+ let lastFetchedAt = 0;
217
+ let refreshInterval = null;
218
+ // Environment variable for Airtable direct fetch (Phase 2)
219
+ const AIRTABLE_API_KEY = process.env.AIRTABLE_API_KEY || '';
220
+ const AIRTABLE_BASE_ID = process.env.AIRTABLE_BASE_ID || 'appXUeeWN1uD9NdCW';
221
+ const PRICING_TABLE_ID = process.env.PRICING_TABLE_ID || 'tblHsMfyoW39LqCv8';
222
+ const PRICING_REFRESH_MS = 60 * 60 * 1000; // 1 hour
223
+ // ---------------------------------------------------------------------------
224
+ // Initialization
225
+ // ---------------------------------------------------------------------------
226
+ /**
227
+ * Initialize the pricing cache. Call once at server startup.
228
+ * Loads hardcoded defaults immediately, then attempts Airtable fetch if configured.
229
+ */
230
+ export async function initPricingCache() {
231
+ // Always start with hardcoded defaults
232
+ loadDefaults();
233
+ console.error(`[pricingCache] Loaded ${pricingMap.size} query types from hardcoded defaults`);
234
+ // If Airtable is configured, try to fetch live pricing
235
+ if (AIRTABLE_API_KEY && PRICING_TABLE_ID) {
236
+ try {
237
+ await fetchFromAirtable();
238
+ console.error(`[pricingCache] Overrode with ${pricingMap.size} query types from Airtable`);
239
+ }
240
+ catch (err) {
241
+ console.error(`[pricingCache] Airtable fetch failed — using hardcoded defaults: ${err.message}`);
242
+ }
243
+ // Refresh hourly in the background
244
+ if (refreshInterval)
245
+ clearInterval(refreshInterval);
246
+ refreshInterval = setInterval(async () => {
247
+ try {
248
+ await fetchFromAirtable();
249
+ console.error(`[pricingCache] Refreshed pricing from Airtable — ${pricingMap.size} query types`);
250
+ }
251
+ catch {
252
+ console.error('[pricingCache] Background refresh failed — keeping current cache');
253
+ }
254
+ }, PRICING_REFRESH_MS);
255
+ }
256
+ }
257
+ /**
258
+ * Load hardcoded defaults into the pricing map.
259
+ */
260
+ function loadDefaults() {
261
+ pricingMap.clear();
262
+ for (const p of DEFAULT_PRICING) {
263
+ pricingMap.set(p.queryTypeCode, p);
264
+ }
265
+ lastFetchedAt = Date.now();
266
+ }
267
+ /**
268
+ * Fetch pricing from Airtable Query Pricing table.
269
+ * Phase 2 — only runs if AIRTABLE_API_KEY and PRICING_TABLE_ID are set.
270
+ */
271
+ async function fetchFromAirtable() {
272
+ const axios = (await import('axios')).default;
273
+ const url = `https://api.airtable.com/v0/${AIRTABLE_BASE_ID}/${PRICING_TABLE_ID}`;
274
+ const response = await axios.get(url, {
275
+ headers: { 'Authorization': `Bearer ${AIRTABLE_API_KEY}` },
276
+ params: { 'filterByFormula': '{isActive}' },
277
+ timeout: 10000,
278
+ });
279
+ const records = response.data.records || [];
280
+ const newMap = new Map();
281
+ for (const record of records) {
282
+ const fields = record.fields;
283
+ const code = fields.queryTypeCode;
284
+ if (!code)
285
+ continue;
286
+ newMap.set(code, {
287
+ queryTypeCode: code,
288
+ queryTypeName: fields.queryTypeName || code,
289
+ apiCallsCharged: fields.apiCallsCharged ?? 0,
290
+ researchCalls: fields.researchCalls ?? 0,
291
+ overheadCalls: fields.overheadCalls ?? 0,
292
+ mcpToolName: fields.mcpToolName || '',
293
+ meterInteractionType: fields.meterInteractionType || null,
294
+ isActive: fields.isActive !== false,
295
+ includesSupplementals: fields.includesSupplementals === true,
296
+ absorbsGeminiCost: fields.absorbsGeminiCost === true,
297
+ });
298
+ }
299
+ if (newMap.size > 0) {
300
+ pricingMap = newMap;
301
+ lastFetchedAt = Date.now();
302
+ }
303
+ }
304
+ // ---------------------------------------------------------------------------
305
+ // Public API
306
+ // ---------------------------------------------------------------------------
307
+ /**
308
+ * Get the API call price for a query type.
309
+ * Returns 0 if the query type is unknown or inactive.
310
+ */
311
+ export function getQueryPrice(queryTypeCode) {
312
+ const pricing = pricingMap.get(queryTypeCode);
313
+ if (!pricing || !pricing.isActive)
314
+ return 0;
315
+ return pricing.apiCallsCharged;
316
+ }
317
+ /**
318
+ * Get full pricing details for a query type.
319
+ * Returns null if not found.
320
+ */
321
+ export function getQueryPricing(queryTypeCode) {
322
+ return pricingMap.get(queryTypeCode) || null;
323
+ }
324
+ /**
325
+ * Get the query type code for a given MCP tool name.
326
+ * Returns null if no matching query type is found.
327
+ *
328
+ * Note: Some tools map to multiple query types (e.g., deep_research_topic
329
+ * maps to both deep_research_light and deep_research_heavy).
330
+ * Use getQueryTypeForTool() for the default, or specify the exact code.
331
+ */
332
+ export function getQueryTypeForTool(toolName) {
333
+ for (const [code, pricing] of pricingMap.entries()) {
334
+ if (pricing.mcpToolName === toolName && pricing.isActive) {
335
+ return code;
336
+ }
337
+ }
338
+ return null;
339
+ }
340
+ /**
341
+ * Get the meter interaction type for a query type.
342
+ * Used when calling POST /v1/research/meter.
343
+ */
344
+ export function getMeterInteractionType(queryTypeCode) {
345
+ const pricing = pricingMap.get(queryTypeCode);
346
+ return pricing?.meterInteractionType || null;
347
+ }
348
+ /**
349
+ * Get all active pricing entries.
350
+ * Useful for system prompt generation or debugging.
351
+ */
352
+ export function getAllPricing() {
353
+ return Array.from(pricingMap.values()).filter(p => p.isActive);
354
+ }
355
+ /**
356
+ * Compact tool→cost summary for surfacing to the agent/user (system prompt,
357
+ * get_my_account). Sourced from the same pricing table so it never drifts.
358
+ * Only billable tools (cost > 0) with a real MCP tool name.
359
+ */
360
+ export function getToolCostSummary() {
361
+ return getAllPricing()
362
+ .filter(p => p.apiCallsCharged > 0 && !!p.mcpToolName)
363
+ .map(p => ({ tool: p.mcpToolName, name: p.queryTypeName, apiCalls: p.apiCallsCharged }));
364
+ }
365
+ /**
366
+ * Check if the pricing cache has been loaded (from either defaults or Airtable).
367
+ */
368
+ export function isPricingLoaded() {
369
+ return pricingMap.size > 0;
370
+ }
371
+ /**
372
+ * Get cache metadata for debugging.
373
+ */
374
+ export function getPricingCacheInfo() {
375
+ return {
376
+ source: (AIRTABLE_API_KEY && PRICING_TABLE_ID) ? 'airtable' : 'hardcoded',
377
+ count: pricingMap.size,
378
+ lastFetchedAt,
379
+ };
380
+ }
381
+ /**
382
+ * Charge a fixed-price query fee via POST /v1/research/meter.
383
+ *
384
+ * Call this ONCE at the end of each query completion.
385
+ * The X-Fodda-Billing header on foddaRequest() prevents per-call billing,
386
+ * so this is the only debit that hits the user's account.
387
+ *
388
+ * For free query types (visual, admin) — returns immediately, no API call.
389
+ * For trial users — increments trial usage instead.
390
+ * For paid users — fires the meter call (fire-and-forget, non-blocking).
391
+ */
392
+ export async function chargeQuery(params) {
393
+ const { queryTypeCode, apiKey, userId, query, graphsSearched, foddaRequest, spt } = params;
394
+ const price = getQueryPrice(queryTypeCode);
395
+ // Free query types — no charge
396
+ if (price === 0) {
397
+ return { charged: false, apiCallsCharged: 0 };
398
+ }
399
+ // All accounts (paid and new individual trial planCode 13) use the meter endpoint.
400
+ // sk_trial_ specific Firestore metering removed — those keys are retired.
401
+ const meterBody = {
402
+ type: queryTypeCode,
403
+ billable_units: price,
404
+ };
405
+ if (query)
406
+ meterBody.query = query;
407
+ if (graphsSearched?.length)
408
+ meterBody.graphs_searched = graphsSearched;
409
+ // Stable per-query idempotency key — reused across retries so the API's
410
+ // /v1/research/meter dedupe (keyed on X-Request-Id) never double-debits.
411
+ const meterRequestId = `meter_${queryTypeCode}_${randomUUID()}`;
412
+ const MAX_ATTEMPTS = 3;
413
+ let lastErr;
414
+ // Prefer the API's structured error code (SPT_REVOKED, SPT_INSUFFICIENT_FUNDS, etc.) over
415
+ // axios's generic "Request failed with status code 401" so the agent gets a real reason.
416
+ const cleanMeterError = (err) => {
417
+ const apiErr = err?.response?.data?.error;
418
+ return (typeof apiErr === 'object' ? (apiErr.code || apiErr.message) : apiErr)
419
+ || err?.response?.data?.message
420
+ || err?.message
421
+ || 'unknown error';
422
+ };
423
+ for (let attempt = 1; attempt <= MAX_ATTEMPTS; attempt++) {
424
+ try {
425
+ const result = await foddaRequest('POST', '/v1/research/meter', apiKey, userId, meterBody, meterRequestId, undefined, spt);
426
+ const remaining = result?.usage?.api_calls_remaining ?? result?.usage?.remaining;
427
+ if (result?.idempotent_replay) {
428
+ console.error(`[chargeQuery] Meter replay (already charged) for ${queryTypeCode} [${meterRequestId}].`);
429
+ }
430
+ else {
431
+ console.error(`[chargeQuery] Charged ${price} API calls for ${queryTypeCode} [${meterRequestId}]. Remaining: ${remaining ?? 'unknown'}`);
432
+ }
433
+ return { charged: true, apiCallsCharged: price, apiCallsRemaining: remaining };
434
+ }
435
+ catch (err) {
436
+ lastErr = err;
437
+ const cleanErr = cleanMeterError(err);
438
+ console.error(`[chargeQuery] Meter attempt ${attempt}/${MAX_ATTEMPTS} failed for ${queryTypeCode} [${meterRequestId}]: ${cleanErr}`);
439
+ // Client errors (revoked/expired/insufficient SPT, bad params) won't recover — fail fast.
440
+ const status = err?.response?.status;
441
+ if (status && status >= 400 && status < 500 && status !== 429) {
442
+ return { charged: false, apiCallsCharged: 0, error: cleanErr };
443
+ }
444
+ if (attempt < MAX_ATTEMPTS) {
445
+ await new Promise(resolve => setTimeout(resolve, 250 * attempt));
446
+ }
447
+ }
448
+ }
449
+ // All attempts failed — non-blocking (don't fail the user's query), but logged
450
+ // with the request id for reconciliation against the API's meter_idempotency records.
451
+ console.error(`[chargeQuery] METER LOST after ${MAX_ATTEMPTS} attempts for ${queryTypeCode} [${meterRequestId}] — query uncharged. Last error: ${cleanMeterError(lastErr)}`);
452
+ return { charged: false, apiCallsCharged: 0, error: cleanMeterError(lastErr) };
453
+ }
454
+ //# sourceMappingURL=pricingCache.js.map