botmux 3.2.1 → 3.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (277) hide show
  1. package/dist/adapters/backend/sandbox.d.ts +47 -0
  2. package/dist/adapters/backend/sandbox.d.ts.map +1 -1
  3. package/dist/adapters/backend/sandbox.js +137 -0
  4. package/dist/adapters/backend/sandbox.js.map +1 -1
  5. package/dist/adapters/cli/pi.d.ts.map +1 -1
  6. package/dist/adapters/cli/pi.js +4 -0
  7. package/dist/adapters/cli/pi.js.map +1 -1
  8. package/dist/adapters/cli/read-isolation.d.ts +72 -3
  9. package/dist/adapters/cli/read-isolation.d.ts.map +1 -1
  10. package/dist/adapters/cli/read-isolation.js +143 -6
  11. package/dist/adapters/cli/read-isolation.js.map +1 -1
  12. package/dist/adapters/cli/registry.d.ts.map +1 -1
  13. package/dist/adapters/cli/registry.js +8 -2
  14. package/dist/adapters/cli/registry.js.map +1 -1
  15. package/dist/adapters/cli/types.d.ts +8 -1
  16. package/dist/adapters/cli/types.d.ts.map +1 -1
  17. package/dist/cli/deferred-topic-send.d.ts +37 -0
  18. package/dist/cli/deferred-topic-send.d.ts.map +1 -0
  19. package/dist/cli/deferred-topic-send.js +69 -0
  20. package/dist/cli/deferred-topic-send.js.map +1 -0
  21. package/dist/cli/pm2-command.d.ts.map +1 -1
  22. package/dist/cli/pm2-command.js +6 -0
  23. package/dist/cli/pm2-command.js.map +1 -1
  24. package/dist/cli.d.ts.map +1 -1
  25. package/dist/cli.js +173 -34
  26. package/dist/cli.js.map +1 -1
  27. package/dist/core/command-handler.d.ts.map +1 -1
  28. package/dist/core/command-handler.js +17 -12
  29. package/dist/core/command-handler.js.map +1 -1
  30. package/dist/core/dashboard-ipc-server.d.ts +4 -1
  31. package/dist/core/dashboard-ipc-server.d.ts.map +1 -1
  32. package/dist/core/dashboard-ipc-server.js +99 -8
  33. package/dist/core/dashboard-ipc-server.js.map +1 -1
  34. package/dist/core/deferred-schedule-settlement.d.ts +20 -0
  35. package/dist/core/deferred-schedule-settlement.d.ts.map +1 -0
  36. package/dist/core/deferred-schedule-settlement.js +18 -0
  37. package/dist/core/deferred-schedule-settlement.js.map +1 -0
  38. package/dist/core/deferred-topic-binding.d.ts +19 -0
  39. package/dist/core/deferred-topic-binding.d.ts.map +1 -0
  40. package/dist/core/deferred-topic-binding.js +55 -0
  41. package/dist/core/deferred-topic-binding.js.map +1 -0
  42. package/dist/core/device-isolation-activation.d.ts +56 -0
  43. package/dist/core/device-isolation-activation.d.ts.map +1 -0
  44. package/dist/core/device-isolation-activation.js +110 -0
  45. package/dist/core/device-isolation-activation.js.map +1 -0
  46. package/dist/core/device-isolation-daemon.d.ts +84 -0
  47. package/dist/core/device-isolation-daemon.d.ts.map +1 -0
  48. package/dist/core/device-isolation-daemon.js +591 -0
  49. package/dist/core/device-isolation-daemon.js.map +1 -0
  50. package/dist/core/scheduler.d.ts +26 -20
  51. package/dist/core/scheduler.d.ts.map +1 -1
  52. package/dist/core/scheduler.js +114 -56
  53. package/dist/core/scheduler.js.map +1 -1
  54. package/dist/core/session-discovery.d.ts.map +1 -1
  55. package/dist/core/session-discovery.js +47 -15
  56. package/dist/core/session-discovery.js.map +1 -1
  57. package/dist/core/session-manager.d.ts +17 -1
  58. package/dist/core/session-manager.d.ts.map +1 -1
  59. package/dist/core/session-manager.js +178 -84
  60. package/dist/core/session-manager.js.map +1 -1
  61. package/dist/core/types.d.ts +13 -0
  62. package/dist/core/types.d.ts.map +1 -1
  63. package/dist/core/types.js +10 -0
  64. package/dist/core/types.js.map +1 -1
  65. package/dist/core/worker-pool.d.ts +7 -0
  66. package/dist/core/worker-pool.d.ts.map +1 -1
  67. package/dist/core/worker-pool.js +86 -1
  68. package/dist/core/worker-pool.js.map +1 -1
  69. package/dist/daemon.d.ts.map +1 -1
  70. package/dist/daemon.js +95 -5
  71. package/dist/daemon.js.map +1 -1
  72. package/dist/dashboard/schedule-card-model.d.ts +12 -3
  73. package/dist/dashboard/schedule-card-model.d.ts.map +1 -1
  74. package/dist/dashboard/schedule-card-model.js +32 -8
  75. package/dist/dashboard/schedule-card-model.js.map +1 -1
  76. package/dist/dashboard/web/dashboard-components.d.ts +7 -0
  77. package/dist/dashboard/web/dashboard-components.d.ts.map +1 -1
  78. package/dist/dashboard/web/dashboard-components.js +11 -2
  79. package/dist/dashboard/web/dashboard-components.js.map +1 -1
  80. package/dist/dashboard/web/i18n.d.ts.map +1 -1
  81. package/dist/dashboard/web/i18n.js +30 -6
  82. package/dist/dashboard/web/i18n.js.map +1 -1
  83. package/dist/dashboard/web/schedules-page.d.ts +2 -0
  84. package/dist/dashboard/web/schedules-page.d.ts.map +1 -1
  85. package/dist/dashboard/web/schedules-page.js +74 -27
  86. package/dist/dashboard/web/schedules-page.js.map +1 -1
  87. package/dist/dashboard-web/app.js +1 -1
  88. package/dist/dashboard-web/chunks/{bot-defaults-page-O37SAQD5.js → bot-defaults-page-B5AY4B2J.js} +1 -1
  89. package/dist/dashboard-web/chunks/{chunk-6QHMLMIM.js → chunk-CUV65BIQ.js} +3 -3
  90. package/dist/dashboard-web/chunks/{chunk-O2DPQL7C.js → chunk-JNRSPKLS.js} +1 -1
  91. package/dist/dashboard-web/chunks/{chunk-FYALHCPG.js → chunk-P6GO5KT4.js} +1 -1
  92. package/dist/dashboard-web/chunks/chunk-QFMH6ITB.js +1 -0
  93. package/dist/dashboard-web/chunks/{chunk-B42PCL5P.js → chunk-UBOLHQCK.js} +1 -1
  94. package/dist/dashboard-web/chunks/{connectors-page-DZBQ42MH.js → connectors-page-KTC2QWNW.js} +1 -1
  95. package/dist/dashboard-web/chunks/{groups-page-3IEGRZKQ.js → groups-page-B3EKGOLY.js} +1 -1
  96. package/dist/dashboard-web/chunks/{insights-page-X3ADRON3.js → insights-page-X6RXNCWX.js} +1 -1
  97. package/dist/dashboard-web/chunks/{monitor-room-IV36RGQY.js → monitor-room-LLRA5LQW.js} +1 -1
  98. package/dist/dashboard-web/chunks/{monitoring-page-ADFKVON4.js → monitoring-page-7MT5FEOS.js} +1 -1
  99. package/dist/dashboard-web/chunks/{office-page-CALAOWNS.js → office-page-KD46D5TD.js} +1 -1
  100. package/dist/dashboard-web/chunks/{overview-page-SLMGLK3M.js → overview-page-JUWNH32O.js} +1 -1
  101. package/dist/dashboard-web/chunks/{roles-page-L7JJ4FFV.js → roles-page-P6F7NLOI.js} +1 -1
  102. package/dist/dashboard-web/chunks/schedules-page-XIHWZST4.js +1 -0
  103. package/dist/dashboard-web/chunks/{sessions-page-OKJ5YWUZ.js → sessions-page-2VECQ27T.js} +1 -1
  104. package/dist/dashboard-web/chunks/{settings-page-P6MI2ZUE.js → settings-page-HMIUE2JA.js} +1 -1
  105. package/dist/dashboard-web/chunks/{skills-page-FT7BVZ6X.js → skills-page-A46KVWBL.js} +1 -1
  106. package/dist/dashboard-web/chunks/{team-federation-page-DEYCPUFB.js → team-federation-page-SDUC56DF.js} +1 -1
  107. package/dist/dashboard-web/chunks/{v3-page-4IOWREZG.js → v3-page-J5JOTUSQ.js} +1 -1
  108. package/dist/dashboard-web/chunks/{whiteboards-page-2VMBETZH.js → whiteboards-page-U7LSOAWI.js} +1 -1
  109. package/dist/dashboard-web/style.css +34 -4
  110. package/dist/dashboard.js +16 -1
  111. package/dist/dashboard.js.map +1 -1
  112. package/dist/desktop/main/auto-start.d.ts +2 -0
  113. package/dist/desktop/main/auto-start.d.ts.map +1 -1
  114. package/dist/desktop/main/auto-start.js +10 -6
  115. package/dist/desktop/main/auto-start.js.map +1 -1
  116. package/dist/desktop/main/bundled-runtime.d.ts +12 -0
  117. package/dist/desktop/main/bundled-runtime.d.ts.map +1 -0
  118. package/dist/desktop/main/bundled-runtime.js +30 -0
  119. package/dist/desktop/main/bundled-runtime.js.map +1 -0
  120. package/dist/desktop/main/device-status.d.ts +15 -0
  121. package/dist/desktop/main/device-status.d.ts.map +1 -0
  122. package/dist/desktop/main/device-status.js +94 -0
  123. package/dist/desktop/main/device-status.js.map +1 -0
  124. package/dist/desktop/main/external-runtime.d.ts +9 -0
  125. package/dist/desktop/main/external-runtime.d.ts.map +1 -1
  126. package/dist/desktop/main/external-runtime.js +88 -18
  127. package/dist/desktop/main/external-runtime.js.map +1 -1
  128. package/dist/desktop/main/ipc.d.ts.map +1 -1
  129. package/dist/desktop/main/ipc.js +1 -0
  130. package/dist/desktop/main/ipc.js.map +1 -1
  131. package/dist/desktop/main/node-command.d.ts +21 -0
  132. package/dist/desktop/main/node-command.d.ts.map +1 -1
  133. package/dist/desktop/main/node-command.js +41 -0
  134. package/dist/desktop/main/node-command.js.map +1 -1
  135. package/dist/desktop/main/pm2-apps.d.ts +4 -2
  136. package/dist/desktop/main/pm2-apps.d.ts.map +1 -1
  137. package/dist/desktop/main/pm2-apps.js +11 -3
  138. package/dist/desktop/main/pm2-apps.js.map +1 -1
  139. package/dist/desktop/main/runtime-service.d.ts +21 -5
  140. package/dist/desktop/main/runtime-service.d.ts.map +1 -1
  141. package/dist/desktop/main/runtime-service.js +94 -10
  142. package/dist/desktop/main/runtime-service.js.map +1 -1
  143. package/dist/desktop/main/runtime-source.d.ts +2 -0
  144. package/dist/desktop/main/runtime-source.d.ts.map +1 -1
  145. package/dist/desktop/main/runtime-source.js +12 -6
  146. package/dist/desktop/main/runtime-source.js.map +1 -1
  147. package/dist/desktop/main/tray.d.ts +1 -0
  148. package/dist/desktop/main/tray.d.ts.map +1 -1
  149. package/dist/desktop/main/tray.js +3 -3
  150. package/dist/desktop/main/tray.js.map +1 -1
  151. package/dist/desktop/main.js +28 -8
  152. package/dist/desktop/main.js.map +1 -1
  153. package/dist/desktop/preload.js +3 -0
  154. package/dist/desktop/preload.js.map +1 -1
  155. package/dist/desktop/renderer/app.d.ts +2 -1
  156. package/dist/desktop/renderer/app.d.ts.map +1 -1
  157. package/dist/desktop/renderer/app.js +6 -1
  158. package/dist/desktop/renderer/app.js.map +1 -1
  159. package/dist/desktop/renderer/runtime-state.d.ts.map +1 -1
  160. package/dist/desktop/renderer/runtime-state.js +2 -0
  161. package/dist/desktop/renderer/runtime-state.js.map +1 -1
  162. package/dist/desktop/shared/shell-path-probes.d.ts +24 -0
  163. package/dist/desktop/shared/shell-path-probes.d.ts.map +1 -0
  164. package/dist/desktop/shared/shell-path-probes.js +38 -0
  165. package/dist/desktop/shared/shell-path-probes.js.map +1 -0
  166. package/dist/desktop/shared/types.d.ts +21 -1
  167. package/dist/desktop/shared/types.d.ts.map +1 -1
  168. package/dist/desktop/smoke.d.ts +1 -0
  169. package/dist/desktop/smoke.d.ts.map +1 -1
  170. package/dist/desktop/smoke.js +20 -5
  171. package/dist/desktop/smoke.js.map +1 -1
  172. package/dist/i18n/en.d.ts.map +1 -1
  173. package/dist/i18n/en.js +16 -7
  174. package/dist/i18n/en.js.map +1 -1
  175. package/dist/i18n/zh.d.ts.map +1 -1
  176. package/dist/i18n/zh.js +16 -7
  177. package/dist/i18n/zh.js.map +1 -1
  178. package/dist/im/lark/card-handler.d.ts.map +1 -1
  179. package/dist/im/lark/card-handler.js +3 -0
  180. package/dist/im/lark/card-handler.js.map +1 -1
  181. package/dist/im/lark/event-dispatcher.d.ts +1 -0
  182. package/dist/im/lark/event-dispatcher.d.ts.map +1 -1
  183. package/dist/im/lark/event-dispatcher.js +1 -1
  184. package/dist/im/lark/event-dispatcher.js.map +1 -1
  185. package/dist/im/lark/schedules-card.d.ts +2 -2
  186. package/dist/im/lark/schedules-card.d.ts.map +1 -1
  187. package/dist/im/lark/schedules-card.js +50 -34
  188. package/dist/im/lark/schedules-card.js.map +1 -1
  189. package/dist/index-daemon.js +13 -1
  190. package/dist/index-daemon.js.map +1 -1
  191. package/dist/platform/bind.d.ts +4 -1
  192. package/dist/platform/bind.d.ts.map +1 -1
  193. package/dist/platform/bind.js +10 -1
  194. package/dist/platform/bind.js.map +1 -1
  195. package/dist/platform/binding.d.ts.map +1 -1
  196. package/dist/platform/binding.js +15 -9
  197. package/dist/platform/binding.js.map +1 -1
  198. package/dist/platform/device-command.d.ts +35 -0
  199. package/dist/platform/device-command.d.ts.map +1 -0
  200. package/dist/platform/device-command.js +187 -0
  201. package/dist/platform/device-command.js.map +1 -0
  202. package/dist/platform/device-enroll.d.ts +156 -0
  203. package/dist/platform/device-enroll.d.ts.map +1 -0
  204. package/dist/platform/device-enroll.js +781 -0
  205. package/dist/platform/device-enroll.js.map +1 -0
  206. package/dist/platform/device-isolation-activation-client.d.ts +28 -0
  207. package/dist/platform/device-isolation-activation-client.d.ts.map +1 -0
  208. package/dist/platform/device-isolation-activation-client.js +279 -0
  209. package/dist/platform/device-isolation-activation-client.js.map +1 -0
  210. package/dist/platform/device-isolation.d.ts +35 -0
  211. package/dist/platform/device-isolation.d.ts.map +1 -0
  212. package/dist/platform/device-isolation.js +90 -0
  213. package/dist/platform/device-isolation.js.map +1 -0
  214. package/dist/platform/device-paths.d.ts +9 -0
  215. package/dist/platform/device-paths.d.ts.map +1 -0
  216. package/dist/platform/device-paths.js +14 -0
  217. package/dist/platform/device-paths.js.map +1 -0
  218. package/dist/platform/device.d.ts +77 -0
  219. package/dist/platform/device.d.ts.map +1 -0
  220. package/dist/platform/device.js +212 -0
  221. package/dist/platform/device.js.map +1 -0
  222. package/dist/platform/host-command-context.d.ts +15 -0
  223. package/dist/platform/host-command-context.d.ts.map +1 -0
  224. package/dist/platform/host-command-context.js +26 -0
  225. package/dist/platform/host-command-context.js.map +1 -0
  226. package/dist/platform/secure-host-file.d.ts +12 -0
  227. package/dist/platform/secure-host-file.d.ts.map +1 -0
  228. package/dist/platform/secure-host-file.js +182 -0
  229. package/dist/platform/secure-host-file.js.map +1 -0
  230. package/dist/services/schedule-store.d.ts +6 -2
  231. package/dist/services/schedule-store.d.ts.map +1 -1
  232. package/dist/services/schedule-store.js +19 -4
  233. package/dist/services/schedule-store.js.map +1 -1
  234. package/dist/skills/definitions.d.ts.map +1 -1
  235. package/dist/skills/definitions.js +4 -5
  236. package/dist/skills/definitions.js.map +1 -1
  237. package/dist/types.d.ts +45 -8
  238. package/dist/types.d.ts.map +1 -1
  239. package/dist/utils/atomic-write.d.ts +13 -0
  240. package/dist/utils/atomic-write.d.ts.map +1 -1
  241. package/dist/utils/atomic-write.js +89 -9
  242. package/dist/utils/atomic-write.js.map +1 -1
  243. package/dist/utils/child-env.d.ts +40 -1
  244. package/dist/utils/child-env.d.ts.map +1 -1
  245. package/dist/utils/child-env.js +45 -0
  246. package/dist/utils/child-env.js.map +1 -1
  247. package/dist/utils/pending-input-queue.d.ts +10 -0
  248. package/dist/utils/pending-input-queue.d.ts.map +1 -1
  249. package/dist/utils/pending-input-queue.js +15 -0
  250. package/dist/utils/pending-input-queue.js.map +1 -1
  251. package/dist/worker.js +391 -28
  252. package/dist/worker.js.map +1 -1
  253. package/dist/workflows/events/payloads.d.ts +4 -4
  254. package/dist/workflows/events/schema.d.ts +16 -16
  255. package/dist/workflows/hostExecutors/botmux-schedule.d.ts +3 -1
  256. package/dist/workflows/hostExecutors/botmux-schedule.d.ts.map +1 -1
  257. package/dist/workflows/hostExecutors/botmux-schedule.js +14 -3
  258. package/dist/workflows/hostExecutors/botmux-schedule.js.map +1 -1
  259. package/dist/workflows/v3/architect.js +1 -1
  260. package/dist/workflows/v3/architect.js.map +1 -1
  261. package/dist/workflows/v3/contract.d.ts +8 -0
  262. package/dist/workflows/v3/contract.d.ts.map +1 -1
  263. package/dist/workflows/v3/contract.js.map +1 -1
  264. package/dist/workflows/v3/daemon-run.d.ts.map +1 -1
  265. package/dist/workflows/v3/daemon-run.js +2 -0
  266. package/dist/workflows/v3/daemon-run.js.map +1 -1
  267. package/dist/workflows/v3/ephemeral-pool.d.ts.map +1 -1
  268. package/dist/workflows/v3/ephemeral-pool.js +10 -2
  269. package/dist/workflows/v3/ephemeral-pool.js.map +1 -1
  270. package/dist/workflows/v3/run-envelope.d.ts +24 -24
  271. package/dist/workflows/v3/runtime.d.ts +5 -0
  272. package/dist/workflows/v3/runtime.d.ts.map +1 -1
  273. package/dist/workflows/v3/runtime.js +1 -0
  274. package/dist/workflows/v3/runtime.js.map +1 -1
  275. package/package.json +6 -3
  276. package/dist/dashboard-web/chunks/chunk-I35DXGM4.js +0 -1
  277. package/dist/dashboard-web/chunks/schedules-page-Z3672POL.js +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "botmux",
3
- "version": "3.2.1",
3
+ "version": "3.4.0",
4
4
  "description": "Bridge between IM platforms and AI coding CLIs — one topic, one CLI session with live streaming",
5
5
  "type": "module",
6
6
  "main": "dist/index-daemon.js",
@@ -19,7 +19,8 @@
19
19
  "access": "public"
20
20
  },
21
21
  "scripts": {
22
- "build": "node scripts/clean-dist.mjs && tsc && cp src/setup/lark-scopes.json dist/setup/ && pnpm dashboard:bundle && chmod +x dist/cli.js && node scripts/audit-dist.mjs",
22
+ "build": "pnpm audit:domains && node scripts/clean-dist.mjs && tsc && cp src/setup/lark-scopes.json dist/setup/ && pnpm dashboard:bundle && chmod +x dist/cli.js && node scripts/audit-dist.mjs",
23
+ "audit:domains": "node scripts/audit-public-domains.mjs",
23
24
  "dashboard:bundle": "node scripts/build-dashboard.mjs",
24
25
  "dashboard:watch": "node scripts/build-dashboard.mjs --watch",
25
26
  "daemon": "tsx src/index-daemon.ts",
@@ -42,7 +43,8 @@
42
43
  "test:e2e-browser:setup": "tsx test/e2e-browser/setup-login.ts",
43
44
  "test:e2e-browser": "tsx scripts/run-e2e.ts",
44
45
  "report:dashboard": "tsx scripts/report-dashboard.ts",
45
- "desktop:bundle": "esbuild src/desktop/main.ts --bundle --outfile=dist/desktop/main.cjs --platform=node --format=cjs --external:electron && esbuild src/desktop/preload.ts --bundle --outfile=dist/desktop/preload.cjs --platform=node --format=cjs --external:electron && esbuild src/desktop/renderer/app.ts --bundle --outfile=dist/desktop/renderer/app.js --platform=browser --format=iife && cp src/desktop/renderer/index.html dist/desktop/renderer/index.html && cp src/desktop/renderer/style.css dist/desktop/renderer/style.css",
46
+ "desktop:bundle": "node scripts/build-desktop-icons.mjs && esbuild src/desktop/main.ts --bundle --outfile=dist/desktop/main.cjs --platform=node --format=cjs --external:electron && esbuild src/desktop/preload.ts --bundle --outfile=dist/desktop/preload.cjs --platform=node --format=cjs --external:electron && esbuild src/desktop/renderer/app.ts --bundle --outfile=dist/desktop/renderer/app.js --platform=browser --format=iife && cp src/desktop/renderer/index.html dist/desktop/renderer/index.html && cp src/desktop/renderer/style.css dist/desktop/renderer/style.css && cp -R src/desktop/assets dist/desktop/assets",
47
+ "desktop:runtime": "node scripts/prepare-desktop-runtime.mjs",
46
48
  "desktop:smoke": "tsx scripts/desktop-smoke.ts",
47
49
  "desktop:install:local": "bash src/desktop/install-local.sh",
48
50
  "desktop:dev": "pnpm build && pnpm desktop:bundle && electron dist/desktop/main.cjs",
@@ -91,6 +93,7 @@
91
93
  },
92
94
  "pnpm": {
93
95
  "onlyBuiltDependencies": [
96
+ "electron",
94
97
  "node-pty"
95
98
  ]
96
99
  },
@@ -1 +0,0 @@
1
- import{a as R,b as S,d as x}from"./chunk-5THX4DI2.js";import{c as g}from"./chunk-7SZRL6FY.js";var i=g(R(),1),L=g(S(),1),t=g(x(),1);function P(e,o){return e.find(a=>a.value===o)?.label??o}function k(e){let o=e.as??"span";return(0,t.jsx)(o,{style:{display:"contents"},dangerouslySetInnerHTML:{__html:e.html}})}function H(e){let o=["page-loading",e.compact?"page-loading-compact":"",e.className].filter(Boolean).join(" ");return(0,t.jsxs)("div",{className:o,role:"status","aria-live":"polite",children:[(0,t.jsx)("i",{className:"page-loading-spin","aria-hidden":"true"}),(0,t.jsx)("span",{children:e.label})]})}function O(e){return(0,t.jsxs)("div",{className:"sect-head overview-panel-head",children:[(0,t.jsx)("h2",{children:e.title}),e.count?(0,t.jsx)("span",{className:"sect-head-count",children:e.count}):null,e.hint?(0,t.jsx)("span",{className:"sect-head-hint",children:e.hint}):null,e.children]})}function J(e){return(0,t.jsx)("a",{className:"sect-head-action",href:e.href,children:e.children})}function X(e){return(0,t.jsx)("div",{className:"sect-head-controls",children:e.children})}function T(e){return e.kind==="plus"?(0,t.jsx)("svg",{className:"ui-action-icon",viewBox:"0 0 16 16","aria-hidden":"true",children:(0,t.jsx)("path",{d:"M8 3.25v9.5M3.25 8h9.5"})}):(0,t.jsxs)("svg",{className:"ui-action-icon",viewBox:"0 0 16 16","aria-hidden":"true",children:[(0,t.jsx)("path",{d:"M13.1 6.55A5.35 5.35 0 1 0 13 10.1"}),(0,t.jsx)("path",{d:"M13.15 2.95v3.7H9.45"})]})}function D(e){let{children:o,className:a,type:l="button",...u}=e;return(0,t.jsxs)("button",{...u,type:l,className:["ui-create-action",a].filter(Boolean).join(" "),children:[(0,t.jsx)(T,{kind:"plus"}),(0,t.jsx)("span",{className:"ui-create-action-label",children:o})]})}function A(e){let{label:o,busy:a=!1,className:l,type:u="button",...d}=e;return(0,t.jsx)("button",{...d,type:u,className:["ui-refresh-button",a?"is-loading":"",l].filter(Boolean).join(" "),title:o,"aria-label":o,"aria-busy":a||void 0,children:(0,t.jsx)(T,{kind:"refresh"})})}function B(e){let o=(0,i.useRef)(null),a=(0,i.useRef)(null),[l,u]=(0,i.useState)(!1),[d,b]=(0,i.useState)(null),s=(0,i.useCallback)(()=>{let m=o.current;if(!m||typeof window>"u")return;let h=m.getBoundingClientRect(),r=Math.min(360,Math.max(160,window.innerWidth-48)),c=24+r/2,v=window.innerWidth-24-r/2,w=h.left+h.width/2,y=Math.min(Math.max(w,c),Math.max(c,v)),N=h.top<80;b({left:y,top:N?h.bottom+8:h.top-8,placement:N?"bottom":"top"})},[]),f=(0,i.useCallback)(()=>{a.current&&(clearTimeout(a.current),a.current=null),s(),u(!0)},[s]),n=(0,i.useCallback)(()=>{a.current&&clearTimeout(a.current),a.current=setTimeout(()=>u(!1),160)},[]);(0,i.useEffect)(()=>()=>{a.current&&clearTimeout(a.current)},[]),(0,i.useEffect)(()=>{if(l)return s(),window.addEventListener("resize",s),window.addEventListener("scroll",s,!0),()=>{window.removeEventListener("resize",s),window.removeEventListener("scroll",s,!0)}},[l,s]);let p=l&&d&&typeof document<"u"?(0,L.createPortal)((0,t.jsx)("span",{className:`ui-info-pop ui-info-pop-floating ui-info-pop-${d.placement}`,role:"tooltip",style:{left:d.left,top:d.top},onMouseEnter:f,onMouseLeave:n,children:e.children}),document.body):null;return(0,t.jsxs)("span",{ref:o,className:["ui-info-tip",e.className].filter(Boolean).join(" "),tabIndex:e.focusable===!1?void 0:0,"aria-label":e.label,onClick:e.preventClick===!1?void 0:m=>m.preventDefault(),onMouseEnter:f,onMouseLeave:n,onFocus:f,onBlur:n,children:[e.trigger??(0,t.jsx)("span",{className:"ui-info-mark","aria-hidden":"true",children:"?"}),p]})}function j(e){let o=(0,i.useRef)(null),[a,l]=(0,i.useState)(!1),[u,d]=(0,i.useState)(!1),[b,s]=(0,i.useState)(null),f=(0,i.useCallback)(()=>{let r=o.current;if(!r)return!1;let v=(r.querySelector(".ui-overflow-scroll")??r).scrollWidth>r.clientWidth+1;return d(v),v||l(!1),v},[]),n=(0,i.useCallback)(()=>{let r=o.current;if(!r||typeof window>"u")return;let c=r.getBoundingClientRect(),v=Math.min(460,Math.max(220,window.innerWidth-48)),w=24+v/2,y=window.innerWidth-24-v/2,N=c.left+c.width/2,M=Math.min(Math.max(N,w),Math.max(w,y)),E=c.top<84;s({left:M,top:E?c.bottom+8:c.top-8,placement:E?"bottom":"top"})},[]),p=(0,i.useCallback)(()=>{if(!(!e.text.trim()||!f())){if(e.showPopover===!1){l(!1);return}n(),l(!0)}},[f,e.showPopover,e.text,n]),m=(0,i.useCallback)(()=>l(!1),[]);(0,i.useEffect)(()=>{let r=o.current;if(!r||typeof window>"u")return;let c=window.requestAnimationFrame(f),v=typeof ResizeObserver<"u"?new ResizeObserver(()=>f()):null;return v?.observe(r),window.addEventListener("resize",f),()=>{window.cancelAnimationFrame(c),v?.disconnect(),window.removeEventListener("resize",f)}},[f,e.text]),(0,i.useEffect)(()=>{if(a)return n(),window.addEventListener("resize",n),window.addEventListener("scroll",n,!0),()=>{window.removeEventListener("resize",n),window.removeEventListener("scroll",n,!0)}},[a,n]);let h=e.showPopover!==!1&&a&&b&&typeof document<"u"?(0,L.createPortal)((0,t.jsx)("span",{className:["ui-info-pop","ui-info-pop-floating",`ui-info-pop-${b.placement}`,"ui-overflow-popover",e.popoverClassName].filter(Boolean).join(" "),role:"tooltip",style:{left:b.left,top:b.top},children:e.text}),document.body):null;return(0,t.jsxs)("span",{ref:o,className:["ui-overflow-text",u?"is-overflowing":"",e.className].filter(Boolean).join(" "),style:e.durationMs?{"--ui-overflow-duration":`${e.durationMs}ms`}:void 0,onMouseEnter:p,onMouseLeave:m,children:[(0,t.jsx)("span",{className:["ui-overflow-scroll",e.textClassName].filter(Boolean).join(" "),children:e.children??e.text}),h]})}function z(e){return(0,t.jsxs)("span",{className:["ui-field-title",e.className].filter(Boolean).join(" "),children:[(0,t.jsx)("span",{className:"ui-field-title-text",children:e.children}),e.help?(0,t.jsx)(B,{label:e.helpLabel,children:e.help}):null]})}function I(e){return(0,t.jsx)("ul",{className:["overview-list",e.className].filter(Boolean).join(" "),id:e.id,children:e.children})}function W(e){let{kind:o,className:a,children:l,...u}=e,d=o?`overview-list-item-${o}`:"";return(0,t.jsx)("li",{...u,className:["overview-list-item",d,a].filter(Boolean).join(" "),children:l})}function q(e){return(0,t.jsx)("div",{className:"overview-list-main",children:e.children})}function F(e){return(0,t.jsx)("div",{className:"overview-list-tail",children:e.children})}function C(e){let o=(0,i.useRef)(null),a=(0,i.useRef)(null),[l,u]=(0,i.useState)(""),d=n=>{o.current?.removeAttribute("open"),n!==e.value&&e.onChange(n)},b=l.trim().toLowerCase(),s=e.searchable&&b?e.options.filter(n=>n.value.toLowerCase().includes(b)||typeof n.label=="string"&&n.label.toLowerCase().includes(b)):e.options;(0,i.useEffect)(()=>{if(typeof document>"u")return;let n=()=>{o.current?.open&&(o.current.open=!1)},p=h=>{let r=o.current;if(!r?.open)return;let c=h.target;c instanceof Node&&r.contains(c)||n()},m=h=>{h.key==="Escape"&&n()};return document.addEventListener("pointerdown",p,!0),document.addEventListener("keydown",m),()=>{document.removeEventListener("pointerdown",p,!0),document.removeEventListener("keydown",m)}},[]),(0,i.useEffect)(()=>{e.disabled&&o.current?.open&&(o.current.open=!1)},[e.disabled]);let f=["sect-sort-menu",e.disabled?"is-disabled":"",e.className].filter(Boolean).join(" ");return(0,t.jsxs)("details",{id:e.id,className:f,ref:o,hidden:e.hidden,style:e.style,onToggle:n=>{!e.searchable||!n.currentTarget.open||(u(""),a.current?.focus())},children:[(0,t.jsx)("summary",{"aria-label":e.ariaLabel,"aria-disabled":e.disabled?!0:void 0,tabIndex:e.disabled?-1:void 0,onClick:n=>{e.disabled&&n.preventDefault()},onKeyDown:n=>{e.disabled&&(n.key==="Enter"||n.key===" ")&&n.preventDefault()},children:(0,t.jsx)("span",{className:"sect-sort-value",children:e.label})}),(0,t.jsxs)("div",{className:"sect-sort-pop",children:[e.searchable?(0,t.jsx)("input",{ref:a,className:"sect-sort-search",type:"search",placeholder:e.searchPlaceholder,"aria-label":e.searchPlaceholder,autoComplete:"off",spellCheck:!1,value:l,onChange:n=>u(n.currentTarget.value),onKeyDown:n=>{if(n.key!=="Enter")return;n.preventDefault();let p=s.find(m=>!m.disabled);p&&d(p.value)}}):null,s.map(n=>(0,t.jsx)("button",{type:"button",disabled:n.disabled,"aria-current":e.value===n.value?"true":void 0,onClick:()=>d(n.value),children:n.label},n.value)),e.searchable&&s.length===0?(0,t.jsx)("p",{className:"sect-sort-empty",children:e.searchEmptyLabel}):null]})]})}function K(e){return(0,t.jsx)(C,{...e})}export{P as a,k as b,H as c,O as d,J as e,X as f,D as g,A as h,B as i,j,z as k,I as l,W as m,q as n,F as o,C as p,K as q};
@@ -1 +0,0 @@
1
- import{a as B,b as F}from"./chunk-FYALHCPG.js";import{g as x,l as q,m as M,n as H,o as K,p as Z}from"./chunk-I35DXGM4.js";import"./chunk-6QHMLMIM.js";import{a as L}from"./chunk-SYC6D5XU.js";import{a as G,d as P}from"./chunk-5THX4DI2.js";import{c as $}from"./chunk-7SZRL6FY.js";var i=$(G(),1);var e=$(P(),1),z=1e3;function U(n,l){if(!n)return"\u2014";try{return new Date(n).toLocaleString(void 0,l?{timeZone:l,timeZoneName:"short"}:void 0)}catch{return n}}function Q(n,l){let a=l.q.toLowerCase();return n.filter(s=>!l.kind||s.parsed?.kind===l.kind).filter(s=>!l.enabledOnly||s.enabled).filter(s=>!a||JSON.stringify(s).toLowerCase().includes(a)).sort((s,r)=>{if(s.enabled!==r.enabled)return s.enabled?-1:1;let f=s.nextRunAt?Date.parse(s.nextRunAt):1/0,h=r.nextRunAt?Date.parse(r.nextRunAt):1/0;return f-h})}function V(n,l){return n.deliver==="new-topic"?l("schedules.deliveryNewTopic"):n.deliver==="local"?l("schedules.deliveryLocal"):l("schedules.deliveryOrigin")}function W(n){return n.repeat?`${n.repeat.completed}/${n.repeat.times??"\u221E"}`:"\u2014"}function X(n){return new Promise(l=>window.setTimeout(l,n))}function Y(n){let{schedule:l,scheduleTimeZone:a,tr:s}=n,r=String(l.parsed?.kind??"unknown"),f=l.enabled?"pause":"resume",h=`${l.id}:${f}`,N=`${l.id}:run`,b=`${l.id}:delivery`;return(0,e.jsxs)(M,{kind:"schedule",className:"schedule-list-row","data-id":l.id,children:[(0,e.jsxs)(H,{children:[(0,e.jsxs)("div",{className:"schedule-row-head",children:[(0,e.jsx)("b",{children:l.name??l.id}),(0,e.jsx)("span",{className:`schedule-state ${l.enabled?"enabled":"paused"}`,children:l.enabled?s("schedules.enabled"):s("schedules.paused")})]}),(0,e.jsxs)("div",{className:"schedule-row-meta",children:[(0,e.jsx)("span",{children:l.botName??l.larkAppId??"-"}),(0,e.jsx)("span",{children:"\xB7"}),(0,e.jsx)("code",{children:l.parsed?.display??"?"})]}),(0,e.jsxs)("div",{className:"schedule-chip-strip",children:[(0,e.jsx)("span",{children:r}),(0,e.jsxs)("span",{children:[s("schedules.delivery"),": ",V(l,s)]}),l.silent?(0,e.jsxs)("span",{children:["\u{1F507} ",s("schedules.silent")]}):null,(0,e.jsxs)("span",{children:[s("schedules.next"),": ",U(l.nextRunAt,a)]}),(0,e.jsxs)("span",{children:[s("schedules.last"),": ",U(l.lastRunAt,a)]}),l.lastStatus==="error"?(0,e.jsxs)("span",{className:"schedule-error-chip",title:typeof l.lastError=="string"?l.lastError:void 0,children:["\u26A0 ",s("schedules.error"),": ",typeof l.lastError=="string"&&l.lastError.length>60?l.lastError.slice(0,60)+"\u2026":l.lastError??s("schedules.errorUnknown")]}):null,(0,e.jsxs)("span",{children:[s("schedules.repeat"),": ",W(l)]})]})]}),(0,e.jsx)(K,{children:(0,e.jsxs)("div",{className:"schedule-actions",children:[(0,e.jsx)(_,{op:"run",label:s("schedules.runNow"),pending:n.pending===N,feedback:n.feedback[N]??null,onClick:()=>n.onAction(l.id,"run")}),(0,e.jsx)(le,{checked:!!l.enabled,pending:n.pending===h,feedback:n.feedback[h]??null,tr:s,onClick:()=>n.onAction(l.id,f)}),l.deliver==="local"||l.silent?null:(0,e.jsx)(_,{op:"delivery",label:l.deliver==="new-topic"?s("schedules.useOrigin"):s("schedules.useNewTopic"),pending:n.pending===b,feedback:n.feedback[b]??null,onClick:()=>n.onAction(l.id,"delivery")}),(0,e.jsx)("button",{type:"button",className:"schedule-action-button schedule-edit-button",onClick:()=>n.onEdit(l),title:s("schedules.edit"),children:(0,e.jsx)("span",{className:"schedule-action-label",children:s("schedules.edit")})}),(0,e.jsx)("button",{type:"button",className:"schedule-action-button schedule-delete-button",onClick:()=>n.onDelete(l),title:s("schedules.delete"),children:(0,e.jsx)("span",{className:"schedule-action-label",children:s("schedules.delete")})})]})})]})}function ee(){let n=F(),{scheduleRows:l,scheduleTimeZone:a}=B(t=>({scheduleRows:[...t.schedules.values()],scheduleTimeZone:t.scheduleTimeZone})),[s,r]=(0,i.useState)({q:"",kind:"",enabledOnly:!1}),[f,h]=(0,i.useState)(null),[N,b]=(0,i.useState)({}),k=(0,i.useRef)(new Map),[w,g]=(0,i.useState)(!1),[y,S]=(0,i.useState)(null),[A,C]=(0,i.useState)(null),[R,E]=(0,i.useState)([]);(0,i.useEffect)(()=>{fetch("/api/bots").then(t=>t.json()).then(t=>{Array.isArray(t?.bots)&&E(t.bots)}).catch(()=>{})},[]);let m=(0,i.useMemo)(()=>Q(l,s),[l,s]);(0,i.useEffect)(()=>()=>{k.current.forEach(t=>window.clearTimeout(t)),k.current.clear()},[]);function T(t,c){b(p=>({...p,[t]:c}));let d=k.current.get(t);d&&window.clearTimeout(d);let v=window.setTimeout(()=>{b(p=>{let u={...p};return delete u[t],u}),k.current.delete(t)},c==="success"?1600:2200);k.current.set(t,v)}async function I(t,c){let d=`${t}:${c}`,v=performance.now(),p="success";h(d);try{let u=await fetch(`/api/schedules/${encodeURIComponent(t)}/${c}`,{method:"POST"}),D=await u.json().catch(()=>({}));if(!u.ok||D.ok===!1)throw new Error(`Failed: ${u.status} ${D?.error??""}`.trim())}catch{p="error"}finally{if(c==="run"){let u=z-(performance.now()-v);u>0&&await X(u)}T(d,p),h(u=>u===d?null:u)}}function O(){S(null),C(null),g(!0)}function o(t){S(t),C(null),g(!0)}async function j(t){if(!window.confirm(n("schedules.deleteConfirm")))return;let c=`${t.id}:delete`;h(c);try{let d=await fetch(`/api/schedules/${encodeURIComponent(t.id)}`,{method:"DELETE"}),v=await d.json().catch(()=>({}));if(!d.ok||v.ok===!1)throw new Error(v?.error??`HTTP ${d.status}`);T(c,"success")}catch{T(c,"error")}finally{h(d=>d===c?null:d)}}async function J(t){C(null);try{let c=y?`/api/schedules/${encodeURIComponent(y.id)}`:"/api/schedules",d=y?"PATCH":"POST",v=y?{name:t.name,schedule:t.schedule,prompt:t.prompt,silent:t.silent,...t.deliverTouched?{deliver:t.deliver}:{}}:t,p=await fetch(c,{method:d,headers:{"Content-Type":"application/json"},body:JSON.stringify(v)}),u=await p.json().catch(()=>({}));if(!p.ok||u.ok===!1)throw new Error(u?.error??`HTTP ${p.status}`);g(!1)}catch(c){C(c instanceof Error?c.message:String(c))}}return(0,e.jsxs)("section",{className:"page schedules-page",children:[(0,e.jsxs)("div",{className:"page-heading",children:[(0,e.jsxs)("div",{children:[(0,e.jsx)("p",{className:"eyebrow",children:n("nav.schedules")}),(0,e.jsx)("h1",{children:n("schedules.title")})]}),(0,e.jsx)(x,{onClick:O,disabled:R.length===0,children:n("schedules.create")})]}),(0,e.jsxs)("form",{id:"sched-filters",className:"filters dashboard-toolbar",children:[(0,e.jsx)("input",{type:"search",name:"q",placeholder:n("schedules.search"),value:s.q,onChange:t=>{let c=t.currentTarget.value;r(d=>({...d,q:c}))}}),(0,e.jsx)(Z,{id:"sched-kind-menu",ariaLabel:n("schedules.anyKind"),label:s.kind||n("schedules.anyKind"),value:s.kind,options:[{value:"",label:n("schedules.anyKind")},{value:"cron",label:"cron"},{value:"interval",label:"interval"},{value:"once",label:"once"}],onChange:t=>r(c=>({...c,kind:t}))}),(0,e.jsxs)("label",{className:"filter-toggle",children:[(0,e.jsx)("input",{type:"checkbox",name:"enabled",checked:s.enabledOnly,onChange:t=>{let c=t.currentTarget.checked;r(d=>({...d,enabledOnly:c}))}}),(0,e.jsx)("span",{className:"filter-toggle-label",children:n("schedules.enabledOnly")}),(0,e.jsx)("span",{className:"filter-toggle-switch","aria-hidden":"true"})]}),(0,e.jsx)("span",{className:"schedules-toolbar-spacer","aria-hidden":"true"}),(0,e.jsxs)("span",{className:"schedules-toolbar-count",children:[m.length,"/",l.length]})]}),(0,e.jsx)("section",{className:"overview-block schedules-list-section",children:(0,e.jsx)("div",{className:"schedules-list-wrap",children:m.length===0?(0,e.jsx)("div",{id:"schedules-tbody",className:"empty schedules-list-empty",children:n("schedules.empty")}):(0,e.jsx)(q,{id:"schedules-tbody",className:"schedules-list",children:m.map(t=>(0,e.jsx)(Y,{schedule:t,scheduleTimeZone:a,pending:f,feedback:N,tr:n,onAction:(c,d)=>{I(c,d)},onEdit:o,onDelete:c=>{j(c)}},t.id))})})}),w?(0,e.jsx)(se,{editing:y,error:A,bots:R,tr:n,onClose:()=>g(!1),onSubmit:t=>{J(t)}}):null]})}function ne(n,l,a,s,r){return a?r(n==="run"?"schedules.running":"schedules.saving"):s==="success"?r(n==="run"?"schedules.runDone":"schedules.saved"):s==="error"?r("schedules.failed"):l}function _(n){let l=F(),a=n.feedback?` is-${n.feedback}`:"";return(0,e.jsx)("button",{type:"button",className:`schedule-action-button${n.pending?" is-pending":""}${a}`,"data-op":n.op,disabled:n.pending,onClick:n.onClick,children:(0,e.jsx)("span",{className:"schedule-action-label",children:ne(n.op,n.label,n.pending,n.feedback,l)})})}function le(n){let l=n.feedback==="error"?n.tr("schedules.failed"):n.checked?n.tr("schedules.enabled"):n.tr("schedules.paused");return(0,e.jsxs)("button",{type:"button",className:`schedule-enabled-switch${n.checked?" is-on":""}${n.pending?" is-pending":""}${n.feedback?` is-${n.feedback}`:""}`,"aria-pressed":n.checked,disabled:n.pending,onClick:n.onClick,children:[(0,e.jsx)("span",{className:"schedule-enabled-switch-label",children:l}),(0,e.jsx)("span",{className:"schedule-enabled-switch-track","aria-hidden":"true",children:(0,e.jsx)("span",{})})]})}function ie(n){return L(n,(0,e.jsx)(ee,{}))}function se(n){let{editing:l,tr:a,bots:s}=n,[r,f]=(0,i.useState)(l?.name??""),[h,N]=(0,i.useState)(l?.schedule??""),[b,k]=(0,i.useState)(l?.prompt??""),[w,g]=(0,i.useState)(l?.deliver==="new-topic"?"new-topic":"origin"),[y,S]=(0,i.useState)(!1),[A,C]=(0,i.useState)(l?.silent===!0),[R,E]=(0,i.useState)(l?.chatId??""),[m,T]=(0,i.useState)(l?.larkAppId??s[0]?.larkAppId??"");(0,i.useEffect)(()=>{!l&&!m&&s.length>0&&T(s[0].larkAppId)},[l,m,s]);let I=A&&w==="new-topic";function O(o){o.preventDefault(),!I&&(!l&&!m||n.onSubmit({name:r,schedule:h,prompt:b,deliver:w,deliverTouched:y,silent:A,chatId:R,larkAppId:m}))}return(0,e.jsx)("div",{className:"schedule-form-overlay",onClick:n.onClose,children:(0,e.jsxs)("div",{className:"schedule-form-dialog",role:"dialog","aria-modal":"true",onClick:o=>o.stopPropagation(),children:[(0,e.jsx)("h2",{children:a(l?"schedules.edit":"schedules.create")}),(0,e.jsxs)("form",{onSubmit:O,className:"schedule-form",children:[l?null:(0,e.jsxs)("label",{className:"schedule-form-field",children:[(0,e.jsx)("span",{className:"schedule-form-label",children:a("schedules.form.bot")}),(0,e.jsx)("select",{value:m,onChange:o=>T(o.target.value),required:!0,children:s.map(o=>(0,e.jsx)("option",{value:o.larkAppId,children:o.botName??o.larkAppId},o.larkAppId))})]}),(0,e.jsxs)("label",{className:"schedule-form-field",children:[(0,e.jsx)("span",{className:"schedule-form-label",children:a("schedules.form.name")}),(0,e.jsx)("input",{type:"text",value:r,onChange:o=>f(o.target.value),required:!0,autoFocus:!0})]}),(0,e.jsxs)("label",{className:"schedule-form-field",children:[(0,e.jsx)("span",{className:"schedule-form-label",children:a("schedules.form.schedule")}),(0,e.jsx)("input",{type:"text",value:h,onChange:o=>N(o.target.value),placeholder:a("schedules.form.scheduleHelp"),required:!0}),(0,e.jsx)("small",{className:"schedule-form-help",children:a("schedules.form.scheduleHelp")})]}),(0,e.jsxs)("label",{className:"schedule-form-field",children:[(0,e.jsx)("span",{className:"schedule-form-label",children:a("schedules.form.prompt")}),(0,e.jsx)("textarea",{value:b,onChange:o=>k(o.target.value),rows:4,required:!0}),(0,e.jsx)("small",{className:"schedule-form-help",children:a("schedules.form.promptHelp")})]}),l?null:(0,e.jsxs)("label",{className:"schedule-form-field",children:[(0,e.jsx)("span",{className:"schedule-form-label",children:a("schedules.form.chat")}),(0,e.jsx)("input",{type:"text",value:R,onChange:o=>E(o.target.value),placeholder:"oc_...",required:!0})]}),(0,e.jsxs)("div",{className:"schedule-form-field",children:[(0,e.jsx)("span",{className:"schedule-form-label",children:a("schedules.form.deliver")}),(0,e.jsxs)("div",{className:"schedule-form-radio-group",children:[(0,e.jsxs)("label",{children:[(0,e.jsx)("input",{type:"radio",name:"deliver",value:"origin",checked:w==="origin",onChange:()=>{g("origin"),S(!0)}}),a("schedules.deliveryOrigin")]}),(0,e.jsxs)("label",{children:[(0,e.jsx)("input",{type:"radio",name:"deliver",value:"new-topic",checked:w==="new-topic",onChange:()=>{g("new-topic"),S(!0)},disabled:A}),a("schedules.deliveryNewTopic")]})]})]}),(0,e.jsxs)("label",{className:"schedule-form-field schedule-form-toggle",children:[(0,e.jsx)("input",{type:"checkbox",checked:A,onChange:o=>{C(o.target.checked),o.target.checked&&w==="new-topic"&&(g("origin"),S(!0))}}),(0,e.jsxs)("span",{children:[a("schedules.form.silent"),(0,e.jsx)("small",{className:"schedule-form-help",children:a("schedules.form.silentHelp")})]})]}),I?(0,e.jsx)("p",{className:"schedule-form-error",children:a("schedules.form.silentNewTopicConflict")}):null,n.error?(0,e.jsx)("p",{className:"schedule-form-error",children:n.error}):null,(0,e.jsxs)("div",{className:"schedule-form-actions",children:[(0,e.jsx)("button",{type:"button",className:"schedule-form-cancel",onClick:n.onClose,children:a("schedules.form.cancel")}),(0,e.jsx)("button",{type:"submit",className:"schedule-form-submit",disabled:I||!l&&!m,children:a(l?"schedules.form.save":"schedules.form.create")})]})]})]})})}export{Q as filterSchedules,U as fmtScheduleDate,ie as renderSchedulesPage};