libre-webui 0.19.5 → 0.20.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 (140) hide show
  1. package/README.md +2 -2
  2. package/backend/dist/db.d.ts.map +1 -1
  3. package/backend/dist/db.js +29 -0
  4. package/backend/dist/db.js.map +1 -1
  5. package/backend/dist/index.d.ts.map +1 -1
  6. package/backend/dist/index.js +12 -10
  7. package/backend/dist/index.js.map +1 -1
  8. package/backend/dist/routes/work.d.ts.map +1 -1
  9. package/backend/dist/routes/work.js +138 -4
  10. package/backend/dist/routes/work.js.map +1 -1
  11. package/backend/dist/services/systemDiagnosticsService.d.ts +4 -3
  12. package/backend/dist/services/systemDiagnosticsService.d.ts.map +1 -1
  13. package/backend/dist/services/systemDiagnosticsService.js +35 -34
  14. package/backend/dist/services/systemDiagnosticsService.js.map +1 -1
  15. package/backend/dist/services/workAccessService.d.ts +15 -0
  16. package/backend/dist/services/workAccessService.d.ts.map +1 -0
  17. package/backend/dist/services/workAccessService.js +67 -0
  18. package/backend/dist/services/workAccessService.js.map +1 -0
  19. package/backend/dist/services/workAdminService.d.ts +67 -0
  20. package/backend/dist/services/workAdminService.d.ts.map +1 -0
  21. package/backend/dist/services/workAdminService.js +92 -0
  22. package/backend/dist/services/workAdminService.js.map +1 -0
  23. package/backend/dist/services/workKubernetesDriver.d.ts +74 -0
  24. package/backend/dist/services/workKubernetesDriver.d.ts.map +1 -0
  25. package/backend/dist/services/workKubernetesDriver.js +659 -0
  26. package/backend/dist/services/workKubernetesDriver.js.map +1 -0
  27. package/backend/dist/services/workPolicyService.d.ts +58 -0
  28. package/backend/dist/services/workPolicyService.d.ts.map +1 -0
  29. package/backend/dist/services/workPolicyService.js +249 -0
  30. package/backend/dist/services/workPolicyService.js.map +1 -0
  31. package/backend/dist/services/workPreviewProxyService.d.ts +7 -1
  32. package/backend/dist/services/workPreviewProxyService.d.ts.map +1 -1
  33. package/backend/dist/services/workPreviewProxyService.js +36 -8
  34. package/backend/dist/services/workPreviewProxyService.js.map +1 -1
  35. package/backend/dist/services/workRuntimeDriver.d.ts +166 -0
  36. package/backend/dist/services/workRuntimeDriver.d.ts.map +1 -0
  37. package/backend/dist/services/workRuntimeDriver.js +737 -0
  38. package/backend/dist/services/workRuntimeDriver.js.map +1 -0
  39. package/backend/dist/services/workRuntimeService.d.ts +60 -51
  40. package/backend/dist/services/workRuntimeService.d.ts.map +1 -1
  41. package/backend/dist/services/workRuntimeService.js +310 -658
  42. package/backend/dist/services/workRuntimeService.js.map +1 -1
  43. package/backend/dist/services/workRuntimeShared.d.ts +83 -0
  44. package/backend/dist/services/workRuntimeShared.d.ts.map +1 -0
  45. package/backend/dist/services/workRuntimeShared.js +136 -0
  46. package/backend/dist/services/workRuntimeShared.js.map +1 -0
  47. package/backend/dist/services/workTaskService.d.ts +6 -1
  48. package/backend/dist/services/workTaskService.d.ts.map +1 -1
  49. package/backend/dist/services/workTaskService.js +18 -3
  50. package/backend/dist/services/workTaskService.js.map +1 -1
  51. package/backend/dist/services/workTerminalService.d.ts +2 -22
  52. package/backend/dist/services/workTerminalService.d.ts.map +1 -1
  53. package/backend/dist/services/workTerminalService.js +10 -127
  54. package/backend/dist/services/workTerminalService.js.map +1 -1
  55. package/backend/dist/types/work.d.ts +4 -0
  56. package/backend/dist/types/work.d.ts.map +1 -1
  57. package/backend/dist/utils/dockerEndpoint.d.ts +37 -0
  58. package/backend/dist/utils/dockerEndpoint.d.ts.map +1 -0
  59. package/backend/dist/utils/dockerEndpoint.js +72 -0
  60. package/backend/dist/utils/dockerEndpoint.js.map +1 -0
  61. package/backend/dist/workTerminalServer.d.ts.map +1 -1
  62. package/backend/dist/workTerminalServer.js +6 -5
  63. package/backend/dist/workTerminalServer.js.map +1 -1
  64. package/backend/package.json +2 -1
  65. package/electron/main.js +196 -11
  66. package/frontend/dist/artifact-runtime/.build-fingerprint +1 -1
  67. package/frontend/dist/assets/index-Z4-oLWDC.js +2 -0
  68. package/frontend/dist/assets/index-tBUyDbHh.css +1 -0
  69. package/frontend/dist/index.html +11 -10
  70. package/frontend/dist/js/{ArtifactContainer-BRqFYglf.js → ArtifactContainer-DQRF4rh-.js} +1 -1
  71. package/frontend/dist/js/{ArtifactDemoPage-CQj2XRxx.js → ArtifactDemoPage-BOlB1lS-.js} +1 -1
  72. package/frontend/dist/js/{ArtifactSandboxFrame-BsrybHW3.js → ArtifactSandboxFrame-DqU5GDrI.js} +2 -2
  73. package/frontend/dist/js/{ArtifactSlideOutPanel-BcDkHDZY.js → ArtifactSlideOutPanel-B0I-hCux.js} +1 -1
  74. package/frontend/dist/js/ChatPage-DyV0_oCt.js +16 -0
  75. package/frontend/dist/js/{FirstTimeSetup-CX3zIxZR.js → FirstTimeSetup-ButTmjp0.js} +1 -1
  76. package/frontend/dist/js/{GalleryPage-Dv5IJVVY.js → GalleryPage-CaT63b-s.js} +1 -1
  77. package/frontend/dist/js/HomePage-BWyg3nHu.js +1 -0
  78. package/frontend/dist/js/{LibreClawPage-iEHU_8KO.js → LibreClawPage-DUd3tjQE.js} +1 -1
  79. package/frontend/dist/js/ModelSelector-COFcJnMJ.js +1 -0
  80. package/frontend/dist/js/{ModelsPage-BU-VYLs1.js → ModelsPage-BRbTEXNL.js} +1 -1
  81. package/frontend/dist/js/{NotesPage-DKXMxPjC.js → NotesPage-CTutDN50.js} +1 -1
  82. package/frontend/dist/js/{PersonasPage-DnjO6raM.js → PersonasPage-C6iTMI3N.js} +2 -2
  83. package/frontend/dist/js/{PluginUsagePage-DNihHooM.js → PluginUsagePage-BQQ0-_PP.js} +1 -1
  84. package/frontend/dist/js/{RichMessageContent-DDJDx7_n.js → RichMessageContent-DPqeqxkQ.js} +1 -1
  85. package/frontend/dist/js/SettingsModal-C_1k75Kv.js +1 -0
  86. package/frontend/dist/js/SettingsToggle-bZ5W4CCf.js +1 -0
  87. package/frontend/dist/js/SystemPage-CUecyRPh.js +1 -0
  88. package/frontend/dist/js/UserManagementPage-CZ4KMOY9.js +1 -0
  89. package/frontend/dist/js/WorkPage-BqDcfXV6.js +5 -0
  90. package/frontend/dist/js/api-iCpOEijB.js +14 -0
  91. package/frontend/dist/js/{appStore-hNTtRnlO.js → appStore-DTd6dWg2.js} +2 -2
  92. package/frontend/dist/js/{ar-ClMsdoTH.js → ar-C8YV99Y-.js} +1 -1
  93. package/frontend/dist/js/authStore-CuK4HUVh.js +4 -0
  94. package/frontend/dist/js/{bn-LyPol_AY.js → bn-C9dcls7_.js} +1 -1
  95. package/frontend/dist/js/chatStore-VNT0eHRB.js +2 -0
  96. package/frontend/dist/js/{config-cqTxMjWo.js → config--Xp9rZtJ.js} +1 -1
  97. package/frontend/dist/js/{cs-D98fZaKF.js → cs-DtL8VeeX.js} +1 -1
  98. package/frontend/dist/js/{da-M7ND0GQR.js → da-U3aNn1aF.js} +1 -1
  99. package/frontend/dist/js/{de-BV0q1kzb.js → de-DzuyeVpX.js} +1 -1
  100. package/frontend/dist/js/{es-C7FvsVoN.js → es-OiU8plii.js} +1 -1
  101. package/frontend/dist/js/{estree-BAxGO-Uf.js → estree-BAQkciRX.js} +1 -1
  102. package/frontend/dist/js/{fr-5SloN0ok.js → fr-DDa3R8bs.js} +1 -1
  103. package/frontend/dist/js/{hi-C6VeRgeR.js → hi-D8Y0hl34.js} +1 -1
  104. package/frontend/dist/js/{html-DL8k6nha.js → html-DxA-Bcvi.js} +1 -1
  105. package/frontend/dist/js/{i18n-CLd1FZPx.js → i18n-BqWNFeNo.js} +1 -1
  106. package/frontend/dist/js/{id-CkVp7Z1Z.js → id-BwcWtkBv.js} +1 -1
  107. package/frontend/dist/js/{is-DqxnBX4W.js → is-DzfQHQih.js} +1 -1
  108. package/frontend/dist/js/{it-CiW4_O5V.js → it-C5VU3_Je.js} +1 -1
  109. package/frontend/dist/js/{ja-BZ3Sdund.js → ja-DLhOhxvf.js} +1 -1
  110. package/frontend/dist/js/{ko-CS7LAhfJ.js → ko-CCKiyQD6.js} +1 -1
  111. package/frontend/dist/js/{markdown-CKunEqMI.js → markdown-IsZpJ5ke.js} +1 -1
  112. package/frontend/dist/js/{messageCodeStyles-Cva_Rdk3.js → messageCodeStyles-CsV3zwyK.js} +1 -1
  113. package/frontend/dist/js/{ms-URvcYqgz.js → ms-CXXkPvWw.js} +1 -1
  114. package/frontend/dist/js/{nl-CQJpW7wK.js → nl-CA_e0Epl.js} +1 -1
  115. package/frontend/dist/js/{pl-DDMgPMAz.js → pl-BG32wdpx.js} +1 -1
  116. package/frontend/dist/js/{pt-JCqqmGn_.js → pt-BzRGWQXO.js} +1 -1
  117. package/frontend/dist/js/{ru-C_dwMbiK.js → ru-DBjn_Q-Q.js} +1 -1
  118. package/frontend/dist/js/{standalone-qHCG6_XI.js → standalone-CK3b5Ktq.js} +1 -1
  119. package/frontend/dist/js/{sv-CW3c9NGx.js → sv-Hz_iRGdF.js} +1 -1
  120. package/frontend/dist/js/{th-9ARgClBr.js → th-MsyXlGH9.js} +1 -1
  121. package/frontend/dist/js/{tr-DNY5_DAg.js → tr-Cofmy_ef.js} +1 -1
  122. package/frontend/dist/js/{typescript-ClQp1SgP.js → typescript-BMYmVohw.js} +1 -1
  123. package/frontend/dist/js/{ui-ChYGf2Rg.js → ui-C2kNYwfG.js} +2 -2
  124. package/frontend/dist/js/{uk-XDh4_7IL.js → uk-B2o05LCR.js} +1 -1
  125. package/frontend/dist/js/{vi-BaoJBXnt.js → vi-CZh8uJgV.js} +1 -1
  126. package/frontend/dist/js/workApi-C33ZrPws.js +6 -0
  127. package/frontend/dist/js/{zh-B202vYJt.js → zh-DhKXi8ZA.js} +1 -1
  128. package/package.json +7 -3
  129. package/frontend/dist/assets/index-DtkGuqvC.css +0 -1
  130. package/frontend/dist/assets/index-yeE8bw17.js +0 -22
  131. package/frontend/dist/js/ChatPage-CtN25kO5.js +0 -16
  132. package/frontend/dist/js/HomePage-C7JjQJSz.js +0 -1
  133. package/frontend/dist/js/ModelSelector-DhRVhkDT.js +0 -1
  134. package/frontend/dist/js/SettingsModal-Djij7CKl.js +0 -1
  135. package/frontend/dist/js/SystemPage-CDBXVff3.js +0 -1
  136. package/frontend/dist/js/UserManagementPage-CZJLqvwO.js +0 -1
  137. package/frontend/dist/js/WorkPage-EpH5lfJx.js +0 -5
  138. package/frontend/dist/js/api-DVeiqNG9.js +0 -19
  139. package/frontend/dist/js/authStore-Cl_7F0Si.js +0 -3
  140. package/frontend/dist/js/chatStore-Bp5u1tTv.js +0 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workKubernetesDriver.js","sourceRoot":"","sources":["../../src/services/workKubernetesDriver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGtE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAQlD,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAGL,gBAAgB,EAChB,wBAAwB,EACxB,oBAAoB,EACpB,eAAe,EACf,iBAAiB,IAAI,MAAM,GAC5B,MAAM,wBAAwB,CAAC;AAEhC,MAAM,MAAM,GAAG,YAAY,CAAC,uBAAuB,CAAC,CAAC;AAErD,2EAA2E;AAC3E,0EAA0E;AAC1E,yCAAyC;AACzC,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,SAAS,EAAE,kBAAkB;IAC7B,aAAa,EAAE,KAAK;IACpB,iBAAiB,EAAE,MAAO;IAC1B,gBAAgB,EAAE,KAAM;CAChB,CAAC;AAEX,MAAM,SAAS,GAAG;IAChB,SAAS,EACP,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,wBAAwB,CAAC,SAAS;IACtE,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,SAAS;IAC7D,aAAa,EACX,OAAO,CAAC,GAAG,CAAC,uBAAuB;QACnC,wBAAwB,CAAC,aAAa;IACxC,iBAAiB,EAAE,eAAe,CAChC,OAAO,CAAC,GAAG,CAAC,6BAA6B,EACzC,wBAAwB,CAAC,iBAAiB,CAC3C;IACD,gBAAgB,EAAE,eAAe,CAC/B,OAAO,CAAC,GAAG,CAAC,4BAA4B,EACxC,wBAAwB,CAAC,gBAAgB,CAC1C;CACF,CAAC;AAEF,MAAM,oBAAoB,GAAG,GAAG,CAAC;AACjC,MAAM,mBAAmB,GAAG,MAAM,CAAC;AACnC,MAAM,aAAa,GAAG,wBAAwB,CAAC;AAC/C,MAAM,UAAU,GAAG,qBAAqB,CAAC;AACzC,MAAM,aAAa,GAAG,wBAAwB,CAAC;AAC/C,MAAM,iBAAiB,GAAG,uBAAuB,CAAC;AAElD,6EAA6E;AAC7E,uEAAuE;AACvE,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC;IACpC,cAAc;IACd,kBAAkB;IAClB,kBAAkB;IAClB,4BAA4B;IAC5B,sBAAsB;CACvB,CAAC,CAAC;AAUH;;;;;;;;GAQG;AACH,MAAM,OAAO,2BAA2B;IAAxC;QACW,UAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QACrB,cAAS,GAAG,SAAS,CAAC,SAAS,CAAC;IAud3C,CAAC;IApdS,MAAM;QACZ,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,IAAI,CAAC,WAAW,GAAG,CAAC,KAAK,IAAI,EAAE;gBAC7B,+DAA+D;gBAC/D,gCAAgC;gBAChC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;gBACpD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;gBACxC,UAAU,CAAC,eAAe,EAAE,CAAC;gBAC7B,OAAO;oBACL,GAAG;oBACH,UAAU;oBACV,IAAI,EAAE,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC;iBAC9C,CAAC;YACJ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;gBACjB,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;gBAC7B,MAAM,IAAI,gBAAgB,CACxB,6BAA6B,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,EACpD,GAAG,EACH,6BAA6B,CAC9B,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACrC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,iBAAiB,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QACxE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,gBAAgB,CACxB,6BAA6B,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,EACpD,GAAG,EACH,6BAA6B,CAC9B,CAAC;QACJ,CAAC;IACH,CAAC;IAED,QAAQ;QACN,oEAAoE;IACtE,CAAC;IAED,KAAK,CAAC,WAAW;QACf,sEAAsE;QACtE,iEAAiE;IACnE,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,IAAoB;QACxC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAC5B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,MAAM,cAAc,CACnC,IAAI,CAAC,mCAAmC,CAAC;YACvC,IAAI,EAAE,IAAI,CAAC,UAAU;YACrB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC,CACH,CAAC;QACF,IAAI,QAAQ,EAAE,CAAC;YACb,oBAAoB,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YACtD,OAAO;QACT,CAAC;QACD,sEAAsE;QACtE,+CAA+C;QAC/C,MAAM,IAAI,CAAC,qCAAqC,CAAC;YAC/C,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,IAAI,EAAE,2BAA2B,CAC/B,IAAI,EACJ,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,aAAa,CACvD;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,IAAoB;QACtC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAC5B,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACxD,IAAI,QAAQ,EAAE,CAAC;YACb,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YACpD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC;YAC3C,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC,iBAAiB,CAAC,CAAC;YACxE,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;YACpD,MAAM,KAAK,GACT,WAAW,KAAK,wBAAwB,CAAC,MAAM,CAAC;gBAChD,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC;YACzB,MAAM,QAAQ,GAAG,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,QAAQ,CAAC;YAC7D,IAAI,KAAK,IAAI,QAAQ,EAAE,CAAC;gBACtB,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,CAAC,IAAI,CACT,+BAA+B,IAAI,CAAC,aAAa,yCAAyC,CAC3F,CAAC;gBACJ,CAAC;gBACD,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAClD,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBACjD,OAAO;YACT,CAAC;QACH,CAAC;QACD,MAAM,IAAI,CAAC,mBAAmB,CAAC;YAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,IAAI,EAAE,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC;SACzC,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAAoB;QACrC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACnD,IAAI,CAAC,GAAG;YAAE,OAAO,QAAQ,CAAC;QAC1B,kBAAkB,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAC/C,OAAO,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAoB;QACpC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACnD,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,kBAAkB,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAC/C,uEAAuE;QACvE,0DAA0D;QAC1D,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,IAAoB;QACtC,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,IAAoB;QAC5C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACrC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC;YAChC,cAAc,CACZ,IAAI,CAAC,mCAAmC,CAAC;gBACvC,IAAI,EAAE,IAAI,CAAC,UAAU;gBACrB,SAAS,EAAE,IAAI,CAAC,SAAS;aAC1B,CAAC,CACH;SACF,CAAC,CAAC;QACH,qEAAqE;QACrE,+DAA+D;QAC/D,IAAI,GAAG,EAAE,CAAC;YACR,kBAAkB,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,KAAK,EAAE,CAAC;YACV,oBAAoB,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,cAAc,CAClB,IAAI,CAAC,qCAAqC,CAAC;gBACzC,IAAI,EAAE,IAAI,CAAC,UAAU;gBACrB,SAAS,EAAE,IAAI,CAAC,SAAS;aAC1B,CAAC,CACH,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CACR,IAAoB,EACpB,OAAiB,EACjB,OAAO,GAAoB,EAAE;QAE7B,OAAO,IAAI,CAAC,SAAS,CACnB,IAAI,CAAC,aAAa,EAClB,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,EAChD,OAAO,CACR,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,IAAoB;QAEpB,kEAAkE;QAClE,qEAAqE;QACrE,uEAAuE;QACvE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACnD,IAAI,CAAC,GAAG;YAAE,OAAO,SAAS,CAAC;QAC3B,kBAAkB,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC;QAChC,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAC7B,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,WAAW;QACf,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC;YACxC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,aAAa,EAAE,GAAG,aAAa,OAAO;SACvC,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACpC,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE;YAC9B,MAAM,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE;YAChD,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,SAAS;SACtD,CAAC,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAAY;QAC7B,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,mCAAmC,CAAC;YAC5D,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,aAAa,EAAE,GAAG,aAAa,OAAO;SACvC,CAAC,CAAC;QACH,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACxC,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE;YAChC,MAAM,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE;SACnD,CAAC,CAAC,CAAC;IACN,CAAC;IAED,yBAAyB;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,YAAY,CAAC,aAAqB;QACtC,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QAChD,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;QACtC,MAAM,YAAY,GAAG,IAAI,qBAAqB,EAAE,CAAC;QACjD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACtC,IAAI,MAAyC,CAAC;QAC9C,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CACtB,IAAI,CAAC,SAAS,EACd,aAAa,EACb,mBAAmB,EACnB,CAAC,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAE,IAAI,CAAC,EACjD,YAAY,EACZ,IAAI,EACJ,WAAW,EACX,IAAI,CACL,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,gBAAgB,CACxB,uCAAuC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAC/F,GAAG,EACH,2BAA2B,CAC5B,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,oBAAoB,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QACnE,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACtB,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACtB,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACtB,IAAI,CAAC;gBACH,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,CAAC;YAAC,MAAM,CAAC;gBACP,yDAAyD;YAC3D,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO;YACL,MAAM;YACN,MAAM,EAAE,KAAK,EAAE,IAAY,EAAE,IAAY,EAAE,EAAE;gBAC3C,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACnC,CAAC;SACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,IAAY;QAChC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACrC,OAAO,cAAc,CACnB,IAAI,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAC5D,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,IAAY;QACzC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACrC,MAAM,cAAc,CAClB,IAAI,CAAC,mBAAmB,CAAC;YACvB,IAAI;YACJ,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,kBAAkB,EAAE,CAAC;SACtB,CAAC,CACH,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,gBAAgB,CAAC;QACzD,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ,EAAE,CAAC;gBAC3B,MAAM,IAAI,gBAAgB,CACxB,qBAAqB,IAAI,4BAA4B,SAAS,CAAC,gBAAgB,KAAK,EACpF,GAAG,EACH,2BAA2B,CAC5B,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,IAAY;QAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,iBAAiB,CAAC;QAC1D,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACrC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,MAAM,IAAI,gBAAgB,CACxB,qBAAqB,IAAI,+BAA+B,EACxD,GAAG,EACH,2BAA2B,CAC5B,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,KAAK,IAAI,SAAS,CAAC;YAC7C,IAAI,KAAK,KAAK,SAAS;gBAAE,OAAO;YAChC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC;YACnE,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;gBAChD,MAAM,IAAI,gBAAgB,CACxB,qBAAqB,IAAI,kCAAkC,KAAK,IAAI,EACpE,GAAG,EACH,2BAA2B,CAC5B,CAAC;YACJ,CAAC;YACD,IAAI,OAAO,EAAE,MAAM,IAAI,qBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjE,MAAM,IAAI,gBAAgB,CACxB,qBAAqB,IAAI,mBAAmB,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAC7G,GAAG,EACH,2BAA2B,CAC5B,CAAC;YACJ,CAAC;YACD,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ,EAAE,CAAC;gBAC3B,MAAM,IAAI,gBAAgB,CACxB,qBAAqB,IAAI,kCAAkC,SAAS,CAAC,iBAAiB,KAAK,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAC3I,GAAG,EACH,2BAA2B,CAC5B,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,SAAS,CACrB,OAAe,EACf,OAAiB,EACjB,OAAwB;QAExB,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QAChD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC,gBAAgB,CAAC;QAC/D,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,MAAM,CAAC,cAAc,CAAC;QAEvE,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,MAAM,MAAM,GAAG,CAAC,OAAe,EAAE,KAAsB,EAAU,EAAE;YACjE,MAAM,IAAI,GAAG,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;YACxC,IAAI,IAAI,CAAC,MAAM,IAAI,cAAc;gBAAE,OAAO,IAAI,CAAC;YAC/C,SAAS,GAAG,IAAI,CAAC;YACjB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;YAC5C,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,+BAA+B,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;QAClF,CAAC,CAAC;QACF,MAAM,SAAS,GAAG,CAAC,KAAuC,EAAE,EAAE,CAC5D,IAAI,QAAQ,CAAC;YACX,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ;gBAC9B,KAAK,CAAC,KAAe,CAAC,CAAC;gBACvB,QAAQ,EAAE,CAAC;YACb,CAAC;SACF,CAAC,CAAC;QAEL,OAAO,IAAI,OAAO,CAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACpD,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,IAAI,MAAqD,CAAC;YAC1D,IAAI,MAA8D,CAAC;YACnE,MAAM,eAAe,GAAG,GAAY,EAAE;gBACpC,IAAI,OAAO;oBAAE,OAAO,KAAK,CAAC;gBAC1B,OAAO,GAAG,IAAI,CAAC;gBACf,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,OAAO,IAAI,CAAC;YACd,CAAC,CAAC;YACF,oEAAoE;YACpE,gDAAgD;YAChD,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,IAAI,CAAC,eAAe,EAAE;oBAAE,OAAO;gBAC/B,IAAI,CAAC;oBACH,MAAM,EAAE,KAAK,EAAE,CAAC;gBAClB,CAAC;gBAAC,MAAM,CAAC;oBACP,yDAAyD;gBAC3D,CAAC;gBACD,MAAM,CACJ,IAAI,gBAAgB,CAClB,2BAA2B,SAAS,KAAK,EACzC,GAAG,EACH,sBAAsB,CACvB,CACF,CAAC;YACJ,CAAC,EAAE,SAAS,CAAC,CAAC;YACd,KAAK,CAAC,KAAK,EAAE,CAAC;YAEd,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACtC,IAAI;iBACD,IAAI,CACH,IAAI,CAAC,SAAS,EACd,OAAO,EACP,mBAAmB,EACnB,OAAO,EACP,SAAS,CAAC,KAAK,CAAC,EAAE;gBAChB,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACjC,CAAC,CAAC,EACF,SAAS,CAAC,KAAK,CAAC,EAAE;gBAChB,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACjC,CAAC,CAAC,EACF,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EACnE,KAAK,EACL,MAAM,CAAC,EAAE;gBACP,MAAM,GAAG,MAAM,CAAC;YAClB,CAAC,CACF;iBACA,IAAI,CAAC,SAAS,CAAC,EAAE;gBAChB,MAAM,GAAG,SAAS,CAAC;gBACnB,IAAI,OAAO,EAAE,CAAC;oBACZ,IAAI,CAAC;wBACH,SAAS,CAAC,KAAK,EAAE,CAAC;oBACpB,CAAC;oBAAC,MAAM,CAAC;wBACP,yDAAyD;oBAC3D,CAAC;oBACD,OAAO;gBACT,CAAC;gBACD,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;oBAC5B,IAAI,CAAC,eAAe,EAAE;wBAAE,OAAO;oBAC/B,MAAM,CACJ,IAAI,gBAAgB,CAClB,gCAAgC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EACxF,GAAG,EACH,6BAA6B,CAC9B,CACF,CAAC;gBACJ,CAAC,CAAC,CAAC;gBACH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;oBACzB,IAAI,CAAC,eAAe,EAAE;wBAAE,OAAO;oBAC/B,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;oBAC1C,MAAM,MAAM,GAAkB;wBAC5B,QAAQ;wBACR,MAAM;wBACN,MAAM;wBACN,SAAS;qBACV,CAAC;oBACF,IAAI,QAAQ,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;wBAC7C,MAAM,CACJ,IAAI,gBAAgB,CAClB,MAAM,CAAC,IAAI,EAAE;4BACX,MAAM,CAAC,IAAI,EAAE;4BACb,MAAM,EAAE,OAAO;4BACf,4BAA4B,QAAQ,GAAG,EACzC,GAAG,EACH,qBAAqB,CACtB,CACF,CAAC;wBACF,OAAO;oBACT,CAAC;oBACD,OAAO,CAAC,MAAM,CAAC,CAAC;gBAClB,CAAC,CAAC,CAAC;YACL,CAAC,CAAC;iBACD,KAAK,CAAC,KAAK,CAAC,EAAE;gBACb,IAAI,CAAC,eAAe,EAAE;oBAAE,OAAO;gBAC/B,MAAM,CACJ,IAAI,gBAAgB,CAClB,uCAAuC,OAAO,MAAM,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAC5G,GAAG,EACH,6BAA6B,CAC9B,CACF,CAAC;YACJ,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,UAAU,2BAA2B,CACzC,IAAoB,EACpB,aAAsB;IAEtB,OAAO;QACL,QAAQ,EAAE;YACR,IAAI,EAAE,IAAI,CAAC,UAAU;YACrB,MAAM,EAAE;gBACN,CAAC,aAAa,CAAC,EAAE,MAAM;gBACvB,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,EAAE;aACtB;SACF;QACD,IAAI,EAAE;YACJ,WAAW,EAAE,CAAC,eAAe,CAAC;YAC9B,SAAS,EAAE;gBACT,QAAQ,EAAE,EAAE,OAAO,EAAE,aAAa,IAAI,SAAS,CAAC,aAAa,EAAE;aAChE;YACD,GAAG,CAAC,SAAS,CAAC,YAAY;gBACxB,CAAC,CAAC,EAAE,gBAAgB,EAAE,SAAS,CAAC,YAAY,EAAE;gBAC9C,CAAC,CAAC,EAAE,CAAC;SACR;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,IAAoB,EACpB,MAAM,GAA8B,oBAAoB;IAExD,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAC5B,OAAO;QACL,QAAQ,EAAE;YACR,IAAI,EAAE,IAAI,CAAC,aAAa;YACxB,MAAM,EAAE;gBACN,CAAC,aAAa,CAAC,EAAE,MAAM;gBACvB,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,EAAE;gBACrB,mEAAmE;gBACnE,kEAAkE;gBAClE,mDAAmD;gBACnD,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;aAC7C;YACD,kEAAkE;YAClE,6CAA6C;YAC7C,WAAW,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,wBAAwB,CAAC,MAAM,CAAC,EAAE;SACvE;QACD,IAAI,EAAE;YACJ,aAAa,EAAE,OAAO;YACtB,4BAA4B,EAAE,KAAK;YACnC,kBAAkB,EAAE,KAAK;YACzB,eAAe,EAAE;gBACf,SAAS,EAAE,IAAI;gBACf,UAAU,EAAE,IAAI;gBAChB,YAAY,EAAE,IAAI;gBAClB,OAAO,EAAE,IAAI;gBACb,mBAAmB,EAAE,gBAAgB;gBACrC,cAAc,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE;aAC3C;YACD,UAAU,EAAE;gBACV;oBACE,IAAI,EAAE,mBAAmB;oBACzB,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC;oBACpC,UAAU,EAAE,YAAY;oBACxB,GAAG,EAAE;wBACH,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;wBAC/B,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,gBAAgB,EAAE;qBACtD;oBACD,eAAe,EAAE;wBACf,wBAAwB,EAAE,KAAK;wBAC/B,sBAAsB,EAAE,IAAI;wBAC5B,YAAY,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE;qBAChC;oBACD,SAAS,EAAE;wBACT,MAAM,EAAE;4BACN,MAAM,EAAE,wBAAwB,CAAC,MAAM,CAAC,WAAW,CAAC;4BACpD,GAAG,EAAE,sBAAsB,CAAC,MAAM,CAAC,QAAQ,CAAC;yBAC7C;qBACF;oBACD,YAAY,EAAE;wBACZ,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE;wBAC9C,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE;qBACnC;iBACF;aACF;YACD,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,WAAW;oBACjB,qBAAqB,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE;iBACtD;gBACD,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE;aAClD;YACD,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;gBAC9B,CAAC,CAAC;oBACE,SAAS,EAAE,MAAM;oBACjB,SAAS,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,UAAU,EAAE;iBAC9C;gBACH,CAAC,CAAC,EAAE,CAAC;SACR;KACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CACpC,OAAiB,EACjB,OAAgB;IAEhB,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,YAAY;QAAE,OAAO,OAAO,CAAC;IACzD,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,yBAAyB,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC;AAC3E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAAa;IACpD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACvE,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,MAAM,MAAM,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CACjD,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAA2B,CAChD,CAAC;IACF,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAa;IAClD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1D,OAAO,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;QAC7B,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;QAChB,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAyB;IACnD,yEAAyE;IACzE,wEAAwE;IACxE,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACtE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAClE,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,MAA8D;IAE9D,IAAI,CAAC,MAAM;QAAE,OAAO,CAAC,CAAC,CAAC;IACvB,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CACxC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,UAAU,CACnC,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACtC,OAAO,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,KAAc,EACd,SAAiB;IAEjB,MAAM,IAAI,GAAI,KAA4B,EAAE,IAAI,CAAC;IACjD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;QACjB,OAAO,+BAA+B,SAAS,yDAAyD,SAAS,mDAAmD,CAAC;IACvK,CAAC;IACD,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;QACjC,OAAO,+DAA+D,SAAS,+FAA+F,CAAC;IACjL,CAAC;IACD,IAAI,+CAA+C,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAClE,OAAO,0CAA0C,OAAO,2DAA2D,CAAC;IACtH,CAAC;IACD,IAAI,uCAAuC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1D,OAAO,0CAA0C,OAAO,+DAA+D,CAAC;IAC1H,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAoB;IACjD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,MAAM,IAAI,gBAAgB,CACxB,0EAA0E,EAC1E,GAAG,EACH,iCAAiC,CAClC,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CACzB,MAA0C,EAC1C,IAAoB;IAEpB,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,IAAI,gBAAgB,CACxB,4CAA4C,IAAI,CAAC,aAAa,IAAI,EAClE,GAAG,EACH,8BAA8B,CAC/B,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAC3B,MAA0C,EAC1C,IAAoB;IAEpB,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,IAAI,gBAAgB,CACxB,yCAAyC,IAAI,CAAC,UAAU,IAAI,EAC5D,GAAG,EACH,2BAA2B,CAC5B,CAAC;IACJ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,cAAc,CAAI,OAAmB;IAClD,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC;IACvB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA4B,EAAE,IAAI,KAAK,GAAG;YAAE,OAAO,SAAS,CAAC;QAClE,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,qBAAsB,SAAQ,WAAW;IAA/C;;QACE,SAAI,GAAG,EAAE,CAAC;QACV,YAAO,GAAG,EAAE,CAAC;IAOf,CAAC;IALC,OAAO,CAAC,OAAe,EAAE,IAAY;QACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtB,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,oBAAqB,SAAQ,MAAM;IACvC,YACmB,IAAiB,EACjB,MAAmB;QAEpC,KAAK,EAAE,CAAC;oBAHS,IAAI;sBACJ,MAAM;QAGvB,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YAClC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;gBAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QACxC,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACxC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,KAAK;QACH,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;IAED,MAAM,CACJ,KAAc,EACd,QAAwB,EACxB,QAAwC;QAExC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAED,QAAQ,CACN,KAAmB,EACnB,QAAwC;QAExC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACtB,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClB,CAAC;CACF"}
@@ -0,0 +1,58 @@
1
+ import { ResolvedWorkRuntimePolicy } from './workRuntimeShared.js';
2
+ export interface WorkPolicyRecord {
3
+ id: string;
4
+ name: string;
5
+ image?: string;
6
+ memoryLimit?: string;
7
+ cpuLimit?: string;
8
+ pidsLimit?: number;
9
+ networkDefault?: boolean;
10
+ workspaceSize?: string;
11
+ idleTimeoutMs?: number;
12
+ createdAt: number;
13
+ updatedAt: number;
14
+ }
15
+ export interface WorkPolicyInput {
16
+ name: string;
17
+ image?: string | null;
18
+ memoryLimit?: string | null;
19
+ cpuLimit?: string | null;
20
+ pidsLimit?: number | null;
21
+ networkDefault?: boolean | null;
22
+ workspaceSize?: string | null;
23
+ idleTimeoutMs?: number | null;
24
+ }
25
+ export declare function validateWorkPolicyInput(input: WorkPolicyInput): {
26
+ name: string;
27
+ image: string | null;
28
+ memoryLimit: string | null;
29
+ cpuLimit: string | null;
30
+ pidsLimit: number | null;
31
+ networkDefault: boolean | null;
32
+ workspaceSize: string | null;
33
+ idleTimeoutMs: number | null;
34
+ };
35
+ export declare class WorkPolicyService {
36
+ list(): WorkPolicyRecord[];
37
+ get(id: string): WorkPolicyRecord | undefined;
38
+ create(input: WorkPolicyInput): WorkPolicyRecord;
39
+ update(id: string, input: WorkPolicyInput): WorkPolicyRecord;
40
+ /**
41
+ * Delete a policy. Tasks that referenced it fall back to the global
42
+ * defaults (the SET NULL semantic); their fingerprint changes, so their
43
+ * sandbox is recreated with default limits on next use.
44
+ */
45
+ remove(id: string): void;
46
+ /**
47
+ * The runtime configuration a task actually runs with. Resolution never
48
+ * fails the caller: a missing policy row (deleted mid-flight) or an
49
+ * unreachable database resolves to the global defaults — the hardened
50
+ * baseline — with a warning.
51
+ */
52
+ resolve(policyId: string | null | undefined): ResolvedWorkRuntimePolicy;
53
+ /** Whether any policy enables idle-stop when the global knob is off. */
54
+ anyIdleTimeoutConfigured(): boolean;
55
+ }
56
+ export declare const workPolicyService: WorkPolicyService;
57
+ export default workPolicyService;
58
+ //# sourceMappingURL=workPolicyService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workPolicyService.d.ts","sourceRoot":"","sources":["../../src/services/workPolicyService.ts"],"names":[],"mappings":"AA+BA,OAAO,EACL,yBAAyB,EAI1B,MAAM,wBAAwB,CAAC;AAYhC,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAoCD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,eAAe,GAAG;IAC/D,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,cAAc,EAAE,OAAO,GAAG,IAAI,CAAC;IAC/B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,CAwFA;AAED,qBAAa,iBAAiB;IAC5B,IAAI,IAAI,gBAAgB,EAAE,CAKzB;IAED,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAK5C;IAED,MAAM,CAAC,KAAK,EAAE,eAAe,GAAG,gBAAgB,CAuC/C;IAED,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,gBAAgB,CA4C3D;IAED;;;;OAIG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAkBvB;IAED;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,yBAAyB,CAwBtE;IAED,wEAAwE;IACxE,wBAAwB,IAAI,OAAO,CAWlC;CACF;AAED,eAAO,MAAM,iBAAiB,mBAA0B,CAAC;eAC1C,iBAAiB"}
@@ -0,0 +1,249 @@
1
+ /*
2
+ * Libre WebUI
3
+ * Copyright (C) 2025 Kroonen AI, Inc.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at:
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ /**
18
+ * Named Work runtime policies: admin-defined presets (image, resource
19
+ * limits, workspace size, idle timeout, network default) a task can be
20
+ * created under. Every field is optional — a policy states only what it
21
+ * changes from the deployment's global runtime configuration, and
22
+ * resolution merges the two. Policies never weaken the sandbox hardening
23
+ * profile: the non-negotiable parts (non-root, read-only rootfs, dropped
24
+ * capabilities, network isolation) are not policy fields at all.
25
+ */
26
+ import { v4 as uuidv4 } from 'uuid';
27
+ import { getDatabase } from '../db.js';
28
+ import { createLogger } from '../utils/logger.js';
29
+ import { WorkRuntimeError, defaultRuntimePolicy, workRuntimeConfig, } from './workRuntimeShared.js';
30
+ const logger = createLogger('services:work-policy');
31
+ const NAME_MAX_LENGTH = 100;
32
+ const IMAGE_MAX_LENGTH = 300;
33
+ // Docker memory quantities: bytes, or one-letter binary suffixes with the
34
+ // two-letter spellings Docker also accepts (2g, 2gb, 2gib).
35
+ const MEMORY_PATTERN = /^\d+(?:\.\d+)?(?:[bkmg](?:i?b)?)?$/i;
36
+ // Kubernetes resource quantities for workspace PVCs.
37
+ const WORKSPACE_SIZE_PATTERN = /^\d+(?:\.\d+)?(?:Ki|Mi|Gi|Ti|K|M|G|T)?$/;
38
+ const invalid = (message) => new WorkRuntimeError(message, 400, 'WORK_POLICY_INVALID');
39
+ function mapPolicy(row) {
40
+ return {
41
+ id: row.id,
42
+ name: row.name,
43
+ image: row.image ?? undefined,
44
+ memoryLimit: row.memory_limit ?? undefined,
45
+ cpuLimit: row.cpu_limit ?? undefined,
46
+ pidsLimit: row.pids_limit ?? undefined,
47
+ networkDefault: row.network_default === null ? undefined : Boolean(row.network_default),
48
+ workspaceSize: row.workspace_size ?? undefined,
49
+ idleTimeoutMs: row.idle_timeout_ms ?? undefined,
50
+ createdAt: row.created_at,
51
+ updatedAt: row.updated_at,
52
+ };
53
+ }
54
+ export function validateWorkPolicyInput(input) {
55
+ const name = typeof input.name === 'string' ? input.name.trim() : '';
56
+ if (!name || name.length > NAME_MAX_LENGTH) {
57
+ throw invalid(`Policy name is required and must be at most ${NAME_MAX_LENGTH} characters.`);
58
+ }
59
+ const image = input.image === null || input.image === undefined || input.image === ''
60
+ ? null
61
+ : String(input.image).trim();
62
+ if (image !== null && (image.length > IMAGE_MAX_LENGTH || /\s/.test(image))) {
63
+ throw invalid('Policy image must be a single image reference.');
64
+ }
65
+ const memoryLimit = input.memoryLimit === null ||
66
+ input.memoryLimit === undefined ||
67
+ input.memoryLimit === ''
68
+ ? null
69
+ : String(input.memoryLimit).trim();
70
+ if (memoryLimit !== null && !MEMORY_PATTERN.test(memoryLimit)) {
71
+ throw invalid('Policy memory limit must look like 2g, 512m, or bytes.');
72
+ }
73
+ const cpuLimit = input.cpuLimit === null ||
74
+ input.cpuLimit === undefined ||
75
+ input.cpuLimit === ''
76
+ ? null
77
+ : String(input.cpuLimit).trim();
78
+ if (cpuLimit !== null) {
79
+ const parsed = Number(cpuLimit);
80
+ if (!Number.isFinite(parsed) || parsed <= 0 || parsed > 256) {
81
+ throw invalid('Policy CPU limit must be a number between 0 and 256.');
82
+ }
83
+ }
84
+ const pidsLimit = input.pidsLimit === null || input.pidsLimit === undefined
85
+ ? null
86
+ : Number(input.pidsLimit);
87
+ if (pidsLimit !== null &&
88
+ (!Number.isInteger(pidsLimit) || pidsLimit < 16 || pidsLimit > 100000)) {
89
+ throw invalid('Policy PID limit must be an integer between 16 and 100000.');
90
+ }
91
+ const networkDefault = input.networkDefault === null || input.networkDefault === undefined
92
+ ? null
93
+ : Boolean(input.networkDefault);
94
+ const workspaceSize = input.workspaceSize === null ||
95
+ input.workspaceSize === undefined ||
96
+ input.workspaceSize === ''
97
+ ? null
98
+ : String(input.workspaceSize).trim();
99
+ if (workspaceSize !== null && !WORKSPACE_SIZE_PATTERN.test(workspaceSize)) {
100
+ throw invalid('Policy workspace size must look like 5Gi or 500Mi.');
101
+ }
102
+ const idleTimeoutMs = input.idleTimeoutMs === null || input.idleTimeoutMs === undefined
103
+ ? null
104
+ : Number(input.idleTimeoutMs);
105
+ if (idleTimeoutMs !== null &&
106
+ (!Number.isInteger(idleTimeoutMs) ||
107
+ idleTimeoutMs < 0 ||
108
+ idleTimeoutMs > 30 * 24 * 60 * 60 * 1000)) {
109
+ throw invalid('Policy idle timeout must be a non-negative duration in ms.');
110
+ }
111
+ return {
112
+ name,
113
+ image,
114
+ memoryLimit,
115
+ cpuLimit,
116
+ pidsLimit,
117
+ networkDefault,
118
+ workspaceSize,
119
+ idleTimeoutMs,
120
+ };
121
+ }
122
+ export class WorkPolicyService {
123
+ list() {
124
+ const rows = getDatabase()
125
+ .prepare('SELECT * FROM work_policies ORDER BY name ASC')
126
+ .all();
127
+ return rows.map(mapPolicy);
128
+ }
129
+ get(id) {
130
+ const row = getDatabase()
131
+ .prepare('SELECT * FROM work_policies WHERE id = ?')
132
+ .get(id);
133
+ return row ? mapPolicy(row) : undefined;
134
+ }
135
+ create(input) {
136
+ const fields = validateWorkPolicyInput(input);
137
+ const id = uuidv4();
138
+ const now = Date.now();
139
+ try {
140
+ getDatabase()
141
+ .prepare(`INSERT INTO work_policies (
142
+ id, name, image, memory_limit, cpu_limit, pids_limit,
143
+ network_default, workspace_size, idle_timeout_ms,
144
+ created_at, updated_at
145
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`)
146
+ .run(id, fields.name, fields.image, fields.memoryLimit, fields.cpuLimit, fields.pidsLimit, fields.networkDefault === null ? null : fields.networkDefault ? 1 : 0, fields.workspaceSize, fields.idleTimeoutMs, now, now);
147
+ }
148
+ catch (error) {
149
+ if (/UNIQUE/.test(error instanceof Error ? error.message : '')) {
150
+ throw new WorkRuntimeError(`A Work policy named "${fields.name}" already exists.`, 409, 'WORK_POLICY_NAME_CONFLICT');
151
+ }
152
+ throw error;
153
+ }
154
+ const created = this.get(id);
155
+ if (!created)
156
+ throw new Error('Work policy was not created.');
157
+ return created;
158
+ }
159
+ update(id, input) {
160
+ const existing = this.get(id);
161
+ if (!existing) {
162
+ throw new WorkRuntimeError('This Work policy no longer exists.', 404, 'WORK_POLICY_NOT_FOUND');
163
+ }
164
+ const fields = validateWorkPolicyInput(input);
165
+ try {
166
+ getDatabase()
167
+ .prepare(`UPDATE work_policies SET
168
+ name = ?, image = ?, memory_limit = ?, cpu_limit = ?,
169
+ pids_limit = ?, network_default = ?, workspace_size = ?,
170
+ idle_timeout_ms = ?, updated_at = ?
171
+ WHERE id = ?`)
172
+ .run(fields.name, fields.image, fields.memoryLimit, fields.cpuLimit, fields.pidsLimit, fields.networkDefault === null ? null : fields.networkDefault ? 1 : 0, fields.workspaceSize, fields.idleTimeoutMs, Date.now(), id);
173
+ }
174
+ catch (error) {
175
+ if (/UNIQUE/.test(error instanceof Error ? error.message : '')) {
176
+ throw new WorkRuntimeError(`A Work policy named "${fields.name}" already exists.`, 409, 'WORK_POLICY_NAME_CONFLICT');
177
+ }
178
+ throw error;
179
+ }
180
+ const updated = this.get(id);
181
+ if (!updated)
182
+ throw new Error('Work policy was not updated.');
183
+ return updated;
184
+ }
185
+ /**
186
+ * Delete a policy. Tasks that referenced it fall back to the global
187
+ * defaults (the SET NULL semantic); their fingerprint changes, so their
188
+ * sandbox is recreated with default limits on next use.
189
+ */
190
+ remove(id) {
191
+ const db = getDatabase();
192
+ const transaction = db.transaction(() => {
193
+ db.prepare('UPDATE work_tasks SET policy_id = NULL WHERE policy_id = ?').run(id);
194
+ const result = db
195
+ .prepare('DELETE FROM work_policies WHERE id = ?')
196
+ .run(id);
197
+ if (result.changes === 0) {
198
+ throw new WorkRuntimeError('This Work policy no longer exists.', 404, 'WORK_POLICY_NOT_FOUND');
199
+ }
200
+ });
201
+ transaction();
202
+ }
203
+ /**
204
+ * The runtime configuration a task actually runs with. Resolution never
205
+ * fails the caller: a missing policy row (deleted mid-flight) or an
206
+ * unreachable database resolves to the global defaults — the hardened
207
+ * baseline — with a warning.
208
+ */
209
+ resolve(policyId) {
210
+ if (!policyId)
211
+ return defaultRuntimePolicy;
212
+ let policy;
213
+ try {
214
+ policy = this.get(policyId);
215
+ }
216
+ catch (error) {
217
+ logger.warn(`Could not resolve Work policy ${policyId}:`, error);
218
+ return defaultRuntimePolicy;
219
+ }
220
+ if (!policy) {
221
+ logger.warn(`Work policy ${policyId} no longer exists; using the global defaults.`);
222
+ return defaultRuntimePolicy;
223
+ }
224
+ return {
225
+ policyId: policy.id,
226
+ image: policy.image ?? workRuntimeConfig.image,
227
+ memoryLimit: policy.memoryLimit ?? workRuntimeConfig.memoryLimit,
228
+ cpuLimit: policy.cpuLimit ?? workRuntimeConfig.cpuLimit,
229
+ pidsLimit: policy.pidsLimit ?? workRuntimeConfig.pidsLimit,
230
+ idleTimeoutMs: policy.idleTimeoutMs ?? workRuntimeConfig.idleTimeoutMs,
231
+ workspaceSize: policy.workspaceSize,
232
+ };
233
+ }
234
+ /** Whether any policy enables idle-stop when the global knob is off. */
235
+ anyIdleTimeoutConfigured() {
236
+ try {
237
+ const row = getDatabase()
238
+ .prepare('SELECT 1 FROM work_policies WHERE idle_timeout_ms > 0 LIMIT 1')
239
+ .get();
240
+ return row !== undefined;
241
+ }
242
+ catch {
243
+ return false;
244
+ }
245
+ }
246
+ }
247
+ export const workPolicyService = new WorkPolicyService();
248
+ export default workPolicyService;
249
+ //# sourceMappingURL=workPolicyService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workPolicyService.js","sourceRoot":"","sources":["../../src/services/workPolicyService.ts"],"names":[],"mappings":"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"}
@@ -13,8 +13,14 @@ export declare class WorkPreviewProxyService {
13
13
  private readonly lookupPreview;
14
14
  private readonly upstreamHost;
15
15
  constructor(secret?: string, lookupPreview?: PreviewRecordLookup, upstreamHost?: string);
16
+ private readonly taskUpstreamHosts;
16
17
  private signature;
17
- createPreviewUrl(taskId: string, port: number): string;
18
+ createPreviewUrl(taskId: string, port: number, upstreamHost?: string): string;
19
+ /** Drop a task's upstream override when its preview stops or it is removed. */
20
+ clearPreviewUpstream(taskId: string): void;
21
+ private activityListener?;
22
+ /** Observe authorized preview traffic, e.g. to feed an idle sweep. */
23
+ onPreviewActivity(listener: (taskId: string) => void): void;
18
24
  private parseTarget;
19
25
  private upstreamRequestHeaders;
20
26
  private rewriteLocation;
@@ -1 +1 @@
1
- {"version":3,"file":"workPreviewProxyService.d.ts","sourceRoot":"","sources":["../../src/services/workPreviewProxyService.ts"],"names":[],"mappings":"AAkBA,OAAa,EAEX,KAAK,eAAe,EAErB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAMjD,eAAO,MAAM,yBAAyB,uBAAuB,CAAC;AAmF9D,UAAU,aAAa;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,MAAM,mBAAmB,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,aAAa,GAAG,SAAS,CAAC;AA0HhF,eAAO,MAAM,kBAAkB,YACpB,MAAM,eACF,MAAM,iBACJ,MAAM,KACpB,MA0DF,CAAC;AAeF,qBAAa,uBAAuB;IAEhC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAH/B,YACmB,MAAM,SAAsB,EAC5B,aAAa,GAAE,mBAA0C,EACzD,YAAY,SAAwB,EACnD;IAEJ,OAAO,CAAC,SAAS;IAOjB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAUrD;IAED,OAAO,CAAC,WAAW;IAuDnB,OAAO,CAAC,sBAAsB;IAyB9B,OAAO,CAAC,eAAe;IAkBvB,OAAO,CAAC,oBAAoB;IAiD5B,UAAU,YAAa,OAAO,YAAY,QAAQ,KAAG,IAAI,CAmGvD;IAEF,gBAAgB,CACd,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GACX,OAAO,CAkET;CACF;AAED,eAAO,MAAM,uBAAuB,yBAAgC,CAAC;eACtD,uBAAuB"}
1
+ {"version":3,"file":"workPreviewProxyService.d.ts","sourceRoot":"","sources":["../../src/services/workPreviewProxyService.ts"],"names":[],"mappings":"AAkBA,OAAa,EAEX,KAAK,eAAe,EAErB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAMjD,eAAO,MAAM,yBAAyB,uBAAuB,CAAC;AAmF9D,UAAU,aAAa;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,MAAM,mBAAmB,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,aAAa,GAAG,SAAS,CAAC;AA2HhF,eAAO,MAAM,kBAAkB,YACpB,MAAM,eACF,MAAM,iBACJ,MAAM,KACpB,MA0DF,CAAC;AAeF,qBAAa,uBAAuB;IAEhC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAH/B,YACmB,MAAM,SAAsB,EAC5B,aAAa,GAAE,mBAA0C,EACzD,YAAY,SAAwB,EACnD;IAMJ,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA6B;IAE/D,OAAO,CAAC,SAAS;IAOjB,gBAAgB,CACd,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM,CAeR;IAED,+EAA+E;IAC/E,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAEzC;IAED,OAAO,CAAC,gBAAgB,CAAC,CAA2B;IAEpD,sEAAsE;IACtE,iBAAiB,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAE1D;IAED,OAAO,CAAC,WAAW;IAgEnB,OAAO,CAAC,sBAAsB;IAyB9B,OAAO,CAAC,eAAe;IAkBvB,OAAO,CAAC,oBAAoB;IAiD5B,UAAU,YAAa,OAAO,YAAY,QAAQ,KAAG,IAAI,CAmGvD;IAEF,gBAAgB,CACd,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GACX,OAAO,CAkET;CACF;AAED,eAAO,MAAM,uBAAuB,yBAAgC,CAAC;eACtD,uBAAuB"}
@@ -238,6 +238,11 @@ export class WorkPreviewProxyService {
238
238
  this.secret = secret;
239
239
  this.lookupPreview = lookupPreview;
240
240
  this.upstreamHost = upstreamHost;
241
+ // Per-task upstream host overrides (the Kubernetes backend targets the
242
+ // sandbox Pod IP). Server-side only — never part of the signed URL — and
243
+ // in-memory only, matching preview lifetimes: previews do not survive a
244
+ // backend restart.
245
+ this.taskUpstreamHosts = new Map();
241
246
  this.handleHttp = (request, response) => {
242
247
  const target = this.parseTarget(request.originalUrl || request.url);
243
248
  if (!target) {
@@ -259,7 +264,7 @@ export class WorkPreviewProxyService {
259
264
  return;
260
265
  }
261
266
  const upstreamRequest = http.request({
262
- hostname: this.upstreamHost,
267
+ hostname: target.upstreamHost,
263
268
  port: target.port,
264
269
  path: target.upstreamPath,
265
270
  method: request.method,
@@ -325,17 +330,31 @@ export class WorkPreviewProxyService {
325
330
  .update(`${taskId}:${port}:${nonce}`)
326
331
  .digest('base64url');
327
332
  }
328
- createPreviewUrl(taskId, port) {
333
+ createPreviewUrl(taskId, port, upstreamHost) {
329
334
  if (!TASK_ID_PATTERN.test(taskId)) {
330
335
  throw new Error('Work preview task ID is invalid.');
331
336
  }
332
337
  if (!Number.isInteger(port) || port < 1 || port > 65535) {
333
338
  throw new Error('Work preview port is invalid.');
334
339
  }
340
+ if (upstreamHost) {
341
+ this.taskUpstreamHosts.set(taskId, upstreamHost.replace(/^\[|\]$/g, ''));
342
+ }
343
+ else {
344
+ this.taskUpstreamHosts.delete(taskId);
345
+ }
335
346
  const nonce = crypto.randomBytes(16).toString('base64url');
336
347
  const signature = this.signature(taskId, port, nonce);
337
348
  return `${WORK_PREVIEW_PROXY_PREFIX}/${encodeURIComponent(taskId)}/${port}.${nonce}.${signature}/`;
338
349
  }
350
+ /** Drop a task's upstream override when its preview stops or it is removed. */
351
+ clearPreviewUpstream(taskId) {
352
+ this.taskUpstreamHosts.delete(taskId);
353
+ }
354
+ /** Observe authorized preview traffic, e.g. to feed an idle sweep. */
355
+ onPreviewActivity(listener) {
356
+ this.activityListener = listener;
357
+ }
339
358
  parseTarget(rawUrl) {
340
359
  let url;
341
360
  try {
@@ -385,7 +404,16 @@ export class WorkPreviewProxyService {
385
404
  return undefined;
386
405
  }
387
406
  const upstreamPath = `/${url.pathname.slice(proxyBasePath.length)}${url.search}`;
388
- return { taskId, port, proxyBasePath, upstreamPath };
407
+ // Every authorized preview request (HTTP and WebSocket both resolve
408
+ // through here) counts as task activity for the idle sweep.
409
+ this.activityListener?.(taskId);
410
+ return {
411
+ taskId,
412
+ port,
413
+ proxyBasePath,
414
+ upstreamPath,
415
+ upstreamHost: this.taskUpstreamHosts.get(taskId) ?? this.upstreamHost,
416
+ };
389
417
  }
390
418
  upstreamRequestHeaders(headers, target) {
391
419
  const outgoing = {};
@@ -399,17 +427,17 @@ export class WorkPreviewProxyService {
399
427
  }
400
428
  outgoing[name] = value;
401
429
  }
402
- outgoing.host = `${formatHostForUrl(this.upstreamHost)}:${target.port}`;
430
+ outgoing.host = `${formatHostForUrl(target.upstreamHost)}:${target.port}`;
403
431
  outgoing['accept-encoding'] = 'identity';
404
432
  if (headers.origin) {
405
- outgoing.origin = `http://${formatHostForUrl(this.upstreamHost)}:${target.port}`;
433
+ outgoing.origin = `http://${formatHostForUrl(target.upstreamHost)}:${target.port}`;
406
434
  }
407
435
  return outgoing;
408
436
  }
409
437
  rewriteLocation(value, target) {
410
438
  try {
411
- const location = new URL(value, `http://${formatHostForUrl(this.upstreamHost)}:${target.port}`);
412
- if (location.hostname.replace(/^\[|\]$/g, '') === this.upstreamHost &&
439
+ const location = new URL(value, `http://${formatHostForUrl(target.upstreamHost)}:${target.port}`);
440
+ if (location.hostname.replace(/^\[|\]$/g, '') === target.upstreamHost &&
413
441
  Number(location.port || 80) === target.port) {
414
442
  return `${target.proxyBasePath}${location.pathname.replace(/^\/+/, '')}${location.search}${location.hash}`;
415
443
  }
@@ -462,7 +490,7 @@ export class WorkPreviewProxyService {
462
490
  headers.connection = 'Upgrade';
463
491
  headers.upgrade = request.headers.upgrade || 'websocket';
464
492
  const upstreamRequest = http.request({
465
- hostname: this.upstreamHost,
493
+ hostname: target.upstreamHost,
466
494
  port: target.port,
467
495
  path: target.upstreamPath,
468
496
  method: request.method,
@@ -1 +1 @@
1
- {"version":3,"file":"workPreviewProxyService.js","sourceRoot":"","sources":["../../src/services/workPreviewProxyService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workPreviewProxyService.js","sourceRoot":"","sources":["../../src/services/workPreviewProxyService.ts"],"names":[],"mappings":"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"}