@tomaspavlin/rohlik-mcp 2.0.0 → 3.1.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 (55) hide show
  1. package/README.md +207 -3
  2. package/dist/index.js +17 -0
  3. package/dist/index.js.map +1 -1
  4. package/dist/locale.d.ts +3 -0
  5. package/dist/locale.d.ts.map +1 -0
  6. package/dist/locale.js +27 -0
  7. package/dist/locale.js.map +1 -0
  8. package/dist/rohlik-api.d.ts +10 -0
  9. package/dist/rohlik-api.d.ts.map +1 -1
  10. package/dist/rohlik-api.js +146 -11
  11. package/dist/rohlik-api.js.map +1 -1
  12. package/dist/tools/account-data.d.ts.map +1 -1
  13. package/dist/tools/account-data.js +2 -1
  14. package/dist/tools/account-data.js.map +1 -1
  15. package/dist/tools/cart-management.d.ts.map +1 -1
  16. package/dist/tools/cart-management.js +3 -2
  17. package/dist/tools/cart-management.js.map +1 -1
  18. package/dist/tools/delivery-info.d.ts.map +1 -1
  19. package/dist/tools/delivery-info.js +3 -2
  20. package/dist/tools/delivery-info.js.map +1 -1
  21. package/dist/tools/delivery-slots.d.ts.map +1 -1
  22. package/dist/tools/delivery-slots.js +2 -1
  23. package/dist/tools/delivery-slots.js.map +1 -1
  24. package/dist/tools/discounted-items.d.ts +36 -0
  25. package/dist/tools/discounted-items.d.ts.map +1 -0
  26. package/dist/tools/discounted-items.js +69 -0
  27. package/dist/tools/discounted-items.js.map +1 -0
  28. package/dist/tools/frequent-items.d.ts +34 -0
  29. package/dist/tools/frequent-items.d.ts.map +1 -0
  30. package/dist/tools/frequent-items.js +184 -0
  31. package/dist/tools/frequent-items.js.map +1 -0
  32. package/dist/tools/meal-suggestions.d.ts +36 -0
  33. package/dist/tools/meal-suggestions.d.ts.map +1 -0
  34. package/dist/tools/meal-suggestions.js +243 -0
  35. package/dist/tools/meal-suggestions.js.map +1 -0
  36. package/dist/tools/order-detail.d.ts +28 -0
  37. package/dist/tools/order-detail.d.ts.map +1 -0
  38. package/dist/tools/order-detail.js +79 -0
  39. package/dist/tools/order-detail.js.map +1 -0
  40. package/dist/tools/order-history.d.ts.map +1 -1
  41. package/dist/tools/order-history.js +2 -1
  42. package/dist/tools/order-history.js.map +1 -1
  43. package/dist/tools/premium-info.d.ts.map +1 -1
  44. package/dist/tools/premium-info.js +4 -3
  45. package/dist/tools/premium-info.js.map +1 -1
  46. package/dist/tools/shopping-scenarios.d.ts +15 -0
  47. package/dist/tools/shopping-scenarios.d.ts.map +1 -0
  48. package/dist/tools/shopping-scenarios.js +143 -0
  49. package/dist/tools/shopping-scenarios.js.map +1 -0
  50. package/dist/tools/upcoming-orders.d.ts.map +1 -1
  51. package/dist/tools/upcoming-orders.js +2 -1
  52. package/dist/tools/upcoming-orders.js.map +1 -1
  53. package/dist/types.d.ts +22 -0
  54. package/dist/types.d.ts.map +1 -1
  55. package/package.json +8 -3
@@ -1,3 +1,4 @@
1
+ import { getCurrency } from "../locale.js";
1
2
  export function createAccountDataTool(createRohlikAPI) {
2
3
  return {
3
4
  name: "get_account_data",
@@ -24,7 +25,7 @@ export function createAccountDataTool(createRohlikAPI) {
24
25
  if (accountData.cart) {
25
26
  sections.push(`🛒 CART SUMMARY:
26
27
  • Total items: ${accountData.cart.total_items}
27
- • Total price: ${accountData.cart.total_price} CZK
28
+ • Total price: ${accountData.cart.total_price} ${getCurrency()}
28
29
  • Can order: ${accountData.cart.can_make_order ? 'Yes' : 'No'}`);
29
30
  }
30
31
  // Delivery info
@@ -1 +1 @@
1
- {"version":3,"file":"account-data.js","sourceRoot":"","sources":["../../src/tools/account-data.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"account-data.js","sourceRoot":"","sources":["../../src/tools/account-data.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cart-management.d.ts","sourceRoot":"","sources":["../../src/tools/cart-management.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,wBAAgB,yBAAyB,CAAC,eAAe,EAAE,MAAM,SAAS;;;;;;;;;;;;;;;;;;;gCActC;YAC5B,QAAQ,EAAE,KAAK,CAAC;gBAAE,UAAU,EAAE,MAAM,CAAC;gBAAC,QAAQ,EAAE,MAAM,CAAA;aAAE,CAAC,CAAC;SAC3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sCAgGmC;YAAE,cAAc,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;;;;EA+BnE"}
1
+ {"version":3,"file":"cart-management.d.ts","sourceRoot":"","sources":["../../src/tools/cart-management.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG7C,wBAAgB,yBAAyB,CAAC,eAAe,EAAE,MAAM,SAAS;;;;;;;;;;;;;;;;;;;gCActC;YAC5B,QAAQ,EAAE,KAAK,CAAC;gBAAE,UAAU,EAAE,MAAM,CAAC;gBAAC,QAAQ,EAAE,MAAM,CAAA;aAAE,CAAC,CAAC;SAC3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sCAgGmC;YAAE,cAAc,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;;;;EA+BnE"}
@@ -1,4 +1,5 @@
1
1
  import { z } from "zod";
2
+ import { getCurrency } from "../locale.js";
2
3
  export function createCartManagementTools(createRohlikAPI) {
3
4
  return {
4
5
  addToCart: {
@@ -66,11 +67,11 @@ export function createCartManagementTools(createRohlikAPI) {
66
67
  }
67
68
  const output = `Cart Summary:
68
69
  • Total items: ${cartContent.total_items}
69
- • Total price: ${cartContent.total_price} CZK
70
+ • Total price: ${cartContent.total_price} ${getCurrency()}
70
71
  • Can order: ${cartContent.can_make_order ? 'Yes' : 'No'}
71
72
 
72
73
  Products in cart:
73
- ${cartContent.products.map(product => `• ${product.name} (${product.brand})\n Quantity: ${product.quantity}\n Price: ${product.price} CZK\n Category: ${product.category_name}\n Cart ID: ${product.cart_item_id}`).join('\n\n')}`;
74
+ ${cartContent.products.map(product => `• ${product.name} (${product.brand})\n Quantity: ${product.quantity}\n Price: ${product.price} ${getCurrency()}\n Category: ${product.category_name}\n Cart ID: ${product.cart_item_id}`).join('\n\n')}`;
74
75
  return {
75
76
  content: [
76
77
  {
@@ -1 +1 @@
1
- {"version":3,"file":"cart-management.js","sourceRoot":"","sources":["../../src/tools/cart-management.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cart-management.js","sourceRoot":"","sources":["../../src/tools/cart-management.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"delivery-info.d.ts","sourceRoot":"","sources":["../../src/tools/delivery-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,wBAAgB,sBAAsB,CAAC,eAAe,EAAE,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;EA4EtE"}
1
+ {"version":3,"file":"delivery-info.d.ts","sourceRoot":"","sources":["../../src/tools/delivery-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG7C,wBAAgB,sBAAsB,CAAC,eAAe,EAAE,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;EA4EtE"}
@@ -1,3 +1,4 @@
1
+ import { getCurrency } from "../locale.js";
1
2
  export function createDeliveryInfoTool(createRohlikAPI) {
2
3
  return {
3
4
  name: "get_delivery_info",
@@ -28,10 +29,10 @@ export function createDeliveryInfoTool(createRohlikAPI) {
28
29
  Time: ${data.nextAvailableDelivery.time || 'Not available'}`);
29
30
  }
30
31
  if (data.deliveryFee !== undefined) {
31
- sections.push(`💰 DELIVERY FEE: ${data.deliveryFee} CZK`);
32
+ sections.push(`💰 DELIVERY FEE: ${data.deliveryFee} ${getCurrency()}`);
32
33
  }
33
34
  if (data.minimumOrder !== undefined) {
34
- sections.push(`📦 MINIMUM ORDER: ${data.minimumOrder} CZK`);
35
+ sections.push(`📦 MINIMUM ORDER: ${data.minimumOrder} ${getCurrency()}`);
35
36
  }
36
37
  if (data.deliveryArea) {
37
38
  sections.push(`📍 DELIVERY AREA: ${data.deliveryArea}`);
@@ -1 +1 @@
1
- {"version":3,"file":"delivery-info.js","sourceRoot":"","sources":["../../src/tools/delivery-info.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,sBAAsB,CAAC,eAAgC;IACrE,OAAO;QACL,IAAI,EAAE,mBAAmB;QACzB,UAAU,EAAE;YACV,KAAK,EAAE,mBAAmB;YAC1B,WAAW,EAAE,2DAA2D;YACxE,WAAW,EAAE,EAAE;SAChB;QACD,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC;gBAC9B,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,eAAe,EAAE,CAAC;gBAEjD,IAAI,CAAC,YAAY,EAAE,CAAC;oBAClB,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAe;gCACrB,IAAI,EAAE,oCAAoC;6BAC3C;yBACF;qBACF,CAAC;gBACJ,CAAC;gBAED,MAAM,kBAAkB,GAAG,CAAC,IAAS,EAAU,EAAE;oBAC/C,MAAM,QAAQ,GAAa,EAAE,CAAC;oBAE9B,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;wBAC/B,QAAQ,CAAC,IAAI,CAAC;WACf,IAAI,CAAC,qBAAqB,CAAC,IAAI,IAAI,eAAe;WAClD,IAAI,CAAC,qBAAqB,CAAC,IAAI,IAAI,eAAe,EAAE,CAAC,CAAC;oBACvD,CAAC;oBAED,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;wBACnC,QAAQ,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,WAAW,MAAM,CAAC,CAAC;oBAC5D,CAAC;oBAED,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;wBACpC,QAAQ,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,YAAY,MAAM,CAAC,CAAC;oBAC9D,CAAC;oBAED,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;wBACtB,QAAQ,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;oBAC1D,CAAC;oBAED,uCAAuC;oBACvC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC1B,QAAQ,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;oBACvE,CAAC;oBAED,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC/B,CAAC,CAAC;gBAEF,MAAM,MAAM,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;gBAEhD,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,MAAM;yBACb;qBACF;iBACF,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;yBAC7D;qBACF;oBACD,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"delivery-info.js","sourceRoot":"","sources":["../../src/tools/delivery-info.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,UAAU,sBAAsB,CAAC,eAAgC;IACrE,OAAO;QACL,IAAI,EAAE,mBAAmB;QACzB,UAAU,EAAE;YACV,KAAK,EAAE,mBAAmB;YAC1B,WAAW,EAAE,2DAA2D;YACxE,WAAW,EAAE,EAAE;SAChB;QACD,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC;gBAC9B,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,eAAe,EAAE,CAAC;gBAEjD,IAAI,CAAC,YAAY,EAAE,CAAC;oBAClB,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAe;gCACrB,IAAI,EAAE,oCAAoC;6BAC3C;yBACF;qBACF,CAAC;gBACJ,CAAC;gBAED,MAAM,kBAAkB,GAAG,CAAC,IAAS,EAAU,EAAE;oBAC/C,MAAM,QAAQ,GAAa,EAAE,CAAC;oBAE9B,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;wBAC/B,QAAQ,CAAC,IAAI,CAAC;WACf,IAAI,CAAC,qBAAqB,CAAC,IAAI,IAAI,eAAe;WAClD,IAAI,CAAC,qBAAqB,CAAC,IAAI,IAAI,eAAe,EAAE,CAAC,CAAC;oBACvD,CAAC;oBAED,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;wBACnC,QAAQ,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,WAAW,IAAI,WAAW,EAAE,EAAE,CAAC,CAAC;oBACzE,CAAC;oBAED,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;wBACpC,QAAQ,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,YAAY,IAAI,WAAW,EAAE,EAAE,CAAC,CAAC;oBAC3E,CAAC;oBAED,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;wBACtB,QAAQ,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;oBAC1D,CAAC;oBAED,uCAAuC;oBACvC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC1B,QAAQ,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;oBACvE,CAAC;oBAED,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC/B,CAAC,CAAC;gBAEF,MAAM,MAAM,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;gBAEhD,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,MAAM;yBACb;qBACF;iBACF,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;yBAC7D;qBACF;oBACD,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"delivery-slots.d.ts","sourceRoot":"","sources":["../../src/tools/delivery-slots.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,wBAAgB,uBAAuB,CAAC,eAAe,EAAE,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;EA2DvE"}
1
+ {"version":3,"file":"delivery-slots.d.ts","sourceRoot":"","sources":["../../src/tools/delivery-slots.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG7C,wBAAgB,uBAAuB,CAAC,eAAe,EAAE,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;EA2DvE"}
@@ -1,3 +1,4 @@
1
+ import { getCurrency } from "../locale.js";
1
2
  export function createDeliverySlotsTool(createRohlikAPI) {
2
3
  return {
3
4
  name: "get_delivery_slots",
@@ -23,7 +24,7 @@ export function createDeliverySlotsTool(createRohlikAPI) {
23
24
  const formatSlots = (data) => {
24
25
  if (Array.isArray(data)) {
25
26
  return `⏰ AVAILABLE DELIVERY SLOTS:\n\n${data.map((slot, index) => `${index + 1}. ${slot.date || 'Unknown date'} ${slot.time || slot.timeRange || 'Unknown time'}
26
- Price: ${slot.price || slot.deliveryFee || 'Free'} CZK
27
+ Price: ${slot.price || slot.deliveryFee || 'Free'} ${getCurrency()}
27
28
  Available: ${slot.available ? 'Yes' : 'No'}`).join('\n\n')}`;
28
29
  }
29
30
  return `⏰ DELIVERY SLOTS:\n${JSON.stringify(data, null, 2)}`;
@@ -1 +1 @@
1
- {"version":3,"file":"delivery-slots.js","sourceRoot":"","sources":["../../src/tools/delivery-slots.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,uBAAuB,CAAC,eAAgC;IACtE,OAAO;QACL,IAAI,EAAE,oBAAoB;QAC1B,UAAU,EAAE;YACV,KAAK,EAAE,oBAAoB;YAC3B,WAAW,EAAE,oDAAoD;YACjE,WAAW,EAAE,EAAE;SAChB;QACD,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC;gBAC9B,MAAM,aAAa,GAAG,MAAM,GAAG,CAAC,gBAAgB,EAAE,CAAC;gBAEnD,IAAI,CAAC,aAAa,EAAE,CAAC;oBACnB,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAe;gCACrB,IAAI,EAAE,8BAA8B;6BACrC;yBACF;qBACF,CAAC;gBACJ,CAAC;gBAED,MAAM,WAAW,GAAG,CAAC,IAAS,EAAU,EAAE;oBACxC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;wBACxB,OAAO,kCAAkC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAChE,GAAG,KAAK,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,cAAc,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,cAAc;YAC/F,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,IAAI,MAAM;gBACpC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAClC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;oBACnB,CAAC;oBAED,OAAO,sBAAsB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;gBAC/D,CAAC,CAAC;gBAEF,MAAM,MAAM,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;gBAE1C,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,MAAM;yBACb;qBACF;iBACF,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;yBAC7D;qBACF;oBACD,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"delivery-slots.js","sourceRoot":"","sources":["../../src/tools/delivery-slots.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,UAAU,uBAAuB,CAAC,eAAgC;IACtE,OAAO;QACL,IAAI,EAAE,oBAAoB;QAC1B,UAAU,EAAE;YACV,KAAK,EAAE,oBAAoB;YAC3B,WAAW,EAAE,oDAAoD;YACjE,WAAW,EAAE,EAAE;SAChB;QACD,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC;gBAC9B,MAAM,aAAa,GAAG,MAAM,GAAG,CAAC,gBAAgB,EAAE,CAAC;gBAEnD,IAAI,CAAC,aAAa,EAAE,CAAC;oBACnB,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAe;gCACrB,IAAI,EAAE,8BAA8B;6BACrC;yBACF;qBACF,CAAC;gBACJ,CAAC;gBAED,MAAM,WAAW,GAAG,CAAC,IAAS,EAAU,EAAE;oBACxC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;wBACxB,OAAO,kCAAkC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAChE,GAAG,KAAK,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,cAAc,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,cAAc;YAC/F,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,IAAI,MAAM,IAAI,WAAW,EAAE;gBACrD,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAClC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;oBACnB,CAAC;oBAED,OAAO,sBAAsB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;gBAC/D,CAAC,CAAC;gBAEF,MAAM,MAAM,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;gBAE1C,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,MAAM;yBACb;qBACF;iBACF,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;yBAC7D;qBACF;oBACD,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { z } from "zod";
2
+ import { RohlikAPI } from "../rohlik-api.js";
3
+ export declare function createDiscountedItemsTool(createRohlikAPI: () => RohlikAPI): {
4
+ name: string;
5
+ definition: {
6
+ title: string;
7
+ description: string;
8
+ inputSchema: {
9
+ category_id: z.ZodOptional<z.ZodNumber>;
10
+ limit: z.ZodDefault<z.ZodNumber>;
11
+ page: z.ZodDefault<z.ZodNumber>;
12
+ sort: z.ZodDefault<z.ZodEnum<["recommended", "price-asc", "price-desc", "unit-price-asc"]>>;
13
+ list_categories: z.ZodDefault<z.ZodBoolean>;
14
+ };
15
+ };
16
+ handler: (args: {
17
+ category_id?: number;
18
+ limit?: number;
19
+ page?: number;
20
+ sort?: string;
21
+ list_categories?: boolean;
22
+ }) => Promise<{
23
+ content: {
24
+ type: "text";
25
+ text: string;
26
+ }[];
27
+ isError?: undefined;
28
+ } | {
29
+ content: {
30
+ type: "text";
31
+ text: string;
32
+ }[];
33
+ isError: boolean;
34
+ }>;
35
+ };
36
+ //# sourceMappingURL=discounted-items.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discounted-items.d.ts","sourceRoot":"","sources":["../../src/tools/discounted-items.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,wBAAgB,yBAAyB,CAAC,eAAe,EAAE,MAAM,SAAS;;;;;;;;;;;;;oBAchD;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE;;;;;;;;;;;;;EAiE1H"}
@@ -0,0 +1,69 @@
1
+ import { z } from "zod";
2
+ export function createDiscountedItemsTool(createRohlikAPI) {
3
+ return {
4
+ name: "get_discounted_items",
5
+ definition: {
6
+ title: "Get Discounted Items",
7
+ description: "Get currently discounted items (cenové trháky / sales). Returns products on sale, optionally filtered by food category. Without a category, returns deals across all categories. Call with list_categories=true to see available category IDs.",
8
+ inputSchema: {
9
+ category_id: z.number().optional().describe("Food category ID to filter by. Use list_categories=true first to see available categories and their IDs. If omitted, returns discounted items across all categories."),
10
+ limit: z.number().min(1).max(50).default(14).describe("Maximum number of products to return (1-50, default: 14)"),
11
+ page: z.number().min(0).default(0).describe("Page number for pagination (0-based, default: 0)"),
12
+ sort: z.enum(["recommended", "price-asc", "price-desc", "unit-price-asc"]).default("recommended").describe("Sort order (default: recommended)"),
13
+ list_categories: z.boolean().default(false).describe("If true, returns the list of available sales categories instead of products")
14
+ }
15
+ },
16
+ handler: async (args) => {
17
+ const { category_id, limit = 14, page = 0, sort = "recommended", list_categories = false } = args;
18
+ try {
19
+ const api = createRohlikAPI();
20
+ if (list_categories) {
21
+ const categories = await api.getSalesCategories();
22
+ if (categories.length === 0) {
23
+ return {
24
+ content: [{ type: "text", text: "No sales categories found." }]
25
+ };
26
+ }
27
+ const output = `Available sales categories:\n\n` +
28
+ categories.map(c => `• ${c.name} (ID: ${c.id})`).join('\n');
29
+ return {
30
+ content: [{ type: "text", text: output }]
31
+ };
32
+ }
33
+ const products = await api.getDiscountedProducts(category_id ?? null, page, limit, sort);
34
+ if (products.length === 0) {
35
+ return {
36
+ content: [{ type: "text", text: "No discounted items found." }]
37
+ };
38
+ }
39
+ const output = `Found ${products.length} discounted items${category_id ? ` in category ${category_id}` : ' across all categories'} (page ${page}):\n\n` +
40
+ products.map(p => {
41
+ const badge = p.badges?.find((b) => b.position === 'PRICE');
42
+ const discount = badge?.text ? ` (${badge.text})` : '';
43
+ const originalPrice = p.prices?.originalPrice ? `${p.prices.originalPrice} ${p.prices?.currency || ''}` : null;
44
+ const salePrice = p.prices?.salePrice ? `${p.prices.salePrice} ${p.prices?.currency || ''}` : null;
45
+ const price = salePrice || `${p.prices?.originalPrice || '?'} ${p.prices?.currency || ''}`;
46
+ const priceInfo = originalPrice && salePrice
47
+ ? `Price: ${salePrice} (was ${originalPrice})`
48
+ : `Price: ${price}`;
49
+ return `• ${p.name}${discount}\n ${priceInfo}\n Unit price: ${p.prices?.unitPrice || '?'} ${p.prices?.currency || ''}/${p.unit || 'unit'}\n Amount: ${p.textualAmount || '?'}\n ID: ${p.productId}`;
50
+ }).join('\n\n');
51
+ return {
52
+ content: [{ type: "text", text: output }]
53
+ };
54
+ }
55
+ catch (error) {
56
+ return {
57
+ content: [
58
+ {
59
+ type: "text",
60
+ text: error instanceof Error ? error.message : String(error)
61
+ }
62
+ ],
63
+ isError: true
64
+ };
65
+ }
66
+ }
67
+ };
68
+ }
69
+ //# sourceMappingURL=discounted-items.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discounted-items.js","sourceRoot":"","sources":["../../src/tools/discounted-items.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,UAAU,yBAAyB,CAAC,eAAgC;IACxE,OAAO;QACL,IAAI,EAAE,sBAAsB;QAC5B,UAAU,EAAE;YACV,KAAK,EAAE,sBAAsB;YAC7B,WAAW,EAAE,gPAAgP;YAC7P,WAAW,EAAE;gBACX,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sKAAsK,CAAC;gBACnN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,0DAA0D,CAAC;gBACjH,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,kDAAkD,CAAC;gBAC/F,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC;gBAC/I,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,6EAA6E,CAAC;aACpI;SACF;QACD,OAAO,EAAE,KAAK,EAAE,IAAuG,EAAE,EAAE;YACzH,MAAM,EAAE,WAAW,EAAE,KAAK,GAAG,EAAE,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,aAAa,EAAE,eAAe,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC;YAClG,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC;gBAE9B,IAAI,eAAe,EAAE,CAAC;oBACpB,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,kBAAkB,EAAE,CAAC;oBAElD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC5B,OAAO;4BACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,4BAA4B,EAAE,CAAC;yBACzE,CAAC;oBACJ,CAAC;oBAED,MAAM,MAAM,GAAG,iCAAiC;wBAC9C,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAE9D,OAAO;wBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;qBACnD,CAAC;gBACJ,CAAC;gBAED,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,qBAAqB,CAC9C,WAAW,IAAI,IAAI,EACnB,IAAI,EACJ,KAAK,EACL,IAAI,CACL,CAAC;gBAEF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC1B,OAAO;wBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,4BAA4B,EAAE,CAAC;qBACzE,CAAC;gBACJ,CAAC;gBAED,MAAM,MAAM,GAAG,SAAS,QAAQ,CAAC,MAAM,oBAAoB,WAAW,CAAC,CAAC,CAAC,gBAAgB,WAAW,EAAE,CAAC,CAAC,CAAC,wBAAwB,UAAU,IAAI,QAAQ;oBACrJ,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;wBACf,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;wBACjE,MAAM,QAAQ,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;wBACvD,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;wBAC/G,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;wBACnG,MAAM,KAAK,GAAG,SAAS,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,aAAa,IAAI,GAAG,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,IAAI,EAAE,EAAE,CAAC;wBAC3F,MAAM,SAAS,GAAG,aAAa,IAAI,SAAS;4BAC1C,CAAC,CAAC,UAAU,SAAS,SAAS,aAAa,GAAG;4BAC9C,CAAC,CAAC,UAAU,KAAK,EAAE,CAAC;wBAEtB,OAAO,KAAK,CAAC,CAAC,IAAI,GAAG,QAAQ,OAAO,SAAS,mBAAmB,CAAC,CAAC,MAAM,EAAE,SAAS,IAAI,GAAG,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,IAAI,MAAM,eAAe,CAAC,CAAC,aAAa,IAAI,GAAG,WAAW,CAAC,CAAC,SAAS,EAAE,CAAC;oBAC1M,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAElB,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;iBACnD,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;yBAC7D;qBACF;oBACD,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { z } from "zod";
2
+ import { RohlikAPI } from "../rohlik-api.js";
3
+ export declare function createFrequentItemsTool(createRohlikAPI: () => RohlikAPI): {
4
+ name: string;
5
+ definition: {
6
+ title: string;
7
+ description: string;
8
+ inputSchema: {
9
+ orders_to_analyze: z.ZodDefault<z.ZodNumber>;
10
+ top_items: z.ZodDefault<z.ZodNumber>;
11
+ top_per_category: z.ZodDefault<z.ZodNumber>;
12
+ show_categories: z.ZodDefault<z.ZodBoolean>;
13
+ };
14
+ };
15
+ handler: (args: {
16
+ orders_to_analyze?: number;
17
+ top_items?: number;
18
+ top_per_category?: number;
19
+ show_categories?: boolean;
20
+ }) => Promise<{
21
+ content: {
22
+ type: "text";
23
+ text: string;
24
+ }[];
25
+ isError?: undefined;
26
+ } | {
27
+ content: {
28
+ type: "text";
29
+ text: string;
30
+ }[];
31
+ isError: boolean;
32
+ }>;
33
+ };
34
+ //# sourceMappingURL=frequent-items.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frequent-items.d.ts","sourceRoot":"","sources":["../../src/tools/frequent-items.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAoB7C,wBAAgB,uBAAuB,CAAC,eAAe,EAAE,MAAM,SAAS;;;;;;;;;;;;oBAa9C;QAAE,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE;;;;;;;;;;;;;EAiMjI"}
@@ -0,0 +1,184 @@
1
+ import { z } from "zod";
2
+ export function createFrequentItemsTool(createRohlikAPI) {
3
+ return {
4
+ name: "get_frequent_items",
5
+ definition: {
6
+ title: "Get Frequent Items",
7
+ description: "Analyze your order history to find the most frequently purchased items",
8
+ inputSchema: {
9
+ orders_to_analyze: z.number().min(1).max(20).default(5).describe("Number of recent orders to analyze (1-20, default: 5)"),
10
+ top_items: z.number().min(3).max(30).default(10).describe("Number of top items to return overall (3-30, default: 10)"),
11
+ top_per_category: z.number().min(1).max(20).default(10).describe("Number of top items to show per category (1-20, default: 10)"),
12
+ show_categories: z.boolean().default(true).describe("Whether to show per-category breakdown (default: true)")
13
+ }
14
+ },
15
+ handler: async (args) => {
16
+ const { orders_to_analyze = 5, top_items = 10, top_per_category = 10, show_categories = true } = args;
17
+ try {
18
+ const api = createRohlikAPI();
19
+ // Step 1: Get order history
20
+ const orderHistory = await api.getOrderHistory(orders_to_analyze);
21
+ if (!orderHistory || (Array.isArray(orderHistory) && orderHistory.length === 0)) {
22
+ return {
23
+ content: [
24
+ {
25
+ type: "text",
26
+ text: "No order history found. You need to have past orders to analyze frequent items."
27
+ }
28
+ ]
29
+ };
30
+ }
31
+ const orders = Array.isArray(orderHistory) ? orderHistory : [orderHistory];
32
+ // Step 2: Get detailed information for each order
33
+ const productMap = new Map();
34
+ let processedOrders = 0;
35
+ let totalProducts = 0;
36
+ for (const order of orders) {
37
+ try {
38
+ const orderId = order.id || order.orderNumber;
39
+ if (!orderId)
40
+ continue;
41
+ const orderDetail = await api.getOrderDetail(String(orderId));
42
+ if (!orderDetail)
43
+ continue;
44
+ processedOrders++;
45
+ const products = orderDetail.products || orderDetail.items || [];
46
+ const orderDate = orderDetail.deliveredAt || orderDetail.createdAt;
47
+ for (const product of products) {
48
+ const productId = product.productId || product.id;
49
+ const productName = product.productName || product.name;
50
+ if (!productId || !productName)
51
+ continue;
52
+ totalProducts++;
53
+ const key = `${productId}`;
54
+ // Extract category (use level 1 - mid-level category for grouping)
55
+ const categories = product.categories || [];
56
+ const mainCategory = categories.find((cat) => cat.level === 1) || categories[0];
57
+ const categoryName = mainCategory?.name || 'Uncategorized';
58
+ const categoryId = mainCategory?.id || 0;
59
+ if (productMap.has(key)) {
60
+ const existing = productMap.get(key);
61
+ existing.frequency++;
62
+ existing.totalQuantity += (product.quantity || 1);
63
+ // Update average price
64
+ if (product.price) {
65
+ const currentAvg = existing.averagePrice || 0;
66
+ existing.averagePrice = (currentAvg * (existing.frequency - 1) + product.price) / existing.frequency;
67
+ }
68
+ // Update last order date if newer
69
+ if (orderDate && (!existing.lastOrderDate || orderDate > existing.lastOrderDate)) {
70
+ existing.lastOrderDate = orderDate;
71
+ }
72
+ }
73
+ else {
74
+ productMap.set(key, {
75
+ productId: String(productId),
76
+ productName,
77
+ brand: product.brand || '',
78
+ frequency: 1,
79
+ totalQuantity: product.quantity || 1,
80
+ lastOrderDate: orderDate,
81
+ averagePrice: product.price || 0,
82
+ category: categoryName,
83
+ categoryId: categoryId
84
+ });
85
+ }
86
+ }
87
+ }
88
+ catch (error) {
89
+ // Skip orders that fail to load
90
+ console.error(`Failed to process order: ${error}`);
91
+ }
92
+ }
93
+ // Step 3: Sort by frequency and get top items
94
+ const sortedProducts = Array.from(productMap.values())
95
+ .sort((a, b) => b.frequency - a.frequency)
96
+ .slice(0, top_items);
97
+ if (sortedProducts.length === 0) {
98
+ return {
99
+ content: [
100
+ {
101
+ type: "text",
102
+ text: `Analyzed ${processedOrders} orders but found no products. This might be due to API changes or data format issues.`
103
+ }
104
+ ]
105
+ };
106
+ }
107
+ // Step 4: Group by category
108
+ const categoryMap = new Map();
109
+ for (const product of Array.from(productMap.values())) {
110
+ const catId = product.categoryId || 0;
111
+ const catName = product.category || 'Uncategorized';
112
+ if (!categoryMap.has(catId)) {
113
+ categoryMap.set(catId, {
114
+ categoryId: catId,
115
+ categoryName: catName,
116
+ products: []
117
+ });
118
+ }
119
+ categoryMap.get(catId).products.push(product);
120
+ }
121
+ // Sort products within each category
122
+ for (const category of categoryMap.values()) {
123
+ category.products.sort((a, b) => b.frequency - a.frequency);
124
+ }
125
+ // Step 5: Format output
126
+ const formatItem = (item, index, showCategory = false) => {
127
+ const brand = item.brand ? ` (${item.brand})` : '';
128
+ const avgPrice = item.averagePrice ? `${item.averagePrice.toFixed(2)} Kč` : 'N/A';
129
+ const lastOrder = item.lastOrderDate ? new Date(item.lastOrderDate).toLocaleDateString() : 'N/A';
130
+ const category = showCategory && item.category ? ` • ${item.category}` : '';
131
+ return `${index + 1}. ${item.productName}${brand}${category}
132
+ 📊 ${item.frequency}× orders • ${item.totalQuantity} units • 💰 Avg: ${avgPrice} • 📅 Last: ${lastOrder}
133
+ 🆔 ${item.productId}`;
134
+ };
135
+ // Build overall top items section
136
+ let output = `🛒 MOST FREQUENTLY PURCHASED ITEMS
137
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
138
+ 📈 Analysis: ${processedOrders} orders • ${totalProducts} total items
139
+
140
+ 🏆 TOP ${sortedProducts.length} OVERALL:
141
+
142
+ ${sortedProducts.map((item, idx) => formatItem(item, idx, true)).join('\n\n')}`;
143
+ // Add category breakdown if requested
144
+ if (show_categories) {
145
+ // Sort categories by total frequency
146
+ const sortedCategories = Array.from(categoryMap.values())
147
+ .sort((a, b) => {
148
+ const aTotal = a.products.reduce((sum, p) => sum + p.frequency, 0);
149
+ const bTotal = b.products.reduce((sum, p) => sum + p.frequency, 0);
150
+ return bTotal - aTotal;
151
+ });
152
+ output += '\n\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n📂 TOP ITEMS BY CATEGORY:\n';
153
+ for (const category of sortedCategories) {
154
+ const topCategoryProducts = category.products.slice(0, top_per_category);
155
+ const totalCategoryFrequency = category.products.reduce((sum, p) => sum + p.frequency, 0);
156
+ output += `\n\n📦 ${category.categoryName.toUpperCase()} (${totalCategoryFrequency} total orders)\n${'─'.repeat(40)}\n`;
157
+ output += topCategoryProducts.map((item, idx) => formatItem(item, idx, false)).join('\n\n');
158
+ }
159
+ }
160
+ output += '\n\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n💡 Tip: Use product IDs with add_to_cart to quickly reorder your favorites!';
161
+ return {
162
+ content: [
163
+ {
164
+ type: "text",
165
+ text: output
166
+ }
167
+ ]
168
+ };
169
+ }
170
+ catch (error) {
171
+ return {
172
+ content: [
173
+ {
174
+ type: "text",
175
+ text: error instanceof Error ? error.message : String(error)
176
+ }
177
+ ],
178
+ isError: true
179
+ };
180
+ }
181
+ }
182
+ };
183
+ }
184
+ //# sourceMappingURL=frequent-items.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frequent-items.js","sourceRoot":"","sources":["../../src/tools/frequent-items.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { z } from "zod";
2
+ import { RohlikAPI } from "../rohlik-api.js";
3
+ declare const MEAL_CATEGORY_MAPPINGS: Record<string, string[]>;
4
+ export declare function createMealSuggestionsTool(createRohlikAPI: () => RohlikAPI): {
5
+ name: string;
6
+ definition: {
7
+ title: string;
8
+ description: string;
9
+ inputSchema: {
10
+ meal_type: z.ZodEnum<["breakfast", "lunch", "dinner", "snack", "baking", "drinks", "healthy"]>;
11
+ items_count: z.ZodDefault<z.ZodNumber>;
12
+ orders_to_analyze: z.ZodDefault<z.ZodNumber>;
13
+ prefer_frequent: z.ZodDefault<z.ZodBoolean>;
14
+ };
15
+ };
16
+ handler: (args: {
17
+ meal_type: keyof typeof MEAL_CATEGORY_MAPPINGS;
18
+ items_count?: number;
19
+ orders_to_analyze?: number;
20
+ prefer_frequent?: boolean;
21
+ }) => Promise<{
22
+ content: {
23
+ type: "text";
24
+ text: string;
25
+ }[];
26
+ isError: boolean;
27
+ } | {
28
+ content: {
29
+ type: "text";
30
+ text: string;
31
+ }[];
32
+ isError?: undefined;
33
+ }>;
34
+ };
35
+ export {};
36
+ //# sourceMappingURL=meal-suggestions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meal-suggestions.d.ts","sourceRoot":"","sources":["../../src/tools/meal-suggestions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAa7C,QAAA,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAsEpD,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,eAAe,EAAE,MAAM,SAAS;;;;;;;;;;;;oBAiBhD;QACpB,SAAS,EAAE,MAAM,OAAO,sBAAsB,CAAC;QAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;KAC3B;;;;;;;;;;;;;EAgLJ"}