@agllama/mcp 0.7.0 → 0.7.2

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 (61) hide show
  1. package/README.md +56 -2
  2. package/SECURITY.md +62 -0
  3. package/dist/api-client.d.ts +14 -1
  4. package/dist/api-client.d.ts.map +1 -1
  5. package/dist/api-client.js +169 -56
  6. package/dist/api-client.js.map +1 -1
  7. package/dist/server.d.ts.map +1 -1
  8. package/dist/server.js +71 -0
  9. package/dist/server.js.map +1 -1
  10. package/dist/tools/__tests__/llama1876.test.d.ts +2 -0
  11. package/dist/tools/__tests__/llama1876.test.d.ts.map +1 -0
  12. package/dist/tools/__tests__/llama1876.test.js +311 -0
  13. package/dist/tools/__tests__/llama1876.test.js.map +1 -0
  14. package/dist/tools/__tests__/session.test.js +122 -2
  15. package/dist/tools/__tests__/session.test.js.map +1 -1
  16. package/dist/tools/codeDocs.d.ts +165 -0
  17. package/dist/tools/codeDocs.d.ts.map +1 -0
  18. package/dist/tools/codeDocs.js +330 -0
  19. package/dist/tools/codeDocs.js.map +1 -0
  20. package/dist/tools/context.js +2 -2
  21. package/dist/tools/context.js.map +1 -1
  22. package/dist/tools/epicSignOff.d.ts +25 -0
  23. package/dist/tools/epicSignOff.d.ts.map +1 -0
  24. package/dist/tools/epicSignOff.js +89 -0
  25. package/dist/tools/epicSignOff.js.map +1 -0
  26. package/dist/tools/help.d.ts.map +1 -1
  27. package/dist/tools/help.js +16 -2
  28. package/dist/tools/help.js.map +1 -1
  29. package/dist/tools/index.d.ts +2 -0
  30. package/dist/tools/index.d.ts.map +1 -1
  31. package/dist/tools/index.js +3 -1
  32. package/dist/tools/index.js.map +1 -1
  33. package/dist/tools/issueLinks.d.ts +10 -10
  34. package/dist/tools/issueLinks.d.ts.map +1 -1
  35. package/dist/tools/issueLinks.js +4 -4
  36. package/dist/tools/issueLinks.js.map +1 -1
  37. package/dist/tools/issues.d.ts +3 -0
  38. package/dist/tools/issues.d.ts.map +1 -1
  39. package/dist/tools/issues.js +26 -1
  40. package/dist/tools/issues.js.map +1 -1
  41. package/dist/tools/notificationRules.d.ts +2 -2
  42. package/dist/tools/prScorer.d.ts +1 -1
  43. package/dist/tools/prScorer.d.ts.map +1 -1
  44. package/dist/tools/prScorerSchema.d.ts +7 -1
  45. package/dist/tools/prScorerSchema.d.ts.map +1 -1
  46. package/dist/tools/prScorerSchema.js +81 -36
  47. package/dist/tools/prScorerSchema.js.map +1 -1
  48. package/dist/tools/roadmap.d.ts +5 -0
  49. package/dist/tools/roadmap.d.ts.map +1 -1
  50. package/dist/tools/roadmap.js +11 -2
  51. package/dist/tools/roadmap.js.map +1 -1
  52. package/dist/tools/session.d.ts +8 -0
  53. package/dist/tools/session.d.ts.map +1 -1
  54. package/dist/tools/session.js +18 -3
  55. package/dist/tools/session.js.map +1 -1
  56. package/dist/tools/sprints.d.ts.map +1 -1
  57. package/dist/tools/sprints.js +10 -0
  58. package/dist/tools/sprints.js.map +1 -1
  59. package/dist/types.d.ts +95 -1
  60. package/dist/types.d.ts.map +1 -1
  61. package/package.json +8 -3
@@ -1 +1 @@
1
- {"version":3,"file":"issues.js","sourceRoot":"","sources":["../../src/tools/issues.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAE/D,OAAO,EAAE,8BAA8B,EAAE,MAAM,iCAAiC,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,+CAA+C;AAC/C,YAAY;AACZ,+CAA+C;AAE/C,MAAM,CAAC,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;AAElD,MAAM,CAAC,MAAM,uBAAuB,GAAG,8CAA8C,CAAC;AAEtF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,4BAA4B,CAAC;IACzC,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,+BAA+B,CAAC;IAC5C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;CAC9D,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,KAAwB;IAC5D,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,kBAAkB,EAAE,CAAC;QAE3C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,OAAO,EAAE,OAAO,CAAC;QAClD,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,OAAO,EAAE,UAAU,CAAC;QAE3D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,SAAS,CACnB;gBACE,OAAO,EAAE,KAAK;gBACd,KAAK,EACH,6FAA6F;aAChG,CAAC,CAAC;QACP,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,SAAS,CACnB;gBACE,OAAO,EAAE,KAAK;gBACd,KAAK,EACH,gGAAgG;aACnG,CAAC,CAAC;QACP,CAAC;QAED,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;QAE9B,mBAAmB;QACnB,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,cAAc,CAAC,iBAAiB,EAAE;gBAC7C,OAAO;gBACP,UAAU;gBACV,QAAQ,EAAE,KAAK,CAAC,QAAQ;aACzB,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,0BAA0B;QAC5B,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QAEzE,4EAA4E;QAC5E,MAAM,QAAQ,GAAwB;YACpC,OAAO,EAAE,IAAI;YACb,GAAG,EAAE,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC;YACrD,KAAK,EAAE;gBACL,GAAG,KAAK;aACT;SACF,CAAC;QAEF,iEAAiE;QACjE,IAAI,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5D,MAAM,KAAK,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC;YAC1C,MAAM,SAAS,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAC3C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,KAAK,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,KAAK,QAAQ,CACtE,CAAC,MAAM,CAAC;YACT,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACxF,MAAM,WAAW,GAAG,KAAK,CAAC,cAAc;iBACrC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,KAAK,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC;iBAC7E,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAEtD,QAAQ,CAAC,KAAK,CAAC,WAAW,GAAG;gBAC3B,KAAK;gBACL,SAAS;gBACT,OAAO;gBACP,WAAW;aACZ,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,aAAa,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC,SAAS,CACnB;gBACE,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,wBAAwB,KAAK,CAAC,OAAO,EAAE;gBAC9C,UAAU,EAAE,KAAK,CAAC,UAAU;aAC7B,CAAC,CAAC;QACP,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CACnB;YACE,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;SAChE,CAAC,CAAC;IACP,CAAC;AACH,CAAC;AAED,+CAA+C;AAC/C,eAAe;AACf,+CAA+C;AAE/C,MAAM,CAAC,MAAM,mBAAmB,GAAG,oBAAoB,CAAC;AAExD,MAAM,CAAC,MAAM,0BAA0B,GAAG,0EAA0E,CAAC;AAErH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,4BAA4B,CAAC;IACzC,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,+BAA+B,CAAC;IAC5C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IACnD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;IACxF,IAAI,EAAE,CAAC;SACJ,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;SACnE,QAAQ,CAAC,YAAY,CAAC;IACzB,QAAQ,EAAE,CAAC;SACR,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;SACtD,QAAQ,EAAE;SACV,QAAQ,CAAC,kCAAkC,CAAC;IAC/C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;IAC5E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;IACzE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gEAAgE,CAAC;IAC3G,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;IAChG,QAAQ,EAAE,CAAC;SACR,UAAU,CAAC,CAAC,GAAG,EAAE,EAAE;QAClB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;YAC/B,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;QAC5C,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;SACb,QAAQ,EAAE;SACV,QAAQ,CAAC,uBAAuB,CAAC;IACpC,YAAY,EAAE,CAAC;SACZ,UAAU,CAAC,CAAC,GAAG,EAAE,EAAE;QAClB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;YAC/B,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;QAC5C,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;SACb,QAAQ,EAAE;SACV,QAAQ,CAAC,mCAAmC,CAAC;IAChD,MAAM,EAAE,CAAC;SACN,UAAU,CAAC,CAAC,GAAG,EAAE,EAAE;QAClB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC;YAAC,MAAM,CAAC;gBACP,0CAA0C;gBAC1C,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;SACtB,QAAQ,EAAE;SACV,QAAQ,CAAC,kBAAkB,CAAC;IAC/B,KAAK,EAAE,CAAC;SACL,IAAI,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;SAC/B,QAAQ,EAAE;SACV,QAAQ,CAAC,0EAA0E,CAAC;CACxF,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,KAA2B;IAE3B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,kBAAkB,EAAE,CAAC;QAE3C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,OAAO,EAAE,OAAO,CAAC;QAClD,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,OAAO,EAAE,UAAU,CAAC;QAE3D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,SAAS,CACnB;gBACE,OAAO,EAAE,KAAK;gBACd,KAAK,EACH,6FAA6F;aAChG,CAAC,CAAC;QACP,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,SAAS,CACnB;gBACE,OAAO,EAAE,KAAK;gBACd,KAAK,EACH,gGAAgG;aACnG,CAAC,CAAC;QACP,CAAC;QAED,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;QAE9B,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC;QAE7B,sCAAsC;QACtC,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YAChD,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,8JAA8J;aACtK,CAAC,CAAC;QACL,CAAC;QAED,wEAAwE;QAExE,0CAA0C;QAC1C,IAAI,QAA4B,CAAC;QACjC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,iCAAiC;YACjC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YACvE,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACzB,OAAO,IAAI,CAAC,SAAS,CAAC;oBACpB,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,SAAS,KAAK,CAAC,OAAO,0BAA0B,IAAI,CAAC,IAAI,GAAG;iBACpE,CAAC,CAAC;YACL,CAAC;YACD,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC;QACrB,CAAC;aAAM,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YAC3B,iDAAiD;YACjD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YAC3E,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC;QACvB,CAAC;QAED,mBAAmB;QACnB,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,cAAc,CAAC,oBAAoB,EAAE;gBAChD,OAAO;gBACP,UAAU;gBACV,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,IAAI,EAAE,SAAS;aAChB,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,0BAA0B;QAC5B,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE;YAC1D,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,IAAI,EAAE,SAAsB;YAC5B,QAAQ,EAAE,KAAK,CAAC,QAAqC;YACrD,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,QAAQ;YACR,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,SAAS,CACnB;YACE,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,iBAAiB,KAAK,CAAC,GAAG,KAAK,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE;YACrF,GAAG,EAAE,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC;YAChD,KAAK,EAAE;gBACL,GAAG,EAAE,KAAK,CAAC,GAAG;gBACd,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;aACzB;SACF,CAAC,CAAC;IACP,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,aAAa,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC,SAAS,CACnB;gBACE,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,2BAA2B,KAAK,CAAC,OAAO,EAAE;gBACjD,UAAU,EAAE,KAAK,CAAC,UAAU;aAC7B,CAAC,CAAC;QACP,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CACnB;YACE,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;SAChE,CAAC,CAAC;IACP,CAAC;AACH,CAAC;AAED,+CAA+C;AAC/C,eAAe;AACf,+CAA+C;AAE/C,MAAM,CAAC,MAAM,mBAAmB,GAAG,oBAAoB,CAAC;AAExD,MAAM,CAAC,MAAM,0BAA0B,GAAG,0EAA0E,CAAC;AAErH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,4BAA4B,CAAC;IACzC,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,+BAA+B,CAAC;IAC5C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IACpD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;IACtD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAC9D,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAC,QAAQ,EAAE;IACtF,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC7E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IACtE,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,EAAE;SACV,QAAQ,CAAC,6BAA6B,CAAC;IAC1C,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,EAAE;SACV,QAAQ,CAAC,yCAAyC,CAAC;IACtD,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,EAAE;SACV,QAAQ,CAAC,mEAAmE,CAAC;IAChF,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,EAAE;SACV,QAAQ,CAAC,wDAAwD,CAAC;IACrE,QAAQ,EAAE,CAAC;SACR,UAAU,CAAC,CAAC,GAAG,EAAE,EAAE;QAClB,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAC9B,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;YAC/B,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;QAC5C,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;SACxB,QAAQ,EAAE;SACV,QAAQ,CAAC,cAAc,CAAC;IAC3B,MAAM,EAAE,CAAC;SACN,UAAU,CAAC,CAAC,GAAG,EAAE,EAAE;QAClB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC;YAAC,MAAM,CAAC;gBACP,0CAA0C;gBAC1C,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;SACtB,QAAQ,EAAE;SACV,QAAQ,CAAC,oBAAoB,CAAC;CAClC,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,KAA2B;IAE3B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,kBAAkB,EAAE,CAAC;QAE3C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,OAAO,EAAE,OAAO,CAAC;QAClD,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,OAAO,EAAE,UAAU,CAAC;QAE3D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,SAAS,CACnB;gBACE,OAAO,EAAE,KAAK;gBACd,KAAK,EACH,6FAA6F;aAChG,CAAC,CAAC;QACP,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,SAAS,CACnB;gBACE,OAAO,EAAE,KAAK;gBACd,KAAK,EACH,gGAAgG;aACnG,CAAC,CAAC;QACP,CAAC;QAED,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,EAAE,GAAG,KAAK,CAAC;QACvC,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;QAE9B,gDAAgD;QAChD,MAAM,YAAY,GAA4B,EAAE,CAAC;QACjD,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS;YAAE,YAAY,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC1E,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS;YACnC,YAAY,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACjD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;YAAE,YAAY,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;QACrG,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS;YAAE,YAAY,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAC7E,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS;YAAE,YAAY,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAC7E,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS;YAClC,YAAY,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QAC/C,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS;YAAE,YAAY,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAC7E,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS;YAAE,YAAY,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAC7E,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;YAAE,YAAY,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAEvE,+DAA+D;QAC/D,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACpC,IAAI,OAAO,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;gBAC/B,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;gBAC7E,YAAY,CAAC,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC;YACpC,CAAC;QACH,CAAC;QAED,wCAAwC;QACxC,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAClC,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;gBAC7B,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACN,iCAAiC;gBACjC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;gBACzE,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBACzB,OAAO,IAAI,CAAC,SAAS,CAAC;wBACpB,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,SAAS,OAAO,CAAC,OAAO,0BAA0B,IAAI,CAAC,IAAI,GAAG;qBACtE,CAAC,CAAC;gBACL,CAAC;gBACD,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC;YAClC,CAAC;QACH,CAAC;QAED,mBAAmB;QACnB,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,cAAc,CAAC,oBAAoB,EAAE;gBAChD,OAAO;gBACP,UAAU;gBACV,QAAQ;gBACR,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;aACnC,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,0BAA0B;QAC5B,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,WAAW,CACpC,OAAO,EACP,UAAU,EACV,QAAQ,EACR,YAAY,CACb,CAAC;QAEF,0DAA0D;QAC1D,IAAI,kBAAkB,GAAG,IAAI,CAAC;QAC9B,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACnC,kBAAkB,GAAG,MAAM,8BAA8B,CACvD,OAAO,EACP,UAAU,EACV,OAAO,CAAC,QAAQ,CACjB,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAwB;YACpC,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,iBAAiB,KAAK,CAAC,GAAG,KAAK,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE;YACrF,GAAG,EAAE,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC;YAChD,KAAK,EAAE;gBACL,GAAG,EAAE,KAAK,CAAC,GAAG;gBACd,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;aACzB;SACF,CAAC;QAEF,wCAAwC;QACxC,IAAI,kBAAkB,EAAE,CAAC;YACvB,QAAQ,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QACnD,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,aAAa,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC,SAAS,CACnB;gBACE,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,2BAA2B,KAAK,CAAC,OAAO,EAAE;gBACjD,UAAU,EAAE,KAAK,CAAC,UAAU;aAC7B,CAAC,CAAC;QACP,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CACnB;YACE,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;SAChE,CAAC,CAAC;IACP,CAAC;AACH,CAAC;AAED,+CAA+C;AAC/C,sBAAsB;AACtB,+CAA+C;AAE/C,MAAM,CAAC,MAAM,mBAAmB,GAAG,oBAAoB,CAAC;AAExD,MAAM,CAAC,MAAM,0BAA0B,GAAG,kDAAkD,CAAC;AAE7F,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,4BAA4B,CAAC;IACzC,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,+BAA+B,CAAC;IAC5C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;CACrD,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,KAA2B;IAE3B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,kBAAkB,EAAE,CAAC;QAE3C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,OAAO,EAAE,OAAO,CAAC;QAClD,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,OAAO,EAAE,UAAU,CAAC;QAE3D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,SAAS,CACnB;gBACE,OAAO,EAAE,KAAK;gBACd,KAAK,EACH,6FAA6F;aAChG,CAAC,CAAC;QACP,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,SAAS,CACnB;gBACE,OAAO,EAAE,KAAK;gBACd,KAAK,EACH,gGAAgG;aACnG,CAAC,CAAC;QACP,CAAC;QAED,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;QAE9B,mBAAmB;QACnB,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,cAAc,CAAC,oBAAoB,EAAE;gBAChD,OAAO;gBACP,UAAU;gBACV,QAAQ,EAAE,KAAK,CAAC,QAAQ;aACzB,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,0BAA0B;QAC5B,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QAE7E,OAAO,IAAI,CAAC,SAAS,CACnB;YACE,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,iBAAiB,KAAK,CAAC,QAAQ,EAAE;YAC1C,eAAe,EAAE,MAAM,CAAC,eAAe;YACvC,MAAM,EAAE,MAAM,CAAC,eAAe,GAAG,CAAC;gBAChC,CAAC,CAAC,GAAG,MAAM,CAAC,eAAe,WAAW,MAAM,CAAC,eAAe,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,eAAe;gBAC5F,CAAC,CAAC,2BAA2B;SAChC,CAAC,CAAC;IACP,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,aAAa,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC,SAAS,CACnB;gBACE,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,2BAA2B,KAAK,CAAC,OAAO,EAAE;gBACjD,UAAU,EAAE,KAAK,CAAC,UAAU;aAC7B,CAAC,CAAC;QACP,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CACnB;YACE,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;SAChE,CAAC,CAAC;IACP,CAAC;AACH,CAAC;AAED,+CAA+C;AAC/C,sBAAsB;AACtB,+CAA+C;AAE/C,MAAM,CAAC,MAAM,yBAAyB,GAAG,2BAA2B,CAAC;AAErE,MAAM,CAAC,MAAM,gCAAgC,GAAG,6IAA6I,CAAC;AAE9L,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,4BAA4B,CAAC;IACzC,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,+BAA+B,CAAC;IAC5C,MAAM,EAAE,CAAC;SACN,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QACnD,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;QAClG,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;QAChF,QAAQ,EAAE,CAAC;aACR,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;aACtD,QAAQ,EAAE;aACV,QAAQ,CAAC,4BAA4B,CAAC;QACzC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QACzE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;QAChE,QAAQ,EAAE,CAAC;aACR,UAAU,CAAC,CAAC,GAAG,EAAE,EAAE;YAClB,IAAI,GAAG,KAAK,IAAI;gBAAE,OAAO,IAAI,CAAC;YAC9B,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC5B,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;gBAC/B,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;YAC5C,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;aACxB,QAAQ,EAAE;aACV,QAAQ,CAAC,cAAc,CAAC;QAC3B,YAAY,EAAE,CAAC;aACZ,UAAU,CAAC,CAAC,GAAG,EAAE,EAAE;YAClB,IAAI,GAAG,KAAK,IAAI;gBAAE,OAAO,IAAI,CAAC;YAC9B,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC5B,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;gBAC/B,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;YAC5C,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;aACxB,QAAQ,EAAE;aACV,QAAQ,CAAC,mCAAmC,CAAC;QAChD,MAAM,EAAE,CAAC;aACN,UAAU,CAAC,CAAC,GAAG,EAAE,EAAE;YAClB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC5B,IAAI,CAAC;oBACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACzB,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC7D,CAAC;YACH,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;aACtB,QAAQ,EAAE;aACV,QAAQ,CAAC,QAAQ,CAAC;QACrB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;QAC1F,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sEAAsE,CAAC;QAC5H,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oEAAoE,CAAC;KACnH,CAAC,CACH;SACA,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,EAAE,CAAC;SACP,QAAQ,CAAC,2BAA2B,CAAC;CACzC,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,KAAiC;IAEjC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,kBAAkB,EAAE,CAAC;QAE3C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,OAAO,EAAE,OAAO,CAAC;QAClD,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,OAAO,EAAE,UAAU,CAAC;QAE3D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,SAAS,CACnB;gBACE,OAAO,EAAE,KAAK;gBACd,KAAK,EACH,6FAA6F;aAChG,CAAC,CAAC;QACP,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,SAAS,CACnB;gBACE,OAAO,EAAE,KAAK;gBACd,KAAK,EACH,gGAAgG;aACnG,CAAC,CAAC;QACP,CAAC;QAED,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;QAE9B,4FAA4F;QAC5F,MAAM,qBAAqB,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAC/C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,SAAS,CAC5C,CAAC;QACF,IAAI,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,gFAAgF,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;aAChJ,CAAC,CAAC;QACL,CAAC;QAED,mBAAmB;QACnB,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,cAAc,CAAC,2BAA2B,EAAE;gBACvD,OAAO;gBACP,UAAU;gBACV,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM;aAC3B,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,0BAA0B;QAC5B,CAAC;QAED,MAAM,MAAM,GAA4B,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC/D,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,IAAI,EAAE,CAAC,CAAC,IAAiB;YACzB,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,QAAQ,EAAE,CAAC,CAAC,QAAqC;YACjD,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,YAAY,EAAE,CAAC,CAAC,YAAY;YAC5B,WAAW,EAAE,CAAC,CAAC,WAAW;SAC3B,CAAC,CAAC,CAAC;QAEJ,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QAE3E,OAAO,IAAI,CAAC,SAAS,CACnB;YACE,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,WAAW,MAAM,CAAC,SAAS,OAAO,MAAM,CAAC,KAAK,SAAS;YAChE,GAAG,MAAM;SACV,CAAC,CAAC;IACP,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,aAAa,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC,SAAS,CACnB;gBACE,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,kCAAkC,KAAK,CAAC,OAAO,EAAE;gBACxD,UAAU,EAAE,KAAK,CAAC,UAAU;aAC7B,CAAC,CAAC;QACP,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CACnB;YACE,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;SAChE,CAAC,CAAC;IACP,CAAC;AACH,CAAC;AAED,+CAA+C;AAC/C,sBAAsB;AACtB,+CAA+C;AAE/C,MAAM,CAAC,MAAM,yBAAyB,GAAG,2BAA2B,CAAC;AAErE,MAAM,CAAC,MAAM,gCAAgC,GAAG,yDAAyD,CAAC;AAE1G,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,4BAA4B,CAAC;IACzC,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,+BAA+B,CAAC;IAC5C,OAAO,EAAE,CAAC;SACP,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;QACP,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QACpD,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;YACf,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;YACtD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YACzE,QAAQ,EAAE,CAAC;iBACR,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;iBACtD,QAAQ,EAAE;iBACV,QAAQ,CAAC,cAAc,CAAC;YAC3B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YAC5E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YACxE,QAAQ,EAAE,CAAC;iBACR,UAAU,CAAC,CAAC,GAAG,EAAE,EAAE;gBAClB,IAAI,GAAG,KAAK,IAAI;oBAAE,OAAO,IAAI,CAAC;gBAC9B,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;oBAC5B,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;oBAC/B,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;gBAC5C,CAAC;gBACD,OAAO,GAAG,CAAC;YACb,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;iBACxB,QAAQ,EAAE;iBACV,QAAQ,CAAC,cAAc,CAAC;YAC3B,MAAM,EAAE,CAAC;iBACN,UAAU,CAAC,CAAC,GAAG,EAAE,EAAE;gBAClB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;oBAC5B,IAAI,CAAC;wBACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACzB,CAAC;oBAAC,MAAM,CAAC;wBACP,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;oBAC7D,CAAC;gBACH,CAAC;gBACD,OAAO,GAAG,CAAC;YACb,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;iBACtB,QAAQ,EAAE;iBACV,QAAQ,CAAC,oBAAoB,CAAC;YACjC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;YAC3F,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;SACvE,CAAC;KACH,CAAC,CACH;SACA,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,EAAE,CAAC;SACP,QAAQ,CAAC,2BAA2B,CAAC;CACzC,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,KAAiC;IAEjC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,kBAAkB,EAAE,CAAC;QAE3C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,OAAO,EAAE,OAAO,CAAC;QAClD,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,OAAO,EAAE,UAAU,CAAC;QAE3D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,SAAS,CACnB;gBACE,OAAO,EAAE,KAAK;gBACd,KAAK,EACH,6FAA6F;aAChG,CAAC,CAAC;QACP,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,SAAS,CACnB;gBACE,OAAO,EAAE,KAAK;gBACd,KAAK,EACH,gGAAgG;aACnG,CAAC,CAAC;QACP,CAAC;QAED,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;QAE9B,mBAAmB;QACnB,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,cAAc,CAAC,2BAA2B,EAAE;gBACvD,OAAO;gBACP,UAAU;gBACV,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM;aAC5B,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,0BAA0B;QAC5B,CAAC;QAED,MAAM,OAAO,GAA4B,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC/D,MAAM,MAAM,GAAoC,EAAE,CAAC;YACnD,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS;gBAAE,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;YACtE,IAAI,CAAC,CAAC,MAAM,CAAC,WAAW,KAAK,SAAS;gBAAE,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;YAClF,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS;gBAAE,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,QAAyB,CAAC;YAC1F,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS;gBAAE,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;YACzE,IAAI,CAAC,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS;gBAAE,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;YAC/E,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS;gBAAE,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;YACzE,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS;gBAAE,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;YACzE,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS;gBAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;YACnE,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS;gBAAE,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;YACtE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QAE5E,OAAO,IAAI,CAAC,SAAS,CACnB;YACE,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,WAAW,MAAM,CAAC,SAAS,OAAO,MAAM,CAAC,KAAK,SAAS;YAChE,GAAG,MAAM;SACV,CAAC,CAAC;IACP,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,aAAa,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC,SAAS,CACnB;gBACE,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,kCAAkC,KAAK,CAAC,OAAO,EAAE;gBACxD,UAAU,EAAE,KAAK,CAAC,UAAU;aAC7B,CAAC,CAAC;QACP,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CACnB;YACE,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;SAChE,CAAC,CAAC;IACP,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"issues.js","sourceRoot":"","sources":["../../src/tools/issues.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,7 @@ export declare const manageNotificationRuleToolSchema: z.ZodObject<{
27
27
  projectId?: string | undefined;
28
28
  orgSlug?: string | undefined;
29
29
  description?: string | undefined;
30
+ assigneeIds?: string | undefined;
30
31
  name?: string | undefined;
31
32
  ruleId?: string | undefined;
32
33
  integrationId?: string | undefined;
@@ -36,7 +37,6 @@ export declare const manageNotificationRuleToolSchema: z.ZodObject<{
36
37
  deliveryConfig?: string | undefined;
37
38
  labelTriggers?: string | undefined;
38
39
  statusIds?: string | undefined;
39
- assigneeIds?: string | undefined;
40
40
  issueTypes?: string | undefined;
41
41
  priorities?: string | undefined;
42
42
  issueIds?: string | undefined;
@@ -47,6 +47,7 @@ export declare const manageNotificationRuleToolSchema: z.ZodObject<{
47
47
  projectId?: string | undefined;
48
48
  orgSlug?: string | undefined;
49
49
  description?: string | undefined;
50
+ assigneeIds?: string | undefined;
50
51
  name?: string | undefined;
51
52
  ruleId?: string | undefined;
52
53
  integrationId?: string | undefined;
@@ -56,7 +57,6 @@ export declare const manageNotificationRuleToolSchema: z.ZodObject<{
56
57
  deliveryConfig?: string | undefined;
57
58
  labelTriggers?: string | undefined;
58
59
  statusIds?: string | undefined;
59
- assigneeIds?: string | undefined;
60
60
  issueTypes?: string | undefined;
61
61
  priorities?: string | undefined;
62
62
  issueIds?: string | undefined;
@@ -1,6 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  export declare const getPrScorerSchemaToolName = "llama_get_pr_scorer_schema";
3
- export declare const getPrScorerSchemaToolDescription = "# PR Scorer Rule Language \u2014 Full DSL Reference\n\nPR Scorer rules let you automatically adjust the quality score of a pull\nrequest based on its content, metadata, and linked issues. Each rule is a\nsingle line that conditionally adds or subtracts points and optionally\nattaches a human-readable reason and flag label.\n\n---\n\n## Grammar (EBNF)\n\n```\nruleset := rule*\nrule := 'when' expr 'then' SignedInt ( 'reason' STRING )? ( 'flag' STRING )?\nSignedInt := ( '+' | '-' ) INTEGER // range: [-10, +10] inclusive\nSTRING := '\"' [^\"]* '\"'\n```\n\nBlank lines and lines beginning with `#` are treated as comments and are\nsilently ignored. Rules are evaluated in order; all matching rules fire\n(scores accumulate \u2014 there is no early-exit).\n\n### Hard limits\n\n| Constraint | Value |\n|---|---|\n| Maximum rules per ruleset | 100 |\n| Maximum nested any() / all() depth | 8 |\n| Score per rule action | [-10, +10] |\n\n---\n\n## Evaluation Context \u2014 Variables\n\nEvery rule's `expr` can reference the following variables. All property\naccesses are null-safe: accessing a missing property returns `null` (which\nis falsy).\n\n### Top-level PR fields\n\n| Variable | Type | Description |\n|---|---|---|\n| `pr.id` | string | Unique PR identifier |\n| `pr.title` | string | Pull request title |\n| `pr.description` | string | PR body / description |\n| `pr.author` | string | Username of the PR author |\n| `pr.lastUpdated` | ISO-8601 string | Timestamp of last update |\n| `pr.isDraft` | boolean | `true` when the PR is in draft state |\n\n### Files\n\n`files` is an array of file-change objects.\n\n| Property | Type | Description |\n|---|---|---|\n| `path` | string | File path relative to repo root |\n| `additions` | number | Lines added in this file |\n| `deletions` | number | Lines deleted in this file |\n| `status` | string | `\"added\"` | `\"modified\"` | `\"deleted\"` | `\"renamed\"` |\n\n### Commits\n\n`commits` is an array of commit objects.\n\n| Property | Type | Description |\n|---|---|---|\n| `sha` | string | Commit hash |\n| `message` | string | Commit message |\n| `author` | string | Commit author username |\n| `timestamp` | ISO-8601 string | Commit timestamp |\n\n### Labels\n\n`labels` is an array of strings (the label names applied to the PR).\n\n### Reviewers\n\n`reviewers` is an array of reviewer objects.\n\n| Property | Type | Description |\n|---|---|---|\n| `username` | string | Reviewer username |\n| `state` | string | `\"approved\"` | `\"changes_requested\"` | `\"pending\"` |\n\n### Issue link fields\n\n| Variable | Type | Description |\n|---|---|---|\n| `hasLinkedIssue` | boolean | `true` when at least one issue is linked |\n| `linkedIssueKeys` | string[] | Array of linked issue keys (e.g. `[\"PROJ-42\"]`) |\n\n---\n\n## Operators\n\n### Comparison\n\n| Operator | Meaning | Example |\n|---|---|---|\n| `==` | Equal | `pr.isDraft == true` |\n| `!=` | Not equal | `pr.author != \"bot\"` |\n| `>` | Greater than | `files.count() > 20` |\n| `>=` | Greater than or equal | `files.count() >= 10` |\n| `<` | Less than | `commits.count() < 3` |\n| `<=` | Less than or equal | `reviewers.count() <= 1` |\n| `in` | Array membership | `\"bug\" in labels` |\n\n### Logical\n\n| Operator | Precedence (lower = binds tighter) |\n|---|---|\n| `!` (unary not) | 1 |\n| `&&` (and) | 2 |\n| `||` (or) | 3 |\n\nParentheses may be used to override precedence: `(a || b) && c`.\n\n---\n\n## Built-in Functions\n\n### Collection functions\n\nThese are called on an array variable followed by a lambda `x -> expr`.\n\n| Function | Signature | Description |\n|---|---|---|\n| `any()` | `array.any(x -> expr)` | Returns `true` if **any** element satisfies `expr` |\n| `all()` | `array.all(x -> expr)` | Returns `true` if **all** elements satisfy `expr` |\n| `count()` | `array.count()` or `array.count(x -> expr)` | Returns element count; with predicate, counts matching elements |\n\nWhen called without a predicate on an array, `count()` returns the length.\n\n### Path matching\n\n| Function | Signature | Description |\n|---|---|---|\n| `pathMatches(path, pattern)` | `pathMatches(string, string)` | Returns `true` if `path` matches the glob `pattern`. Uses `**` for recursive directory wildcard and `*` for single-segment wildcard. |\n\n### String methods\n\nCalled on a string variable with dot notation.\n\n| Method | Signature | Description |\n|---|---|---|\n| `.matches(re)` | `str.matches(string)` | Returns `true` if `str` matches the RE2 regular-expression string `re`. **Note: uses RE2 syntax, NOT JavaScript regex.** |\n| `.startsWith(prefix)` | `str.startsWith(string)` | Returns `true` if `str` begins with `prefix` |\n| `.endsWith(suffix)` | `str.endsWith(string)` | Returns `true` if `str` ends with `suffix` |\n\n> **RE2 note:** RE2 does not support lookaheads (`(?=...)`), lookbehinds\n> (`(?<=...)`), or backreferences (`\\1`). Use character classes and\n> quantifiers instead.\n\n---\n\n## Runnable Examples\n\n### Example 1 \u2014 Reward test coverage, penalise env-file touches\n\n```\n# +1 if the PR includes any test files\nwhen files.any(f -> pathMatches(f.path, \"**/*.test.ts\")) then +1 reason \"has tests\"\n\n# -5 and flag when .env files are touched (security risk)\nwhen files.any(f -> pathMatches(f.path, \".env\")) then -5 reason \"touches env\" flag \"env-file\"\n```\n\n### Example 2 \u2014 Multi-condition ruleset\n\n```\n# Draft PRs get a small penalty\nwhen pr.isDraft == true then -1 reason \"draft PR\"\n\n# Large PRs are harder to review\nwhen files.count() > 30 then -2 reason \"large diff \u2014 consider splitting\"\n\n# Bonus for linking an issue\nwhen hasLinkedIssue == true then +1 reason \"linked to tracked issue\"\n\n# All reviewers approved \u2192 bonus\nwhen reviewers.count() > 0 && reviewers.all(r -> r.state == \"approved\") then +2 reason \"all reviewers approved\"\n\n# Commits with WIP in message are a warning\nwhen commits.any(c -> c.message.startsWith(\"WIP\")) then -1 reason \"contains WIP commit\"\n\n# Title check \u2014 must not be a bare word (RE2 syntax)\nwhen pr.title.matches(\"^fix$\") then -1 reason \"title too vague\"\n```\n\n---\n\n## Return Type for Parse Errors\n\nWhen `llama_set_pr_scorer_rules` receives a syntactically invalid ruleset,\nit returns a **structured** parse-error array \u2014 not a flattened string \u2014 so\nClaude can identify and fix individual lines:\n\n```json\n{\n \"success\": false,\n \"parseErrors\": [\n { \"line\": 3, \"column\": 12, \"message\": \"Expected 'then' keyword\" },\n { \"line\": 7, \"column\": 1, \"message\": \"Score +15 exceeds maximum of +10\" }\n ]\n}\n```\n\nFix each error by its `line` + `column` and resubmit.\n";
3
+ export declare const getPrScorerSchemaToolDescription = "# PR Scorer Rule Language \u2014 Full DSL Reference\n\nPR Scorer rules let you automatically adjust the quality score of a pull\nrequest based on its content, metadata, and linked issues. Each rule is a\nsingle line that conditionally adds or subtracts points and optionally\nattaches a human-readable reason and flag label.\n\n---\n\n## Grammar (EBNF)\n\n```\nruleset := rule*\nrule := 'when' expr 'then' SignedInt ( 'reason' STRING )? ( 'flag' STRING )?\nSignedInt := ( '+' | '-' ) INTEGER // range: [-10, +10] inclusive\nSTRING := '\"' [^\"]* '\"'\n```\n\nBlank lines and lines beginning with `#` are treated as comments and are\nsilently ignored. Rules are evaluated in order; all matching rules fire\n(scores accumulate \u2014 there is no early-exit).\n\n### Hard limits\n\n| Constraint | Value |\n|---|---|\n| Maximum rules per ruleset | 100 |\n| Maximum nested any() / all() / count(lambda) depth | 8 |\n| Score per rule action | [-10, +10] |\n\n---\n\n## Evaluation Context \u2014 Variables\n\nEvery rule's `expr` can reference the following variables. All property\naccesses are null-safe: accessing a missing property returns `null` (which\nis falsy).\n\n### Top-level PR fields\n\n| Variable | Type | Description |\n|---|---|---|\n| `pr.id` | number | Pull request id (provider-native, e.g. ADO `pullRequestId`) |\n| `pr.title` | string | Pull request title |\n| `pr.description` | string | PR body / description |\n| `pr.author` | string | Display name (or unique name) of the PR author |\n| `pr.lastUpdated` | ISO-8601 string | Timestamp of last update |\n| `pr.isDraft` | boolean | `true` when the PR is in draft state |\n| `pr.filesChanged` | number | Total count of changed files in the PR |\n| `pr.commitCount` | number | Total count of commits in the PR |\n| `pr.linesAdded` | number \\| null | Aggregate lines added across the PR (null if the provider didn't return it) |\n| `pr.linesRemoved` | number \\| null | Aggregate lines removed across the PR (null if the provider didn't return it) |\n\n> The aggregate fields above are the cheapest signals for \"this PR is large.\"\n> Per-file line counts are not available from ADO, so prefer\n> `pr.filesChanged > 50` or `pr.linesAdded > 1000` over file-level thresholds.\n\n### Files\n\n`files` is an array of file-change objects.\n\n| Property | Type | Description |\n|---|---|---|\n| `path` | string | File path relative to repo root |\n| `additions` | number | Lines added in this file |\n| `deletions` | number | Lines deleted in this file |\n| `isBinary` | boolean | `true` if the file is binary |\n\nUse `files.length` or `files.count()` to count total changed files.\n\n> **Provider caveat (Azure DevOps):** the ADO `/stats` endpoint does not\n> return per-file line counts, so `additions` and `deletions` are `0`\n> for every file and `isBinary` is `false`. Rules should match on\n> `path` for ADO PRs and avoid line-count thresholds.\n\n### Commits\n\n`commits` is an array of commit objects.\n\n| Property | Type | Description |\n|---|---|---|\n| `message` | string | Commit message |\n| `author` | string | Commit author username |\n| `date` | ISO-8601 string | Commit timestamp |\n\nUse `commits.length` or `commits.count()` to count total commits.\n\n> **Provider note (Azure DevOps):** commit messages are fetched for every\n> PR and exposed via `commits[].message`. Per-commit `author` and\n> `date` are populated from the PR author and `pr.lastUpdated`\n> respectively, since ADO does not return per-commit metadata cheaply.\n\n### Labels\n\n`labels` is an array of strings (the label names applied to the PR).\nUse `\"bug\" in labels` to check membership.\n\n### Reviewers\n\n`reviewers` is an array of strings \u2014 the display name (falling back to\nunique name) of each reviewer. To check whether a particular reviewer is\npresent, use `\"alice\" in reviewers` or `reviewers.any(r -> r == \"alice\")`.\n\n> **Note:** reviewer approval state is not currently exposed in the\n> evaluation context. A rule cannot distinguish approved vs. pending\n> reviewers; it can only count or name-match them.\n\n### Issue link fields\n\n| Variable | Type | Description |\n|---|---|---|\n| `hasLinkedIssue` | boolean | `true` when at least one issue is linked |\n| `linkedIssueKeys` | string[] | Array of linked issue keys (e.g. `[\"PROJ-42\"]`) |\n\n---\n\n## Operators\n\n### Comparison\n\n| Operator | Meaning | Example |\n|---|---|---|\n| `==` | Equal | `pr.isDraft == true` |\n| `!=` | Not equal | `pr.author != \"bot\"` |\n| `>` | Greater than | `files.count() > 20` |\n| `>=` | Greater than or equal | `files.count() >= 10` |\n| `<` | Less than | `commits.count() < 3` |\n| `<=` | Less than or equal | `reviewers.count() <= 1` |\n| `in` | Array or substring membership | `\"bug\" in labels` |\n\n### Logical\n\n| Operator | Precedence (lower = binds tighter) |\n|---|---|\n| `!` (unary not) | 1 |\n| `&&` (and) | 2 |\n| `||` (or) | 3 |\n\nParentheses may be used to override precedence: `(a || b) && c`.\n\n---\n\n## Built-in Functions\n\n### Array methods\n\nCalled on an array variable with dot notation. `any`/`all`/`count(lambda)`\ntake a lambda `x -> expr`.\n\n| Method | Signature | Description |\n|---|---|---|\n| `.any()` | `array.any(x -> expr)` | Returns `true` if **any** element satisfies `expr` |\n| `.all()` | `array.all(x -> expr)` | Returns `true` if **all** elements satisfy `expr` |\n| `.count()` | `array.count()` *or* `array.count(x -> expr)` | Element count; with a predicate, counts matching elements |\n| `.length` | `array.length` | Element count (no parens; identical to `.count()`) |\n\n### String methods\n\n| Method | Signature | Description |\n|---|---|---|\n| `.matches(re)` | `str.matches(string)` | Returns `true` if `str` matches the RE2 regex `re`. **RE2 syntax \u2014 not JS regex.** |\n| `.startsWith(prefix)` | `str.startsWith(string)` | Prefix check |\n| `.endsWith(suffix)` | `str.endsWith(string)` | Suffix check |\n| `.length` | `str.length` | Character length |\n\n> **RE2 note:** RE2 does not support lookaheads (`(?=...)`), lookbehinds\n> (`(?<=...)`), or backreferences (`\\1`). Use character classes and\n> quantifiers instead. String contents are passed to RE2 **verbatim** \u2014\n> write a single backslash where you would write one in a regex literal.\n\n### Free functions\n\n| Function | Signature | Description |\n|---|---|---|\n| `pathMatches(path, pattern)` | `pathMatches(string, string)` | Glob match. `**` = recursive dir wildcard, `*` = single-segment wildcard. |\n| `daysAgo(dateStr)` | `daysAgo(string) -> number` | Whole days between `dateStr` (ISO-8601) and now. Returns `Infinity` if unparseable. |\n\n---\n\n## String Interpolation\n\nReason and flag strings support `${...}` interpolation. Only simple dotted\npaths are allowed inside the braces \u2014 no method calls or arithmetic.\n\n```\nwhen files.count() > 4 then +1 reason \"${files.length} files touched\"\nwhen commits.count() > 10 then -1 reason \"noisy: ${commits.length} commits\"\n```\n\n---\n\n## Runnable Examples\n\n### Example 1 \u2014 Reward test coverage, penalise env-file touches\n\n```\n# +1 if the PR includes any test files\nwhen files.any(f -> pathMatches(f.path, \"**/*.test.ts\")) then +1 reason \"has tests\"\n\n# -5 and flag when .env files are touched (security risk)\nwhen files.any(f -> pathMatches(f.path, \"**/.env*\")) then -5 reason \"touches env\" flag \"env-file\"\n```\n\n### Example 2 \u2014 Multi-condition ruleset\n\n```\n# Draft PRs get a small penalty\nwhen pr.isDraft == true then -1 reason \"draft PR\"\n\n# Large PRs are harder to review\nwhen files.count() > 30 then -2 reason \"large diff \u2014 consider splitting\"\n\n# Bonus for linking an issue\nwhen hasLinkedIssue == true then +1 reason \"linked to tracked issue\"\n\n# At least one reviewer assigned\nwhen reviewers.count() > 0 then +1 reason \"has reviewers\"\n\n# Migration SQL is high-risk\nwhen files.count(f -> pathMatches(f.path, \"**/migrations/**/*.sql\")) > 0 then -3 reason \"migration SQL\" flag \"schema-change\"\n\n# Stale PR \u2014 open longer than a week\nwhen daysAgo(pr.lastUpdated) > 7 then -1 reason \"stale PR\"\n\n# Title check \u2014 must not be a bare word (RE2 syntax)\nwhen pr.title.matches(\"^fix$\") then -1 reason \"title too vague\"\n```\n\n---\n\n## Return Type for Parse Errors\n\nWhen `llama_set_pr_scorer_rules` receives a syntactically invalid ruleset,\nit returns a **structured** parse-error array \u2014 not a flattened string \u2014 so\nClaude can identify and fix individual lines:\n\n```json\n{\n \"success\": false,\n \"parseErrors\": [\n { \"line\": 3, \"column\": 12, \"message\": \"Expected 'then' keyword\" },\n { \"line\": 7, \"column\": 1, \"message\": \"Score +15 exceeds maximum of +10\" }\n ]\n}\n```\n\nFix each error by its `line` + `column` and resubmit.\n";
4
4
  export declare const getPrScorerSchemaToolSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
5
5
  export type GetPrScorerSchemaToolInput = z.infer<typeof getPrScorerSchemaToolSchema>;
6
6
  export declare function executeGetPrScorerSchema(): Promise<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"prScorer.d.ts","sourceRoot":"","sources":["../../src/tools/prScorer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB,eAAO,MAAM,yBAAyB,+BAA+B,CAAC;AAEtE,eAAO,MAAM,gCAAgC,yjNAA0B,CAAC;AAExE,eAAO,MAAM,2BAA2B,gDAAe,CAAC;AAExD,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAErF,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,MAAM,CAAC,CAEhE;AAMD,eAAO,MAAM,wBAAwB,8BAA8B,CAAC;AAEpE,eAAO,MAAM,+BAA+B,QAGU,CAAC;AAEvD,eAAO,MAAM,0BAA0B;;;;;;;;;EASrC,CAAC;AAEH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAcnF,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,yBAAyB,GAC/B,OAAO,CAAC,MAAM,CAAC,CAsDjB;AAMD,eAAO,MAAM,wBAAwB,8BAA8B,CAAC;AAEpE,eAAO,MAAM,+BAA+B,QAKiD,CAAC;AAE9F,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;EAgBrC,CAAC;AAEH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAQnF,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,yBAAyB,GAC/B,OAAO,CAAC,MAAM,CAAC,CAuFjB"}
1
+ {"version":3,"file":"prScorer.d.ts","sourceRoot":"","sources":["../../src/tools/prScorer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB,eAAO,MAAM,yBAAyB,+BAA+B,CAAC;AAEtE,eAAO,MAAM,gCAAgC,soRAA0B,CAAC;AAExE,eAAO,MAAM,2BAA2B,gDAAe,CAAC;AAExD,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAErF,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,MAAM,CAAC,CAEhE;AAMD,eAAO,MAAM,wBAAwB,8BAA8B,CAAC;AAEpE,eAAO,MAAM,+BAA+B,QAGU,CAAC;AAEvD,eAAO,MAAM,0BAA0B;;;;;;;;;EASrC,CAAC;AAEH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAcnF,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,yBAAyB,GAC/B,OAAO,CAAC,MAAM,CAAC,CAsDjB;AAMD,eAAO,MAAM,wBAAwB,8BAA8B,CAAC;AAEpE,eAAO,MAAM,+BAA+B,QAKiD,CAAC;AAE9F,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;EAgBrC,CAAC;AAEH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAQnF,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,yBAAyB,GAC/B,OAAO,CAAC,MAAM,CAAC,CAuFjB"}
@@ -4,6 +4,12 @@
4
4
  * tool description AND returned as the handler response.
5
5
  *
6
6
  * Spec: LLAMA-1283
7
+ *
8
+ * IMPORTANT: This file is the canonical, machine-readable DSL reference. It
9
+ * MUST match the runtime exposed by packages/pr-scorer-dsl (parser allowed
10
+ * methods, evaluator lookupName(), and the EvalContext shape assembled in
11
+ * apps/api/src/services/prScorerDispatcher.service.ts). When you change the
12
+ * DSL, update this file AND apps/web/src/pages/docs/PrScorerDocsPage.tsx.
7
13
  */
8
- export declare const PR_SCORER_DSL_REFERENCE = "# PR Scorer Rule Language \u2014 Full DSL Reference\n\nPR Scorer rules let you automatically adjust the quality score of a pull\nrequest based on its content, metadata, and linked issues. Each rule is a\nsingle line that conditionally adds or subtracts points and optionally\nattaches a human-readable reason and flag label.\n\n---\n\n## Grammar (EBNF)\n\n```\nruleset := rule*\nrule := 'when' expr 'then' SignedInt ( 'reason' STRING )? ( 'flag' STRING )?\nSignedInt := ( '+' | '-' ) INTEGER // range: [-10, +10] inclusive\nSTRING := '\"' [^\"]* '\"'\n```\n\nBlank lines and lines beginning with `#` are treated as comments and are\nsilently ignored. Rules are evaluated in order; all matching rules fire\n(scores accumulate \u2014 there is no early-exit).\n\n### Hard limits\n\n| Constraint | Value |\n|---|---|\n| Maximum rules per ruleset | 100 |\n| Maximum nested any() / all() depth | 8 |\n| Score per rule action | [-10, +10] |\n\n---\n\n## Evaluation Context \u2014 Variables\n\nEvery rule's `expr` can reference the following variables. All property\naccesses are null-safe: accessing a missing property returns `null` (which\nis falsy).\n\n### Top-level PR fields\n\n| Variable | Type | Description |\n|---|---|---|\n| `pr.id` | string | Unique PR identifier |\n| `pr.title` | string | Pull request title |\n| `pr.description` | string | PR body / description |\n| `pr.author` | string | Username of the PR author |\n| `pr.lastUpdated` | ISO-8601 string | Timestamp of last update |\n| `pr.isDraft` | boolean | `true` when the PR is in draft state |\n\n### Files\n\n`files` is an array of file-change objects.\n\n| Property | Type | Description |\n|---|---|---|\n| `path` | string | File path relative to repo root |\n| `additions` | number | Lines added in this file |\n| `deletions` | number | Lines deleted in this file |\n| `status` | string | `\"added\"` | `\"modified\"` | `\"deleted\"` | `\"renamed\"` |\n\n### Commits\n\n`commits` is an array of commit objects.\n\n| Property | Type | Description |\n|---|---|---|\n| `sha` | string | Commit hash |\n| `message` | string | Commit message |\n| `author` | string | Commit author username |\n| `timestamp` | ISO-8601 string | Commit timestamp |\n\n### Labels\n\n`labels` is an array of strings (the label names applied to the PR).\n\n### Reviewers\n\n`reviewers` is an array of reviewer objects.\n\n| Property | Type | Description |\n|---|---|---|\n| `username` | string | Reviewer username |\n| `state` | string | `\"approved\"` | `\"changes_requested\"` | `\"pending\"` |\n\n### Issue link fields\n\n| Variable | Type | Description |\n|---|---|---|\n| `hasLinkedIssue` | boolean | `true` when at least one issue is linked |\n| `linkedIssueKeys` | string[] | Array of linked issue keys (e.g. `[\"PROJ-42\"]`) |\n\n---\n\n## Operators\n\n### Comparison\n\n| Operator | Meaning | Example |\n|---|---|---|\n| `==` | Equal | `pr.isDraft == true` |\n| `!=` | Not equal | `pr.author != \"bot\"` |\n| `>` | Greater than | `files.count() > 20` |\n| `>=` | Greater than or equal | `files.count() >= 10` |\n| `<` | Less than | `commits.count() < 3` |\n| `<=` | Less than or equal | `reviewers.count() <= 1` |\n| `in` | Array membership | `\"bug\" in labels` |\n\n### Logical\n\n| Operator | Precedence (lower = binds tighter) |\n|---|---|\n| `!` (unary not) | 1 |\n| `&&` (and) | 2 |\n| `||` (or) | 3 |\n\nParentheses may be used to override precedence: `(a || b) && c`.\n\n---\n\n## Built-in Functions\n\n### Collection functions\n\nThese are called on an array variable followed by a lambda `x -> expr`.\n\n| Function | Signature | Description |\n|---|---|---|\n| `any()` | `array.any(x -> expr)` | Returns `true` if **any** element satisfies `expr` |\n| `all()` | `array.all(x -> expr)` | Returns `true` if **all** elements satisfy `expr` |\n| `count()` | `array.count()` or `array.count(x -> expr)` | Returns element count; with predicate, counts matching elements |\n\nWhen called without a predicate on an array, `count()` returns the length.\n\n### Path matching\n\n| Function | Signature | Description |\n|---|---|---|\n| `pathMatches(path, pattern)` | `pathMatches(string, string)` | Returns `true` if `path` matches the glob `pattern`. Uses `**` for recursive directory wildcard and `*` for single-segment wildcard. |\n\n### String methods\n\nCalled on a string variable with dot notation.\n\n| Method | Signature | Description |\n|---|---|---|\n| `.matches(re)` | `str.matches(string)` | Returns `true` if `str` matches the RE2 regular-expression string `re`. **Note: uses RE2 syntax, NOT JavaScript regex.** |\n| `.startsWith(prefix)` | `str.startsWith(string)` | Returns `true` if `str` begins with `prefix` |\n| `.endsWith(suffix)` | `str.endsWith(string)` | Returns `true` if `str` ends with `suffix` |\n\n> **RE2 note:** RE2 does not support lookaheads (`(?=...)`), lookbehinds\n> (`(?<=...)`), or backreferences (`\\1`). Use character classes and\n> quantifiers instead.\n\n---\n\n## Runnable Examples\n\n### Example 1 \u2014 Reward test coverage, penalise env-file touches\n\n```\n# +1 if the PR includes any test files\nwhen files.any(f -> pathMatches(f.path, \"**/*.test.ts\")) then +1 reason \"has tests\"\n\n# -5 and flag when .env files are touched (security risk)\nwhen files.any(f -> pathMatches(f.path, \".env\")) then -5 reason \"touches env\" flag \"env-file\"\n```\n\n### Example 2 \u2014 Multi-condition ruleset\n\n```\n# Draft PRs get a small penalty\nwhen pr.isDraft == true then -1 reason \"draft PR\"\n\n# Large PRs are harder to review\nwhen files.count() > 30 then -2 reason \"large diff \u2014 consider splitting\"\n\n# Bonus for linking an issue\nwhen hasLinkedIssue == true then +1 reason \"linked to tracked issue\"\n\n# All reviewers approved \u2192 bonus\nwhen reviewers.count() > 0 && reviewers.all(r -> r.state == \"approved\") then +2 reason \"all reviewers approved\"\n\n# Commits with WIP in message are a warning\nwhen commits.any(c -> c.message.startsWith(\"WIP\")) then -1 reason \"contains WIP commit\"\n\n# Title check \u2014 must not be a bare word (RE2 syntax)\nwhen pr.title.matches(\"^fix$\") then -1 reason \"title too vague\"\n```\n\n---\n\n## Return Type for Parse Errors\n\nWhen `llama_set_pr_scorer_rules` receives a syntactically invalid ruleset,\nit returns a **structured** parse-error array \u2014 not a flattened string \u2014 so\nClaude can identify and fix individual lines:\n\n```json\n{\n \"success\": false,\n \"parseErrors\": [\n { \"line\": 3, \"column\": 12, \"message\": \"Expected 'then' keyword\" },\n { \"line\": 7, \"column\": 1, \"message\": \"Score +15 exceeds maximum of +10\" }\n ]\n}\n```\n\nFix each error by its `line` + `column` and resubmit.\n";
14
+ export declare const PR_SCORER_DSL_REFERENCE = "# PR Scorer Rule Language \u2014 Full DSL Reference\n\nPR Scorer rules let you automatically adjust the quality score of a pull\nrequest based on its content, metadata, and linked issues. Each rule is a\nsingle line that conditionally adds or subtracts points and optionally\nattaches a human-readable reason and flag label.\n\n---\n\n## Grammar (EBNF)\n\n```\nruleset := rule*\nrule := 'when' expr 'then' SignedInt ( 'reason' STRING )? ( 'flag' STRING )?\nSignedInt := ( '+' | '-' ) INTEGER // range: [-10, +10] inclusive\nSTRING := '\"' [^\"]* '\"'\n```\n\nBlank lines and lines beginning with `#` are treated as comments and are\nsilently ignored. Rules are evaluated in order; all matching rules fire\n(scores accumulate \u2014 there is no early-exit).\n\n### Hard limits\n\n| Constraint | Value |\n|---|---|\n| Maximum rules per ruleset | 100 |\n| Maximum nested any() / all() / count(lambda) depth | 8 |\n| Score per rule action | [-10, +10] |\n\n---\n\n## Evaluation Context \u2014 Variables\n\nEvery rule's `expr` can reference the following variables. All property\naccesses are null-safe: accessing a missing property returns `null` (which\nis falsy).\n\n### Top-level PR fields\n\n| Variable | Type | Description |\n|---|---|---|\n| `pr.id` | number | Pull request id (provider-native, e.g. ADO `pullRequestId`) |\n| `pr.title` | string | Pull request title |\n| `pr.description` | string | PR body / description |\n| `pr.author` | string | Display name (or unique name) of the PR author |\n| `pr.lastUpdated` | ISO-8601 string | Timestamp of last update |\n| `pr.isDraft` | boolean | `true` when the PR is in draft state |\n| `pr.filesChanged` | number | Total count of changed files in the PR |\n| `pr.commitCount` | number | Total count of commits in the PR |\n| `pr.linesAdded` | number \\| null | Aggregate lines added across the PR (null if the provider didn't return it) |\n| `pr.linesRemoved` | number \\| null | Aggregate lines removed across the PR (null if the provider didn't return it) |\n\n> The aggregate fields above are the cheapest signals for \"this PR is large.\"\n> Per-file line counts are not available from ADO, so prefer\n> `pr.filesChanged > 50` or `pr.linesAdded > 1000` over file-level thresholds.\n\n### Files\n\n`files` is an array of file-change objects.\n\n| Property | Type | Description |\n|---|---|---|\n| `path` | string | File path relative to repo root |\n| `additions` | number | Lines added in this file |\n| `deletions` | number | Lines deleted in this file |\n| `isBinary` | boolean | `true` if the file is binary |\n\nUse `files.length` or `files.count()` to count total changed files.\n\n> **Provider caveat (Azure DevOps):** the ADO `/stats` endpoint does not\n> return per-file line counts, so `additions` and `deletions` are `0`\n> for every file and `isBinary` is `false`. Rules should match on\n> `path` for ADO PRs and avoid line-count thresholds.\n\n### Commits\n\n`commits` is an array of commit objects.\n\n| Property | Type | Description |\n|---|---|---|\n| `message` | string | Commit message |\n| `author` | string | Commit author username |\n| `date` | ISO-8601 string | Commit timestamp |\n\nUse `commits.length` or `commits.count()` to count total commits.\n\n> **Provider note (Azure DevOps):** commit messages are fetched for every\n> PR and exposed via `commits[].message`. Per-commit `author` and\n> `date` are populated from the PR author and `pr.lastUpdated`\n> respectively, since ADO does not return per-commit metadata cheaply.\n\n### Labels\n\n`labels` is an array of strings (the label names applied to the PR).\nUse `\"bug\" in labels` to check membership.\n\n### Reviewers\n\n`reviewers` is an array of strings \u2014 the display name (falling back to\nunique name) of each reviewer. To check whether a particular reviewer is\npresent, use `\"alice\" in reviewers` or `reviewers.any(r -> r == \"alice\")`.\n\n> **Note:** reviewer approval state is not currently exposed in the\n> evaluation context. A rule cannot distinguish approved vs. pending\n> reviewers; it can only count or name-match them.\n\n### Issue link fields\n\n| Variable | Type | Description |\n|---|---|---|\n| `hasLinkedIssue` | boolean | `true` when at least one issue is linked |\n| `linkedIssueKeys` | string[] | Array of linked issue keys (e.g. `[\"PROJ-42\"]`) |\n\n---\n\n## Operators\n\n### Comparison\n\n| Operator | Meaning | Example |\n|---|---|---|\n| `==` | Equal | `pr.isDraft == true` |\n| `!=` | Not equal | `pr.author != \"bot\"` |\n| `>` | Greater than | `files.count() > 20` |\n| `>=` | Greater than or equal | `files.count() >= 10` |\n| `<` | Less than | `commits.count() < 3` |\n| `<=` | Less than or equal | `reviewers.count() <= 1` |\n| `in` | Array or substring membership | `\"bug\" in labels` |\n\n### Logical\n\n| Operator | Precedence (lower = binds tighter) |\n|---|---|\n| `!` (unary not) | 1 |\n| `&&` (and) | 2 |\n| `||` (or) | 3 |\n\nParentheses may be used to override precedence: `(a || b) && c`.\n\n---\n\n## Built-in Functions\n\n### Array methods\n\nCalled on an array variable with dot notation. `any`/`all`/`count(lambda)`\ntake a lambda `x -> expr`.\n\n| Method | Signature | Description |\n|---|---|---|\n| `.any()` | `array.any(x -> expr)` | Returns `true` if **any** element satisfies `expr` |\n| `.all()` | `array.all(x -> expr)` | Returns `true` if **all** elements satisfy `expr` |\n| `.count()` | `array.count()` *or* `array.count(x -> expr)` | Element count; with a predicate, counts matching elements |\n| `.length` | `array.length` | Element count (no parens; identical to `.count()`) |\n\n### String methods\n\n| Method | Signature | Description |\n|---|---|---|\n| `.matches(re)` | `str.matches(string)` | Returns `true` if `str` matches the RE2 regex `re`. **RE2 syntax \u2014 not JS regex.** |\n| `.startsWith(prefix)` | `str.startsWith(string)` | Prefix check |\n| `.endsWith(suffix)` | `str.endsWith(string)` | Suffix check |\n| `.length` | `str.length` | Character length |\n\n> **RE2 note:** RE2 does not support lookaheads (`(?=...)`), lookbehinds\n> (`(?<=...)`), or backreferences (`\\1`). Use character classes and\n> quantifiers instead. String contents are passed to RE2 **verbatim** \u2014\n> write a single backslash where you would write one in a regex literal.\n\n### Free functions\n\n| Function | Signature | Description |\n|---|---|---|\n| `pathMatches(path, pattern)` | `pathMatches(string, string)` | Glob match. `**` = recursive dir wildcard, `*` = single-segment wildcard. |\n| `daysAgo(dateStr)` | `daysAgo(string) -> number` | Whole days between `dateStr` (ISO-8601) and now. Returns `Infinity` if unparseable. |\n\n---\n\n## String Interpolation\n\nReason and flag strings support `${...}` interpolation. Only simple dotted\npaths are allowed inside the braces \u2014 no method calls or arithmetic.\n\n```\nwhen files.count() > 4 then +1 reason \"${files.length} files touched\"\nwhen commits.count() > 10 then -1 reason \"noisy: ${commits.length} commits\"\n```\n\n---\n\n## Runnable Examples\n\n### Example 1 \u2014 Reward test coverage, penalise env-file touches\n\n```\n# +1 if the PR includes any test files\nwhen files.any(f -> pathMatches(f.path, \"**/*.test.ts\")) then +1 reason \"has tests\"\n\n# -5 and flag when .env files are touched (security risk)\nwhen files.any(f -> pathMatches(f.path, \"**/.env*\")) then -5 reason \"touches env\" flag \"env-file\"\n```\n\n### Example 2 \u2014 Multi-condition ruleset\n\n```\n# Draft PRs get a small penalty\nwhen pr.isDraft == true then -1 reason \"draft PR\"\n\n# Large PRs are harder to review\nwhen files.count() > 30 then -2 reason \"large diff \u2014 consider splitting\"\n\n# Bonus for linking an issue\nwhen hasLinkedIssue == true then +1 reason \"linked to tracked issue\"\n\n# At least one reviewer assigned\nwhen reviewers.count() > 0 then +1 reason \"has reviewers\"\n\n# Migration SQL is high-risk\nwhen files.count(f -> pathMatches(f.path, \"**/migrations/**/*.sql\")) > 0 then -3 reason \"migration SQL\" flag \"schema-change\"\n\n# Stale PR \u2014 open longer than a week\nwhen daysAgo(pr.lastUpdated) > 7 then -1 reason \"stale PR\"\n\n# Title check \u2014 must not be a bare word (RE2 syntax)\nwhen pr.title.matches(\"^fix$\") then -1 reason \"title too vague\"\n```\n\n---\n\n## Return Type for Parse Errors\n\nWhen `llama_set_pr_scorer_rules` receives a syntactically invalid ruleset,\nit returns a **structured** parse-error array \u2014 not a flattened string \u2014 so\nClaude can identify and fix individual lines:\n\n```json\n{\n \"success\": false,\n \"parseErrors\": [\n { \"line\": 3, \"column\": 12, \"message\": \"Expected 'then' keyword\" },\n { \"line\": 7, \"column\": 1, \"message\": \"Score +15 exceeds maximum of +10\" }\n ]\n}\n```\n\nFix each error by its `line` + `column` and resubmit.\n";
9
15
  //# sourceMappingURL=prScorerSchema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prScorerSchema.d.ts","sourceRoot":"","sources":["../../src/tools/prScorerSchema.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAO,MAAM,uBAAuB,yjNAgNnC,CAAC"}
1
+ {"version":3,"file":"prScorerSchema.d.ts","sourceRoot":"","sources":["../../src/tools/prScorerSchema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,eAAO,MAAM,uBAAuB,soRAuPnC,CAAC"}
@@ -4,6 +4,12 @@
4
4
  * tool description AND returned as the handler response.
5
5
  *
6
6
  * Spec: LLAMA-1283
7
+ *
8
+ * IMPORTANT: This file is the canonical, machine-readable DSL reference. It
9
+ * MUST match the runtime exposed by packages/pr-scorer-dsl (parser allowed
10
+ * methods, evaluator lookupName(), and the EvalContext shape assembled in
11
+ * apps/api/src/services/prScorerDispatcher.service.ts). When you change the
12
+ * DSL, update this file AND apps/web/src/pages/docs/PrScorerDocsPage.tsx.
7
13
  */
8
14
  export const PR_SCORER_DSL_REFERENCE = `# PR Scorer Rule Language — Full DSL Reference
9
15
 
@@ -32,7 +38,7 @@ silently ignored. Rules are evaluated in order; all matching rules fire
32
38
  | Constraint | Value |
33
39
  |---|---|
34
40
  | Maximum rules per ruleset | 100 |
35
- | Maximum nested any() / all() depth | 8 |
41
+ | Maximum nested any() / all() / count(lambda) depth | 8 |
36
42
  | Score per rule action | [-10, +10] |
37
43
 
38
44
  ---
@@ -47,12 +53,20 @@ is falsy).
47
53
 
48
54
  | Variable | Type | Description |
49
55
  |---|---|---|
50
- | \`pr.id\` | string | Unique PR identifier |
56
+ | \`pr.id\` | number | Pull request id (provider-native, e.g. ADO \`pullRequestId\`) |
51
57
  | \`pr.title\` | string | Pull request title |
52
58
  | \`pr.description\` | string | PR body / description |
53
- | \`pr.author\` | string | Username of the PR author |
59
+ | \`pr.author\` | string | Display name (or unique name) of the PR author |
54
60
  | \`pr.lastUpdated\` | ISO-8601 string | Timestamp of last update |
55
61
  | \`pr.isDraft\` | boolean | \`true\` when the PR is in draft state |
62
+ | \`pr.filesChanged\` | number | Total count of changed files in the PR |
63
+ | \`pr.commitCount\` | number | Total count of commits in the PR |
64
+ | \`pr.linesAdded\` | number \\| null | Aggregate lines added across the PR (null if the provider didn't return it) |
65
+ | \`pr.linesRemoved\` | number \\| null | Aggregate lines removed across the PR (null if the provider didn't return it) |
66
+
67
+ > The aggregate fields above are the cheapest signals for "this PR is large."
68
+ > Per-file line counts are not available from ADO, so prefer
69
+ > \`pr.filesChanged > 50\` or \`pr.linesAdded > 1000\` over file-level thresholds.
56
70
 
57
71
  ### Files
58
72
 
@@ -63,7 +77,14 @@ is falsy).
63
77
  | \`path\` | string | File path relative to repo root |
64
78
  | \`additions\` | number | Lines added in this file |
65
79
  | \`deletions\` | number | Lines deleted in this file |
66
- | \`status\` | string | \`"added"\` \| \`"modified"\` \| \`"deleted"\` \| \`"renamed"\` |
80
+ | \`isBinary\` | boolean | \`true\` if the file is binary |
81
+
82
+ Use \`files.length\` or \`files.count()\` to count total changed files.
83
+
84
+ > **Provider caveat (Azure DevOps):** the ADO \`/stats\` endpoint does not
85
+ > return per-file line counts, so \`additions\` and \`deletions\` are \`0\`
86
+ > for every file and \`isBinary\` is \`false\`. Rules should match on
87
+ > \`path\` for ADO PRs and avoid line-count thresholds.
67
88
 
68
89
  ### Commits
69
90
 
@@ -71,23 +92,31 @@ is falsy).
71
92
 
72
93
  | Property | Type | Description |
73
94
  |---|---|---|
74
- | \`sha\` | string | Commit hash |
75
95
  | \`message\` | string | Commit message |
76
96
  | \`author\` | string | Commit author username |
77
- | \`timestamp\` | ISO-8601 string | Commit timestamp |
97
+ | \`date\` | ISO-8601 string | Commit timestamp |
98
+
99
+ Use \`commits.length\` or \`commits.count()\` to count total commits.
100
+
101
+ > **Provider note (Azure DevOps):** commit messages are fetched for every
102
+ > PR and exposed via \`commits[].message\`. Per-commit \`author\` and
103
+ > \`date\` are populated from the PR author and \`pr.lastUpdated\`
104
+ > respectively, since ADO does not return per-commit metadata cheaply.
78
105
 
79
106
  ### Labels
80
107
 
81
108
  \`labels\` is an array of strings (the label names applied to the PR).
109
+ Use \`"bug" in labels\` to check membership.
82
110
 
83
111
  ### Reviewers
84
112
 
85
- \`reviewers\` is an array of reviewer objects.
113
+ \`reviewers\` is an array of strings — the display name (falling back to
114
+ unique name) of each reviewer. To check whether a particular reviewer is
115
+ present, use \`"alice" in reviewers\` or \`reviewers.any(r -> r == "alice")\`.
86
116
 
87
- | Property | Type | Description |
88
- |---|---|---|
89
- | \`username\` | string | Reviewer username |
90
- | \`state\` | string | \`"approved"\` \| \`"changes_requested"\` \| \`"pending"\` |
117
+ > **Note:** reviewer approval state is not currently exposed in the
118
+ > evaluation context. A rule cannot distinguish approved vs. pending
119
+ > reviewers; it can only count or name-match them.
91
120
 
92
121
  ### Issue link fields
93
122
 
@@ -110,7 +139,7 @@ is falsy).
110
139
  | \`>=\` | Greater than or equal | \`files.count() >= 10\` |
111
140
  | \`<\` | Less than | \`commits.count() < 3\` |
112
141
  | \`<=\` | Less than or equal | \`reviewers.count() <= 1\` |
113
- | \`in\` | Array membership | \`"bug" in labels\` |
142
+ | \`in\` | Array or substring membership | \`"bug" in labels\` |
114
143
 
115
144
  ### Logical
116
145
 
@@ -126,37 +155,50 @@ Parentheses may be used to override precedence: \`(a || b) && c\`.
126
155
 
127
156
  ## Built-in Functions
128
157
 
129
- ### Collection functions
158
+ ### Array methods
130
159
 
131
- These are called on an array variable followed by a lambda \`x -> expr\`.
160
+ Called on an array variable with dot notation. \`any\`/\`all\`/\`count(lambda)\`
161
+ take a lambda \`x -> expr\`.
132
162
 
133
- | Function | Signature | Description |
163
+ | Method | Signature | Description |
164
+ |---|---|---|
165
+ | \`.any()\` | \`array.any(x -> expr)\` | Returns \`true\` if **any** element satisfies \`expr\` |
166
+ | \`.all()\` | \`array.all(x -> expr)\` | Returns \`true\` if **all** elements satisfy \`expr\` |
167
+ | \`.count()\` | \`array.count()\` *or* \`array.count(x -> expr)\` | Element count; with a predicate, counts matching elements |
168
+ | \`.length\` | \`array.length\` | Element count (no parens; identical to \`.count()\`) |
169
+
170
+ ### String methods
171
+
172
+ | Method | Signature | Description |
134
173
  |---|---|---|
135
- | \`any()\` | \`array.any(x -> expr)\` | Returns \`true\` if **any** element satisfies \`expr\` |
136
- | \`all()\` | \`array.all(x -> expr)\` | Returns \`true\` if **all** elements satisfy \`expr\` |
137
- | \`count()\` | \`array.count()\` or \`array.count(x -> expr)\` | Returns element count; with predicate, counts matching elements |
174
+ | \`.matches(re)\` | \`str.matches(string)\` | Returns \`true\` if \`str\` matches the RE2 regex \`re\`. **RE2 syntax — not JS regex.** |
175
+ | \`.startsWith(prefix)\` | \`str.startsWith(string)\` | Prefix check |
176
+ | \`.endsWith(suffix)\` | \`str.endsWith(string)\` | Suffix check |
177
+ | \`.length\` | \`str.length\` | Character length |
138
178
 
139
- When called without a predicate on an array, \`count()\` returns the length.
179
+ > **RE2 note:** RE2 does not support lookaheads (\`(?=...)\`), lookbehinds
180
+ > (\`(?<=...)\`), or backreferences (\`\\1\`). Use character classes and
181
+ > quantifiers instead. String contents are passed to RE2 **verbatim** —
182
+ > write a single backslash where you would write one in a regex literal.
140
183
 
141
- ### Path matching
184
+ ### Free functions
142
185
 
143
186
  | Function | Signature | Description |
144
187
  |---|---|---|
145
- | \`pathMatches(path, pattern)\` | \`pathMatches(string, string)\` | Returns \`true\` if \`path\` matches the glob \`pattern\`. Uses \`**\` for recursive directory wildcard and \`*\` for single-segment wildcard. |
188
+ | \`pathMatches(path, pattern)\` | \`pathMatches(string, string)\` | Glob match. \`**\` = recursive dir wildcard, \`*\` = single-segment wildcard. |
189
+ | \`daysAgo(dateStr)\` | \`daysAgo(string) -> number\` | Whole days between \`dateStr\` (ISO-8601) and now. Returns \`Infinity\` if unparseable. |
146
190
 
147
- ### String methods
191
+ ---
148
192
 
149
- Called on a string variable with dot notation.
193
+ ## String Interpolation
150
194
 
151
- | Method | Signature | Description |
152
- |---|---|---|
153
- | \`.matches(re)\` | \`str.matches(string)\` | Returns \`true\` if \`str\` matches the RE2 regular-expression string \`re\`. **Note: uses RE2 syntax, NOT JavaScript regex.** |
154
- | \`.startsWith(prefix)\` | \`str.startsWith(string)\` | Returns \`true\` if \`str\` begins with \`prefix\` |
155
- | \`.endsWith(suffix)\` | \`str.endsWith(string)\` | Returns \`true\` if \`str\` ends with \`suffix\` |
195
+ Reason and flag strings support \`\${...}\` interpolation. Only simple dotted
196
+ paths are allowed inside the braces — no method calls or arithmetic.
156
197
 
157
- > **RE2 note:** RE2 does not support lookaheads (\`(?=...)\`), lookbehinds
158
- > (\`(?<=...)\`), or backreferences (\`\\1\`). Use character classes and
159
- > quantifiers instead.
198
+ \`\`\`
199
+ when files.count() > 4 then +1 reason "\${files.length} files touched"
200
+ when commits.count() > 10 then -1 reason "noisy: \${commits.length} commits"
201
+ \`\`\`
160
202
 
161
203
  ---
162
204
 
@@ -169,7 +211,7 @@ Called on a string variable with dot notation.
169
211
  when files.any(f -> pathMatches(f.path, "**/*.test.ts")) then +1 reason "has tests"
170
212
 
171
213
  # -5 and flag when .env files are touched (security risk)
172
- when files.any(f -> pathMatches(f.path, ".env")) then -5 reason "touches env" flag "env-file"
214
+ when files.any(f -> pathMatches(f.path, "**/.env*")) then -5 reason "touches env" flag "env-file"
173
215
  \`\`\`
174
216
 
175
217
  ### Example 2 — Multi-condition ruleset
@@ -184,11 +226,14 @@ when files.count() > 30 then -2 reason "large diff — consider splitting"
184
226
  # Bonus for linking an issue
185
227
  when hasLinkedIssue == true then +1 reason "linked to tracked issue"
186
228
 
187
- # All reviewers approved bonus
188
- when reviewers.count() > 0 && reviewers.all(r -> r.state == "approved") then +2 reason "all reviewers approved"
229
+ # At least one reviewer assigned
230
+ when reviewers.count() > 0 then +1 reason "has reviewers"
231
+
232
+ # Migration SQL is high-risk
233
+ when files.count(f -> pathMatches(f.path, "**/migrations/**/*.sql")) > 0 then -3 reason "migration SQL" flag "schema-change"
189
234
 
190
- # Commits with WIP in message are a warning
191
- when commits.any(c -> c.message.startsWith("WIP")) then -1 reason "contains WIP commit"
235
+ # Stale PR open longer than a week
236
+ when daysAgo(pr.lastUpdated) > 7 then -1 reason "stale PR"
192
237
 
193
238
  # Title check — must not be a bare word (RE2 syntax)
194
239
  when pr.title.matches("^fix$") then -1 reason "title too vague"
@@ -1 +1 @@
1
- {"version":3,"file":"prScorerSchema.js","sourceRoot":"","sources":["../../src/tools/prScorerSchema.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgNtC,CAAC"}
1
+ {"version":3,"file":"prScorerSchema.js","sourceRoot":"","sources":["../../src/tools/prScorerSchema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuPtC,CAAC"}
@@ -31,6 +31,7 @@ export declare const manageRoadmapToolSchema: z.ZodObject<{
31
31
  id: z.ZodOptional<z.ZodString>;
32
32
  title: z.ZodOptional<z.ZodString>;
33
33
  epicId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
34
+ epicIds: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
34
35
  size: z.ZodOptional<z.ZodNullable<z.ZodEnum<["XS", "S", "M", "L", "XL", "XXL"]>>>;
35
36
  idealStartDate: z.ZodOptional<z.ZodNullable<z.ZodString>>;
36
37
  idealEndDate: z.ZodOptional<z.ZodNullable<z.ZodString>>;
@@ -42,6 +43,7 @@ export declare const manageRoadmapToolSchema: z.ZodObject<{
42
43
  sortOrder?: number | undefined;
43
44
  title?: string | undefined;
44
45
  epicId?: string | null | undefined;
46
+ epicIds?: string[] | undefined;
45
47
  size?: "XS" | "S" | "M" | "L" | "XL" | "XXL" | null | undefined;
46
48
  idealStartDate?: string | null | undefined;
47
49
  idealEndDate?: string | null | undefined;
@@ -52,6 +54,7 @@ export declare const manageRoadmapToolSchema: z.ZodObject<{
52
54
  sortOrder?: number | undefined;
53
55
  title?: string | undefined;
54
56
  epicId?: string | null | undefined;
57
+ epicIds?: string[] | undefined;
55
58
  size?: "XS" | "S" | "M" | "L" | "XL" | "XXL" | null | undefined;
56
59
  idealStartDate?: string | null | undefined;
57
60
  idealEndDate?: string | null | undefined;
@@ -106,6 +109,7 @@ export declare const manageRoadmapToolSchema: z.ZodObject<{
106
109
  sortOrder?: number | undefined;
107
110
  title?: string | undefined;
108
111
  epicId?: string | null | undefined;
112
+ epicIds?: string[] | undefined;
109
113
  size?: "XS" | "S" | "M" | "L" | "XL" | "XXL" | null | undefined;
110
114
  idealStartDate?: string | null | undefined;
111
115
  idealEndDate?: string | null | undefined;
@@ -138,6 +142,7 @@ export declare const manageRoadmapToolSchema: z.ZodObject<{
138
142
  sortOrder?: number | undefined;
139
143
  title?: string | undefined;
140
144
  epicId?: string | null | undefined;
145
+ epicIds?: string[] | undefined;
141
146
  size?: "XS" | "S" | "M" | "L" | "XL" | "XXL" | null | undefined;
142
147
  idealStartDate?: string | null | undefined;
143
148
  idealEndDate?: string | null | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"roadmap.d.ts","sourceRoot":"","sources":["../../src/tools/roadmap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAiDxB,eAAO,MAAM,kBAAkB,sBAAsB,CAAC;AAEtD,eAAO,MAAM,yBAAyB,qIAAqI,CAAC;AAE5K,eAAO,MAAM,oBAAoB;;;;;;;;;;;;EAI/B,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEvE,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,CAuDnF;AAMD,eAAO,MAAM,qBAAqB,yBAAyB,CAAC;AAE5D,eAAO,MAAM,4BAA4B,8IAA8I,CAAC;AAKxL,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmClC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAa7E,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CA4HzF"}
1
+ {"version":3,"file":"roadmap.d.ts","sourceRoot":"","sources":["../../src/tools/roadmap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAiDxB,eAAO,MAAM,kBAAkB,sBAAsB,CAAC;AAEtD,eAAO,MAAM,yBAAyB,qIAAqI,CAAC;AAE5K,eAAO,MAAM,oBAAoB;;;;;;;;;;;;EAI/B,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEvE,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,CA0DnF;AAMD,eAAO,MAAM,qBAAqB,yBAAyB,CAAC;AAE5D,eAAO,MAAM,4BAA4B,8IAA8I,CAAC;AAKxL,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoClC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAa7E,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CAiIzF"}
@@ -60,6 +60,9 @@ export async function executeGetRoadmap(input) {
60
60
  epic: item.epic
61
61
  ? { key: item.epic.key, summary: item.epic.summary, childCount: item.epic.childCount }
62
62
  : null,
63
+ epics: Array.isArray(item.epics)
64
+ ? item.epics.map((e) => ({ id: e.id, key: e.key, summary: e.summary, sortOrder: e.sortOrder }))
65
+ : [],
63
66
  tShirtSize: item.tShirtSize,
64
67
  idealStart: item.idealStartDate,
65
68
  idealEnd: item.idealEndDate,
@@ -113,7 +116,8 @@ export const manageRoadmapToolSchema = z.object({
113
116
  action: z.enum(['add', 'update', 'remove']).describe('Item action'),
114
117
  id: z.string().optional().describe('Item ID (required for update/remove)'),
115
118
  title: z.string().optional().describe('Item title (required for add)'),
116
- epicId: z.string().nullable().optional().describe('Epic issue ID to link'),
119
+ epicId: z.string().nullable().optional().describe('Single epic issue ID to link (legacy; ignored when epicIds is also provided)'),
120
+ epicIds: z.array(z.string()).optional().describe('Multi-epic: array of epic issue IDs. When present, REPLACES the full set of epics on this item. Pass [] to clear all epics.'),
117
121
  size: tShirtSizeEnum.nullable().optional().describe('T-shirt size (XS/S/M/L/XL/XXL)'),
118
122
  idealStartDate: z.string().nullable().optional().describe('Ideal start date (ISO 8601)'),
119
123
  idealEndDate: z.string().nullable().optional().describe('Ideal end date (ISO 8601)'),
@@ -186,8 +190,13 @@ export async function executeManageRoadmap(input) {
186
190
  mapped.id = item.id;
187
191
  if (item.title !== undefined)
188
192
  mapped.title = item.title;
189
- if (item.epicId !== undefined)
193
+ // epicIds takes priority over epicId (LLAMA-1869 multi-epic)
194
+ if (item.epicIds !== undefined) {
195
+ mapped.epicIds = item.epicIds;
196
+ }
197
+ else if (item.epicId !== undefined) {
190
198
  mapped.epicId = item.epicId;
199
+ }
191
200
  if (item.size !== undefined)
192
201
  mapped.tShirtSize = item.size;
193
202
  if (item.idealStartDate !== undefined)