obsidian-mcp-pro 2.1.0 → 3.0.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 (63) hide show
  1. package/README.md +15 -7
  2. package/build/index.d.ts.map +1 -1
  3. package/build/index.js +14 -13
  4. package/build/index.js.map +1 -1
  5. package/build/install.d.ts.map +1 -1
  6. package/build/install.js +1 -1
  7. package/build/install.js.map +1 -1
  8. package/build/lib/chunker.js +81 -2
  9. package/build/lib/chunker.js.map +1 -1
  10. package/build/lib/embedding-store.d.ts +1 -0
  11. package/build/lib/embedding-store.d.ts.map +1 -1
  12. package/build/lib/embedding-store.js +61 -9
  13. package/build/lib/embedding-store.js.map +1 -1
  14. package/build/lib/fs-ops.d.ts +2 -0
  15. package/build/lib/fs-ops.d.ts.map +1 -0
  16. package/build/lib/fs-ops.js +26 -0
  17. package/build/lib/fs-ops.js.map +1 -0
  18. package/build/lib/index-cache.d.ts +9 -0
  19. package/build/lib/index-cache.d.ts.map +1 -1
  20. package/build/lib/index-cache.js +14 -4
  21. package/build/lib/index-cache.js.map +1 -1
  22. package/build/lib/logger.d.ts.map +1 -1
  23. package/build/lib/logger.js +88 -7
  24. package/build/lib/logger.js.map +1 -1
  25. package/build/lib/tool-output.d.ts +2 -0
  26. package/build/lib/tool-output.d.ts.map +1 -0
  27. package/build/lib/tool-output.js +5 -0
  28. package/build/lib/tool-output.js.map +1 -0
  29. package/build/lib/vault.d.ts +31 -2
  30. package/build/lib/vault.d.ts.map +1 -1
  31. package/build/lib/vault.js +142 -88
  32. package/build/lib/vault.js.map +1 -1
  33. package/build/tools/attachments.d.ts.map +1 -1
  34. package/build/tools/attachments.js +117 -46
  35. package/build/tools/attachments.js.map +1 -1
  36. package/build/tools/bases.d.ts.map +1 -1
  37. package/build/tools/bases.js +15 -47
  38. package/build/tools/bases.js.map +1 -1
  39. package/build/tools/canvas.d.ts.map +1 -1
  40. package/build/tools/canvas.js +116 -57
  41. package/build/tools/canvas.js.map +1 -1
  42. package/build/tools/links.d.ts.map +1 -1
  43. package/build/tools/links.js +183 -124
  44. package/build/tools/links.js.map +1 -1
  45. package/build/tools/prompts.d.ts.map +1 -1
  46. package/build/tools/prompts.js +11 -9
  47. package/build/tools/prompts.js.map +1 -1
  48. package/build/tools/read.d.ts.map +1 -1
  49. package/build/tools/read.js +84 -81
  50. package/build/tools/read.js.map +1 -1
  51. package/build/tools/sections.d.ts.map +1 -1
  52. package/build/tools/sections.js +81 -19
  53. package/build/tools/sections.js.map +1 -1
  54. package/build/tools/semantic.d.ts.map +1 -1
  55. package/build/tools/semantic.js +26 -44
  56. package/build/tools/semantic.js.map +1 -1
  57. package/build/tools/tags.d.ts.map +1 -1
  58. package/build/tools/tags.js +97 -53
  59. package/build/tools/tags.js.map +1 -1
  60. package/build/tools/write.d.ts.map +1 -1
  61. package/build/tools/write.js +22 -17
  62. package/build/tools/write.js.map +1 -1
  63. package/package.json +20 -11
@@ -1 +1 @@
1
- {"version":3,"file":"links.js","sourceRoot":"","sources":["../../src/tools/links.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"links.js","sourceRoot":"","sources":["../../src/tools/links.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AA6CvC,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAClC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AACnC,MAAM,6BAA6B,GAAG,EAAE,CAAC;AAEzC,SAAS,gBAAgB,CAAC,KAAa;IACrC,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC;AACD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAuB,CAAC;AAElD,wEAAwE;AACxE,SAAS,aAAa,CAAC,GAAW,EAAE,KAAkB;IACpD,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAChD,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC3B,OAAO,UAAU,CAAC,IAAI,GAAG,uBAAuB,EAAE,CAAC;QACjD,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;QAC9C,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM;QAChC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAC5B,KAAe,EACf,MAAmC;IAEnC,2EAA2E;IAC3E,0EAA0E;IAC1E,oBAAoB;IACpB,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IACjC,IAAI,IAAI,GAAG,UAAU,CAAC;IACtB,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC;QAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,IAAI,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IACD,OAAO,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;AACzD,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,SAAiB,EACjB,KAAe;IAEf,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IACjC,MAAM,aAAa,GAAG,MAAM,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAC5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,6BAA6B,EAAE,CAAC;QACtE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,6BAA6B,CAAC,CAAC;QACjE,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAC7B,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAClF,CAAC;QACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YACjD,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,KAAK,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IACD,OAAO,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAe;IACxC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;QAC7B,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAChE,MAAM,QAAQ,GAAG,SAAS,UAAU,EAAE,CAAC;QACvC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,UAAU,CAAC;QAC3D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,QAAQ,EAAE,CAAC,EAAE,CAAC;YACpC,MAAM,CAAC,GAAG,CAAC,QAAQ,QAAQ,EAAE,EAAE,QAAQ,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,eAAe,CAAC,CAAS,EAAE,CAAS;IAC3C,MAAM,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IAC3C,OAAO,CAAC,GAAG,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAAE,CAAC,EAAE,CAAC;IACvC,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAe;IACzC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC7C,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;QAC7B,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAChE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC;YAAE,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAE5D,MAAM,YAAY,GAAG,IAAI;aACtB,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;aAC1C,WAAW,EAAE,CAAC;QACjB,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC3C,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AAC7B,CAAC;AAED,SAAS,wBAAwB,CAC/B,IAAY,EACZ,eAAuB,EACvB,YAAsB,EACtB,KAAoB,EACpB,QAA6B;IAE7B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC;IAC5D,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAE5B,MAAM,cAAc,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACvD,MAAM,mBAAmB,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC;IAEzD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACnD,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;IAExB,IAAI,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,gBAAgB,GAAa,EAAE,CAAC;QACtC,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE,CAAC;YACpC,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YAChE,IAAI,UAAU,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;gBAC7C,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;gBACnF,IAAI,MAAM,KAAK,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAAE,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC7E,CAAC;QACH,CAAC;QACD,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,gBAAgB,CAAC,CAAC,CAAE,CAAC;QAC/D,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,OAAO,eAAe,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,CAAC;IACjE,MAAM,kBAAkB,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAClE,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,kBAAkB,CAAC,CAAC,CAAE,CAAC;IACnE,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,OAAO,eAAe,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO,QAAQ,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,IAAI,CAAC;AACnD,CAAC;AAED,SAAS,eAAe,CAAC,eAAuB,EAAE,UAA6B;IAC7E,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACnC,MAAM,EAAE,GAAG,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;QAC3E,MAAM,EAAE,GAAG,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;QAC3E,IAAI,EAAE,KAAK,EAAE;YAAE,OAAO,EAAE,GAAG,EAAE,CAAC;QAC9B,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7B,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC;AACT,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,SAAiB,EACjB,MAAe;IAEf,MAAM,QAAQ,GAAG,GAAG,SAAS,KAAK,MAAM,IAAI,EAAE,EAAE,CAAC;IACjD,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAEpD,IAAI,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,QAAQ,GAAG,kBAAkB,EAAE,CAAC;QAChE,MAAM,EAAE,GAAG,MAAM,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACvD,IAAI,EAAE,KAAK,MAAM,CAAC,WAAW,EAAE,CAAC;YAC9B,oEAAoE;YACpE,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAChC,OAAO,MAAM,CAAC,IAAI,CAAC;QACrB,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAuB,CAAC;IAChD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAuB,CAAC;IACjD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC/C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC9C,MAAM,WAAW,GAAG,IAAI,GAAG,EAAwB,CAAC;IACpD,MAAM,cAAc,GAAG,IAAI,GAAG,EAA2B,CAAC;IAE1D,gCAAgC;IAChC,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;QAChC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QAClC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,sEAAsE;IACtE,4DAA4D;IAC5D,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAC5D,SAAS,EACT,QAAQ,EACR,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QACZ,GAAG,CAAC,IAAI,CAAC,8BAA8B,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1D,CAAC,CACF,CAAC;IAEF,mEAAmE;IACnE,gFAAgF;IAChF,wEAAwE;IACxE,uEAAuE;IACvE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3C,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,OAAO,KAAK,SAAS;YAAE,SAAS;QACpC,KAAK,MAAM,KAAK,IAAI,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5C,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YAChC,IAAI,CAAC,GAAG;gBAAE,SAAS;YACnB,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAChC,IAAI,KAAK,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAChC,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;YACnE,CAAC;YACD,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IACD,MAAM,SAAS,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAE/C,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,OAAO,KAAK,SAAS;YAAE,SAAS;QAEpC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC/B,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAExC,+BAA+B;QAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QACzB,CAAC;QACD,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAE9B,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC;QAC3D,MAAM,OAAO,GAAoB,EAAE,CAAC;QAEpC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,2EAA2E;YAC3E,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC;YACrD,IAAI,CAAC,UAAU;gBAAE,SAAS;YAE1B,MAAM,QAAQ,GAAG,wBAAwB,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;YAC/F,OAAO,CAAC,IAAI,CAAC;gBACX,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,YAAY,EAAE,QAAQ;gBACtB,OAAO,EAAE,QAAQ,KAAK,IAAI;gBAC1B,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC,CAAC;YACH,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAErB,yCAAyC;gBACzC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC7B,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;gBACrC,CAAC;gBACD,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACN,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBACtD,MAAM,MAAM,GAAe;oBACzB,UAAU,EAAE,QAAQ;oBACpB,UAAU,EAAE,IAAI,CAAC,MAAM;oBACvB,IAAI,EAAE,QAAQ,CAAC,IAAI;iBACpB,CAAC;gBACF,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC/B,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAChC,CAAC;gBACD,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QAED,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC/B,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,IAAI,GAAkB;QAC1B,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,WAAW;QACX,YAAY,EAAE,iBAAiB,CAAC,QAAQ,CAAC;QACzC,SAAS;QACT,cAAc;KACf,CAAC;IACF,MAAM,WAAW,GAAG,qBAAqB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC5D,aAAa,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACrE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,gBAAgB,CACvB,KAAe,EACf,UAAkB;IAElB,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;IAC7C,qEAAqE;IACrE,yEAAyE;IACzE,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,IAAI,KAAK,SAAS;YAAE,SAAS;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,WAAW,EAAE,CAAC,CAAC;QAClD,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,GAAG,GAAG,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC;YAC9C,IAAI,QAAQ,IAAI,SAAS,CAAC,MAAM,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;gBACjG,OAAO,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YAC/C,CAAC;QACH,CAAC;IACH,CAAC;IACD,wDAAwD;IACxD,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,IAAI,WAAW,CAAC;IAC3E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,IAAI,KAAK,SAAS;YAAE,SAAS;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC;QAC/C,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,GAAG,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;YAC3C,IAAI,QAAQ,IAAI,SAAS,CAAC,MAAM,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;gBACjG,OAAO,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YAC/C,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAiB,EAAE,SAAiB;IACpE,SAAS,WAAW,CAAC,IAAY;QAC/B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,IAAa,EAAE,CAAC;IAChF,CAAC;IAED,kEAAkE;IAClE,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,KAAK,EAAE,eAAe;QACtB,WAAW,EACT,oXAAoX;QACtX,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;QACD,WAAW,EAAE;YACX,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,GAAG,CAAC;iBACR,QAAQ,CAAC,iGAAiG,CAAC;SAC/G;KACF,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE;QAC7B,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,SAAS,CAAC,CAAC;YAE9C,kCAAkC;YAClC,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YACxE,MAAM,cAAc,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,gBAAgB,CAAC;YAE7E,oDAAoD;YACpD,IAAI,cAAc,GAAkB,IAAI,CAAC;YACzC,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACtC,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;gBACpE,IAAI,cAAc,KAAK,gBAAgB,EAAE,CAAC;oBACxC,cAAc,GAAG,QAAQ,CAAC;oBAC1B,MAAM;gBACR,CAAC;YACH,CAAC;YAED,mDAAmD;YACnD,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;oBACtC,MAAM,YAAY,GAAG,QAAQ;yBAC1B,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;yBACrB,KAAK,CAAC,GAAG,CAAC;yBACV,GAAG,EAAE;wBACN,EAAE,WAAW,EAAE,CAAC;oBAClB,IAAI,YAAY,KAAK,cAAc,EAAE,CAAC;wBACpC,cAAc,GAAG,QAAQ,CAAC;wBAC1B,MAAM;oBACR,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,OAAO,WAAW,CAAC,gCAAgC,gBAAgB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YACrF,CAAC;YAED,MAAM,eAAe,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAC5D,IAAI,CAAC,eAAe,IAAI,eAAe,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACnD,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,2BAA2B,gBAAgB,CAAC,cAAc,CAAC,EAAE;yBACpE;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,MAAM,OAAO,GAAwD,EAAE,CAAC;YAExE,KAAK,MAAM,UAAU,IAAI,eAAe,EAAE,CAAC;gBACzC,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;gBACpD,uDAAuD;gBACvD,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;gBACnD,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;oBACvC,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC;oBAC5C,6DAA6D;oBAC7D,4DAA4D;oBAC5D,+DAA+D;oBAC/D,gEAAgE;oBAChE,uDAAuD;oBACvD,MAAM,QAAQ,GAAG,wBAAwB,CACvC,IAAI,EACJ,UAAU,EACV,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,QAAQ,CACf,CAAC;oBACF,OAAO,QAAQ,KAAK,cAAc,CAAC;gBACrC,CAAC,CAAC,CAAC;gBAEH,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC7B,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;wBACjC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;wBACtD,OAAO,CAAC,IAAI,CAAC;4BACX,MAAM,EAAE,UAAU;4BAClB,IAAI,EAAE,QAAQ,CAAC,IAAI;4BACnB,OAAO,EAAE,QAAQ,CAAC,OAAO;yBAC1B,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC7D,CAAC;YACH,CAAC;YAED,6BAA6B;YAC7B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;YAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;gBACnC,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;gBACpC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;oBAAE,OAAO,KAAK,CAAC;gBAChC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACd,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG;gBACb,iBAAiB,gBAAgB,CAAC,cAAc,CAAC,EAAE;gBACnD,UAAU,OAAO,CAAC,MAAM,gBAAgB;gBACxC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;oBACnB,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC/C,MAAM,UAAU,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACzE,OAAO,KAAK,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,OAAO,GAAG,UAAU,EAAE,CAAC;gBAClE,CAAC,CAAC;aACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEb,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QAChE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,KAAK,CAAC,sBAAsB,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,GAAY,EAAE,CAAC,CAAC;YAChF,OAAO,WAAW,CAAC,4BAA4B,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACvE,CAAC;IACH,CAAC,CACF,CAAC;IAEF,kEAAkE;IAClE,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,KAAK,EAAE,cAAc;QACrB,WAAW,EACT,4SAA4S;QAC9S,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;QACD,WAAW,EAAE;YACX,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,GAAG,CAAC;iBACR,QAAQ,CAAC,uFAAuF,CAAC;SACrG;KACF,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC3B,IAAI,CAAC;YACH,kEAAkE;YAClE,iEAAiE;YACjE,gEAAgE;YAChE,yDAAyD;YACzD,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,SAAS,CAAC,CAAC;YAE9C,kEAAkE;YAClE,oEAAoE;YACpE,uBAAuB;YACvB,MAAM,gBAAgB,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YACtE,MAAM,cAAc,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,gBAAgB,CAAC;YAC7E,MAAM,cAAc,GAClB,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,gBAAgB,EAAE,CAAC;gBACnD,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,cAAc,EAAE,CAAC;gBAChD,IAAI,CAAC;YACP,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,OAAO,WAAW,CAAC,gCAAgC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACnF,CAAC;YAED,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;YAE/D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,+BAA+B,gBAAgB,CAAC,cAAc,CAAC,EAAE;yBACxE;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAEjD,MAAM,KAAK,GAAa;gBACtB,wBAAwB,gBAAgB,CAAC,cAAc,CAAC,EAAE;gBAC1D,UAAU,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,WAAW,MAAM,CAAC,MAAM,YAAY;aAC9E,CAAC;YAEF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC3B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;oBACtB,MAAM,WAAW,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC3C,KAAK,CAAC,IAAI,CAAC,KAAK,WAAW,KAAK,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,gBAAgB,CAAC,CAAC,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC9G,CAAC;YACH,CAAC;YAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBAC9B,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;oBACvB,MAAM,WAAW,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC3C,KAAK,CAAC,IAAI,CAAC,KAAK,WAAW,KAAK,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;gBAChF,CAAC;YACH,CAAC;YAED,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QAC1E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,KAAK,CAAC,qBAAqB,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,GAAY,EAAE,CAAC,CAAC;YAC9E,OAAO,WAAW,CAAC,2BAA2B,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACtE,CAAC;IACH,CAAC,CACF,CAAC;IAEF,kEAAkE;IAClE,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EACT,6WAA6W;QAC/W,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;QACD,WAAW,EAAE;YACX,oBAAoB,EAAE,CAAC;iBACpB,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,OAAO,CAAC,IAAI,CAAC;iBACb,QAAQ,CAAC,sIAAsI,CAAC;YACnJ,UAAU,EAAE,CAAC;iBACV,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,IAAI,CAAC;iBACT,QAAQ,EAAE;iBACV,OAAO,CAAC,GAAG,CAAC;iBACZ,QAAQ,CAAC,4HAA4H,CAAC;SAC1I;KACF,EACD,KAAK,EAAE,EAAE,oBAAoB,EAAE,UAAU,EAAE,EAAE,EAAE;QAC7C,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,SAAS,CAAC,CAAC;YAE9C,MAAM,WAAW,GAAiB,EAAE,CAAC;YACrC,MAAM,UAAU,GAAiB,EAAE,CAAC;YACpC,MAAM,aAAa,GAAiB,EAAE,CAAC;YAEvC,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACtC,MAAM,YAAY,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBACpE,MAAM,WAAW,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAElE,IAAI,CAAC,YAAY,IAAI,CAAC,WAAW,EAAE,CAAC;oBAClC,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;gBAClF,CAAC;qBAAM,IAAI,CAAC,YAAY,EAAE,CAAC;oBACzB,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;gBACzE,CAAC;qBAAM,IAAI,CAAC,WAAW,IAAI,oBAAoB,EAAE,CAAC;oBAChD,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;gBACxE,CAAC;YACH,CAAC;YAED,6CAA6C;YAC7C,IAAI,SAAS,GAAG,UAAU,CAAC;YAE3B,MAAM,cAAc,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;YACzD,SAAS,IAAI,cAAc,CAAC,MAAM,CAAC;YACnC,MAAM,iBAAiB,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;YACvE,SAAS,IAAI,iBAAiB,CAAC,MAAM,CAAC;YACtC,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAEjG,MAAM,KAAK,GAAa;gBACtB,8BAA8B,KAAK,CAAC,QAAQ,CAAC,MAAM,iBAAiB;aACrE,CAAC;YAEF,KAAK,CAAC,IAAI,CAAC,wCAAwC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;YAC3E,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;gBAClC,KAAK,CAAC,IAAI,CAAC,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACnD,CAAC;YACD,IAAI,cAAc,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC;gBACjD,KAAK,CAAC,IAAI,CAAC,aAAa,aAAa,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,OAAO,CAAC,CAAC;YAC/E,CAAC;YAED,KAAK,CAAC,IAAI,CAAC,4CAA4C,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;YAC7E,KAAK,MAAM,IAAI,IAAI,iBAAiB,EAAE,CAAC;gBACrC,KAAK,CAAC,IAAI,CAAC,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACnD,CAAC;YACD,IAAI,iBAAiB,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;gBAClD,KAAK,CAAC,IAAI,CAAC,aAAa,WAAW,CAAC,MAAM,GAAG,iBAAiB,CAAC,MAAM,OAAO,CAAC,CAAC;YAChF,CAAC;YAED,IAAI,oBAAoB,EAAE,CAAC;gBACzB,KAAK,CAAC,IAAI,CAAC,4CAA4C,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC5E,KAAK,MAAM,IAAI,IAAI,gBAAgB,EAAE,CAAC;oBACpC,KAAK,CAAC,IAAI,CAAC,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACnD,CAAC;gBACD,IAAI,gBAAgB,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;oBAChD,KAAK,CAAC,IAAI,CAAC,aAAa,UAAU,CAAC,MAAM,GAAG,gBAAgB,CAAC,MAAM,OAAO,CAAC,CAAC;gBAC9E,CAAC;YACH,CAAC;YAED,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAChH,KAAK,CAAC,IAAI,CAAC,2BAA2B,YAAY,EAAE,CAAC,CAAC;YAEtD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QAC1E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,KAAK,CAAC,qBAAqB,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,GAAY,EAAE,CAAC,CAAC;YAC9E,OAAO,WAAW,CAAC,0BAA0B,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrE,CAAC;IACH,CAAC,CACF,CAAC;IAEF,kEAAkE;IAClE,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EACT,sZAAsZ;QACxZ,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;QACD,WAAW,EAAE;YACX,MAAM,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,GAAG,CAAC,GAAG,CAAC;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,kHAAkH,CAAC;YAC/H,UAAU,EAAE,CAAC;iBACV,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,IAAI,CAAC;iBACT,QAAQ,EAAE;iBACV,OAAO,CAAC,GAAG,CAAC;iBACZ,QAAQ,CAAC,uHAAuH,CAAC;SACrI;KACF,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE;QAC/B,IAAI,CAAC;YACH,sEAAsE;YACtE,wEAAwE;YACxE,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACrE,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,SAAS,CAAC,CAAC;YAC9C,MAAM,WAAW,GAAG,SAAS,IAAI,KAAK,CAAC,QAAQ,CAAC;YAEhD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAwB,CAAC;YAEvD,KAAK,MAAM,QAAQ,IAAI,WAAW,EAAE,CAAC;gBACnC,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACpD,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;oBAAE,SAAS;gBACvD,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;YAC5C,CAAC;YAED,IAAI,cAAc,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBAC9B,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,eAAe,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzE,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,wBAAwB,QAAQ,EAAE;yBACzC;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,IAAI,WAAW,GAAG,CAAC,CAAC;YACpB,KAAK,MAAM,WAAW,IAAI,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC;gBAClD,WAAW,IAAI,WAAW,CAAC,MAAM,CAAC;YACpC,CAAC;YAED,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,aAAa,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACxE,KAAK,CAAC,IAAI,CAAC,sBAAsB,QAAQ,IAAI,CAAC,CAAC;YAE/C,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,KAAK,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,cAAc,EAAE,CAAC;gBACvD,IAAI,KAAK,IAAI,UAAU;oBAAE,MAAM;gBAC/B,KAAK,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBAC/C,KAAK,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC;oBAC7B,IAAI,KAAK,IAAI,UAAU;wBAAE,MAAM;oBAC/B,MAAM,OAAO,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oBACxD,KAAK,CAAC,IAAI,CAAC,SAAS,gBAAgB,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;oBACnE,KAAK,EAAE,CAAC;gBACV,CAAC;gBACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjB,CAAC;YAED,IAAI,KAAK,GAAG,WAAW,EAAE,CAAC;gBACxB,KAAK,CAAC,IAAI,CAAC,WAAW,WAAW,GAAG,KAAK,gCAAgC,CAAC,CAAC;YAC7E,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,UAAU,WAAW,0BAA0B,cAAc,CAAC,IAAI,UAAU,CAAC,CAAC;YAEzF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QAC1E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,KAAK,CAAC,0BAA0B,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,EAAE,GAAY,EAAE,CAAC,CAAC;YACxF,OAAO,WAAW,CAAC,+BAA+B,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC,CACF,CAAC;IAEF,kEAAkE;IAClE,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EACT,4bAA4b;QAC9b,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;QACD,WAAW,EAAE;YACX,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,GAAG,CAAC;iBACR,QAAQ,CAAC,0HAA0H,CAAC;YACvI,KAAK,EAAE,CAAC;iBACL,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,CAAC,CAAC;iBACN,QAAQ,EAAE;iBACV,OAAO,CAAC,CAAC,CAAC;iBACV,QAAQ,CAAC,sHAAsH,CAAC;YACnI,SAAS,EAAE,CAAC;iBACT,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;iBACrC,QAAQ,EAAE;iBACV,OAAO,CAAC,MAAM,CAAC;iBACf,QAAQ,CAAC,oKAAoK,CAAC;YACjL,UAAU,EAAE,CAAC;iBACV,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,IAAI,CAAC;iBACT,QAAQ,EAAE;iBACV,OAAO,CAAC,GAAG,CAAC;iBACZ,QAAQ,CAAC,8IAA8I,CAAC;SAC5J;KACF,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE;QAC1D,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,SAAS,CAAC,CAAC;YAE9C,yBAAyB;YACzB,MAAM,eAAe,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YACtE,IAAI,aAAa,GAAkB,IAAI,CAAC;YAExC,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACtC,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;gBACpE,IAAI,cAAc,KAAK,eAAe,EAAE,CAAC;oBACvC,aAAa,GAAG,QAAQ,CAAC;oBACzB,MAAM;gBACR,CAAC;YACH,CAAC;YAED,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,wBAAwB;gBACxB,MAAM,aAAa,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,eAAe,CAAC;gBAC1E,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;oBACtC,MAAM,YAAY,GAAG,QAAQ;yBAC1B,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;yBACrB,KAAK,CAAC,GAAG,CAAC;yBACV,GAAG,EAAE;wBACN,EAAE,WAAW,EAAE,CAAC;oBAClB,IAAI,YAAY,KAAK,aAAa,EAAE,CAAC;wBACnC,aAAa,GAAG,QAAQ,CAAC;wBACzB,MAAM;oBACR,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,OAAO,WAAW,CAAC,gCAAgC,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACpF,CAAC;YAED,0EAA0E;YAC1E,MAAM,OAAO,GAAG,IAAI,GAAG,EAAyB,CAAC;YACjD,MAAM,KAAK,GAA6C;gBACtD,EAAE,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC,EAAE;aACzC,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE;gBACzB,IAAI,EAAE,aAAa;gBACnB,KAAK,EAAE,CAAC;gBACR,SAAS,EAAE,MAAM;aAClB,CAAC,CAAC;YACH,oEAAoE;YACpE,IAAI,aAAa,GAAG,CAAC,CAAC;YACtB,IAAI,SAAS,GAAG,KAAK,CAAC;YAEtB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC,KAAK,EAAG,CAAC;gBAC3D,IAAI,YAAY,IAAI,KAAK;oBAAE,SAAS;gBACpC,IAAI,SAAS;oBAAE,MAAM;gBAErB,MAAM,SAAS,GAAoD,EAAE,CAAC;gBAEtE,IAAI,SAAS,KAAK,UAAU,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;oBACrD,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;oBAC7C,IAAI,IAAI,EAAE,CAAC;wBACT,KAAK,MAAM,MAAM,IAAI,IAAI,EAAE,CAAC;4BAC1B,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;wBACpD,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;oBACpD,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;oBAC7C,IAAI,GAAG,EAAE,CAAC;wBACR,KAAK,MAAM,MAAM,IAAI,GAAG,EAAE,CAAC;4BACzB,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;wBACnD,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;oBACjC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;wBAChC,IAAI,aAAa,IAAI,UAAU,EAAE,CAAC;4BAChC,SAAS,GAAG,IAAI,CAAC;4BACjB,MAAM;wBACR,CAAC;wBACD,MAAM,YAAY,GAAkB;4BAClC,IAAI,EAAE,QAAQ,CAAC,IAAI;4BACnB,KAAK,EAAE,YAAY,GAAG,CAAC;4BACvB,SAAS,EAAE,QAAQ,CAAC,GAAG;yBACxB,CAAC;wBACF,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;wBACzC,aAAa,EAAE,CAAC;wBAChB,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,GAAG,CAAC,EAAE,CAAC,CAAC;oBACtE,CAAC;gBACH,CAAC;YACH,CAAC;YAED,qCAAqC;YACrC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YAE9B,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACvB,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,2BAA2B,gBAAgB,CAAC,aAAa,CAAC,YAAY,KAAK,gBAAgB,SAAS,GAAG;yBAC9G;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,4CAA4C;YAC5C,MAAM,OAAO,GAAG,IAAI,GAAG,EAA2B,CAAC;YACnD,KAAK,MAAM,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;gBACxC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;oBACjC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAClC,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC9C,CAAC;YAED,MAAM,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;YACrD,MAAM,KAAK,GAAa;gBACtB,uBAAuB,gBAAgB,CAAC,aAAa,CAAC,EAAE;gBACxD,cAAc,SAAS,iBAAiB,KAAK,aAAa,OAAO,CAAC,IAAI,WAAW,YAAY,IAAI;gBACjG,gBAAgB,CAAC,aAAa,CAAC;aAChC,CAAC;YAEF,MAAM,YAAY,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/D,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;gBAC7B,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC;gBAClC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBAEvD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;oBACjC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBAC9B,MAAM,KAAK,GACT,QAAQ,CAAC,SAAS,KAAK,SAAS;wBAC9B,CAAC,CAAC,GAAG;wBACL,CAAC,CAAC,QAAQ,CAAC,SAAS,KAAK,UAAU;4BACjC,CAAC,CAAC,GAAG;4BACL,CAAC,CAAC,GAAG,CAAC;oBACZ,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,KAAK,IAAI,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gBAClF,CAAC;YACH,CAAC;YAED,IAAI,SAAS,EAAE,CAAC;gBACd,KAAK,CAAC,IAAI,CAAC,0BAA0B,UAAU,qEAAqE,CAAC,CAAC;YACxH,CAAC;YAED,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QAC1E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,KAAK,CAAC,4BAA4B,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,GAAG,EAAE,GAAY,EAAE,CAAC,CAAC;YAC5F,OAAO,WAAW,CAAC,kCAAkC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/tools/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAuNvD"}
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/tools/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMpE;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAuNvD"}
@@ -1,4 +1,6 @@
1
1
  import { z } from "zod";
2
+ import { escapeControlChars } from "../lib/errors.js";
3
+ const displayPromptValue = escapeControlChars;
2
4
  /**
3
5
  * MCP prompts the server exposes to clients. Each prompt is a starter
4
6
  * conversation template; clients render them in their slash-command palette
@@ -101,10 +103,10 @@ export function registerPrompts(server) {
101
103
  content: {
102
104
  type: "text",
103
105
  text: [
104
- `Find stale notes${folder ? ` in folder "${folder}"` : ""} (untouched ${days ?? "90"}+ days).`,
106
+ `Find stale notes${folder ? ` in folder "${displayPromptValue(folder)}"` : ""} (untouched ${days ?? "90"}+ days).`,
105
107
  "",
106
108
  "Steps:",
107
- `1. Call get_recent_notes with limit=1000${folder ? ` and folder="${folder}"` : ""} (no \`since\` filter) to get every note ordered by most-recent-mtime first. Each row already includes an ISO timestamp, so no need to call get_note per row. The stalest notes sit at the bottom of the list.`,
109
+ `1. Call get_recent_notes with limit=1000${folder ? ` and folder="${displayPromptValue(folder)}"` : ""} (no \`since\` filter) to get every note ordered by most-recent-mtime first. Each row already includes an ISO timestamp, so no need to call get_note per row. The stalest notes sit at the bottom of the list.`,
108
110
  `2. Filter to notes whose mtime is older than ${days ?? "90"} days. Cap the candidate set at 25. (Optional cross-check: call get_recent_notes a second time with since="${days ?? "90"}d"; anything NOT in that set is stale.)`,
109
111
  "3. Call find_orphans once and find_broken_links once. Use the returned paths as lookup sets; do not call get_note per candidate.",
110
112
  "4. Group the (already capped) candidates into three buckets using the two lookup sets:",
@@ -143,16 +145,16 @@ export function registerPrompts(server) {
143
145
  type: "text",
144
146
  text: [
145
147
  path
146
- ? `Extract action items from "${path}".`
148
+ ? `Extract action items from "${displayPromptValue(path)}".`
147
149
  : tag
148
- ? `Extract action items from every note tagged #${tag.replace(/^#/, "")}.`
150
+ ? `Extract action items from every note tagged #${displayPromptValue(tag.replace(/^#/, ""))}.`
149
151
  : "Extract action items from the active note.",
150
152
  "",
151
153
  "Steps:",
152
154
  path
153
- ? `1. Call get_note with path="${path}".`
155
+ ? `1. Call get_note with path="${displayPromptValue(path)}".`
154
156
  : tag
155
- ? `1. Call search_by_tag with tag="${tag}". If it returns more than 20 notes, ask the user to narrow the tag before fanning out. Otherwise call get_note on each of the (capped at 20) results.`
157
+ ? `1. Call search_by_tag with tag="${displayPromptValue(tag)}". If it returns more than 20 notes, ask the user to narrow the tag before fanning out. Otherwise call get_note on each of the (capped at 20) results.`
156
158
  : "1. Ask the user which note(s) to scan (cap at 20), then call get_note for each.",
157
159
  `2. For each note, parse all unchecked task lines (\`- [ ] …\`).`,
158
160
  `3. Group by note (or by section heading where they appear).`,
@@ -178,13 +180,13 @@ export function registerPrompts(server) {
178
180
  content: {
179
181
  type: "text",
180
182
  text: [
181
- `Build a Map of Content (MOC) for ${tag ? `tag #${tag.replace(/^#/, "")}` : folder ? `folder "${folder}"` : "the requested scope"}.`,
183
+ `Build a Map of Content (MOC) for ${tag ? `tag #${displayPromptValue(tag.replace(/^#/, ""))}` : folder ? `folder "${displayPromptValue(folder)}"` : "the requested scope"}.`,
182
184
  "",
183
185
  "Steps:",
184
186
  tag
185
- ? `1. Call search_by_tag with tag="${tag}".`
187
+ ? `1. Call search_by_tag with tag="${displayPromptValue(tag)}".`
186
188
  : folder
187
- ? `1. Call list_notes with folder="${folder}".`
189
+ ? `1. Call list_notes with folder="${displayPromptValue(folder)}".`
188
190
  : "1. Ask the user for tag or folder.",
189
191
  "2. Cap the candidate set at 40 notes (sample evenly across the result if there are more, or ask the user to narrow scope). For each capped candidate, call get_note with `lines: '1-15'` to keep token usage low.",
190
192
  "3. Cluster the notes into 3-7 groups by theme. For each cluster, write a one-line description and 5-15 wikilinks.",
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/tools/prompts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/tools/prompts.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../src/tools/read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAiBpE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAgtB5E"}
1
+ {"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../src/tools/read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA4BpE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAyrB5E"}
@@ -1,9 +1,9 @@
1
1
  import { z } from "zod";
2
2
  import fs from "fs/promises";
3
3
  import path from "path";
4
- import { searchInContents, readNote, listNotes, resolveVaultPathSafe } from "../lib/vault.js";
4
+ import { searchInContents, readNote, readNoteLineRange, listNotes, resolveVaultPathSafe, getVaultRootRealPath, } from "../lib/vault.js";
5
5
  import { readAllCached } from "../lib/index-cache.js";
6
- import { sanitizeError } from "../lib/errors.js";
6
+ import { escapeControlChars, sanitizeError } from "../lib/errors.js";
7
7
  import { log } from "../lib/logger.js";
8
8
  import { mapConcurrent } from "../lib/concurrency.js";
9
9
  import { formatLocalDateOnly, formatMomentDate, parseLocalDateOnly } from "../lib/dates.js";
@@ -12,13 +12,16 @@ import { findSection, findBlockById, stripBlockId } from "../lib/sections.js";
12
12
  import { getDailyNoteConfig } from "../config.js";
13
13
  /** Maximum number of concurrent file I/O operations for parallel vault scans. */
14
14
  const MAX_CONCURRENT_OPS = 16;
15
+ function displayReadValue(value) {
16
+ return escapeControlChars(value);
17
+ }
15
18
  export function registerReadTools(server, vaultPath) {
16
19
  function errorResult(text) {
17
20
  return { content: [{ type: "text", text }], isError: true };
18
21
  }
19
22
  server.registerTool("search_notes", {
20
23
  title: "Search Notes",
21
- description: "Full-text search across all notes in the vault. Returns matching note paths grouped with the line numbers and snippet content of each hit. Use to locate notes containing a phrase, keyword, or code fragment; pair with get_note to retrieve full bodies.",
24
+ description: "Full-text search across all notes in the vault. Ranks literal matches with title/path focus and repeated-line dampening, then returns matching note paths grouped with the line numbers and query-centered snippet content of each matching line. Use to locate notes containing a phrase, keyword, or code fragment; pair with get_note to retrieve full bodies.",
22
25
  annotations: {
23
26
  readOnlyHint: true,
24
27
  idempotentHint: true,
@@ -67,19 +70,19 @@ export function registerReadTools(server, vaultPath) {
67
70
  content: [
68
71
  {
69
72
  type: "text",
70
- text: `No results found for "${query}"`,
73
+ text: `No results found for "${displayReadValue(query)}"`,
71
74
  },
72
75
  ],
73
76
  };
74
77
  }
75
78
  const lines = [
76
- `Found ${results.length} result(s) for "${query}":`,
79
+ `Found ${results.length} result(s) for "${displayReadValue(query)}":`,
77
80
  "",
78
81
  ];
79
82
  for (const result of results) {
80
- lines.push(`## ${result.relativePath}`);
83
+ lines.push(`## ${displayReadValue(result.relativePath)}`);
81
84
  for (const match of result.matches) {
82
- lines.push(` Line ${match.line}: ${match.content}`);
85
+ lines.push(` Line ${match.line}: ${displayReadValue(match.content)}`);
83
86
  }
84
87
  lines.push("");
85
88
  }
@@ -124,6 +127,20 @@ export function registerReadTools(server, vaultPath) {
124
127
  },
125
128
  }, async ({ path: notePath, section, block, lines }) => {
126
129
  try {
130
+ if (!section && !block && lines) {
131
+ const m = /^(\d+)(?:-(\d+))?$/.exec(lines);
132
+ if (m) {
133
+ const a = Math.max(1, Number(m[1]));
134
+ const b = m[2] ? Math.max(a, Number(m[2])) : a;
135
+ const range = await readNoteLineRange(vaultPath, notePath, a, b);
136
+ if (range.pastEndLine) {
137
+ return errorResult(`Line ${range.pastEndLine.requested} is past end of file (${range.pastEndLine.total} lines)`);
138
+ }
139
+ return {
140
+ content: [{ type: "text", text: range.text }],
141
+ };
142
+ }
143
+ }
127
144
  const content = await readNote(vaultPath, notePath);
128
145
  // Fragment modes are mutually exclusive — picking one skips the
129
146
  // frontmatter/tag header and returns raw text. Mode order: section
@@ -132,7 +149,7 @@ export function registerReadTools(server, vaultPath) {
132
149
  const headingPath = section.split("/").map((s) => s.trim()).filter(Boolean);
133
150
  const found = findSection(content, headingPath);
134
151
  if (!found) {
135
- return errorResult(`Section not found: "${section}" in ${notePath}`);
152
+ return errorResult(`Section not found: "${displayReadValue(section)}" in ${displayReadValue(notePath)}`);
136
153
  }
137
154
  return {
138
155
  content: [
@@ -146,7 +163,7 @@ export function registerReadTools(server, vaultPath) {
146
163
  if (block) {
147
164
  const found = findBlockById(content, block);
148
165
  if (!found) {
149
- return errorResult(`Block not found: "^${block}" in ${notePath}`);
166
+ return errorResult(`Block not found: "^${displayReadValue(block)}" in ${displayReadValue(notePath)}`);
150
167
  }
151
168
  return {
152
169
  content: [
@@ -161,7 +178,7 @@ export function registerReadTools(server, vaultPath) {
161
178
  const allLines = content.split("\n");
162
179
  const m = /^(\d+)(?:-(\d+))?$/.exec(lines);
163
180
  if (!m)
164
- return errorResult(`Invalid lines format: "${lines}"`);
181
+ return errorResult(`Invalid lines format: "${displayReadValue(lines)}"`);
165
182
  const a = Math.max(1, Number(m[1]));
166
183
  const b = m[2] ? Math.max(a, Number(m[2])) : a;
167
184
  if (a > allLines.length) {
@@ -177,14 +194,14 @@ export function registerReadTools(server, vaultPath) {
177
194
  if (Object.keys(frontmatterData).length > 0) {
178
195
  header.push("--- Frontmatter ---");
179
196
  for (const [key, value] of Object.entries(frontmatterData)) {
180
- header.push(`${key}: ${JSON.stringify(value)}`);
197
+ header.push(`${displayReadValue(key)}: ${displayReadValue(JSON.stringify(value) ?? "")}`);
181
198
  }
182
199
  header.push("--- End Frontmatter ---");
183
200
  header.push("");
184
201
  }
185
202
  const tags = extractTags(content);
186
203
  if (tags.length > 0) {
187
- header.push(`Tags: ${tags.join(", ")}`);
204
+ header.push(`Tags: ${tags.map(displayReadValue).join(", ")}`);
188
205
  header.push("");
189
206
  }
190
207
  return {
@@ -232,9 +249,9 @@ export function registerReadTools(server, vaultPath) {
232
249
  const limited = notes.slice(0, limit);
233
250
  const totalCount = notes.length;
234
251
  const lines = [
235
- `Found ${totalCount} note(s)${folder ? ` in "${folder}"` : ""}${totalCount > limit ? ` (showing first ${limit})` : ""}:`,
252
+ `Found ${totalCount} note(s)${folder ? ` in "${displayReadValue(folder)}"` : ""}${totalCount > limit ? ` (showing first ${limit})` : ""}:`,
236
253
  "",
237
- ...limited,
254
+ ...limited.map(displayReadValue),
238
255
  ];
239
256
  return {
240
257
  content: [{ type: "text", text: lines.join("\n") }],
@@ -265,11 +282,11 @@ export function registerReadTools(server, vaultPath) {
265
282
  const config = await getDailyNoteConfig(vaultPath);
266
283
  const targetDate = date ?? formatLocalDateOnly();
267
284
  if (!/^\d{4}-\d{2}-\d{2}$/.test(targetDate)) {
268
- return errorResult(`Invalid date format: "${targetDate}". Use YYYY-MM-DD.`);
285
+ return errorResult(`Invalid date format: "${displayReadValue(targetDate)}". Use YYYY-MM-DD.`);
269
286
  }
270
287
  const parsed = parseLocalDateOnly(targetDate);
271
288
  if (!parsed) {
272
- return errorResult(`Invalid date: "${targetDate}".`);
289
+ return errorResult(`Invalid date: "${displayReadValue(targetDate)}".`);
273
290
  }
274
291
  // Build the filename using moment-style tokens (YYYY, MMM, ddd, etc).
275
292
  let filename = formatMomentDate(parsed, config.format);
@@ -284,18 +301,18 @@ export function registerReadTools(server, vaultPath) {
284
301
  content = await readNote(vaultPath, notePath);
285
302
  }
286
303
  catch {
287
- return errorResult(`Daily note not found for ${targetDate} (expected at "${notePath}")`);
304
+ return errorResult(`Daily note not found for ${displayReadValue(targetDate)} (expected at "${displayReadValue(notePath)}")`);
288
305
  }
289
306
  const { data: dailyFrontmatter, content: dailyBody } = parseFrontmatter(content);
290
307
  const header = [
291
- `Daily Note: ${targetDate}`,
292
- `Path: ${notePath}`,
308
+ `Daily Note: ${displayReadValue(targetDate)}`,
309
+ `Path: ${displayReadValue(notePath)}`,
293
310
  "",
294
311
  ];
295
312
  if (Object.keys(dailyFrontmatter).length > 0) {
296
313
  header.push("--- Frontmatter ---");
297
314
  for (const [key, value] of Object.entries(dailyFrontmatter)) {
298
- header.push(`${key}: ${JSON.stringify(value)}`);
315
+ header.push(`${displayReadValue(key)}: ${displayReadValue(JSON.stringify(value) ?? "")}`);
299
316
  }
300
317
  header.push("--- End Frontmatter ---");
301
318
  header.push("");
@@ -348,34 +365,31 @@ export function registerReadTools(server, vaultPath) {
348
365
  try {
349
366
  const notes = await listNotes(vaultPath, folder);
350
367
  const valueLower = value.toLowerCase();
351
- const perNote = await mapConcurrent(notes, MAX_CONCURRENT_OPS, async (notePath) => {
352
- const content = await readNote(vaultPath, notePath);
368
+ const allMatches = [];
369
+ const { contents } = await readAllCached(vaultPath, notes, (note, err) => {
370
+ log.warn("search_by_frontmatter: note read failed", { note, err });
371
+ });
372
+ for (const notePath of notes) {
373
+ const content = contents.get(notePath);
374
+ if (content === undefined)
375
+ continue;
353
376
  const { data: frontmatterData } = parseFrontmatter(content);
354
377
  const propValue = frontmatterData[property];
355
378
  if (propValue === undefined)
356
- return undefined;
379
+ continue;
357
380
  const stringified = Array.isArray(propValue)
358
381
  ? propValue.map(toSearchableString)
359
382
  : [toSearchableString(propValue)];
360
383
  const isMatch = stringified.some((v) => v.toLowerCase() === valueLower);
361
- return isMatch ? { path: notePath, frontmatter: frontmatterData } : undefined;
362
- }, (err, notePath) => {
363
- log.warn("search_by_frontmatter: note read failed", {
364
- note: notePath,
365
- err: err,
366
- });
367
- });
368
- const allMatches = [];
369
- for (const entry of perNote) {
370
- if (entry)
371
- allMatches.push(entry);
384
+ if (isMatch)
385
+ allMatches.push({ path: notePath, frontmatter: frontmatterData });
372
386
  }
373
387
  if (allMatches.length === 0) {
374
388
  return {
375
389
  content: [
376
390
  {
377
391
  type: "text",
378
- text: `No notes found with frontmatter "${property}" matching "${value}"`,
392
+ text: `No notes found with frontmatter "${displayReadValue(property)}" matching "${displayReadValue(value)}"`,
379
393
  },
380
394
  ],
381
395
  };
@@ -384,13 +398,13 @@ export function registerReadTools(server, vaultPath) {
384
398
  const truncated = totalMatches > maxResults;
385
399
  const matches = truncated ? allMatches.slice(0, maxResults) : allMatches;
386
400
  const lines = [
387
- `Found ${totalMatches} note(s) where "${property}" matches "${value}"${truncated ? ` (showing first ${maxResults})` : ""}:`,
401
+ `Found ${totalMatches} note(s) where "${displayReadValue(property)}" matches "${displayReadValue(value)}"${truncated ? ` (showing first ${maxResults})` : ""}:`,
388
402
  "",
389
403
  ];
390
404
  for (const match of matches) {
391
- lines.push(`## ${match.path}`);
405
+ lines.push(`## ${displayReadValue(match.path)}`);
392
406
  for (const [key, val] of Object.entries(match.frontmatter)) {
393
- lines.push(` ${key}: ${JSON.stringify(val)}`);
407
+ lines.push(` ${displayReadValue(key)}: ${displayReadValue(JSON.stringify(val) ?? "")}`);
394
408
  }
395
409
  lines.push("");
396
410
  }
@@ -438,12 +452,13 @@ export function registerReadTools(server, vaultPath) {
438
452
  try {
439
453
  const sinceMs = since ? parseSince(since) : null;
440
454
  if (since && sinceMs === null) {
441
- return errorResult(`Invalid 'since' value: "${since}". Use ISO date or relative span like '7d', '24h', '2w'.`);
455
+ return errorResult(`Invalid 'since' value: "${displayReadValue(since)}". Use ISO date or relative span like '7d', '24h', '2w'.`);
442
456
  }
443
457
  const notes = await listNotes(vaultPath, folder);
458
+ const realVaultRoot = await getVaultRootRealPath(vaultPath);
444
459
  const stats = await mapConcurrent(notes, MAX_CONCURRENT_OPS, async (notePath) => {
445
460
  try {
446
- const fullPath = await resolveVaultPathSafe(vaultPath, notePath);
461
+ const fullPath = await resolveVaultPathSafe(vaultPath, notePath, "read", { realVaultRoot });
447
462
  const st = await fs.stat(fullPath);
448
463
  return { path: notePath, mtimeMs: st.mtimeMs };
449
464
  }
@@ -462,15 +477,15 @@ export function registerReadTools(server, vaultPath) {
462
477
  rows.sort((a, b) => b.mtimeMs - a.mtimeMs);
463
478
  const top = rows.slice(0, limit);
464
479
  if (top.length === 0) {
465
- return { content: [{ type: "text", text: since ? `No notes modified since ${since}.` : "No notes in the vault." }] };
480
+ return { content: [{ type: "text", text: since ? `No notes modified since ${displayReadValue(since)}.` : "No notes in the vault." }] };
466
481
  }
467
482
  const lines = [
468
- `${rows.length} note(s)${since ? ` modified since ${since}` : ""}${rows.length > limit ? ` (showing first ${limit})` : ""}:`,
483
+ `${rows.length} note(s)${since ? ` modified since ${displayReadValue(since)}` : ""}${rows.length > limit ? ` (showing first ${limit})` : ""}:`,
469
484
  "",
470
485
  ];
471
486
  for (const r of top) {
472
487
  const iso = new Date(r.mtimeMs).toISOString();
473
- lines.push(`- ${r.path} (${iso})`);
488
+ lines.push(`- ${displayReadValue(r.path)} (${iso})`);
474
489
  }
475
490
  return { content: [{ type: "text", text: lines.join("\n") }] };
476
491
  }
@@ -498,20 +513,24 @@ export function registerReadTools(server, vaultPath) {
498
513
  try {
499
514
  const notes = await listNotes(vaultPath, folder);
500
515
  if (notes.length === 0) {
501
- return { content: [{ type: "text", text: folder ? `No notes in "${folder}"` : "Vault is empty." }] };
516
+ return { content: [{ type: "text", text: folder ? `No notes in "${displayReadValue(folder)}"` : "Vault is empty." }] };
502
517
  }
503
- const { contents } = await readAllCached(vaultPath, notes, (note, err) => {
518
+ const { contents, stats } = await readAllCached(vaultPath, notes, (note, err) => {
504
519
  log.warn("get_vault_stats: note read failed", { note, err });
505
520
  });
506
- // Two-phase approach: (1) synchronous pass over already-cached
507
- // contents for bytes/words/tags (no I/O needed), then (2) bounded-
508
- // concurrency stat calls only for mtime. This avoids wrapping pure
509
- // CPU work in the async concurrency harness.
521
+ // Aggregate over already-cached content and stats. `readAllCached`
522
+ // already resolves and stats each note safely, so most-recent can use
523
+ // that metadata without a second filesystem pass.
510
524
  let totalBytes = 0;
511
525
  let totalWords = 0;
512
526
  let untagged = 0;
513
527
  const tagSet = new Set();
528
+ let mostRecent = null;
514
529
  for (const notePath of notes) {
530
+ const stat = stats.get(notePath);
531
+ if (stat && (!mostRecent || stat.mtime > mostRecent.mtimeMs)) {
532
+ mostRecent = { path: notePath, mtimeMs: stat.mtime };
533
+ }
515
534
  const content = contents.get(notePath);
516
535
  if (content === undefined)
517
536
  continue;
@@ -525,29 +544,11 @@ export function registerReadTools(server, vaultPath) {
525
544
  for (const t of tags)
526
545
  tagSet.add(t.toLowerCase());
527
546
  }
528
- const mtimeRows = await mapConcurrent(notes, MAX_CONCURRENT_OPS, async (notePath) => {
529
- try {
530
- const fullPath = await resolveVaultPathSafe(vaultPath, notePath);
531
- const st = await fs.stat(fullPath);
532
- return { path: notePath, mtimeMs: st.mtimeMs };
533
- }
534
- catch {
535
- return undefined;
536
- }
537
- });
538
- let mostRecent = null;
539
- for (const row of mtimeRows) {
540
- if (!row)
541
- continue;
542
- if (!mostRecent || row.mtimeMs > mostRecent.mtimeMs) {
543
- mostRecent = { path: row.path, mtimeMs: row.mtimeMs };
544
- }
545
- }
546
547
  const avgBytes = Math.round(totalBytes / notes.length);
547
548
  const avgWords = Math.round(totalWords / notes.length);
548
549
  const untaggedPct = ((untagged / notes.length) * 100).toFixed(1);
549
550
  const lines = [
550
- `Vault stats${folder ? ` (folder: ${folder})` : ""}`,
551
+ `Vault stats${folder ? ` (folder: ${displayReadValue(folder)})` : ""}`,
551
552
  "",
552
553
  ` Notes: ${notes.length}`,
553
554
  ` Total bytes: ${totalBytes.toLocaleString()}`,
@@ -557,7 +558,7 @@ export function registerReadTools(server, vaultPath) {
557
558
  ` Unique tags: ${tagSet.size}`,
558
559
  ` Untagged notes: ${untagged} (${untaggedPct}%)`,
559
560
  mostRecent
560
- ? ` Most recent: ${mostRecent.path} (${new Date(mostRecent.mtimeMs).toISOString()})`
561
+ ? ` Most recent: ${displayReadValue(mostRecent.path)} (${new Date(mostRecent.mtimeMs).toISOString()})`
561
562
  : ` Most recent: (none)`,
562
563
  ];
563
564
  return { content: [{ type: "text", text: lines.join("\n") }] };
@@ -602,35 +603,37 @@ export function registerReadTools(server, vaultPath) {
602
603
  basenameMatches.push(notePath);
603
604
  }
604
605
  }
605
- // For alias matches, read frontmatter per-note with bounded
606
- // concurrency instead of loading the entire vault into memory.
607
- // Per-note failures are logged and skipped.
606
+ // For alias matches, read through the shared content cache so repeat
607
+ // lookups reuse warm note bodies while preserving per-note path checks.
608
608
  const aliasMatches = [];
609
- await mapConcurrent(notes, MAX_CONCURRENT_OPS, async (notePath) => {
610
- const content = await readNote(vaultPath, notePath);
609
+ const { contents } = await readAllCached(vaultPath, notes, (note, err) => {
610
+ log.warn("resolve_alias: note read failed", { note, err });
611
+ });
612
+ for (const notePath of notes) {
613
+ const content = contents.get(notePath);
614
+ if (content === undefined)
615
+ continue;
611
616
  const aliases = extractAliases(content);
612
617
  if (aliases.some((a) => a.toLowerCase() === target)) {
613
618
  aliasMatches.push(notePath);
614
619
  }
615
- }, (err, notePath) => {
616
- log.warn("resolve_alias: note read failed", { note: notePath, err: err });
617
- });
620
+ }
618
621
  const total = aliasMatches.length + basenameMatches.length;
619
622
  if (total === 0) {
620
- return { content: [{ type: "text", text: `No alias or basename match for "${name}"` }] };
623
+ return { content: [{ type: "text", text: `No alias or basename match for "${displayReadValue(name)}"` }] };
621
624
  }
622
- const lines = [`Matches for "${name}":`, ""];
625
+ const lines = [`Matches for "${displayReadValue(name)}":`, ""];
623
626
  if (aliasMatches.length > 0) {
624
627
  lines.push(`Alias matches (${aliasMatches.length}):`);
625
628
  for (const p of aliasMatches)
626
- lines.push(` - ${p}`);
629
+ lines.push(` - ${displayReadValue(p)}`);
627
630
  }
628
631
  if (basenameMatches.length > 0) {
629
632
  if (aliasMatches.length > 0)
630
633
  lines.push("");
631
634
  lines.push(`Basename matches (${basenameMatches.length}):`);
632
635
  for (const p of basenameMatches)
633
- lines.push(` - ${p}`);
636
+ lines.push(` - ${displayReadValue(p)}`);
634
637
  }
635
638
  return { content: [{ type: "text", text: lines.join("\n") }] };
636
639
  }