@enfyra/mcp-server 0.1.13 → 0.1.15

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 (71) hide show
  1. package/README.md +14 -1
  2. package/dist/index.d.ts +5 -0
  3. package/{src/index.mjs → dist/index.js} +8 -10
  4. package/dist/index.js.map +1 -0
  5. package/dist/lib/auth.d.ts +34 -0
  6. package/dist/lib/auth.js +161 -0
  7. package/dist/lib/auth.js.map +1 -0
  8. package/dist/lib/config-local.d.ts +1 -0
  9. package/dist/lib/config-local.js +719 -0
  10. package/dist/lib/config-local.js.map +1 -0
  11. package/dist/lib/extension-search-tools.d.ts +59 -0
  12. package/dist/lib/extension-search-tools.js +483 -0
  13. package/dist/lib/extension-search-tools.js.map +1 -0
  14. package/dist/lib/fetch.d.ts +28 -0
  15. package/dist/lib/fetch.js +106 -0
  16. package/dist/lib/fetch.js.map +1 -0
  17. package/dist/lib/mcp-examples.d.ts +99 -0
  18. package/dist/lib/mcp-examples.js +2285 -0
  19. package/dist/lib/mcp-examples.js.map +1 -0
  20. package/dist/lib/mcp-instructions.d.ts +11 -0
  21. package/dist/lib/mcp-instructions.js +78 -0
  22. package/dist/lib/mcp-instructions.js.map +1 -0
  23. package/dist/lib/mutation-guards.d.ts +33 -0
  24. package/dist/lib/mutation-guards.js +106 -0
  25. package/dist/lib/mutation-guards.js.map +1 -0
  26. package/dist/lib/platform-operation-tools.d.ts +12 -0
  27. package/dist/lib/platform-operation-tools.js +2304 -0
  28. package/dist/lib/platform-operation-tools.js.map +1 -0
  29. package/dist/lib/required-knowledge.d.ts +32 -0
  30. package/dist/lib/required-knowledge.js +181 -0
  31. package/dist/lib/required-knowledge.js.map +1 -0
  32. package/dist/lib/response-format.d.ts +7 -0
  33. package/dist/lib/response-format.js +179 -0
  34. package/dist/lib/response-format.js.map +1 -0
  35. package/dist/lib/route-guards.d.ts +1 -0
  36. package/dist/lib/route-guards.js +19 -0
  37. package/dist/lib/route-guards.js.map +1 -0
  38. package/dist/lib/route-permission-tools.d.ts +91 -0
  39. package/dist/lib/route-permission-tools.js +151 -0
  40. package/dist/lib/route-permission-tools.js.map +1 -0
  41. package/dist/lib/source-artifacts.d.ts +27 -0
  42. package/dist/lib/source-artifacts.js +82 -0
  43. package/dist/lib/source-artifacts.js.map +1 -0
  44. package/dist/lib/table-tools.d.ts +62 -0
  45. package/dist/lib/table-tools.js +774 -0
  46. package/dist/lib/table-tools.js.map +1 -0
  47. package/dist/lib/tool-routing.d.ts +297 -0
  48. package/dist/lib/tool-routing.js +585 -0
  49. package/dist/lib/tool-routing.js.map +1 -0
  50. package/dist/lib/types.d.ts +17 -0
  51. package/dist/lib/types.js +2 -0
  52. package/dist/lib/types.js.map +1 -0
  53. package/dist/mcp-server-entry.d.ts +4 -0
  54. package/dist/mcp-server-entry.js +2787 -0
  55. package/dist/mcp-server-entry.js.map +1 -0
  56. package/package.json +17 -10
  57. package/src/lib/auth.js +0 -179
  58. package/src/lib/config-local.mjs +0 -718
  59. package/src/lib/fetch.js +0 -111
  60. package/src/lib/mcp-examples.js +0 -2289
  61. package/src/lib/mcp-instructions.js +0 -80
  62. package/src/lib/mutation-guards.js +0 -118
  63. package/src/lib/platform-operation-tools.js +0 -2616
  64. package/src/lib/required-knowledge.js +0 -188
  65. package/src/lib/response-format.js +0 -187
  66. package/src/lib/route-guards.js +0 -24
  67. package/src/lib/route-permission-tools.js +0 -160
  68. package/src/lib/source-artifacts.js +0 -82
  69. package/src/lib/table-tools.js +0 -907
  70. package/src/lib/tool-routing.js +0 -589
  71. package/src/mcp-server-entry.mjs +0 -3177
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-local.js","sourceRoot":"","sources":["../../src/lib/config-local.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,KAAK,IAAI,KAAK,EAAE,MAAM,IAAI,MAAM,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAkC1C,MAAM,UAAU,GAAG,QAAQ,CAAC;AAC5B,MAAM,gBAAgB,GAAG,2BAA2B,CAAC;AACrD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,GAAG,CAAC;AACtF,MAAM,QAAQ,GAAG,UAAU,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC;AAC9E,MAAM,KAAK,GAAG;IACZ,IAAI,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK;IACrE,GAAG,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK;IACpE,IAAI,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK;IACtE,KAAK,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK;IACvE,OAAO,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK;IACzE,IAAI,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK;IACtE,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK;IACxE,SAAS,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK;IAC1E,OAAO,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK;CACzE,CAAC;AAEF,MAAM,OAAO,GAAyF;IACpG,KAAK,EAAE;QACL,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,sBAAsB;QAC5B,KAAK,EAAE,KAAK,CAAC,KAAK;KACnB;IACD,MAAM,EAAE;QACN,KAAK,EAAE,aAAa;QACpB,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,KAAK,CAAC,OAAO;KACrB;IACD,MAAM,EAAE;QACN,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,oBAAoB;QAC1B,KAAK,EAAE,KAAK,CAAC,IAAI;KAClB;IACD,MAAM,EAAE;QACN,KAAK,EAAE,mBAAmB;QAC1B,IAAI,EAAE,oBAAoB;QAC1B,KAAK,EAAE,KAAK,CAAC,IAAI;KAClB;IACD,WAAW,EAAE;QACX,KAAK,EAAE,aAAa;QACpB,IAAI,EAAE,2BAA2B;QACjC,KAAK,EAAE,KAAK,CAAC,MAAM;KACpB;CACF,CAAC;AAEF,SAAS,UAAU,CAAC,IAAiC;IACnD,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACpE,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACrE,OAAO,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAC1C,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,MAAM,IAAI,GAAG,KAA8C,CAAC;IAC5D,OAAO,IAAI,EAAE,IAAI,KAAK,WAAW,IAAI,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC,KAAK,WAAW,CAAC;AAC7E,CAAC;AAED,SAAS,aAAa;IACpB,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC5B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpB,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC;EAC9C,KAAK,CAAC,GAAG,CAAC,mDAAmD,CAAC;;EAE9D,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;;;EAGnB,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC;;;;;;;EAO/B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;;;;;;EAMrB,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC;;;;;;;;;;;;EAY9B,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC;;;;EAI9B,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;;;;;;;;;;CAUvB,CAAC,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,IAAc;IAC/B,MAAM,GAAG,GAAe;QACtB,MAAM,EAAE,SAAS;QACjB,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,KAAK;QACX,GAAG,EAAE,KAAK;QACV,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,IAAI;QACZ,WAAW,EAAE,IAAI;QACjB,cAAc,EAAE,KAAK;KACtB,CAAC;IACF,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,IAAI,eAAe,GAAG,KAAK,CAAC;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,MAAM,IAAI,GAAG,GAAG,EAAE;YAChB,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;YAC3D,CAAC,IAAI,CAAC,CAAC;YACP,OAAO,CAAC,CAAC;QACX,CAAC,CAAC;QACF,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;YAAE,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;aAC7C,IAAI,CAAC,KAAK,MAAM;YAAE,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;aAClC,IAAI,CAAC,KAAK,OAAO;YAAE,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC;aAClC,IAAI,CAAC,KAAK,YAAY;YAAE,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC;aAC5C,IAAI,CAAC,KAAK,WAAW;YAAE,GAAG,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;aAC3C,IAAI,CAAC,KAAK,WAAW,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;QAClF,CAAC;aACI,IAAI,CAAC,KAAK,aAAa,IAAI,CAAC,KAAK,IAAI;YAAE,GAAG,CAAC,QAAQ,GAAG,IAAI,EAAE,CAAC;aAC7D,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,YAAY,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YAC3E,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;QAC1E,CAAC;aACI,IAAI,CAAC,KAAK,eAAe,IAAI,CAAC,KAAK,eAAe,IAAI,CAAC,KAAK,UAAU;YAAE,UAAU,GAAG,IAAI,CAAC;aAC1F,IAAI,CAAC,KAAK,eAAe,IAAI,CAAC,KAAK,UAAU;YAAE,UAAU,GAAG,IAAI,CAAC;aACjE,IAAI,CAAC,KAAK,cAAc,IAAI,CAAC,KAAK,SAAS;YAAE,SAAS,GAAG,IAAI,CAAC;aAC9D,IAAI,CAAC,KAAK,eAAe,IAAI,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,WAAW;YAAE,UAAU,GAAG,IAAI,CAAC;aACtF,IAAI,CAAC,KAAK,oBAAoB,IAAI,CAAC,KAAK,eAAe;YAAE,eAAe,GAAG,IAAI,CAAC;;YAChF,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;IACjD,CAAC;IACD,GAAG,CAAC,cAAc,GAAG,UAAU,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,eAAe,CAAC;IAC5F,IAAI,GAAG,CAAC,cAAc,EAAE,CAAC;QACvB,GAAG,CAAC,MAAM,GAAG,UAAU,CAAC;QACxB,GAAG,CAAC,MAAM,GAAG,UAAU,CAAC;QACxB,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC;QACtB,GAAG,CAAC,MAAM,GAAG,UAAU,CAAC;QACxB,GAAG,CAAC,WAAW,GAAG,eAAe,CAAC;IACpC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAc,EAAE,QAAgB;IACxD,OAAO;QACL,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,CAAC,IAAI,EAAE,gBAAgB,CAAC;QAC9B,GAAG,EAAE;YACH,cAAc,EAAE,MAAM;YACtB,gBAAgB,EAAE,QAAQ;SAC3B;KACF,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,MAAe;IACtC,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC5D,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,OAAO,GAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC;AACtD,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAe;IAC7C,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAC3C,OAAO,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,MAAM,CAAC,CAAC,CAAC,2BAA2B,CAAC;AACxE,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAe;IAC7C,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,WAAW,CAAC,MAAe;IAClC,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAC3C,OAAO,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;AACjD,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAgB,EAAE,QAAqB;IACnE,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAC/D,IAAI,YAAY;QAAE,OAAO,eAAe,CAAC,YAAY,CAAC,CAAC;IACvD,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,QAAQ,CAAC,MAAM,CAAC;IACnE,IAAI,YAAY;QAAE,OAAO,sBAAsB,CAAC,YAAY,CAAC,CAAC;IAC9D,OAAO,uBAAuB,CAAC;AACjC,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,OAAe,EAAE,WAAwB;IACnE,IAAI,IAAI,GAA4C,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;IACvE,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACnE,IAAI,GAAG,EAAE,GAAG,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC/H,CAAC;IACH,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,CAAC,CAAC;IACnC,CAAC;IACD,IAAI,CAAC,UAAU,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,CAAC,EAAE,WAAW,EAAE,CAAC;IACpE,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7B,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtC,MAAM,SAAS,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACzE,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,OAAe,EAAE,WAAwB;IACzE,IAAI,IAAI,GAAyC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACjE,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACzC,IAAI,GAAG;gBACL,GAAG,MAAM;gBACT,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE;aAC3F,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,CAAC,CAAC;IACnC,CAAC;IACD,IAAI,CAAC,OAAO,GAAG;QACb,GAAG,IAAI,CAAC,OAAO;QACf,CAAC,UAAU,CAAC,EAAE;YACZ,IAAI,EAAE,OAAO;YACb,GAAG,WAAW;SACf;KACF,CAAC;IACF,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,MAAM,SAAS,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACzE,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAc,EAAE,QAAgB;IAC3D,OAAO;QACL,sBAAsB;QACtB,iBAAiB;QACjB,kBAAkB,gBAAgB,IAAI;QACtC,EAAE;QACF,0BAA0B;QAC1B,oBAAoB,UAAU,CAAC,MAAM,CAAC,EAAE;QACxC,sBAAsB,UAAU,CAAC,QAAQ,CAAC,EAAE;QAC5C,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,OAAe,EAAE,MAAc,EAAE,QAAgB;IAC/E,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,IAAI,GAAG,EAAE,CAAC;IAChB,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAClD,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACjC,IAAI,GAAG,OAAO,KAAK,oBAAoB,IAAI,OAAO,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;QACvF,CAAC;QACD,IAAI,CAAC,IAAI;YAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;IACzC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,OAAO,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACtH,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,MAAM,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3C,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,OAAe;IAC/C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QAC5C,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAClD,IAAI,MAAM,EAAE,CAAC;gBACX,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,wBAAwB,CAAC;gBACtD,SAAS;YACX,CAAC;YACD,IAAI,CAAC,KAAK;gBAAE,SAAS;YACrB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;YAC5D,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,IAAI,GAAG,KAAK,gBAAgB;gBAAE,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC;YACpD,IAAI,GAAG,KAAK,kBAAkB;gBAAE,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;QAC1D,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ;YAAE,OAAO,MAAM,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACP,KAAK;IACP,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY;IACtC,OAAO,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY;IACvC,OAAO,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY;IACvC,OAAO,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY;IACvC,OAAO,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAY;IAC5C,OAAO,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,aAAa,CAAC,MAAM,EAAE,IAAI;IACjC,IAAI,MAAM,KAAK,QAAQ;QAAE,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC1D,IAAI,MAAM,KAAK,QAAQ;QAAE,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC1D,IAAI,MAAM,KAAK,OAAO;QAAE,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACxD,IAAI,MAAM,KAAK,QAAQ;QAAE,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC1D,IAAI,MAAM,KAAK,aAAa;QAAE,OAAO,wBAAwB,CAAC,IAAI,CAAC,CAAC;IACpE,MAAM,IAAI,KAAK,CAAC,uBAAuB,MAAM,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,OAAe,EAAE,aAAuC;IACtF,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1B,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC;QAChD,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC3E,OAAO;gBACL,MAAM,EAAE,OAAO,CAAC,CAAC,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;gBACpE,QAAQ,EAAE,OAAO,CAAC,CAAC,gBAAgB,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE;aAC3E,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,KAAK;IACP,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,IAAY,EAAE,UAAmB,EAAE,UAAmB,EAAE,SAAkB,EAAE,UAAmB,EAAE,eAAwB;IAC5J,MAAM,KAAK,GAA+D,EAAE,CAAC;IAC7E,IAAI,UAAU;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;IACvF,IAAI,UAAU;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;IACvF,IAAI,CAAC,UAAU,IAAI,UAAU;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;IACtG,IAAI,UAAU;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IACpF,IAAI,eAAe;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,wBAAwB,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;IACjG,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;IACvB,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7C,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC9D,IAAI,GAAG;YAAE,OAAO,GAAG,CAAC;IACtB,CAAC;IACD,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;QACjE,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;IAC1B,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AACtC,CAAC;AAED,KAAK,UAAU,kBAAkB;IAC/B,MAAM,OAAO,GAAmB;QAC9B;YACE,MAAM,EAAE,OAAO;YACf,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE;SACxF;QACD;YACE,MAAM,EAAE,QAAQ;YAChB,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE;SACxF;QACD;YACE,MAAM,EAAE,QAAQ;YAChB,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE;SACxF;QACD;YACE,MAAM,EAAE,QAAQ;YAChB,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE;SACxF;QACD;YACE,MAAM,EAAE,aAAa;YACrB,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE;SACxF;QACD;YACE,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE;SACpF;KACF,CAAC;IACF,IAAI,KAAK,CAAC,UAAU,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACrC,OAAO,kBAAkB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAC7B,8CAA8C;UAC1C,2CAA2C;UAC3C,kCAAkC;UAClC,yCAAyC;UACzC,yCAAyC;UACzC,gDAAgD;UAChD,uBAAuB;UACvB,cAAc,CACnB,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACxB,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;IACjB,IAAI,IAAI,KAAK,EAAE,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;QAClE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IACtF,CAAC;IACD,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;QACrD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;IAC1F,CAAC;IACD,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;QAChE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;IAC1F,CAAC;IACD,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;QACtD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;IAC1F,CAAC;IACD,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QAClF,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;IAC1F,CAAC;IACD,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;QAC3C,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAC1F,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;AACtF,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,OAAuB,EAAE,YAAY,GAAG,CAAC;IACzE,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IACvE,IAAI,aAAa,GAAG,CAAC,CAAC;IAEtB,MAAM,YAAY,GAAG,CAAC,MAAoB,EAAE,MAAe,EAAE,EAAE;QAC7D,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzD,IAAI,MAAM,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC;YACtG,MAAM,WAAW,GAAG,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;YAC5E,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;YAC7J,OAAO,GAAG,MAAM,IAAI,SAAS,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;QACzD,CAAC;QAED,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,MAAmB,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnF,MAAM,WAAW,GAAG,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5E,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnE,OAAO,GAAG,MAAM,IAAI,SAAS,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;IACzD,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,CAAC,KAAK,CAAC,QAAQ,aAAa,UAAU,CAAC,CAAC;QAChD,CAAC;QACD,MAAM,KAAK,GAAG;YACZ,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE;YACtD,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,2CAA2C,CAAC,EAAE;YAC7E,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;YACd,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC;YAC3E,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;YACd,KAAK,CAAC,GAAG,CAAC,mEAAmE,CAAC;YAC9E,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,qDAAqD,CAAC,EAAE;SACxF,CAAC;QACF,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC;QAC7B,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC,CAAC;IAEF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;QAC3B,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YAClC,IAAI,CAAC,MAAM;gBAAE,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACrC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC5B,CAAC,CAAC;QACF,MAAM,MAAM,GAAG,GAAG,EAAE;YAClB,OAAO,EAAE,CAAC;YACV,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC,CAAC;QACF,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,MAAoB,EAAE,EAAE,EAAE;YAC1D,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;gBACjC,OAAO,EAAE,CAAC;gBACV,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACnB,MAAM,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;gBAC/B,OAAO;YACT,CAAC;YACD,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBACtB,QAAQ,GAAG,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;gBAC7D,MAAM,EAAE,CAAC;gBACT,OAAO;YACT,CAAC;YACD,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACxB,QAAQ,GAAG,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;gBAC7D,MAAM,EAAE,CAAC;gBACT,OAAO;YACT,CAAC;YACD,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAClD,MAAM,EAAE,CAAC;YACX,CAAC;QACH,CAAC,CAAC;QAEF,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC1B,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACvB,KAAK,CAAC,MAAM,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC1B,KAAK,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QACjC,MAAM,EAAE,CAAC;IACX,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,IAAgB,EAAE,QAAqB;IACjE,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7D,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC7B,IAAI,MAAM,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QACrC,OAAO,EAAE,MAAM,EAAE,sBAAsB,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC9D,CAAC;IAED,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9C,MAAM,CAAC,GAAG,KAAK,EAAE,GAAW,EAAE,EAAE;QAC9B,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;YAC/B,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC3D,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC3D,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,mBAAmB,KAAK,CAAC,GAAG,CAAC,IAAI,aAAa,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACvG,MAAM,GAAG,eAAe,CAAC,IAAI,IAAI,aAAa,CAAC,CAAC;IAClD,CAAC;IACD,MAAM,MAAM,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAE9C,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC;IACjG,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,eAAe,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,qDAAqD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACvG,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,oBAAoB,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7E,QAAQ,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC;IAClD,CAAC;IAED,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAC9B,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAgB,EAAE,QAAqB;IACpE,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC;IAC1F,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAC9B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAc;IACjD,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,aAAa,EAAE,CAAC;IACvC,MAAM,oBAAoB,GAAG,CAAC,KAAc,EAAE,EAAE;QAC9C,IAAI,aAAa,CAAC,KAAK,CAAC;YAAE,aAAa,EAAE,CAAC;IAC5C,CAAC,CAAC;IACF,MAAM,mBAAmB,GAAG,CAAC,KAAc,EAAE,EAAE;QAC7C,IAAI,aAAa,CAAC,KAAK,CAAC;YAAE,aAAa,EAAE,CAAC;QAC1C,MAAM,KAAK,CAAC;IACd,CAAC,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACjC,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,oBAAoB,CAAC,CAAC;IACzD,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC;IAEvD,IAAI,IAAgB,CAAC;IACrB,IAAI,CAAC;QACH,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;QAC9B,SAAS,EAAE,CAAC;QACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,OAAO;IACT,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,SAAS,EAAE,CAAC;QACZ,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC;IACnB,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC;IAE3D,IAAI,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC;IAC9B,IAAI,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC;IAC9B,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;IAC5B,IAAI,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC;IAC9B,IAAI,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC;IACxC,IAAI,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzD,MAAM,CAAC,GAAG,MAAM,kBAAkB,EAAE,CAAC;QACrC,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;QACvB,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;QACvB,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC;QACrB,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;QACvB,gBAAgB,GAAG,CAAC,CAAC,WAAW,CAAC;IACnC,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC;IAExH,IAAI,MAAM,CAAC;IACX,IAAI,QAAQ,CAAC;IACb,IAAI,CAAC;QACH,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACpD,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;YACzB,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACvD,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;YACzB,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAC/B,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,aAAa,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;IAED,MAAM,WAAW,GAAG,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,EAAE,CAAC;IAEnB,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,CAAC,GAAG,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACvC,MAAM,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,CAAC,GAAG,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACxC,MAAM,YAAY,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;IAC9C,CAAC;IACD,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,CAAC,GAAG,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACxC,MAAM,YAAY,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;IAC9C,CAAC;IACD,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,CAAC,GAAG,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACxC,MAAM,kBAAkB,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;IAC9C,CAAC;IACD,IAAI,gBAAgB,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,aAAa,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QAC7C,MAAM,YAAY,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC5H,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QAC1E,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC;IACzD,IAAI,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,oGAAoG,CAAC,CAAC;IACpH,CAAC;IACD,IAAI,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAC;IACrF,CAAC;IACD,IAAI,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,0FAA0F,CAAC,CAAC;IAC1G,CAAC;IACD,IAAI,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,iHAAiH,CAAC,CAAC;IACjI,CAAC;IACD,IAAI,eAAe,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,wGAAwG,CAAC,CAAC;IACxH,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,oEAAoE,CAAC,CAAC;IAClF,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,yEAAyE,CAAC,EAAE,CAAC,CAAC;IACpI,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAChC,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,oBAAoB,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC;AACxD,CAAC"}
@@ -0,0 +1,59 @@
1
+ export declare function searchExtensions(apiUrl: string, input: any): Promise<{
2
+ action: string;
3
+ query: string;
4
+ path: string;
5
+ type: any;
6
+ searched: {
7
+ extensions: number;
8
+ menus: number;
9
+ includeDisabled: boolean;
10
+ };
11
+ results: any[];
12
+ resultCount: number;
13
+ tokenBudget: {
14
+ estimatedOutputChars: number;
15
+ estimatedOutputTokens: number;
16
+ controls: {
17
+ maxResults: number;
18
+ snippetChars: number;
19
+ maxMatchesPerExtension: number;
20
+ includeSourceArtifact: boolean;
21
+ };
22
+ };
23
+ guidance: string[];
24
+ }>;
25
+ export declare function inspectExtensionLocation(apiUrl: string, input: any): Promise<{
26
+ action: string;
27
+ extension: {
28
+ id: any;
29
+ name: any;
30
+ extensionId: any;
31
+ type: any;
32
+ isEnabled: any;
33
+ version: any;
34
+ updatedAt: any;
35
+ description: any;
36
+ };
37
+ surface: string;
38
+ menu: {
39
+ id: any;
40
+ label: any;
41
+ path: any;
42
+ icon: any;
43
+ sidebarId: any;
44
+ parent: {
45
+ id: any;
46
+ label: any;
47
+ path: any;
48
+ };
49
+ };
50
+ source: {
51
+ tmpFile: string;
52
+ length: number;
53
+ sha256: string;
54
+ preview: string;
55
+ };
56
+ consumers: any[];
57
+ nextSteps: string[];
58
+ }>;
59
+ export declare function registerExtensionSearchTools(server: any, ENFYRA_API_URL: string): void;
@@ -0,0 +1,483 @@
1
+ import { z } from 'zod';
2
+ import { fetchAPI } from './fetch.js';
3
+ import { jsonContent } from './response-format.js';
4
+ import { writeSourceArtifact } from './source-artifacts.js';
5
+ const STOP_WORDS = new Set([
6
+ 'a',
7
+ 'an',
8
+ 'and',
9
+ 'are',
10
+ 'as',
11
+ 'at',
12
+ 'be',
13
+ 'but',
14
+ 'by',
15
+ 'for',
16
+ 'from',
17
+ 'in',
18
+ 'is',
19
+ 'it',
20
+ 'of',
21
+ 'on',
22
+ 'or',
23
+ 'the',
24
+ 'this',
25
+ 'to',
26
+ 'và',
27
+ 'la',
28
+ 'là',
29
+ 'cua',
30
+ 'của',
31
+ 'o',
32
+ 'ở',
33
+ 'cho',
34
+ 'nay',
35
+ 'này',
36
+ ]);
37
+ const EXTENSION_FIELDS = [
38
+ 'id',
39
+ '_id',
40
+ 'type',
41
+ 'name',
42
+ 'extensionId',
43
+ 'version',
44
+ 'isEnabled',
45
+ 'isSystem',
46
+ 'description',
47
+ 'updatedAt',
48
+ 'menu.id',
49
+ 'menu._id',
50
+ 'menu.label',
51
+ 'menu.path',
52
+ 'menu.icon',
53
+ 'menu.sidebar.id',
54
+ 'menu.sidebar._id',
55
+ 'code',
56
+ ].join(',');
57
+ const MENU_FIELDS_WITH_EXTENSION = [
58
+ 'id',
59
+ '_id',
60
+ 'label',
61
+ 'path',
62
+ 'icon',
63
+ 'type',
64
+ 'order',
65
+ 'isEnabled',
66
+ 'parent.id',
67
+ 'parent._id',
68
+ 'parent.label',
69
+ 'parent.path',
70
+ 'sidebar.id',
71
+ 'sidebar._id',
72
+ 'extension.id',
73
+ 'extension._id',
74
+ 'extension.type',
75
+ 'extension.name',
76
+ 'extension.extensionId',
77
+ 'extension.version',
78
+ 'extension.isEnabled',
79
+ 'extension.description',
80
+ 'extension.updatedAt',
81
+ ].join(',');
82
+ function getId(record) {
83
+ return record?.id ?? record?._id ?? null;
84
+ }
85
+ function unwrapData(result) {
86
+ if (Array.isArray(result?.data))
87
+ return result.data;
88
+ if (Array.isArray(result))
89
+ return result;
90
+ return [];
91
+ }
92
+ function normalizeText(value) {
93
+ return String(value ?? '')
94
+ .normalize('NFD')
95
+ .replace(/\p{Diacritic}/gu, '')
96
+ .replace(/\s+/g, ' ')
97
+ .toLowerCase();
98
+ }
99
+ function normalizePath(path) {
100
+ if (!path)
101
+ return '';
102
+ const trimmed = String(path).trim();
103
+ if (!trimmed)
104
+ return '';
105
+ return trimmed.startsWith('/') ? trimmed : `/${trimmed}`;
106
+ }
107
+ function filterQuery(filter) {
108
+ return encodeURIComponent(JSON.stringify(filter));
109
+ }
110
+ async function fetchAllExtensions(apiUrl, type) {
111
+ const filter = type ? `&filter=${filterQuery({ type: { _eq: type } })}` : '';
112
+ const result = await fetchAPI(apiUrl, `/enfyra_extension?limit=0&sort=type,name,id&fields=${encodeURIComponent(EXTENSION_FIELDS)}${filter}`);
113
+ return unwrapData(result);
114
+ }
115
+ async function fetchMenusWithExtensions(apiUrl) {
116
+ const result = await fetchAPI(apiUrl, `/enfyra_menu?limit=0&sort=order,label,path,id&fields=${encodeURIComponent(MENU_FIELDS_WITH_EXTENSION)}`);
117
+ return unwrapData(result);
118
+ }
119
+ function menuForExtension(extension, menus) {
120
+ const extensionId = String(getId(extension) ?? '');
121
+ const directMenu = extension.menu;
122
+ if (directMenu)
123
+ return directMenu;
124
+ if (!extensionId)
125
+ return null;
126
+ return menus.find((menu) => String(getId(menu.extension)) === extensionId) ?? null;
127
+ }
128
+ function surfaceFor(extension, menu) {
129
+ const type = extension.type || 'page';
130
+ if (type === 'page')
131
+ return menu?.path ? `page:${menu.path}` : 'page:(menu missing)';
132
+ if (type === 'global')
133
+ return 'global:shell';
134
+ if (type === 'widget')
135
+ return `widget:${getId(extension) ?? extension.name}`;
136
+ return String(type);
137
+ }
138
+ function splitSections(code) {
139
+ const sections = [];
140
+ const patterns = [
141
+ ['template', /<template\b[^>]*>[\s\S]*?<\/template>/i],
142
+ ['script', /<script\b[^>]*>[\s\S]*?<\/script>/i],
143
+ ['style', /<style\b[^>]*>[\s\S]*?<\/style>/i],
144
+ ];
145
+ for (const [section, pattern] of patterns) {
146
+ const match = pattern.exec(code);
147
+ if (match?.index !== undefined) {
148
+ sections.push({ section, start: match.index, end: match.index + match[0].length, text: match[0] });
149
+ }
150
+ }
151
+ if (!sections.length)
152
+ sections.push({ section: 'code', start: 0, end: code.length, text: code });
153
+ return sections;
154
+ }
155
+ function sectionAtOffset(sections, offset) {
156
+ return sections.find((item) => offset >= item.start && offset <= item.end)?.section ?? 'code';
157
+ }
158
+ function lineEntries(code) {
159
+ const lines = code.split('\n');
160
+ let offset = 0;
161
+ return lines.map((line, index) => {
162
+ const entry = { line, lineNumber: index + 1, offset };
163
+ offset += line.length + 1;
164
+ return entry;
165
+ });
166
+ }
167
+ function compactArtifact(artifact) {
168
+ return {
169
+ tmpFile: artifact.tmpFile,
170
+ length: artifact.length,
171
+ sha256: artifact.sha256,
172
+ };
173
+ }
174
+ function metadataMatches(extension, menu, terms, phrase, snippetChars) {
175
+ const fields = [
176
+ ['name', extension.name, 45],
177
+ ['description', extension.description, 25],
178
+ ['type', extension.type, 15],
179
+ ['extensionId', extension.extensionId, 25],
180
+ ['menu.label', menu?.label, 45],
181
+ ['menu.path', menu?.path, 50],
182
+ ['menu.icon', menu?.icon, 15],
183
+ ];
184
+ const matches = [];
185
+ for (const [field, value, weight] of fields) {
186
+ const text = normalizeText(value);
187
+ if (!text)
188
+ continue;
189
+ const hasPhrase = phrase && text.includes(phrase);
190
+ const termHits = terms.filter((term) => text.includes(term));
191
+ if (!hasPhrase && termHits.length === 0)
192
+ continue;
193
+ matches.push({
194
+ field,
195
+ score: weight + (hasPhrase ? 40 : 0) + termHits.length * 8,
196
+ reason: hasPhrase ? 'metadata phrase match' : `metadata term match: ${termHits.join(', ')}`,
197
+ snippet: String(value ?? '').slice(0, snippetChars),
198
+ });
199
+ }
200
+ return matches;
201
+ }
202
+ function codeMatches(code, terms, phrase, snippetChars, maxPerExtension) {
203
+ if (!code)
204
+ return [];
205
+ const minTermHits = phrase && terms.length >= 3 ? Math.min(2, terms.length) : 1;
206
+ const sections = splitSections(code);
207
+ const candidates = [];
208
+ const entries = lineEntries(code);
209
+ for (let index = 0; index < entries.length; index += 1) {
210
+ const windowEntries = entries.slice(index, Math.min(entries.length, index + 3));
211
+ const text = windowEntries.map((entry) => entry.line).join(' ');
212
+ const normalized = normalizeText(text);
213
+ const phraseHit = Boolean(phrase && normalized.includes(phrase));
214
+ const termHits = terms.filter((term) => normalized.includes(term));
215
+ const distinctHits = [...new Set(termHits)];
216
+ if (!phraseHit && distinctHits.length < minTermHits)
217
+ continue;
218
+ const section = sectionAtOffset(sections, entries[index].offset);
219
+ const score = (phraseHit ? 70 : 0)
220
+ + distinctHits.length * 18
221
+ + (section === 'template' ? 12 : section === 'script' ? 8 : 0);
222
+ candidates.push({
223
+ field: 'code',
224
+ section,
225
+ line: entries[index].lineNumber,
226
+ score,
227
+ reason: phraseHit ? 'source phrase match' : `source term match: ${distinctHits.join(', ')}`,
228
+ snippet: text.replace(/\s+/g, ' ').trim().slice(0, snippetChars),
229
+ });
230
+ }
231
+ return candidates
232
+ .sort((a, b) => b.score - a.score || (a.line ?? 0) - (b.line ?? 0))
233
+ .slice(0, maxPerExtension);
234
+ }
235
+ function summarizeExtension(extension, menu, matches, includeSourceArtifact, exactPathMatch = false) {
236
+ const id = getId(extension);
237
+ const code = typeof extension.code === 'string' ? extension.code : '';
238
+ return {
239
+ id,
240
+ name: extension.name,
241
+ type: extension.type,
242
+ isEnabled: extension.isEnabled,
243
+ version: extension.version,
244
+ updatedAt: extension.updatedAt,
245
+ surface: surfaceFor(extension, menu),
246
+ menu: menu ? {
247
+ id: getId(menu),
248
+ label: menu.label,
249
+ path: menu.path,
250
+ icon: menu.icon,
251
+ sidebarId: getId(menu.sidebar),
252
+ parent: menu.parent ? { id: getId(menu.parent), label: menu.parent.label, path: menu.parent.path } : null,
253
+ } : null,
254
+ exactPathMatch,
255
+ score: matches.reduce((sum, item) => sum + item.score, 0),
256
+ matches: matches
257
+ .sort((a, b) => b.score - a.score)
258
+ .slice(0, 4),
259
+ source: code
260
+ ? includeSourceArtifact
261
+ ? compactArtifact(writeSourceArtifact({ tableName: 'enfyra_extension', id: id ?? extension.name, fieldName: 'code', source: code }))
262
+ : { length: code.length }
263
+ : null,
264
+ };
265
+ }
266
+ export async function searchExtensions(apiUrl, input) {
267
+ const query = String(input.query ?? '').trim();
268
+ const path = normalizePath(input.path);
269
+ const type = input.type;
270
+ const maxResults = Math.min(Math.max(Number(input.maxResults ?? 4), 1), 25);
271
+ const snippetChars = Math.min(Math.max(Number(input.snippetChars ?? 180), 120), 600);
272
+ const maxMatchesPerExtension = Math.min(Math.max(Number(input.maxMatchesPerExtension ?? 2), 1), 8);
273
+ const includeDisabled = input.includeDisabled !== false;
274
+ const includeSourceArtifact = Boolean(input.includeSourceArtifact);
275
+ if (!query && !path && !type) {
276
+ throw new Error('Provide query, path, or type so extension search stays bounded.');
277
+ }
278
+ const [extensions, menus] = await Promise.all([
279
+ fetchAllExtensions(apiUrl, type),
280
+ fetchMenusWithExtensions(apiUrl),
281
+ ]);
282
+ const phrase = normalizeText(query || path);
283
+ const terms = normalizeText([query, path].filter(Boolean).join(' '))
284
+ .split(/[^a-z0-9_./:-]+/i)
285
+ .map((term) => term.trim())
286
+ .filter((term) => term.length >= 2 && !STOP_WORDS.has(term));
287
+ const results = [];
288
+ for (const extension of extensions) {
289
+ if (!includeDisabled && extension.isEnabled === false)
290
+ continue;
291
+ const menu = menuForExtension(extension, menus);
292
+ const exactPathMatch = Boolean(path && extension.type === 'page' && normalizePath(menu?.path) === path);
293
+ if (path && !query && !type && !exactPathMatch)
294
+ continue;
295
+ if (path && query && extension.type === 'page' && normalizePath(menu?.path) !== path)
296
+ continue;
297
+ const matches = [
298
+ ...metadataMatches(extension, menu, terms, phrase, snippetChars),
299
+ ...codeMatches(String(extension.code ?? ''), terms, phrase, snippetChars, maxMatchesPerExtension),
300
+ ];
301
+ if (exactPathMatch) {
302
+ matches.push({
303
+ field: 'menu.path',
304
+ score: 120,
305
+ reason: 'exact page path match',
306
+ snippet: String(menu?.path ?? '').slice(0, snippetChars),
307
+ });
308
+ }
309
+ if (matches.length > 0 || (type && !query && !path)) {
310
+ results.push(summarizeExtension(extension, menu, matches, includeSourceArtifact, exactPathMatch));
311
+ }
312
+ }
313
+ results.sort((a, b) => Number(b.exactPathMatch) - Number(a.exactPathMatch) || b.score - a.score || String(a.name).localeCompare(String(b.name)));
314
+ const limited = results.slice(0, maxResults);
315
+ const estimatedOutputChars = JSON.stringify(limited).length;
316
+ return {
317
+ action: 'extensions_searched',
318
+ query: query || null,
319
+ path: path || null,
320
+ type: type || null,
321
+ searched: {
322
+ extensions: extensions.length,
323
+ menus: menus.length,
324
+ includeDisabled,
325
+ },
326
+ results: limited,
327
+ resultCount: results.length,
328
+ tokenBudget: {
329
+ estimatedOutputChars,
330
+ estimatedOutputTokens: Math.ceil(estimatedOutputChars / 4),
331
+ controls: {
332
+ maxResults,
333
+ snippetChars,
334
+ maxMatchesPerExtension,
335
+ includeSourceArtifact,
336
+ },
337
+ },
338
+ guidance: [
339
+ 'Use path when the user points to an admin page route.',
340
+ 'Use type=global for shell/menu/account-panel notifications and type=widget for embeddable blocks.',
341
+ 'Open the source tmpFile only for the best candidate when snippets are not enough.',
342
+ ],
343
+ };
344
+ }
345
+ function escapeRegExp(value) {
346
+ return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
347
+ }
348
+ function hasWidgetConsumerReference(code, widget) {
349
+ const id = getId(widget);
350
+ const names = [widget.name, widget.extensionId].filter(Boolean).map(String);
351
+ const widgetComponentPattern = /<DynamicWidgetComponent\b[^>]*>/gi;
352
+ const tags = code.match(widgetComponentPattern) ?? [];
353
+ for (const tag of tags) {
354
+ if (id != null) {
355
+ const idPattern = new RegExp(`(?:^|\\s)(?::id|id)\\s*=\\s*["']?${escapeRegExp(String(id))}(?:["'\\s>]|$)`, 'i');
356
+ if (idPattern.test(tag))
357
+ return `DynamicWidgetComponent id ${id}`;
358
+ }
359
+ for (const name of names) {
360
+ const namePattern = new RegExp(`(?:^|\\s)(?:name|widget|widget-id|extension-id)\\s*=\\s*["']${escapeRegExp(name)}["']`, 'i');
361
+ if (namePattern.test(tag))
362
+ return `DynamicWidgetComponent reference ${name}`;
363
+ }
364
+ }
365
+ if (id != null) {
366
+ const loaderPattern = new RegExp(`loadWidgetExtension\\(\\s*["']?${escapeRegExp(String(id))}["']?\\s*\\)`, 'i');
367
+ if (loaderPattern.test(code))
368
+ return `loadWidgetExtension(${id})`;
369
+ }
370
+ return null;
371
+ }
372
+ export async function inspectExtensionLocation(apiUrl, input) {
373
+ const [extensions, menus] = await Promise.all([
374
+ fetchAllExtensions(apiUrl),
375
+ fetchMenusWithExtensions(apiUrl),
376
+ ]);
377
+ const wantedId = input.id == null ? null : String(input.id);
378
+ const wantedName = input.name == null ? null : normalizeText(input.name);
379
+ const wantedPath = normalizePath(input.path);
380
+ let extension = extensions.find((item) => {
381
+ const menu = menuForExtension(item, menus);
382
+ if (wantedId && String(getId(item)) === wantedId)
383
+ return true;
384
+ if (wantedName && normalizeText(item.name) === wantedName)
385
+ return true;
386
+ if (wantedPath && item.type === 'page' && normalizePath(menu?.path) === wantedPath)
387
+ return true;
388
+ return false;
389
+ });
390
+ if (!extension && input.query) {
391
+ const searched = await searchExtensions(apiUrl, { query: input.query, maxResults: 1, includeSourceArtifact: false });
392
+ const first = searched.results[0];
393
+ extension = first ? extensions.find((item) => String(getId(item)) === String(first.id)) : null;
394
+ }
395
+ if (!extension) {
396
+ throw new Error('Extension not found. Provide id, name, path, or a query that matches extension metadata/source.');
397
+ }
398
+ const menu = menuForExtension(extension, menus);
399
+ const id = getId(extension);
400
+ const code = String(extension.code ?? '');
401
+ const consumers = [];
402
+ if (extension.type === 'widget') {
403
+ for (const candidate of extensions) {
404
+ if (String(getId(candidate)) === String(id))
405
+ continue;
406
+ const candidateCode = String(candidate.code ?? '');
407
+ if (!candidateCode)
408
+ continue;
409
+ const hit = hasWidgetConsumerReference(candidateCode, extension);
410
+ if (!hit)
411
+ continue;
412
+ const candidateMenu = menuForExtension(candidate, menus);
413
+ consumers.push({
414
+ id: getId(candidate),
415
+ name: candidate.name,
416
+ type: candidate.type,
417
+ surface: surfaceFor(candidate, candidateMenu),
418
+ menu: candidateMenu ? { id: getId(candidateMenu), label: candidateMenu.label, path: candidateMenu.path } : null,
419
+ reason: hit,
420
+ });
421
+ }
422
+ }
423
+ const source = code
424
+ ? writeSourceArtifact({ tableName: 'enfyra_extension', id: id ?? extension.name, fieldName: 'code', source: code })
425
+ : null;
426
+ return {
427
+ action: 'extension_location_inspected',
428
+ extension: {
429
+ id,
430
+ name: extension.name,
431
+ extensionId: extension.extensionId,
432
+ type: extension.type,
433
+ isEnabled: extension.isEnabled,
434
+ version: extension.version,
435
+ updatedAt: extension.updatedAt,
436
+ description: extension.description,
437
+ },
438
+ surface: surfaceFor(extension, menu),
439
+ menu: menu ? {
440
+ id: getId(menu),
441
+ label: menu.label,
442
+ path: menu.path,
443
+ icon: menu.icon,
444
+ sidebarId: getId(menu.sidebar),
445
+ parent: menu.parent ? { id: getId(menu.parent), label: menu.parent.label, path: menu.parent.path } : null,
446
+ } : null,
447
+ source,
448
+ consumers,
449
+ nextSteps: [
450
+ 'Use update_extension_code with this extension id after editing the source.',
451
+ 'For page extension bugs, preserve menu.path/menu permission and update only extension code unless navigation itself is wrong.',
452
+ 'For widget bugs, inspect consumers before changing the widget contract.',
453
+ 'For global extension bugs, look for shell registry calls such as menu notifications, account panel entries, and global listeners.',
454
+ ],
455
+ };
456
+ }
457
+ export function registerExtensionSearchTools(server, ENFYRA_API_URL) {
458
+ server.tool('search_extensions', [
459
+ 'Find where an Enfyra admin UI element lives inside DB-backed extension records.',
460
+ 'Use this before editing when the user points to a button, block, label, icon, tab, menu chip, account-panel item, page route, widget, or global shell extension.',
461
+ 'Searches page, widget, and global extensions plus page menu coordinates, then returns ranked snippets instead of full source to save tokens.',
462
+ ].join(' '), {
463
+ query: z.string().optional().describe('Visible text, button label, block name, icon, component, class, handler, or code term to find.'),
464
+ path: z.string().optional().describe('Admin app page path, e.g. /cloud/hosts. Narrows page extensions by menu path.'),
465
+ type: z.enum(['page', 'widget', 'global']).optional().describe('Optional extension type filter. Use global for shell/menu/account-panel notifications.'),
466
+ includeDisabled: z.boolean().optional().default(true).describe('Include disabled extensions. Set false for current runtime-only search.'),
467
+ maxResults: z.number().int().min(1).max(25).optional().default(4).describe('Maximum ranked extension results. Keep small to save tokens.'),
468
+ snippetChars: z.number().int().min(120).max(600).optional().default(180).describe('Approximate snippet characters per source match.'),
469
+ maxMatchesPerExtension: z.number().int().min(1).max(8).optional().default(2).describe('Maximum source matches per extension.'),
470
+ includeSourceArtifact: z.boolean().optional().default(false).describe('Write matched extension source to /tmp and return tmpFile paths for candidates. Use only when snippets are insufficient.'),
471
+ }, async (input) => jsonContent(await searchExtensions(ENFYRA_API_URL, input)));
472
+ server.tool('inspect_extension_location', [
473
+ 'Inspect the exact location and editable source artifact for one DB-backed Enfyra extension.',
474
+ 'Use after search_extensions to open the best candidate, or directly with id/name/path.',
475
+ 'For widgets, also searches other extensions for likely consumers.',
476
+ ].join(' '), {
477
+ id: z.union([z.string(), z.number()]).optional().describe('Extension id.'),
478
+ name: z.string().optional().describe('Extension name.'),
479
+ path: z.string().optional().describe('Page menu path for page extensions.'),
480
+ query: z.string().optional().describe('Fallback search query when id/name/path is unknown.'),
481
+ }, async (input) => jsonContent(await inspectExtensionLocation(ENFYRA_API_URL, input)));
482
+ }
483
+ //# sourceMappingURL=extension-search-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extension-search-tools.js","sourceRoot":"","sources":["../../src/lib/extension-search-tools.ts"],"names":[],"mappings":"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"}