@numa-tech/numa 1.24.0 → 1.26.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 (97) hide show
  1. package/README.md +4 -0
  2. package/dist/business-issuer.js +5 -5
  3. package/dist/business-issuer.js.map +1 -1
  4. package/dist/cli.js +3 -0
  5. package/dist/cli.js.map +1 -1
  6. package/dist/config.d.ts +1 -1
  7. package/dist/config.js +2 -2
  8. package/dist/config.js.map +1 -1
  9. package/dist/kb/catalog.js +33 -2
  10. package/dist/kb/catalog.js.map +1 -1
  11. package/dist/kb/chat-stream.d.ts +5 -0
  12. package/dist/kb/chat-stream.js +61 -0
  13. package/dist/kb/chat-stream.js.map +1 -0
  14. package/dist/kb/client.d.ts +75 -6
  15. package/dist/kb/client.js +114 -12
  16. package/dist/kb/client.js.map +1 -1
  17. package/dist/kb/commands.js +93 -8
  18. package/dist/kb/commands.js.map +1 -1
  19. package/dist/kb/config.d.ts +15 -3
  20. package/dist/kb/config.js +40 -21
  21. package/dist/kb/config.js.map +1 -1
  22. package/dist/kb/management-commands.d.ts +7 -0
  23. package/dist/kb/management-commands.js +86 -0
  24. package/dist/kb/management-commands.js.map +1 -0
  25. package/dist/kb/management-schemas.d.ts +106 -0
  26. package/dist/kb/management-schemas.js +33 -0
  27. package/dist/kb/management-schemas.js.map +1 -0
  28. package/dist/kb/transfers.d.ts +4 -0
  29. package/dist/kb/transfers.js +11 -4
  30. package/dist/kb/transfers.js.map +1 -1
  31. package/dist/kb/upload-decisions.d.ts +28 -0
  32. package/dist/kb/upload-decisions.js +23 -0
  33. package/dist/kb/upload-decisions.js.map +1 -0
  34. package/dist/kb/upload-state.d.ts +1 -0
  35. package/dist/kb/upload-state.js +1 -0
  36. package/dist/kb/upload-state.js.map +1 -1
  37. package/dist/kb/web-login.d.ts +10 -0
  38. package/dist/kb/web-login.js +25 -0
  39. package/dist/kb/web-login.js.map +1 -0
  40. package/dist/kb/web-page.d.ts +3 -0
  41. package/dist/kb/web-page.js +114 -0
  42. package/dist/kb/web-page.js.map +1 -0
  43. package/dist/kb/web-queue.d.ts +61 -0
  44. package/dist/kb/web-queue.js +101 -0
  45. package/dist/kb/web-queue.js.map +1 -0
  46. package/dist/kb/web.d.ts +26 -0
  47. package/dist/kb/web.js +234 -0
  48. package/dist/kb/web.js.map +1 -0
  49. package/dist/local-web/context-menu.d.ts +2 -0
  50. package/dist/local-web/context-menu.js +53 -0
  51. package/dist/local-web/context-menu.js.map +1 -0
  52. package/dist/local-web/file-workspace-style.d.ts +2 -0
  53. package/dist/local-web/file-workspace-style.js +58 -0
  54. package/dist/local-web/file-workspace-style.js.map +1 -0
  55. package/dist/local-web/file-workspace.d.ts +2 -0
  56. package/dist/local-web/file-workspace.js +39 -0
  57. package/dist/local-web/file-workspace.js.map +1 -0
  58. package/dist/local-web/security.d.ts +6 -0
  59. package/dist/local-web/security.js +51 -0
  60. package/dist/local-web/security.js.map +1 -0
  61. package/dist/login-recovery.js +8 -3
  62. package/dist/login-recovery.js.map +1 -1
  63. package/dist/mcp-gateway/profile.d.ts +4 -0
  64. package/dist/mcp-gateway/profile.js +6 -3
  65. package/dist/mcp-gateway/profile.js.map +1 -1
  66. package/dist/mcp-gateway/runtime.js +14 -0
  67. package/dist/mcp-gateway/runtime.js.map +1 -1
  68. package/dist/oss/transfer-queue.d.ts +7 -51
  69. package/dist/oss/transfer-queue.js +15 -308
  70. package/dist/oss/transfer-queue.js.map +1 -1
  71. package/dist/oss/web-page.js +21 -103
  72. package/dist/oss/web-page.js.map +1 -1
  73. package/dist/oss/web.js +4 -45
  74. package/dist/oss/web.js.map +1 -1
  75. package/dist/platform-profile.d.ts +25 -1
  76. package/dist/platform-profile.js +44 -1
  77. package/dist/platform-profile.js.map +1 -1
  78. package/dist/transfers/persistent-queue.d.ts +65 -0
  79. package/dist/transfers/persistent-queue.js +312 -0
  80. package/dist/transfers/persistent-queue.js.map +1 -0
  81. package/docs/design/kb-capability-upgrade.md +36 -0
  82. package/docs/design/kb-cli.md +4 -4
  83. package/docs/design/kb-web-workspace.md +97 -0
  84. package/docs/kb-access.md +86 -7
  85. package/examples/jev/README.md +65 -0
  86. package/examples/jev/platform-client.test.ts +136 -0
  87. package/examples/jev/platform-client.ts +122 -0
  88. package/package.json +9 -7
  89. package/scripts/export-kb-contract.py +25 -6
  90. package/skills/numa-jev/LICENSE +21 -0
  91. package/skills/numa-jev/SKILL.md +54 -0
  92. package/skills/numa-jev/assets/decision.json +37 -0
  93. package/skills/numa-jev/numa-skill.json +8 -0
  94. package/skills/numa-jev/references/application-integration.md +36 -0
  95. package/skills/numa-jev/references/mcp-usage.md +53 -0
  96. package/skills/numa-jev/references/upstream.md +13 -0
  97. package/src/kb/openapi-contract.json +2297 -566
@@ -1 +1 @@
1
- {"version":3,"file":"platform-profile.js","sourceRoot":"","sources":["../src/platform-profile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platform-profile.js","sourceRoot":"","sources":["../src/platform-profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAClG,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAE3E,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACxB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC9B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CAC1C,CAAC,CAAC;AACH,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACvC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC7C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACrD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACzD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC/D,CAAC,CAAC;AACH,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACzB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC1B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7B,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC7C,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACrE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAC1C,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC;QACtB,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,oCAAoC,CAAC,EAAE,wBAAwB,CAAC,CAAC,QAAQ,EAAE;QACnH,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;QAChD,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;QACjD,cAAc,EAAE,oBAAoB,CAAC,QAAQ,EAAE;QAC/C,uBAAuB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;QACpD,sBAAsB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;KAC/C,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IAC3B,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC;QACrB,sBAAsB,EAAE,CAAC,CAAC,MAAM,CAAC;YAC/B,oBAAoB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YAC5C,kBAAkB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YAC1C,yBAAyB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YACjD,6BAA6B,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;YACrD,oBAAoB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;SAC7C,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;KAC5B,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;CAC5B,CAAC,CAAC,WAAW,EAAE,CAAC;AACjB,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CACjE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAC1C,6DAA6D,CAC9D,CAAC;AACF,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7B,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACrC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1E,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC;IAClD,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAC5E,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACjD,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC;QACvB,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACpC,wBAAwB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3C,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACxD,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAClD,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;KAC7C,CAAC,CAAC,QAAQ,EAAE;IACb,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC;IAC3G,qBAAqB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CACnE,CAAC,CAAC;AAoBH,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAE1B,UAAU;IADtB,IAAI,GAAG,oBAAoB,CAAC;IACrC,YAAqB,UAAkB;QACrC,KAAK,CAAC,kBAAkB,UAAU,MAAM,CAAC,CAAC;0BADvB,UAAU;QAE7B,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;AAED,MAAM,OAAO,0BAA2B,SAAQ,KAAK;IAC1C,IAAI,GAAG,yBAAyB,CAAC;IAC1C,YAAY,cAAsB;QAChC,KAAK,CAAC,qBAAqB,cAAc,QAAQ,CAAC,CAAC;QACnD,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;IAC3C,CAAC;CACF;AAED,IAAI,aAAkD,CAAC;AAEvD,MAAM,UAAU,sBAAsB;IACpC,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,OAA4C;IACrF,IAAI,CAAC,OAAO,EAAE,CAAC;QAAC,aAAa,GAAG,SAAS,CAAC;QAAC,OAAO;IAAC,CAAC;IACpD,MAAM,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,IAAI,CAAC,OAAO,CAAC,aAAa,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACzI,MAAM,SAAS,GAAG,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;IAC7G,+EAA+E;IAC/E,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAClC,OAAO,OAAO,CAAC,cAAc,CAAC;IAC9B,aAAa,GAAG,OAAO,CAAC;AAC1B,CAAC;AASD,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAGxB,WAAW;IAFvB,IAAI,GAAG,qBAAqB,CAAC;IAC7B,eAAe,CAAS;IACjC,YAAqB,WAA+B;QAClD,MAAM,KAAK,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC;QAC5E,MAAM,QAAQ,GAAG,qBAAqB,KAAK,CAAC,cAAc,WAAW,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,IAAI,KAAK,CAAC,aAAa,WAAW,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC;QACxJ,KAAK,CAAC,oBAAoB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG;YACvH,mBAAmB,QAAQ,4BAA4B,CAAC,CAAC;2BAJxC,WAAW;QAK9B,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;QACnC,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;IAClC,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,OAAO,GAKnD,EAAE;IACJ,aAAa,GAAG,SAAS,CAAC;IAC1B,MAAM,SAAS,GAAG,MAAM,aAAa,EAAE,CAAC;IACxC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IACtF,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,aAAa,GAAG,SAAS,CAAC;QAC1B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,sBAAsB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACnE,IAAI,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,SAAS,KAAK,SAAS,CAAC,SAAS,EAAE,CAAC;QACvE,MAAM,WAAW,GAAG,EAAC,UAAU,EAAE,SAAS,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,EAAC,CAAC;QACjI,IAAI,CAAC,OAAO,CAAC,kBAAkB,IAAI,CAAC,MAAM,OAAO,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC;YAClF,MAAM,IAAI,oBAAoB,CAAC,WAAW,CAAC,CAAC;QAC9C,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,aAAa,EAAE,CAAC;QACrC,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,SAAS,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,UAAU,EAAE,CAAC;YAC3F,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;QACD,MAAM,aAAa,CAAC,EAAC,GAAG,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,EAAC,CAAC,CAAC;IAC1F,CAAC;IACD,aAAa,GAAG,SAAS,CAAC;IAC1B,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,SAAiB,EAAE,OAAO,GAKnE,EAAE;IACJ,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC9B,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACxC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,kBAAkB,EAAE,EAC9D,WAAW,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;IACvF,IAAI,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC9C,IAAI,aAAsC,CAAC;IAC3C,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,CAAC;YAAC,aAAa,GAAG,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAAC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACtE,IAAI,KAAK,YAAY,0BAA0B;gBAAE,MAAM,KAAK,CAAC;YAC7D,MAAM,oBAAoB,CAAC,IAAI,CAAC,CAAC;YACjC,MAAM,GAAG,SAAS,CAAC;QACrB,CAAC;IACH,CAAC;IACD,+EAA+E;IAC/E,+EAA+E;IAC/E,IAAI,MAAM,IAAI,aAAa,IAAI,CAAC,MAAM,CAAC,aAAa,KAAK,CAAC,IAAK,MAAM,CAAC,OAAuB,CAAC,aAAa,KAAK,CAAC,CAAC,EAAE,CAAC;QACnH,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,OAAO,EAAE,aAAa;YAC5D,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QAC9F,MAAM,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IACD,IAAI,MAAM,IAAI,aAAa,IAAI,GAAG,IAAI,MAAM,CAAC,SAAS;WACjD,GAAG,GAAG,MAAM,CAAC,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,aAAa,GAAG,KAAK,EAAE,CAAC;QACxE,OAAO,QAAQ,CAAC,aAAa,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;IAC3F,CAAC;IACD,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,SAAS,EAAE;YACnD,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;YAClG,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC;SACnC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1F,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,MAAM,IAAI,CAAC,aAAa,IAAI,GAAG,GAAG,MAAM,CAAC,SAAS,IAAI,GAAG,GAAG,MAAM,CAAC,SAAS,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM;YAAE,MAAM,KAAK,CAAC;QAClH,OAAO,CAAC,IAAI,EAAE,CAAC,4CAA4C,CAAC,CAAC;QAC7D,OAAO,QAAQ,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;IAC1F,CAAC;IACD,oFAAoF;IACpF,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IACnF,MAAM,GAAG,GAAY,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,MAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACvF,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,MAAM,IAAI,aAAa,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,aAAa,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS;WAC1F,GAAmB,CAAC,aAAa,KAAK,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,IAAI,aAAa,IAAI,MAAM,CAAC,SAAS,KAAK,aAAa,CAAC,SAAS,IAAI,MAAM,CAAC,QAAQ,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC;QAC9G,IAAI,CAAC,MAAM,IAAI,GAAG,GAAG,MAAM,CAAC,SAAS,IAAI,GAAG,GAAG,MAAM,CAAC,SAAS,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM;YAChF,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,OAAO,CAAC,IAAI,EAAE,CAAC,8CAA8C,CAAC,CAAC;QAC/D,OAAO,QAAQ,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;IAC1F,CAAC;IACD,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC;IAC/F,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC;IAChG,MAAM,gBAAgB,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG;QACxE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IACrF,OAAO,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,oBAAoB,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,eAAe,CAAC,GAAY;IACnC,MAAM,KAAK,GAAG,GAAkB,CAAC;IACjC,OAAO,KAAK,CAAC,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,mBAAmB,EAAE,CAAC;YACtE,GAAG,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,IAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACvF,CAAC;AAED,SAAS,eAAe,CAAC,GAAY;IACnC,mFAAmF;IACnF,MAAM,cAAc,GAAG,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QACnD,CAAC,CAAE,GAAsD,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IACpG,IAAI,OAAO,cAAc,KAAK,QAAQ,IAAI,CAAC,0DAA0D,CAAC,IAAI,CAAC,cAAc,CAAC;QACxH,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,IAAI,OAAO,cAAc,KAAK,QAAQ,IAAI,eAAe,CAAC,eAAe,EAAE,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/F,MAAM,IAAI,0BAA0B,CAAC,cAAc,CAAC,CAAC;IACvD,CAAC;IACD,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzC,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9D,MAAM,aAAa,GAAG,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACvD,IAAI,CAAC,aAAa,CAAC,OAAO;YAAE,SAAS;QACrC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,kBAAkB,CAAC,CAAC;QACpH,MAAM,iBAAiB,GAAG,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC;QAC3D,IAAI,iBAAiB,EAAE,kBAAkB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,YAAY,IAAI,EAAE,EAAE,iBAAiB,CAAC,kBAAkB,CAAC;YACrI,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC;QACxC,IAAI,iBAAiB,EAAE,kBAAkB,EAAE,CAAC;YAC1C,MAAM,MAAM,GAAC,iBAAiB,CAAC,YAAa,CAAC,iBAAiB,CAAC,kBAAkB,CAAE,CAAC;YACpF,KAAI,MAAM,KAAK,IAAI,CAAC,SAAS,EAAC,UAAU,EAAC,WAAW,EAAC,UAAU,EAAC,cAAc,EAAC,YAAY,CAAU;gBACnG,IAAG,MAAM,CAAC,KAAK,CAAC,KAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;oBAAC,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,2BAA2B,CAAC,CAAC;QACvG,CAAC;QACD,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,YAAY,IAAI,EAAE,CAAC,EAAE,CAAC;YAC/E,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,CAAC,SAAS,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,qBAAqB,CAAC,CAAC;YAChH,KAAK,MAAM,KAAK,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAChE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC3B,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;oBACpL,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;QACD,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,IAAI,EAAE,CAAC;YAC/E,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,sCAAsC,CAAC,CAAC;IACzH,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,CAAC,cAAc,CAAC;IACpC,IAAI,OAAO,CAAC,aAAa,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;QACxC,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAChE,IAAI,QAAQ,CAAC,SAAS,KAAK,IAAI,CAAC,iBAAiB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,iBAAiB,CAAC;YAC9G,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;QAC7F,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,wBAAwB,CAAC;YAC9E,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACtE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;YACtD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QACxH,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxC,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3D,IAAI,OAAO,CAAC,SAAS,KAAK,IAAI,CAAC,wBAAwB;gBACrD,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;YAChF,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,OAAO,EAAE,iBAAiB,EAAE,EAAE,GAAG,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;QACzF,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,aAAa,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ;QAC5F,OAAO,CAAC,QAAQ,CAAC,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAC1D,MAAM,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,IAAI,CAAC,OAAO,CAAC,aAAa,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC/L,IAAI,mBAAmB,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO;QAChG,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,iFAAiF;IACjF,2EAA2E;IAC3E,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,GAAG,OAAO,CAAC;IAC1D,OAAO,EAAE,GAAG,SAAS,EAAE,aAAa,EAAE,CAAC,EAAE,mBAAmB,EAAE,CAAC;AACjE,CAAC;AAED,SAAS,eAAe,CAAC,IAAY,EAAE,KAAa;IAClD,MAAM,KAAK,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5G,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IAAC,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;QACvC,IAAI,CAAC,CAAC,KAAK,CAAE,KAAK,CAAC,CAAC,KAAK,CAAE;YAAE,OAAO,CAAC,CAAC,KAAK,CAAE,GAAG,CAAC,CAAC,KAAK,CAAE,CAAC;IAC5D,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,QAAQ,CAAC,OAAoB,EAAE,SAAiB,EAAE,KAAc,EAAE,oBAA2B;IACpG,OAAO,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AACrG,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,GAAuB,EAAE,MAAe,EAAE,WAAoB;IAKlG,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,IAAI,WAAW;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACnE,IAAI,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAC9D,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,OAAO,GAAG,aAAa,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACrE,IAAI,CAAC,OAAO,CAAC,OAAO;QAAE,MAAM,IAAI,sBAAsB,CAAC,GAAG,CAAC,CAAC;IAC5D,IAAI,WAAW,IAAI,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IACxF,MAAM,cAAc,GAAG,WAAW,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC7G,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,IAAI,EAAE,CAAC;QACpE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChG,MAAM,MAAM,GAAG,YAAY,CAAC,cAAc,CAAE,CAAC;QAC7C,MAAM,SAAS,GAAG,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC9D,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACxD,OAAO,EAAC,OAAO,EAAC,aAAa,EAAC,OAAO,EAAC,EAAC,GAAG,OAAO,CAAC,IAAI,EAAC,GAAG,MAAM,EAAC,EAAC,SAAS,EAAC,CAAC;IAC/E,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC;IAC/C,IAAI,MAAM,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CACrC,cAAc,aAAa,CAAC,SAAS,aAAa,aAAa,CAAC,QAAQ,OAAO,aAAa,CAAC,SAAS,qBAAqB;YAC3H,CAAC,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,+CAA+C,CAAC,CAC3F,CAAC;IACF,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,OAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;IACrH,IAAI,CAAC,WAAW;QAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtE,MAAM,SAAS,GAAG,aAAa,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IACzD,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,kBAAkB,CAAC,CAAC;IAC7D,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC;AACtE,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,IAAY,EAAE,SAAiB;IACtD,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC;QAAC,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;IAAC,CAAC;IACxC,OAAO,KAAK,EAAE,CAAC;QAAC,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QAAC,MAAM,KAAK,CAAC;IAAC,CAAC;IACxG,IAAI,KAAsC,CAAC;IAC3C,IAAI,CAAC;QAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAwB,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,+CAA+C,CAAC,CAAC;IACzL,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,MAAM,WAAW,GAAI,KAAK,CAAC,OAAmD,EAAE,aAAa,CAAC;QAC9F,IAAI,OAAO,KAAK,CAAC,aAAa,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC;eAC/E,OAAO,WAAW,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;YACnE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS;eACzE,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC;YAClG,OAAO,KAAmB,CAAC;IAC/B,CAAC;IACD,MAAM,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC3C,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,IAAY,EAAE,QAAiB;IACjE,MAAM,KAAK,GAAG,QAAQ,IAAI,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,GAAG,IAAI,YAAY,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC;IACzG,IAAI,CAAC;QAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YAAE,OAAO;IAAC,CAAC;IAC3D,OAAO,KAAK,EAAE,CAAC;QAAC,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,KAAK,CAAC;IAAC,CAAC;IACtF,MAAM,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACxC,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,IAAY,EAAE,KAAc;IAC1D,MAAM,gBAAgB,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACtE,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,IAAY,EAAE,OAA4B;IACxE,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAG,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,IAAI,UAAU,EAAE,MAAM,CAAC;IAC/D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAClD,IAAI,CAAC;YAAC,MAAM,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAAC,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QAAC,CAAC;gBACrD,CAAC;YAAC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QAAC,CAAC;QACjC,MAAM,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC9B,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YACjC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;YACjD,IAAI,CAAC;gBAAC,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;YAAC,CAAC;oBAAS,CAAC;gBAAC,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;YAAC,CAAC;QACtE,CAAC;IACH,CAAC;YAAS,CAAC;QAAC,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAAC,CAAC;AACrD,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa;IACvC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IAC3B,MAAM,KAAK,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAChF,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC;QACxG,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC"}
@@ -0,0 +1,65 @@
1
+ export interface PersistentJob {
2
+ id: string;
3
+ size: number;
4
+ transferred: number;
5
+ status: 'queued' | 'running' | 'pausing' | 'paused' | 'cancelling' | 'cancelled' | 'completed' | 'failed';
6
+ createdAt: string;
7
+ updatedAt: string;
8
+ error?: string;
9
+ }
10
+ export interface BaseContext {
11
+ signal: AbortSignal;
12
+ save(): Promise<void>;
13
+ progress(bytes: number): void;
14
+ }
15
+ export interface QueueWorker<J, C> {
16
+ run(job: J, context: C): Promise<void>;
17
+ cancel(job: J, context: C): Promise<void>;
18
+ }
19
+ export interface PersistentQueueOptions<J extends PersistentJob, C extends BaseContext> {
20
+ directory: string;
21
+ worker: QueueWorker<J, C>;
22
+ maxConcurrent?: number;
23
+ stateSchema: {
24
+ parse(value: unknown): {
25
+ version: 1;
26
+ jobs: J[];
27
+ };
28
+ };
29
+ validate(job: J): void;
30
+ conflicts(a: J, b: J): boolean;
31
+ context(job: J, base: BaseContext): C;
32
+ view(job: J): PersistentJob & Record<string, unknown>;
33
+ safeError(error: unknown): string;
34
+ committed?(job: J): void;
35
+ }
36
+ type Action = 'pause' | 'resume' | 'cancel';
37
+ export declare class PersistentTransferQueue<J extends PersistentJob, C extends BaseContext> {
38
+ private options;
39
+ protected jobs: J[];
40
+ private readonly active;
41
+ private readonly actions;
42
+ private saving;
43
+ private closing;
44
+ private closed?;
45
+ private lock?;
46
+ private worker;
47
+ private maximum;
48
+ private storageError;
49
+ constructor(options: PersistentQueueOptions<J, C>);
50
+ initialize(): Promise<void>;
51
+ list(): (PersistentJob & Record<string, unknown> & {
52
+ bytesPerSecond: number;
53
+ })[];
54
+ enqueue(additions: J[]): Promise<(PersistentJob & Record<string, unknown> & {
55
+ bytesPerSecond: number;
56
+ })[]>;
57
+ private context;
58
+ private schedule;
59
+ action(id: string, action: Action): Promise<void>;
60
+ private performAction;
61
+ private save;
62
+ close(): Promise<void>;
63
+ private unlock;
64
+ }
65
+ export {};
@@ -0,0 +1,312 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ import { constants } from 'node:fs';
3
+ import { lstat, mkdir, open, readFile, rename, rm, chmod } from 'node:fs/promises';
4
+ import { join } from 'node:path';
5
+ import { OssError } from '../oss/errors.js';
6
+ export class PersistentTransferQueue {
7
+ options;
8
+ jobs = [];
9
+ active = new Map();
10
+ actions = new Map();
11
+ saving = Promise.resolve();
12
+ closing = false;
13
+ closed;
14
+ lock;
15
+ worker;
16
+ maximum;
17
+ storageError = false;
18
+ constructor(options) {
19
+ this.options = options;
20
+ this.worker = options.worker;
21
+ this.maximum = options.maxConcurrent ?? 3;
22
+ if (!Number.isInteger(this.maximum) || this.maximum < 1 || this.maximum > 10)
23
+ throw new OssError('Invalid concurrency', 'oss_input_invalid', 400);
24
+ }
25
+ async initialize() {
26
+ const directory = this.options.directory;
27
+ await mkdir(directory, { recursive: true, mode: 0o700 });
28
+ const info = await lstat(directory);
29
+ if (!info.isDirectory() || info.isSymbolicLink())
30
+ throw new OssError('任务目录无效。', 'oss_transfer_storage_invalid');
31
+ await chmod(directory, 0o700);
32
+ const path = join(directory, 'queue.lock');
33
+ try {
34
+ this.lock = await open(path, 'wx', 0o600);
35
+ }
36
+ catch (error) {
37
+ if (error.code !== 'EEXIST')
38
+ throw error;
39
+ // Serialize stale-PID recovery: comparing an inode before unlink is not
40
+ // sufficient when two new servers start at the same time.
41
+ const recoveryPath = join(directory, 'queue.recovery.lock');
42
+ const recovery = await open(recoveryPath, 'wx', 0o600).catch(() => { throw new OssError('任务队列正在恢复,或上次恢复被中断;请检查本机任务目录。', 'oss_transfer_queue_busy', 409); });
43
+ try {
44
+ const existing = await open(path, constants.O_RDONLY | constants.O_NOFOLLOW);
45
+ let identity;
46
+ try {
47
+ identity = await existing.stat();
48
+ if (!identity.isFile() || identity.size > 100)
49
+ throw new Error('invalid lock');
50
+ const pid = Number((await existing.readFile('utf8')).trim());
51
+ if (!Number.isSafeInteger(pid) || pid <= 0)
52
+ throw new OssError('任务目录锁无效,请检查本机任务目录。', 'oss_transfer_storage_invalid');
53
+ let alive = true;
54
+ try {
55
+ process.kill(pid, 0);
56
+ }
57
+ catch (e) {
58
+ if (e.code === 'ESRCH')
59
+ alive = false;
60
+ }
61
+ if (alive)
62
+ throw new OssError(`另一个文件传输服务(PID ${pid})正在使用此账号的任务队列。`, 'oss_transfer_queue_busy', 409);
63
+ }
64
+ finally {
65
+ await existing.close();
66
+ }
67
+ const current = await lstat(path);
68
+ if (current.dev !== identity.dev || current.ino !== identity.ino)
69
+ throw new OssError('任务队列已被占用。', 'oss_transfer_queue_busy', 409);
70
+ await rm(path);
71
+ this.lock = await open(path, 'wx', 0o600);
72
+ }
73
+ finally {
74
+ await recovery.close();
75
+ await rm(recoveryPath, { force: true });
76
+ }
77
+ }
78
+ try {
79
+ await this.lock.writeFile(String(process.pid));
80
+ await this.lock.sync();
81
+ const statePath = join(directory, 'tasks.json');
82
+ const info = await lstat(statePath).catch(e => { if (e.code === 'ENOENT')
83
+ return undefined; throw e; });
84
+ if (info) {
85
+ if (!info.isFile() || info.isSymbolicLink() || info.size > 16 * 1024 * 1024)
86
+ throw new Error('invalid state file');
87
+ const state = this.options.stateSchema.parse(JSON.parse(await readFile(statePath, 'utf8')));
88
+ const seen = new Set();
89
+ for (const job of state.jobs) {
90
+ this.options.validate(job);
91
+ if (seen.has(job.id))
92
+ throw new Error('duplicate job');
93
+ seen.add(job.id);
94
+ if (['queued', 'running', 'pausing', 'cancelling'].includes(job.status))
95
+ job.status = 'paused';
96
+ }
97
+ this.jobs = state.jobs;
98
+ }
99
+ await this.save();
100
+ }
101
+ catch (error) {
102
+ await this.unlock();
103
+ if (error instanceof OssError)
104
+ throw error;
105
+ throw new OssError('本机任务记录无法读取或写入;请检查任务目录。', 'oss_transfer_storage_invalid');
106
+ }
107
+ }
108
+ list() {
109
+ return this.jobs.map(job => {
110
+ const active = this.active.get(job.id);
111
+ const bytesPerSecond = active && job.status === 'running' ? Math.max(0, (job.transferred - active.initial) / Math.max(1, (Date.now() - active.started) / 1000)) : 0;
112
+ return { ...this.options.view(job), bytesPerSecond };
113
+ });
114
+ }
115
+ async enqueue(additions) {
116
+ if (this.closing || this.storageError)
117
+ throw new OssError('任务队列不可用。', 'oss_transfer_storage_invalid');
118
+ const pending = this.jobs.filter(j => !['completed', 'cancelled'].includes(j.status));
119
+ if (!additions.length || pending.length + additions.length > 10000)
120
+ throw new OssError('未完成任务数量已达上限。', 'oss_transfer_limit', 400);
121
+ for (const job of additions) {
122
+ this.options.validate(job);
123
+ if (pending.some(other => this.options.conflicts(other, job)))
124
+ throw new OssError('同一路径已有未完成任务。', 'oss_transfer_duplicate', 409);
125
+ pending.push(job);
126
+ }
127
+ let excess = this.jobs.length + additions.length - 10000;
128
+ this.jobs = this.jobs.filter(job => { if (excess > 0 && ['completed', 'cancelled'].includes(job.status)) {
129
+ excess--;
130
+ return false;
131
+ } return true; });
132
+ this.jobs.push(...additions);
133
+ await this.save();
134
+ this.schedule();
135
+ const ids = new Set(additions.map(j => j.id));
136
+ return this.list().filter(j => ids.has(j.id));
137
+ }
138
+ context(job, controller) {
139
+ return this.options.context(job, { signal: controller.signal, save: () => this.save(), progress: bytes => {
140
+ if (Number.isFinite(bytes)) {
141
+ job.transferred = Math.max(0, Math.min(job.size, bytes));
142
+ job.updatedAt = new Date().toISOString();
143
+ }
144
+ } });
145
+ }
146
+ schedule() {
147
+ if (this.closing || this.storageError)
148
+ return;
149
+ for (const job of this.jobs) {
150
+ if (this.active.size >= this.maximum)
151
+ break;
152
+ if (job.status !== 'queued')
153
+ continue;
154
+ const controller = new AbortController();
155
+ job.status = 'running';
156
+ delete job.error;
157
+ const active = { controller, done: Promise.resolve(), started: Date.now(), initial: job.transferred };
158
+ this.active.set(job.id, active);
159
+ active.done = (async () => {
160
+ try {
161
+ await this.save();
162
+ await this.worker.run(job, this.context(job, controller));
163
+ // A committed object/file cannot be undone by a late pause or cancellation.
164
+ job.status = 'completed';
165
+ job.transferred = job.size;
166
+ this.options.committed?.(job);
167
+ }
168
+ catch (error) {
169
+ if (controller.signal.aborted)
170
+ job.status = 'paused';
171
+ else {
172
+ job.status = 'failed';
173
+ job.error = this.options.safeError(error);
174
+ }
175
+ }
176
+ finally {
177
+ job.updatedAt = new Date().toISOString();
178
+ try {
179
+ await this.save();
180
+ }
181
+ catch {
182
+ this.storageError = true;
183
+ }
184
+ this.active.delete(job.id);
185
+ this.schedule();
186
+ }
187
+ })();
188
+ }
189
+ }
190
+ action(id, action) {
191
+ const previous = this.actions.get(id) ?? Promise.resolve();
192
+ const next = previous.catch(() => { }).then(() => this.performAction(id, action));
193
+ this.actions.set(id, next);
194
+ void next.finally(() => { if (this.actions.get(id) === next)
195
+ this.actions.delete(id); }).catch(() => { });
196
+ return next;
197
+ }
198
+ async performAction(id, action) {
199
+ if (this.closing)
200
+ throw new OssError('任务服务正在关闭。', 'oss_transfer_storage_invalid');
201
+ const job = this.jobs.find(j => j.id === id);
202
+ if (!job)
203
+ throw new OssError('任务不存在。', 'oss_input_invalid', 404);
204
+ if (['completed', 'cancelled'].includes(job.status))
205
+ return;
206
+ if (action === 'resume') {
207
+ if (!['paused', 'failed'].includes(job.status))
208
+ return;
209
+ if (this.storageError)
210
+ throw new OssError('任务记录写入失败。', 'oss_transfer_storage_invalid');
211
+ job.status = 'queued';
212
+ delete job.error;
213
+ await this.save();
214
+ this.schedule();
215
+ return;
216
+ }
217
+ const active = this.active.get(id);
218
+ job.status = action === 'pause' ? 'pausing' : 'cancelling';
219
+ active?.controller.abort();
220
+ if (active)
221
+ await active.done;
222
+ if (job.status === 'completed')
223
+ return;
224
+ if (action === 'cancel') {
225
+ try {
226
+ await this.worker.cancel(job, this.context(job, new AbortController()));
227
+ if (job.status !== 'completed')
228
+ job.status = 'cancelled';
229
+ this.options.committed?.(job);
230
+ delete job.error;
231
+ }
232
+ catch (error) {
233
+ job.status = 'failed';
234
+ job.error = this.options.safeError(error);
235
+ }
236
+ }
237
+ else
238
+ job.status = 'paused';
239
+ job.updatedAt = new Date().toISOString();
240
+ await this.save();
241
+ }
242
+ save() {
243
+ const write = this.saving.catch(() => { }).then(async () => {
244
+ const data = JSON.stringify(this.options.stateSchema.parse({ version: 1, jobs: this.jobs }));
245
+ if (Buffer.byteLength(data) > 16 * 1024 * 1024)
246
+ throw new Error('state too large');
247
+ const temporary = join(this.options.directory, `.tasks-${randomUUID()}.tmp`);
248
+ const file = await open(temporary, 'wx', 0o600);
249
+ try {
250
+ await file.writeFile(data);
251
+ await file.sync();
252
+ await file.close();
253
+ await rename(temporary, join(this.options.directory, 'tasks.json'));
254
+ // Persist the rename as well as the JSON bytes before acknowledging a checkpoint.
255
+ let parent;
256
+ try {
257
+ parent = await open(this.options.directory, constants.O_RDONLY);
258
+ await parent.sync();
259
+ }
260
+ catch (error) {
261
+ if (process.platform !== 'win32' || !['EPERM', 'EISDIR', 'EINVAL', 'ENOTSUP'].includes(error.code ?? ''))
262
+ throw error;
263
+ }
264
+ finally {
265
+ await parent?.close();
266
+ }
267
+ }
268
+ finally {
269
+ await file.close().catch(() => { });
270
+ await rm(temporary, { force: true }).catch(() => { });
271
+ }
272
+ });
273
+ this.saving = write;
274
+ return write;
275
+ }
276
+ close() {
277
+ if (this.closed)
278
+ return this.closed;
279
+ this.closing = true;
280
+ this.closed = (async () => {
281
+ try {
282
+ for (const job of this.jobs)
283
+ if (job.status === 'queued')
284
+ job.status = 'paused';
285
+ for (const active of this.active.values())
286
+ active.controller.abort();
287
+ await Promise.allSettled([...this.active.values()].map(a => a.done));
288
+ await Promise.allSettled([...this.actions.values()]);
289
+ await this.save();
290
+ }
291
+ finally {
292
+ await this.unlock();
293
+ }
294
+ })();
295
+ return this.closed;
296
+ }
297
+ async unlock() {
298
+ if (!this.lock)
299
+ return;
300
+ const lock = this.lock;
301
+ this.lock = undefined;
302
+ try {
303
+ const owned = await lock.stat(), current = await lstat(join(this.options.directory, 'queue.lock'));
304
+ if (owned.ino === current.ino && owned.dev === current.dev)
305
+ await rm(join(this.options.directory, 'queue.lock'));
306
+ }
307
+ finally {
308
+ await lock.close();
309
+ }
310
+ }
311
+ }
312
+ //# sourceMappingURL=persistent-queue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persistent-queue.js","sourceRoot":"","sources":["../../src/transfers/persistent-queue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACnF,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAY5C,MAAM,OAAO,uBAAuB;IAWd,OAAO;IAVjB,IAAI,GAAO,EAAE,CAAC;IACP,MAAM,GAAG,IAAI,GAAG,EAAwF,CAAC;IACzG,OAAO,GAAG,IAAI,GAAG,EAAwB,CAAC;IACnD,MAAM,GAAiB,OAAO,CAAC,OAAO,EAAE,CAAC;IACzC,OAAO,GAAG,KAAK,CAAC;IAChB,MAAM,CAAgB;IACtB,IAAI,CAAmC;IACvC,MAAM,CAAkB;IACxB,OAAO,CAAQ;IACf,YAAY,GAAG,KAAK,CAAC;IAC7B,YAAoB,OAAmC;uBAAnC,OAAO;QACzB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAAC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,aAAa,IAAI,CAAC,CAAC;QACxE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,GAAG,EAAE;YAAE,MAAM,IAAI,QAAQ,CAAC,qBAAqB,EAAE,mBAAmB,EAAC,GAAG,CAAC,CAAC;IACnJ,CAAC;IACD,KAAK,CAAC,UAAU;QACd,MAAM,SAAS,GAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACvC,MAAM,KAAK,CAAC,SAAS,EAAC,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,CAAC,CAAC;QACnD,MAAM,IAAI,GAAC,MAAM,KAAK,CAAC,SAAS,CAAC,CAAC;QAAA,IAAG,CAAC,IAAI,CAAC,WAAW,EAAE,IAAE,IAAI,CAAC,cAAc,EAAE;YAAC,MAAM,IAAI,QAAQ,CAAC,SAAS,EAAC,8BAA8B,CAAC,CAAC;QAC7I,MAAM,KAAK,CAAC,SAAS,EAAC,KAAK,CAAC,CAAC;QAC7B,MAAM,IAAI,GAAC,IAAI,CAAC,SAAS,EAAC,YAAY,CAAC,CAAC;QACxC,IAAI,CAAC;YAAC,IAAI,CAAC,IAAI,GAAC,MAAM,IAAI,CAAC,IAAI,EAAC,IAAI,EAAC,KAAK,CAAC,CAAC;QAAC,CAAC;QAC9C,OAAM,KAAK,EAAE,CAAC;YACZ,IAAK,KAA+B,CAAC,IAAI,KAAG,QAAQ;gBAAE,MAAM,KAAK,CAAC;YAClE,wEAAwE;YACxE,0DAA0D;YAC1D,MAAM,YAAY,GAAC,IAAI,CAAC,SAAS,EAAC,qBAAqB,CAAC,CAAC;YACzD,MAAM,QAAQ,GAAC,MAAM,IAAI,CAAC,YAAY,EAAC,IAAI,EAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAE,EAAE,GAAC,MAAM,IAAI,QAAQ,CAAC,8BAA8B,EAAC,yBAAyB,EAAC,GAAG,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC;YAClJ,IAAI,CAAC;gBACL,MAAM,QAAQ,GAAC,MAAM,IAAI,CAAC,IAAI,EAAC,SAAS,CAAC,QAAQ,GAAC,SAAS,CAAC,UAAU,CAAC,CAAC;gBACxE,IAAI,QAAQ,CAAC;gBACb,IAAI,CAAC;oBACH,QAAQ,GAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;oBAAA,IAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAE,QAAQ,CAAC,IAAI,GAAC,GAAG;wBAAC,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;oBACxG,MAAM,GAAG,GAAC,MAAM,CAAC,CAAC,MAAM,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;oBAC3D,IAAG,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,IAAE,GAAG,IAAE,CAAC;wBAAC,MAAM,IAAI,QAAQ,CAAC,oBAAoB,EAAC,8BAA8B,CAAC,CAAC;oBAC9G,IAAI,KAAK,GAAC,IAAI,CAAC;oBAAA,IAAG,CAAC;wBAAA,OAAO,CAAC,IAAI,CAAC,GAAG,EAAC,CAAC,CAAC,CAAC;oBAAA,CAAC;oBAAA,OAAM,CAAC,EAAC,CAAC;wBAAA,IAAI,CAA2B,CAAC,IAAI,KAAG,OAAO;4BAAC,KAAK,GAAC,KAAK,CAAC;oBAAA,CAAC;oBAC7G,IAAG,KAAK;wBAAC,MAAM,IAAI,QAAQ,CAAC,iBAAiB,GAAG,gBAAgB,EAAC,yBAAyB,EAAC,GAAG,CAAC,CAAC;gBAClG,CAAC;wBAAS,CAAC;oBAAC,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;gBAAC,CAAC;gBACrC,MAAM,OAAO,GAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;gBAAA,IAAG,OAAO,CAAC,GAAG,KAAG,QAAQ,CAAC,GAAG,IAAE,OAAO,CAAC,GAAG,KAAG,QAAQ,CAAC,GAAG;oBAAC,MAAM,IAAI,QAAQ,CAAC,WAAW,EAAC,yBAAyB,EAAC,GAAG,CAAC,CAAC;gBACxJ,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC;gBAAA,IAAI,CAAC,IAAI,GAAC,MAAM,IAAI,CAAC,IAAI,EAAC,IAAI,EAAC,KAAK,CAAC,CAAC;YACrD,CAAC;oBAAS,CAAC;gBAAA,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;gBAAA,MAAM,EAAE,CAAC,YAAY,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,CAAC,CAAC;YAAA,CAAC;QACzE,CAAC;QACD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YAAA,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACtE,MAAM,SAAS,GAAC,IAAI,CAAC,SAAS,EAAC,YAAY,CAAC,CAAC;YAC7C,MAAM,IAAI,GAAC,MAAM,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA,EAAE,GAAC,IAAG,CAAC,CAAC,IAAI,KAAG,QAAQ;gBAAC,OAAO,SAAS,CAAC,CAAA,MAAM,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC;YAC7F,IAAG,IAAI,EAAE,CAAC;gBACR,IAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAE,IAAI,CAAC,cAAc,EAAE,IAAE,IAAI,CAAC,IAAI,GAAC,EAAE,GAAC,IAAI,GAAC,IAAI;oBAAC,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;gBACvG,MAAM,KAAK,GAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,SAAS,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACzF,MAAM,IAAI,GAAC,IAAI,GAAG,EAAU,CAAC;gBAC7B,KAAI,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;oBAC5B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;oBAC3B,IAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;wBAAC,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;oBACrD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBACjB,IAAG,CAAC,QAAQ,EAAC,SAAS,EAAC,SAAS,EAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;wBAAC,GAAG,CAAC,MAAM,GAAC,QAAQ,CAAC;gBAC1F,CAAC;gBACD,IAAI,CAAC,IAAI,GAAC,KAAK,CAAC,IAAI,CAAC;YACvB,CAAC;YACD,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QACpB,CAAC;QAAC,OAAM,KAAK,EAAE,CAAC;YACd,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;YACpB,IAAG,KAAK,YAAY,QAAQ;gBAAC,MAAM,KAAK,CAAC;YACzC,MAAM,IAAI,QAAQ,CAAC,wBAAwB,EAAC,8BAA8B,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IACD,IAAI;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAA,EAAE;YACxB,MAAM,MAAM,GAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACrC,MAAM,cAAc,GAAC,MAAM,IAAE,GAAG,CAAC,MAAM,KAAG,SAAS,CAAA,CAAC,CAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAC,CAAC,GAAG,CAAC,WAAW,GAAC,MAAM,CAAC,OAAO,CAAC,GAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAC,MAAM,CAAC,OAAO,CAAC,GAAC,IAAI,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC;YAChJ,OAAO,EAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAC,cAAc,EAAC,CAAC;QACpD,CAAC,CAAC,CAAC;IACL,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,SAAa;QACzB,IAAG,IAAI,CAAC,OAAO,IAAE,IAAI,CAAC,YAAY;YAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAC,8BAA8B,CAAC,CAAC;QACjG,MAAM,OAAO,GAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,WAAW,EAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QACjF,IAAG,CAAC,SAAS,CAAC,MAAM,IAAE,OAAO,CAAC,MAAM,GAAC,SAAS,CAAC,MAAM,GAAC,KAAK;YAAC,MAAM,IAAI,QAAQ,CAAC,cAAc,EAAC,oBAAoB,EAAC,GAAG,CAAC,CAAC;QACxH,KAAI,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC3B,IAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAA,EAAE,CAAA,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,EAAC,GAAG,CAAC,CAAC;gBAAC,MAAM,IAAI,QAAQ,CAAC,cAAc,EAAC,wBAAwB,EAAC,GAAG,CAAC,CAAC;YAC1H,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;QACD,IAAI,MAAM,GAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAC,SAAS,CAAC,MAAM,GAAC,KAAK,CAAC;QACnD,IAAI,CAAC,IAAI,GAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAA,EAAE,GAAC,IAAG,MAAM,GAAC,CAAC,IAAE,CAAC,WAAW,EAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAC,CAAC;YAAA,MAAM,EAAE,CAAC;YAAA,OAAO,KAAK,CAAC;QAAA,CAAC,CAAA,OAAO,IAAI,CAAC,CAAA,CAAC,CAAC,CAAC;QACpI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;QAAA,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAAA,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC/D,MAAM,GAAG,GAAC,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA,EAAE,CAAA,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAY,CAAC,CAAC,CAAC;IAClG,CAAC;IACO,OAAO,CAAC,GAAK,EAAC,UAA0B;QAC9C,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAC,EAAC,MAAM,EAAC,UAAU,CAAC,MAAM,EAAC,IAAI,EAAC,GAAE,EAAE,CAAA,IAAI,CAAC,IAAI,EAAE,EAAC,QAAQ,EAAC,KAAK,CAAA,EAAE;gBAC7F,IAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAC,CAAC;oBAAA,GAAG,CAAC,WAAW,GAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAC,KAAK,CAAC,CAAC,CAAC;oBAAA,GAAG,CAAC,SAAS,GAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBAAA,CAAC;YAC1H,CAAC,EAAC,CAAC,CAAC;IACN,CAAC;IAEO,QAAQ;QACd,IAAG,IAAI,CAAC,OAAO,IAAE,IAAI,CAAC,YAAY;YAAC,OAAO;QAC1C,KAAI,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC3B,IAAG,IAAI,CAAC,MAAM,CAAC,IAAI,IAAE,IAAI,CAAC,OAAO;gBAAC,MAAM;YACxC,IAAG,GAAG,CAAC,MAAM,KAAG,QAAQ;gBAAC,SAAS;YAClC,MAAM,UAAU,GAAC,IAAI,eAAe,EAAE,CAAC;YAAA,GAAG,CAAC,MAAM,GAAC,SAAS,CAAC;YAAA,OAAO,GAAG,CAAC,KAAK,CAAC;YAC7E,MAAM,MAAM,GAAC,EAAC,UAAU,EAAC,IAAI,EAAC,OAAO,CAAC,OAAO,EAAE,EAAC,OAAO,EAAC,IAAI,CAAC,GAAG,EAAE,EAAC,OAAO,EAAC,GAAG,CAAC,WAAW,EAAC,CAAC;YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAC,MAAM,CAAC,CAAC;YAC3H,MAAM,CAAC,IAAI,GAAC,CAAC,KAAK,IAAE,EAAE;gBACpB,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;oBAAA,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAC,UAAU,CAAC,CAAC,CAAC;oBAC1E,4EAA4E;oBAC5E,GAAG,CAAC,MAAM,GAAC,WAAW,CAAC;oBAAA,GAAG,CAAC,WAAW,GAAC,GAAG,CAAC,IAAI,CAAC;oBAAA,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC;gBAChF,CAAC;gBAAC,OAAM,KAAK,EAAE,CAAC;oBACd,IAAG,UAAU,CAAC,MAAM,CAAC,OAAO;wBAAC,GAAG,CAAC,MAAM,GAAC,QAAQ,CAAC;yBAAI,CAAC;wBAAA,GAAG,CAAC,MAAM,GAAC,QAAQ,CAAC;wBAAA,GAAG,CAAC,KAAK,GAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;oBAAA,CAAC;gBACrH,CAAC;wBAAS,CAAC;oBACT,GAAG,CAAC,SAAS,GAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;oBACvC,IAAG,CAAC;wBAAA,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;oBAAA,CAAC;oBAAA,MAAK,CAAC;wBAAA,IAAI,CAAC,YAAY,GAAC,IAAI,CAAC;oBAAA,CAAC;oBACrD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAAA,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC7C,CAAC;YACH,CAAC,CAAC,EAAE,CAAC;QACP,CAAC;IACH,CAAC;IACD,MAAM,CAAC,EAAS,EAAC,MAAa;QAC5B,MAAM,QAAQ,GAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAE,OAAO,CAAC,OAAO,EAAE,CAAC;QACvD,MAAM,IAAI,GAAC,QAAQ,CAAC,KAAK,CAAC,GAAE,EAAE,GAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAE,EAAE,CAAA,IAAI,CAAC,aAAa,CAAC,EAAE,EAAC,MAAM,CAAC,CAAC,CAAC;QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAC,IAAI,CAAC,CAAC;QACpG,KAAK,IAAI,CAAC,OAAO,CAAC,GAAE,EAAE,GAAC,IAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAG,IAAI;YAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC,KAAK,CAAC,GAAE,EAAE,GAAC,CAAC,CAAC,CAAC;QAAA,OAAO,IAAI,CAAC;IAC7G,CAAC;IACO,KAAK,CAAC,aAAa,CAAC,EAAS,EAAC,MAAa;QACjD,IAAG,IAAI,CAAC,OAAO;YAAC,MAAM,IAAI,QAAQ,CAAC,WAAW,EAAC,8BAA8B,CAAC,CAAC;QAC/E,MAAM,GAAG,GAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,EAAE,KAAG,EAAE,CAAC,CAAC;QAAA,IAAG,CAAC,GAAG;YAAC,MAAM,IAAI,QAAQ,CAAC,QAAQ,EAAC,mBAAmB,EAAC,GAAG,CAAC,CAAC;QACpG,IAAG,CAAC,WAAW,EAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;YAAC,OAAO;QACzD,IAAG,MAAM,KAAG,QAAQ,EAAE,CAAC;YACrB,IAAG,CAAC,CAAC,QAAQ,EAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;gBAAC,OAAO;YACpD,IAAG,IAAI,CAAC,YAAY;gBAAC,MAAM,IAAI,QAAQ,CAAC,WAAW,EAAC,8BAA8B,CAAC,CAAC;YACpF,GAAG,CAAC,MAAM,GAAC,QAAQ,CAAC;YAAA,OAAO,GAAG,CAAC,KAAK,CAAC;YAAA,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAAA,IAAI,CAAC,QAAQ,EAAE,CAAC;YAAA,OAAO;QAChF,CAAC;QACD,MAAM,MAAM,GAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjC,GAAG,CAAC,MAAM,GAAC,MAAM,KAAG,OAAO,CAAA,CAAC,CAAA,SAAS,CAAA,CAAC,CAAA,YAAY,CAAC;QAAA,MAAM,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC;QAC9E,IAAG,MAAM;YAAC,MAAM,MAAM,CAAC,IAAI,CAAC;QAC5B,IAAI,GAAS,CAAC,MAAM,KAAG,WAAW;YAAC,OAAO;QAC1C,IAAG,MAAM,KAAG,QAAQ,EAAE,CAAC;YACrB,IAAG,CAAC;gBAAA,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAC,IAAI,eAAe,EAAE,CAAC,CAAC,CAAC;gBAAA,IAAI,GAAS,CAAC,MAAM,KAAG,WAAW;oBAAC,GAAG,CAAC,MAAM,GAAC,WAAW,CAAC;gBAAA,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC;gBAAA,OAAO,GAAG,CAAC,KAAK,CAAC;YAAA,CAAC;YACpL,OAAM,KAAK,EAAC,CAAC;gBAAA,GAAG,CAAC,MAAM,GAAC,QAAQ,CAAC;gBAAA,GAAG,CAAC,KAAK,GAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAAA,CAAC;QAC5E,CAAC;;YAAK,GAAG,CAAC,MAAM,GAAC,QAAQ,CAAC;QAC1B,GAAG,CAAC,SAAS,GAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAAA,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IAC3D,CAAC;IACO,IAAI;QACV,MAAM,KAAK,GAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAE,EAAE,GAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAE,EAAE;YAClD,MAAM,IAAI,GAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,EAAC,OAAO,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,CAAC,IAAI,EAAC,CAAC,CAAC,CAAC;YACtF,IAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAC,EAAE,GAAC,IAAI,GAAC,IAAI;gBAAC,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;YAC3E,MAAM,SAAS,GAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAC,UAAU,UAAU,EAAE,MAAM,CAAC,CAAC;YAC1E,MAAM,IAAI,GAAC,MAAM,IAAI,CAAC,SAAS,EAAC,IAAI,EAAC,KAAK,CAAC,CAAC;YAC5C,IAAG,CAAC;gBAAA,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAAA,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;gBAAA,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;gBAAA,MAAM,MAAM,CAAC,SAAS,EAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAC,YAAY,CAAC,CAAC,CAAC;gBACpI,kFAAkF;gBAClF,IAAI,MAAiD,CAAC;gBACtD,IAAG,CAAC;oBAAA,MAAM,GAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;oBAAA,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;gBAAA,CAAC;gBACtF,OAAM,KAAK,EAAC,CAAC;oBAAA,IAAG,OAAO,CAAC,QAAQ,KAAG,OAAO,IAAE,CAAC,CAAC,OAAO,EAAC,QAAQ,EAAC,QAAQ,EAAC,SAAS,CAAC,CAAC,QAAQ,CAAE,KAA+B,CAAC,IAAI,IAAE,EAAE,CAAC;wBAAC,MAAM,KAAK,CAAC;gBAAA,CAAC;wBAC7I,CAAC;oBAAA,MAAM,MAAM,EAAE,KAAK,EAAE,CAAC;gBAAA,CAAC;YACjC,CAAC;oBACM,CAAC;gBAAA,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAE,EAAE,GAAC,CAAC,CAAC,CAAC;gBAAA,MAAM,EAAE,CAAC,SAAS,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,CAAC,CAAC,KAAK,CAAC,GAAE,EAAE,GAAC,CAAC,CAAC,CAAC;YAAA,CAAC;QAC3F,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAC,KAAK,CAAC;QAAA,OAAO,KAAK,CAAC;IACjC,CAAC;IACD,KAAK;QACH,IAAG,IAAI,CAAC,MAAM;YAAC,OAAO,IAAI,CAAC,MAAM,CAAC;QAAA,IAAI,CAAC,OAAO,GAAC,IAAI,CAAC;QACpD,IAAI,CAAC,MAAM,GAAC,CAAC,KAAK,IAAE,EAAE;YACpB,IAAI,CAAC;gBACH,KAAI,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI;oBAAC,IAAG,GAAG,CAAC,MAAM,KAAG,QAAQ;wBAAC,GAAG,CAAC,MAAM,GAAC,QAAQ,CAAC;gBACxE,KAAI,MAAM,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;oBAAC,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;gBACnE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBACnE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gBAAA,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YACzE,CAAC;oBAAO,CAAC;gBAAA,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;YAAA,CAAC;QAChC,CAAC,CAAC,EAAE,CAAC;QAAA,OAAO,IAAI,CAAC,MAAM,CAAC;IAC1B,CAAC;IACO,KAAK,CAAC,MAAM;QAClB,IAAG,CAAC,IAAI,CAAC,IAAI;YAAC,OAAO;QACrB,MAAM,IAAI,GAAC,IAAI,CAAC,IAAI,CAAC;QAAA,IAAI,CAAC,IAAI,GAAC,SAAS,CAAC;QACzC,IAAI,CAAC;YAAA,MAAM,KAAK,GAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAC,OAAO,GAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAC,YAAY,CAAC,CAAC,CAAC;YAChG,IAAG,KAAK,CAAC,GAAG,KAAG,OAAO,CAAC,GAAG,IAAE,KAAK,CAAC,GAAG,KAAG,OAAO,CAAC,GAAG;gBAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAC,YAAY,CAAC,CAAC,CAAC;QAC1G,CAAC;gBAAO,CAAC;YAAA,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QAAA,CAAC;IAC/B,CAAC;CACF"}
@@ -0,0 +1,36 @@
1
+ # KB 核心能力到 CLI / Skill 的接入
2
+
3
+ 目标:核对 KB 系统现有主要能力,补齐 CLI 和统一 `numa-kb` Skill,验证后发布。
4
+ 依据:KB `backend/external/agent_routes.py`、`backend/routes/knowledge_base.py`、
5
+ `backend/knowledge_base/{schemas,agent_search,search}.py`,以及前端调用契约。
6
+
7
+ ## 能力与交付范围
8
+
9
+ | 能力 | 后端现状 | CLI / Skill 工作 |
10
+ | --- | --- | --- |
11
+ | 多库检索 | Agent search 已接收 collection_ids,最多 20 个;统一召回及重排序 | 单库兼容;多库、全部可见库、文档限定和业务范围;结果保留来源与部分失败信息 |
12
+ | 租户隔离 | /auth/tenants + X-KB-Tenant | 列表、显式 --tenant;环境与租户分开,缓存身份不能串用 |
13
+ | 知识库管理 | 列表、详情、创建、更新、删除、转移所有者、成员角色 | CLI 接入现有接口;显式目标与破坏性确认;后端决定权限 |
14
+ | 文档阅读 | 列表、详情/正文、分页切片与附件、原件下载 | 限定分页与可选正文,不默认拉取全量内容;下载继续复用票据传输 |
15
+ | 文档生命周期 | 更新元数据、删除、重建索引 | 接入并清楚说明真实影响;不把文件操作与 KB 内容操作混同 |
16
+ | 版本治理 | 历史、变更历史、带 expected_current_version_id 的切换 | 明确目标版本、预期当前版本、原因和确认;冲突不自动重试 |
17
+ | 上传与入库 | 上传预检、直传、重复文件/新版本、异步任务 | 补齐预检及显式版本决策,复用现有传输及持久恢复记录 |
18
+ | 任务管理 | batch 列表、进度、取消、重试、ingest-jobs | 补齐发现和取消;保留已有 Agent 任务查询兼容性 |
19
+ | 冲突治理 | conflict-reviews 列表与 resolve | 列出冲突,显式 action 与 scope,不替用户猜测业务决策 |
20
+ | RAG 问答 | 多库 SSE + 会话列表、创建、读取、删除 | 核对流协议后提供 CLI 问答/会话入口;Skill 能区分检索证据与生成回答 |
21
+ | 文件存储工作区 | 文件夹、OSS 对象、imports、references | 与知识库文档实体不同,已有 OSS / KB Web 负责字节传输;梳理关联,避免复制存储系统 |
22
+ | 缓存与运维 | cache stats/invalidate | 属于管理能力,不改变检索业务语义;记录现有支持范围 |
23
+
24
+ ## 验证与发布
25
+
26
+ - 从真实后端路由导出 OpenAPI 契约;新 CLI 请求需经过该契约验证。
27
+ - 检索测试必须验证多库为一次服务端调用,而不是在客户端混合不同评分。
28
+ - 验证 401/403、跨租户、缺失或歧义范围、超过 20 个库、部分失败、JSON 200 error。
29
+ - 读写都复用 KbClient 的身份、固定服务地址、响应脱敏与有界读取;写入未知不自动重试。
30
+ - 覆盖分页、版本 CAS、删除确认、异步任务状态、冲突决策及上传恢复。
31
+ - 更新 CLI 命令目录、帮助、文档和一个 numa-kb Skill;不保留多个发布包。
32
+ - CLI 按仓库 candidate → 验收 → latest 流程锁步发布。Skill 精确版本上传、扫描、
33
+ 发布申请及回读;独立审核限制如仍存在需如实报告。
34
+ - 后端如有改动,通过 Numa/Jenkins 按确认环境部署;记录构建、平台账本和运行态。
35
+
36
+ 本文件是工作范围与验收清单,不是已完成声明。
@@ -27,11 +27,11 @@
27
27
 
28
28
  ## 认证与地址
29
29
 
30
- 平台 profile 可声明 `services.kb`,由服务自己的 authority/audience 选择 Numa 已有 Keycloak 凭据。无 profile 时显式使用 `NUMA_KB_BASE_URL`;不把平台管理 API 地址推断为 KB 地址。有 profile 时不允许 env 把 KB 请求换到其他服务。API Key 由 `NUMA_KB_API_KEY` 或 `NUMA_KB_API_KEY_FILE` 提供(二者互斥);不进入命令参数、检查点、日志。
30
+ 平台 profile 可声明 `services.kb`,由服务自己的 authority/audience 选择 Numa 已有 Keycloak 凭据。无 profile 时显式使用 `NUMA_KB_BASE_URL`;不把平台管理 API 地址推断为 KB 地址。有 profile 时不允许 env 把 KB 请求换到其他服务。显式旧 Key 模式才读取 `NUMA_KB_API_KEY` 或 `NUMA_KB_API_KEY_FILE`(二者互斥);默认 JWT 模式忽略旧 Key 配置。凭据不进入 Skill、命令参数、检查点、日志。
31
31
 
32
- 独立服务登录使用 `numa login --service kb --no-console --no-config`;同一选项也用于 auth status/logout、profile,确保登录与请求使用同一 authority/audience 缓存。
32
+ 独立服务登录使用 `numa login --service kb --no-console --no-config`;同一选项也用于 auth status/logout、profile,确保登录与请求使用同一 authority/audience 缓存。默认采用 `services.kb.authority`;显式 `--issuer` 复用已有 `services.kb.issuerAuthorities` 白名单和解析器,KB 请求、登录及会话管理使用同一选项。未知别名拒绝;失败后的登录恢复命令保留所选别名,不新增身份路由或缓存机制。
33
33
 
34
- 默认 `NUMA_KB_AUTH_MODE=keycloak`:KB 控制请求携带当前 Numa Keycloak Bearer 与 X-Api-Key。明确配置 `api-key` 模式时只用 KB API Key,适合不要求 Keycloak 的部署;不得在鉴权失败后自动降级。HTTP 仅允许 loopback 测试地址,其他地址 HTTPS,禁止 URL 内嵌凭据、查询或 fragment。代理下载必须落在同一 KB 服务路径内才可附带身份;OSS 签名 URL 不带 KB/Keycloak 凭据,不跟随重定向。
34
+ 默认 `NUMA_KB_AUTH_MODE=keycloak`:KB 控制请求及同源代理上传/下载仅携带所选服务的 Numa Keycloak Bearer,不发送 X-Api-Key。明确配置 `api-key` 模式时只用旧 KB API Key,适合仍支持该协议的部署;不得发送双头或在鉴权失败后自动降级。Skill 直接调用 CLI,不增加 MCP 注册、独立登录体系或另一套服务选择逻辑。HTTP 仅允许 loopback 测试地址,其他地址 HTTPS,禁止 URL 内嵌凭据、查询或 fragment。代理下载必须落在同一 KB 服务路径内才可附带身份;OSS 签名 URL 不带 KB/Keycloak 凭据,不跟随重定向。
35
35
 
36
36
  ## API client 与契约
37
37
 
@@ -45,7 +45,7 @@
45
45
 
46
46
  扫描/计算 SHA256 与 Base64 MD5 → 保存私有 manifest → 创建/恢复会话 → 读取待传文件签名 → 并发 PUT → complete → submitted → 可选轮询解析。
47
47
 
48
- manifest 版本化,包含目标绑定、collectionId、本地绝对路径和内容摘要、按批固定 requestId、sessionId/batchId;不含 Token、API Key、签名 URL。文件 0600、父目录 0700、原子更新;持有互斥锁防止两个进程使用同一状态文件。恢复时重新验证文件内容和目标绑定,源变化拒绝;创建响应丢失时复用原 requestId。异常保留 state 路径;Ctrl-C 中止活动传输并保留恢复记录。已经 submitted 的会话不重新上传或创建任务。
48
+ manifest 版本化,包含目标绑定、collectionId、本地绝对路径和内容摘要、按批固定 requestId、sessionId/batchId;不含 Token、API Key、签名 URL。文件 0600、父目录 0700、原子更新;持有互斥锁防止两个进程使用同一状态文件。恢复时重新验证文件内容和目标绑定,源变化拒绝;创建响应丢失时复用原 requestId。JWT 绑定摘要不包含旧 Key,保留地址、认证模式、租户和 Issuer/Client/Audience;旧双头绑定不自动迁移。摘要不含登录用户 subject,KB 必须继续校验上传会话所有者,不能以本地摘要充当用户授权。异常保留 state 路径;Ctrl-C 中止活动传输并保留恢复记录。已经 submitted 的会话不重新上传或创建任务。
49
49
 
50
50
  PUT 过期/结果未知后先向 KB 查询并续签,已存在对象按服务端状态处理。本地读取期间检测变化;遵守票据 method/headers/size,校验错误不继续 complete。检查点表示传输进度,不替代服务端的 SHA256 验证。代理模式使用外部 `/api/v1/external/documents/batch-upload`,显式传 `conflict_policy=reject`,按批同 request_id 和原内容恢复,任务 ID 保存在相同 manifest。后端保留旧 detect/force_upload 默认和行为;reject 在有候选冲突时返回 409,不自动切换版本。旧后端不支持 reject 时明确失败,不降级 detect。
51
51