@ampeco/public-api-mcp 0.2.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 (66) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +734 -0
  3. package/dist/build/flattener.d.ts +39 -0
  4. package/dist/build/flattener.d.ts.map +1 -0
  5. package/dist/build/flattener.js +193 -0
  6. package/dist/build/flattener.js.map +1 -0
  7. package/dist/build/index.d.ts +13 -0
  8. package/dist/build/index.d.ts.map +1 -0
  9. package/dist/build/index.js +175 -0
  10. package/dist/build/index.js.map +1 -0
  11. package/dist/build/optimizer.d.ts +32 -0
  12. package/dist/build/optimizer.d.ts.map +1 -0
  13. package/dist/build/optimizer.js +222 -0
  14. package/dist/build/optimizer.js.map +1 -0
  15. package/dist/build/parser.d.ts +35 -0
  16. package/dist/build/parser.d.ts.map +1 -0
  17. package/dist/build/parser.js +83 -0
  18. package/dist/build/parser.js.map +1 -0
  19. package/dist/build/types.d.ts +91 -0
  20. package/dist/build/types.d.ts.map +1 -0
  21. package/dist/build/types.js +5 -0
  22. package/dist/build/types.js.map +1 -0
  23. package/dist/build/zod-generator.d.ts +34 -0
  24. package/dist/build/zod-generator.d.ts.map +1 -0
  25. package/dist/build/zod-generator.js +317 -0
  26. package/dist/build/zod-generator.js.map +1 -0
  27. package/dist/cli/index.d.ts +7 -0
  28. package/dist/cli/index.d.ts.map +1 -0
  29. package/dist/cli/index.js +99 -0
  30. package/dist/cli/index.js.map +1 -0
  31. package/dist/generated/build-stats.json +7 -0
  32. package/dist/generated/endpoints.json +32181 -0
  33. package/dist/generated/schemas.d.ts +8157 -0
  34. package/dist/generated/schemas.d.ts.map +1 -0
  35. package/dist/generated/schemas.js +2726 -0
  36. package/dist/generated/schemas.js.map +1 -0
  37. package/dist/generated/schemas.ts +3171 -0
  38. package/dist/server/factory.d.ts +11 -0
  39. package/dist/server/factory.d.ts.map +1 -0
  40. package/dist/server/factory.js +450 -0
  41. package/dist/server/factory.js.map +1 -0
  42. package/dist/server/factory.test.d.ts +5 -0
  43. package/dist/server/factory.test.d.ts.map +1 -0
  44. package/dist/server/factory.test.js +77 -0
  45. package/dist/server/factory.test.js.map +1 -0
  46. package/dist/server/http.d.ts +10 -0
  47. package/dist/server/http.d.ts.map +1 -0
  48. package/dist/server/http.js +110 -0
  49. package/dist/server/http.js.map +1 -0
  50. package/dist/server/index.d.ts +8 -0
  51. package/dist/server/index.d.ts.map +1 -0
  52. package/dist/server/index.js +1502 -0
  53. package/dist/server/index.js.map +1 -0
  54. package/dist/server/loader.d.ts +10 -0
  55. package/dist/server/loader.d.ts.map +1 -0
  56. package/dist/server/loader.js +19 -0
  57. package/dist/server/loader.js.map +1 -0
  58. package/dist/server/prompts.d.ts +6 -0
  59. package/dist/server/prompts.d.ts.map +1 -0
  60. package/dist/server/prompts.js +462 -0
  61. package/dist/server/prompts.js.map +1 -0
  62. package/dist/server/stdio.d.ts +10 -0
  63. package/dist/server/stdio.d.ts.map +1 -0
  64. package/dist/server/stdio.js +25 -0
  65. package/dist/server/stdio.js.map +1 -0
  66. package/package.json +60 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,wBAAwB,EACxB,sBAAsB,EACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,KAAK,MAAM,YAAY,CAAC;AAK/B,wCAAwC;AACxC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC;;GAEG;AACH,SAAS,aAAa;IACpB,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,EAAE,6BAA6B,CAAC,CAAC;IACrE,MAAM,OAAO,GAAG,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACrD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAgB,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,SAAsB,EAAE,WAAmB,EAAE,QAAgB;IACjF,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B;QACE,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,OAAO;KACjB,EACD;QACE,YAAY,EAAE;YACZ,SAAS,EAAE,EAAE;YACb,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,EAAE;SACZ;QACD,YAAY,EAAE,sCAAsC,SAAS,CAAC,IAAI,CAAC,KAAK,UAAU,SAAS,CAAC,IAAI,CAAC,OAAO;;aAEjG,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM;;cAEpD,QAAQ;;;;;;;;;;;;;;;;;4EAiBsD,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yDA+D3B;KACpD,CACF,CAAC;IAEF,kFAAkF;IAClF,sEAAsE;IAEtE,0DAA0D;IAC1D,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;QAEpE,wCAAwC;QACxC,MAAM,eAAe,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAErF,gDAAgD;QAChD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAClC,IAAI,aAAa,GAAG,CAAC,CAAC;QAEtB,KAAK,MAAM,QAAQ,IAAI,eAAe,EAAE,CAAC;YACvC,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9C,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACjD,CAAC;iBAAM,CAAC;gBACN,aAAa,EAAE,CAAC;YAClB,CAAC;QACH,CAAC;QAED,0BAA0B;QAC1B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QAExC,0DAA0D;QAC1D,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxB,CAAC;QAED,qCAAqC;QACrC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAC/B,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAC9C,GAAG,KAAK,UAAU;gBAChB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;gBAChC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,CAC1B,CAAC;YAEF,OAAO;gBACL,GAAG,EAAE,SAAS,GAAG,EAAE;gBACnB,IAAI,EAAE,GAAG;gBACT,WAAW,EAAE,GAAG,YAAY,CAAC,MAAM,YAAY,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,iBAAiB,GAAG,GAAG;gBAC1G,QAAQ,EAAE,kBAAkB;aAC7B,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,0BAA0B,SAAS,CAAC,MAAM,4BAA4B,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM,6BAA6B,QAAQ,IAAI,CAAC,CAAC;QAEhL,OAAO,EAAE,SAAS,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,sFAAsF;IACtF,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,yBAAyB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC3E,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;QAE/B,0EAA0E;QAC1E,kDAAkD;QAClD,MAAM,aAAa,GAAG,GAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACtD,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,EAAE,CAAC,CAAC;QAChD,CAAC;QAED,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAEnC,uEAAuE;QACvE,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;YACvB,MAAM,GAAG,GAAG,SAAS,CAAC;YAEtB,iCAAiC;YACjC,MAAM,eAAe,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YACrF,MAAM,eAAe,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CACjD,GAAG,KAAK,UAAU;gBAChB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;gBAChC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,CAC1B,CAAC;YAEF,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CAAC,+BAA+B,GAAG,EAAE,CAAC,CAAC;YACxD,CAAC;YAED,yCAAyC;YACzC,MAAM,WAAW,GAAG;gBAClB,GAAG;gBACH,KAAK,EAAE,eAAe,CAAC,MAAM;gBAC7B,SAAS,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBACnC,GAAG,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE;oBAC/C,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE;oBAC9B,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,WAAW,IAAI,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,EAAE;oBAC9D,WAAW,EAAE,CAAC,CAAC,WAAW;iBAC3B,CAAC,CAAC;aACJ,CAAC;YAEF,OAAO;gBACL,QAAQ,EAAE;oBACR;wBACE,GAAG;wBACH,QAAQ,EAAE,kBAAkB;wBAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;qBAC3C;iBACF;aACF,CAAC;QACJ,CAAC;QAED,kEAAkE;QAClE,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;YACvB,sCAAsC;YACtC,oDAAoD;YACpD,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;YACjD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,EAAE,CAAC,CAAC;YACpD,CAAC;YAED,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACxB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAEtB,6BAA6B;YAC7B,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,IAAI,CACvC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,WAAW,EAAE,CAC1E,CAAC;YAEF,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,uBAAuB,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;YAC3D,CAAC;YAED,8BAA8B;YAC9B,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CAAC,2BAA2B,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;YAC/D,CAAC;YAED,4CAA4C;YAC5C,OAAO;gBACL,QAAQ,EAAE;oBACR;wBACE,GAAG;wBACH,QAAQ,EAAE,kBAAkB;wBAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;qBACxC;iBACF;aACF,CAAC;QACJ,CAAC;QAED,uBAAuB;QACvB,MAAM,IAAI,KAAK,CAAC,6BAA6B,QAAQ,2BAA2B,CAAC,CAAC;IACpF,CAAC,CAAC,CAAC;IAEH,gCAAgC;IAChC,MAAM,CAAC,IAAI,CACT,aAAa,EACb,kRAAkR,QAAQ;;;;gXAIkF,EAC5W;QACE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;QAC5E,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;QACpG,WAAW,EAAE,CAAC,CAAC,UAAU,CACvB,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EACrE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAC9B,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;QAC5E,YAAY,EAAE,CAAC,CAAC,UAAU,CACxB,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EACrE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAC9B,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;QAC9E,IAAI,EAAE,CAAC,CAAC,UAAU,CAChB,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,EAC5E,CAAC,CAAC,GAAG,EAAE,CACR,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;QAC5E,OAAO,EAAE,CAAC,CAAC,UAAU,CACnB,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EACrE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CACjC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;KAC5D,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,MAAM,EACJ,QAAQ,EACR,MAAM,EACN,WAAW,GAAG,EAAE,EAChB,YAAY,GAAG,EAAE,EACjB,IAAI,EACJ,OAAO,GAAG,EAAE,GACb,GAAG,IAAI,CAAC;QAET,kCAAkC;QAClC,MAAM,WAAW,GAAG,SAAS,CAAC,SAAS,CAAC,IAAI,CAC1C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,WAAW,EAAE,CAC9E,CAAC;QAEF,IAAI,WAAW,EAAE,UAAU,EAAE,CAAC;YAC5B,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;4BACE,KAAK,EAAE,IAAI;4BACX,OAAO,EAAE,gDAAgD,MAAM,IAAI,QAAQ,EAAE;yBAC9E,EACD,IAAI,EACJ,CAAC,CACF;qBACF;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,yBAAyB;QACzB,IAAI,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC;QAEjD,0BAA0B;QAC1B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YACvD,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,GAAG,EAAE,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACnE,CAAC;QAED,uBAAuB;QACvB,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;aAC7C,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;aACxF,IAAI,CAAC,GAAG,CAAC,CAAC;QACb,IAAI,WAAW,EAAE,CAAC;YAChB,GAAG,IAAI,IAAI,WAAW,EAAE,CAAC;QAC3B,CAAC;QAED,4CAA4C;QAC5C,MAAM,cAAc,GAA2B;YAC7C,cAAc,EAAE,kBAAkB;YAClC,GAAG,OAAO;SACX,CAAC;QAEF,wDAAwD;QACxD,IAAI,WAAW,EAAE,CAAC;YAChB,cAAc,CAAC,eAAe,CAAC,GAAG,UAAU,WAAW,EAAE,CAAC;QAC5D,CAAC;QAED,kBAAkB;QAClB,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC;QAE9C,IAAI,CAAC;YACH,wBAAwB;YACxB,MAAM,YAAY,GAAQ;gBACxB,MAAM;gBACN,OAAO,EAAE,cAAc;aACxB,CAAC;YAEF,+DAA+D;YAC/D,IAAI,IAAI,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;gBAC5D,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC3C,CAAC;YAED,wBAAwB;YACxB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;YAEhD,iBAAiB;YACjB,MAAM,eAAe,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC9C,IAAI,YAAiB,CAAC;YACtB,IAAI,CAAC;gBACH,YAAY,GAAG,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACtE,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY,GAAG,eAAe,CAAC;YACjC,CAAC;YAED,mBAAmB;YACnB,OAAO,CAAC,GAAG,CAAC,kBAAkB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;YAExE,8CAA8C;YAC9C,MAAM,cAAc,GAAG;gBACrB,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBACvD,IAAI,EAAE,YAAY;aACnB,CAAC;YAEF,IAAI,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAE3D,4EAA4E;YAC5E,MAAM,mBAAmB,GAAG,KAAK,CAAC;YAClC,IAAI,YAAY,GAAG,KAAK,CAAC;YAEzB,IAAI,YAAY,CAAC,MAAM,GAAG,mBAAmB,EAAE,CAAC;gBAC9C,YAAY,GAAG,IAAI,CAAC;gBACpB,MAAM,cAAc,GAAG,YAAY,CAAC,MAAM,CAAC;gBAC3C,YAAY,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC;gBAE9D,2DAA2D;gBAC3D,MAAM,gBAAgB,GAAG,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBACxD,IAAI,gBAAgB,GAAG,mBAAmB,GAAG,GAAG,EAAE,CAAC;oBACjD,YAAY,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;gBAC7D,CAAC;gBAED,wBAAwB;gBACxB,YAAY,IAAI,gDAAgD,cAAc,8BAA8B,YAAY,CAAC,MAAM,mPAAmP,CAAC;YACrX,CAAC;YAED,MAAM,YAAY,GAAG;gBACnB,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,YAAY;qBACnB;iBACF;aACF,CAAC;YAEF,OAAO,CAAC,GAAG,CAAC,2CAA2C,YAAY,CAAC,MAAM,cAAc,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAE9H,6BAA6B;YAC7B,OAAO,YAAY,CAAC;QACtB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,OAAO,CAAC,KAAK,CAAC,eAAe,YAAY,EAAE,CAAC,CAAC;YAE7C,MAAM,WAAW,GAAG;gBAClB,KAAK,EAAE,IAAI;gBACX,OAAO,EAAE,YAAY;gBACrB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;aAC1D,CAAC;YAEF,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAErD,+BAA+B;YAC/B,MAAM,gBAAgB,GAAG,IAAI,CAAC;YAC9B,IAAI,SAAS,CAAC,MAAM,GAAG,gBAAgB,EAAE,CAAC;gBACxC,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,gBAAgB,CAAC,GAAG,mCAAmC,CAAC;YAC7F,CAAC;YAED,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,SAAS;qBAChB;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,wCAAwC;IACxC,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;QACnE,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,2BAA2B;oBACjC,WAAW,EAAE,mJAAmJ;oBAChK,SAAS,EAAE;wBACT;4BACE,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,iGAAiG;4BAC9G,QAAQ,EAAE,KAAK;yBAChB;wBACD;4BACE,IAAI,EAAE,WAAW;4BACjB,WAAW,EAAE,0FAA0F;4BACvG,QAAQ,EAAE,KAAK;yBAChB;qBACF;iBACF;gBACD;oBACE,IAAI,EAAE,yBAAyB;oBAC/B,WAAW,EAAE,oHAAoH;oBACjI,SAAS,EAAE,EAAE;iBACd;gBACD;oBACE,IAAI,EAAE,sBAAsB;oBAC5B,WAAW,EAAE,gEAAgE;oBAC7E,SAAS,EAAE;wBACT;4BACE,IAAI,EAAE,eAAe;4BACrB,WAAW,EAAE,2CAA2C;4BACxD,QAAQ,EAAE,KAAK;yBAChB;wBACD;4BACE,IAAI,EAAE,eAAe;4BACrB,WAAW,EAAE,2CAA2C;4BACxD,QAAQ,EAAE,KAAK;yBAChB;wBACD;4BACE,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,+CAA+C;4BAC5D,QAAQ,EAAE,KAAK;yBAChB;wBACD;4BACE,IAAI,EAAE,iBAAiB;4BACvB,WAAW,EAAE,gFAAgF;4BAC7F,QAAQ,EAAE,KAAK;yBAChB;qBACF;iBACF;gBACD;oBACE,IAAI,EAAE,sBAAsB;oBAC5B,WAAW,EAAE,uGAAuG;oBACpH,SAAS,EAAE;wBACT;4BACE,IAAI,EAAE,eAAe;4BACrB,WAAW,EAAE,6CAA6C;4BAC1D,QAAQ,EAAE,KAAK;yBAChB;wBACD;4BACE,IAAI,EAAE,MAAM;4BACZ,WAAW,EAAE,kIAAkI;4BAC/I,QAAQ,EAAE,KAAK;yBAChB;qBACF;iBACF;aACF;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QACxE,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;QACvC,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;QAE5C,QAAQ,UAAU,EAAE,CAAC;YACnB,KAAK,2BAA2B,CAAC,CAAC,CAAC;gBACjC,MAAM,MAAM,GAAG,IAAI,CAAC,MAA4B,CAAC;gBACjD,MAAM,SAAS,GAAG,IAAI,CAAC,SAA+B,CAAC;gBAEvD,IAAI,gBAAgB,GAAG,EAAE,CAAC;gBAC1B,IAAI,MAAM,EAAE,CAAC;oBACX,gBAAgB,IAAI,sCAAsC,MAAM,4CAA4C,MAAM,6DAA6D,CAAC;gBAClL,CAAC;gBACD,IAAI,SAAS,EAAE,CAAC;oBACd,gBAAgB,IAAI,4CAA4C,SAAS,+CAA+C,SAAS,2EAA2E,CAAC;gBAC/M,CAAC;gBAED,OAAO;oBACL,QAAQ,EAAE;wBACR;4BACE,IAAI,EAAE,MAAM;4BACZ,OAAO,EAAE;gCACP,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,8BAA8B,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gGA8H4B;6BACjF;yBACF;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,KAAK,yBAAyB,CAAC,CAAC,CAAC;gBAC/B,kEAAkE;gBAClE,OAAO;oBACL,QAAQ,EAAE;wBACR;4BACE,IAAI,EAAE,MAAM;4BACZ,OAAO,EAAE;gCACP,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mGAwJ6E;6BACpF;yBACF;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,KAAK,sBAAsB,CAAC,CAAC,CAAC;gBAC5B,MAAM,aAAa,GAAG,IAAI,CAAC,aAAmC,CAAC;gBAC/D,MAAM,aAAa,GAAG,IAAI,CAAC,aAAmC,CAAC;gBAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,MAA4B,CAAC;gBACjD,MAAM,eAAe,GAAI,IAAI,CAAC,eAAsC,IAAI,WAAW,CAAC;gBAEpF,IAAI,gBAAgB,GAAG,EAAE,CAAC;gBAC1B,IAAI,aAAa,IAAI,aAAa,IAAI,MAAM,EAAE,CAAC;oBAC7C,gBAAgB,IAAI,8BAA8B,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,kBAAkB,CAAC;oBAC1H,IAAI,MAAM;wBAAE,gBAAgB,IAAI,YAAY,MAAM,IAAI,CAAC;oBACvD,IAAI,aAAa;wBAAE,gBAAgB,IAAI,oBAAoB,aAAa,IAAI,CAAC;oBAC7E,IAAI,aAAa;wBAAE,gBAAgB,IAAI,oBAAoB,aAAa,IAAI,CAAC;oBAC7E,gBAAgB,IAAI,wEAAwE,CAAC;gBAC/F,CAAC;gBAED,OAAO;oBACL,QAAQ,EAAE;wBACR;4BACE,IAAI,EAAE,MAAM;4BACZ,OAAO,EAAE;gCACP,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,yBAAyB,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wDAiNP;6BACzC;yBACF;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,KAAK,sBAAsB,CAAC,CAAC,CAAC;gBAC5B,MAAM,aAAa,GAAG,IAAI,CAAC,aAAmC,CAAC;gBAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,IAA0B,CAAC;gBAE7C,IAAI,gBAAgB,GAAG,EAAE,CAAC;gBAC1B,IAAI,aAAa,IAAI,IAAI,EAAE,CAAC;oBAC1B,gBAAgB,IAAI,kDAAkD,CAAC;oBACvE,IAAI,aAAa;wBAAE,gBAAgB,IAAI,oBAAoB,aAAa,IAAI,CAAC;oBAC7E,IAAI,IAAI,EAAE,CAAC;wBACT,gBAAgB,IAAI,gBAAgB,IAAI,MAAM,CAAC;wBAC/C,gBAAgB,IAAI,8BAA8B,IAAI,gDAAgD,CAAC;oBACzG,CAAC;yBAAM,IAAI,aAAa,EAAE,CAAC;wBACzB,gBAAgB,IAAI,uGAAuG,CAAC;oBAC9H,CAAC;gBACH,CAAC;gBAED,OAAO;oBACL,QAAQ,EAAE;wBACR;4BACE,IAAI,EAAE,MAAM;4BACZ,OAAO,EAAE;gCACP,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,yBAAyB,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sCAmWzB;6BACvB;yBACF;qBACF;iBACF,CAAC;YACJ,CAAC;YAED;gBACE,MAAM,IAAI,KAAK,CAAC,mBAAmB,UAAU,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAEtE,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC;IAClC,OAAO,CAAC,GAAG,CAAC,UAAU,SAAS,CAAC,SAAS,CAAC,MAAM,mBAAmB,SAAS,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACtH,OAAO,CAAC,GAAG,CAAC,iBAAiB,SAAS,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;IAE5F,qBAAqB;IACrB,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;IACtB,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAExB,iDAAiD;IACjD,GAAG,CAAC,GAAG,CACL,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,+DAA+D;QAC7E,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC;QACrE,cAAc,EAAE,GAAG,EAAE,oBAAoB;QACzC,cAAc,EAAE,CAAC,GAAG,CAAC,EAAE,qBAAqB;QAC5C,WAAW,EAAE,IAAI,EAAE,oBAAoB;QACvC,iBAAiB,EAAE,KAAK;QACxB,oBAAoB,EAAE,GAAG;KAC1B,CAAC,CACH,CAAC;IAEF,wBAAwB;IACxB,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QAC/B,GAAG,CAAC,IAAI,CAAC;YACP,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM;YACrC,GAAG,EAAE;gBACH,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK;gBAC3B,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,OAAO;aAChC;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,qDAAqD;IACrD,8FAA8F;IAC9F,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAChC,iDAAiD;QACjD,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC;QAC7C,MAAM,WAAW,GAAG,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAErF,mDAAmD;QACnD,MAAM,QAAQ,GAAI,GAAG,CAAC,MAAc,CAAC,CAAC,CAAW,CAAC,CAAC,mBAAmB;QAEtE,0CAA0C;QAC1C,IAAI,QAAQ,GAAG,OAAO,CAAC,CAAC,mBAAmB;QAC3C,IAAI,qBAAqB,GAAG,QAAQ,CAAC;QAErC,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/B,QAAQ,GAAG,MAAM,CAAC;YAClB,qBAAqB,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB;QAClE,CAAC;aAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvC,QAAQ,GAAG,OAAO,CAAC;YACnB,qBAAqB,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB;QACnE,CAAC;QAED,MAAM,QAAQ,GAAG,GAAG,QAAQ,MAAM,qBAAqB,EAAE,CAAC;QAE1D,OAAO,CAAC,GAAG,CAAC,6BAA6B,QAAQ,aAAa,GAAG,CAAC,IAAI,EAAE,MAAM,IAAI,SAAS,EAAE,CAAC,CAAC;QAE/F,4DAA4D;QAC5D,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;QAE9D,IAAI,CAAC;YACH,qDAAqD;YACrD,MAAM,SAAS,GAAG,IAAI,6BAA6B,CAAC;gBAClD,kBAAkB,EAAE,SAAS;aAC9B,CAAC,CAAC;YAEH,8BAA8B;YAC9B,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAEhC,qBAAqB;YACrB,MAAM,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YAElD,+BAA+B;YAC/B,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBACnB,SAAS,CAAC,KAAK,EAAE,CAAC;gBAClB,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;YACpD,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;gBACrB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBACnB,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,CAAC,KAAK;wBACZ,OAAO,EAAE,uBAAuB;wBAChC,IAAI,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;qBAC7D;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,eAAe;IACf,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;QACpB,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAI,SAAS,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,6CAA6C,IAAI,0BAA0B,CAAC,CAAC;QACzF,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,sCAAsC,CAAC,CAAC;QACnF,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,yCAAyC,CAAC,CAAC;QACtF,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,uCAAuC,CAAC,CAAC;QACpF,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,mBAAmB;AACnB,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;IAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Endpoint loader module
3
+ * Loads pre-processed endpoints from build artifacts
4
+ */
5
+ import type { BuildOutput } from '../build/types.js';
6
+ /**
7
+ * Load pre-processed endpoints from build artifacts
8
+ */
9
+ export declare function loadEndpoints(): BuildOutput;
10
+ //# sourceMappingURL=loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/server/loader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAMrD;;GAEG;AACH,wBAAgB,aAAa,IAAI,WAAW,CAI3C"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Endpoint loader module
3
+ * Loads pre-processed endpoints from build artifacts
4
+ */
5
+ import { readFileSync } from 'fs';
6
+ import { join, dirname } from 'path';
7
+ import { fileURLToPath } from 'url';
8
+ // Get the directory name for ES modules
9
+ const __filename = fileURLToPath(import.meta.url);
10
+ const __dirname = dirname(__filename);
11
+ /**
12
+ * Load pre-processed endpoints from build artifacts
13
+ */
14
+ export function loadEndpoints() {
15
+ const endpointsPath = join(__dirname, '../generated/endpoints.json');
16
+ const content = readFileSync(endpointsPath, 'utf-8');
17
+ return JSON.parse(content);
18
+ }
19
+ //# sourceMappingURL=loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/server/loader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAGpC,wCAAwC;AACxC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,EAAE,6BAA6B,CAAC,CAAC;IACrE,MAAM,OAAO,GAAG,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACrD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAgB,CAAC;AAC5C,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Prompt handlers for MCP server
3
+ * Contains the full text content for workflow prompts
4
+ */
5
+ export declare function getPromptContent(promptName: string, args: Record<string, any>): string;
6
+ //# sourceMappingURL=prompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/server/prompts.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CA6ctF"}
@@ -0,0 +1,462 @@
1
+ /**
2
+ * Prompt handlers for MCP server
3
+ * Contains the full text content for workflow prompts
4
+ */
5
+ export function getPromptContent(promptName, args) {
6
+ switch (promptName) {
7
+ case 'charging_session_workflow': {
8
+ const evseId = args.evseId;
9
+ const sessionId = args.sessionId;
10
+ let specificGuidance = '';
11
+ if (evseId) {
12
+ specificGuidance += `\n## Specific Task: Work with EVSE ${evseId}\n\nYou have been provided with EVSE ID: ${evseId}\nUse this ID when starting a charging session in Step 2.\n`;
13
+ }
14
+ if (sessionId) {
15
+ specificGuidance += `\n## Specific Task: Monitor/Stop Session ${sessionId}\n\nYou have been provided with session ID: ${sessionId}\nUse this ID to retrieve session details or stop the charging session.\n`;
16
+ }
17
+ return `# Charging Session Workflow${specificGuidance}
18
+
19
+ This guide explains how to implement a complete EV charging session using the AMPECO API.
20
+
21
+ ## Overview
22
+
23
+ The charging session lifecycle follows this sequence:
24
+ 1. **Discovery**: Find available charge points
25
+ 2. **Start Session**: Initiate charging
26
+ 3. **Monitor**: Track session progress via webhooks
27
+ 4. **Stop Session**: End charging
28
+ 5. **Retrieve Details**: Get final session metrics and billing
29
+
30
+ ## Step 1: Find Available Charge Points
31
+
32
+ Use the top-level listing endpoints to discover charging infrastructure:
33
+
34
+ **Get Locations:**
35
+ \`\`\`
36
+ GET /resources/locations/v1.0
37
+ \`\`\`
38
+ Returns all locations with geographic coordinates and availability status.
39
+
40
+ **Get Charge Points:**
41
+ \`\`\`
42
+ GET /resources/charge-points/v1.0?status=active&accessType=public&networkStatus=available
43
+ \`\`\`
44
+ Filter for active, public, and available charge points.
45
+
46
+ **Get EVSEs (Recommended for charging type):**
47
+ \`\`\`
48
+ GET /resources/evses
49
+ \`\`\`
50
+ EVSEs contain the \`currentType\` field ("ac" or "dc") which tells you the charging type. Each EVSE belongs to a charge point and contains connectors.
51
+
52
+ ## Step 2: Start a Charging Session
53
+
54
+ **Endpoint:**
55
+ \`\`\`
56
+ POST /actions/evse/v1.0/{evseId}/start
57
+ \`\`\`
58
+
59
+ **Required Parameters:**
60
+ - \`evseId\`: The EVSE network ID (from Step 1)
61
+
62
+ **Response:**
63
+ \`\`\`json
64
+ {
65
+ "success": true,
66
+ "sessionId": 12345,
67
+ "message": "Session starting..."
68
+ }
69
+ \`\`\`
70
+
71
+ **Important:** The response returns immediately with a session ID, but the session is not yet active.
72
+
73
+ ## Step 3: Monitor Session Status
74
+
75
+ **Webhook Notifications:**
76
+
77
+ The AMPECO API is event-driven. After starting a session, you will receive:
78
+
79
+ 1. **First Notification - SessionUpdateNotification:**
80
+ - Status: \`"pending"\`
81
+ - Indicates session is being prepared
82
+
83
+ 2. **Second Notification - SessionUpdateNotification:**
84
+ - Status: \`"active"\`
85
+ - Charging has started
86
+
87
+ 3. **Ongoing - SessionMeterValuesNotification:**
88
+ - Contains real-time energy consumption (in Wh)
89
+ - Provides meter readings during charging
90
+
91
+ **To get current session details:**
92
+ \`\`\`
93
+ GET /resources/sessions/v1.0/{sessionId}
94
+ \`\`\`
95
+
96
+ ## Step 4: Stop Charging Session
97
+
98
+ **Endpoint:**
99
+ \`\`\`
100
+ POST /actions/charge-point/v1.0/{chargePointId}/stop/{sessionId}
101
+ \`\`\`
102
+
103
+ **Required Parameters:**
104
+ - \`chargePointId\`: The charge point ID
105
+ - \`sessionId\`: The session ID from Step 2
106
+
107
+ **Response:**
108
+ Returns confirmation that stop request was sent.
109
+
110
+ **Webhook Notification:**
111
+ You will receive a \`SessionUpdateNotification\` with status \`"finished"\` when the session has fully terminated.
112
+
113
+ ## Step 5: Retrieve Final Session Details
114
+
115
+ **Endpoint:**
116
+ \`\`\`
117
+ GET /resources/sessions/v1.0/{sessionId}
118
+ \`\`\`
119
+
120
+ **Wait for:** The \`SessionUpdateNotification\` webhook with status \`"finished"\` before retrieving final details.
121
+
122
+ **Response includes:**
123
+ - Total energy consumed (kWh)
124
+ - State of charge percentage
125
+ - Total amount charged (billing)
126
+ - Payment status
127
+ - Charging periods breakdown
128
+ - Price breakdown by tariff components
129
+ - Complete tariff snapshot
130
+
131
+ ## Best Practices
132
+
133
+ 1. **Use webhooks for state changes** - Don't poll for status updates
134
+ 2. **Wait for "finished" status** - Final metrics are only accurate after session completes
135
+ 3. **Use top-level EVSE listing** - More efficient than nested queries
136
+ 4. **Check currentType** - Verify AC vs DC compatibility before starting session
137
+ 5. **Handle webhook delays** - Status changes may take 10-30 seconds
138
+
139
+ ## Error Handling
140
+
141
+ - If start request fails, check EVSE availability and network status
142
+ - If session doesn't transition to "active" within 60 seconds, check charge point hardware status
143
+ - If stop request fails, the session may already be finished or the charge point may be offline`;
144
+ }
145
+ case 'authentication_workflow': {
146
+ return `# Authentication Workflow
147
+
148
+ This guide explains how authentication works with the AMPECO Public API and how to implement it in your application.
149
+
150
+ ## Important: No Client-Level Authentication
151
+
152
+ **The AMPECO Public API does NOT provide client-level authentication or authorization for mobile apps or end users.**
153
+
154
+ This means:
155
+ - There is no \`/login\` endpoint for end users
156
+ - There is no user session management in the API
157
+ - You cannot directly authenticate mobile app users against the API
158
+ - You MUST implement your own authentication layer
159
+
160
+ ## Authentication Architecture
161
+
162
+ \`\`\`
163
+ Mobile App → Custom Backend → AMPECO Public API
164
+ (Your Auth) (Bearer Token)
165
+ \`\`\`
166
+
167
+ ### What You Build (Custom Backend)
168
+ 1. User registration and login endpoints
169
+ 2. Password hashing and validation
170
+ 3. Session/JWT token management for your users
171
+ 4. User credential storage in your database
172
+ 5. Authorization logic (who can access what)
173
+
174
+ ### What AMPECO Provides
175
+ - **Admin-level Bearer Token** for your backend to call the API
176
+ - User resource management via \`POST /resources/users\` (create users in AMPECO system)
177
+ - User-scoped data filtering on API endpoints
178
+
179
+ ## Implementation Guide
180
+
181
+ ### Step 1: User Registration
182
+
183
+ **Your Backend:**
184
+ 1. Accept user registration (email, password, name) from mobile app
185
+ 2. Hash password and store in your database
186
+ 3. Call AMPECO API to create user resource:
187
+
188
+ \`\`\`
189
+ POST /resources/users
190
+ Authorization: Bearer YOUR_ADMIN_TOKEN
191
+ Content-Type: application/json
192
+
193
+ {
194
+ "email": "user@example.com",
195
+ "first_name": "John",
196
+ "last_name": "Doe"
197
+ }
198
+ \`\`\`
199
+
200
+ 4. Store AMPECO user ID alongside your user record
201
+ 5. Return success to mobile app
202
+
203
+ ### Step 2: User Login
204
+
205
+ **Your Backend:**
206
+ 1. Accept login credentials (email, password) from mobile app
207
+ 2. Validate credentials against your database
208
+ 3. Generate your own session token/JWT
209
+ 4. Return token to mobile app
210
+
211
+ **Mobile App:**
212
+ - Store your session token
213
+ - Include it in all requests to your backend
214
+ - Your backend validates this token on each request
215
+
216
+ ### Step 3: Making API Calls on Behalf of Users
217
+
218
+ **Your Backend:**
219
+ 1. Validate user's session token
220
+ 2. Retrieve user's AMPECO user ID from your database
221
+ 3. Call AMPECO API with admin Bearer token
222
+ 4. Use user filters to scope requests:
223
+
224
+ \`\`\`
225
+ GET /resources/sessions/v1.0?userId={ampecoUserId}
226
+ Authorization: Bearer YOUR_ADMIN_TOKEN
227
+ \`\`\`
228
+
229
+ This returns only sessions for that specific user.
230
+
231
+ ### Step 4: Securing the Bearer Token
232
+
233
+ **Critical Security Practices:**
234
+
235
+ 1. **NEVER expose admin Bearer token to mobile apps**
236
+ - Token stays on your backend only
237
+ - Mobile apps never see or use it
238
+
239
+ 2. **Store token securely:**
240
+ - Environment variables (recommended)
241
+ - Secrets management service (AWS Secrets Manager, etc.)
242
+ - Never commit to git
243
+
244
+ 3. **Use HTTPS:**
245
+ - All communication between mobile app and your backend
246
+ - All communication between your backend and AMPECO API
247
+
248
+ ## User-Scoped API Requests
249
+
250
+ Many AMPECO endpoints support filtering by user:
251
+
252
+ **Sessions:**
253
+ \`\`\`
254
+ GET /resources/sessions/v1.0?userId={id}
255
+ \`\`\`
256
+
257
+ **Charge Points (user's favorites/home chargers):**
258
+ \`\`\`
259
+ GET /resources/charge-points/v1.0?userId={id}
260
+ \`\`\`
261
+
262
+ **Reservations:**
263
+ \`\`\`
264
+ GET /resources/reservations?userId={id}
265
+ \`\`\`
266
+
267
+ Always use these filters to ensure users only see their own data.
268
+
269
+ ## Example Flow: Start Charging Session
270
+
271
+ \`\`\`
272
+ 1. Mobile app → Your backend: "Start charging at EVSE 123"
273
+ Headers: Authorization: Bearer YOUR_USER_SESSION_TOKEN
274
+
275
+ 2. Your backend validates user session token
276
+
277
+ 3. Your backend → AMPECO API:
278
+ POST /actions/evse/v1.0/123/start
279
+ Headers: Authorization: Bearer YOUR_ADMIN_TOKEN
280
+
281
+ 4. AMPECO API → Your backend: {"sessionId": 456}
282
+
283
+ 5. Your backend → Mobile app: {"sessionId": 456}
284
+ \`\`\`
285
+
286
+ ## Best Practices
287
+
288
+ 1. **Implement rate limiting** - Protect your backend from abuse
289
+ 2. **Log API calls** - Track which user triggered which AMPECO API call
290
+ 3. **Handle token expiration** - Refresh admin token if needed
291
+ 4. **Validate user ownership** - Ensure users can only stop their own sessions, etc.
292
+ 5. **Use webhook authentication** - Verify webhooks are actually from AMPECO
293
+
294
+ ## Summary
295
+
296
+ - **You build:** User authentication, session management, password security
297
+ - **AMPECO provides:** Admin-level API access, user resource storage, user-scoped filtering
298
+ - **Your backend** acts as a trusted intermediary between untrusted mobile apps and the AMPECO API`;
299
+ }
300
+ case 'reservation_workflow': {
301
+ const chargePointId = args.chargePointId;
302
+ const evseNetworkId = args.evseNetworkId;
303
+ const userId = args.userId;
304
+ const reservationType = args.reservationType || 'immediate';
305
+ let specificGuidance = '';
306
+ if (chargePointId || evseNetworkId || userId) {
307
+ specificGuidance += `\n## Specific Task: Create ${reservationType === 'future' ? 'Future' : 'Immediate'} Reservation\n\n`;
308
+ if (userId)
309
+ specificGuidance += `User ID: ${userId}\n`;
310
+ if (chargePointId)
311
+ specificGuidance += `Charge Point ID: ${chargePointId}\n`;
312
+ if (evseNetworkId)
313
+ specificGuidance += `EVSE Network ID: ${evseNetworkId}\n`;
314
+ specificGuidance += `\nUse these IDs when creating the reservation in the examples below.\n`;
315
+ }
316
+ return `# Reservation Workflow${specificGuidance}
317
+
318
+ This guide explains how to reserve charge points using the AMPECO API for both immediate and future use.
319
+
320
+ ## Overview
321
+
322
+ Reservations allow users to guarantee access to a specific charge point or EVSE. AMPECO supports two types:
323
+ 1. **Immediate Reservation** ("Reserve Now") - Reserve for use right now
324
+ 2. **Future Reservation** - Reserve for a specific date/time in the future
325
+
326
+ ## Reservation Endpoint
327
+
328
+ \`\`\`
329
+ POST /actions/charge-point/v1.0/{chargePointId}/reserve/{evseNetworkId}
330
+ \`\`\`
331
+
332
+ **Path Parameters:**
333
+ - \`chargePointId\`: The charge point ID (number)
334
+ - \`evseNetworkId\`: The EVSE network ID (string) - specific connector to reserve
335
+
336
+ **Request Body:**
337
+ \`\`\`json
338
+ {
339
+ "userId": 123,
340
+ "reason": "User requested reservation"
341
+ }
342
+ \`\`\`
343
+
344
+ ## Immediate Reservation ("Reserve Now")
345
+
346
+ **Use Case:** User wants to reserve a charge point to use immediately.
347
+
348
+ **Steps:**
349
+
350
+ 1. **Find available charge point:**
351
+ \`\`\`
352
+ GET /resources/charge-points/v1.0?networkStatus=available&hardwareStatus=available
353
+ \`\`\`
354
+
355
+ 2. **Get EVSE details:**
356
+ \`\`\`
357
+ GET /resources/evses?chargePointId={chargePointId}
358
+ \`\`\`
359
+ Note the \`networkId\` field from the EVSE you want to reserve.
360
+
361
+ 3. **Create immediate reservation:**
362
+ \`\`\`
363
+ POST /actions/charge-point/v1.0/{chargePointId}/reserve/{evseNetworkId}
364
+ Content-Type: application/json
365
+ Authorization: Bearer YOUR_TOKEN
366
+
367
+ {
368
+ "userId": 123,
369
+ "reason": "Immediate charging needed"
370
+ }
371
+ \`\`\`
372
+
373
+ **Response:**
374
+ \`\`\`json
375
+ {
376
+ "success": true,
377
+ "reservationId": 456,
378
+ "status": "accepted",
379
+ "message": "Reservation created successfully"
380
+ }
381
+ \`\`\`
382
+
383
+ 4. **Start charging session** (user should plug in soon):
384
+ \`\`\`
385
+ POST /actions/evse/v1.0/{evseNetworkId}/start
386
+ \`\`\`
387
+
388
+ **Important:** Immediate reservations typically expire after 10-15 minutes if not used.
389
+
390
+ ## Best Practices
391
+
392
+ 1. **Check availability before reserving** - Use \`networkStatus\` and \`hardwareStatus\` filters
393
+ 2. **Provide clear reason** - Helps with debugging and user support
394
+ 3. **Set appropriate expiry** - Don't hold EVSEs longer than needed
395
+ 4. **Notify users** - Send reminders before reservation time
396
+ 5. **Handle expiry gracefully** - Let users know if their reservation expired
397
+ 6. **Allow cancellation** - Users should be able to cancel if plans change`;
398
+ }
399
+ case 'smart_charging_setup': {
400
+ const chargePointId = args.chargePointId;
401
+ const mode = args.mode;
402
+ let specificGuidance = '';
403
+ if (chargePointId || mode) {
404
+ specificGuidance += `\n## Specific Task: Configure Smart Charging\n\n`;
405
+ if (chargePointId)
406
+ specificGuidance += `Charge Point ID: ${chargePointId}\n`;
407
+ if (mode) {
408
+ specificGuidance += `Target Mode: ${mode}\n\n`;
409
+ specificGuidance += `Focus on implementing the "${mode}" smart charging mode in the examples below.\n`;
410
+ }
411
+ else if (chargePointId) {
412
+ specificGuidance += `\nConfigure smart charging for this charge point using the appropriate mode from the options below.\n`;
413
+ }
414
+ }
415
+ return `# Smart Charging Setup${specificGuidance}
416
+
417
+ This guide explains how to configure smart charging modes for home chargers using the AMPECO API.
418
+
419
+ ## Overview
420
+
421
+ Smart charging optimizes when and how EVs charge based on various factors:
422
+ - **Scheduled** - Charge during specific time windows
423
+ - **Solar** - Charge using excess solar power
424
+ - **Dynamic Pricing** - Charge when electricity is cheapest
425
+ - **Grid Optimization** - Respond to grid demand
426
+
427
+ AMPECO supports multiple smart charging modes that can be configured per charge point.
428
+
429
+ ## Available Smart Charging Modes
430
+
431
+ ### 1. Scheduled (user_controlled_schedule)
432
+ Time-based charging within defined windows.
433
+
434
+ ### 2. Solar (solar)
435
+ Charges using excess solar power from home panels.
436
+
437
+ ### 3. Octopus Agile (octopus_agile)
438
+ Dynamic pricing based on Octopus Energy's Agile tariff (UK).
439
+
440
+ ### 4. Octopus Go (octopus_go)
441
+ Fixed off-peak window for Octopus Energy's Go tariff (UK).
442
+
443
+ ### 5. Energi Elspot (energi_elspot)
444
+ Nordic spot market electricity pricing.
445
+
446
+ ### 6. Nordpool (nordpool)
447
+ Nordic power exchange pricing.
448
+
449
+ ## Best Practices
450
+
451
+ 1. **Check available modes first** - Not all modes enabled for all tenants
452
+ 2. **Validate time windows** - Ensure start < end for scheduled modes
453
+ 3. **Set reasonable thresholds** - Price thresholds should match local market
454
+ 4. **Combine with reservations** - Reserve EVSE + smart charging = guaranteed optimized charging
455
+ 5. **Monitor effectiveness** - Track sessions to see if smart charging is working
456
+ 6. **Fallback strategy** - Set minimum charge to ensure users aren't stranded`;
457
+ }
458
+ default:
459
+ throw new Error(`Unknown prompt: ${promptName}`);
460
+ }
461
+ }
462
+ //# sourceMappingURL=prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/server/prompts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Stdio MCP Server
3
+ * Runs MCP server with stdio transport for local integrations (Claude Desktop, NPX, etc.)
4
+ */
5
+ /**
6
+ * Start MCP server in stdio mode
7
+ * Uses stdin/stdout for communication with MCP clients
8
+ */
9
+ export declare function startStdioServer(bearerToken: string, hostname: string): Promise<void>;
10
+ //# sourceMappingURL=stdio.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdio.d.ts","sourceRoot":"","sources":["../../src/server/stdio.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAiBf"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Stdio MCP Server
3
+ * Runs MCP server with stdio transport for local integrations (Claude Desktop, NPX, etc.)
4
+ */
5
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
6
+ import { createServer } from './factory.js';
7
+ import { loadEndpoints } from './loader.js';
8
+ /**
9
+ * Start MCP server in stdio mode
10
+ * Uses stdin/stdout for communication with MCP clients
11
+ */
12
+ export async function startStdioServer(bearerToken, hostname) {
13
+ console.error('[Stdio Mode] Starting MCP server...');
14
+ const endpoints = loadEndpoints();
15
+ console.error(`[Stdio Mode] Loaded ${endpoints.endpoints.length} endpoints from ${endpoints.info.title} v${endpoints.info.version}`);
16
+ const server = createServer(endpoints, bearerToken, hostname);
17
+ const transport = new StdioServerTransport();
18
+ await server.connect(transport);
19
+ console.error('[Stdio Mode] Server connected and ready');
20
+ console.error(`[Stdio Mode] Target API: ${hostname}`);
21
+ console.error(`[Stdio Mode] Bearer token: ${bearerToken ? 'provided' : 'not provided'}`);
22
+ // Keep process alive
23
+ process.stdin.resume();
24
+ }
25
+ //# sourceMappingURL=stdio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdio.js","sourceRoot":"","sources":["../../src/server/stdio.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,WAAmB,EACnB,QAAgB;IAEhB,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAErD,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC;IAClC,OAAO,CAAC,KAAK,CAAC,uBAAuB,SAAS,CAAC,SAAS,CAAC,MAAM,mBAAmB,SAAS,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAErI,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAE7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;IACzD,OAAO,CAAC,KAAK,CAAC,4BAA4B,QAAQ,EAAE,CAAC,CAAC;IACtD,OAAO,CAAC,KAAK,CAAC,8BAA8B,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC;IAEzF,qBAAqB;IACrB,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;AACzB,CAAC"}
package/package.json ADDED
@@ -0,0 +1,60 @@
1
+ {
2
+ "name": "@ampeco/public-api-mcp",
3
+ "version": "0.2.0",
4
+ "description": "MCP server that dynamically exposes the AMPECO.CHARGE Public API defined by an OpenAPI 3 specification",
5
+ "type": "module",
6
+ "main": "dist/cli/index.js",
7
+ "types": "dist/cli/index.d.ts",
8
+ "bin": {
9
+ "ampeco-api-mcp": "./dist/cli/index.js"
10
+ },
11
+ "files": [
12
+ "dist/**/*",
13
+ "README.md",
14
+ "LICENSE"
15
+ ],
16
+ "scripts": {
17
+ "build": "tsx src/build/index.ts \"$OPENAPI_SPEC_PATH\" && tsc && mkdir -p dist/generated && cp src/generated/*.json src/generated/*.ts dist/generated/",
18
+ "dev:stdio": "(tsx src/build/index.ts \"$OPENAPI_SPEC_PATH\" && echo '[Build] Complete' >&2) >&2 && tsx src/cli/index.ts --stdio --hostname http://demo.charge.alex2.dev.ampeco.tech --token \"$AMPECO_TOKEN\"",
19
+ "dev:http": "tsx src/build/index.ts \"$OPENAPI_SPEC_PATH\" && tsx src/cli/index.ts --http --port 3001",
20
+ "dev": "npm run dev:http",
21
+ "start": "node dist/cli/index.js",
22
+ "type-check": "tsc --noEmit",
23
+ "test": "vitest",
24
+ "prepublishOnly": "npm run build"
25
+ },
26
+ "keywords": [
27
+ "mcp",
28
+ "openapi",
29
+ "api",
30
+ "model-context-protocol",
31
+ "ampeco",
32
+ "charge",
33
+ "ev-charging"
34
+ ],
35
+ "author": "AMPECO",
36
+ "license": "MIT",
37
+ "repository": {
38
+ "type": "git",
39
+ "url": "https://github.com/ampeco/public-api-mcp.git"
40
+ },
41
+ "publishConfig": {
42
+ "access": "public"
43
+ },
44
+ "dependencies": {
45
+ "@modelcontextprotocol/sdk": "^1.0.4",
46
+ "zod": "^3.24.1",
47
+ "node-fetch": "^3.3.2",
48
+ "express": "^4.21.2",
49
+ "cors": "^2.8.5"
50
+ },
51
+ "devDependencies": {
52
+ "@readme/openapi-parser": "^2.6.0",
53
+ "@types/node": "^22.10.2",
54
+ "@types/express": "^5.0.0",
55
+ "@types/cors": "^2.8.17",
56
+ "tsx": "^4.19.2",
57
+ "typescript": "^5.7.2",
58
+ "vitest": "^2.1.8"
59
+ }
60
+ }