@opentabs-dev/opentabs-plugin-panda-express 0.0.74

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 (89) hide show
  1. package/README.md +140 -0
  2. package/dist/adapter.iife.js +15117 -0
  3. package/dist/adapter.iife.js.map +7 -0
  4. package/dist/index.d.ts +14 -0
  5. package/dist/index.d.ts.map +1 -0
  6. package/dist/index.js +58 -0
  7. package/dist/index.js.map +1 -0
  8. package/dist/panda-api.d.ts +9 -0
  9. package/dist/panda-api.d.ts.map +1 -0
  10. package/dist/panda-api.js +88 -0
  11. package/dist/panda-api.js.map +1 -0
  12. package/dist/tools/add-product-to-basket.d.ts +21 -0
  13. package/dist/tools/add-product-to-basket.d.ts.map +1 -0
  14. package/dist/tools/add-product-to-basket.js +39 -0
  15. package/dist/tools/add-product-to-basket.js.map +1 -0
  16. package/dist/tools/apply-coupon.d.ts +19 -0
  17. package/dist/tools/apply-coupon.d.ts.map +1 -0
  18. package/dist/tools/apply-coupon.js +27 -0
  19. package/dist/tools/apply-coupon.js.map +1 -0
  20. package/dist/tools/cancel-order.d.ts +7 -0
  21. package/dist/tools/cancel-order.d.ts.map +1 -0
  22. package/dist/tools/cancel-order.js +25 -0
  23. package/dist/tools/cancel-order.js.map +1 -0
  24. package/dist/tools/create-basket.d.ts +19 -0
  25. package/dist/tools/create-basket.d.ts.map +1 -0
  26. package/dist/tools/create-basket.js +30 -0
  27. package/dist/tools/create-basket.js.map +1 -0
  28. package/dist/tools/find-restaurants.d.ts +28 -0
  29. package/dist/tools/find-restaurants.d.ts.map +1 -0
  30. package/dist/tools/find-restaurants.js +33 -0
  31. package/dist/tools/find-restaurants.js.map +1 -0
  32. package/dist/tools/get-basket.d.ts +25 -0
  33. package/dist/tools/get-basket.d.ts.map +1 -0
  34. package/dist/tools/get-basket.js +27 -0
  35. package/dist/tools/get-basket.js.map +1 -0
  36. package/dist/tools/get-billing-accounts.d.ts +11 -0
  37. package/dist/tools/get-billing-accounts.d.ts.map +1 -0
  38. package/dist/tools/get-billing-accounts.js +35 -0
  39. package/dist/tools/get-billing-accounts.js.map +1 -0
  40. package/dist/tools/get-checkout-summary.d.ts +13 -0
  41. package/dist/tools/get-checkout-summary.d.ts.map +1 -0
  42. package/dist/tools/get-checkout-summary.js +40 -0
  43. package/dist/tools/get-checkout-summary.js.map +1 -0
  44. package/dist/tools/get-favorites.d.ts +9 -0
  45. package/dist/tools/get-favorites.d.ts.map +1 -0
  46. package/dist/tools/get-favorites.js +22 -0
  47. package/dist/tools/get-favorites.js.map +1 -0
  48. package/dist/tools/get-loyalty-rewards.d.ts +12 -0
  49. package/dist/tools/get-loyalty-rewards.d.ts.map +1 -0
  50. package/dist/tools/get-loyalty-rewards.js +33 -0
  51. package/dist/tools/get-loyalty-rewards.js.map +1 -0
  52. package/dist/tools/get-product-modifiers.d.ts +17 -0
  53. package/dist/tools/get-product-modifiers.d.ts.map +1 -0
  54. package/dist/tools/get-product-modifiers.js +45 -0
  55. package/dist/tools/get-product-modifiers.js.map +1 -0
  56. package/dist/tools/get-recent-orders.d.ts +17 -0
  57. package/dist/tools/get-recent-orders.d.ts.map +1 -0
  58. package/dist/tools/get-recent-orders.js +22 -0
  59. package/dist/tools/get-recent-orders.js.map +1 -0
  60. package/dist/tools/get-restaurant-menu.d.ts +22 -0
  61. package/dist/tools/get-restaurant-menu.d.ts.map +1 -0
  62. package/dist/tools/get-restaurant-menu.js +27 -0
  63. package/dist/tools/get-restaurant-menu.js.map +1 -0
  64. package/dist/tools/get-restaurant.d.ts +26 -0
  65. package/dist/tools/get-restaurant.d.ts.map +1 -0
  66. package/dist/tools/get-restaurant.js +34 -0
  67. package/dist/tools/get-restaurant.js.map +1 -0
  68. package/dist/tools/get-user-profile.d.ts +11 -0
  69. package/dist/tools/get-user-profile.d.ts.map +1 -0
  70. package/dist/tools/get-user-profile.js +48 -0
  71. package/dist/tools/get-user-profile.js.map +1 -0
  72. package/dist/tools/navigate-to-checkout.d.ts +32 -0
  73. package/dist/tools/navigate-to-checkout.d.ts.map +1 -0
  74. package/dist/tools/navigate-to-checkout.js +112 -0
  75. package/dist/tools/navigate-to-checkout.js.map +1 -0
  76. package/dist/tools/remove-coupon.d.ts +18 -0
  77. package/dist/tools/remove-coupon.d.ts.map +1 -0
  78. package/dist/tools/remove-coupon.js +25 -0
  79. package/dist/tools/remove-coupon.js.map +1 -0
  80. package/dist/tools/schemas.d.ts +241 -0
  81. package/dist/tools/schemas.d.ts.map +1 -0
  82. package/dist/tools/schemas.js +168 -0
  83. package/dist/tools/schemas.js.map +1 -0
  84. package/dist/tools/update-product-quantity.d.ts +20 -0
  85. package/dist/tools/update-product-quantity.d.ts.map +1 -0
  86. package/dist/tools/update-product-quantity.js +34 -0
  87. package/dist/tools/update-product-quantity.js.map +1 -0
  88. package/dist/tools.json +1584 -0
  89. package/package.json +54 -0
@@ -0,0 +1,1584 @@
1
+ {
2
+ "sdkVersion": "0.0.74",
3
+ "iconSvg": "<svg viewBox=\"21 21 67 67\" xmlns=\"http://www.w3.org/2000/svg\"><g fill=\"none\" fill-rule=\"evenodd\"><path d=\"M89.088 54.687c0 19.156-15.53 34.685-34.686 34.685-19.157 0-34.687-15.53-34.687-34.685 0-19.158 15.53-34.688 34.687-34.688 19.156 0 34.686 15.53 34.686 34.688\" fill=\"#D02C2F\"/><path d=\"M73.211 47.127c1.535 3.829 2.225 8.269 2.256 12.382 0 0-.018.78 1.474.803.656-.014 1.23-.352 1.45-.5 1.157-.811 2.22-2.486 2.233-5.271v-.006l-.001-.038c0-.122-.003-.241-.005-.361-.094-3.846-1.57-6.94-2.397-8.381-.184-.321-.337-.561-.435-.707-.052-.079-.105-.154-.16-.233a32.49 32.49 0 0 0-6.953-7.039c-.363.859-.91 1.742-1.678 2.634 1.75 2 3.173 4.119 4.216 6.717M69.15 48.083c-.177-9.506-7.937-17.158-17.485-17.158h-.036a17.553 17.553 0 0 0-6.681 1.288c-.016.007-.034.011-.05.019a17.599 17.599 0 0 0-6.163 4.244l-.01.012a17.478 17.478 0 0 0-2.64 3.657c-.023.042-.048.084-.071.13a.322.322 0 0 0-.022.046c-.341.69-2.028 4.313-2.012 9.06 0 0-.12 3.133 1.911 6.705a13.775 13.775 0 0 0 1.903 2.665l.046.052c.072.078.147.154.221.23 1.445 1.55 3.302 2.508 5.22 4.326.22.213.445.435.657.625.456.375.683.558 1.224.85a.03.03 0 0 0 .014.01l.002.001v.003l.091.047a8.19 8.19 0 0 0 .88.394c.942.36 2.02.576 3.17.607.114.003.228.003.34.003 2.953 0 5.403-1.42 7.85-2.776a68.268 68.268 0 0 1 2.516-1.311 46.174 46.174 0 0 0 1.633-.82l1.065-.633c7.068-4.289 6.426-12.276 6.426-12.276\" fill=\"#FFF\"/><path d=\"M36.086 40.145c.719-1.33 1.608-2.56 2.64-3.657.003-.004.006-.009.01-.012a17.601 17.601 0 0 1 6.162-4.244c.016-.008.034-.012.05-.02l.003-.003c-.74-1.644-2.247-3.424-4.595-3.778-4.801-.72-11.252 5.05-4.371 11.894l.007-.004a.355.355 0 0 1 .022-.047c.023-.045.048-.087.072-.13M82.325 58.707v-.01l.002-.002a24.51 24.51 0 0 0-.037-1.096 23.971 23.971 0 0 0-.16-1.778l-.003-.014c-.026-.204-.056-.41-.09-.612-.052-.337-.11-.669-.174-.99-.202-.97-.465-1.901-.774-2.794-.77-2.224-1.836-4.209-3.004-5.94-.122-.177-.246-.353-.368-.525l.076.112c.099.147.247.382.428.697.827 1.441 2.303 4.534 2.397 8.38.002.12.005.24.005.362l.001.038v.006c-.014 2.785-1.076 4.46-2.234 5.27-.219.149-.793.487-1.449.5-1.492-.023-1.474-.802-1.474-.802-.031-4.113-.721-8.553-2.256-12.382-1.043-2.598-2.466-4.717-4.216-6.717.768-.892 1.315-1.775 1.678-2.634 2.267-5.368-2.735-9.535-6.86-9.056-1.826.213-3.818 1.804-5.103 3.683 6.055 2.667 10.309 8.67 10.44 15.68 0 0 .64 7.987-6.427 12.276a8.265 8.265 0 0 0-.202.127l-.08.05-.246.147-.03.018-.256.15-.01.004c-.08.048-.162.093-.241.138a.378.378 0 0 1-.035.018l-.013.008a.088.088 0 0 0-.025.013l-.013.007-.025.013-.014.007a.376.376 0 0 1-.026.013l-.014.008a.269.269 0 0 1-.028.014c-.005.003-.008.006-.012.007l-.084.044a.038.038 0 0 1-.013.005.33.33 0 0 1-.032.017l-.014.008a.502.502 0 0 0-.046.024l-.032.016-.014.006-.037.02a.035.035 0 0 0-.009.004c-.03.017-.063.033-.097.05l-.01.005a.933.933 0 0 0-.038.019l-.015.006a.61.61 0 0 1-.05.026c-.012.006-.025.012-.038.02l-.012.006-.046.022-.004.003-.107.052-.006.004c-.015.006-.03.015-.046.022l-.011.005a.908.908 0 0 1-.041.02l-.014.007-.041.02-.012.006-.048.025-.005.001-.11.054-.006.003-.047.023c-.005.001-.01.005-.013.007a.443.443 0 0 1-.041.02.158.158 0 0 0-.014.008l-.041.018a.608.608 0 0 1-.067.033c-.018.009-.037.017-.054.027h-.001l-.052.025a.145.145 0 0 1-.019.008c-.01.007-.021.011-.032.017-.004 0-.005.003-.009.005-.758.377-1.713.866-2.516 1.311-2.448 1.355-4.897 2.776-7.85 2.776h-.244l-.095-.003a9.637 9.637 0 0 1-3.171-.607 8.306 8.306 0 0 1-.421-.172 6.84 6.84 0 0 1-.459-.222l-.09-.047v-.003l-.003-.001a.03.03 0 0 1-.015-.01c-.54-.292-.768-.475-1.223-.85-.212-.19-.438-.412-.656-.625-1.919-1.819-3.777-2.776-5.22-4.326-.075-.076-.15-.152-.222-.23l-.046-.052a25.127 25.127 0 0 1-.256-.29 9.655 9.655 0 0 1-.244-.286l-.003-.006a8.163 8.163 0 0 1-.244-.31l-.072-.093-.022-.028c-.018-.022-.033-.046-.051-.07l-.021-.03a2.446 2.446 0 0 1-.06-.082l-.011-.014-.07-.097-.017-.025a6.77 6.77 0 0 1-.053-.075l-.02-.03a5.103 5.103 0 0 1-.056-.08l-.013-.02-.067-.1c-.005-.005-.006-.01-.01-.015-.02-.029-.039-.058-.057-.088a.463.463 0 0 1-.018-.026c-.018-.027-.035-.055-.054-.082a.127.127 0 0 1-.012-.022c-.045-.068-.089-.14-.133-.21l-.012-.021-.053-.089-.013-.019-.127-.218-.01-.016-.053-.095-.01-.02a15.437 15.437 0 0 1-.588-1.119c-.708 1.123-1.1 2.068-1.597 3.594-1.045 3.184-1.55 6.972-.892 10.317.791 4.064 2.375 7.808 5.406 10.542 1.972 1.777 4.268 2.864 6.942 3.236 2.405.343 4.617-1.077 4.617-3.658 0-1.854-1.537-3.635-1.687-5.457-.224-2.642 1.39-5.01 4.118-4.742 1.338.13 2.9 1.075 3.124 3.031.179 1.585-.07 2.495-.927 4.062-.97 1.773-2.067 3.187-2.02 4.812l-.005-.001s0 .052.008.14c0 .02.004.04.005.061.006.05.012.11.022.175.006.042.007.084.016.126.008.048.024.095.034.144.01.049.02.099.035.152.012.043.02.086.034.126.279.975 1.057 2.46 3.265 2.91.606.123 1.638.178 2.447.119 3.024-.218 9.433-1.623 14.147-10.53 0 0 9.871.75 9.871-15.539l-.002.012\" fill=\"#0C1A22\"/><path d=\"M51.929 61.078c-.889.778-2.374.538-2.688 1.627a.362.362 0 0 1-.031.088.564.564 0 0 1-1.018.025.588.588 0 0 1-.057-.164c-.25-1.168-1.568-.952-2.385-1.908 0 0 .008.006 0 0a.58.58 0 0 1-.135-.368.57.57 0 0 1 .571-.569h.044c.622.028.691.237 2.653.323 1.965.088 2.125-.096 2.74-.066a.563.563 0 0 1 .306 1.012M59.482 51.52c-.658-3.758-3.316-5.192-5.302-4.402-1.391.552-2.642 2.612-1.118 5.304.904 1.599 1.33 2.427 1.555 3.324.093.379.225.702.417.965l.027.035c.084.11.18.21.29.292.212.174.523.352.911.362h.036c1.097-.011 3.819-2.277 3.184-5.88M44.646 46.677c-1.851-.882-4.481.322-5.351 3.872-.85 3.47 1.72 5.832 2.732 5.827.859 0 1.253-.658 1.253-.658.169-.227.298-.502.4-.82.27-.844.73-1.608 1.698-3.08 1.626-2.476.562-4.524-.732-5.14\" fill=\"#0C1A22\"/><path d=\"M42.294 52.244a.961.961 0 0 0 1.02-.895.975.975 0 0 0-.892-1.037.976.976 0 0 0-1.023.909.962.962 0 0 0 .895 1.023M55.875 53.037a.961.961 0 0 0 1.02-.896.973.973 0 0 0-.892-1.036.975.975 0 0 0-1.024.909.965.965 0 0 0 .896 1.023\" fill=\"#FFF\"/></g></svg>",
4
+ "iconInactiveSvg": "<svg viewBox=\"21 21 67 67\" xmlns=\"http://www.w3.org/2000/svg\"><g fill=\"none\" fill-rule=\"evenodd\"><path d=\"M89.088 54.687c0 19.156-15.53 34.685-34.686 34.685-19.157 0-34.687-15.53-34.687-34.685 0-19.158 15.53-34.688 34.687-34.688 19.156 0 34.686 15.53 34.686 34.688\" fill=\"#999999\"/><path d=\"M73.211 47.127c1.535 3.829 2.225 8.269 2.256 12.382 0 0-.018.78 1.474.803.656-.014 1.23-.352 1.45-.5 1.157-.811 2.22-2.486 2.233-5.271v-.006l-.001-.038c0-.122-.003-.241-.005-.361-.094-3.846-1.57-6.94-2.397-8.381-.184-.321-.337-.561-.435-.707-.052-.079-.105-.154-.16-.233a32.49 32.49 0 0 0-6.953-7.039c-.363.859-.91 1.742-1.678 2.634 1.75 2 3.173 4.119 4.216 6.717M69.15 48.083c-.177-9.506-7.937-17.158-17.485-17.158h-.036a17.553 17.553 0 0 0-6.681 1.288c-.016.007-.034.011-.05.019a17.599 17.599 0 0 0-6.163 4.244l-.01.012a17.478 17.478 0 0 0-2.64 3.657c-.023.042-.048.084-.071.13a.322.322 0 0 0-.022.046c-.341.69-2.028 4.313-2.012 9.06 0 0-.12 3.133 1.911 6.705a13.775 13.775 0 0 0 1.903 2.665l.046.052c.072.078.147.154.221.23 1.445 1.55 3.302 2.508 5.22 4.326.22.213.445.435.657.625.456.375.683.558 1.224.85a.03.03 0 0 0 .014.01l.002.001v.003l.091.047a8.19 8.19 0 0 0 .88.394c.942.36 2.02.576 3.17.607.114.003.228.003.34.003 2.953 0 5.403-1.42 7.85-2.776a68.268 68.268 0 0 1 2.516-1.311 46.174 46.174 0 0 0 1.633-.82l1.065-.633c7.068-4.289 6.426-12.276 6.426-12.276\" fill=\"#ffffff\"/><path d=\"M36.086 40.145c.719-1.33 1.608-2.56 2.64-3.657.003-.004.006-.009.01-.012a17.601 17.601 0 0 1 6.162-4.244c.016-.008.034-.012.05-.02l.003-.003c-.74-1.644-2.247-3.424-4.595-3.778-4.801-.72-11.252 5.05-4.371 11.894l.007-.004a.355.355 0 0 1 .022-.047c.023-.045.048-.087.072-.13M82.325 58.707v-.01l.002-.002a24.51 24.51 0 0 0-.037-1.096 23.971 23.971 0 0 0-.16-1.778l-.003-.014c-.026-.204-.056-.41-.09-.612-.052-.337-.11-.669-.174-.99-.202-.97-.465-1.901-.774-2.794-.77-2.224-1.836-4.209-3.004-5.94-.122-.177-.246-.353-.368-.525l.076.112c.099.147.247.382.428.697.827 1.441 2.303 4.534 2.397 8.38.002.12.005.24.005.362l.001.038v.006c-.014 2.785-1.076 4.46-2.234 5.27-.219.149-.793.487-1.449.5-1.492-.023-1.474-.802-1.474-.802-.031-4.113-.721-8.553-2.256-12.382-1.043-2.598-2.466-4.717-4.216-6.717.768-.892 1.315-1.775 1.678-2.634 2.267-5.368-2.735-9.535-6.86-9.056-1.826.213-3.818 1.804-5.103 3.683 6.055 2.667 10.309 8.67 10.44 15.68 0 0 .64 7.987-6.427 12.276a8.265 8.265 0 0 0-.202.127l-.08.05-.246.147-.03.018-.256.15-.01.004c-.08.048-.162.093-.241.138a.378.378 0 0 1-.035.018l-.013.008a.088.088 0 0 0-.025.013l-.013.007-.025.013-.014.007a.376.376 0 0 1-.026.013l-.014.008a.269.269 0 0 1-.028.014c-.005.003-.008.006-.012.007l-.084.044a.038.038 0 0 1-.013.005.33.33 0 0 1-.032.017l-.014.008a.502.502 0 0 0-.046.024l-.032.016-.014.006-.037.02a.035.035 0 0 0-.009.004c-.03.017-.063.033-.097.05l-.01.005a.933.933 0 0 0-.038.019l-.015.006a.61.61 0 0 1-.05.026c-.012.006-.025.012-.038.02l-.012.006-.046.022-.004.003-.107.052-.006.004c-.015.006-.03.015-.046.022l-.011.005a.908.908 0 0 1-.041.02l-.014.007-.041.02-.012.006-.048.025-.005.001-.11.054-.006.003-.047.023c-.005.001-.01.005-.013.007a.443.443 0 0 1-.041.02.158.158 0 0 0-.014.008l-.041.018a.608.608 0 0 1-.067.033c-.018.009-.037.017-.054.027h-.001l-.052.025a.145.145 0 0 1-.019.008c-.01.007-.021.011-.032.017-.004 0-.005.003-.009.005-.758.377-1.713.866-2.516 1.311-2.448 1.355-4.897 2.776-7.85 2.776h-.244l-.095-.003a9.637 9.637 0 0 1-3.171-.607 8.306 8.306 0 0 1-.421-.172 6.84 6.84 0 0 1-.459-.222l-.09-.047v-.003l-.003-.001a.03.03 0 0 1-.015-.01c-.54-.292-.768-.475-1.223-.85-.212-.19-.438-.412-.656-.625-1.919-1.819-3.777-2.776-5.22-4.326-.075-.076-.15-.152-.222-.23l-.046-.052a25.127 25.127 0 0 1-.256-.29 9.655 9.655 0 0 1-.244-.286l-.003-.006a8.163 8.163 0 0 1-.244-.31l-.072-.093-.022-.028c-.018-.022-.033-.046-.051-.07l-.021-.03a2.446 2.446 0 0 1-.06-.082l-.011-.014-.07-.097-.017-.025a6.77 6.77 0 0 1-.053-.075l-.02-.03a5.103 5.103 0 0 1-.056-.08l-.013-.02-.067-.1c-.005-.005-.006-.01-.01-.015-.02-.029-.039-.058-.057-.088a.463.463 0 0 1-.018-.026c-.018-.027-.035-.055-.054-.082a.127.127 0 0 1-.012-.022c-.045-.068-.089-.14-.133-.21l-.012-.021-.053-.089-.013-.019-.127-.218-.01-.016-.053-.095-.01-.02a15.437 15.437 0 0 1-.588-1.119c-.708 1.123-1.1 2.068-1.597 3.594-1.045 3.184-1.55 6.972-.892 10.317.791 4.064 2.375 7.808 5.406 10.542 1.972 1.777 4.268 2.864 6.942 3.236 2.405.343 4.617-1.077 4.617-3.658 0-1.854-1.537-3.635-1.687-5.457-.224-2.642 1.39-5.01 4.118-4.742 1.338.13 2.9 1.075 3.124 3.031.179 1.585-.07 2.495-.927 4.062-.97 1.773-2.067 3.187-2.02 4.812l-.005-.001s0 .052.008.14c0 .02.004.04.005.061.006.05.012.11.022.175.006.042.007.084.016.126.008.048.024.095.034.144.01.049.02.099.035.152.012.043.02.086.034.126.279.975 1.057 2.46 3.265 2.91.606.123 1.638.178 2.447.119 3.024-.218 9.433-1.623 14.147-10.53 0 0 9.871.75 9.871-15.539l-.002.012\" fill=\"#999999\"/><path d=\"M51.929 61.078c-.889.778-2.374.538-2.688 1.627a.362.362 0 0 1-.031.088.564.564 0 0 1-1.018.025.588.588 0 0 1-.057-.164c-.25-1.168-1.568-.952-2.385-1.908 0 0 .008.006 0 0a.58.58 0 0 1-.135-.368.57.57 0 0 1 .571-.569h.044c.622.028.691.237 2.653.323 1.965.088 2.125-.096 2.74-.066a.563.563 0 0 1 .306 1.012M59.482 51.52c-.658-3.758-3.316-5.192-5.302-4.402-1.391.552-2.642 2.612-1.118 5.304.904 1.599 1.33 2.427 1.555 3.324.093.379.225.702.417.965l.027.035c.084.11.18.21.29.292.212.174.523.352.911.362h.036c1.097-.011 3.819-2.277 3.184-5.88M44.646 46.677c-1.851-.882-4.481.322-5.351 3.872-.85 3.47 1.72 5.832 2.732 5.827.859 0 1.253-.658 1.253-.658.169-.227.298-.502.4-.82.27-.844.73-1.608 1.698-3.08 1.626-2.476.562-4.524-.732-5.14\" fill=\"#999999\"/><path d=\"M42.294 52.244a.961.961 0 0 0 1.02-.895.975.975 0 0 0-.892-1.037.976.976 0 0 0-1.023.909.962.962 0 0 0 .895 1.023M55.875 53.037a.961.961 0 0 0 1.02-.896.973.973 0 0 0-.892-1.036.975.975 0 0 0-1.024.909.965.965 0 0 0 .896 1.023\" fill=\"#ffffff\"/></g></svg>",
5
+ "iconDarkSvg": "<svg viewBox=\"21 21 67 67\" xmlns=\"http://www.w3.org/2000/svg\"><g fill=\"none\" fill-rule=\"evenodd\"><path d=\"M89.088 54.687c0 19.156-15.53 34.685-34.686 34.685-19.157 0-34.687-15.53-34.687-34.685 0-19.158 15.53-34.688 34.687-34.688 19.156 0 34.686 15.53 34.686 34.688\" fill=\"#D02C2F\"/><path d=\"M73.211 47.127c1.535 3.829 2.225 8.269 2.256 12.382 0 0-.018.78 1.474.803.656-.014 1.23-.352 1.45-.5 1.157-.811 2.22-2.486 2.233-5.271v-.006l-.001-.038c0-.122-.003-.241-.005-.361-.094-3.846-1.57-6.94-2.397-8.381-.184-.321-.337-.561-.435-.707-.052-.079-.105-.154-.16-.233a32.49 32.49 0 0 0-6.953-7.039c-.363.859-.91 1.742-1.678 2.634 1.75 2 3.173 4.119 4.216 6.717M69.15 48.083c-.177-9.506-7.937-17.158-17.485-17.158h-.036a17.553 17.553 0 0 0-6.681 1.288c-.016.007-.034.011-.05.019a17.599 17.599 0 0 0-6.163 4.244l-.01.012a17.478 17.478 0 0 0-2.64 3.657c-.023.042-.048.084-.071.13a.322.322 0 0 0-.022.046c-.341.69-2.028 4.313-2.012 9.06 0 0-.12 3.133 1.911 6.705a13.775 13.775 0 0 0 1.903 2.665l.046.052c.072.078.147.154.221.23 1.445 1.55 3.302 2.508 5.22 4.326.22.213.445.435.657.625.456.375.683.558 1.224.85a.03.03 0 0 0 .014.01l.002.001v.003l.091.047a8.19 8.19 0 0 0 .88.394c.942.36 2.02.576 3.17.607.114.003.228.003.34.003 2.953 0 5.403-1.42 7.85-2.776a68.268 68.268 0 0 1 2.516-1.311 46.174 46.174 0 0 0 1.633-.82l1.065-.633c7.068-4.289 6.426-12.276 6.426-12.276\" fill=\"#FFF\"/><path d=\"M36.086 40.145c.719-1.33 1.608-2.56 2.64-3.657.003-.004.006-.009.01-.012a17.601 17.601 0 0 1 6.162-4.244c.016-.008.034-.012.05-.02l.003-.003c-.74-1.644-2.247-3.424-4.595-3.778-4.801-.72-11.252 5.05-4.371 11.894l.007-.004a.355.355 0 0 1 .022-.047c.023-.045.048-.087.072-.13M82.325 58.707v-.01l.002-.002a24.51 24.51 0 0 0-.037-1.096 23.971 23.971 0 0 0-.16-1.778l-.003-.014c-.026-.204-.056-.41-.09-.612-.052-.337-.11-.669-.174-.99-.202-.97-.465-1.901-.774-2.794-.77-2.224-1.836-4.209-3.004-5.94-.122-.177-.246-.353-.368-.525l.076.112c.099.147.247.382.428.697.827 1.441 2.303 4.534 2.397 8.38.002.12.005.24.005.362l.001.038v.006c-.014 2.785-1.076 4.46-2.234 5.27-.219.149-.793.487-1.449.5-1.492-.023-1.474-.802-1.474-.802-.031-4.113-.721-8.553-2.256-12.382-1.043-2.598-2.466-4.717-4.216-6.717.768-.892 1.315-1.775 1.678-2.634 2.267-5.368-2.735-9.535-6.86-9.056-1.826.213-3.818 1.804-5.103 3.683 6.055 2.667 10.309 8.67 10.44 15.68 0 0 .64 7.987-6.427 12.276a8.265 8.265 0 0 0-.202.127l-.08.05-.246.147-.03.018-.256.15-.01.004c-.08.048-.162.093-.241.138a.378.378 0 0 1-.035.018l-.013.008a.088.088 0 0 0-.025.013l-.013.007-.025.013-.014.007a.376.376 0 0 1-.026.013l-.014.008a.269.269 0 0 1-.028.014c-.005.003-.008.006-.012.007l-.084.044a.038.038 0 0 1-.013.005.33.33 0 0 1-.032.017l-.014.008a.502.502 0 0 0-.046.024l-.032.016-.014.006-.037.02a.035.035 0 0 0-.009.004c-.03.017-.063.033-.097.05l-.01.005a.933.933 0 0 0-.038.019l-.015.006a.61.61 0 0 1-.05.026c-.012.006-.025.012-.038.02l-.012.006-.046.022-.004.003-.107.052-.006.004c-.015.006-.03.015-.046.022l-.011.005a.908.908 0 0 1-.041.02l-.014.007-.041.02-.012.006-.048.025-.005.001-.11.054-.006.003-.047.023c-.005.001-.01.005-.013.007a.443.443 0 0 1-.041.02.158.158 0 0 0-.014.008l-.041.018a.608.608 0 0 1-.067.033c-.018.009-.037.017-.054.027h-.001l-.052.025a.145.145 0 0 1-.019.008c-.01.007-.021.011-.032.017-.004 0-.005.003-.009.005-.758.377-1.713.866-2.516 1.311-2.448 1.355-4.897 2.776-7.85 2.776h-.244l-.095-.003a9.637 9.637 0 0 1-3.171-.607 8.306 8.306 0 0 1-.421-.172 6.84 6.84 0 0 1-.459-.222l-.09-.047v-.003l-.003-.001a.03.03 0 0 1-.015-.01c-.54-.292-.768-.475-1.223-.85-.212-.19-.438-.412-.656-.625-1.919-1.819-3.777-2.776-5.22-4.326-.075-.076-.15-.152-.222-.23l-.046-.052a25.127 25.127 0 0 1-.256-.29 9.655 9.655 0 0 1-.244-.286l-.003-.006a8.163 8.163 0 0 1-.244-.31l-.072-.093-.022-.028c-.018-.022-.033-.046-.051-.07l-.021-.03a2.446 2.446 0 0 1-.06-.082l-.011-.014-.07-.097-.017-.025a6.77 6.77 0 0 1-.053-.075l-.02-.03a5.103 5.103 0 0 1-.056-.08l-.013-.02-.067-.1c-.005-.005-.006-.01-.01-.015-.02-.029-.039-.058-.057-.088a.463.463 0 0 1-.018-.026c-.018-.027-.035-.055-.054-.082a.127.127 0 0 1-.012-.022c-.045-.068-.089-.14-.133-.21l-.012-.021-.053-.089-.013-.019-.127-.218-.01-.016-.053-.095-.01-.02a15.437 15.437 0 0 1-.588-1.119c-.708 1.123-1.1 2.068-1.597 3.594-1.045 3.184-1.55 6.972-.892 10.317.791 4.064 2.375 7.808 5.406 10.542 1.972 1.777 4.268 2.864 6.942 3.236 2.405.343 4.617-1.077 4.617-3.658 0-1.854-1.537-3.635-1.687-5.457-.224-2.642 1.39-5.01 4.118-4.742 1.338.13 2.9 1.075 3.124 3.031.179 1.585-.07 2.495-.927 4.062-.97 1.773-2.067 3.187-2.02 4.812l-.005-.001s0 .052.008.14c0 .02.004.04.005.061.006.05.012.11.022.175.006.042.007.084.016.126.008.048.024.095.034.144.01.049.02.099.035.152.012.043.02.086.034.126.279.975 1.057 2.46 3.265 2.91.606.123 1.638.178 2.447.119 3.024-.218 9.433-1.623 14.147-10.53 0 0 9.871.75 9.871-15.539l-.002.012\" fill=\"#0C1A22\"/><path d=\"M51.929 61.078c-.889.778-2.374.538-2.688 1.627a.362.362 0 0 1-.031.088.564.564 0 0 1-1.018.025.588.588 0 0 1-.057-.164c-.25-1.168-1.568-.952-2.385-1.908 0 0 .008.006 0 0a.58.58 0 0 1-.135-.368.57.57 0 0 1 .571-.569h.044c.622.028.691.237 2.653.323 1.965.088 2.125-.096 2.74-.066a.563.563 0 0 1 .306 1.012M59.482 51.52c-.658-3.758-3.316-5.192-5.302-4.402-1.391.552-2.642 2.612-1.118 5.304.904 1.599 1.33 2.427 1.555 3.324.093.379.225.702.417.965l.027.035c.084.11.18.21.29.292.212.174.523.352.911.362h.036c1.097-.011 3.819-2.277 3.184-5.88M44.646 46.677c-1.851-.882-4.481.322-5.351 3.872-.85 3.47 1.72 5.832 2.732 5.827.859 0 1.253-.658 1.253-.658.169-.227.298-.502.4-.82.27-.844.73-1.608 1.698-3.08 1.626-2.476.562-4.524-.732-5.14\" fill=\"#0C1A22\"/><path d=\"M42.294 52.244a.961.961 0 0 0 1.02-.895.975.975 0 0 0-.892-1.037.976.976 0 0 0-1.023.909.962.962 0 0 0 .895 1.023M55.875 53.037a.961.961 0 0 0 1.02-.896.973.973 0 0 0-.892-1.036.975.975 0 0 0-1.024.909.965.965 0 0 0 .896 1.023\" fill=\"#FFF\"/></g></svg>",
6
+ "iconDarkInactiveSvg": "<svg viewBox=\"21 21 67 67\" xmlns=\"http://www.w3.org/2000/svg\"><g fill=\"none\" fill-rule=\"evenodd\"><path d=\"M89.088 54.687c0 19.156-15.53 34.685-34.686 34.685-19.157 0-34.687-15.53-34.687-34.685 0-19.158 15.53-34.688 34.687-34.688 19.156 0 34.686 15.53 34.686 34.688\" fill=\"#999999\"/><path d=\"M73.211 47.127c1.535 3.829 2.225 8.269 2.256 12.382 0 0-.018.78 1.474.803.656-.014 1.23-.352 1.45-.5 1.157-.811 2.22-2.486 2.233-5.271v-.006l-.001-.038c0-.122-.003-.241-.005-.361-.094-3.846-1.57-6.94-2.397-8.381-.184-.321-.337-.561-.435-.707-.052-.079-.105-.154-.16-.233a32.49 32.49 0 0 0-6.953-7.039c-.363.859-.91 1.742-1.678 2.634 1.75 2 3.173 4.119 4.216 6.717M69.15 48.083c-.177-9.506-7.937-17.158-17.485-17.158h-.036a17.553 17.553 0 0 0-6.681 1.288c-.016.007-.034.011-.05.019a17.599 17.599 0 0 0-6.163 4.244l-.01.012a17.478 17.478 0 0 0-2.64 3.657c-.023.042-.048.084-.071.13a.322.322 0 0 0-.022.046c-.341.69-2.028 4.313-2.012 9.06 0 0-.12 3.133 1.911 6.705a13.775 13.775 0 0 0 1.903 2.665l.046.052c.072.078.147.154.221.23 1.445 1.55 3.302 2.508 5.22 4.326.22.213.445.435.657.625.456.375.683.558 1.224.85a.03.03 0 0 0 .014.01l.002.001v.003l.091.047a8.19 8.19 0 0 0 .88.394c.942.36 2.02.576 3.17.607.114.003.228.003.34.003 2.953 0 5.403-1.42 7.85-2.776a68.268 68.268 0 0 1 2.516-1.311 46.174 46.174 0 0 0 1.633-.82l1.065-.633c7.068-4.289 6.426-12.276 6.426-12.276\" fill=\"#ffffff\"/><path d=\"M36.086 40.145c.719-1.33 1.608-2.56 2.64-3.657.003-.004.006-.009.01-.012a17.601 17.601 0 0 1 6.162-4.244c.016-.008.034-.012.05-.02l.003-.003c-.74-1.644-2.247-3.424-4.595-3.778-4.801-.72-11.252 5.05-4.371 11.894l.007-.004a.355.355 0 0 1 .022-.047c.023-.045.048-.087.072-.13M82.325 58.707v-.01l.002-.002a24.51 24.51 0 0 0-.037-1.096 23.971 23.971 0 0 0-.16-1.778l-.003-.014c-.026-.204-.056-.41-.09-.612-.052-.337-.11-.669-.174-.99-.202-.97-.465-1.901-.774-2.794-.77-2.224-1.836-4.209-3.004-5.94-.122-.177-.246-.353-.368-.525l.076.112c.099.147.247.382.428.697.827 1.441 2.303 4.534 2.397 8.38.002.12.005.24.005.362l.001.038v.006c-.014 2.785-1.076 4.46-2.234 5.27-.219.149-.793.487-1.449.5-1.492-.023-1.474-.802-1.474-.802-.031-4.113-.721-8.553-2.256-12.382-1.043-2.598-2.466-4.717-4.216-6.717.768-.892 1.315-1.775 1.678-2.634 2.267-5.368-2.735-9.535-6.86-9.056-1.826.213-3.818 1.804-5.103 3.683 6.055 2.667 10.309 8.67 10.44 15.68 0 0 .64 7.987-6.427 12.276a8.265 8.265 0 0 0-.202.127l-.08.05-.246.147-.03.018-.256.15-.01.004c-.08.048-.162.093-.241.138a.378.378 0 0 1-.035.018l-.013.008a.088.088 0 0 0-.025.013l-.013.007-.025.013-.014.007a.376.376 0 0 1-.026.013l-.014.008a.269.269 0 0 1-.028.014c-.005.003-.008.006-.012.007l-.084.044a.038.038 0 0 1-.013.005.33.33 0 0 1-.032.017l-.014.008a.502.502 0 0 0-.046.024l-.032.016-.014.006-.037.02a.035.035 0 0 0-.009.004c-.03.017-.063.033-.097.05l-.01.005a.933.933 0 0 0-.038.019l-.015.006a.61.61 0 0 1-.05.026c-.012.006-.025.012-.038.02l-.012.006-.046.022-.004.003-.107.052-.006.004c-.015.006-.03.015-.046.022l-.011.005a.908.908 0 0 1-.041.02l-.014.007-.041.02-.012.006-.048.025-.005.001-.11.054-.006.003-.047.023c-.005.001-.01.005-.013.007a.443.443 0 0 1-.041.02.158.158 0 0 0-.014.008l-.041.018a.608.608 0 0 1-.067.033c-.018.009-.037.017-.054.027h-.001l-.052.025a.145.145 0 0 1-.019.008c-.01.007-.021.011-.032.017-.004 0-.005.003-.009.005-.758.377-1.713.866-2.516 1.311-2.448 1.355-4.897 2.776-7.85 2.776h-.244l-.095-.003a9.637 9.637 0 0 1-3.171-.607 8.306 8.306 0 0 1-.421-.172 6.84 6.84 0 0 1-.459-.222l-.09-.047v-.003l-.003-.001a.03.03 0 0 1-.015-.01c-.54-.292-.768-.475-1.223-.85-.212-.19-.438-.412-.656-.625-1.919-1.819-3.777-2.776-5.22-4.326-.075-.076-.15-.152-.222-.23l-.046-.052a25.127 25.127 0 0 1-.256-.29 9.655 9.655 0 0 1-.244-.286l-.003-.006a8.163 8.163 0 0 1-.244-.31l-.072-.093-.022-.028c-.018-.022-.033-.046-.051-.07l-.021-.03a2.446 2.446 0 0 1-.06-.082l-.011-.014-.07-.097-.017-.025a6.77 6.77 0 0 1-.053-.075l-.02-.03a5.103 5.103 0 0 1-.056-.08l-.013-.02-.067-.1c-.005-.005-.006-.01-.01-.015-.02-.029-.039-.058-.057-.088a.463.463 0 0 1-.018-.026c-.018-.027-.035-.055-.054-.082a.127.127 0 0 1-.012-.022c-.045-.068-.089-.14-.133-.21l-.012-.021-.053-.089-.013-.019-.127-.218-.01-.016-.053-.095-.01-.02a15.437 15.437 0 0 1-.588-1.119c-.708 1.123-1.1 2.068-1.597 3.594-1.045 3.184-1.55 6.972-.892 10.317.791 4.064 2.375 7.808 5.406 10.542 1.972 1.777 4.268 2.864 6.942 3.236 2.405.343 4.617-1.077 4.617-3.658 0-1.854-1.537-3.635-1.687-5.457-.224-2.642 1.39-5.01 4.118-4.742 1.338.13 2.9 1.075 3.124 3.031.179 1.585-.07 2.495-.927 4.062-.97 1.773-2.067 3.187-2.02 4.812l-.005-.001s0 .052.008.14c0 .02.004.04.005.061.006.05.012.11.022.175.006.042.007.084.016.126.008.048.024.095.034.144.01.049.02.099.035.152.012.043.02.086.034.126.279.975 1.057 2.46 3.265 2.91.606.123 1.638.178 2.447.119 3.024-.218 9.433-1.623 14.147-10.53 0 0 9.871.75 9.871-15.539l-.002.012\" fill=\"#999999\"/><path d=\"M51.929 61.078c-.889.778-2.374.538-2.688 1.627a.362.362 0 0 1-.031.088.564.564 0 0 1-1.018.025.588.588 0 0 1-.057-.164c-.25-1.168-1.568-.952-2.385-1.908 0 0 .008.006 0 0a.58.58 0 0 1-.135-.368.57.57 0 0 1 .571-.569h.044c.622.028.691.237 2.653.323 1.965.088 2.125-.096 2.74-.066a.563.563 0 0 1 .306 1.012M59.482 51.52c-.658-3.758-3.316-5.192-5.302-4.402-1.391.552-2.642 2.612-1.118 5.304.904 1.599 1.33 2.427 1.555 3.324.093.379.225.702.417.965l.027.035c.084.11.18.21.29.292.212.174.523.352.911.362h.036c1.097-.011 3.819-2.277 3.184-5.88M44.646 46.677c-1.851-.882-4.481.322-5.351 3.872-.85 3.47 1.72 5.832 2.732 5.827.859 0 1.253-.658 1.253-.658.169-.227.298-.502.4-.82.27-.844.73-1.608 1.698-3.08 1.626-2.476.562-4.524-.732-5.14\" fill=\"#999999\"/><path d=\"M42.294 52.244a.961.961 0 0 0 1.02-.895.975.975 0 0 0-.892-1.037.976.976 0 0 0-1.023.909.962.962 0 0 0 .895 1.023M55.875 53.037a.961.961 0 0 0 1.02-.896.973.973 0 0 0-.892-1.036.975.975 0 0 0-1.024.909.965.965 0 0 0 .896 1.023\" fill=\"#ffffff\"/></g></svg>",
7
+ "tools": [
8
+ {
9
+ "name": "find_restaurants",
10
+ "displayName": "Find Restaurants",
11
+ "description": "Search for nearby Panda Express restaurants by geographic coordinates. Returns restaurants sorted by distance with availability, delivery, and pickup status.",
12
+ "summary": "Find nearby Panda Express locations",
13
+ "icon": "map-pin",
14
+ "group": "Restaurants",
15
+ "input_schema": {
16
+ "type": "object",
17
+ "properties": {
18
+ "latitude": {
19
+ "type": "number",
20
+ "description": "Latitude coordinate of the search center"
21
+ },
22
+ "longitude": {
23
+ "type": "number",
24
+ "description": "Longitude coordinate of the search center"
25
+ },
26
+ "radius": {
27
+ "description": "Search radius in miles (default 10)",
28
+ "type": "number"
29
+ },
30
+ "limit": {
31
+ "description": "Maximum number of results (default 10)",
32
+ "type": "integer",
33
+ "minimum": -9007199254740991,
34
+ "maximum": 9007199254740991
35
+ }
36
+ },
37
+ "required": [
38
+ "latitude",
39
+ "longitude"
40
+ ],
41
+ "additionalProperties": false
42
+ },
43
+ "output_schema": {
44
+ "type": "object",
45
+ "properties": {
46
+ "restaurants": {
47
+ "type": "array",
48
+ "items": {
49
+ "type": "object",
50
+ "properties": {
51
+ "id": {
52
+ "type": "number",
53
+ "description": "Restaurant ID"
54
+ },
55
+ "name": {
56
+ "type": "string",
57
+ "description": "Restaurant name"
58
+ },
59
+ "slug": {
60
+ "type": "string",
61
+ "description": "URL-friendly slug"
62
+ },
63
+ "street_address": {
64
+ "type": "string",
65
+ "description": "Street address"
66
+ },
67
+ "city": {
68
+ "type": "string",
69
+ "description": "City"
70
+ },
71
+ "state": {
72
+ "type": "string",
73
+ "description": "State abbreviation"
74
+ },
75
+ "zip": {
76
+ "type": "string",
77
+ "description": "ZIP code"
78
+ },
79
+ "phone": {
80
+ "type": "string",
81
+ "description": "Phone number"
82
+ },
83
+ "latitude": {
84
+ "type": "number",
85
+ "description": "Latitude coordinate"
86
+ },
87
+ "longitude": {
88
+ "type": "number",
89
+ "description": "Longitude coordinate"
90
+ },
91
+ "distance": {
92
+ "type": "number",
93
+ "description": "Distance from search point in miles"
94
+ },
95
+ "is_available": {
96
+ "type": "boolean",
97
+ "description": "Whether the restaurant is currently available for orders"
98
+ },
99
+ "is_open": {
100
+ "type": "boolean",
101
+ "description": "Whether the restaurant is currently open"
102
+ },
103
+ "can_deliver": {
104
+ "type": "boolean",
105
+ "description": "Whether delivery is available"
106
+ },
107
+ "can_pickup": {
108
+ "type": "boolean",
109
+ "description": "Whether pickup is available"
110
+ },
111
+ "delivery_fee": {
112
+ "type": "string",
113
+ "description": "Delivery fee amount"
114
+ },
115
+ "ext_ref": {
116
+ "type": "string",
117
+ "description": "External reference number"
118
+ }
119
+ },
120
+ "required": [
121
+ "id",
122
+ "name",
123
+ "slug",
124
+ "street_address",
125
+ "city",
126
+ "state",
127
+ "zip",
128
+ "phone",
129
+ "latitude",
130
+ "longitude",
131
+ "distance",
132
+ "is_available",
133
+ "is_open",
134
+ "can_deliver",
135
+ "can_pickup",
136
+ "delivery_fee",
137
+ "ext_ref"
138
+ ],
139
+ "additionalProperties": false
140
+ },
141
+ "description": "List of nearby restaurants"
142
+ }
143
+ },
144
+ "required": [
145
+ "restaurants"
146
+ ],
147
+ "additionalProperties": false
148
+ }
149
+ },
150
+ {
151
+ "name": "get_restaurant",
152
+ "displayName": "Get Restaurant",
153
+ "description": "Get detailed information about a specific Panda Express restaurant by its URL slug or external reference number.",
154
+ "summary": "Get restaurant details by slug or ref",
155
+ "icon": "store",
156
+ "group": "Restaurants",
157
+ "input_schema": {
158
+ "type": "object",
159
+ "properties": {
160
+ "slug": {
161
+ "description": "Restaurant URL slug (e.g., \"fillmore-geary-px\")",
162
+ "type": "string"
163
+ },
164
+ "ext_ref": {
165
+ "description": "External reference number (e.g., \"4226\")",
166
+ "type": "string"
167
+ }
168
+ },
169
+ "additionalProperties": false
170
+ },
171
+ "output_schema": {
172
+ "type": "object",
173
+ "properties": {
174
+ "restaurant": {
175
+ "type": "object",
176
+ "properties": {
177
+ "id": {
178
+ "type": "number",
179
+ "description": "Restaurant ID"
180
+ },
181
+ "name": {
182
+ "type": "string",
183
+ "description": "Restaurant name"
184
+ },
185
+ "slug": {
186
+ "type": "string",
187
+ "description": "URL-friendly slug"
188
+ },
189
+ "street_address": {
190
+ "type": "string",
191
+ "description": "Street address"
192
+ },
193
+ "city": {
194
+ "type": "string",
195
+ "description": "City"
196
+ },
197
+ "state": {
198
+ "type": "string",
199
+ "description": "State abbreviation"
200
+ },
201
+ "zip": {
202
+ "type": "string",
203
+ "description": "ZIP code"
204
+ },
205
+ "phone": {
206
+ "type": "string",
207
+ "description": "Phone number"
208
+ },
209
+ "latitude": {
210
+ "type": "number",
211
+ "description": "Latitude coordinate"
212
+ },
213
+ "longitude": {
214
+ "type": "number",
215
+ "description": "Longitude coordinate"
216
+ },
217
+ "distance": {
218
+ "type": "number",
219
+ "description": "Distance from search point in miles"
220
+ },
221
+ "is_available": {
222
+ "type": "boolean",
223
+ "description": "Whether the restaurant is currently available for orders"
224
+ },
225
+ "is_open": {
226
+ "type": "boolean",
227
+ "description": "Whether the restaurant is currently open"
228
+ },
229
+ "can_deliver": {
230
+ "type": "boolean",
231
+ "description": "Whether delivery is available"
232
+ },
233
+ "can_pickup": {
234
+ "type": "boolean",
235
+ "description": "Whether pickup is available"
236
+ },
237
+ "delivery_fee": {
238
+ "type": "string",
239
+ "description": "Delivery fee amount"
240
+ },
241
+ "ext_ref": {
242
+ "type": "string",
243
+ "description": "External reference number"
244
+ }
245
+ },
246
+ "required": [
247
+ "id",
248
+ "name",
249
+ "slug",
250
+ "street_address",
251
+ "city",
252
+ "state",
253
+ "zip",
254
+ "phone",
255
+ "latitude",
256
+ "longitude",
257
+ "distance",
258
+ "is_available",
259
+ "is_open",
260
+ "can_deliver",
261
+ "can_pickup",
262
+ "delivery_fee",
263
+ "ext_ref"
264
+ ],
265
+ "additionalProperties": false,
266
+ "description": "Restaurant details"
267
+ }
268
+ },
269
+ "required": [
270
+ "restaurant"
271
+ ],
272
+ "additionalProperties": false
273
+ }
274
+ },
275
+ {
276
+ "name": "get_restaurant_menu",
277
+ "displayName": "Get Restaurant Menu",
278
+ "description": "Get the full menu for a specific Panda Express restaurant. Returns categories (e.g., \"Bigger Plates\", \"Sides\") with their products including name, description, price, and calories.",
279
+ "summary": "Get menu for a Panda Express location",
280
+ "icon": "utensils",
281
+ "group": "Menu",
282
+ "input_schema": {
283
+ "type": "object",
284
+ "properties": {
285
+ "restaurant_id": {
286
+ "type": "integer",
287
+ "minimum": -9007199254740991,
288
+ "maximum": 9007199254740991,
289
+ "description": "Restaurant ID (from find_restaurants)"
290
+ }
291
+ },
292
+ "required": [
293
+ "restaurant_id"
294
+ ],
295
+ "additionalProperties": false
296
+ },
297
+ "output_schema": {
298
+ "type": "object",
299
+ "properties": {
300
+ "categories": {
301
+ "type": "array",
302
+ "items": {
303
+ "type": "object",
304
+ "properties": {
305
+ "id": {
306
+ "type": "number",
307
+ "description": "Category ID"
308
+ },
309
+ "name": {
310
+ "type": "string",
311
+ "description": "Category name (e.g., \"Bigger Plates\", \"Sides\")"
312
+ },
313
+ "description": {
314
+ "type": "string",
315
+ "description": "Category description"
316
+ },
317
+ "product_count": {
318
+ "type": "integer",
319
+ "minimum": -9007199254740991,
320
+ "maximum": 9007199254740991,
321
+ "description": "Number of products in this category"
322
+ }
323
+ },
324
+ "required": [
325
+ "id",
326
+ "name",
327
+ "description",
328
+ "product_count"
329
+ ],
330
+ "additionalProperties": false
331
+ },
332
+ "description": "Menu categories"
333
+ },
334
+ "products": {
335
+ "type": "array",
336
+ "items": {
337
+ "type": "object",
338
+ "properties": {
339
+ "id": {
340
+ "type": "number",
341
+ "description": "Product ID"
342
+ },
343
+ "name": {
344
+ "type": "string",
345
+ "description": "Product name (e.g., \"Orange Chicken\", \"Chow Mein\")"
346
+ },
347
+ "description": {
348
+ "type": "string",
349
+ "description": "Product description"
350
+ },
351
+ "cost": {
352
+ "type": "number",
353
+ "description": "Base cost in dollars"
354
+ },
355
+ "base_calories": {
356
+ "type": "string",
357
+ "description": "Base calorie count"
358
+ },
359
+ "max_calories": {
360
+ "type": "string",
361
+ "description": "Maximum calorie count"
362
+ },
363
+ "image_url": {
364
+ "type": "string",
365
+ "description": "Product image URL"
366
+ },
367
+ "category": {
368
+ "type": "string",
369
+ "description": "Category name this product belongs to"
370
+ }
371
+ },
372
+ "required": [
373
+ "id",
374
+ "name",
375
+ "description",
376
+ "cost",
377
+ "base_calories",
378
+ "max_calories",
379
+ "image_url",
380
+ "category"
381
+ ],
382
+ "additionalProperties": false
383
+ },
384
+ "description": "All menu products across categories"
385
+ }
386
+ },
387
+ "required": [
388
+ "categories",
389
+ "products"
390
+ ],
391
+ "additionalProperties": false
392
+ }
393
+ },
394
+ {
395
+ "name": "get_product_modifiers",
396
+ "displayName": "Get Product Modifiers",
397
+ "description": "Get available modifier options for a menu product. Most products (bowls, plates, combos) require modifier selections (side, entree, drink choices). Use the returned option IDs when calling add_product_to_basket.",
398
+ "summary": "Get customization options for a menu item",
399
+ "icon": "list-checks",
400
+ "group": "Menu",
401
+ "input_schema": {
402
+ "type": "object",
403
+ "properties": {
404
+ "product_id": {
405
+ "type": "integer",
406
+ "minimum": -9007199254740991,
407
+ "maximum": 9007199254740991,
408
+ "description": "Product ID from get_restaurant_menu"
409
+ }
410
+ },
411
+ "required": [
412
+ "product_id"
413
+ ],
414
+ "additionalProperties": false
415
+ },
416
+ "output_schema": {
417
+ "type": "object",
418
+ "properties": {
419
+ "groups": {
420
+ "type": "array",
421
+ "items": {
422
+ "type": "object",
423
+ "properties": {
424
+ "id": {
425
+ "type": "number",
426
+ "description": "Modifier group ID"
427
+ },
428
+ "name": {
429
+ "type": "string",
430
+ "description": "Group name (e.g., \"Step 1\", \"Size\")"
431
+ },
432
+ "mandatory": {
433
+ "type": "boolean",
434
+ "description": "Whether a selection is required from this group"
435
+ },
436
+ "options": {
437
+ "type": "array",
438
+ "items": {
439
+ "type": "object",
440
+ "properties": {
441
+ "id": {
442
+ "type": "number",
443
+ "description": "Option ID — pass to add_product_to_basket in the options array"
444
+ },
445
+ "name": {
446
+ "type": "string",
447
+ "description": "Option name (e.g., \"Chow Mein\", \"16.9oz\")"
448
+ },
449
+ "cost": {
450
+ "type": "number",
451
+ "description": "Additional cost for this option (0 if included)"
452
+ },
453
+ "is_default": {
454
+ "type": "boolean",
455
+ "description": "Whether this option is selected by default"
456
+ }
457
+ },
458
+ "required": [
459
+ "id",
460
+ "name",
461
+ "cost",
462
+ "is_default"
463
+ ],
464
+ "additionalProperties": false
465
+ },
466
+ "description": "Available options in this group"
467
+ }
468
+ },
469
+ "required": [
470
+ "id",
471
+ "name",
472
+ "mandatory",
473
+ "options"
474
+ ],
475
+ "additionalProperties": false
476
+ },
477
+ "description": "Modifier groups with their options"
478
+ }
479
+ },
480
+ "required": [
481
+ "groups"
482
+ ],
483
+ "additionalProperties": false
484
+ }
485
+ },
486
+ {
487
+ "name": "create_basket",
488
+ "displayName": "Create Basket",
489
+ "description": "Create a new order basket (cart) at a specific Panda Express restaurant. The basket must be created before adding products. Use \"asap\" for timewanted to order immediately.",
490
+ "summary": "Start a new order at a restaurant",
491
+ "icon": "shopping-cart",
492
+ "group": "Orders",
493
+ "input_schema": {
494
+ "type": "object",
495
+ "properties": {
496
+ "restaurant_id": {
497
+ "type": "integer",
498
+ "minimum": -9007199254740991,
499
+ "maximum": 9007199254740991,
500
+ "description": "Restaurant ID to order from"
501
+ },
502
+ "time_wanted": {
503
+ "description": "Desired pickup/delivery time, or \"asap\" (default \"asap\")",
504
+ "type": "string"
505
+ }
506
+ },
507
+ "required": [
508
+ "restaurant_id"
509
+ ],
510
+ "additionalProperties": false
511
+ },
512
+ "output_schema": {
513
+ "type": "object",
514
+ "properties": {
515
+ "basket": {
516
+ "type": "object",
517
+ "properties": {
518
+ "id": {
519
+ "type": "string",
520
+ "description": "Basket ID (UUID)"
521
+ },
522
+ "vendor_id": {
523
+ "type": "number",
524
+ "description": "Restaurant ID"
525
+ },
526
+ "subtotal": {
527
+ "type": "number",
528
+ "description": "Subtotal before tax"
529
+ },
530
+ "sales_tax": {
531
+ "type": "number",
532
+ "description": "Sales tax amount"
533
+ },
534
+ "total": {
535
+ "type": "number",
536
+ "description": "Total amount including tax and fees"
537
+ },
538
+ "product_count": {
539
+ "type": "integer",
540
+ "minimum": -9007199254740991,
541
+ "maximum": 9007199254740991,
542
+ "description": "Number of products in the basket"
543
+ },
544
+ "delivery_mode": {
545
+ "type": "string",
546
+ "description": "Delivery mode (e.g., \"pickup\", \"delivery\")"
547
+ },
548
+ "earliest_ready_time": {
549
+ "type": "string",
550
+ "description": "Earliest ready time as ISO 8601 timestamp"
551
+ },
552
+ "lead_time_minutes": {
553
+ "type": "number",
554
+ "description": "Estimated lead time in minutes"
555
+ },
556
+ "coupon_discount": {
557
+ "type": "number",
558
+ "description": "Coupon discount amount"
559
+ }
560
+ },
561
+ "required": [
562
+ "id",
563
+ "vendor_id",
564
+ "subtotal",
565
+ "sales_tax",
566
+ "total",
567
+ "product_count",
568
+ "delivery_mode",
569
+ "earliest_ready_time",
570
+ "lead_time_minutes",
571
+ "coupon_discount"
572
+ ],
573
+ "additionalProperties": false,
574
+ "description": "The created basket"
575
+ }
576
+ },
577
+ "required": [
578
+ "basket"
579
+ ],
580
+ "additionalProperties": false
581
+ }
582
+ },
583
+ {
584
+ "name": "get_basket",
585
+ "displayName": "Get Basket",
586
+ "description": "Get the current contents and totals of an order basket including all products, quantities, and prices.",
587
+ "summary": "View basket contents and totals",
588
+ "icon": "shopping-bag",
589
+ "group": "Orders",
590
+ "input_schema": {
591
+ "type": "object",
592
+ "properties": {
593
+ "basket_id": {
594
+ "type": "string",
595
+ "description": "Basket ID (UUID from create_basket)"
596
+ }
597
+ },
598
+ "required": [
599
+ "basket_id"
600
+ ],
601
+ "additionalProperties": false
602
+ },
603
+ "output_schema": {
604
+ "type": "object",
605
+ "properties": {
606
+ "basket": {
607
+ "type": "object",
608
+ "properties": {
609
+ "id": {
610
+ "type": "string",
611
+ "description": "Basket ID (UUID)"
612
+ },
613
+ "vendor_id": {
614
+ "type": "number",
615
+ "description": "Restaurant ID"
616
+ },
617
+ "subtotal": {
618
+ "type": "number",
619
+ "description": "Subtotal before tax"
620
+ },
621
+ "sales_tax": {
622
+ "type": "number",
623
+ "description": "Sales tax amount"
624
+ },
625
+ "total": {
626
+ "type": "number",
627
+ "description": "Total amount including tax and fees"
628
+ },
629
+ "product_count": {
630
+ "type": "integer",
631
+ "minimum": -9007199254740991,
632
+ "maximum": 9007199254740991,
633
+ "description": "Number of products in the basket"
634
+ },
635
+ "delivery_mode": {
636
+ "type": "string",
637
+ "description": "Delivery mode (e.g., \"pickup\", \"delivery\")"
638
+ },
639
+ "earliest_ready_time": {
640
+ "type": "string",
641
+ "description": "Earliest ready time as ISO 8601 timestamp"
642
+ },
643
+ "lead_time_minutes": {
644
+ "type": "number",
645
+ "description": "Estimated lead time in minutes"
646
+ },
647
+ "coupon_discount": {
648
+ "type": "number",
649
+ "description": "Coupon discount amount"
650
+ }
651
+ },
652
+ "required": [
653
+ "id",
654
+ "vendor_id",
655
+ "subtotal",
656
+ "sales_tax",
657
+ "total",
658
+ "product_count",
659
+ "delivery_mode",
660
+ "earliest_ready_time",
661
+ "lead_time_minutes",
662
+ "coupon_discount"
663
+ ],
664
+ "additionalProperties": false,
665
+ "description": "Basket summary"
666
+ },
667
+ "products": {
668
+ "type": "array",
669
+ "items": {
670
+ "type": "object",
671
+ "properties": {
672
+ "id": {
673
+ "type": "number",
674
+ "description": "Basket product instance ID"
675
+ },
676
+ "product_id": {
677
+ "type": "number",
678
+ "description": "Product ID from the menu"
679
+ },
680
+ "name": {
681
+ "type": "string",
682
+ "description": "Product name"
683
+ },
684
+ "quantity": {
685
+ "type": "integer",
686
+ "minimum": -9007199254740991,
687
+ "maximum": 9007199254740991,
688
+ "description": "Quantity in basket"
689
+ },
690
+ "total_cost": {
691
+ "type": "number",
692
+ "description": "Total cost for this line item"
693
+ }
694
+ },
695
+ "required": [
696
+ "id",
697
+ "product_id",
698
+ "name",
699
+ "quantity",
700
+ "total_cost"
701
+ ],
702
+ "additionalProperties": false
703
+ },
704
+ "description": "Products in the basket"
705
+ }
706
+ },
707
+ "required": [
708
+ "basket",
709
+ "products"
710
+ ],
711
+ "additionalProperties": false
712
+ }
713
+ },
714
+ {
715
+ "name": "add_product_to_basket",
716
+ "displayName": "Add Product to Basket",
717
+ "description": "Add a menu product to an existing basket. Most products require modifier selections — call get_product_modifiers first to get available options, then pass the selected option IDs. For simple products (bottled drinks), only the size option is needed.",
718
+ "summary": "Add a menu item to your order",
719
+ "icon": "plus-circle",
720
+ "group": "Orders",
721
+ "input_schema": {
722
+ "type": "object",
723
+ "properties": {
724
+ "basket_id": {
725
+ "type": "string",
726
+ "description": "Basket ID (UUID)"
727
+ },
728
+ "product_id": {
729
+ "type": "integer",
730
+ "minimum": -9007199254740991,
731
+ "maximum": 9007199254740991,
732
+ "description": "Product ID from get_restaurant_menu"
733
+ },
734
+ "quantity": {
735
+ "description": "Quantity to add (default 1)",
736
+ "type": "integer",
737
+ "minimum": -9007199254740991,
738
+ "maximum": 9007199254740991
739
+ },
740
+ "options": {
741
+ "description": "Array of modifier option IDs from get_product_modifiers. For combos, include one option from each mandatory group (e.g., side choice, entree choice, drink choice).",
742
+ "type": "array",
743
+ "items": {
744
+ "type": "number"
745
+ }
746
+ }
747
+ },
748
+ "required": [
749
+ "basket_id",
750
+ "product_id"
751
+ ],
752
+ "additionalProperties": false
753
+ },
754
+ "output_schema": {
755
+ "type": "object",
756
+ "properties": {
757
+ "basket": {
758
+ "type": "object",
759
+ "properties": {
760
+ "id": {
761
+ "type": "string",
762
+ "description": "Basket ID (UUID)"
763
+ },
764
+ "vendor_id": {
765
+ "type": "number",
766
+ "description": "Restaurant ID"
767
+ },
768
+ "subtotal": {
769
+ "type": "number",
770
+ "description": "Subtotal before tax"
771
+ },
772
+ "sales_tax": {
773
+ "type": "number",
774
+ "description": "Sales tax amount"
775
+ },
776
+ "total": {
777
+ "type": "number",
778
+ "description": "Total amount including tax and fees"
779
+ },
780
+ "product_count": {
781
+ "type": "integer",
782
+ "minimum": -9007199254740991,
783
+ "maximum": 9007199254740991,
784
+ "description": "Number of products in the basket"
785
+ },
786
+ "delivery_mode": {
787
+ "type": "string",
788
+ "description": "Delivery mode (e.g., \"pickup\", \"delivery\")"
789
+ },
790
+ "earliest_ready_time": {
791
+ "type": "string",
792
+ "description": "Earliest ready time as ISO 8601 timestamp"
793
+ },
794
+ "lead_time_minutes": {
795
+ "type": "number",
796
+ "description": "Estimated lead time in minutes"
797
+ },
798
+ "coupon_discount": {
799
+ "type": "number",
800
+ "description": "Coupon discount amount"
801
+ }
802
+ },
803
+ "required": [
804
+ "id",
805
+ "vendor_id",
806
+ "subtotal",
807
+ "sales_tax",
808
+ "total",
809
+ "product_count",
810
+ "delivery_mode",
811
+ "earliest_ready_time",
812
+ "lead_time_minutes",
813
+ "coupon_discount"
814
+ ],
815
+ "additionalProperties": false,
816
+ "description": "Updated basket after adding the product"
817
+ }
818
+ },
819
+ "required": [
820
+ "basket"
821
+ ],
822
+ "additionalProperties": false
823
+ }
824
+ },
825
+ {
826
+ "name": "update_product_quantity",
827
+ "displayName": "Update Product Quantity",
828
+ "description": "Change the quantity of a product already in the basket. Use the basket product instance ID (from get_basket products list), not the menu product ID. Set quantity to 0 to remove the item.",
829
+ "summary": "Change quantity of an item in your order",
830
+ "icon": "hash",
831
+ "group": "Orders",
832
+ "input_schema": {
833
+ "type": "object",
834
+ "properties": {
835
+ "basket_id": {
836
+ "type": "string",
837
+ "description": "Basket ID (UUID)"
838
+ },
839
+ "basket_product_id": {
840
+ "type": "number",
841
+ "description": "Basket product instance ID (from get_basket products list)"
842
+ },
843
+ "quantity": {
844
+ "type": "integer",
845
+ "minimum": 0,
846
+ "maximum": 9007199254740991,
847
+ "description": "New quantity (0 to remove the item)"
848
+ }
849
+ },
850
+ "required": [
851
+ "basket_id",
852
+ "basket_product_id",
853
+ "quantity"
854
+ ],
855
+ "additionalProperties": false
856
+ },
857
+ "output_schema": {
858
+ "type": "object",
859
+ "properties": {
860
+ "basket": {
861
+ "type": "object",
862
+ "properties": {
863
+ "id": {
864
+ "type": "string",
865
+ "description": "Basket ID (UUID)"
866
+ },
867
+ "vendor_id": {
868
+ "type": "number",
869
+ "description": "Restaurant ID"
870
+ },
871
+ "subtotal": {
872
+ "type": "number",
873
+ "description": "Subtotal before tax"
874
+ },
875
+ "sales_tax": {
876
+ "type": "number",
877
+ "description": "Sales tax amount"
878
+ },
879
+ "total": {
880
+ "type": "number",
881
+ "description": "Total amount including tax and fees"
882
+ },
883
+ "product_count": {
884
+ "type": "integer",
885
+ "minimum": -9007199254740991,
886
+ "maximum": 9007199254740991,
887
+ "description": "Number of products in the basket"
888
+ },
889
+ "delivery_mode": {
890
+ "type": "string",
891
+ "description": "Delivery mode (e.g., \"pickup\", \"delivery\")"
892
+ },
893
+ "earliest_ready_time": {
894
+ "type": "string",
895
+ "description": "Earliest ready time as ISO 8601 timestamp"
896
+ },
897
+ "lead_time_minutes": {
898
+ "type": "number",
899
+ "description": "Estimated lead time in minutes"
900
+ },
901
+ "coupon_discount": {
902
+ "type": "number",
903
+ "description": "Coupon discount amount"
904
+ }
905
+ },
906
+ "required": [
907
+ "id",
908
+ "vendor_id",
909
+ "subtotal",
910
+ "sales_tax",
911
+ "total",
912
+ "product_count",
913
+ "delivery_mode",
914
+ "earliest_ready_time",
915
+ "lead_time_minutes",
916
+ "coupon_discount"
917
+ ],
918
+ "additionalProperties": false,
919
+ "description": "Updated basket"
920
+ }
921
+ },
922
+ "required": [
923
+ "basket"
924
+ ],
925
+ "additionalProperties": false
926
+ }
927
+ },
928
+ {
929
+ "name": "apply_coupon",
930
+ "displayName": "Apply Coupon",
931
+ "description": "Apply a coupon or promo code to an existing basket. Returns the updated basket with discount applied.",
932
+ "summary": "Apply a coupon code to your order",
933
+ "icon": "ticket",
934
+ "group": "Orders",
935
+ "input_schema": {
936
+ "type": "object",
937
+ "properties": {
938
+ "basket_id": {
939
+ "type": "string",
940
+ "description": "Basket ID (UUID)"
941
+ },
942
+ "coupon_code": {
943
+ "type": "string",
944
+ "description": "Coupon or promo code to apply"
945
+ }
946
+ },
947
+ "required": [
948
+ "basket_id",
949
+ "coupon_code"
950
+ ],
951
+ "additionalProperties": false
952
+ },
953
+ "output_schema": {
954
+ "type": "object",
955
+ "properties": {
956
+ "basket": {
957
+ "type": "object",
958
+ "properties": {
959
+ "id": {
960
+ "type": "string",
961
+ "description": "Basket ID (UUID)"
962
+ },
963
+ "vendor_id": {
964
+ "type": "number",
965
+ "description": "Restaurant ID"
966
+ },
967
+ "subtotal": {
968
+ "type": "number",
969
+ "description": "Subtotal before tax"
970
+ },
971
+ "sales_tax": {
972
+ "type": "number",
973
+ "description": "Sales tax amount"
974
+ },
975
+ "total": {
976
+ "type": "number",
977
+ "description": "Total amount including tax and fees"
978
+ },
979
+ "product_count": {
980
+ "type": "integer",
981
+ "minimum": -9007199254740991,
982
+ "maximum": 9007199254740991,
983
+ "description": "Number of products in the basket"
984
+ },
985
+ "delivery_mode": {
986
+ "type": "string",
987
+ "description": "Delivery mode (e.g., \"pickup\", \"delivery\")"
988
+ },
989
+ "earliest_ready_time": {
990
+ "type": "string",
991
+ "description": "Earliest ready time as ISO 8601 timestamp"
992
+ },
993
+ "lead_time_minutes": {
994
+ "type": "number",
995
+ "description": "Estimated lead time in minutes"
996
+ },
997
+ "coupon_discount": {
998
+ "type": "number",
999
+ "description": "Coupon discount amount"
1000
+ }
1001
+ },
1002
+ "required": [
1003
+ "id",
1004
+ "vendor_id",
1005
+ "subtotal",
1006
+ "sales_tax",
1007
+ "total",
1008
+ "product_count",
1009
+ "delivery_mode",
1010
+ "earliest_ready_time",
1011
+ "lead_time_minutes",
1012
+ "coupon_discount"
1013
+ ],
1014
+ "additionalProperties": false,
1015
+ "description": "Updated basket with coupon applied"
1016
+ }
1017
+ },
1018
+ "required": [
1019
+ "basket"
1020
+ ],
1021
+ "additionalProperties": false
1022
+ }
1023
+ },
1024
+ {
1025
+ "name": "remove_coupon",
1026
+ "displayName": "Remove Coupon",
1027
+ "description": "Remove a previously applied coupon from the basket.",
1028
+ "summary": "Remove a coupon from your order",
1029
+ "icon": "ticket-x",
1030
+ "group": "Orders",
1031
+ "input_schema": {
1032
+ "type": "object",
1033
+ "properties": {
1034
+ "basket_id": {
1035
+ "type": "string",
1036
+ "description": "Basket ID (UUID)"
1037
+ }
1038
+ },
1039
+ "required": [
1040
+ "basket_id"
1041
+ ],
1042
+ "additionalProperties": false
1043
+ },
1044
+ "output_schema": {
1045
+ "type": "object",
1046
+ "properties": {
1047
+ "basket": {
1048
+ "type": "object",
1049
+ "properties": {
1050
+ "id": {
1051
+ "type": "string",
1052
+ "description": "Basket ID (UUID)"
1053
+ },
1054
+ "vendor_id": {
1055
+ "type": "number",
1056
+ "description": "Restaurant ID"
1057
+ },
1058
+ "subtotal": {
1059
+ "type": "number",
1060
+ "description": "Subtotal before tax"
1061
+ },
1062
+ "sales_tax": {
1063
+ "type": "number",
1064
+ "description": "Sales tax amount"
1065
+ },
1066
+ "total": {
1067
+ "type": "number",
1068
+ "description": "Total amount including tax and fees"
1069
+ },
1070
+ "product_count": {
1071
+ "type": "integer",
1072
+ "minimum": -9007199254740991,
1073
+ "maximum": 9007199254740991,
1074
+ "description": "Number of products in the basket"
1075
+ },
1076
+ "delivery_mode": {
1077
+ "type": "string",
1078
+ "description": "Delivery mode (e.g., \"pickup\", \"delivery\")"
1079
+ },
1080
+ "earliest_ready_time": {
1081
+ "type": "string",
1082
+ "description": "Earliest ready time as ISO 8601 timestamp"
1083
+ },
1084
+ "lead_time_minutes": {
1085
+ "type": "number",
1086
+ "description": "Estimated lead time in minutes"
1087
+ },
1088
+ "coupon_discount": {
1089
+ "type": "number",
1090
+ "description": "Coupon discount amount"
1091
+ }
1092
+ },
1093
+ "required": [
1094
+ "id",
1095
+ "vendor_id",
1096
+ "subtotal",
1097
+ "sales_tax",
1098
+ "total",
1099
+ "product_count",
1100
+ "delivery_mode",
1101
+ "earliest_ready_time",
1102
+ "lead_time_minutes",
1103
+ "coupon_discount"
1104
+ ],
1105
+ "additionalProperties": false,
1106
+ "description": "Updated basket after coupon removal"
1107
+ }
1108
+ },
1109
+ "required": [
1110
+ "basket"
1111
+ ],
1112
+ "additionalProperties": false
1113
+ }
1114
+ },
1115
+ {
1116
+ "name": "get_checkout_summary",
1117
+ "displayName": "Get Checkout Summary",
1118
+ "description": "Validate and get the checkout summary for a basket. Returns the total, tax, and estimated ready time. Call this before submitting an order to review the final totals.",
1119
+ "summary": "Review order totals before checkout",
1120
+ "icon": "receipt",
1121
+ "group": "Orders",
1122
+ "input_schema": {
1123
+ "type": "object",
1124
+ "properties": {
1125
+ "basket_id": {
1126
+ "type": "string",
1127
+ "description": "Basket ID (UUID)"
1128
+ }
1129
+ },
1130
+ "required": [
1131
+ "basket_id"
1132
+ ],
1133
+ "additionalProperties": false
1134
+ },
1135
+ "output_schema": {
1136
+ "type": "object",
1137
+ "properties": {
1138
+ "summary": {
1139
+ "type": "object",
1140
+ "properties": {
1141
+ "basket_id": {
1142
+ "type": "string",
1143
+ "description": "Basket ID"
1144
+ },
1145
+ "subtotal": {
1146
+ "type": "number",
1147
+ "description": "Subtotal before tax"
1148
+ },
1149
+ "tax": {
1150
+ "type": "number",
1151
+ "description": "Tax amount"
1152
+ },
1153
+ "total": {
1154
+ "type": "number",
1155
+ "description": "Total amount including tax and fees"
1156
+ },
1157
+ "ready_time": {
1158
+ "type": "string",
1159
+ "description": "Estimated ready time"
1160
+ }
1161
+ },
1162
+ "required": [
1163
+ "basket_id",
1164
+ "subtotal",
1165
+ "tax",
1166
+ "total",
1167
+ "ready_time"
1168
+ ],
1169
+ "additionalProperties": false,
1170
+ "description": "Checkout summary with totals"
1171
+ }
1172
+ },
1173
+ "required": [
1174
+ "summary"
1175
+ ],
1176
+ "additionalProperties": false
1177
+ }
1178
+ },
1179
+ {
1180
+ "name": "navigate_to_checkout",
1181
+ "displayName": "Navigate to Checkout",
1182
+ "description": "Sync a basket into the browser session and navigate to the checkout page. The user sees the payment page with their order ready — they only need to select a payment method and place the order. Call this after building a basket with add_product_to_basket.",
1183
+ "summary": "Open the checkout page for a basket",
1184
+ "icon": "credit-card",
1185
+ "group": "Orders",
1186
+ "input_schema": {
1187
+ "type": "object",
1188
+ "properties": {
1189
+ "basket_id": {
1190
+ "type": "string",
1191
+ "description": "Basket ID (UUID) to check out"
1192
+ },
1193
+ "restaurant_name": {
1194
+ "description": "Restaurant name for display (auto-detected if omitted)",
1195
+ "type": "string"
1196
+ },
1197
+ "restaurant_ext_ref": {
1198
+ "description": "Restaurant external reference number (auto-detected if omitted)",
1199
+ "type": "string"
1200
+ }
1201
+ },
1202
+ "required": [
1203
+ "basket_id"
1204
+ ],
1205
+ "additionalProperties": false
1206
+ },
1207
+ "output_schema": {
1208
+ "type": "object",
1209
+ "properties": {
1210
+ "navigated": {
1211
+ "type": "boolean",
1212
+ "description": "Whether the checkout page was opened"
1213
+ },
1214
+ "url": {
1215
+ "type": "string",
1216
+ "description": "The checkout page URL"
1217
+ }
1218
+ },
1219
+ "required": [
1220
+ "navigated",
1221
+ "url"
1222
+ ],
1223
+ "additionalProperties": false
1224
+ }
1225
+ },
1226
+ {
1227
+ "name": "cancel_order",
1228
+ "displayName": "Cancel Order",
1229
+ "description": "Cancel a previously submitted order. Only works for orders that have not yet been prepared. The order ID can be obtained from get_recent_orders.",
1230
+ "summary": "Cancel a pending order",
1231
+ "icon": "x-circle",
1232
+ "group": "Orders",
1233
+ "input_schema": {
1234
+ "type": "object",
1235
+ "properties": {
1236
+ "order_id": {
1237
+ "type": "string",
1238
+ "description": "Order ID to cancel (from get_recent_orders)"
1239
+ }
1240
+ },
1241
+ "required": [
1242
+ "order_id"
1243
+ ],
1244
+ "additionalProperties": false
1245
+ },
1246
+ "output_schema": {
1247
+ "type": "object",
1248
+ "properties": {
1249
+ "cancelled": {
1250
+ "type": "boolean",
1251
+ "description": "Whether the order was successfully cancelled"
1252
+ }
1253
+ },
1254
+ "required": [
1255
+ "cancelled"
1256
+ ],
1257
+ "additionalProperties": false
1258
+ }
1259
+ },
1260
+ {
1261
+ "name": "get_user_profile",
1262
+ "displayName": "Get User Profile",
1263
+ "description": "Get the currently logged-in user's profile information including name, email, phone, and loyalty membership status.",
1264
+ "summary": "View your Panda Express account info",
1265
+ "icon": "user",
1266
+ "group": "Account",
1267
+ "input_schema": {
1268
+ "type": "object",
1269
+ "properties": {},
1270
+ "additionalProperties": false
1271
+ },
1272
+ "output_schema": {
1273
+ "type": "object",
1274
+ "properties": {
1275
+ "profile": {
1276
+ "type": "object",
1277
+ "properties": {
1278
+ "first_name": {
1279
+ "type": "string",
1280
+ "description": "First name"
1281
+ },
1282
+ "last_name": {
1283
+ "type": "string",
1284
+ "description": "Last name"
1285
+ },
1286
+ "email": {
1287
+ "type": "string",
1288
+ "description": "Email address"
1289
+ },
1290
+ "phone": {
1291
+ "type": "string",
1292
+ "description": "Phone number"
1293
+ },
1294
+ "is_loyalty_member": {
1295
+ "type": "boolean",
1296
+ "description": "Whether the user is a Panda Rewards member"
1297
+ }
1298
+ },
1299
+ "required": [
1300
+ "first_name",
1301
+ "last_name",
1302
+ "email",
1303
+ "phone",
1304
+ "is_loyalty_member"
1305
+ ],
1306
+ "additionalProperties": false,
1307
+ "description": "User profile details"
1308
+ }
1309
+ },
1310
+ "required": [
1311
+ "profile"
1312
+ ],
1313
+ "additionalProperties": false
1314
+ }
1315
+ },
1316
+ {
1317
+ "name": "get_recent_orders",
1318
+ "displayName": "Get Recent Orders",
1319
+ "description": "Get the authenticated user's recent order history. Returns orders with restaurant info, totals, and status. Requires the user to be logged in.",
1320
+ "summary": "View your recent Panda Express orders",
1321
+ "icon": "history",
1322
+ "group": "Account",
1323
+ "input_schema": {
1324
+ "type": "object",
1325
+ "properties": {},
1326
+ "additionalProperties": false
1327
+ },
1328
+ "output_schema": {
1329
+ "type": "object",
1330
+ "properties": {
1331
+ "orders": {
1332
+ "type": "array",
1333
+ "items": {
1334
+ "type": "object",
1335
+ "properties": {
1336
+ "id": {
1337
+ "type": "string",
1338
+ "description": "Order ID"
1339
+ },
1340
+ "vendor_id": {
1341
+ "type": "number",
1342
+ "description": "Restaurant ID"
1343
+ },
1344
+ "vendor_name": {
1345
+ "type": "string",
1346
+ "description": "Restaurant name"
1347
+ },
1348
+ "status": {
1349
+ "type": "string",
1350
+ "description": "Order status"
1351
+ },
1352
+ "subtotal": {
1353
+ "type": "number",
1354
+ "description": "Subtotal before tax"
1355
+ },
1356
+ "sales_tax": {
1357
+ "type": "number",
1358
+ "description": "Sales tax"
1359
+ },
1360
+ "total": {
1361
+ "type": "number",
1362
+ "description": "Total amount"
1363
+ },
1364
+ "delivery_mode": {
1365
+ "type": "string",
1366
+ "description": "Delivery mode (e.g., \"pickup\", \"delivery\")"
1367
+ },
1368
+ "time_placed": {
1369
+ "type": "string",
1370
+ "description": "Time order was placed as ISO 8601 timestamp"
1371
+ },
1372
+ "time_ready": {
1373
+ "type": "string",
1374
+ "description": "Estimated ready time"
1375
+ },
1376
+ "product_count": {
1377
+ "type": "integer",
1378
+ "minimum": -9007199254740991,
1379
+ "maximum": 9007199254740991,
1380
+ "description": "Number of products in the order"
1381
+ }
1382
+ },
1383
+ "required": [
1384
+ "id",
1385
+ "vendor_id",
1386
+ "vendor_name",
1387
+ "status",
1388
+ "subtotal",
1389
+ "sales_tax",
1390
+ "total",
1391
+ "delivery_mode",
1392
+ "time_placed",
1393
+ "time_ready",
1394
+ "product_count"
1395
+ ],
1396
+ "additionalProperties": false
1397
+ },
1398
+ "description": "List of recent orders"
1399
+ }
1400
+ },
1401
+ "required": [
1402
+ "orders"
1403
+ ],
1404
+ "additionalProperties": false
1405
+ }
1406
+ },
1407
+ {
1408
+ "name": "get_favorites",
1409
+ "displayName": "Get Favorites",
1410
+ "description": "Get the authenticated user's saved favorite orders. Favorites can be quickly reordered. Requires the user to be logged in.",
1411
+ "summary": "View your saved favorite orders",
1412
+ "icon": "heart",
1413
+ "group": "Account",
1414
+ "input_schema": {
1415
+ "type": "object",
1416
+ "properties": {},
1417
+ "additionalProperties": false
1418
+ },
1419
+ "output_schema": {
1420
+ "type": "object",
1421
+ "properties": {
1422
+ "favorites": {
1423
+ "type": "array",
1424
+ "items": {
1425
+ "type": "object",
1426
+ "properties": {
1427
+ "id": {
1428
+ "type": "number",
1429
+ "description": "Favorite ID"
1430
+ },
1431
+ "name": {
1432
+ "type": "string",
1433
+ "description": "Favorite name"
1434
+ },
1435
+ "vendor_id": {
1436
+ "type": "number",
1437
+ "description": "Restaurant ID"
1438
+ }
1439
+ },
1440
+ "required": [
1441
+ "id",
1442
+ "name",
1443
+ "vendor_id"
1444
+ ],
1445
+ "additionalProperties": false
1446
+ },
1447
+ "description": "List of saved favorites"
1448
+ }
1449
+ },
1450
+ "required": [
1451
+ "favorites"
1452
+ ],
1453
+ "additionalProperties": false
1454
+ }
1455
+ },
1456
+ {
1457
+ "name": "get_billing_accounts",
1458
+ "displayName": "Get Billing Accounts",
1459
+ "description": "Get the authenticated user's saved payment methods. Returns card type, last 4 digits, and default status.",
1460
+ "summary": "View your saved payment methods",
1461
+ "icon": "credit-card",
1462
+ "group": "Account",
1463
+ "input_schema": {
1464
+ "type": "object",
1465
+ "properties": {},
1466
+ "additionalProperties": false
1467
+ },
1468
+ "output_schema": {
1469
+ "type": "object",
1470
+ "properties": {
1471
+ "accounts": {
1472
+ "type": "array",
1473
+ "items": {
1474
+ "type": "object",
1475
+ "properties": {
1476
+ "id": {
1477
+ "type": "number",
1478
+ "description": "Billing account ID"
1479
+ },
1480
+ "card_type": {
1481
+ "type": "string",
1482
+ "description": "Card type (e.g., \"Visa\", \"Mastercard\")"
1483
+ },
1484
+ "card_suffix": {
1485
+ "type": "string",
1486
+ "description": "Last 4 digits of the card number"
1487
+ },
1488
+ "expiration": {
1489
+ "type": "string",
1490
+ "description": "Card expiration date (MM/YY)"
1491
+ },
1492
+ "is_default": {
1493
+ "type": "boolean",
1494
+ "description": "Whether this is the default payment method"
1495
+ }
1496
+ },
1497
+ "required": [
1498
+ "id",
1499
+ "card_type",
1500
+ "card_suffix",
1501
+ "expiration",
1502
+ "is_default"
1503
+ ],
1504
+ "additionalProperties": false
1505
+ },
1506
+ "description": "Saved billing accounts"
1507
+ }
1508
+ },
1509
+ "required": [
1510
+ "accounts"
1511
+ ],
1512
+ "additionalProperties": false
1513
+ }
1514
+ },
1515
+ {
1516
+ "name": "get_loyalty_rewards",
1517
+ "displayName": "Get Loyalty Rewards",
1518
+ "description": "Get available Panda Express loyalty rewards that can be redeemed with points. Reads from the local app state — requires the user to be logged in with an active rewards account.",
1519
+ "summary": "View available loyalty rewards",
1520
+ "icon": "gift",
1521
+ "group": "Loyalty",
1522
+ "input_schema": {
1523
+ "type": "object",
1524
+ "properties": {},
1525
+ "additionalProperties": false
1526
+ },
1527
+ "output_schema": {
1528
+ "type": "object",
1529
+ "properties": {
1530
+ "rewards": {
1531
+ "type": "array",
1532
+ "items": {
1533
+ "type": "object",
1534
+ "properties": {
1535
+ "id": {
1536
+ "type": "number",
1537
+ "description": "Reward ID"
1538
+ },
1539
+ "name": {
1540
+ "type": "string",
1541
+ "description": "Reward name"
1542
+ },
1543
+ "description": {
1544
+ "type": "string",
1545
+ "description": "Reward description"
1546
+ },
1547
+ "image_url": {
1548
+ "type": "string",
1549
+ "description": "Reward image URL"
1550
+ },
1551
+ "points_required": {
1552
+ "type": "integer",
1553
+ "minimum": -9007199254740991,
1554
+ "maximum": 9007199254740991,
1555
+ "description": "Points required to redeem"
1556
+ }
1557
+ },
1558
+ "required": [
1559
+ "id",
1560
+ "name",
1561
+ "description",
1562
+ "image_url",
1563
+ "points_required"
1564
+ ],
1565
+ "additionalProperties": false
1566
+ },
1567
+ "description": "Available loyalty rewards"
1568
+ },
1569
+ "current_points": {
1570
+ "type": "integer",
1571
+ "minimum": -9007199254740991,
1572
+ "maximum": 9007199254740991,
1573
+ "description": "Current loyalty points balance"
1574
+ }
1575
+ },
1576
+ "required": [
1577
+ "rewards",
1578
+ "current_points"
1579
+ ],
1580
+ "additionalProperties": false
1581
+ }
1582
+ }
1583
+ ]
1584
+ }