@workclaw/openclaw-workclaw 1.0.30 → 1.0.33

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 (365) hide show
  1. package/dist/_virtual/_commonjsHelpers.js +8 -0
  2. package/dist/_virtual/ipaddr.js +4 -0
  3. package/dist/_virtual/jiti.js +4 -0
  4. package/dist/_virtual/main.js +4 -0
  5. package/dist/api.js +4 -373
  6. package/dist/index.d.ts +1 -1
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +89 -1916
  9. package/dist/node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/index.js +163 -0
  10. package/dist/node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/utilities.js +32 -0
  11. package/dist/node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/vendor/ansi-styles/index.js +188 -0
  12. package/dist/node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/vendor/supports-color/browser.js +25 -0
  13. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/account-id-C6v13Xic.js +4 -0
  14. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/auth-profiles-Db4Eg6ht.js +24 -0
  15. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/bash-tools.exec-runtime--1hhz8C_.js +46 -0
  16. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/bash-tools.schemas-BqpDemKo.js +32 -0
  17. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/boolean-DbfRNnYl.js +14 -0
  18. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/boundary-file-read-BymsBHso.js +172 -0
  19. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/bundled-Cuj8sKt6.js +18 -0
  20. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/bundled-dir-Cq5y_NKM.js +109 -0
  21. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/bundled-plugin-metadata-BJMD48hn.js +260 -0
  22. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/channel-entry-contract-BoTfqLnn.js +176 -0
  23. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/cli-name-DPC4W7Fo.js +22 -0
  24. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/command-format-LqDv8ows.js +24 -0
  25. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/command-registration-Dxq1bCXM.js +16 -0
  26. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/commands-registry-normalize-Bk0WYUI0.js +94 -0
  27. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/commands-registry.data-D99VdOlX.js +940 -0
  28. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/config--3Msyf4f.js +20 -0
  29. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/config-schema-C6kUPI7B.js +33 -0
  30. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/config-schema-DB8FqQH8.js +82 -0
  31. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/conversation-binding-C3EIaK9Z.js +19 -0
  32. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/core-DpZtjMWz.js +51 -0
  33. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/dedupe-DM7iBj7C.js +60 -0
  34. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/discovery-Cgp95o2R.js +649 -0
  35. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/dispatch-2DAqwFVE.js +33 -0
  36. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/errors-Dyla6m1G.js +13 -0
  37. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/exec-approvals-CLXc_BYU.js +212 -0
  38. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/exec-defaults-DBnaZeLQ.js +13 -0
  39. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/exec-jRxy02_4.js +9 -0
  40. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/exec-safe-bin-trust-DOmID2EO.js +638 -0
  41. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/exec-safety-C8v0dsfc.js +24 -0
  42. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/facade-loader-B83leEeb.js +10 -0
  43. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/facade-runtime-B04URCVZ.js +14 -0
  44. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/file-identity-sp9axE-E.js +411 -0
  45. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/file-lock-D016H3tC.js +5 -0
  46. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/gateway-control-ui-origins-B-lkqr3D.js +23 -0
  47. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/gateway-request-scope-BEWoJTx4.js +3 -0
  48. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/global-singleton-DhGoboiG.js +14 -0
  49. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/helpers-CI2CkXhU.js +7 -0
  50. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/home-dir-BEqRdfoa.js +67 -0
  51. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/host-env-security-B-Ebh6At.js +334 -0
  52. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/ids-By7Nkc8R.js +76 -0
  53. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/inbound-path-policy-CQkSSeSi.js +26 -0
  54. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/internal-hooks-D52pUqod.js +5 -0
  55. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/io-DDkf_FUu.js +14328 -0
  56. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/ip-CdfoCORt.js +2 -0
  57. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/json-files-DACY7Zw5.js +22 -0
  58. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/legacy-names-C7VUgVdg.js +5 -0
  59. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/links-BlUEqVE8.js +15 -0
  60. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/loader-DYJR63Q1.js +27 -0
  61. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/logger-BMuqDP66.js +26 -0
  62. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/manager-szyCqvou.js +22 -0
  63. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/manifest-CjPIwluH.js +409 -0
  64. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/manifest-registry-CK0zNybm.js +394 -0
  65. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/map-size-DhG4ditB.js +15 -0
  66. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/message-channel-DXsjCySM.js +32 -0
  67. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/mime-BjR-Aw-Q.js +42 -0
  68. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/min-host-version-CmguvhGB.js +49 -0
  69. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/model-auth-markers-YVQDqG1J.js +8 -0
  70. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/model-selection-cli-U7l5Ifek.js +14 -0
  71. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/models-config-B-YHRI3g.js +40 -0
  72. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/native-command-session-targets-BW3SPx-T.js +11 -0
  73. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/network-mode-D3yzFBsD.js +15 -0
  74. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/node-require-DvwmVoHm.js +14 -0
  75. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/node-sqlite-FGjwOqiS.js +3 -0
  76. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/openclaw-root-BNWw3cXT.js +69 -0
  77. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/order-6WHL2fZu.js +26 -0
  78. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/parse-duration-amE_QFsj.js +42 -0
  79. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/path-safety-CKqzLERR.js +308 -0
  80. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/paths-LCYGfrV7.js +95 -0
  81. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/process-scoped-map-Cv-PkzaO.js +11 -0
  82. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/profile-utils-Dh8DVvPv.js +17 -0
  83. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/prototype-keys-BKGE_uzN.js +11 -0
  84. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/provider-env-vars-DDfJbkrO.js +150 -0
  85. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/provider-id-B3nZBDJJ.js +15 -0
  86. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/provider-runtime-O-n0cjZo.js +22 -0
  87. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/public-surface-loader-CSDxBey4.js +14 -0
  88. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/redact-D4nea1HF.js +2 -0
  89. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/ref-contract-B1q5N0Lz.js +35 -0
  90. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/registry-DE4nHTjg.js +54 -0
  91. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/registry-loaded-B8D6rQiJ.js +62 -0
  92. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/registry-nEl7QZ30.js +3 -0
  93. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/runtime-Clo2XF6T.js +27 -0
  94. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/runtime-channel-state-Ck2VkX9T.js +20 -0
  95. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/runtime-guard-DqVOvWAZ.js +23 -0
  96. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/runtime-state-Cd3jnHgw.js +4 -0
  97. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/schema-validator-Bo7NeV8w.js +3 -0
  98. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/scp-host-CiFVRWHy.js +38 -0
  99. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/sdk-alias-Bo1huP7M.js +315 -0
  100. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/session-binding-service-D6sb-LrK.js +9 -0
  101. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/session-write-lock-Dk7FbMr_.js +6 -0
  102. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/setup-helpers-ChrkNnYE.js +5 -0
  103. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/setup-registry-BPL6c_Zk.js +16 -0
  104. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/setup-wizard-helpers-DnMkYslk.js +19 -0
  105. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/skills-Djbt9HGh.js +21 -0
  106. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/slots-PynIdqZ_.js +10 -0
  107. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/string-coerce-BUSzWgUA.js +25 -0
  108. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/string-normalization-DIJRAo0o.js +20 -0
  109. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/strip-inbound-meta-WCHWW8is.js +12 -0
  110. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/subsystem-BHv2zSx6.js +15 -0
  111. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/system-events-CfifhXT7.js +3 -0
  112. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/tailscale-status-Ch1LdrMM.js +5 -0
  113. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/task-registry-2LJDZL29.js +15 -0
  114. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/telegram-command-config-TdpOuZ__.js +66 -0
  115. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/terminal-link-B3nCYQJi.js +10 -0
  116. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/theme-CVJvORNs.js +27 -0
  117. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/thinking-_rqwdGD8.js +44 -0
  118. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/thinking.shared-Dginn1He.js +14 -0
  119. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/tmp-openclaw-dir-DrKSsX71.js +103 -0
  120. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/tool-policy-CwZyJfFc.js +300 -0
  121. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/types-BfKfz-lz.js +38 -0
  122. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/types.secrets-C9RpLzA0.js +53 -0
  123. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/utils-DGFSjtQF.js +36 -0
  124. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/version-b06Uhxnq.js +82 -0
  125. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/workspace-oVBetctb.js +20 -0
  126. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/zod-schema-Cpw1qu03.js +1299 -0
  127. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/zod-schema.agent-runtime-D48J52r_.js +620 -0
  128. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/zod-schema.core-BrzjtZhM.js +597 -0
  129. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/zod-schema.providers-core-CX8AFeyJ.js +1354 -0
  130. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/zod-schema.providers-whatsapp-7E9bf9oA.js +130 -0
  131. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/dist/zod-schema.sensitive-BFZ4qze6.js +5 -0
  132. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@mariozechner/pi-ai/dist/models.generated.js +14275 -0
  133. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@mariozechner/pi-ai/dist/models.js +16 -0
  134. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@mariozechner/pi-ai/dist/utils/oauth/anthropic.js +314 -0
  135. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@mariozechner/pi-ai/dist/utils/oauth/github-copilot.js +256 -0
  136. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@mariozechner/pi-ai/dist/utils/oauth/google-antigravity.js +315 -0
  137. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@mariozechner/pi-ai/dist/utils/oauth/google-gemini-cli.js +402 -0
  138. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@mariozechner/pi-ai/dist/utils/oauth/index.js +41 -0
  139. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@mariozechner/pi-ai/dist/utils/oauth/oauth-page.js +103 -0
  140. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@mariozechner/pi-ai/dist/utils/oauth/openai-codex.js +335 -0
  141. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@mariozechner/pi-ai/dist/utils/oauth/pkce.js +20 -0
  142. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/system/policy.js +34 -0
  143. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/any/any.js +8 -0
  144. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/argument/argument.js +8 -0
  145. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/array/array.js +8 -0
  146. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/async-iterator/async-iterator.js +8 -0
  147. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/awaited/awaited.js +30 -0
  148. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/bigint/bigint.js +8 -0
  149. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/boolean/boolean.js +8 -0
  150. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/clone/type.js +7 -0
  151. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/clone/value.js +32 -0
  152. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/composite/composite.js +37 -0
  153. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/computed/computed.js +8 -0
  154. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/const/const.js +36 -0
  155. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/constructor/constructor.js +8 -0
  156. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/constructor-parameters/constructor-parameters.js +9 -0
  157. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/create/immutable.js +29 -0
  158. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/create/type.js +17 -0
  159. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/date/date.js +8 -0
  160. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/discard/discard.js +10 -0
  161. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/enum/enum.js +15 -0
  162. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/error/error.js +8 -0
  163. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/exclude/exclude-from-mapped-result.js +18 -0
  164. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/exclude/exclude-from-template-literal.js +8 -0
  165. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/exclude/exclude.js +21 -0
  166. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/extends/extends-check.js +265 -0
  167. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/extends/extends-from-mapped-key.js +24 -0
  168. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/extends/extends-from-mapped-result.js +19 -0
  169. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/extends/extends.js +16 -0
  170. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/extract/extract-from-mapped-result.js +18 -0
  171. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/extract/extract-from-template-literal.js +8 -0
  172. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/extract/extract.js +21 -0
  173. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/function/function.js +8 -0
  174. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/guard/kind.js +176 -0
  175. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/guard/type.js +272 -0
  176. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/guard/value.js +62 -0
  177. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/indexed/indexed-from-mapped-key.js +21 -0
  178. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/indexed/indexed-from-mapped-result.js +20 -0
  179. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/indexed/indexed-property-keys.js +21 -0
  180. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/indexed/indexed.js +61 -0
  181. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/instance-type/instance-type.js +9 -0
  182. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/instantiate/instantiate.js +86 -0
  183. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/integer/integer.js +8 -0
  184. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/intersect/intersect-create.js +11 -0
  185. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/intersect/intersect-evaluated.js +31 -0
  186. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/intersect/intersect.js +16 -0
  187. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/intrinsic/capitalize.js +7 -0
  188. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/intrinsic/intrinsic-from-mapped-key.js +25 -0
  189. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/intrinsic/intrinsic.js +55 -0
  190. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/intrinsic/lowercase.js +7 -0
  191. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/intrinsic/uncapitalize.js +7 -0
  192. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/intrinsic/uppercase.js +7 -0
  193. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/iterator/iterator.js +8 -0
  194. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/keyof/keyof-from-mapped-result.js +19 -0
  195. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/keyof/keyof-property-keys.js +36 -0
  196. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/keyof/keyof.js +31 -0
  197. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/literal/literal.js +12 -0
  198. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/mapped/mapped-result.js +11 -0
  199. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/mapped/mapped.js +76 -0
  200. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/module/compute.js +122 -0
  201. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/module/module.js +28 -0
  202. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/never/never.js +8 -0
  203. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/not/not.js +8 -0
  204. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/null/null.js +8 -0
  205. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/number/number.js +8 -0
  206. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/object/object.js +15 -0
  207. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/omit/omit-from-mapped-key.js +21 -0
  208. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/omit/omit-from-mapped-result.js +19 -0
  209. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/omit/omit.js +48 -0
  210. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/optional/optional-from-mapped-result.js +18 -0
  211. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/optional/optional.js +21 -0
  212. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/parameters/parameters.js +9 -0
  213. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/partial/partial-from-mapped-result.js +19 -0
  214. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/partial/partial.js +53 -0
  215. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/patterns/patterns.js +16 -0
  216. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/pick/pick-from-mapped-key.js +23 -0
  217. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/pick/pick-from-mapped-result.js +19 -0
  218. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/pick/pick.js +48 -0
  219. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/promise/promise.js +8 -0
  220. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/readonly/readonly-from-mapped-result.js +18 -0
  221. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/readonly/readonly.js +21 -0
  222. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/readonly-optional/readonly-optional.js +8 -0
  223. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/record/record.js +71 -0
  224. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/recursive/recursive.js +15 -0
  225. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/ref/ref.js +12 -0
  226. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/regexp/regexp.js +10 -0
  227. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/required/required-from-mapped-result.js +18 -0
  228. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/required/required.js +52 -0
  229. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/rest/rest.js +10 -0
  230. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/return-type/return-type.js +9 -0
  231. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/sets/set.js +30 -0
  232. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/string/string.js +8 -0
  233. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/symbol/symbol.js +8 -0
  234. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/symbols/symbols.js +12 -0
  235. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/template-literal/finite.js +27 -0
  236. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/template-literal/generate.js +38 -0
  237. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/template-literal/parse.js +128 -0
  238. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/template-literal/pattern.js +21 -0
  239. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/template-literal/syntax.js +45 -0
  240. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/template-literal/template-literal.js +12 -0
  241. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/template-literal/union.js +11 -0
  242. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/transform/transform.js +37 -0
  243. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/tuple/tuple.js +8 -0
  244. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/type/index.js +5 -0
  245. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/type/type.js +126 -0
  246. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/uint8array/uint8array.js +8 -0
  247. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/undefined/undefined.js +8 -0
  248. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/union/union-create.js +8 -0
  249. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/union/union-evaluated.js +26 -0
  250. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/union/union.js +9 -0
  251. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/unknown/unknown.js +8 -0
  252. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/unsafe/unsafe.js +8 -0
  253. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/type/void/void.js +8 -0
  254. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/@sinclair/typebox/build/esm/value/guard/guard.js +18 -0
  255. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/dotenv/lib/main.js +318 -0
  256. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/ipaddr.js/lib/ipaddr.js +805 -0
  257. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/jiti/dist/jiti.js +3869 -0
  258. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/jiti/lib/jiti.js +26 -0
  259. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/json5/dist/index.js +1085 -0
  260. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/yaml/browser/dist/doc/anchors.js +12 -0
  261. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/yaml/browser/dist/doc/applyReviver.js +45 -0
  262. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/yaml/browser/dist/doc/createNode.js +58 -0
  263. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/yaml/browser/dist/log.js +8 -0
  264. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/yaml/browser/dist/nodes/Alias.js +111 -0
  265. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/yaml/browser/dist/nodes/Collection.js +138 -0
  266. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/yaml/browser/dist/nodes/Node.js +36 -0
  267. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/yaml/browser/dist/nodes/Pair.js +35 -0
  268. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/yaml/browser/dist/nodes/Scalar.js +25 -0
  269. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/yaml/browser/dist/nodes/YAMLMap.js +139 -0
  270. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/yaml/browser/dist/nodes/YAMLSeq.js +111 -0
  271. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/yaml/browser/dist/nodes/addPairToJSMap.js +59 -0
  272. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/yaml/browser/dist/nodes/identity.js +52 -0
  273. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/yaml/browser/dist/nodes/toJS.js +25 -0
  274. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/yaml/browser/dist/parse/lexer.js +6 -0
  275. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/yaml/browser/dist/schema/yaml-1.1/merge.js +55 -0
  276. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/yaml/browser/dist/schema/yaml-1.1/omap.js +50 -0
  277. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/yaml/browser/dist/schema/yaml-1.1/pairs.js +37 -0
  278. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/yaml/browser/dist/schema/yaml-1.1/set.js +65 -0
  279. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/yaml/browser/dist/stringify/foldFlowLines.js +131 -0
  280. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/yaml/browser/dist/stringify/stringify.js +119 -0
  281. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/yaml/browser/dist/stringify/stringifyCollection.js +146 -0
  282. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/yaml/browser/dist/stringify/stringifyComment.js +12 -0
  283. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/yaml/browser/dist/stringify/stringifyPair.js +128 -0
  284. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/yaml/browser/dist/stringify/stringifyString.js +278 -0
  285. package/dist/node_modules/.pnpm/openclaw@2026.4.14_@emnapi__48b26e3018d2f6ac73290fb8288ef325/node_modules/openclaw/node_modules/yaml/browser/dist/visit.js +104 -0
  286. package/dist/packages/plugin/src/accounts.js +199 -0
  287. package/dist/packages/plugin/src/api/accounts-api.js +133 -0
  288. package/dist/packages/plugin/src/api/prompts-api.js +105 -0
  289. package/dist/packages/plugin/src/api/session-api.js +174 -0
  290. package/dist/packages/plugin/src/api/skills-api.js +60 -0
  291. package/dist/packages/plugin/src/api/workspace.js +30 -0
  292. package/dist/packages/plugin/src/channel.js +214 -0
  293. package/dist/packages/plugin/src/config-schema.js +51 -0
  294. package/dist/packages/plugin/src/connection/workclaw-client.js +282 -0
  295. package/dist/packages/plugin/src/gateway/agent-handlers.js +407 -0
  296. package/dist/packages/plugin/src/gateway/config-writer.js +149 -0
  297. package/dist/{cron-tasks-handler-C-mP3VmV.js → packages/plugin/src/gateway/cron-tasks-handler.js} +75 -6
  298. package/dist/packages/plugin/src/gateway/message-context.js +408 -0
  299. package/dist/packages/plugin/src/gateway/message-dispatcher.js +517 -0
  300. package/dist/packages/plugin/src/gateway/reconnect.js +177 -0
  301. package/dist/packages/plugin/src/gateway/skills-handler.js +511 -0
  302. package/dist/packages/plugin/src/gateway/skills-list-handler.js +172 -0
  303. package/dist/packages/plugin/src/gateway/tools-list-handler.js +88 -0
  304. package/dist/packages/plugin/src/gateway/workclaw-gateway.js +208 -0
  305. package/dist/packages/plugin/src/media/upload.js +126 -0
  306. package/dist/packages/plugin/src/outbound/index.js +88 -0
  307. package/dist/packages/plugin/src/outbound/workclaw-sender.js +79 -0
  308. package/dist/packages/plugin/src/setup-core.js +22 -0
  309. package/dist/packages/plugin/src/setup-surface.js +338 -0
  310. package/dist/packages/plugin/src/tools/openclaw-workclaw-cron/api/index.js +184 -0
  311. package/dist/packages/plugin/src/tools/openclaw-workclaw-cron/index.js +29 -0
  312. package/dist/packages/plugin/src/tools/openclaw-workclaw-cron/src/add/params.js +129 -0
  313. package/dist/packages/plugin/src/tools/openclaw-workclaw-cron/src/add/sync.js +139 -0
  314. package/dist/packages/plugin/src/tools/openclaw-workclaw-cron/src/disable/params.js +61 -0
  315. package/dist/packages/plugin/src/tools/openclaw-workclaw-cron/src/disable/sync.js +85 -0
  316. package/dist/packages/plugin/src/tools/openclaw-workclaw-cron/src/enable/params.js +61 -0
  317. package/dist/packages/plugin/src/tools/openclaw-workclaw-cron/src/enable/sync.js +85 -0
  318. package/dist/packages/plugin/src/tools/openclaw-workclaw-cron/src/notify/sync.js +102 -0
  319. package/dist/packages/plugin/src/tools/openclaw-workclaw-cron/src/remove/params.js +67 -0
  320. package/dist/packages/plugin/src/tools/openclaw-workclaw-cron/src/remove/sync.js +85 -0
  321. package/dist/packages/plugin/src/tools/openclaw-workclaw-cron/src/update/params.js +140 -0
  322. package/dist/packages/plugin/src/tools/openclaw-workclaw-cron/src/update/sync.js +113 -0
  323. package/dist/packages/plugin/src/tools/openclaw-workclaw-cron/utils/index.js +99 -0
  324. package/dist/packages/plugin/src/tools/openclaw-workclaw-cron/utils/tool-context.js +28 -0
  325. package/dist/setup-entry.js +1 -168
  326. package/dist/src/api/accounts-api.d.ts.map +1 -1
  327. package/dist/src/api/prompts-api.d.ts.map +1 -1
  328. package/dist/src/api/workspace.d.ts.map +1 -1
  329. package/dist/src/config-schema.d.ts +3 -85
  330. package/dist/src/config-schema.d.ts.map +1 -1
  331. package/dist/src/gateway/cron-tasks-handler.d.ts +2 -1
  332. package/dist/src/gateway/cron-tasks-handler.d.ts.map +1 -1
  333. package/dist/src/gateway/tools-list-handler.d.ts.map +1 -1
  334. package/dist/src/runtime.d.ts.map +1 -1
  335. package/dist/src/runtime.js +368 -0
  336. package/dist/src/secret-contract-api.js +7 -0
  337. package/dist/src/tools/openclaw-workclaw-cron/index.d.ts.map +1 -1
  338. package/dist/src/tools/openclaw-workclaw-cron/src/add/params.d.ts +0 -3
  339. package/dist/src/tools/openclaw-workclaw-cron/src/add/params.d.ts.map +1 -1
  340. package/dist/src/tools/openclaw-workclaw-cron/src/add/sync.d.ts +0 -3
  341. package/dist/src/tools/openclaw-workclaw-cron/src/add/sync.d.ts.map +1 -1
  342. package/dist/src/tools/openclaw-workclaw-cron/src/disable/params.d.ts +0 -3
  343. package/dist/src/tools/openclaw-workclaw-cron/src/disable/params.d.ts.map +1 -1
  344. package/dist/src/tools/openclaw-workclaw-cron/src/disable/sync.d.ts +0 -3
  345. package/dist/src/tools/openclaw-workclaw-cron/src/disable/sync.d.ts.map +1 -1
  346. package/dist/src/tools/openclaw-workclaw-cron/src/enable/params.d.ts +0 -3
  347. package/dist/src/tools/openclaw-workclaw-cron/src/enable/params.d.ts.map +1 -1
  348. package/dist/src/tools/openclaw-workclaw-cron/src/enable/sync.d.ts +0 -3
  349. package/dist/src/tools/openclaw-workclaw-cron/src/enable/sync.d.ts.map +1 -1
  350. package/dist/src/tools/openclaw-workclaw-cron/src/notify/sync.d.ts +0 -3
  351. package/dist/src/tools/openclaw-workclaw-cron/src/notify/sync.d.ts.map +1 -1
  352. package/dist/src/tools/openclaw-workclaw-cron/src/remove/params.d.ts +0 -3
  353. package/dist/src/tools/openclaw-workclaw-cron/src/remove/params.d.ts.map +1 -1
  354. package/dist/src/tools/openclaw-workclaw-cron/src/remove/sync.d.ts +0 -3
  355. package/dist/src/tools/openclaw-workclaw-cron/src/remove/sync.d.ts.map +1 -1
  356. package/dist/src/tools/openclaw-workclaw-cron/src/update/params.d.ts +0 -3
  357. package/dist/src/tools/openclaw-workclaw-cron/src/update/params.d.ts.map +1 -1
  358. package/dist/src/tools/openclaw-workclaw-cron/src/update/sync.d.ts +0 -3
  359. package/dist/src/tools/openclaw-workclaw-cron/src/update/sync.d.ts.map +1 -1
  360. package/dist/src/tools/openclaw-workclaw-cron/utils/tool-context.d.ts +9 -0
  361. package/dist/src/tools/openclaw-workclaw-cron/utils/tool-context.d.ts.map +1 -0
  362. package/openclaw.plugin.json +56 -44
  363. package/package.json +2 -2
  364. package/dist/channel-DSvR6Irx.js +0 -50017
  365. package/dist/jiti-4i2h0FGP.js +0 -4814
@@ -0,0 +1,1354 @@
1
+ import { s as normalizeOptionalString } from "./string-coerce-BUSzWgUA.js";
2
+ import { a as hasConfiguredSecretInput } from "./types.secrets-C9RpLzA0.js";
3
+ import { n as BlockStreamingCoalesceSchema, t as BlockStreamingChunkSchema, l as GroupPolicySchema, o as DmPolicySchema, S as RetryConfigSchema, v as ProviderCommandsSchema, h as MarkdownConfigSchema, C as SecretInputSchema, a as DmConfigSchema, i as ContextVisibilityModeSchema, x as ReplyToModeSchema, I as requireOpenAllowFrom, F as requireAllowlistAllowFrom, u as HexColorSchema, j as TtsConfigSchema, T as SecretRefSchema, s as ExecutableTokenSchema, m as MSTeamsReplyStyleSchema } from "./zod-schema.core-BrzjtZhM.js";
4
+ import { t as sensitive } from "./zod-schema.sensitive-BFZ4qze6.js";
5
+ import { s as ToolPolicySchema } from "./zod-schema.agent-runtime-D48J52r_.js";
6
+ import { t as isSafeScpRemoteHost } from "./scp-host-CiFVRWHy.js";
7
+ import { n as isValidInboundPathRootPattern } from "./inbound-path-policy-CQkSSeSi.js";
8
+ import { r as normalizeTelegramCommandDescription, i as normalizeTelegramCommandName, a as resolveTelegramCustomCommands } from "./telegram-command-config-TdpOuZ__.js";
9
+ import { z } from "zod";
10
+ const ChannelHeartbeatVisibilitySchema = z.object({
11
+ showOk: z.boolean().optional(),
12
+ showAlerts: z.boolean().optional(),
13
+ useIndicator: z.boolean().optional()
14
+ }).strict().optional();
15
+ const ChannelHealthMonitorSchema = z.object({ enabled: z.boolean().optional() }).strict().optional();
16
+ function forEachEnabledAccount(accounts, run) {
17
+ if (!accounts) return;
18
+ for (const [accountId, account] of Object.entries(accounts)) {
19
+ if (!account || account.enabled === false) continue;
20
+ run(accountId, account);
21
+ }
22
+ }
23
+ function validateTelegramWebhookSecretRequirements(value, ctx) {
24
+ const baseWebhookUrl = normalizeOptionalString(value.webhookUrl) ?? "";
25
+ const hasBaseWebhookSecret = hasConfiguredSecretInput(value.webhookSecret);
26
+ if (baseWebhookUrl && !hasBaseWebhookSecret) ctx.addIssue({
27
+ code: z.ZodIssueCode.custom,
28
+ message: "channels.telegram.webhookUrl requires channels.telegram.webhookSecret",
29
+ path: ["webhookSecret"]
30
+ });
31
+ forEachEnabledAccount(value.accounts, (accountId, account) => {
32
+ if (!(normalizeOptionalString(account.webhookUrl) ?? "")) return;
33
+ if (!hasConfiguredSecretInput(account.webhookSecret) && !hasBaseWebhookSecret) ctx.addIssue({
34
+ code: z.ZodIssueCode.custom,
35
+ message: "channels.telegram.accounts.*.webhookUrl requires channels.telegram.webhookSecret or channels.telegram.accounts.*.webhookSecret",
36
+ path: [
37
+ "accounts",
38
+ accountId,
39
+ "webhookSecret"
40
+ ]
41
+ });
42
+ });
43
+ }
44
+ function validateSlackSigningSecretRequirements(value, ctx) {
45
+ const baseMode = value.mode === "http" || value.mode === "socket" ? value.mode : "socket";
46
+ if (baseMode === "http" && !hasConfiguredSecretInput(value.signingSecret)) ctx.addIssue({
47
+ code: z.ZodIssueCode.custom,
48
+ message: 'channels.slack.mode="http" requires channels.slack.signingSecret',
49
+ path: ["signingSecret"]
50
+ });
51
+ forEachEnabledAccount(value.accounts, (accountId, account) => {
52
+ if ((account.mode === "http" || account.mode === "socket" ? account.mode : baseMode) !== "http") return;
53
+ if (!hasConfiguredSecretInput(account.signingSecret ?? value.signingSecret)) ctx.addIssue({
54
+ code: z.ZodIssueCode.custom,
55
+ message: 'channels.slack.accounts.*.mode="http" requires channels.slack.signingSecret or channels.slack.accounts.*.signingSecret',
56
+ path: [
57
+ "accounts",
58
+ accountId,
59
+ "signingSecret"
60
+ ]
61
+ });
62
+ });
63
+ }
64
+ const ToolPolicyBySenderSchema = z.record(z.string(), ToolPolicySchema).optional();
65
+ const DiscordIdSchema = z.union([z.string(), z.number()]).transform((value, ctx) => {
66
+ if (typeof value === "number") {
67
+ if (!Number.isSafeInteger(value) || value < 0) {
68
+ ctx.addIssue({
69
+ code: z.ZodIssueCode.custom,
70
+ message: `Discord ID "${String(value)}" is not a valid non-negative safe integer. Wrap it in quotes in your config file.`
71
+ });
72
+ return z.NEVER;
73
+ }
74
+ return String(value);
75
+ }
76
+ return value;
77
+ }).pipe(z.string());
78
+ const DiscordIdListSchema = z.array(DiscordIdSchema);
79
+ const TelegramInlineButtonsScopeSchema = z.enum([
80
+ "off",
81
+ "dm",
82
+ "group",
83
+ "all",
84
+ "allowlist"
85
+ ]);
86
+ const TelegramIdListSchema = z.array(z.union([z.string(), z.number()]));
87
+ const TelegramCapabilitiesSchema = z.union([z.array(z.string()), z.object({ inlineButtons: TelegramInlineButtonsScopeSchema.optional() }).strict()]);
88
+ const TextChunkModeSchema = z.enum(["length", "newline"]);
89
+ const UnifiedStreamingModeSchema = z.enum([
90
+ "off",
91
+ "partial",
92
+ "block",
93
+ "progress"
94
+ ]);
95
+ const ChannelStreamingBlockSchema = z.object({
96
+ enabled: z.boolean().optional(),
97
+ coalesce: BlockStreamingCoalesceSchema.optional()
98
+ }).strict();
99
+ const ChannelStreamingPreviewSchema = z.object({ chunk: BlockStreamingChunkSchema.optional() }).strict();
100
+ const ChannelPreviewStreamingConfigSchema = z.object({
101
+ mode: UnifiedStreamingModeSchema.optional(),
102
+ chunkMode: TextChunkModeSchema.optional(),
103
+ preview: ChannelStreamingPreviewSchema.optional(),
104
+ block: ChannelStreamingBlockSchema.optional()
105
+ }).strict();
106
+ const SlackStreamingConfigSchema = ChannelPreviewStreamingConfigSchema.extend({ nativeTransport: z.boolean().optional() }).strict();
107
+ const SlackCapabilitiesSchema = z.union([z.array(z.string()), z.object({ interactiveReplies: z.boolean().optional() }).strict()]);
108
+ const TelegramErrorPolicySchema = z.enum([
109
+ "always",
110
+ "once",
111
+ "silent"
112
+ ]).optional();
113
+ const TelegramTopicSchema = z.object({
114
+ requireMention: z.boolean().optional(),
115
+ ingest: z.boolean().optional(),
116
+ disableAudioPreflight: z.boolean().optional(),
117
+ groupPolicy: GroupPolicySchema.optional(),
118
+ skills: z.array(z.string()).optional(),
119
+ enabled: z.boolean().optional(),
120
+ allowFrom: z.array(z.union([z.string(), z.number()])).optional(),
121
+ systemPrompt: z.string().optional(),
122
+ agentId: z.string().optional(),
123
+ errorPolicy: TelegramErrorPolicySchema,
124
+ errorCooldownMs: z.number().int().nonnegative().optional()
125
+ }).strict();
126
+ const TelegramGroupSchema = z.object({
127
+ requireMention: z.boolean().optional(),
128
+ ingest: z.boolean().optional(),
129
+ disableAudioPreflight: z.boolean().optional(),
130
+ groupPolicy: GroupPolicySchema.optional(),
131
+ tools: ToolPolicySchema,
132
+ toolsBySender: ToolPolicyBySenderSchema,
133
+ skills: z.array(z.string()).optional(),
134
+ enabled: z.boolean().optional(),
135
+ allowFrom: z.array(z.union([z.string(), z.number()])).optional(),
136
+ systemPrompt: z.string().optional(),
137
+ topics: z.record(z.string(), TelegramTopicSchema.optional()).optional(),
138
+ errorPolicy: TelegramErrorPolicySchema,
139
+ errorCooldownMs: z.number().int().nonnegative().optional()
140
+ }).strict();
141
+ const AutoTopicLabelSchema = z.union([z.boolean(), z.object({
142
+ enabled: z.boolean().optional(),
143
+ prompt: z.string().optional()
144
+ }).strict()]).optional();
145
+ const TelegramDirectSchema = z.object({
146
+ dmPolicy: DmPolicySchema.optional(),
147
+ tools: ToolPolicySchema,
148
+ toolsBySender: ToolPolicyBySenderSchema,
149
+ skills: z.array(z.string()).optional(),
150
+ enabled: z.boolean().optional(),
151
+ allowFrom: z.array(z.union([z.string(), z.number()])).optional(),
152
+ systemPrompt: z.string().optional(),
153
+ topics: z.record(z.string(), TelegramTopicSchema.optional()).optional(),
154
+ errorPolicy: TelegramErrorPolicySchema,
155
+ errorCooldownMs: z.number().int().nonnegative().optional(),
156
+ requireTopic: z.boolean().optional(),
157
+ autoTopicLabel: AutoTopicLabelSchema
158
+ }).strict();
159
+ const TelegramCustomCommandSchema = z.object({
160
+ command: z.string().overwrite(normalizeTelegramCommandName),
161
+ description: z.string().overwrite(normalizeTelegramCommandDescription)
162
+ }).strict();
163
+ const validateTelegramCustomCommands = (value, ctx) => {
164
+ if (!value.customCommands || value.customCommands.length === 0) return;
165
+ const { issues } = resolveTelegramCustomCommands({
166
+ commands: value.customCommands
167
+ });
168
+ for (const issue of issues) ctx.addIssue({
169
+ code: z.ZodIssueCode.custom,
170
+ path: [
171
+ "customCommands",
172
+ issue.index,
173
+ issue.field
174
+ ],
175
+ message: issue.message
176
+ });
177
+ };
178
+ const TelegramAccountSchemaBase = z.object({
179
+ name: z.string().optional(),
180
+ capabilities: TelegramCapabilitiesSchema.optional(),
181
+ execApprovals: z.object({
182
+ enabled: z.boolean().optional(),
183
+ approvers: TelegramIdListSchema.optional(),
184
+ agentFilter: z.array(z.string()).optional(),
185
+ sessionFilter: z.array(z.string()).optional(),
186
+ target: z.enum([
187
+ "dm",
188
+ "channel",
189
+ "both"
190
+ ]).optional()
191
+ }).strict().optional(),
192
+ markdown: MarkdownConfigSchema,
193
+ enabled: z.boolean().optional(),
194
+ commands: ProviderCommandsSchema,
195
+ customCommands: z.array(TelegramCustomCommandSchema).optional(),
196
+ configWrites: z.boolean().optional(),
197
+ dmPolicy: DmPolicySchema.optional().default("pairing"),
198
+ botToken: SecretInputSchema.optional().register(sensitive),
199
+ tokenFile: z.string().optional(),
200
+ replyToMode: ReplyToModeSchema.optional(),
201
+ groups: z.record(z.string(), TelegramGroupSchema.optional()).optional(),
202
+ allowFrom: z.array(z.union([z.string(), z.number()])).optional(),
203
+ defaultTo: z.union([z.string(), z.number()]).optional(),
204
+ groupAllowFrom: z.array(z.union([z.string(), z.number()])).optional(),
205
+ groupPolicy: GroupPolicySchema.optional().default("allowlist"),
206
+ contextVisibility: ContextVisibilityModeSchema.optional(),
207
+ historyLimit: z.number().int().min(0).optional(),
208
+ dmHistoryLimit: z.number().int().min(0).optional(),
209
+ dms: z.record(z.string(), DmConfigSchema.optional()).optional(),
210
+ direct: z.record(z.string(), TelegramDirectSchema.optional()).optional(),
211
+ textChunkLimit: z.number().int().positive().optional(),
212
+ streaming: ChannelPreviewStreamingConfigSchema.optional(),
213
+ mediaMaxMb: z.number().positive().optional(),
214
+ timeoutSeconds: z.number().int().positive().optional(),
215
+ retry: RetryConfigSchema,
216
+ network: z.object({
217
+ autoSelectFamily: z.boolean().optional(),
218
+ dnsResultOrder: z.enum(["ipv4first", "verbatim"]).optional(),
219
+ dangerouslyAllowPrivateNetwork: z.boolean().optional().describe("Dangerous opt-in for trusted Telegram fake-IP or transparent-proxy environments where api.telegram.org resolves to private/internal/special-use addresses during media downloads.")
220
+ }).strict().optional(),
221
+ proxy: z.string().optional(),
222
+ webhookUrl: z.string().optional().describe("Public HTTPS webhook URL registered with Telegram for inbound updates. This must be internet-reachable and requires channels.telegram.webhookSecret."),
223
+ webhookSecret: SecretInputSchema.optional().describe("Secret token sent to Telegram during webhook registration and verified on inbound webhook requests. Telegram returns this value for verification; this is not the gateway auth token and not the bot token.").register(sensitive),
224
+ webhookPath: z.string().optional().describe("Local webhook route path served by the gateway listener. Defaults to /telegram-webhook."),
225
+ webhookHost: z.string().optional().describe("Local bind host for the webhook listener. Defaults to 127.0.0.1; keep loopback unless you intentionally expose direct ingress."),
226
+ webhookPort: z.number().int().nonnegative().optional().describe("Local bind port for the webhook listener. Defaults to 8787; set to 0 to let the OS assign an ephemeral port."),
227
+ webhookCertPath: z.string().optional().describe("Path to the self-signed certificate (PEM) to upload to Telegram during webhook registration. Required for self-signed certs (direct IP or no domain)."),
228
+ actions: z.object({
229
+ reactions: z.boolean().optional(),
230
+ sendMessage: z.boolean().optional(),
231
+ poll: z.boolean().optional(),
232
+ deleteMessage: z.boolean().optional(),
233
+ editMessage: z.boolean().optional(),
234
+ sticker: z.boolean().optional(),
235
+ createForumTopic: z.boolean().optional(),
236
+ editForumTopic: z.boolean().optional()
237
+ }).strict().optional(),
238
+ threadBindings: z.object({
239
+ enabled: z.boolean().optional(),
240
+ idleHours: z.number().nonnegative().optional(),
241
+ maxAgeHours: z.number().nonnegative().optional(),
242
+ spawnSubagentSessions: z.boolean().optional(),
243
+ spawnAcpSessions: z.boolean().optional()
244
+ }).strict().optional(),
245
+ reactionNotifications: z.enum([
246
+ "off",
247
+ "own",
248
+ "all"
249
+ ]).optional(),
250
+ reactionLevel: z.enum([
251
+ "off",
252
+ "ack",
253
+ "minimal",
254
+ "extensive"
255
+ ]).optional(),
256
+ heartbeat: ChannelHeartbeatVisibilitySchema,
257
+ healthMonitor: ChannelHealthMonitorSchema,
258
+ linkPreview: z.boolean().optional(),
259
+ silentErrorReplies: z.boolean().optional(),
260
+ responsePrefix: z.string().optional(),
261
+ ackReaction: z.string().optional(),
262
+ errorPolicy: TelegramErrorPolicySchema,
263
+ errorCooldownMs: z.number().int().nonnegative().optional(),
264
+ apiRoot: z.string().url().optional(),
265
+ trustedLocalFileRoots: z.array(z.string()).optional().describe("Trusted local filesystem roots for self-hosted Telegram Bot API absolute file_path values. Only absolute paths under these roots are read directly; all other absolute paths are rejected."),
266
+ autoTopicLabel: AutoTopicLabelSchema
267
+ }).strict();
268
+ const TelegramAccountSchema = TelegramAccountSchemaBase.superRefine((value, ctx) => {
269
+ validateTelegramCustomCommands(value, ctx);
270
+ });
271
+ TelegramAccountSchemaBase.extend({
272
+ accounts: z.record(z.string(), TelegramAccountSchema.optional()).optional(),
273
+ defaultAccount: z.string().optional()
274
+ }).superRefine((value, ctx) => {
275
+ requireOpenAllowFrom({
276
+ policy: value.dmPolicy,
277
+ allowFrom: value.allowFrom,
278
+ ctx,
279
+ path: ["allowFrom"],
280
+ message: 'channels.telegram.dmPolicy="open" requires channels.telegram.allowFrom to include "*"'
281
+ });
282
+ requireAllowlistAllowFrom({
283
+ policy: value.dmPolicy,
284
+ allowFrom: value.allowFrom,
285
+ ctx,
286
+ path: ["allowFrom"],
287
+ message: 'channels.telegram.dmPolicy="allowlist" requires channels.telegram.allowFrom to contain at least one sender ID'
288
+ });
289
+ validateTelegramCustomCommands(value, ctx);
290
+ if (value.accounts) for (const [accountId, account] of Object.entries(value.accounts)) {
291
+ if (!account) continue;
292
+ const effectivePolicy = account.dmPolicy ?? value.dmPolicy;
293
+ const effectiveAllowFrom = account.allowFrom ?? value.allowFrom;
294
+ requireOpenAllowFrom({
295
+ policy: effectivePolicy,
296
+ allowFrom: effectiveAllowFrom,
297
+ ctx,
298
+ path: [
299
+ "accounts",
300
+ accountId,
301
+ "allowFrom"
302
+ ],
303
+ message: 'channels.telegram.accounts.*.dmPolicy="open" requires channels.telegram.accounts.*.allowFrom (or channels.telegram.allowFrom) to include "*"'
304
+ });
305
+ requireAllowlistAllowFrom({
306
+ policy: effectivePolicy,
307
+ allowFrom: effectiveAllowFrom,
308
+ ctx,
309
+ path: [
310
+ "accounts",
311
+ accountId,
312
+ "allowFrom"
313
+ ],
314
+ message: 'channels.telegram.accounts.*.dmPolicy="allowlist" requires channels.telegram.accounts.*.allowFrom (or channels.telegram.allowFrom) to contain at least one sender ID'
315
+ });
316
+ }
317
+ if (!value.accounts) {
318
+ validateTelegramWebhookSecretRequirements(value, ctx);
319
+ return;
320
+ }
321
+ for (const [accountId, account] of Object.entries(value.accounts)) {
322
+ if (!account) continue;
323
+ if (account.enabled === false) continue;
324
+ const effectiveDmPolicy = account.dmPolicy ?? value.dmPolicy;
325
+ const effectiveAllowFrom = Array.isArray(account.allowFrom) ? account.allowFrom : value.allowFrom;
326
+ requireOpenAllowFrom({
327
+ policy: effectiveDmPolicy,
328
+ allowFrom: effectiveAllowFrom,
329
+ ctx,
330
+ path: [
331
+ "accounts",
332
+ accountId,
333
+ "allowFrom"
334
+ ],
335
+ message: 'channels.telegram.accounts.*.dmPolicy="open" requires channels.telegram.allowFrom or channels.telegram.accounts.*.allowFrom to include "*"'
336
+ });
337
+ requireAllowlistAllowFrom({
338
+ policy: effectiveDmPolicy,
339
+ allowFrom: effectiveAllowFrom,
340
+ ctx,
341
+ path: [
342
+ "accounts",
343
+ accountId,
344
+ "allowFrom"
345
+ ],
346
+ message: 'channels.telegram.accounts.*.dmPolicy="allowlist" requires channels.telegram.allowFrom or channels.telegram.accounts.*.allowFrom to contain at least one sender ID'
347
+ });
348
+ }
349
+ validateTelegramWebhookSecretRequirements(value, ctx);
350
+ });
351
+ const DiscordDmSchema = z.object({
352
+ enabled: z.boolean().optional(),
353
+ policy: DmPolicySchema.optional(),
354
+ allowFrom: DiscordIdListSchema.optional(),
355
+ groupEnabled: z.boolean().optional(),
356
+ groupChannels: DiscordIdListSchema.optional()
357
+ }).strict();
358
+ const DiscordGuildChannelSchema = z.object({
359
+ requireMention: z.boolean().optional(),
360
+ ignoreOtherMentions: z.boolean().optional(),
361
+ tools: ToolPolicySchema,
362
+ toolsBySender: ToolPolicyBySenderSchema,
363
+ skills: z.array(z.string()).optional(),
364
+ enabled: z.boolean().optional(),
365
+ users: DiscordIdListSchema.optional(),
366
+ roles: DiscordIdListSchema.optional(),
367
+ systemPrompt: z.string().optional(),
368
+ includeThreadStarter: z.boolean().optional(),
369
+ autoThread: z.boolean().optional(),
370
+ autoThreadName: z.enum(["message", "generated"]).optional(),
371
+ autoArchiveDuration: z.union([
372
+ z.enum([
373
+ "60",
374
+ "1440",
375
+ "4320",
376
+ "10080"
377
+ ]),
378
+ z.literal(60),
379
+ z.literal(1440),
380
+ z.literal(4320),
381
+ z.literal(10080)
382
+ ]).optional()
383
+ }).strict();
384
+ const DiscordGuildSchema = z.object({
385
+ slug: z.string().optional(),
386
+ requireMention: z.boolean().optional(),
387
+ ignoreOtherMentions: z.boolean().optional(),
388
+ tools: ToolPolicySchema,
389
+ toolsBySender: ToolPolicyBySenderSchema,
390
+ reactionNotifications: z.enum([
391
+ "off",
392
+ "own",
393
+ "all",
394
+ "allowlist"
395
+ ]).optional(),
396
+ users: DiscordIdListSchema.optional(),
397
+ roles: DiscordIdListSchema.optional(),
398
+ channels: z.record(z.string(), DiscordGuildChannelSchema.optional()).optional()
399
+ }).strict();
400
+ const DiscordUiSchema = z.object({ components: z.object({ accentColor: HexColorSchema.optional() }).strict().optional() }).strict().optional();
401
+ const DiscordVoiceAutoJoinSchema = z.object({
402
+ guildId: z.string().min(1),
403
+ channelId: z.string().min(1)
404
+ }).strict();
405
+ const DiscordVoiceSchema = z.object({
406
+ enabled: z.boolean().optional(),
407
+ autoJoin: z.array(DiscordVoiceAutoJoinSchema).optional(),
408
+ daveEncryption: z.boolean().optional(),
409
+ decryptionFailureTolerance: z.number().int().min(0).optional(),
410
+ tts: TtsConfigSchema.optional()
411
+ }).strict().optional();
412
+ const DiscordAccountSchema = z.object({
413
+ name: z.string().optional(),
414
+ capabilities: z.array(z.string()).optional(),
415
+ markdown: MarkdownConfigSchema,
416
+ enabled: z.boolean().optional(),
417
+ commands: ProviderCommandsSchema,
418
+ configWrites: z.boolean().optional(),
419
+ token: SecretInputSchema.optional().register(sensitive),
420
+ proxy: z.string().optional(),
421
+ allowBots: z.union([z.boolean(), z.literal("mentions")]).optional(),
422
+ dangerouslyAllowNameMatching: z.boolean().optional(),
423
+ groupPolicy: GroupPolicySchema.optional().default("allowlist"),
424
+ contextVisibility: ContextVisibilityModeSchema.optional(),
425
+ historyLimit: z.number().int().min(0).optional(),
426
+ dmHistoryLimit: z.number().int().min(0).optional(),
427
+ dms: z.record(z.string(), DmConfigSchema.optional()).optional(),
428
+ textChunkLimit: z.number().int().positive().optional(),
429
+ streaming: ChannelPreviewStreamingConfigSchema.optional(),
430
+ maxLinesPerMessage: z.number().int().positive().optional(),
431
+ mediaMaxMb: z.number().positive().optional(),
432
+ retry: RetryConfigSchema,
433
+ actions: z.object({
434
+ reactions: z.boolean().optional(),
435
+ stickers: z.boolean().optional(),
436
+ emojiUploads: z.boolean().optional(),
437
+ stickerUploads: z.boolean().optional(),
438
+ polls: z.boolean().optional(),
439
+ permissions: z.boolean().optional(),
440
+ messages: z.boolean().optional(),
441
+ threads: z.boolean().optional(),
442
+ pins: z.boolean().optional(),
443
+ search: z.boolean().optional(),
444
+ memberInfo: z.boolean().optional(),
445
+ roleInfo: z.boolean().optional(),
446
+ roles: z.boolean().optional(),
447
+ channelInfo: z.boolean().optional(),
448
+ voiceStatus: z.boolean().optional(),
449
+ events: z.boolean().optional(),
450
+ moderation: z.boolean().optional(),
451
+ channels: z.boolean().optional(),
452
+ presence: z.boolean().optional()
453
+ }).strict().optional(),
454
+ replyToMode: ReplyToModeSchema.optional(),
455
+ dmPolicy: DmPolicySchema.optional(),
456
+ allowFrom: DiscordIdListSchema.optional(),
457
+ defaultTo: z.string().optional(),
458
+ dm: DiscordDmSchema.optional(),
459
+ guilds: z.record(z.string(), DiscordGuildSchema.optional()).optional(),
460
+ heartbeat: ChannelHeartbeatVisibilitySchema,
461
+ healthMonitor: ChannelHealthMonitorSchema,
462
+ execApprovals: z.object({
463
+ enabled: z.boolean().optional(),
464
+ approvers: DiscordIdListSchema.optional(),
465
+ agentFilter: z.array(z.string()).optional(),
466
+ sessionFilter: z.array(z.string()).optional(),
467
+ cleanupAfterResolve: z.boolean().optional(),
468
+ target: z.enum([
469
+ "dm",
470
+ "channel",
471
+ "both"
472
+ ]).optional()
473
+ }).strict().optional(),
474
+ agentComponents: z.object({ enabled: z.boolean().optional() }).strict().optional(),
475
+ ui: DiscordUiSchema,
476
+ slashCommand: z.object({ ephemeral: z.boolean().optional() }).strict().optional(),
477
+ threadBindings: z.object({
478
+ enabled: z.boolean().optional(),
479
+ idleHours: z.number().nonnegative().optional(),
480
+ maxAgeHours: z.number().nonnegative().optional(),
481
+ spawnSubagentSessions: z.boolean().optional(),
482
+ spawnAcpSessions: z.boolean().optional()
483
+ }).strict().optional(),
484
+ intents: z.object({
485
+ presence: z.boolean().optional(),
486
+ guildMembers: z.boolean().optional()
487
+ }).strict().optional(),
488
+ voice: DiscordVoiceSchema,
489
+ pluralkit: z.object({
490
+ enabled: z.boolean().optional(),
491
+ token: SecretInputSchema.optional().register(sensitive)
492
+ }).strict().optional(),
493
+ responsePrefix: z.string().optional(),
494
+ ackReaction: z.string().optional(),
495
+ ackReactionScope: z.enum([
496
+ "group-mentions",
497
+ "group-all",
498
+ "direct",
499
+ "all",
500
+ "off",
501
+ "none"
502
+ ]).optional(),
503
+ activity: z.string().optional(),
504
+ status: z.enum([
505
+ "online",
506
+ "dnd",
507
+ "idle",
508
+ "invisible"
509
+ ]).optional(),
510
+ autoPresence: z.object({
511
+ enabled: z.boolean().optional(),
512
+ intervalMs: z.number().int().positive().optional(),
513
+ minUpdateIntervalMs: z.number().int().positive().optional(),
514
+ healthyText: z.string().optional(),
515
+ degradedText: z.string().optional(),
516
+ exhaustedText: z.string().optional()
517
+ }).strict().optional(),
518
+ activityType: z.union([
519
+ z.literal(0),
520
+ z.literal(1),
521
+ z.literal(2),
522
+ z.literal(3),
523
+ z.literal(4),
524
+ z.literal(5)
525
+ ]).optional(),
526
+ activityUrl: z.string().url().optional(),
527
+ inboundWorker: z.object({ runTimeoutMs: z.number().int().nonnegative().optional() }).strict().optional(),
528
+ eventQueue: z.object({
529
+ listenerTimeout: z.number().int().positive().optional(),
530
+ maxQueueSize: z.number().int().positive().optional(),
531
+ maxConcurrency: z.number().int().positive().optional()
532
+ }).strict().optional()
533
+ }).strict().superRefine((value, ctx) => {
534
+ const activityText = normalizeOptionalString(value.activity) ?? "";
535
+ const hasActivity = Boolean(activityText);
536
+ const hasActivityType = value.activityType !== void 0;
537
+ const activityUrl = normalizeOptionalString(value.activityUrl) ?? "";
538
+ const hasActivityUrl = Boolean(activityUrl);
539
+ if ((hasActivityType || hasActivityUrl) && !hasActivity) ctx.addIssue({
540
+ code: z.ZodIssueCode.custom,
541
+ message: "channels.discord.activity is required when activityType or activityUrl is set",
542
+ path: ["activity"]
543
+ });
544
+ if (value.activityType === 1 && !hasActivityUrl) ctx.addIssue({
545
+ code: z.ZodIssueCode.custom,
546
+ message: "channels.discord.activityUrl is required when activityType is 1 (Streaming)",
547
+ path: ["activityUrl"]
548
+ });
549
+ if (hasActivityUrl && value.activityType !== 1) ctx.addIssue({
550
+ code: z.ZodIssueCode.custom,
551
+ message: "channels.discord.activityType must be 1 (Streaming) when activityUrl is set",
552
+ path: ["activityType"]
553
+ });
554
+ const autoPresenceInterval = value.autoPresence?.intervalMs;
555
+ const autoPresenceMinUpdate = value.autoPresence?.minUpdateIntervalMs;
556
+ if (typeof autoPresenceInterval === "number" && typeof autoPresenceMinUpdate === "number" && autoPresenceMinUpdate > autoPresenceInterval) ctx.addIssue({
557
+ code: z.ZodIssueCode.custom,
558
+ message: "channels.discord.autoPresence.minUpdateIntervalMs must be less than or equal to channels.discord.autoPresence.intervalMs",
559
+ path: ["autoPresence", "minUpdateIntervalMs"]
560
+ });
561
+ });
562
+ DiscordAccountSchema.extend({
563
+ accounts: z.record(z.string(), DiscordAccountSchema.optional()).optional(),
564
+ defaultAccount: z.string().optional()
565
+ }).superRefine((value, ctx) => {
566
+ const dmPolicy = value.dmPolicy ?? value.dm?.policy ?? "pairing";
567
+ const allowFrom = value.allowFrom ?? value.dm?.allowFrom;
568
+ const allowFromPath = value.allowFrom !== void 0 ? ["allowFrom"] : ["dm", "allowFrom"];
569
+ requireOpenAllowFrom({
570
+ policy: dmPolicy,
571
+ allowFrom,
572
+ ctx,
573
+ path: [...allowFromPath],
574
+ message: 'channels.discord.dmPolicy="open" requires channels.discord.allowFrom (or channels.discord.dm.allowFrom) to include "*"'
575
+ });
576
+ requireAllowlistAllowFrom({
577
+ policy: dmPolicy,
578
+ allowFrom,
579
+ ctx,
580
+ path: [...allowFromPath],
581
+ message: 'channels.discord.dmPolicy="allowlist" requires channels.discord.allowFrom (or channels.discord.dm.allowFrom) to contain at least one sender ID'
582
+ });
583
+ if (!value.accounts) return;
584
+ for (const [accountId, account] of Object.entries(value.accounts)) {
585
+ if (!account) continue;
586
+ const effectivePolicy = account.dmPolicy ?? account.dm?.policy ?? value.dmPolicy ?? value.dm?.policy ?? "pairing";
587
+ const effectiveAllowFrom = account.allowFrom ?? account.dm?.allowFrom ?? value.allowFrom ?? value.dm?.allowFrom;
588
+ requireOpenAllowFrom({
589
+ policy: effectivePolicy,
590
+ allowFrom: effectiveAllowFrom,
591
+ ctx,
592
+ path: [
593
+ "accounts",
594
+ accountId,
595
+ "allowFrom"
596
+ ],
597
+ message: 'channels.discord.accounts.*.dmPolicy="open" requires channels.discord.accounts.*.allowFrom (or channels.discord.allowFrom) to include "*"'
598
+ });
599
+ requireAllowlistAllowFrom({
600
+ policy: effectivePolicy,
601
+ allowFrom: effectiveAllowFrom,
602
+ ctx,
603
+ path: [
604
+ "accounts",
605
+ accountId,
606
+ "allowFrom"
607
+ ],
608
+ message: 'channels.discord.accounts.*.dmPolicy="allowlist" requires channels.discord.accounts.*.allowFrom (or channels.discord.allowFrom) to contain at least one sender ID'
609
+ });
610
+ }
611
+ });
612
+ const GoogleChatDmSchema = z.object({
613
+ enabled: z.boolean().optional(),
614
+ policy: DmPolicySchema.optional().default("pairing"),
615
+ allowFrom: z.array(z.union([z.string(), z.number()])).optional()
616
+ }).strict().superRefine((value, ctx) => {
617
+ requireOpenAllowFrom({
618
+ policy: value.policy,
619
+ allowFrom: value.allowFrom,
620
+ ctx,
621
+ path: ["allowFrom"],
622
+ message: 'channels.googlechat.dm.policy="open" requires channels.googlechat.dm.allowFrom to include "*"'
623
+ });
624
+ requireAllowlistAllowFrom({
625
+ policy: value.policy,
626
+ allowFrom: value.allowFrom,
627
+ ctx,
628
+ path: ["allowFrom"],
629
+ message: 'channels.googlechat.dm.policy="allowlist" requires channels.googlechat.dm.allowFrom to contain at least one sender ID'
630
+ });
631
+ });
632
+ const GoogleChatGroupSchema = z.object({
633
+ enabled: z.boolean().optional(),
634
+ requireMention: z.boolean().optional(),
635
+ users: z.array(z.union([z.string(), z.number()])).optional(),
636
+ systemPrompt: z.string().optional()
637
+ }).strict();
638
+ const GoogleChatAccountSchema = z.object({
639
+ name: z.string().optional(),
640
+ capabilities: z.array(z.string()).optional(),
641
+ enabled: z.boolean().optional(),
642
+ configWrites: z.boolean().optional(),
643
+ allowBots: z.boolean().optional(),
644
+ dangerouslyAllowNameMatching: z.boolean().optional(),
645
+ requireMention: z.boolean().optional(),
646
+ groupPolicy: GroupPolicySchema.optional().default("allowlist"),
647
+ groupAllowFrom: z.array(z.union([z.string(), z.number()])).optional(),
648
+ groups: z.record(z.string(), GoogleChatGroupSchema.optional()).optional(),
649
+ defaultTo: z.string().optional(),
650
+ serviceAccount: z.union([
651
+ z.string(),
652
+ z.record(z.string(), z.unknown()),
653
+ SecretRefSchema
654
+ ]).optional().register(sensitive),
655
+ serviceAccountRef: SecretRefSchema.optional().register(sensitive),
656
+ serviceAccountFile: z.string().optional(),
657
+ audienceType: z.enum(["app-url", "project-number"]).optional(),
658
+ audience: z.string().optional(),
659
+ appPrincipal: z.string().optional(),
660
+ webhookPath: z.string().optional(),
661
+ webhookUrl: z.string().optional(),
662
+ botUser: z.string().optional(),
663
+ historyLimit: z.number().int().min(0).optional(),
664
+ dmHistoryLimit: z.number().int().min(0).optional(),
665
+ dms: z.record(z.string(), DmConfigSchema.optional()).optional(),
666
+ textChunkLimit: z.number().int().positive().optional(),
667
+ chunkMode: z.enum(["length", "newline"]).optional(),
668
+ blockStreaming: z.boolean().optional(),
669
+ blockStreamingCoalesce: BlockStreamingCoalesceSchema.optional(),
670
+ mediaMaxMb: z.number().positive().optional(),
671
+ replyToMode: ReplyToModeSchema.optional(),
672
+ actions: z.object({ reactions: z.boolean().optional() }).strict().optional(),
673
+ dm: GoogleChatDmSchema.optional(),
674
+ healthMonitor: ChannelHealthMonitorSchema,
675
+ typingIndicator: z.enum([
676
+ "none",
677
+ "message",
678
+ "reaction"
679
+ ]).optional(),
680
+ responsePrefix: z.string().optional()
681
+ }).strict();
682
+ GoogleChatAccountSchema.extend({
683
+ accounts: z.record(z.string(), GoogleChatAccountSchema.optional()).optional(),
684
+ defaultAccount: z.string().optional()
685
+ });
686
+ const SlackDmSchema = z.object({
687
+ enabled: z.boolean().optional(),
688
+ policy: DmPolicySchema.optional(),
689
+ allowFrom: z.array(z.union([z.string(), z.number()])).optional(),
690
+ groupEnabled: z.boolean().optional(),
691
+ groupChannels: z.array(z.union([z.string(), z.number()])).optional(),
692
+ replyToMode: ReplyToModeSchema.optional()
693
+ }).strict();
694
+ const SlackChannelSchema = z.object({
695
+ enabled: z.boolean().optional(),
696
+ requireMention: z.boolean().optional(),
697
+ tools: ToolPolicySchema,
698
+ toolsBySender: ToolPolicyBySenderSchema,
699
+ allowBots: z.boolean().optional(),
700
+ users: z.array(z.union([z.string(), z.number()])).optional(),
701
+ skills: z.array(z.string()).optional(),
702
+ systemPrompt: z.string().optional()
703
+ }).strict();
704
+ const SlackThreadSchema = z.object({
705
+ historyScope: z.enum(["thread", "channel"]).optional(),
706
+ inheritParent: z.boolean().optional(),
707
+ initialHistoryLimit: z.number().int().min(0).optional(),
708
+ requireExplicitMention: z.boolean().optional()
709
+ }).strict();
710
+ const SlackReplyToModeByChatTypeSchema = z.object({
711
+ direct: ReplyToModeSchema.optional(),
712
+ group: ReplyToModeSchema.optional(),
713
+ channel: ReplyToModeSchema.optional()
714
+ }).strict();
715
+ const SlackAccountSchema = z.object({
716
+ name: z.string().optional(),
717
+ mode: z.enum(["socket", "http"]).optional(),
718
+ signingSecret: SecretInputSchema.optional().register(sensitive),
719
+ webhookPath: z.string().optional(),
720
+ capabilities: SlackCapabilitiesSchema.optional(),
721
+ execApprovals: z.object({
722
+ enabled: z.boolean().optional(),
723
+ approvers: z.array(z.union([z.string(), z.number()])).optional(),
724
+ agentFilter: z.array(z.string()).optional(),
725
+ sessionFilter: z.array(z.string()).optional(),
726
+ target: z.enum([
727
+ "dm",
728
+ "channel",
729
+ "both"
730
+ ]).optional()
731
+ }).strict().optional(),
732
+ markdown: MarkdownConfigSchema,
733
+ enabled: z.boolean().optional(),
734
+ commands: ProviderCommandsSchema,
735
+ configWrites: z.boolean().optional(),
736
+ botToken: SecretInputSchema.optional().register(sensitive),
737
+ appToken: SecretInputSchema.optional().register(sensitive),
738
+ userToken: SecretInputSchema.optional().register(sensitive),
739
+ userTokenReadOnly: z.boolean().optional().default(true),
740
+ allowBots: z.boolean().optional(),
741
+ dangerouslyAllowNameMatching: z.boolean().optional(),
742
+ requireMention: z.boolean().optional(),
743
+ groupPolicy: GroupPolicySchema.optional(),
744
+ contextVisibility: ContextVisibilityModeSchema.optional(),
745
+ historyLimit: z.number().int().min(0).optional(),
746
+ dmHistoryLimit: z.number().int().min(0).optional(),
747
+ dms: z.record(z.string(), DmConfigSchema.optional()).optional(),
748
+ textChunkLimit: z.number().int().positive().optional(),
749
+ streaming: SlackStreamingConfigSchema.optional(),
750
+ mediaMaxMb: z.number().positive().optional(),
751
+ reactionNotifications: z.enum([
752
+ "off",
753
+ "own",
754
+ "all",
755
+ "allowlist"
756
+ ]).optional(),
757
+ reactionAllowlist: z.array(z.union([z.string(), z.number()])).optional(),
758
+ replyToMode: ReplyToModeSchema.optional(),
759
+ replyToModeByChatType: SlackReplyToModeByChatTypeSchema.optional(),
760
+ thread: SlackThreadSchema.optional(),
761
+ actions: z.object({
762
+ reactions: z.boolean().optional(),
763
+ messages: z.boolean().optional(),
764
+ pins: z.boolean().optional(),
765
+ search: z.boolean().optional(),
766
+ permissions: z.boolean().optional(),
767
+ memberInfo: z.boolean().optional(),
768
+ channelInfo: z.boolean().optional(),
769
+ emojiList: z.boolean().optional()
770
+ }).strict().optional(),
771
+ slashCommand: z.object({
772
+ enabled: z.boolean().optional(),
773
+ name: z.string().optional(),
774
+ sessionPrefix: z.string().optional(),
775
+ ephemeral: z.boolean().optional()
776
+ }).strict().optional(),
777
+ dmPolicy: DmPolicySchema.optional(),
778
+ allowFrom: z.array(z.union([z.string(), z.number()])).optional(),
779
+ defaultTo: z.string().optional(),
780
+ dm: SlackDmSchema.optional(),
781
+ channels: z.record(z.string(), SlackChannelSchema.optional()).optional(),
782
+ heartbeat: ChannelHeartbeatVisibilitySchema,
783
+ healthMonitor: ChannelHealthMonitorSchema,
784
+ responsePrefix: z.string().optional(),
785
+ ackReaction: z.string().optional(),
786
+ typingReaction: z.string().optional()
787
+ }).strict().superRefine(() => {
788
+ });
789
+ SlackAccountSchema.safeExtend({
790
+ mode: z.enum(["socket", "http"]).optional().default("socket"),
791
+ signingSecret: SecretInputSchema.optional().register(sensitive),
792
+ webhookPath: z.string().optional().default("/slack/events"),
793
+ groupPolicy: GroupPolicySchema.optional().default("allowlist"),
794
+ contextVisibility: ContextVisibilityModeSchema.optional(),
795
+ accounts: z.record(z.string(), SlackAccountSchema.optional()).optional(),
796
+ defaultAccount: z.string().optional()
797
+ }).superRefine((value, ctx) => {
798
+ const dmPolicy = value.dmPolicy ?? value.dm?.policy ?? "pairing";
799
+ const allowFrom = value.allowFrom ?? value.dm?.allowFrom;
800
+ const allowFromPath = value.allowFrom !== void 0 ? ["allowFrom"] : ["dm", "allowFrom"];
801
+ requireOpenAllowFrom({
802
+ policy: dmPolicy,
803
+ allowFrom,
804
+ ctx,
805
+ path: [...allowFromPath],
806
+ message: 'channels.slack.dmPolicy="open" requires channels.slack.allowFrom (or channels.slack.dm.allowFrom) to include "*"'
807
+ });
808
+ requireAllowlistAllowFrom({
809
+ policy: dmPolicy,
810
+ allowFrom,
811
+ ctx,
812
+ path: [...allowFromPath],
813
+ message: 'channels.slack.dmPolicy="allowlist" requires channels.slack.allowFrom (or channels.slack.dm.allowFrom) to contain at least one sender ID'
814
+ });
815
+ const baseMode = value.mode ?? "socket";
816
+ if (!value.accounts) {
817
+ validateSlackSigningSecretRequirements(value, ctx);
818
+ return;
819
+ }
820
+ for (const [accountId, account] of Object.entries(value.accounts)) {
821
+ if (!account) continue;
822
+ if (account.enabled === false) continue;
823
+ const accountMode = account.mode ?? baseMode;
824
+ const effectivePolicy = account.dmPolicy ?? account.dm?.policy ?? value.dmPolicy ?? value.dm?.policy ?? "pairing";
825
+ const effectiveAllowFrom = account.allowFrom ?? account.dm?.allowFrom ?? value.allowFrom ?? value.dm?.allowFrom;
826
+ requireOpenAllowFrom({
827
+ policy: effectivePolicy,
828
+ allowFrom: effectiveAllowFrom,
829
+ ctx,
830
+ path: [
831
+ "accounts",
832
+ accountId,
833
+ "allowFrom"
834
+ ],
835
+ message: 'channels.slack.accounts.*.dmPolicy="open" requires channels.slack.accounts.*.allowFrom (or channels.slack.allowFrom) to include "*"'
836
+ });
837
+ requireAllowlistAllowFrom({
838
+ policy: effectivePolicy,
839
+ allowFrom: effectiveAllowFrom,
840
+ ctx,
841
+ path: [
842
+ "accounts",
843
+ accountId,
844
+ "allowFrom"
845
+ ],
846
+ message: 'channels.slack.accounts.*.dmPolicy="allowlist" requires channels.slack.accounts.*.allowFrom (or channels.slack.allowFrom) to contain at least one sender ID'
847
+ });
848
+ if (accountMode !== "http") continue;
849
+ }
850
+ validateSlackSigningSecretRequirements(value, ctx);
851
+ });
852
+ const SignalGroupEntrySchema = z.object({
853
+ requireMention: z.boolean().optional(),
854
+ ingest: z.boolean().optional(),
855
+ tools: ToolPolicySchema,
856
+ toolsBySender: ToolPolicyBySenderSchema
857
+ }).strict();
858
+ const SignalGroupsSchema = z.record(z.string(), SignalGroupEntrySchema.optional()).optional();
859
+ const SignalAccountSchemaBase = z.object({
860
+ name: z.string().optional(),
861
+ capabilities: z.array(z.string()).optional(),
862
+ markdown: MarkdownConfigSchema,
863
+ enabled: z.boolean().optional(),
864
+ configWrites: z.boolean().optional(),
865
+ account: z.string().optional(),
866
+ accountUuid: z.string().optional(),
867
+ httpUrl: z.string().optional(),
868
+ httpHost: z.string().optional(),
869
+ httpPort: z.number().int().positive().optional(),
870
+ cliPath: ExecutableTokenSchema.optional(),
871
+ autoStart: z.boolean().optional(),
872
+ startupTimeoutMs: z.number().int().min(1e3).max(12e4).optional(),
873
+ receiveMode: z.union([z.literal("on-start"), z.literal("manual")]).optional(),
874
+ ignoreAttachments: z.boolean().optional(),
875
+ ignoreStories: z.boolean().optional(),
876
+ sendReadReceipts: z.boolean().optional(),
877
+ dmPolicy: DmPolicySchema.optional().default("pairing"),
878
+ allowFrom: z.array(z.union([z.string(), z.number()])).optional(),
879
+ defaultTo: z.string().optional(),
880
+ groupAllowFrom: z.array(z.union([z.string(), z.number()])).optional(),
881
+ groupPolicy: GroupPolicySchema.optional().default("allowlist"),
882
+ contextVisibility: ContextVisibilityModeSchema.optional(),
883
+ groups: SignalGroupsSchema,
884
+ historyLimit: z.number().int().min(0).optional(),
885
+ dmHistoryLimit: z.number().int().min(0).optional(),
886
+ dms: z.record(z.string(), DmConfigSchema.optional()).optional(),
887
+ textChunkLimit: z.number().int().positive().optional(),
888
+ chunkMode: z.enum(["length", "newline"]).optional(),
889
+ blockStreaming: z.boolean().optional(),
890
+ blockStreamingCoalesce: BlockStreamingCoalesceSchema.optional(),
891
+ mediaMaxMb: z.number().int().positive().optional(),
892
+ reactionNotifications: z.enum([
893
+ "off",
894
+ "own",
895
+ "all",
896
+ "allowlist"
897
+ ]).optional(),
898
+ reactionAllowlist: z.array(z.union([z.string(), z.number()])).optional(),
899
+ actions: z.object({ reactions: z.boolean().optional() }).strict().optional(),
900
+ reactionLevel: z.enum([
901
+ "off",
902
+ "ack",
903
+ "minimal",
904
+ "extensive"
905
+ ]).optional(),
906
+ heartbeat: ChannelHeartbeatVisibilitySchema,
907
+ healthMonitor: ChannelHealthMonitorSchema,
908
+ responsePrefix: z.string().optional()
909
+ }).strict();
910
+ const SignalAccountSchema = SignalAccountSchemaBase;
911
+ SignalAccountSchemaBase.extend({
912
+ accounts: z.record(z.string(), SignalAccountSchema.optional()).optional(),
913
+ defaultAccount: z.string().optional()
914
+ }).superRefine((value, ctx) => {
915
+ requireOpenAllowFrom({
916
+ policy: value.dmPolicy,
917
+ allowFrom: value.allowFrom,
918
+ ctx,
919
+ path: ["allowFrom"],
920
+ message: 'channels.signal.dmPolicy="open" requires channels.signal.allowFrom to include "*"'
921
+ });
922
+ requireAllowlistAllowFrom({
923
+ policy: value.dmPolicy,
924
+ allowFrom: value.allowFrom,
925
+ ctx,
926
+ path: ["allowFrom"],
927
+ message: 'channels.signal.dmPolicy="allowlist" requires channels.signal.allowFrom to contain at least one sender ID'
928
+ });
929
+ if (!value.accounts) return;
930
+ for (const [accountId, account] of Object.entries(value.accounts)) {
931
+ if (!account) continue;
932
+ const effectivePolicy = account.dmPolicy ?? value.dmPolicy;
933
+ const effectiveAllowFrom = account.allowFrom ?? value.allowFrom;
934
+ requireOpenAllowFrom({
935
+ policy: effectivePolicy,
936
+ allowFrom: effectiveAllowFrom,
937
+ ctx,
938
+ path: [
939
+ "accounts",
940
+ accountId,
941
+ "allowFrom"
942
+ ],
943
+ message: 'channels.signal.accounts.*.dmPolicy="open" requires channels.signal.accounts.*.allowFrom (or channels.signal.allowFrom) to include "*"'
944
+ });
945
+ requireAllowlistAllowFrom({
946
+ policy: effectivePolicy,
947
+ allowFrom: effectiveAllowFrom,
948
+ ctx,
949
+ path: [
950
+ "accounts",
951
+ accountId,
952
+ "allowFrom"
953
+ ],
954
+ message: 'channels.signal.accounts.*.dmPolicy="allowlist" requires channels.signal.accounts.*.allowFrom (or channels.signal.allowFrom) to contain at least one sender ID'
955
+ });
956
+ }
957
+ });
958
+ const IrcGroupSchema = z.object({
959
+ requireMention: z.boolean().optional(),
960
+ tools: ToolPolicySchema,
961
+ toolsBySender: ToolPolicyBySenderSchema,
962
+ skills: z.array(z.string()).optional(),
963
+ enabled: z.boolean().optional(),
964
+ allowFrom: z.array(z.union([z.string(), z.number()])).optional(),
965
+ systemPrompt: z.string().optional()
966
+ }).strict();
967
+ const IrcNickServSchema = z.object({
968
+ enabled: z.boolean().optional(),
969
+ service: z.string().optional(),
970
+ password: SecretInputSchema.optional().register(sensitive),
971
+ passwordFile: z.string().optional(),
972
+ register: z.boolean().optional(),
973
+ registerEmail: z.string().optional()
974
+ }).strict();
975
+ const IrcAccountSchemaBase = z.object({
976
+ name: z.string().optional(),
977
+ capabilities: z.array(z.string()).optional(),
978
+ markdown: MarkdownConfigSchema,
979
+ enabled: z.boolean().optional(),
980
+ configWrites: z.boolean().optional(),
981
+ host: z.string().optional(),
982
+ port: z.number().int().min(1).max(65535).optional(),
983
+ tls: z.boolean().optional(),
984
+ nick: z.string().optional(),
985
+ username: z.string().optional(),
986
+ realname: z.string().optional(),
987
+ password: SecretInputSchema.optional().register(sensitive),
988
+ passwordFile: z.string().optional(),
989
+ nickserv: IrcNickServSchema.optional(),
990
+ channels: z.array(z.string()).optional(),
991
+ dmPolicy: DmPolicySchema.optional().default("pairing"),
992
+ allowFrom: z.array(z.union([z.string(), z.number()])).optional(),
993
+ defaultTo: z.string().optional(),
994
+ groupAllowFrom: z.array(z.union([z.string(), z.number()])).optional(),
995
+ groupPolicy: GroupPolicySchema.optional().default("allowlist"),
996
+ contextVisibility: ContextVisibilityModeSchema.optional(),
997
+ groups: z.record(z.string(), IrcGroupSchema.optional()).optional(),
998
+ mentionPatterns: z.array(z.string()).optional(),
999
+ historyLimit: z.number().int().min(0).optional(),
1000
+ dmHistoryLimit: z.number().int().min(0).optional(),
1001
+ dms: z.record(z.string(), DmConfigSchema.optional()).optional(),
1002
+ textChunkLimit: z.number().int().positive().optional(),
1003
+ chunkMode: z.enum(["length", "newline"]).optional(),
1004
+ blockStreaming: z.boolean().optional(),
1005
+ blockStreamingCoalesce: BlockStreamingCoalesceSchema.optional(),
1006
+ mediaMaxMb: z.number().positive().optional(),
1007
+ heartbeat: ChannelHeartbeatVisibilitySchema,
1008
+ healthMonitor: ChannelHealthMonitorSchema,
1009
+ responsePrefix: z.string().optional()
1010
+ }).strict();
1011
+ function refineIrcAllowFromAndNickserv(value, ctx) {
1012
+ requireOpenAllowFrom({
1013
+ policy: value.dmPolicy,
1014
+ allowFrom: value.allowFrom,
1015
+ ctx,
1016
+ path: ["allowFrom"],
1017
+ message: 'channels.irc.dmPolicy="open" requires channels.irc.allowFrom to include "*"'
1018
+ });
1019
+ requireAllowlistAllowFrom({
1020
+ policy: value.dmPolicy,
1021
+ allowFrom: value.allowFrom,
1022
+ ctx,
1023
+ path: ["allowFrom"],
1024
+ message: 'channels.irc.dmPolicy="allowlist" requires channels.irc.allowFrom to contain at least one sender ID'
1025
+ });
1026
+ if (value.nickserv?.register && !value.nickserv.registerEmail?.trim()) ctx.addIssue({
1027
+ code: z.ZodIssueCode.custom,
1028
+ path: ["nickserv", "registerEmail"],
1029
+ message: "channels.irc.nickserv.register=true requires channels.irc.nickserv.registerEmail"
1030
+ });
1031
+ }
1032
+ const IrcAccountSchema = IrcAccountSchemaBase.superRefine((value, ctx) => {
1033
+ if (value.nickserv?.register && !value.nickserv.registerEmail?.trim()) ctx.addIssue({
1034
+ code: z.ZodIssueCode.custom,
1035
+ path: ["nickserv", "registerEmail"],
1036
+ message: "channels.irc.nickserv.register=true requires channels.irc.nickserv.registerEmail"
1037
+ });
1038
+ });
1039
+ IrcAccountSchemaBase.extend({
1040
+ accounts: z.record(z.string(), IrcAccountSchema.optional()).optional(),
1041
+ defaultAccount: z.string().optional()
1042
+ }).superRefine((value, ctx) => {
1043
+ refineIrcAllowFromAndNickserv(value, ctx);
1044
+ if (!value.accounts) return;
1045
+ for (const [accountId, account] of Object.entries(value.accounts)) {
1046
+ if (!account) continue;
1047
+ const effectivePolicy = account.dmPolicy ?? value.dmPolicy;
1048
+ const effectiveAllowFrom = account.allowFrom ?? value.allowFrom;
1049
+ requireOpenAllowFrom({
1050
+ policy: effectivePolicy,
1051
+ allowFrom: effectiveAllowFrom,
1052
+ ctx,
1053
+ path: [
1054
+ "accounts",
1055
+ accountId,
1056
+ "allowFrom"
1057
+ ],
1058
+ message: 'channels.irc.accounts.*.dmPolicy="open" requires channels.irc.accounts.*.allowFrom (or channels.irc.allowFrom) to include "*"'
1059
+ });
1060
+ requireAllowlistAllowFrom({
1061
+ policy: effectivePolicy,
1062
+ allowFrom: effectiveAllowFrom,
1063
+ ctx,
1064
+ path: [
1065
+ "accounts",
1066
+ accountId,
1067
+ "allowFrom"
1068
+ ],
1069
+ message: 'channels.irc.accounts.*.dmPolicy="allowlist" requires channels.irc.accounts.*.allowFrom (or channels.irc.allowFrom) to contain at least one sender ID'
1070
+ });
1071
+ }
1072
+ });
1073
+ const IMessageAccountSchemaBase = z.object({
1074
+ name: z.string().optional(),
1075
+ capabilities: z.array(z.string()).optional(),
1076
+ markdown: MarkdownConfigSchema,
1077
+ enabled: z.boolean().optional(),
1078
+ configWrites: z.boolean().optional(),
1079
+ cliPath: ExecutableTokenSchema.optional(),
1080
+ dbPath: z.string().optional(),
1081
+ remoteHost: z.string().refine(isSafeScpRemoteHost, "expected SSH host or user@host (no spaces/options)").optional(),
1082
+ service: z.union([
1083
+ z.literal("imessage"),
1084
+ z.literal("sms"),
1085
+ z.literal("auto")
1086
+ ]).optional(),
1087
+ region: z.string().optional(),
1088
+ dmPolicy: DmPolicySchema.optional().default("pairing"),
1089
+ allowFrom: z.array(z.union([z.string(), z.number()])).optional(),
1090
+ defaultTo: z.string().optional(),
1091
+ groupAllowFrom: z.array(z.union([z.string(), z.number()])).optional(),
1092
+ groupPolicy: GroupPolicySchema.optional().default("allowlist"),
1093
+ contextVisibility: ContextVisibilityModeSchema.optional(),
1094
+ historyLimit: z.number().int().min(0).optional(),
1095
+ dmHistoryLimit: z.number().int().min(0).optional(),
1096
+ dms: z.record(z.string(), DmConfigSchema.optional()).optional(),
1097
+ includeAttachments: z.boolean().optional(),
1098
+ attachmentRoots: z.array(z.string().refine(isValidInboundPathRootPattern, "expected absolute path root")).optional(),
1099
+ remoteAttachmentRoots: z.array(z.string().refine(isValidInboundPathRootPattern, "expected absolute path root")).optional(),
1100
+ mediaMaxMb: z.number().int().positive().optional(),
1101
+ textChunkLimit: z.number().int().positive().optional(),
1102
+ chunkMode: z.enum(["length", "newline"]).optional(),
1103
+ blockStreaming: z.boolean().optional(),
1104
+ blockStreamingCoalesce: BlockStreamingCoalesceSchema.optional(),
1105
+ groups: z.record(z.string(), z.object({
1106
+ requireMention: z.boolean().optional(),
1107
+ tools: ToolPolicySchema,
1108
+ toolsBySender: ToolPolicyBySenderSchema
1109
+ }).strict().optional()).optional(),
1110
+ heartbeat: ChannelHeartbeatVisibilitySchema,
1111
+ healthMonitor: ChannelHealthMonitorSchema,
1112
+ responsePrefix: z.string().optional()
1113
+ }).strict();
1114
+ const IMessageAccountSchema = IMessageAccountSchemaBase;
1115
+ IMessageAccountSchemaBase.extend({
1116
+ accounts: z.record(z.string(), IMessageAccountSchema.optional()).optional(),
1117
+ defaultAccount: z.string().optional()
1118
+ }).superRefine((value, ctx) => {
1119
+ requireOpenAllowFrom({
1120
+ policy: value.dmPolicy,
1121
+ allowFrom: value.allowFrom,
1122
+ ctx,
1123
+ path: ["allowFrom"],
1124
+ message: 'channels.imessage.dmPolicy="open" requires channels.imessage.allowFrom to include "*"'
1125
+ });
1126
+ requireAllowlistAllowFrom({
1127
+ policy: value.dmPolicy,
1128
+ allowFrom: value.allowFrom,
1129
+ ctx,
1130
+ path: ["allowFrom"],
1131
+ message: 'channels.imessage.dmPolicy="allowlist" requires channels.imessage.allowFrom to contain at least one sender ID'
1132
+ });
1133
+ if (!value.accounts) return;
1134
+ for (const [accountId, account] of Object.entries(value.accounts)) {
1135
+ if (!account) continue;
1136
+ const effectivePolicy = account.dmPolicy ?? value.dmPolicy;
1137
+ const effectiveAllowFrom = account.allowFrom ?? value.allowFrom;
1138
+ requireOpenAllowFrom({
1139
+ policy: effectivePolicy,
1140
+ allowFrom: effectiveAllowFrom,
1141
+ ctx,
1142
+ path: [
1143
+ "accounts",
1144
+ accountId,
1145
+ "allowFrom"
1146
+ ],
1147
+ message: 'channels.imessage.accounts.*.dmPolicy="open" requires channels.imessage.accounts.*.allowFrom (or channels.imessage.allowFrom) to include "*"'
1148
+ });
1149
+ requireAllowlistAllowFrom({
1150
+ policy: effectivePolicy,
1151
+ allowFrom: effectiveAllowFrom,
1152
+ ctx,
1153
+ path: [
1154
+ "accounts",
1155
+ accountId,
1156
+ "allowFrom"
1157
+ ],
1158
+ message: 'channels.imessage.accounts.*.dmPolicy="allowlist" requires channels.imessage.accounts.*.allowFrom (or channels.imessage.allowFrom) to contain at least one sender ID'
1159
+ });
1160
+ }
1161
+ });
1162
+ const BlueBubblesAllowFromEntry = z.union([z.string(), z.number()]);
1163
+ const BlueBubblesActionSchema = z.object({
1164
+ reactions: z.boolean().optional(),
1165
+ edit: z.boolean().optional(),
1166
+ unsend: z.boolean().optional(),
1167
+ reply: z.boolean().optional(),
1168
+ sendWithEffect: z.boolean().optional(),
1169
+ renameGroup: z.boolean().optional(),
1170
+ setGroupIcon: z.boolean().optional(),
1171
+ addParticipant: z.boolean().optional(),
1172
+ removeParticipant: z.boolean().optional(),
1173
+ leaveGroup: z.boolean().optional(),
1174
+ sendAttachment: z.boolean().optional()
1175
+ }).strict().optional();
1176
+ const BlueBubblesGroupConfigSchema = z.object({
1177
+ requireMention: z.boolean().optional(),
1178
+ tools: ToolPolicySchema,
1179
+ toolsBySender: ToolPolicyBySenderSchema
1180
+ }).strict();
1181
+ const BlueBubblesAccountSchemaBase = z.object({
1182
+ name: z.string().optional(),
1183
+ capabilities: z.array(z.string()).optional(),
1184
+ markdown: MarkdownConfigSchema,
1185
+ configWrites: z.boolean().optional(),
1186
+ enabled: z.boolean().optional(),
1187
+ serverUrl: z.string().optional(),
1188
+ password: SecretInputSchema.optional().register(sensitive),
1189
+ webhookPath: z.string().optional(),
1190
+ dmPolicy: DmPolicySchema.optional().default("pairing"),
1191
+ allowFrom: z.array(BlueBubblesAllowFromEntry).optional(),
1192
+ groupAllowFrom: z.array(BlueBubblesAllowFromEntry).optional(),
1193
+ groupPolicy: GroupPolicySchema.optional().default("allowlist"),
1194
+ contextVisibility: ContextVisibilityModeSchema.optional(),
1195
+ historyLimit: z.number().int().min(0).optional(),
1196
+ dmHistoryLimit: z.number().int().min(0).optional(),
1197
+ dms: z.record(z.string(), DmConfigSchema.optional()).optional(),
1198
+ textChunkLimit: z.number().int().positive().optional(),
1199
+ chunkMode: z.enum(["length", "newline"]).optional(),
1200
+ mediaMaxMb: z.number().int().positive().optional(),
1201
+ mediaLocalRoots: z.array(z.string()).optional(),
1202
+ sendReadReceipts: z.boolean().optional(),
1203
+ network: z.object({ dangerouslyAllowPrivateNetwork: z.boolean().optional() }).strict().optional(),
1204
+ blockStreaming: z.boolean().optional(),
1205
+ blockStreamingCoalesce: BlockStreamingCoalesceSchema.optional(),
1206
+ groups: z.record(z.string(), BlueBubblesGroupConfigSchema.optional()).optional(),
1207
+ enrichGroupParticipantsFromContacts: z.boolean().optional(),
1208
+ heartbeat: ChannelHeartbeatVisibilitySchema,
1209
+ healthMonitor: ChannelHealthMonitorSchema,
1210
+ responsePrefix: z.string().optional()
1211
+ }).strict();
1212
+ const BlueBubblesAccountSchema = BlueBubblesAccountSchemaBase;
1213
+ BlueBubblesAccountSchemaBase.extend({
1214
+ accounts: z.record(z.string(), BlueBubblesAccountSchema.optional()).optional(),
1215
+ defaultAccount: z.string().optional(),
1216
+ actions: BlueBubblesActionSchema
1217
+ }).superRefine((value, ctx) => {
1218
+ requireOpenAllowFrom({
1219
+ policy: value.dmPolicy,
1220
+ allowFrom: value.allowFrom,
1221
+ ctx,
1222
+ path: ["allowFrom"],
1223
+ message: 'channels.bluebubbles.dmPolicy="open" requires channels.bluebubbles.allowFrom to include "*"'
1224
+ });
1225
+ requireAllowlistAllowFrom({
1226
+ policy: value.dmPolicy,
1227
+ allowFrom: value.allowFrom,
1228
+ ctx,
1229
+ path: ["allowFrom"],
1230
+ message: 'channels.bluebubbles.dmPolicy="allowlist" requires channels.bluebubbles.allowFrom to contain at least one sender ID'
1231
+ });
1232
+ if (!value.accounts) return;
1233
+ for (const [accountId, account] of Object.entries(value.accounts)) {
1234
+ if (!account) continue;
1235
+ const effectivePolicy = account.dmPolicy ?? value.dmPolicy;
1236
+ const effectiveAllowFrom = account.allowFrom ?? value.allowFrom;
1237
+ requireOpenAllowFrom({
1238
+ policy: effectivePolicy,
1239
+ allowFrom: effectiveAllowFrom,
1240
+ ctx,
1241
+ path: [
1242
+ "accounts",
1243
+ accountId,
1244
+ "allowFrom"
1245
+ ],
1246
+ message: 'channels.bluebubbles.accounts.*.dmPolicy="open" requires channels.bluebubbles.accounts.*.allowFrom (or channels.bluebubbles.allowFrom) to include "*"'
1247
+ });
1248
+ requireAllowlistAllowFrom({
1249
+ policy: effectivePolicy,
1250
+ allowFrom: effectiveAllowFrom,
1251
+ ctx,
1252
+ path: [
1253
+ "accounts",
1254
+ accountId,
1255
+ "allowFrom"
1256
+ ],
1257
+ message: 'channels.bluebubbles.accounts.*.dmPolicy="allowlist" requires channels.bluebubbles.accounts.*.allowFrom (or channels.bluebubbles.allowFrom) to contain at least one sender ID'
1258
+ });
1259
+ }
1260
+ });
1261
+ const MSTeamsChannelSchema = z.object({
1262
+ requireMention: z.boolean().optional(),
1263
+ tools: ToolPolicySchema,
1264
+ toolsBySender: ToolPolicyBySenderSchema,
1265
+ replyStyle: MSTeamsReplyStyleSchema.optional()
1266
+ }).strict();
1267
+ const MSTeamsTeamSchema = z.object({
1268
+ requireMention: z.boolean().optional(),
1269
+ tools: ToolPolicySchema,
1270
+ toolsBySender: ToolPolicyBySenderSchema,
1271
+ replyStyle: MSTeamsReplyStyleSchema.optional(),
1272
+ channels: z.record(z.string(), MSTeamsChannelSchema.optional()).optional()
1273
+ }).strict();
1274
+ z.object({
1275
+ enabled: z.boolean().optional(),
1276
+ capabilities: z.array(z.string()).optional(),
1277
+ dangerouslyAllowNameMatching: z.boolean().optional(),
1278
+ markdown: MarkdownConfigSchema,
1279
+ configWrites: z.boolean().optional(),
1280
+ appId: z.string().optional(),
1281
+ appPassword: SecretInputSchema.optional().register(sensitive),
1282
+ tenantId: z.string().optional(),
1283
+ authType: z.enum(["secret", "federated"]).optional(),
1284
+ certificatePath: z.string().optional(),
1285
+ certificateThumbprint: z.string().optional(),
1286
+ useManagedIdentity: z.boolean().optional(),
1287
+ managedIdentityClientId: z.string().optional(),
1288
+ webhook: z.object({
1289
+ port: z.number().int().positive().optional(),
1290
+ path: z.string().optional()
1291
+ }).strict().optional(),
1292
+ dmPolicy: DmPolicySchema.optional().default("pairing"),
1293
+ allowFrom: z.array(z.string()).optional(),
1294
+ defaultTo: z.string().optional(),
1295
+ groupAllowFrom: z.array(z.string()).optional(),
1296
+ groupPolicy: GroupPolicySchema.optional().default("allowlist"),
1297
+ contextVisibility: ContextVisibilityModeSchema.optional(),
1298
+ textChunkLimit: z.number().int().positive().optional(),
1299
+ chunkMode: z.enum(["length", "newline"]).optional(),
1300
+ typingIndicator: z.boolean().optional(),
1301
+ blockStreaming: z.boolean().optional(),
1302
+ blockStreamingCoalesce: BlockStreamingCoalesceSchema.optional(),
1303
+ mediaAllowHosts: z.array(z.string()).optional(),
1304
+ mediaAuthAllowHosts: z.array(z.string()).optional(),
1305
+ requireMention: z.boolean().optional(),
1306
+ historyLimit: z.number().int().min(0).optional(),
1307
+ dmHistoryLimit: z.number().int().min(0).optional(),
1308
+ dms: z.record(z.string(), DmConfigSchema.optional()).optional(),
1309
+ replyStyle: MSTeamsReplyStyleSchema.optional(),
1310
+ teams: z.record(z.string(), MSTeamsTeamSchema.optional()).optional(),
1311
+ mediaMaxMb: z.number().positive().optional(),
1312
+ sharePointSiteId: z.string().optional(),
1313
+ heartbeat: ChannelHeartbeatVisibilitySchema,
1314
+ healthMonitor: ChannelHealthMonitorSchema,
1315
+ responsePrefix: z.string().optional(),
1316
+ welcomeCard: z.boolean().optional(),
1317
+ promptStarters: z.array(z.string()).optional(),
1318
+ groupWelcomeCard: z.boolean().optional(),
1319
+ feedbackEnabled: z.boolean().optional(),
1320
+ feedbackReflection: z.boolean().optional(),
1321
+ feedbackReflectionCooldownMs: z.number().int().min(0).optional(),
1322
+ delegatedAuth: z.object({
1323
+ enabled: z.boolean().optional(),
1324
+ scopes: z.array(z.string()).optional()
1325
+ }).strict().optional(),
1326
+ sso: z.object({
1327
+ enabled: z.boolean().optional(),
1328
+ connectionName: z.string().optional()
1329
+ }).strict().optional()
1330
+ }).strict().superRefine((value, ctx) => {
1331
+ requireOpenAllowFrom({
1332
+ policy: value.dmPolicy,
1333
+ allowFrom: value.allowFrom,
1334
+ ctx,
1335
+ path: ["allowFrom"],
1336
+ message: 'channels.msteams.dmPolicy="open" requires channels.msteams.allowFrom to include "*"'
1337
+ });
1338
+ requireAllowlistAllowFrom({
1339
+ policy: value.dmPolicy,
1340
+ allowFrom: value.allowFrom,
1341
+ ctx,
1342
+ path: ["allowFrom"],
1343
+ message: 'channels.msteams.dmPolicy="allowlist" requires channels.msteams.allowFrom to contain at least one sender ID'
1344
+ });
1345
+ if (value.sso?.enabled === true && !value.sso.connectionName?.trim()) ctx.addIssue({
1346
+ code: z.ZodIssueCode.custom,
1347
+ path: ["sso", "connectionName"],
1348
+ message: "channels.msteams.sso.enabled=true requires channels.msteams.sso.connectionName to identify the Bot Framework OAuth connection"
1349
+ });
1350
+ });
1351
+ export {
1352
+ ChannelHealthMonitorSchema as c,
1353
+ ChannelHeartbeatVisibilitySchema as l
1354
+ };