@bkm016/calcite 0.2.0 → 0.5.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 (93) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/README.md +206 -18
  3. package/dist/accounts.js +4 -2
  4. package/dist/accounts.js.map +1 -1
  5. package/dist/cli.js +16 -127
  6. package/dist/cli.js.map +1 -1
  7. package/dist/client-core.d.ts +23 -12
  8. package/dist/client-core.js +227 -244
  9. package/dist/client-core.js.map +1 -1
  10. package/dist/client.d.ts +60 -13
  11. package/dist/client.js +76 -18
  12. package/dist/client.js.map +1 -1
  13. package/dist/display.d.ts +0 -6
  14. package/dist/display.js +31 -44
  15. package/dist/display.js.map +1 -1
  16. package/dist/feed.d.ts +17 -0
  17. package/dist/feed.js +47 -0
  18. package/dist/feed.js.map +1 -0
  19. package/dist/game-run.d.ts +30 -0
  20. package/dist/game-run.js +51 -0
  21. package/dist/game-run.js.map +1 -0
  22. package/dist/hmc.d.ts +7 -0
  23. package/dist/hmc.js +42 -31
  24. package/dist/hmc.js.map +1 -1
  25. package/dist/index.d.ts +4 -2
  26. package/dist/index.js +2 -1
  27. package/dist/index.js.map +1 -1
  28. package/dist/install.d.ts +6 -0
  29. package/dist/install.js +26 -3
  30. package/dist/install.js.map +1 -1
  31. package/dist/java.js +11 -2
  32. package/dist/java.js.map +1 -1
  33. package/dist/launch.d.ts +79 -0
  34. package/dist/launch.js +142 -0
  35. package/dist/launch.js.map +1 -0
  36. package/dist/lock.js +18 -18
  37. package/dist/lock.js.map +1 -1
  38. package/dist/mcp/accounts.d.ts +3 -0
  39. package/dist/mcp/accounts.js +45 -0
  40. package/dist/mcp/accounts.js.map +1 -0
  41. package/dist/mcp/act.d.ts +3 -0
  42. package/dist/mcp/act.js +129 -0
  43. package/dist/mcp/act.js.map +1 -0
  44. package/dist/mcp/extensions.d.ts +3 -0
  45. package/dist/mcp/extensions.js +21 -0
  46. package/dist/mcp/extensions.js.map +1 -0
  47. package/dist/mcp/index.d.ts +13 -0
  48. package/dist/mcp/index.js +58 -0
  49. package/dist/mcp/index.js.map +1 -0
  50. package/dist/mcp/items.d.ts +3 -0
  51. package/dist/mcp/items.js +71 -0
  52. package/dist/mcp/items.js.map +1 -0
  53. package/dist/mcp/lifecycle.d.ts +3 -0
  54. package/dist/mcp/lifecycle.js +120 -0
  55. package/dist/mcp/lifecycle.js.map +1 -0
  56. package/dist/mcp/observe.d.ts +3 -0
  57. package/dist/mcp/observe.js +110 -0
  58. package/dist/mcp/observe.js.map +1 -0
  59. package/dist/mcp/shared.d.ts +49 -0
  60. package/dist/mcp/shared.js +56 -0
  61. package/dist/mcp/shared.js.map +1 -0
  62. package/dist/mcp/tasks.d.ts +15 -0
  63. package/dist/mcp/tasks.js +46 -0
  64. package/dist/mcp/tasks.js.map +1 -0
  65. package/dist/mcp.js +35 -3
  66. package/dist/mcp.js.map +1 -1
  67. package/dist/mods.d.ts +2 -0
  68. package/dist/mods.js +35 -4
  69. package/dist/mods.js.map +1 -1
  70. package/dist/mojang.d.ts +5 -1
  71. package/dist/mojang.js.map +1 -1
  72. package/dist/names.js +30 -8
  73. package/dist/names.js.map +1 -1
  74. package/dist/net.js +25 -19
  75. package/dist/net.js.map +1 -1
  76. package/dist/paper.d.ts +46 -0
  77. package/dist/paper.js +200 -0
  78. package/dist/paper.js.map +1 -0
  79. package/dist/probe-server.d.ts +14 -4
  80. package/dist/probe-server.js +15 -10
  81. package/dist/probe-server.js.map +1 -1
  82. package/dist/repl.d.ts +6 -0
  83. package/dist/repl.js +207 -0
  84. package/dist/repl.js.map +1 -0
  85. package/dist/stage.d.ts +6 -0
  86. package/dist/stage.js +19 -0
  87. package/dist/stage.js.map +1 -0
  88. package/dist/types.d.ts +167 -3
  89. package/dist/types.js +12 -1
  90. package/dist/types.js.map +1 -1
  91. package/dist/zip.js.map +1 -1
  92. package/package.json +11 -3
  93. package/vendor/calcite-probe.jar +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"client-core.js","sourceRoot":"","sources":["../src/client-core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,KAAK,EAAqB,MAAM,cAAc,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAe,MAAM,UAAU,CAAC;AAClH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAqB,MAAM,cAAc,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAgB,MAAM,WAAW,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAqB,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EACL,YAAY,EACZ,eAAe,EACf,WAAW,GAUZ,MAAM,YAAY,CAAC;AAEpB,MAAM,OAAO,GAAG,wBAAwB,CAAC;AACzC,MAAM,OAAO,GAAG,IAAI,CAAC;AACrB,MAAM,QAAQ,GAAG,IAAI,CAAC;AAEtB,uDAAuD;AACvD,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACxE,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,IAAY,EAAE,IAAY,EAAE,SAAS,GAAG,IAAI;IACtE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,CAAC,EAAW,EAAE,EAAE;YAC3B,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,CAAC,EAAE,CAAC,CAAC;QACd,CAAC,CAAC;QACF,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACxC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC;AAED,yFAAyF;AACzF,MAAM,cAAc,GAAG,4FAA4F,CAAC;AAEpH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAE3E,0GAA0G;AAC1G,MAAM,OAAgB,UAAW,SAAQ,YAAY;IAC1C,OAAO,CAAoE;IAC3E,KAAK,CAAe;IACpB,OAAO,CAAS;IAChB,MAAM,CAAa;IACnB,OAAO,CAAU;IACjB,MAAM,CAAiB;IAEtB,UAAU,GAAU,MAAM,CAAC;IAC3B,IAAI,GAAc,EAAE,CAAC;IACrB,KAAK,GAAe,EAAE,CAAC;IACvB,GAAG,GAAG,CAAC,CAAC;IACR,KAAK,GAAuB,IAAI,CAAC;IACnC,GAAG,GAAkB,IAAI,CAAC;IAC1B,OAAO,GAAwB,IAAI,CAAC;IACpC,eAAe,GAAiC,IAAI,CAAC;IACrD,WAAW,GAAkB,IAAI,CAAC;IAClC,IAAI,GAAwB,IAAI,CAAC;IACjC,IAAI,GAAc,EAAE,CAAC;IACnB,aAAa,GAAG,KAAK,CAAC;IACtB,SAAS,CAAwB;IACnC,SAAS,CAAqB;IACtC,sGAAsG;IAC9F,SAAS,CAAqB;IAC9B,SAAS,CAAqB;IAC9B,UAAU,GAAG,CAAC,CAAC;IACf,QAAQ,GAAG,KAAK,CAAC;IACjB,MAAM,GAA0B,IAAI,CAAC;IACrC,WAAW,GAAG,CAAC,CAAC;IAChB,WAAW,GAAG,KAAK,CAAC;IACpB,UAAU,GAAG,KAAK,CAAC;IACnB,aAAa,GAAG,KAAK,CAAC;IACb,GAAG,CAAC;IAErB,YAAY,OAAsB;QAChC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,YAAY,CAAC,UAAU,EAAE,wBAAwB,OAAO,CAAC,IAAI,qCAAqC,CAAC,CAAC;QAChH,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,YAAY,EAAE,CAAC;QAC7C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,WAAW,CAAC;QAC5C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/F,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3F,MAAM,IAAI,YAAY,CAAC,cAAc,EAAE,kEAAkE,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrI,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACvE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YACzD,MAAM,IAAI,YAAY,CAAC,SAAS,EAAE,iEAAiE,CAAC,CAAC;QACvG,CAAC;QACD,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,UAAU,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,6DAA6D;IAClG,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAEO,QAAQ,CAAC,KAAY;QAC3B,IAAI,KAAK,KAAK,IAAI,CAAC,UAAU;YAAE,OAAO;QACtC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC5B,CAAC;IAEO,IAAI,CAAC,IAAY;QACvB,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAEO,OAAO,CAAC,MAAyB,EAAE,IAAY;QACrD,MAAM,KAAK,GAAY,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAC3E,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO;YAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC;QAChF,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACxB,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACtB,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,CAAC,GAAa,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3E,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACnB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,QAAQ;oBAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC;gBACrF,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC;IAED,+EAA+E;IAE/E;;;OAGG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9D,MAAM,IAAI,YAAY,CAAC,iBAAiB,EAAE,WAAW,IAAI,CAAC,OAAO,CAAC,IAAI,gBAAgB,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAC3G,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,EAAE,GAAG,MAAM,CAAC;QAC3D,IAAI,CAAC;YACH,IAAI,CAAC,eAAe,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;QAClG,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,YAAY,CAAC,eAAe,EAAE,WAAW,IAAI,CAAC,OAAO,CAAC,IAAI,yCAAyC,CAAC,CAAC;QACjH,CAAC;QACD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YACrC,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,SAAS,GAAI,GAAa,CAAC,OAAO,CAAC;YACxC,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAC/B,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC3B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAC5C,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE;YACzC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;YAC7B,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;YAC3B,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;YAC/B,iBAAiB,EAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB;YACjD,QAAQ,EAAE,IAAI,CAAC,aAAa;YAC5B,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC;SAClD,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa;YAAE,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QACzF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnF,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,mBAAmB,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;QAClG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACtH,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI;YAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACtE,CAAC;IAEO,eAAe;QACrB,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK;YAAE,OAAO,IAAI,CAAC;QACvC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YACpE,IAAI,CAAC,IAAI,CAAC,qIAAqI,CAAC,CAAC;YACjJ,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,KAAK,CAAC,MAAM;QAClB,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,IAAK,CAAC;QACzD,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEhD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;YACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,CAAC;YACxE,OAAO,CAAC,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBACjE,IAAI,IAAI,CAAC,QAAQ;oBAAE,MAAM,IAAI,YAAY,CAAC,SAAS,EAAE,sCAAsC,CAAC,CAAC;gBAC7F,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ;oBAAE,MAAM,IAAI,YAAY,CAAC,oBAAoB,EAAE,UAAU,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,mBAAmB,CAAC,CAAC;gBAC3I,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QAED,wGAAwG;QACxG,IAAI,CAAC,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC/G,MAAM,GAAG,GAAG;YACV,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;YACzB,SAAS,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;YAC3B,sEAAsE;YACtE,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACtG,YAAY,IAAI,CAAC,aAAa,EAAE;YAChC,UAAU,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE;YACnD,uBAAuB;YACvB,EAAE;SACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,MAAM,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAExD,MAAM,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAE/H,IAAI,UAAU,GAA2B,EAAE,CAAC;QAC5C,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,wHAAwH;YACxH,IAAI,CAAC,OAAO,GAAG,MAAM,cAAc,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,WAAW,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;YAClJ,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;YAC9B,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QACxC,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClF,MAAM,OAAO,GAAG,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;QACtG,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa;YAAE,OAAO,CAAC,OAAO,CAAC,cAAc,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAChG,iHAAiH;QACjH,IAAI,IAAI,CAAC,aAAa;YAAE,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QAChE,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;QACpD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,iBAAiB,CAAC,IAAI,CAAC;gBAAE,QAAQ,CAAC,OAAO,CAAC,wBAAwB,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;;gBAC9G,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1F,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC;QAChD,yFAAyF;QACzF,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QACnD,IAAI,WAAmB,CAAC;QACxB,IAAI,CAAC;YACH,WAAW,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACzE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,GAAI,GAAyB,CAAC,IAAI,CAAC;YAC7C,MAAM,IAAI,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,IAAI,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACpE,CAAC;QACD,MAAM,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC3E,MAAM,KAAK,GAA2B;YACpC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;YACpC,gBAAgB,EAAE,IAAI,CAAC,OAAO;YAC9B,mBAAmB,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;YAC5C,mBAAmB,EAAE,OAAO;YAC5B,yEAAyE;YACzE,gBAAgB,EAAE,MAAM,CAAC,cAAc,CAAC;SACzC,CAAC;QACF,MAAM,OAAO,GAAG;YACd,QAAQ;YACR,GAAG,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC;YAClC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACjC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7C,SAAS,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAC1C,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC3E,CAAC;QACF,MAAM,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,UAAU,EAAE,CAAC;QAC9C,MAAM,IAAI,GAAG,GAAG,EAAE;YAChB,IAAI,CAAC,OAAO;gBAAE,KAAK,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAyB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAChJ,CAAC,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC1B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE;YAC3B,IAAI,QAAqB,CAAC;YAC1B,MAAM,eAAe,GAAG,IAAI,OAAO,CAAO,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;YACjE,qGAAqG;YACrG,MAAM,aAAa,GAAa,EAAE,CAAC;YACnC,IAAI,YAAwC,CAAC;YAC7C,MAAM,SAAS,GAAG,GAAG,EAAE;gBACrB,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ;oBAAE,OAAO;gBAC9C,MAAM,IAAI,GACR,OAAO,CAAC,QAAQ,KAAK,OAAO;oBAC1B,CAAC,CAAC,+IAA+I;oBACjJ,CAAC,CAAC,oDAAoD,CAAC;gBAC3D,IAAI,CAAC,SAAS,GAAG,sBAAsB,CAAC;gBACxC,IAAI,CAAC,SAAS,GAAG,yCAAyC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;gBAC7F,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC1B,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBACzB,KAAK,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC,CAAC;YACF,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC;gBAChB,QAAQ,EAAE,IAAI,CAAC,IAAK,CAAC,YAAY,CAAC,IAAI;gBACtC,MAAM;gBACN,QAAQ;gBACR,KAAK;gBACL,OAAO;gBACP,GAAG;gBACH,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;oBACf,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;oBAC3B,IAAI,+DAA+D,CAAC,IAAI,CAAC,IAAI,CAAC;wBAAE,QAAQ,EAAE,CAAC;oBAC3F,MAAM,OAAO,GAAG,gCAAgC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC5D,IAAI,OAAO,EAAE,CAAC;wBACZ,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;wBACtC,YAAY,CAAC,YAAY,CAAC,CAAC;wBAC3B,YAAY,GAAG,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;oBAC/C,CAAC;yBAAM,IAAI,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC;wBAAE,YAAY,CAAC,YAAY,CAAC,CAAC;gBAC7E,CAAC;aACF,CAAC,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;YACrB,KAAK,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC;YACvD,KAAK,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC5B,IAAI,EAAE,CAAC;gBACP,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC7B,CAAC,CAAC,CAAC;YACH,kFAAkF;YAClF,KAAK,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC,CAAC;QAEF,MAAM,SAAS,EAAE,CAAC;IACpB,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC5B,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC7B,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,IAAI,IAAI,CAAC,UAAU,KAAK,cAAc;YAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACtG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,IAAI;QAChB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS;YAAE,OAAO;QACnC,IAAI,KAAgB,CAAC;QACrB,IAAI,CAAC;YACH,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAY,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;QACnE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,UAAU,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW;gBAAE,OAAO;YAClE,OAAO;QACT,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC9E,IAAI,KAAK,CAAC,MAAM,IAAI,oCAAoC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YAC3G,4FAA4F;YAC5F,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,iDAAiD,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;YACzI,IAAI,CAAC,SAAS,GAAG,oBAAoB,CAAC;YACtC,IAAI,CAAC,SAAS,GAAG,uBAAuB,KAAK,CAAC,MAAM,8CAA8C,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACzI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1B,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACzB,KAAK,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC9B,OAAO;QACT,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;YAC/E,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;gBAClC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC9B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAC3B,CAAC;iBAAM,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,WAAW,GAAG,MAAM,EAAE,CAAC;gBACzE,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,eAAe;YACtC,CAAC;QACH,CAAC;aAAM,IACL,IAAI,CAAC,MAAM;YACX,CAAC,IAAI,CAAC,aAAa;YACnB,IAAI,CAAC,UAAU,KAAK,YAAY;YAChC,KAAK,CAAC,MAAM,KAAK,aAAa;YAC9B,CAAC,KAAK,CAAC,OAAO,EACd,CAAC;YACD,qGAAqG;YACrG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,wBAAwB,CAAC,CAAC;YACnF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAiB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACxJ,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,KAAK,oBAAoB,IAAI,IAAI,CAAC,UAAU,KAAK,cAAc,IAAI,IAAI,CAAC,UAAU,KAAK,cAAc,EAAE,CAAC;YAC7H,IAAI,CAAC,SAAS,GAAG,iBAAiB,KAAK,CAAC,gBAAgB,IAAI,gBAAgB,EAAE,CAAC;YAC/E,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YAC9B,KAAK,IAAI,CAAC,cAAc,EAAE,CAAC;QAC7B,CAAC;IACH,CAAC;IAEO,cAAc;QACpB,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACjC,IAAI,CAAC,KAAK,KAAK;YAAE,OAAO,CAAC,CAAC;QAC1B,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,OAAO,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC;QACtD,OAAO,EAAE,CAAC;IACZ,CAAC;IAEO,KAAK,CAAC,cAAc;QAC1B,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QAC9D,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;YAC7C,IAAI,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,UAAU,gBAAgB,CAAC,CAAC;YAChE,OAAO;QACT,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC;YACH,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YAClE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YAC9B,IAAI,CAAC,IAAI,CAAC,mBAAmB,KAAK,eAAe,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;YACrE,IAAI,IAAI,CAAC,GAAG;gBAAE,MAAM,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC7C,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC;YACnB,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAC1B,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YACxB,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACtB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,SAAS,GAAI,GAAa,CAAC,OAAO,CAAC;YACxC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC3B,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAC3B,CAAC;IACH,CAAC;IAEO,UAAU,CAAC,GAAW,EAAE,IAAmB;QACjD,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG;YAAE,OAAO,CAAC,eAAe;QAC7C,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,iCAAiC,IAAI,EAAE,CAAC,CAAC;QACnD,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO;QAChE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnG,IAAI,CAAC,SAAS,GAAG,yBAAyB,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC5E,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACzB,wFAAwF;QACxF,IAAI,IAAI,CAAC,UAAU;YAAE,KAAK,IAAI,CAAC,cAAc,EAAE,CAAC;IAClD,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,SAAiB;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACxC,SAAS,CAAC;YACR,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;YAC9B,IAAI,KAAK,KAAK,SAAS;gBAAE,OAAO;YAChC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,KAAK,KAAK,IAAI,KAAK,KAAK,YAAY;gBAAE,OAAO;YAChH,IAAI,KAAK,KAAK,SAAS;gBAAE,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,SAAS,IAAI,SAAS,EAAC,IAAI,CAAC,SAAS,IAAI,iCAAiC,CAAC,CAAC;YACjI,IAAI,KAAK,KAAK,cAAc,IAAI,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC;gBAAE,MAAM,IAAI,YAAY,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,IAAI,cAAc,CAAC,CAAC;YACtI,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ;gBAAE,MAAM,IAAI,YAAY,CAAC,eAAe,EAAE,+BAA+B,SAAS,aAAa,KAAK,GAAG,CAAC,CAAC;YAClI,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,UAAU;QACtB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,MAAM,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC/B,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;QAClB,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,CAAC;QACD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,KAAY;QACjC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;YAC7B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC9B,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAED,iDAAiD;IACjD,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,KAAK,MAAM;YAAE,OAAO;QACxE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC1B,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC;IAED,MAAM;QACJ,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;YACvB,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO;YACnD,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM;YACtG,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;YACjE,KAAK,EAAE,IAAI,CAAC,UAAU;YACtB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,aAAa;YAC5B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG;YACxB,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO;YAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS;YACvC,IAAI,EAAE,IAAI,CAAC,SAAS;SACrB,CAAC;IACJ,CAAC;IAED,gFAAgF;IAEtE,YAAY;QACpB,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YAC5C,MAAM,IAAI,YAAY,CAAC,qBAAqB,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACxE,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS;YAAE,MAAM,IAAI,YAAY,CAAC,eAAe,EAAE,WAAW,IAAI,CAAC,OAAO,CAAC,IAAI,2BAA2B,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QAC/I,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF"}
1
+ {"version":3,"file":"client-core.js","sourceRoot":"","sources":["../src/client-core.ts"],"names":[],"mappings":"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"}
package/dist/client.d.ts CHANGED
@@ -1,11 +1,15 @@
1
1
  import { ClientCore } from './client-core.js';
2
- import { type BlockFace, type BlockInfo, type BlockPosition, type ChatLine, type ClickMode, type ContainerInfo, type DigResult, type EntityInfo, type EntityQuery, type GameState, type HitTarget, type InventoryInfo, type ItemInfo, type LogLine, type MoveControls, type Phase, type WalkResult } from './types.js';
2
+ import { type BlockFace, type BlockInfo, type BlockPosition, type BlockSearch, type BlockSearchResult, type ChatLine, type ClickMode, type ContainerInfo, type CraftResult, type DigResult, type EntityInfo, type EntityQuery, type ExtensionCommand, type ExtensionInfo, type GameEvent, type GameState, type HitTarget, type InventoryInfo, type ItemInfo, type LogLine, type MoveControls, type Phase, type Surroundings, type TaskStatus, type TransferResult, type WalkOptions, type WalkResult } from './types.js';
3
3
  export * from './types.js';
4
4
  export { installVersion, type InstallOptions } from './install.js';
5
5
  /**
6
6
  * One Minecraft client controlled by Calcite.
7
7
  *
8
- * Events: 'phase' (Phase), 'log' (LogLine), 'chat' (ChatLine), 'state' (GameState), 'exit' (code).
8
+ * Events: 'phase' (Phase), 'log' (LogLine), 'chat' (ChatLine), 'state' (GameState), 'event' (GameEvent),
9
+ * 'exit' (code).
10
+ *
11
+ * Long actions ({@link walkTo}, {@link dig}, {@link craft}) run one at a time: starting another, or
12
+ * {@link stopActions}, cancels the running one, whose promise then rejects with code "cancelled".
9
13
  */
10
14
  export declare class Client extends ClientCore {
11
15
  state(): Promise<GameState>;
@@ -34,18 +38,16 @@ export declare class Client extends ClientCore {
34
38
  }): Promise<MoveControls & {
35
39
  releaseInTicks?: number;
36
40
  }>;
37
- /** Releases every control and cancels a running walkTo/dig/held use. */
41
+ /** Releases every control and cancels the running action (walkTo, dig, craft, held use). */
38
42
  stopActions(): Promise<void>;
43
+ /** The running action and its progress. */
44
+ task(): Promise<TaskStatus>;
39
45
  /**
40
- * Walks in a straight line to (x, z), jumping over single blocks and swimming. Resolves when within
41
- * {@code range} blocks, or with {@code arrived: false} when stuck (no progress for 3 s) or timed out.
42
- * There is no path finding: route around obstacles with intermediate points.
46
+ * Walks to (x, z), finding a path through the loaded terrain: around walls, up steps and slabs, down drops
47
+ * of up to three blocks, across water, never into lava or fire. The path is planned again when the player
48
+ * is pushed off it. Resolves when within {@code range}, or with {@code arrived: false} and a reason.
43
49
  */
44
- walkTo(x: number, z: number, opts?: {
45
- range?: number;
46
- sprint?: boolean;
47
- timeoutMs?: number;
48
- }): Promise<WalkResult>;
50
+ walkTo(x: number, z: number, opts?: WalkOptions): Promise<WalkResult>;
49
51
  /** Left click: attacks the entity (facing it first) or whatever the crosshair points at. */
50
52
  attack(entityId?: number): Promise<HitTarget>;
51
53
  /**
@@ -64,8 +66,24 @@ export declare class Client extends ClientCore {
64
66
  dig(block: BlockPosition & {
65
67
  face?: BlockFace;
66
68
  }, opts?: {
69
+ stopOnDamage?: boolean;
67
70
  timeoutMs?: number;
68
71
  }): Promise<DigResult>;
72
+ /** Loaded blocks matching ids or patterns around the player, nearest first. */
73
+ findBlocks(search: BlockSearch): Promise<BlockSearchResult>;
74
+ /** A top-down terrain map, nearby blocks and entities, biome, time and weather. */
75
+ surroundings(opts?: {
76
+ radius?: number;
77
+ }): Promise<Surroundings>;
78
+ /**
79
+ * Crafts at least {@code count} of an item through the recipe book, from ingredients in the inventory (a recipe
80
+ * making four planks may overshoot). Recipes larger than 2×2 need a crafting table: an open one, or one within
81
+ * reach that is opened and closed again. Only recipes the player has unlocked are known.
82
+ */
83
+ craft(item: string, opts?: {
84
+ count?: number;
85
+ timeoutMs?: number;
86
+ }): Promise<CraftResult>;
69
87
  /** The block at a position as the client sees it. */
70
88
  block(pos: BlockPosition): Promise<BlockInfo>;
71
89
  /** What the crosshair points at. */
@@ -89,6 +107,16 @@ export declare class Client extends ClientCore {
89
107
  button?: number;
90
108
  mode?: ClickMode;
91
109
  }): Promise<ContainerInfo>;
110
+ /**
111
+ * Moves items between the open container and the inventory. Without count or slot whole stacks are
112
+ * shift-clicked, so the game picks the slots (fuel goes into a furnace's fuel slot); otherwise up to
113
+ * {@code count} items go into {@code slot} or the first slots that take them.
114
+ */
115
+ transfer(item: string, opts?: {
116
+ to?: 'container' | 'inventory';
117
+ count?: number;
118
+ slot?: number;
119
+ }): Promise<TransferResult>;
92
120
  closeContainer(): Promise<void>;
93
121
  /** Drops one item (or the whole stack) from the selected hotbar slot. */
94
122
  drop(opts?: {
@@ -109,12 +137,30 @@ export declare class Client extends ClientCore {
109
137
  source?: LogLine['source'];
110
138
  }): LogLine[];
111
139
  chatSince(since?: number, limit?: number): ChatLine[];
140
+ /** The newest sequence number; pass it as {@code since} later to get only what arrived after now. */
141
+ get lastSeq(): number;
142
+ /** Game events received after {@code since}, optionally only those whose name matches {@code name} (regex). */
143
+ eventsSince(opts?: {
144
+ since?: number;
145
+ name?: string;
146
+ limit?: number;
147
+ }): GameEvent[];
148
+ /** Commands registered by extensions and mods, and the extension jars the probe loaded. */
149
+ extensions(): Promise<{
150
+ commands: ExtensionCommand[];
151
+ extensions: ExtensionInfo[];
152
+ }>;
153
+ /** Calls an extension command, e.g. {@code call('hud.bossbars')}. */
154
+ call<T = unknown>(name: string, args?: Record<string, unknown>, opts?: {
155
+ timeoutMs?: number;
156
+ }): Promise<T>;
112
157
  /**
113
- * Waits for a condition: a chat line matching {@code chat} (regex), an entity appearing/disappearing, or a
114
- * phase. Resolves with a description of what matched.
158
+ * Waits for a condition: a chat line matching {@code chat} (regex), a game event whose name matches
159
+ * {@code event} (regex), an entity appearing/disappearing, or a phase. Resolves with a description of what matched.
115
160
  */
116
161
  waitFor(cond: {
117
162
  chat?: string;
163
+ event?: string;
118
164
  entity?: EntityQuery & {
119
165
  present?: boolean;
120
166
  };
@@ -122,6 +168,7 @@ export declare class Client extends ClientCore {
122
168
  }, timeoutMs?: number): Promise<{
123
169
  matched: string;
124
170
  chat?: ChatLine;
171
+ event?: GameEvent;
125
172
  entities?: EntityInfo[];
126
173
  }>;
127
174
  }
package/dist/client.js CHANGED
@@ -7,7 +7,11 @@ export { installVersion } from './install.js';
7
7
  /**
8
8
  * One Minecraft client controlled by Calcite.
9
9
  *
10
- * Events: 'phase' (Phase), 'log' (LogLine), 'chat' (ChatLine), 'state' (GameState), 'exit' (code).
10
+ * Events: 'phase' (Phase), 'log' (LogLine), 'chat' (ChatLine), 'state' (GameState), 'event' (GameEvent),
11
+ * 'exit' (code).
12
+ *
13
+ * Long actions ({@link walkTo}, {@link dig}, {@link craft}) run one at a time: starting another, or
14
+ * {@link stopActions}, cancels the running one, whose promise then rejects with code "cancelled".
11
15
  */
12
16
  export class Client extends ClientCore {
13
17
  async state() {
@@ -16,10 +20,14 @@ export class Client extends ClientCore {
16
20
  return state;
17
21
  }
18
22
  async entities(query = {}) {
19
- const list = await this.requireProbe().request('entities', { radius: query.radius ?? 0, limit: query.type || query.uuid || query.name ? 0 : query.limit ?? 0, includeSelf: !!query.includeSelf }, 20_000);
23
+ const list = await this.requireProbe().request('entities', {
24
+ radius: query.radius ?? 0,
25
+ limit: query.type || query.uuid || query.name ? 0 : (query.limit ?? 0),
26
+ includeSelf: !!query.includeSelf,
27
+ }, 20_000);
20
28
  const type = query.type ? (query.type.includes(':') ? query.type : `minecraft:${query.type}`).toLowerCase() : undefined;
21
29
  const name = query.name?.toLowerCase();
22
- let result = list.filter((e) => (!type || e.type?.toLowerCase() === type) &&
30
+ let result = list.filter((e) => (!type || e.type.toLowerCase() === type) &&
23
31
  (!query.uuid || e.uuid === query.uuid) &&
24
32
  (!name || (e.name ?? '').toLowerCase().includes(name) || (e.customName ?? '').toLowerCase().includes(name)));
25
33
  if (query.limit && query.limit > 0)
@@ -51,18 +59,22 @@ export class Client extends ClientCore {
51
59
  async move(controls, opts = {}) {
52
60
  return this.requireProbe().request('move', { ...controls, ticks: opts.ticks ?? 0 });
53
61
  }
54
- /** Releases every control and cancels a running walkTo/dig/held use. */
62
+ /** Releases every control and cancels the running action (walkTo, dig, craft, held use). */
55
63
  async stopActions() {
56
64
  await this.requireProbe().request('stop');
57
65
  }
66
+ /** The running action and its progress. */
67
+ async task() {
68
+ return this.requireProbe().request('task');
69
+ }
58
70
  /**
59
- * Walks in a straight line to (x, z), jumping over single blocks and swimming. Resolves when within
60
- * {@code range} blocks, or with {@code arrived: false} when stuck (no progress for 3 s) or timed out.
61
- * There is no path finding: route around obstacles with intermediate points.
71
+ * Walks to (x, z), finding a path through the loaded terrain: around walls, up steps and slabs, down drops
72
+ * of up to three blocks, across water, never into lava or fire. The path is planned again when the player
73
+ * is pushed off it. Resolves when within {@code range}, or with {@code arrived: false} and a reason.
62
74
  */
63
75
  async walkTo(x, z, opts = {}) {
64
- const timeoutMs = opts.timeoutMs ?? 60_000;
65
- return this.requireProbe().request('walk_to', { x, z, range: opts.range ?? 0.5, sprint: opts.sprint ?? true, timeoutMs }, timeoutMs + 15_000);
76
+ const { timeoutMs = 60_000, ...rest } = opts;
77
+ return this.requireProbe().request('walk_to', { x, z, ...rest, timeoutMs }, timeoutMs + 15_000);
66
78
  }
67
79
  /** Left click: attacks the entity (facing it first) or whatever the crosshair points at. */
68
80
  async attack(entityId) {
@@ -79,8 +91,25 @@ export class Client extends ClientCore {
79
91
  }
80
92
  /** Mines a block like a player (holding left click, taking the real break time). */
81
93
  async dig(block, opts = {}) {
94
+ const { timeoutMs = 30_000, stopOnDamage } = opts;
95
+ return this.requireProbe().request('dig', { ...block, stopOnDamage, timeoutMs }, timeoutMs + 15_000);
96
+ }
97
+ /** Loaded blocks matching ids or patterns around the player, nearest first. */
98
+ async findBlocks(search) {
99
+ return this.requireProbe().request('find_blocks', { ...search }, 20_000);
100
+ }
101
+ /** A top-down terrain map, nearby blocks and entities, biome, time and weather. */
102
+ async surroundings(opts = {}) {
103
+ return this.requireProbe().request('surroundings', { ...opts }, 20_000);
104
+ }
105
+ /**
106
+ * Crafts at least {@code count} of an item through the recipe book, from ingredients in the inventory (a recipe
107
+ * making four planks may overshoot). Recipes larger than 2×2 need a crafting table: an open one, or one within
108
+ * reach that is opened and closed again. Only recipes the player has unlocked are known.
109
+ */
110
+ async craft(item, opts = {}) {
82
111
  const timeoutMs = opts.timeoutMs ?? 30_000;
83
- return this.requireProbe().request('dig', { ...block, timeoutMs }, timeoutMs + 15_000);
112
+ return this.requireProbe().request('craft', { item, count: opts.count ?? 1, timeoutMs }, timeoutMs + 15_000);
84
113
  }
85
114
  /** The block at a position as the client sees it. */
86
115
  async block(pos) {
@@ -110,6 +139,14 @@ export class Client extends ClientCore {
110
139
  async click(slot, opts = {}) {
111
140
  return this.requireProbe().request('click', { slot, button: opts.button ?? 0, mode: opts.mode ?? 'pickup' });
112
141
  }
142
+ /**
143
+ * Moves items between the open container and the inventory. Without count or slot whole stacks are
144
+ * shift-clicked, so the game picks the slots (fuel goes into a furnace's fuel slot); otherwise up to
145
+ * {@code count} items go into {@code slot} or the first slots that take them.
146
+ */
147
+ async transfer(item, opts = {}) {
148
+ return this.requireProbe().request('transfer', { item, ...opts });
149
+ }
113
150
  async closeContainer() {
114
151
  await this.requireProbe().request('close_container');
115
152
  }
@@ -139,30 +176,51 @@ export class Client extends ClientCore {
139
176
  }
140
177
  logsSince(opts = {}) {
141
178
  const contains = opts.contains?.toLowerCase();
142
- const lines = this.logs.filter((l) => l.seq > (opts.since ?? 0) && (!opts.source || l.source === opts.source) && (!contains || l.line.toLowerCase().includes(contains)));
143
- return opts.limit ? lines.slice(-opts.limit) : lines;
179
+ return this.logs.since(opts.since, (l) => (!opts.source || l.source === opts.source) && (!contains || l.line.toLowerCase().includes(contains)), opts.limit);
144
180
  }
145
181
  chatSince(since = 0, limit) {
146
- const lines = this.chats.filter((c) => c.seq > since);
147
- return limit ? lines.slice(-limit) : lines;
182
+ return this.chats.since(since, undefined, limit);
183
+ }
184
+ /** The newest sequence number; pass it as {@code since} later to get only what arrived after now. */
185
+ get lastSeq() {
186
+ return this.seq;
187
+ }
188
+ /** Game events received after {@code since}, optionally only those whose name matches {@code name} (regex). */
189
+ eventsSince(opts = {}) {
190
+ const re = opts.name ? new RegExp(opts.name) : undefined;
191
+ return this.events.since(opts.since, re && ((e) => re.test(e.name)), opts.limit);
192
+ }
193
+ /** Commands registered by extensions and mods, and the extension jars the probe loaded. */
194
+ async extensions() {
195
+ return this.requireProbe().request('ext.list');
196
+ }
197
+ /** Calls an extension command, e.g. {@code call('hud.bossbars')}. */
198
+ async call(name, args = {}, opts = {}) {
199
+ return this.requireProbe().request('ext.call', { name, args }, opts.timeoutMs ?? 30_000);
148
200
  }
149
201
  /**
150
- * Waits for a condition: a chat line matching {@code chat} (regex), an entity appearing/disappearing, or a
151
- * phase. Resolves with a description of what matched.
202
+ * Waits for a condition: a chat line matching {@code chat} (regex), a game event whose name matches
203
+ * {@code event} (regex), an entity appearing/disappearing, or a phase. Resolves with a description of what matched.
152
204
  */
153
205
  async waitFor(cond, timeoutMs = 30_000) {
154
206
  const deadline = Date.now() + timeoutMs;
155
207
  const chatRe = cond.chat ? new RegExp(cond.chat, 'i') : undefined;
208
+ const eventRe = cond.event ? new RegExp(cond.event) : undefined;
156
209
  const startSeq = this.seq;
157
210
  for (;;) {
158
211
  if (chatRe) {
159
- const hit = this.chats.find((c) => c.seq > startSeq && chatRe.test(c.message));
212
+ const hit = this.chats.find(startSeq, (c) => chatRe.test(c.message));
160
213
  if (hit)
161
214
  return { matched: 'chat', chat: hit };
162
215
  }
216
+ if (eventRe) {
217
+ const hit = this.events.find(startSeq, (e) => eventRe.test(e.name));
218
+ if (hit)
219
+ return { matched: 'event', event: hit };
220
+ }
163
221
  if (cond.phase && this.phase === cond.phase)
164
222
  return { matched: 'phase' };
165
- if (cond.entity && this.probe?.connected) {
223
+ if (cond.entity && this.probeConnected) {
166
224
  const { present = true, ...query } = cond.entity;
167
225
  try {
168
226
  const found = await this.entities(query);
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/display.d.ts CHANGED
@@ -10,12 +10,6 @@ export declare function which(binary: string): string | null;
10
10
  export declare function hasGpu(): boolean;
11
11
  /** True when a shared library (e.g. "libEGL.so.1") is present in the usual Linux library directories. */
12
12
  export declare function hasSharedLib(name: string): boolean;
13
- /**
14
- * Provides a display for a rendering client.
15
- * - Linux with DISPLAY set (desktop, or an existing Xvfb): use it.
16
- * - Linux without DISPLAY: start a shared Xvfb (needs the `Xvfb` binary) with software GL when there is no GPU.
17
- * - Windows / macOS: the native display is used.
18
- */
19
13
  export declare function acquireDisplay(opts?: {
20
14
  width?: number;
21
15
  height?: number;
package/dist/display.js CHANGED
@@ -34,7 +34,7 @@ export function hasSharedLib(name) {
34
34
  for (const base of ['/usr/lib', '/lib']) {
35
35
  try {
36
36
  for (const d of readdirSync(base))
37
- if (/-linux-gnu/.test(d))
37
+ if (d.includes('-linux-gnu'))
38
38
  dirs.push(join(base, d));
39
39
  }
40
40
  catch {
@@ -87,61 +87,48 @@ async function waitFor(check, timeoutMs) {
87
87
  }
88
88
  return check();
89
89
  }
90
+ /** Starts an Xvfb on a free display number; it is killed when this process exits. */
91
+ async function startXvfb(width, height) {
92
+ const xvfb = which('Xvfb');
93
+ if (!xvfb) {
94
+ throw new Error('Rendering on a Linux machine without a display needs Xvfb and Mesa: apt-get install -y xvfb libgl1-mesa-dri libegl1 libegl-mesa0 (or run with --render off)');
95
+ }
96
+ // a display may still be taken without leaving traces we can see; Xvfb then exits and the next number is tried
97
+ const tried = new Set();
98
+ for (let attempt = 0; attempt < 5; attempt++) {
99
+ const n = freeDisplayNumber(tried);
100
+ tried.add(n);
101
+ const proc = spawn(xvfb, [`:${n}`, '-screen', '0', `${width}x${height}x24`, '-nolisten', 'tcp'], { stdio: 'ignore' });
102
+ proc.unref();
103
+ const socket = `/tmp/.X11-unix/X${n}`;
104
+ await waitFor(() => existsSync(socket) || proc.exitCode !== null, 10_000);
105
+ if (proc.exitCode === null && existsSync(socket)) {
106
+ log.info(`started Xvfb :${n} (${width}x${height})`);
107
+ process.once('exit', () => proc.kill());
108
+ return { proc, display: `:${n}` };
109
+ }
110
+ proc.kill();
111
+ log.debug(`Xvfb :${n} did not start, trying another display`);
112
+ }
113
+ throw new Error(`Xvfb failed to start (tried displays ${[...tried].map((d) => `:${d}`).join(', ')})`);
114
+ }
90
115
  /**
91
116
  * Provides a display for a rendering client.
92
117
  * - Linux with DISPLAY set (desktop, or an existing Xvfb): use it.
93
118
  * - Linux without DISPLAY: start a shared Xvfb (needs the `Xvfb` binary) with software GL when there is no GPU.
94
119
  * - Windows / macOS: the native display is used.
95
120
  */
121
+ const noRelease = () => undefined;
96
122
  export async function acquireDisplay(opts = {}) {
97
123
  if (process.platform !== 'linux') {
98
- return { env: {}, virtual: false, release() { } };
124
+ return { env: {}, virtual: false, release: noRelease };
99
125
  }
100
126
  if (process.env.DISPLAY && !opts.forceVirtual) {
101
127
  const virtual = /xvfb/i.test(process.env.CALCITE_DISPLAY_KIND || '');
102
- return { env: { DISPLAY: process.env.DISPLAY, ...(virtual ? virtualDisplayEnv() : softwareGlEnv()) }, virtual, release() { } };
128
+ return { env: { DISPLAY: process.env.DISPLAY, ...(virtual ? virtualDisplayEnv() : softwareGlEnv()) }, virtual, release: noRelease };
103
129
  }
104
- if (!shared || shared.proc.exitCode !== null) {
105
- const xvfb = which('Xvfb');
106
- if (!xvfb) {
107
- throw new Error('Rendering on a Linux machine without a display needs Xvfb and Mesa: apt-get install -y xvfb libgl1-mesa-dri libegl1 libegl-mesa0 (or run with --render off)');
108
- }
109
- const width = opts.width ?? 1280;
110
- const height = opts.height ?? 720;
111
- // a display may still be taken without leaving traces we can see; Xvfb then exits and the next number is tried
112
- const tried = new Set();
113
- let n = 0;
114
- let proc;
115
- for (let attempt = 0; attempt < 5 && !proc; attempt++) {
116
- n = freeDisplayNumber(tried);
117
- tried.add(n);
118
- const candidate = spawn(xvfb, [`:${n}`, '-screen', '0', `${width}x${height}x24`, '-nolisten', 'tcp'], {
119
- stdio: 'ignore',
120
- detached: false,
121
- });
122
- candidate.unref();
123
- await waitFor(() => existsSync(`/tmp/.X11-unix/X${n}`) || candidate.exitCode !== null, 10_000);
124
- if (candidate.exitCode === null && existsSync(`/tmp/.X11-unix/X${n}`))
125
- proc = candidate;
126
- else {
127
- candidate.kill();
128
- log.debug(`Xvfb :${n} did not start, trying another display`);
129
- }
130
- }
131
- if (!proc)
132
- throw new Error(`Xvfb failed to start (tried displays ${[...tried].map((d) => `:${d}`).join(', ')})`);
133
- log.info(`started Xvfb :${n} (${width}x${height})`);
134
- const xvfbProc = proc;
135
- shared = { proc: xvfbProc, display: `:${n}`, refs: 0 };
136
- const cleanup = () => {
137
- try {
138
- xvfbProc.kill();
139
- }
140
- catch {
141
- // already gone
142
- }
143
- };
144
- process.once('exit', cleanup);
130
+ if (shared?.proc.exitCode !== null) {
131
+ shared = { ...(await startXvfb(opts.width ?? 1280, opts.height ?? 720)), refs: 0 };
145
132
  }
146
133
  const lease = shared;
147
134
  lease.refs++;
@@ -1 +1 @@
1
- {"version":3,"file":"display.js","sourceRoot":"","sources":["../src/display.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"display.js","sourceRoot":"","sources":["../src/display.ts"],"names":[],"mappings":"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"}
package/dist/feed.d.ts ADDED
@@ -0,0 +1,17 @@
1
+ /** Anything kept in a {@link Feed}: entries are numbered by a sequence shared across feeds of one client. */
2
+ export interface Sequenced {
3
+ seq: number;
4
+ }
5
+ /** A bounded, append-only history of entries ordered by {@code seq}; the oldest entries drop off first. */
6
+ export declare class Feed<T extends Sequenced> {
7
+ private readonly capacity;
8
+ private items;
9
+ constructor(capacity: number);
10
+ push(item: T): void;
11
+ /** Entries newer than {@code since} that pass {@code filter}; with {@code limit} only the newest ones. */
12
+ since(since?: number, filter?: (item: T) => boolean, limit?: number): T[];
13
+ /** The first entry newer than {@code since} that passes {@code filter}. */
14
+ find(since: number, filter: (item: T) => boolean): T | undefined;
15
+ /** Index of the first entry with a seq greater than {@code seq} (binary search; seqs only grow). */
16
+ private firstAfter;
17
+ }