@gaodefa/daocore 2026.5.91 → 2026.5.93

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 (529) hide show
  1. package/dist/acp/control-plane/manager.d.ts +1 -2
  2. package/dist/{agent-command-DQ1XgXqe.d.ts → agent-command-COFQwKxZ.d.ts} +38 -2
  3. package/dist/{agent-harness-Bt_1zRJ1.d.ts → agent-harness-CXNDoxnt.d.ts} +2 -2
  4. package/dist/{agent-harness-runtime-CsWVHhWd.d.ts → agent-harness-runtime-DW6vKWd2.d.ts} +3 -3
  5. package/dist/agents/pi-embedded-runner/tool-split.d.ts +1 -1
  6. package/dist/{api-D5uGvU4G.d.ts → api-PeXSwqd5.d.ts} +1 -1
  7. package/dist/build-info.json +3 -3
  8. package/dist/{bundled-channel-config-schema-4eXcH-RE.d.ts → bundled-channel-config-schema-CggLsuD1.d.ts} +6 -6
  9. package/dist/{call-DY6_VEa_.d.ts → call-BcghBti-.d.ts} +1 -1
  10. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  11. package/dist/{channel-B2MLRCOm.d.ts → channel-BLN3s-sM.d.ts} +1 -1
  12. package/dist/{channel-C1AEDysJ.d.ts → channel-Bb0Fk7N5.d.ts} +1 -1
  13. package/dist/{channel-DwSP9REc.d.ts → channel-BeL3VPaE.d.ts} +1 -1
  14. package/dist/{channel-CsdkcuzU.d.ts → channel-C0Q0t3yq.d.ts} +1 -1
  15. package/dist/{channel-DECcAIqn.d.ts → channel-CPrTiIKX.d.ts} +1 -1
  16. package/dist/{channel-D1AKh1-N.d.ts → channel-CdjO6FUh.d.ts} +1 -1
  17. package/dist/{channel-CEH1dfVt.d.ts → channel-CtX2I0sm.d.ts} +1 -1
  18. package/dist/{channel-LKyGksmz.d.ts → channel-D_ejpAge.d.ts} +1 -1
  19. package/dist/{channel-Bq3wyp3c.d.ts → channel-DaGTrpoW.d.ts} +1 -1
  20. package/dist/{channel-Czs81UUj.d.ts → channel-DlRKEkKR.d.ts} +1 -1
  21. package/dist/{channel-CUu3R9QU.d.ts → channel-Dm2ikJ3R.d.ts} +1 -1
  22. package/dist/{channel-B0dtLI6U.d.ts → channel-Ds9HZ5Pn.d.ts} +1 -1
  23. package/dist/{channel-B4XBSqBl.d.ts → channel-O0DhJ0ZI.d.ts} +1 -1
  24. package/dist/{channel-D07QdL-Z.d.ts → channel-PPJceLSU.d.ts} +1 -1
  25. package/dist/{channel-CQJHudhH.d.ts → channel-QGA5PoRP.d.ts} +1 -1
  26. package/dist/{channel-DZW76PDC.d.ts → channel-XP176mLB.d.ts} +1 -1
  27. package/dist/{channel-core-DshTARNf.d.ts → channel-core-BbrmNjJ9.d.ts} +1 -1
  28. package/dist/{channel-entry-contract-DpdwxgOw.d.ts → channel-entry-contract-CRDOTfGN.d.ts} +2 -2
  29. package/dist/{channel-lifecycle-BXdiTu_h.d.ts → channel-lifecycle-C4NrMjdz.d.ts} +0 -1
  30. package/dist/{channel-pairing-qPwn6FAN.d.ts → channel-pairing-ndZVB-VX.d.ts} +1 -1
  31. package/dist/{channel-plugin-runtime-CS0_tyOZ.d.ts → channel-plugin-runtime-DlW7m9O0.d.ts} +1 -1
  32. package/dist/{channel-D-QJ4LSf.d.ts → channel-yiPqVrm_.d.ts} +1 -1
  33. package/dist/{channel.setup-CIlbvWjW.d.ts → channel.setup-BZWFUMOs.d.ts} +1 -1
  34. package/dist/{channel.setup-B03MiH5Q.d.ts → channel.setup-CQxTCRwU.d.ts} +1 -1
  35. package/dist/{channel.setup-ByuZMttY.d.ts → channel.setup-DaCHfiuF.d.ts} +1 -1
  36. package/dist/{cli-pk6gIQfi.d.ts → cli-D2ufgDxS.d.ts} +1 -1
  37. package/dist/{cli-backend-Dg9IEgrP.d.ts → cli-backend-BMsRorQG.d.ts} +1 -1
  38. package/dist/{cli-backend-DwmYGZX7.d.ts → cli-backend-D4dbeHLc.d.ts} +1 -1
  39. package/dist/{cli-shared-C_4_xNC-.d.ts → cli-shared-Dn36Fv4l.d.ts} +1 -1
  40. package/dist/cli-startup-metadata.json +8 -8
  41. package/dist/{commands-CLbV1tFt.d.ts → commands-Rpf1hVTf.d.ts} +1 -1
  42. package/dist/{components-u4gL95dv.d.ts → components-D9TlXmrM.d.ts} +1 -1
  43. package/dist/{components.modal-glHG-y8o.d.ts → components.modal-F1ooc12a.d.ts} +18 -18
  44. package/dist/{config-schema-BwKcspTI.d.ts → config-schema-DgG_1BJd.d.ts} +1 -1
  45. package/dist/{contracts-testkit-CzhusazO.d.ts → contracts-testkit-Cc1wIsHJ.d.ts} +7 -7
  46. package/dist/control-ui/apple-touch-icon.png +0 -0
  47. package/dist/control-ui/assets/agents-Cd4HDGXB.js +1008 -0
  48. package/dist/control-ui/assets/ar-DmY3OKJ7.js +2 -0
  49. package/dist/control-ui/assets/channel-config-extras-CrcZdYBs.js +2 -0
  50. package/dist/control-ui/assets/channels-TfIu5pMX.js +367 -0
  51. package/dist/control-ui/assets/cron-DS_5z6iY.js +1013 -0
  52. package/dist/control-ui/assets/de-nNWCMyC9.js +2 -0
  53. package/dist/control-ui/assets/debug-B458tI72.js +97 -0
  54. package/dist/control-ui/assets/es-BcdhLNdf.js +2 -0
  55. package/dist/control-ui/assets/fa-DbS2z7VZ.js +2 -0
  56. package/dist/control-ui/assets/fr-CBqvw0rY.js +2 -0
  57. package/dist/control-ui/assets/id-DXES9f6X.js +2 -0
  58. package/dist/control-ui/assets/index-BimYwq-S.css +1 -0
  59. package/dist/control-ui/assets/index-D9yWVvOv.js +7383 -0
  60. package/dist/control-ui/assets/instances-B1klbZl9.js +57 -0
  61. package/dist/control-ui/assets/it-DpT4ZVOU.js +2 -0
  62. package/dist/control-ui/assets/ja-JP-D8RXA_04.js +2 -0
  63. package/dist/control-ui/assets/ko-5en8VO8w.js +2 -0
  64. package/dist/control-ui/assets/logs-Wvo7hi7t.js +74 -0
  65. package/dist/control-ui/assets/nl-Bb10QoRg.js +2 -0
  66. package/dist/control-ui/assets/nodes-DpK1mNKn.js +436 -0
  67. package/dist/control-ui/assets/pl-Y8UIOEIm.js +2 -0
  68. package/dist/control-ui/assets/preview-BBw3vauN.js +2 -0
  69. package/dist/control-ui/assets/pt-BR-DDsy5M68.js +2 -0
  70. package/dist/control-ui/assets/push-subscription-TTvs1whj.js +2 -0
  71. package/dist/control-ui/assets/sessions-C7hYv0Bj.js +399 -0
  72. package/dist/control-ui/assets/skills-BgFi9ASn.js +314 -0
  73. package/dist/control-ui/assets/skills-shared-CTB_4HMN.js +11 -0
  74. package/dist/control-ui/assets/th-D_2DtFn6.js +2 -0
  75. package/dist/control-ui/assets/tr-DBsYZTmE.js +2 -0
  76. package/dist/control-ui/assets/uk-BUxHBc05.js +2 -0
  77. package/dist/control-ui/assets/vi-B67Eos5b.js +2 -0
  78. package/dist/control-ui/assets/zh-CN-CDrBrfT7.js +2 -0
  79. package/dist/control-ui/assets/zh-TW-CA4YEnf2.js +2 -0
  80. package/dist/control-ui/favicon-32.png +0 -0
  81. package/dist/control-ui/favicon-512.png +0 -0
  82. package/dist/control-ui/favicon.ico +0 -0
  83. package/dist/control-ui/favicon.svg +12 -0
  84. package/dist/control-ui/index.html +322 -0
  85. package/dist/control-ui/manifest.webmanifest +40 -0
  86. package/dist/control-ui/sw.js +133 -0
  87. package/dist/{core-B7zb6eoz.d.ts → core-D54Hf4I7.d.ts} +2 -2
  88. package/dist/{daocore-runtime-DogaiqPT.d.ts → daocore-runtime-Dq8zKk5g.d.ts} +1 -1
  89. package/dist/{embedding-provider-Cmb3dgUf.d.ts → embedding-provider-Cg4glNGW.d.ts} +1 -1
  90. package/dist/{embedding-provider-w7EJz-DO.d.ts → embedding-provider-CzGtQl9n.d.ts} +1 -1
  91. package/dist/{embedding-provider-B82QlZsy.d.ts → embedding-provider-GQgbSPHM.d.ts} +1 -1
  92. package/dist/entry.d.ts +1 -1
  93. package/dist/extensions/active-memory/index.d.ts +1 -1
  94. package/dist/extensions/admin-http-rpc/index.d.ts +1 -1
  95. package/dist/extensions/alibaba/index.d.ts +1 -1
  96. package/dist/extensions/anthropic/api.d.ts +3 -3
  97. package/dist/extensions/anthropic/cli-backend-api.d.ts +2 -2
  98. package/dist/extensions/anthropic/cli-backend.d.ts +1 -1
  99. package/dist/extensions/anthropic/cli-migration.d.ts +1 -1
  100. package/dist/extensions/anthropic/cli-shared.d.ts +1 -1
  101. package/dist/extensions/anthropic/contract-api.d.ts +1 -1
  102. package/dist/extensions/anthropic/doctor-contract-api.d.ts +1 -1
  103. package/dist/extensions/anthropic/index.d.ts +1 -1
  104. package/dist/extensions/anthropic/provider-contract-api.d.ts +1 -1
  105. package/dist/extensions/anthropic/provider-discovery.d.ts +1 -1
  106. package/dist/extensions/anthropic/provider-policy-api.d.ts +1 -1
  107. package/dist/extensions/anthropic/register.runtime.d.ts +1 -1
  108. package/dist/extensions/anthropic/replay-policy.d.ts +1 -1
  109. package/dist/extensions/anthropic/setup-api.d.ts +1 -1
  110. package/dist/extensions/anthropic/stream-wrappers.d.ts +1 -1
  111. package/dist/extensions/anthropic/test-api.d.ts +2 -2
  112. package/dist/extensions/arcee/index.d.ts +1 -1
  113. package/dist/extensions/azure-speech/index.d.ts +1 -1
  114. package/dist/extensions/azure-speech/speech-provider.d.ts +1 -1
  115. package/dist/extensions/bonjour/index.d.ts +1 -1
  116. package/dist/extensions/browser/cli-metadata.d.ts +1 -1
  117. package/dist/extensions/browser/index.d.ts +1 -1
  118. package/dist/extensions/browser/plugin-registration.d.ts +1 -1
  119. package/dist/extensions/browser/register.runtime.d.ts +2 -2
  120. package/dist/extensions/browser/runtime-api.d.ts +3 -3
  121. package/dist/extensions/browser/setup-api.d.ts +1 -1
  122. package/dist/extensions/browser/test-support.d.ts +1 -1
  123. package/dist/extensions/byteplus/index.d.ts +1 -1
  124. package/dist/extensions/byteplus/provider-discovery.d.ts +1 -1
  125. package/dist/extensions/canvas/cli-metadata.d.ts +1 -1
  126. package/dist/extensions/canvas/index.d.ts +1 -1
  127. package/dist/extensions/canvas/runtime-api.d.ts +2 -2
  128. package/dist/extensions/canvas/setup-api.d.ts +1 -1
  129. package/dist/extensions/cerebras/index.d.ts +1 -1
  130. package/dist/extensions/chutes/index.d.ts +1 -1
  131. package/dist/extensions/clickclack/api.d.ts +2 -2
  132. package/dist/extensions/clickclack/channel-plugin-api.d.ts +1 -1
  133. package/dist/extensions/clickclack/index.d.ts +2 -2
  134. package/dist/extensions/clickclack/runtime-api.d.ts +2 -2
  135. package/dist/extensions/cloudflare-ai-gateway/index.d.ts +1 -1
  136. package/dist/extensions/cloudflare-ai-gateway/stream-wrappers.d.ts +1 -1
  137. package/dist/extensions/comfy/index.d.ts +1 -1
  138. package/dist/extensions/copilot-proxy/index.d.ts +1 -1
  139. package/dist/extensions/copilot-proxy/runtime-api.d.ts +2 -2
  140. package/dist/extensions/deepgram/index.d.ts +1 -1
  141. package/dist/extensions/deepgram/realtime-transcription-provider.d.ts +1 -1
  142. package/dist/extensions/deepgram/test-api.d.ts +1 -1
  143. package/dist/extensions/deepinfra/api.d.ts +2 -2
  144. package/dist/extensions/deepinfra/embedding-provider.d.ts +1 -1
  145. package/dist/extensions/deepinfra/index.d.ts +1 -1
  146. package/dist/extensions/deepinfra/memory-embedding-adapter.d.ts +1 -1
  147. package/dist/extensions/deepinfra/speech-provider.d.ts +1 -1
  148. package/dist/extensions/deepseek/api.d.ts +1 -1
  149. package/dist/extensions/deepseek/index.d.ts +1 -1
  150. package/dist/extensions/deepseek/provider-discovery.d.ts +1 -1
  151. package/dist/extensions/deepseek/provider-policy-api.d.ts +1 -1
  152. package/dist/extensions/deepseek/stream.d.ts +1 -1
  153. package/dist/extensions/deepseek/thinking.d.ts +1 -1
  154. package/dist/extensions/device-pair/api.d.ts +3 -3
  155. package/dist/extensions/device-pair/index.d.ts +1 -1
  156. package/dist/extensions/device-pair/notify.d.ts +1 -1
  157. package/dist/extensions/document-extract/index.d.ts +1 -1
  158. package/dist/extensions/duckduckgo/index.d.ts +1 -1
  159. package/dist/extensions/elevenlabs/index.d.ts +1 -1
  160. package/dist/extensions/elevenlabs/realtime-transcription-provider.d.ts +1 -1
  161. package/dist/extensions/elevenlabs/setup-api.d.ts +1 -1
  162. package/dist/extensions/elevenlabs/speech-provider.d.ts +1 -1
  163. package/dist/extensions/elevenlabs/test-api.d.ts +2 -2
  164. package/dist/extensions/exa/index.d.ts +1 -1
  165. package/dist/extensions/fal/index.d.ts +1 -1
  166. package/dist/extensions/fal/provider-contract-api.d.ts +1 -1
  167. package/dist/extensions/fal/provider-registration.d.ts +1 -1
  168. package/dist/extensions/file-transfer/index.d.ts +1 -1
  169. package/dist/extensions/firecrawl/index.d.ts +1 -1
  170. package/dist/extensions/fireworks/index.d.ts +1 -1
  171. package/dist/extensions/fireworks/provider-policy-api.d.ts +1 -1
  172. package/dist/extensions/fireworks/stream.d.ts +1 -1
  173. package/dist/extensions/fireworks/thinking-policy.d.ts +1 -1
  174. package/dist/extensions/github-copilot/embeddings.d.ts +1 -1
  175. package/dist/extensions/github-copilot/index.d.ts +1 -1
  176. package/dist/extensions/github-copilot/models.d.ts +1 -1
  177. package/dist/extensions/github-copilot/register.runtime.d.ts +2 -2
  178. package/dist/extensions/github-copilot/stream.d.ts +1 -1
  179. package/dist/extensions/google/api.d.ts +5 -5
  180. package/dist/extensions/google/cli-backend.d.ts +1 -1
  181. package/dist/extensions/google/doctor-contract-api.d.ts +1 -1
  182. package/dist/extensions/google/embedding-batch.d.ts +1 -1
  183. package/dist/extensions/google/embedding-provider.d.ts +1 -1
  184. package/dist/extensions/google/gemini-cli-provider.d.ts +1 -1
  185. package/dist/extensions/google/generation-provider-metadata.d.ts +1 -1
  186. package/dist/extensions/google/index.d.ts +1 -1
  187. package/dist/extensions/google/memory-embedding-adapter.d.ts +1 -1
  188. package/dist/extensions/google/provider-contract-api.d.ts +1 -1
  189. package/dist/extensions/google/provider-hooks.d.ts +2 -2
  190. package/dist/extensions/google/provider-models.d.ts +1 -1
  191. package/dist/extensions/google/provider-policy-api.d.ts +1 -1
  192. package/dist/extensions/google/provider-policy.d.ts +1 -1
  193. package/dist/extensions/google/provider-registration.d.ts +1 -1
  194. package/dist/extensions/google/realtime-voice-provider.d.ts +1 -1
  195. package/dist/extensions/google/runtime-api.d.ts +3 -3
  196. package/dist/extensions/google/setup-api.d.ts +1 -1
  197. package/dist/extensions/google/speech-provider.d.ts +1 -1
  198. package/dist/extensions/google/test-api.d.ts +2 -2
  199. package/dist/extensions/google/thinking-api.d.ts +1 -1
  200. package/dist/extensions/google/thinking.d.ts +1 -1
  201. package/dist/extensions/google/transport-stream.d.ts +1 -1
  202. package/dist/extensions/gradium/index.d.ts +1 -1
  203. package/dist/extensions/gradium/speech-provider.d.ts +1 -1
  204. package/dist/extensions/groq/index.d.ts +1 -1
  205. package/dist/extensions/huggingface/index.d.ts +1 -1
  206. package/dist/extensions/image-generation-core/api.d.ts +4 -4
  207. package/dist/extensions/image-generation-core/runtime-api.d.ts +1 -1
  208. package/dist/extensions/imessage/api.d.ts +2 -2
  209. package/dist/extensions/imessage/channel-plugin-api.d.ts +1 -1
  210. package/dist/extensions/imessage/index.d.ts +2 -2
  211. package/dist/extensions/imessage/message-tool-api.d.ts +1 -1
  212. package/dist/extensions/imessage/runtime-api.d.ts +4 -4
  213. package/dist/extensions/imessage/setup-entry.d.ts +2 -2
  214. package/dist/extensions/imessage/test-api.d.ts +1 -1
  215. package/dist/extensions/inworld/index.d.ts +1 -1
  216. package/dist/extensions/inworld/speech-provider.d.ts +1 -1
  217. package/dist/extensions/irc/api.d.ts +1 -1
  218. package/dist/extensions/irc/channel-plugin-api.d.ts +1 -1
  219. package/dist/extensions/irc/index.d.ts +2 -2
  220. package/dist/extensions/irc/setup-entry.d.ts +2 -2
  221. package/dist/extensions/kilocode/index.d.ts +1 -1
  222. package/dist/extensions/kimi-coding/index.d.ts +1 -1
  223. package/dist/extensions/kimi-coding/stream.d.ts +1 -1
  224. package/dist/extensions/litellm/index.d.ts +1 -1
  225. package/dist/extensions/llm-task/api.d.ts +2 -2
  226. package/dist/extensions/llm-task/index.d.ts +1 -1
  227. package/dist/extensions/lmstudio/api.d.ts +1 -1
  228. package/dist/extensions/lmstudio/index.d.ts +1 -1
  229. package/dist/extensions/lmstudio/memory-embedding-adapter.d.ts +1 -1
  230. package/dist/extensions/mattermost/channel-plugin-api.d.ts +2 -2
  231. package/dist/extensions/mattermost/channel-plugin-runtime.d.ts +1 -1
  232. package/dist/extensions/mattermost/index.d.ts +2 -2
  233. package/dist/extensions/mattermost/runtime-api.d.ts +9 -9
  234. package/dist/extensions/mattermost/setup-entry.d.ts +2 -2
  235. package/dist/extensions/mattermost/slash-route-api.d.ts +1 -1
  236. package/dist/extensions/memory-core/api.d.ts +1 -1
  237. package/dist/extensions/memory-core/cli-metadata.d.ts +1 -1
  238. package/dist/extensions/memory-core/index.d.ts +1 -1
  239. package/dist/extensions/memory-core/manager-runtime.d.ts +1 -1
  240. package/dist/extensions/memory-core/runtime-api.d.ts +2 -2
  241. package/dist/extensions/memory-wiki/api.d.ts +3 -3
  242. package/dist/extensions/memory-wiki/cli-metadata.d.ts +1 -1
  243. package/dist/extensions/memory-wiki/index.d.ts +1 -1
  244. package/dist/extensions/memory-wiki/setup-api.d.ts +1 -1
  245. package/dist/extensions/microsoft/index.d.ts +1 -1
  246. package/dist/extensions/microsoft/speech-provider.d.ts +1 -1
  247. package/dist/extensions/microsoft/test-api.d.ts +1 -1
  248. package/dist/extensions/microsoft-foundry/auth.d.ts +1 -1
  249. package/dist/extensions/microsoft-foundry/cli.d.ts +1 -1
  250. package/dist/extensions/microsoft-foundry/index.d.ts +1 -1
  251. package/dist/extensions/microsoft-foundry/onboard.d.ts +3 -3
  252. package/dist/extensions/microsoft-foundry/provider.d.ts +1 -1
  253. package/dist/extensions/microsoft-foundry/runtime.d.ts +1 -1
  254. package/dist/extensions/microsoft-foundry/shared-runtime.d.ts +1 -1
  255. package/dist/extensions/microsoft-foundry/shared.d.ts +1 -1
  256. package/dist/extensions/migrate-claude/apply.d.ts +1 -1
  257. package/dist/extensions/migrate-claude/config.d.ts +1 -1
  258. package/dist/extensions/migrate-claude/helpers.d.ts +1 -1
  259. package/dist/extensions/migrate-claude/index.d.ts +1 -1
  260. package/dist/extensions/migrate-claude/memory.d.ts +2 -2
  261. package/dist/extensions/migrate-claude/plan.d.ts +1 -1
  262. package/dist/extensions/migrate-claude/provider.d.ts +1 -1
  263. package/dist/extensions/migrate-claude/skills.d.ts +2 -2
  264. package/dist/extensions/migrate-claude/targets.d.ts +1 -1
  265. package/dist/extensions/migrate-hermes/apply.d.ts +1 -1
  266. package/dist/extensions/migrate-hermes/config.d.ts +1 -1
  267. package/dist/extensions/migrate-hermes/helpers.d.ts +1 -1
  268. package/dist/extensions/migrate-hermes/index.d.ts +1 -1
  269. package/dist/extensions/migrate-hermes/items.d.ts +1 -1
  270. package/dist/extensions/migrate-hermes/model.d.ts +1 -1
  271. package/dist/extensions/migrate-hermes/plan.d.ts +1 -1
  272. package/dist/extensions/migrate-hermes/provider.d.ts +1 -1
  273. package/dist/extensions/migrate-hermes/secrets.d.ts +2 -2
  274. package/dist/extensions/migrate-hermes/skills.d.ts +2 -2
  275. package/dist/extensions/migrate-hermes/targets.d.ts +1 -1
  276. package/dist/extensions/minimax/index.d.ts +1 -1
  277. package/dist/extensions/minimax/provider-contract-api.d.ts +1 -1
  278. package/dist/extensions/minimax/provider-registration.d.ts +1 -1
  279. package/dist/extensions/minimax/speech-provider.d.ts +1 -1
  280. package/dist/extensions/mistral/embedding-provider.d.ts +1 -1
  281. package/dist/extensions/mistral/index.d.ts +1 -1
  282. package/dist/extensions/mistral/memory-embedding-adapter.d.ts +1 -1
  283. package/dist/extensions/mistral/realtime-transcription-provider.d.ts +1 -1
  284. package/dist/extensions/mistral/test-api.d.ts +1 -1
  285. package/dist/extensions/moonshot/index.d.ts +1 -1
  286. package/dist/extensions/moonshot/provider-contract-api.d.ts +1 -1
  287. package/dist/extensions/moonshot/provider-discovery.d.ts +1 -1
  288. package/dist/extensions/nvidia/index.d.ts +1 -1
  289. package/dist/extensions/oc-path/cli-metadata.d.ts +1 -1
  290. package/dist/extensions/oc-path/cli-registration.d.ts +1 -1
  291. package/dist/extensions/oc-path/index.d.ts +1 -1
  292. package/dist/extensions/ollama/api.d.ts +1 -1
  293. package/dist/extensions/ollama/index.d.ts +1 -1
  294. package/dist/extensions/ollama/provider-discovery.d.ts +1 -1
  295. package/dist/extensions/ollama/provider-policy-api.d.ts +1 -1
  296. package/dist/extensions/ollama/runtime-api.d.ts +1 -1
  297. package/dist/extensions/open-prose/index.d.ts +1 -1
  298. package/dist/extensions/open-prose/runtime-api.d.ts +2 -2
  299. package/dist/extensions/openai/api.d.ts +4 -4
  300. package/dist/extensions/openai/embedding-batch.d.ts +1 -1
  301. package/dist/extensions/openai/embedding-provider.d.ts +1 -1
  302. package/dist/extensions/openai/index.d.ts +1 -1
  303. package/dist/extensions/openai/memory-embedding-adapter.d.ts +1 -1
  304. package/dist/extensions/openai/openai-codex-oauth.runtime.d.ts +1 -1
  305. package/dist/extensions/openai/openai-codex-provider.d.ts +1 -1
  306. package/dist/extensions/openai/openai-provider.d.ts +1 -1
  307. package/dist/extensions/openai/prompt-overlay.d.ts +1 -1
  308. package/dist/extensions/openai/provider-contract-api.d.ts +1 -1
  309. package/dist/extensions/openai/provider-policy-api.d.ts +1 -1
  310. package/dist/extensions/openai/realtime-transcription-provider.d.ts +1 -1
  311. package/dist/extensions/openai/realtime-voice-provider.d.ts +1 -1
  312. package/dist/extensions/openai/register.runtime.d.ts +6 -6
  313. package/dist/extensions/openai/replay-policy.d.ts +1 -1
  314. package/dist/extensions/openai/setup-api.d.ts +1 -1
  315. package/dist/extensions/openai/shared.d.ts +3 -3
  316. package/dist/extensions/openai/speech-provider.d.ts +1 -1
  317. package/dist/extensions/openai/test-api.d.ts +3 -3
  318. package/dist/extensions/openai/thinking-policy.d.ts +1 -1
  319. package/dist/extensions/openai/transport-policy.d.ts +1 -1
  320. package/dist/extensions/opencode/index.d.ts +1 -1
  321. package/dist/extensions/opencode/provider-policy-api.d.ts +1 -1
  322. package/dist/extensions/opencode-go/index.d.ts +1 -1
  323. package/dist/extensions/opencode-go/provider-catalog.d.ts +1 -1
  324. package/dist/extensions/opencode-go/stream.d.ts +1 -1
  325. package/dist/extensions/openrouter/api.d.ts +1 -1
  326. package/dist/extensions/openrouter/index.d.ts +1 -1
  327. package/dist/extensions/openrouter/provider-contract-api.d.ts +1 -1
  328. package/dist/extensions/openrouter/provider-policy-api.d.ts +1 -1
  329. package/dist/extensions/openrouter/speech-provider.d.ts +1 -1
  330. package/dist/extensions/openrouter/stream.d.ts +1 -1
  331. package/dist/extensions/openrouter/test-api.d.ts +1 -1
  332. package/dist/extensions/openrouter/thinking-policy.d.ts +1 -1
  333. package/dist/extensions/openrouter/video-generation-provider.d.ts +1 -1
  334. package/dist/extensions/openrouter/video-model-catalog.d.ts +1 -1
  335. package/dist/extensions/perplexity/index.d.ts +1 -1
  336. package/dist/extensions/phone-control/index.d.ts +1 -1
  337. package/dist/extensions/phone-control/runtime-api.d.ts +2 -2
  338. package/dist/extensions/policy/index.d.ts +1 -1
  339. package/dist/extensions/qianfan/index.d.ts +1 -1
  340. package/dist/extensions/qwen/api.d.ts +1 -1
  341. package/dist/extensions/qwen/index.d.ts +1 -1
  342. package/dist/extensions/qwen/stream.d.ts +1 -1
  343. package/dist/extensions/qwen-dashscope/index.d.ts +1 -1
  344. package/dist/extensions/runway/index.d.ts +1 -1
  345. package/dist/extensions/searxng/index.d.ts +1 -1
  346. package/dist/extensions/senseaudio/index.d.ts +1 -1
  347. package/dist/extensions/sglang/index.d.ts +1 -1
  348. package/dist/extensions/signal/api.d.ts +3 -4
  349. package/dist/extensions/signal/channel-entry.d.ts +2 -2
  350. package/dist/extensions/signal/channel-plugin-api.d.ts +1 -1
  351. package/dist/extensions/signal/index.d.ts +2 -2
  352. package/dist/extensions/signal/runtime-api.d.ts +7 -7
  353. package/dist/extensions/signal/setup-entry.d.ts +2 -2
  354. package/dist/extensions/skill-workshop/api.d.ts +2 -2
  355. package/dist/extensions/skill-workshop/index.d.ts +1 -1
  356. package/dist/extensions/speech-core/api.d.ts +3 -3
  357. package/dist/extensions/speech-core/runtime-api.d.ts +2 -2
  358. package/dist/extensions/stepfun/index.d.ts +1 -1
  359. package/dist/extensions/synthetic/index.d.ts +1 -1
  360. package/dist/extensions/talk-voice/api.d.ts +2 -2
  361. package/dist/extensions/talk-voice/index.d.ts +1 -1
  362. package/dist/extensions/tavily/index.d.ts +1 -1
  363. package/dist/extensions/telegram/api.d.ts +4 -4
  364. package/dist/extensions/telegram/channel-plugin-api.d.ts +2 -2
  365. package/dist/extensions/telegram/contract-api.d.ts +1 -1
  366. package/dist/extensions/telegram/index.d.ts +2 -2
  367. package/dist/extensions/telegram/runtime-api.d.ts +4 -4
  368. package/dist/extensions/telegram/setup-entry.d.ts +2 -2
  369. package/dist/extensions/telegram/setup-plugin-api.d.ts +1 -1
  370. package/dist/extensions/tencent/index.d.ts +1 -1
  371. package/dist/extensions/tencent/provider-discovery.d.ts +1 -1
  372. package/dist/extensions/thread-ownership/api.d.ts +2 -2
  373. package/dist/extensions/thread-ownership/index.d.ts +1 -1
  374. package/dist/extensions/together/index.d.ts +1 -1
  375. package/dist/extensions/tokenjuice/index.d.ts +1 -1
  376. package/dist/extensions/tokenjuice/tool-result-middleware.d.ts +1 -1
  377. package/dist/extensions/tts-local-cli/index.d.ts +1 -1
  378. package/dist/extensions/tts-local-cli/speech-provider.d.ts +1 -1
  379. package/dist/extensions/venice/index.d.ts +1 -1
  380. package/dist/extensions/venice/stream.d.ts +1 -1
  381. package/dist/extensions/vercel-ai-gateway/index.d.ts +1 -1
  382. package/dist/extensions/vercel-ai-gateway/thinking.d.ts +1 -1
  383. package/dist/extensions/video-generation-core/api.d.ts +3 -3
  384. package/dist/extensions/video-generation-core/runtime-api.d.ts +1 -1
  385. package/dist/extensions/vllm/api.d.ts +1 -1
  386. package/dist/extensions/vllm/index.d.ts +1 -1
  387. package/dist/extensions/vllm/stream.d.ts +1 -1
  388. package/dist/extensions/volcengine/index.d.ts +1 -1
  389. package/dist/extensions/volcengine/provider-discovery.d.ts +1 -1
  390. package/dist/extensions/volcengine/speech-provider.d.ts +1 -1
  391. package/dist/extensions/voyage/embedding-batch.d.ts +1 -1
  392. package/dist/extensions/voyage/embedding-provider.d.ts +1 -1
  393. package/dist/extensions/voyage/index.d.ts +1 -1
  394. package/dist/extensions/voyage/memory-embedding-adapter.d.ts +1 -1
  395. package/dist/extensions/vydra/index.d.ts +1 -1
  396. package/dist/extensions/vydra/speech-provider.d.ts +1 -1
  397. package/dist/extensions/web-readability/index.d.ts +1 -1
  398. package/dist/extensions/webhooks/api.d.ts +2 -2
  399. package/dist/extensions/webhooks/index.d.ts +1 -1
  400. package/dist/extensions/webhooks/runtime-api.d.ts +2 -2
  401. package/dist/extensions/xai/api.d.ts +1 -1
  402. package/dist/extensions/xai/index.d.ts +1 -1
  403. package/dist/extensions/xai/provider-contract-api.d.ts +1 -1
  404. package/dist/extensions/xai/provider-discovery.d.ts +1 -1
  405. package/dist/extensions/xai/provider-models.d.ts +1 -1
  406. package/dist/extensions/xai/provider-policy-api.d.ts +1 -1
  407. package/dist/extensions/xai/realtime-transcription-provider.d.ts +1 -1
  408. package/dist/extensions/xai/setup-api.d.ts +1 -1
  409. package/dist/extensions/xai/speech-provider.d.ts +1 -1
  410. package/dist/extensions/xai/stream.d.ts +1 -1
  411. package/dist/extensions/xai/xai-oauth.d.ts +1 -1
  412. package/dist/extensions/xiaomi/index.d.ts +1 -1
  413. package/dist/extensions/xiaomi/speech-provider.d.ts +1 -1
  414. package/dist/extensions/xiaomi/stream.d.ts +1 -1
  415. package/dist/extensions/xiaomi/thinking.d.ts +1 -1
  416. package/dist/extensions/zai/index.d.ts +1 -1
  417. package/dist/gateway/protocol/index.d.ts +1 -1
  418. package/dist/{gateway-runtime-BcWCu-QH.d.ts → gateway-runtime-Dug98Gow.d.ts} +2 -2
  419. package/dist/{gemini-cli-provider-DtyOwxHA.d.ts → gemini-cli-provider-DDY36-2r.d.ts} +1 -1
  420. package/dist/{hook-runtime-BBONf8H3.d.ts → hook-runtime-Cms52qXe.d.ts} +0 -1
  421. package/dist/{http-registry-D3Cdok5J.d.ts → http-registry-BJ7QdWob.d.ts} +2 -2
  422. package/dist/{image-generation-runtime-DhYgou3B.d.ts → image-generation-runtime-BApY24c0.d.ts} +1 -1
  423. package/dist/{index-ChRAMnH9.d.ts → index-BrXHfthg.d.ts} +71 -71
  424. package/dist/index.d.ts +1 -1
  425. package/dist/{interactive-dispatch-B-NLdr77.d.ts → interactive-dispatch-Bmgly_aH.d.ts} +1 -1
  426. package/dist/{interactive-dispatch-B66zssEF.d.ts → interactive-dispatch-Cq3O9v__.d.ts} +1 -1
  427. package/dist/{loader-Ben-RYnp.d.ts → loader-C7HlLD-W.d.ts} +3 -3
  428. package/dist/{manager-BDWyUfHJ.d.ts → manager-B7CZq79p.d.ts} +3 -3
  429. package/dist/{manager.core-BRd2_lqA.d.ts → manager-CuzV3XAs.d.ts} +8 -1
  430. package/dist/{memory-core-host-engine-storage-BAq5Rf51.d.ts → memory-core-host-engine-storage-C-EGlthN.d.ts} +1 -1
  431. package/dist/{memory-embedding-adapter-Cv87QsD0.d.ts → memory-embedding-adapter-LhOBTV_Q.d.ts} +1 -1
  432. package/dist/{migration-BOkhOT4K.d.ts → migration-BNe_Kqlr.d.ts} +1 -1
  433. package/dist/{model-B4s-pIp8.d.ts → model-D3t_VZBe.d.ts} +1 -1
  434. package/dist/{models-6NYWdsJM.d.ts → models-D0mkxOBi.d.ts} +1 -1
  435. package/dist/{openai-codex-provider-CByFL0Au.d.ts → openai-codex-provider-DOhQO2i6.d.ts} +1 -1
  436. package/dist/{openai-provider-DbEgHbfx.d.ts → openai-provider-BZY72yxX.d.ts} +1 -1
  437. package/dist/{pairing-store-Cfy_zHzi.d.ts → pairing-challenge-EwSQYSud.d.ts} +34 -34
  438. package/dist/{plugin-BehbkTVr.d.ts → plugin-DABPMTgN.d.ts} +1 -1
  439. package/dist/{plugin-entry-feg_rkHL.d.ts → plugin-entry-DszMqBip.d.ts} +1 -1
  440. package/dist/{plugin-runtime-paqzXBLJ.d.ts → plugin-runtime-DCfhw-51.d.ts} +2 -2
  441. package/dist/plugin-sdk/.boundary-entry-shims.stamp +1 -1
  442. package/dist/plugin-sdk/scripts/lib/plugin-sdk-doc-metadata.d.ts +107 -0
  443. package/dist/plugin-sdk/src/commands/doctor.types.d.ts +1 -0
  444. package/dist/plugin-sdk/src/compat/legacy-names.d.ts +1 -1
  445. package/dist/plugin-sdk/src/plugins/manifest.d.ts +1 -1
  446. package/dist/{plugin-service-C0JwHvDr.d.ts → plugin-service-Bh0RXPQF.d.ts} +2 -2
  447. package/dist/plugins/build-smoke-entry.d.ts +2 -2
  448. package/dist/plugins/loader.d.ts +1 -1
  449. package/dist/plugins/provider-discovery.runtime.d.ts +1 -1
  450. package/dist/plugins/provider-runtime.runtime.d.ts +1 -1
  451. package/dist/postinstall-inventory.json +11610 -0
  452. package/dist/{prompt-overlay-qLjnjnSK.d.ts → prompt-overlay-Bl__417W.d.ts} +2 -2
  453. package/dist/{provider-api-key-auth-CB8Tllmv.d.ts → provider-api-key-auth-BtgfgBQ_.d.ts} +1 -1
  454. package/dist/{provider-auth-result-Xze96yVn.d.ts → provider-auth-result-DwDEh4Wu.d.ts} +1 -1
  455. package/dist/{provider-catalog-runtime-Bo88wUpB.d.ts → provider-catalog-runtime-BxS-KWL-.d.ts} +3 -3
  456. package/dist/{provider-catalog-shared-rq7-Hkyg.d.ts → provider-catalog-shared-ZzBLGC09.d.ts} +1 -1
  457. package/dist/{provider-hook-runtime-bhgA4zLg.d.ts → provider-hook-runtime-Bq5hDS6X.d.ts} +1 -1
  458. package/dist/{provider-model-shared-Bv_vhH6i.d.ts → provider-model-shared-CssjJCvT.d.ts} +1 -1
  459. package/dist/{provider-models-DzbXgGDD.d.ts → provider-models-BRlmkN52.d.ts} +1 -1
  460. package/dist/{provider-policy-Cx2IwhQ-.d.ts → provider-policy-pnZ14BWo.d.ts} +1 -1
  461. package/dist/{provider-registration-D4DJp8vF.d.ts → provider-registration-CzXL7-DC.d.ts} +1 -1
  462. package/dist/{provider-registry-BrtezAkH.d.ts → provider-registry-BG6uQnFv.d.ts} +1 -1
  463. package/dist/{provider-registry-DG571X-9.d.ts → provider-registry-BvKM1Xus.d.ts} +1 -1
  464. package/dist/{provider-registry-BQ5DzWBt.d.ts → provider-registry-BwKmjzOl.d.ts} +1 -1
  465. package/dist/{provider-runtime-BJlV-8wH.d.ts → provider-runtime-Banq8fTn.d.ts} +2 -2
  466. package/dist/{provider-self-hosted-setup-C5mGtzPJ.d.ts → provider-self-hosted-setup-CqKnpfoO.d.ts} +1 -1
  467. package/dist/{provider-stream-D-MYyujL.d.ts → provider-stream-Gb-cubiO.d.ts} +1 -1
  468. package/dist/{provider-stream-shared-B6pQNRl4.d.ts → provider-stream-shared-C_EXnI7M.d.ts} +1 -1
  469. package/dist/{providers.runtime-B9kfx6q8.d.ts → providers.runtime-BtHiUvH_.d.ts} +2 -2
  470. package/dist/{realtime-transcription-CAC89bnc.d.ts → realtime-transcription-BekZDkYC.d.ts} +1 -1
  471. package/dist/{realtime-transcription-provider-DTYtMlJi.d.ts → realtime-transcription-provider-BsEyHPpZ.d.ts} +1 -1
  472. package/dist/{realtime-transcription-provider-DirKeOjA.d.ts → realtime-transcription-provider-Cg219BTK.d.ts} +1 -1
  473. package/dist/{realtime-transcription-provider-QHEXWhCJ.d.ts → realtime-transcription-provider-DN9XKTKi.d.ts} +1 -1
  474. package/dist/{realtime-transcription-provider-ChYQDNhv.d.ts → realtime-transcription-provider-DWd6aE3U.d.ts} +1 -1
  475. package/dist/{realtime-voice-Bm0GBqnc.d.ts → realtime-voice-Cvf0PpJI.d.ts} +1 -1
  476. package/dist/{realtime-voice-provider-NcUDkuN4.d.ts → realtime-voice-provider-CAnMVKBb.d.ts} +1 -1
  477. package/dist/{register.runtime-CXLFfKiU.d.ts → register.runtime-D79HeFk9.d.ts} +1 -1
  478. package/dist/{registry-DXBS27qE.d.ts → registry-DnwR1r3f.d.ts} +5 -5
  479. package/dist/{registry-types-DlO771W4.d.ts → registry-types-BPOFT070.d.ts} +4 -4
  480. package/dist/{runtime-D21vC5Bd.d.ts → runtime-C3k-ZByi.d.ts} +1 -1
  481. package/dist/{runtime-api.actions-CClxRuYx.d.ts → runtime-api.actions-CzDO06T7.d.ts} +1 -1
  482. package/dist/{runtime-api.monitor-DXEdIqiH.d.ts → runtime-api.monitor-BP7gIISf.d.ts} +1 -1
  483. package/dist/{runtime-api.send-B5TgJp5s.d.ts → runtime-api.send-C_MjuzGA.d.ts} +2 -2
  484. package/dist/{runtime-doctor-DVYwKwIT.d.ts → runtime-doctor-_yVIDUi3.d.ts} +1 -0
  485. package/dist/{runtime-taskflow-PDIujF9q.d.ts → runtime-taskflow-BwzesmzM.d.ts} +4 -4
  486. package/dist/{send-DZ4YhPHH.d.ts → send-CTDEXMPp.d.ts} +1 -1
  487. package/dist/{send-D95RJNJM.d.ts → send-DaFuA5cD.d.ts} +1 -0
  488. package/dist/{send.types-_f4omMzG.d.ts → send.types-DU1uiiR9.d.ts} +1 -0
  489. package/dist/server-close.runtime.d.ts +1 -1
  490. package/dist/{shared-eYKaB8rP.d.ts → shared-x6cRVlIG.d.ts} +1 -1
  491. package/dist/{simple-completion-runtime-D3SeEaWT.d.ts → simple-completion-runtime-CVaNoJgr.d.ts} +1 -1
  492. package/dist/{speech-Dbhvhbdq.d.ts → speech-BldOzN7D.d.ts} +1 -1
  493. package/dist/{speech-core-8X_D3HLF.d.ts → speech-core-Dp1XNi2r.d.ts} +1 -1
  494. package/dist/{speech-provider-DdfnOmrC.d.ts → speech-provider-49WMvTUV.d.ts} +1 -1
  495. package/dist/{speech-provider-CbneUhtJ.d.ts → speech-provider-B7jHbpoT.d.ts} +1 -1
  496. package/dist/{speech-provider-DOAvAvlS.d.ts → speech-provider-BbOdr-G3.d.ts} +1 -1
  497. package/dist/{speech-provider-BYm63_co.d.ts → speech-provider-BfZ_TyFS.d.ts} +1 -1
  498. package/dist/{speech-provider-ptNkD7Yf.d.ts → speech-provider-DEncAd5H.d.ts} +1 -1
  499. package/dist/{speech-provider-BtJxZzKb.d.ts → speech-provider-DHXFSxG_.d.ts} +1 -1
  500. package/dist/{stream-C6huJP_D.d.ts → stream-C6wswgEe.d.ts} +1 -1
  501. package/dist/{stream-D4Pmcj3t.d.ts → stream-DD0xtpaD.d.ts} +1 -1
  502. package/dist/{stream-DpSe6hAE.d.ts → stream-DlObGg8w.d.ts} +1 -1
  503. package/dist/{stream-BHkpDd1i.d.ts → stream-OvQ1vP_I.d.ts} +1 -1
  504. package/dist/{stream-DrRUuJ8m.d.ts → stream-qqciNyZM.d.ts} +1 -1
  505. package/dist/{stream-wrappers-DLxwmPDI.d.ts → stream-wrappers-C_I4Eh4j.d.ts} +2 -2
  506. package/dist/{targets-CZhlhiDN.d.ts → targets-DPgRiJY8.d.ts} +1 -1
  507. package/dist/{targets-HPytm6Z8.d.ts → targets-fRhWAmad.d.ts} +1 -1
  508. package/dist/task-registry-control.runtime.d.ts +1 -1
  509. package/dist/{test-fixtures-xgg7UsEw.d.ts → test-fixtures-HY6a4nTW.d.ts} +0 -1
  510. package/dist/{thinking-policy-wJH8MNPa.d.ts → thinking-policy-03yLwhvK.d.ts} +1 -1
  511. package/dist/{tool-plugin-CmXn59FQ.d.ts → tool-plugin-CwekJ-mN.d.ts} +2 -2
  512. package/dist/{tool-split-CaXOLBeI.d.ts → tool-split-C4bHa8_p.d.ts} +1 -1
  513. package/dist/{transport-stream-lU_hAKuv.d.ts → transport-stream-CuoX3KRs.d.ts} +1 -1
  514. package/dist/{typed-cases-v8PtmO3g.d.ts → typed-cases-BYRVKA1F.d.ts} +1 -1
  515. package/dist/{types-Zj4Bq9h-2.d.ts → types-CnRARAsT2.d.ts} +3 -3
  516. package/dist/{types-CD1xwSld.d.ts → types-DoawJhg9.d.ts} +1 -1
  517. package/dist/{types.public-B0VjJLe9.d.ts → types.public-CerlXEmz.d.ts} +1 -1
  518. package/dist/{video-generation-runtime-DsFG7djU.d.ts → video-generation-runtime-6CeJcQCq.d.ts} +1 -1
  519. package/dist/{video-model-catalog-CfhC-Mol.d.ts → video-model-catalog-BPeR0NXZ.d.ts} +1 -1
  520. package/dist/{webhook-targets-C9cJD_kB.d.ts → webhook-targets-CSyBPUFJ.d.ts} +1 -1
  521. package/package.json +1 -1
  522. package/dist/manager-DWN3qo90.d.ts +0 -10
  523. package/dist/reply-runtime-DUv2dRp3.d.ts +0 -34
  524. package/dist/server-plugins-BVVgDSdq.d.ts +0 -1
  525. package/dist/subagent-registry-BVVgDSdq.d.ts +0 -1
  526. package/dist/subagent-registry-read-BVVgDSdq.d.ts +0 -1
  527. package/dist/test-support-BVVgDSdq.d.ts +0 -1
  528. /package/dist/{models-D6WT5XG82.d.ts → models-D6WT5XG8.d.ts} +0 -0
  529. /package/dist/{runtime-api-C7ToEUFX.d.ts → runtime-api-C7ToEUFX2.d.ts} +0 -0
@@ -0,0 +1,1013 @@
1
+ import{C as e,D as t,S as n,Y as r,a as i,g as a,it as o,k as s,m as c,n as l,rt as u,tt as d}from"./index-D9yWVvOv.js";function f(){return[{value:`ok`,label:d(`cron.runs.runStatusOk`)},{value:`error`,label:d(`cron.runs.runStatusError`)},{value:`skipped`,label:d(`cron.runs.runStatusSkipped`)}]}function p(){return[{value:`delivered`,label:d(`cron.runs.deliveryDelivered`)},{value:`not-delivered`,label:d(`cron.runs.deliveryNotDelivered`)},{value:`unknown`,label:d(`cron.runs.deliveryUnknown`)},{value:`not-requested`,label:d(`cron.runs.deliveryNotRequested`)}]}function m(e,t,n){let r=new Set(e);return n?r.add(t):r.delete(t),Array.from(r)}function h(e,t){return e.length===0?t:e.length<=2?e.join(`, `):`${e[0]} +${e.length-1}`}function g(e){let t=[`last`,...e.channels.filter(Boolean)],n=e.form.deliveryChannel?.trim();n&&!t.includes(n)&&t.push(n);let r=new Set;return t.filter(e=>r.has(e)?!1:(r.add(e),!0))}function _(e,t){if(t===`last`)return`last`;let n=e.channelMeta?.find(e=>e.id===t);return n?.label?n.label:e.channelLabels?.[t]??t}function v(e){return o`
2
+ <div class="field cron-filter-dropdown" data-filter=${e.id}>
3
+ <span>${e.title}</span>
4
+ <details class="cron-filter-dropdown__details">
5
+ <summary class="btn cron-filter-dropdown__trigger">
6
+ <span>${e.summary}</span>
7
+ </summary>
8
+ <div class="cron-filter-dropdown__panel">
9
+ <div class="cron-filter-dropdown__list">
10
+ ${e.options.map(t=>o`
11
+ <label class="cron-filter-dropdown__option">
12
+ <input
13
+ type="checkbox"
14
+ value=${t.value}
15
+ .checked=${e.selected.includes(t.value)}
16
+ @change=${n=>{let r=n.target;e.onToggle(t.value,r.checked)}}
17
+ />
18
+ <span>${t.label}</span>
19
+ </label>
20
+ `)}
21
+ </div>
22
+ <div class="row">
23
+ <button class="btn" type="button" @click=${e.onClear}>
24
+ ${d(`cron.runs.clear`)}
25
+ </button>
26
+ </div>
27
+ </div>
28
+ </details>
29
+ </div>
30
+ `}function y(e,t){let n=Array.from(new Set(t.map(e=>e.trim()).filter(Boolean)));return n.length===0?u:o`<datalist id=${e}>
31
+ ${n.map(e=>o`<option value=${e}></option> `)}
32
+ </datalist>`}function b(e){return`cron-error-${e}`}function x(e){return e===`name`?`cron-name`:e===`scheduleAt`?`cron-schedule-at`:e===`everyAmount`?`cron-every-amount`:e===`cronExpr`?`cron-cron-expr`:e===`staggerAmount`?`cron-stagger-amount`:e===`payloadText`?`cron-payload-text`:e===`payloadModel`?`cron-payload-model`:e===`payloadThinking`?`cron-payload-thinking`:e===`timeoutSeconds`?`cron-timeout-seconds`:e===`failureAlertAfter`?`cron-failure-alert-after`:e===`failureAlertCooldownSeconds`?`cron-failure-alert-cooldown-seconds`:`cron-delivery-to`}function S(e,t,n){return e===`payloadText`?t.payloadKind===`systemEvent`?d(`cron.form.mainTimelineMessage`):d(`cron.form.assistantTaskPrompt`):e===`deliveryTo`?d(n===`webhook`?`cron.form.webhookUrl`:`cron.form.to`):{name:d(`cron.form.fieldName`),scheduleAt:d(`cron.form.runAt`),everyAmount:d(`cron.form.every`),cronExpr:d(`cron.form.expression`),staggerAmount:d(`cron.form.staggerWindow`),payloadText:d(`cron.form.assistantTaskPrompt`),payloadModel:d(`cron.form.model`),payloadThinking:d(`cron.form.thinking`),timeoutSeconds:d(`cron.form.timeoutSeconds`),deliveryTo:d(`cron.form.to`),failureAlertAfter:`Failure alert after`,failureAlertCooldownSeconds:`Failure alert cooldown`}[e]}function C(e,t,n){let r=[`name`,`scheduleAt`,`everyAmount`,`cronExpr`,`staggerAmount`,`payloadText`,`payloadModel`,`payloadThinking`,`timeoutSeconds`,`deliveryTo`,`failureAlertAfter`,`failureAlertCooldownSeconds`],i=[];for(let a of r){let r=e[a];r&&i.push({key:a,label:S(a,t,n),message:r,inputId:x(a)})}return i}function w(e){let t=document.getElementById(e);t instanceof HTMLElement&&(typeof t.scrollIntoView==`function`&&t.scrollIntoView({block:`center`,behavior:`smooth`}),t.focus())}function T(e,t=!1){return o`<span>
33
+ ${e}
34
+ ${t?o`
35
+ <span class="cron-required-marker" aria-hidden="true">*</span>
36
+ <span class="cron-required-sr">${d(`cron.form.requiredSr`)}</span>
37
+ `:u}
38
+ </span>`}function E(e){let t=!!e.editingJobId,r=e.form.payloadKind===`agentTurn`,a=e.form.scheduleKind===`cron`,s=g(e),c=e.runsJobId==null?void 0:e.jobs.find(t=>t.id===e.runsJobId),l=e.runsScope===`all`?d(`cron.jobList.allJobs`):c?.name??e.runsJobId??d(`cron.jobList.selectJob`),x=e.runs.toSorted((t,n)=>e.runsSortDir===`asc`?t.ts-n.ts:n.ts-t.ts),S=f(),E=p(),A=S.filter(t=>e.runsStatuses.includes(t.value)).map(e=>e.label),j=E.filter(t=>e.runsDeliveryStatuses.includes(t.value)).map(e=>e.label),M=h(A,d(`cron.runs.allStatuses`)),N=h(j,d(`cron.runs.allDelivery`)),P=e.form.sessionTarget!==`main`&&e.form.payloadKind===`agentTurn`,F=e.form.deliveryMode===`announce`&&!P?`none`:e.form.deliveryMode,I=e.cronFormCollapsed===!1||t,R=!I,z=d(t?`cron.form.editJob`:`cron.form.newJob`),B=C(e.fieldErrors,e.form,F),V=!e.busy&&B.length>0,H=e.onQuickCreate?e.onQuickCreate:e.onToggleFormCollapsed?()=>e.onToggleFormCollapsed?.(!1):null,U=e.jobsQuery.trim().length>0||e.jobsEnabledFilter!==`all`||e.jobsScheduleKindFilter!==`all`||e.jobsLastStatusFilter!==`all`||e.jobsSortBy!==`nextRunAtMs`||e.jobsSortDir!==`asc`,W=e.runsScope!==`all`||e.runsQuery.trim().length>0||e.runsStatuses.length>0||e.runsDeliveryStatuses.length>0||e.runsSortDir!==`desc`,G=V&&!e.canSubmit?B.length===1?d(`cron.form.fixFields`,{count:String(B.length)}):d(`cron.form.fixFieldsPlural`,{count:String(B.length)}):``;return o`
39
+ <section class="card cron-summary-strip">
40
+ <div class="cron-summary-strip__left">
41
+ <div class="cron-summary-item">
42
+ <div class="cron-summary-label">${d(`cron.summary.enabled`)}</div>
43
+ <div class="cron-summary-value">
44
+ <span class=${`chip ${e.status?.enabled?`chip-ok`:`chip-danger`}`}>
45
+ ${e.status?e.status.enabled?d(`cron.summary.yes`):d(`cron.summary.no`):d(`common.na`)}
46
+ </span>
47
+ </div>
48
+ </div>
49
+ <div class="cron-summary-item">
50
+ <div class="cron-summary-label">${d(`cron.summary.jobs`)}</div>
51
+ <div class="cron-summary-value">${e.status?.jobs??d(`common.na`)}</div>
52
+ </div>
53
+ <div class="cron-summary-item cron-summary-item--wide">
54
+ <div class="cron-summary-label">${d(`cron.summary.nextWake`)}</div>
55
+ <div class="cron-summary-value">${i(e.status?.nextWakeAtMs??null)}</div>
56
+ </div>
57
+ </div>
58
+ <div class="cron-summary-strip__actions">
59
+ ${H?o`
60
+ <button class="btn btn--primary" @click=${H}>
61
+ ${d(`cron.form.newJob`)}
62
+ </button>
63
+ `:u}
64
+ <button
65
+ class=${e.loading?`btn cron-refresh-btn--loading`:`btn`}
66
+ ?disabled=${e.loading}
67
+ @click=${e.onRefresh}
68
+ >
69
+ ${e.loading?d(`cron.summary.refreshing`):d(`cron.summary.refresh`)}
70
+ </button>
71
+ ${e.error?o`<span class="muted">${e.error}</span>`:u}
72
+ </div>
73
+ </section>
74
+
75
+ <section class=${`cron-workspace ${R?`cron-workspace--form-collapsed`:``}`}>
76
+ <div class="cron-workspace-main">
77
+ <section class="card">
78
+ <div
79
+ class="row"
80
+ style="justify-content: space-between; align-items: flex-start; gap: 12px;"
81
+ >
82
+ <div>
83
+ <div class="card-title">${d(`cron.jobs.title`)}</div>
84
+ <div class="card-sub">${d(`cron.jobs.subtitle`)}</div>
85
+ </div>
86
+ <div class="muted">
87
+ ${d(`cron.jobs.shownOf`,{shown:String(e.jobs.length),total:String(e.jobsTotal)})}
88
+ </div>
89
+ </div>
90
+ <details class="cron-filter-panel" ?open=${U}>
91
+ <summary class="cron-filter-panel__summary">
92
+ <span>${d(`sessionsView.filters`)}</span>
93
+ ${U?o`<span class="chip">${d(`common.active`)}</span>`:u}
94
+ </summary>
95
+ <div class="filters cron-filter-panel__body">
96
+ <label class="field cron-filter-search">
97
+ <span>${d(`cron.jobs.searchJobs`)}</span>
98
+ <input
99
+ .value=${e.jobsQuery}
100
+ placeholder=${d(`cron.jobs.searchPlaceholder`)}
101
+ @input=${t=>e.onJobsFiltersChange({cronJobsQuery:t.target.value})}
102
+ />
103
+ </label>
104
+ <label class="field">
105
+ <span>${d(`cron.jobs.enabled`)}</span>
106
+ <select
107
+ .value=${e.jobsEnabledFilter}
108
+ @change=${t=>e.onJobsFiltersChange({cronJobsEnabledFilter:t.target.value})}
109
+ >
110
+ <option value="all">${d(`cron.jobs.all`)}</option>
111
+ <option value="enabled">${d(`common.enabled`)}</option>
112
+ <option value="disabled">${d(`common.disabled`)}</option>
113
+ </select>
114
+ </label>
115
+ <label class="field">
116
+ <span>${d(`cron.jobs.schedule`)}</span>
117
+ <select
118
+ data-test-id="cron-jobs-schedule-filter"
119
+ .value=${e.jobsScheduleKindFilter}
120
+ @change=${t=>e.onJobsFiltersChange({cronJobsScheduleKindFilter:t.target.value})}
121
+ >
122
+ <option value="all">${d(`cron.jobs.all`)}</option>
123
+ <option value="at">${d(`cron.form.at`)}</option>
124
+ <option value="every">${d(`cron.form.every`)}</option>
125
+ <option value="cron">${d(`cron.form.cronOption`)}</option>
126
+ </select>
127
+ </label>
128
+ <label class="field">
129
+ <span>${d(`cron.jobs.lastRun`)}</span>
130
+ <select
131
+ data-test-id="cron-jobs-last-status-filter"
132
+ .value=${e.jobsLastStatusFilter}
133
+ @change=${t=>e.onJobsFiltersChange({cronJobsLastStatusFilter:t.target.value})}
134
+ >
135
+ <option value="all">${d(`cron.jobs.all`)}</option>
136
+ <option value="ok">${d(`cron.runs.runStatusOk`)}</option>
137
+ <option value="error">${d(`cron.runs.runStatusError`)}</option>
138
+ <option value="skipped">${d(`cron.runs.runStatusSkipped`)}</option>
139
+ </select>
140
+ </label>
141
+ <label class="field">
142
+ <span>${d(`cron.jobs.sort`)}</span>
143
+ <select
144
+ .value=${e.jobsSortBy}
145
+ @change=${t=>e.onJobsFiltersChange({cronJobsSortBy:t.target.value})}
146
+ >
147
+ <option value="nextRunAtMs">${d(`cron.jobs.nextRun`)}</option>
148
+ <option value="updatedAtMs">${d(`cron.jobs.recentlyUpdated`)}</option>
149
+ <option value="name">${d(`cron.jobs.name`)}</option>
150
+ </select>
151
+ </label>
152
+ <label class="field">
153
+ <span>${d(`cron.jobs.direction`)}</span>
154
+ <select
155
+ .value=${e.jobsSortDir}
156
+ @change=${t=>e.onJobsFiltersChange({cronJobsSortDir:t.target.value})}
157
+ >
158
+ <option value="asc">${d(`cron.jobs.ascending`)}</option>
159
+ <option value="desc">${d(`cron.jobs.descending`)}</option>
160
+ </select>
161
+ </label>
162
+ <label class="field">
163
+ <span>${d(`cron.jobs.reset`)}</span>
164
+ <button
165
+ class="btn"
166
+ data-test-id="cron-jobs-filters-reset"
167
+ ?disabled=${!U}
168
+ @click=${e.onJobsFiltersReset}
169
+ >
170
+ ${d(`cron.jobs.reset`)}
171
+ </button>
172
+ </label>
173
+ </div>
174
+ </details>
175
+ ${e.jobs.length===0?o`
176
+ <div class="cron-empty-state">
177
+ <div class="cron-empty-state__title">
178
+ ${d(U?`cron.jobs.noMatching`:`cron.jobs.emptyTitle`)}
179
+ </div>
180
+ <div class="cron-empty-state__copy">
181
+ ${d(U?`cron.jobs.emptyFilteredHint`:`cron.jobs.emptyHint`)}
182
+ </div>
183
+ ${H&&!U?o`
184
+ <button class="btn btn--primary" @click=${H}>
185
+ ${d(`cron.form.newJob`)}
186
+ </button>
187
+ `:u}
188
+ </div>
189
+ `:o`
190
+ <div class="list" style="margin-top: 12px;">
191
+ ${e.jobs.map(t=>k(t,e))}
192
+ </div>
193
+ `}
194
+ ${e.jobsHasMore?o`
195
+ <div class="row" style="margin-top: 12px">
196
+ <button
197
+ class="btn"
198
+ ?disabled=${e.loading||e.jobsLoadingMore}
199
+ @click=${e.onLoadMoreJobs}
200
+ >
201
+ ${e.jobsLoadingMore?d(`cron.jobs.loading`):d(`cron.jobs.loadMore`)}
202
+ </button>
203
+ </div>
204
+ `:u}
205
+ </section>
206
+
207
+ <section class="card">
208
+ <div
209
+ class="row"
210
+ style="justify-content: space-between; align-items: flex-start; gap: 12px;"
211
+ >
212
+ <div>
213
+ <div class="card-title">${d(`cron.runs.title`)}</div>
214
+ <div class="card-sub">
215
+ ${e.runsScope===`all`?d(`cron.runs.subtitleAll`):d(`cron.runs.subtitleJob`,{title:l})}
216
+ </div>
217
+ </div>
218
+ <div class="muted">
219
+ ${d(`cron.jobs.shownOf`,{shown:String(x.length),total:String(e.runsTotal)})}
220
+ </div>
221
+ </div>
222
+ <details class="cron-filter-panel" ?open=${W}>
223
+ <summary class="cron-filter-panel__summary">
224
+ <span>${d(`sessionsView.filters`)}</span>
225
+ ${W?o`<span class="chip">${d(`common.active`)}</span>`:u}
226
+ </summary>
227
+ <div class="cron-run-filters">
228
+ <div class="cron-run-filters__row cron-run-filters__row--primary">
229
+ <label class="field">
230
+ <span>${d(`cron.runs.scope`)}</span>
231
+ <select
232
+ .value=${e.runsScope}
233
+ @change=${t=>e.onRunsFiltersChange({cronRunsScope:t.target.value})}
234
+ >
235
+ <option value="all">${d(`cron.runs.allJobs`)}</option>
236
+ <option value="job" ?disabled=${e.runsJobId==null}>
237
+ ${d(`cron.runs.selectedJob`)}
238
+ </option>
239
+ </select>
240
+ </label>
241
+ <label class="field cron-run-filter-search">
242
+ <span>${d(`cron.runs.searchRuns`)}</span>
243
+ <input
244
+ .value=${e.runsQuery}
245
+ placeholder=${d(`cron.runs.searchPlaceholder`)}
246
+ @input=${t=>e.onRunsFiltersChange({cronRunsQuery:t.target.value})}
247
+ />
248
+ </label>
249
+ <label class="field">
250
+ <span>${d(`cron.jobs.sort`)}</span>
251
+ <select
252
+ .value=${e.runsSortDir}
253
+ @change=${t=>e.onRunsFiltersChange({cronRunsSortDir:t.target.value})}
254
+ >
255
+ <option value="desc">${d(`cron.runs.newestFirst`)}</option>
256
+ <option value="asc">${d(`cron.runs.oldestFirst`)}</option>
257
+ </select>
258
+ </label>
259
+ </div>
260
+ <div class="cron-run-filters__row cron-run-filters__row--secondary">
261
+ ${v({id:`status`,title:d(`cron.runs.status`),summary:M,options:S,selected:e.runsStatuses,onToggle:(t,n)=>{let r=m(e.runsStatuses,t,n);e.onRunsFiltersChange({cronRunsStatuses:r})},onClear:()=>{e.onRunsFiltersChange({cronRunsStatuses:[]})}})}
262
+ ${v({id:`delivery`,title:d(`cron.runs.delivery`),summary:N,options:E,selected:e.runsDeliveryStatuses,onToggle:(t,n)=>{let r=m(e.runsDeliveryStatuses,t,n);e.onRunsFiltersChange({cronRunsDeliveryStatuses:r})},onClear:()=>{e.onRunsFiltersChange({cronRunsDeliveryStatuses:[]})}})}
263
+ </div>
264
+ </div>
265
+ </details>
266
+ ${e.runsScope===`job`&&e.runsJobId==null?o`
267
+ <div class="muted" style="margin-top: 12px">${d(`cron.runs.selectJobHint`)}</div>
268
+ `:x.length===0?o`
269
+ <div class="muted" style="margin-top: 12px">${d(`cron.runs.noMatching`)}</div>
270
+ `:o`
271
+ <div class="list" style="margin-top: 12px;">
272
+ ${x.map(t=>L(t,e.basePath,e.onNavigateToChat))}
273
+ </div>
274
+ `}
275
+ ${(e.runsScope===`all`||e.runsJobId!=null)&&e.runsHasMore?o`
276
+ <div class="row" style="margin-top: 12px">
277
+ <button
278
+ class="btn"
279
+ ?disabled=${e.runsLoadingMore}
280
+ @click=${e.onLoadMoreRuns}
281
+ >
282
+ ${e.runsLoadingMore?d(`cron.jobs.loading`):d(`cron.runs.loadMore`)}
283
+ </button>
284
+ </div>
285
+ `:u}
286
+ </section>
287
+ </div>
288
+ </section>
289
+
290
+ ${I?o`
291
+ <div class="cron-form-modal-backdrop" @click=${e.onCancelEdit}>
292
+ <section
293
+ class="card cron-workspace-form cron-form-modal"
294
+ role="dialog"
295
+ aria-modal="true"
296
+ aria-labelledby="cron-form-title"
297
+ @click=${e=>e.stopPropagation()}
298
+ >
299
+ <div class="cron-form-header">
300
+ <div class="cron-form-header__copy">
301
+ <div id="cron-form-title" class="card-title">${z}</div>
302
+ ${R?u:o`
303
+ <div class="card-sub">
304
+ ${d(t?`cron.form.updateSubtitle`:`cron.form.createSubtitle`)}
305
+ </div>
306
+ `}
307
+ </div>
308
+ <button
309
+ type="button"
310
+ class="btn cron-form-collapse-toggle"
311
+ data-test-id="cron-form-close"
312
+ title=${d(`common.dismiss`)}
313
+ aria-label=${d(`common.dismiss`)}
314
+ @click=${e.onCancelEdit}
315
+ >
316
+ <span aria-hidden="true">×</span>
317
+ </button>
318
+ </div>
319
+ <div class="cron-form" ?hidden=${R}>
320
+ <div class="cron-required-legend">
321
+ <span class="cron-required-marker" aria-hidden="true">*</span> ${d(`cron.form.required`)}
322
+ </div>
323
+ <section class="cron-form-section">
324
+ <div class="cron-form-section__title">${d(`cron.form.basics`)}</div>
325
+ <div class="cron-form-section__sub">${d(`cron.form.basicsSub`)}</div>
326
+ <div class="form-grid cron-form-grid">
327
+ <label class="field">
328
+ ${T(d(`cron.form.fieldName`),!0)}
329
+ <input
330
+ id="cron-name"
331
+ .value=${e.form.name}
332
+ placeholder=${d(`cron.form.namePlaceholder`)}
333
+ aria-invalid=${e.fieldErrors.name?`true`:`false`}
334
+ aria-describedby=${n(e.fieldErrors.name?b(`name`):void 0)}
335
+ @input=${t=>e.onFormChange({name:t.target.value})}
336
+ />
337
+ ${O(e.fieldErrors.name,b(`name`))}
338
+ </label>
339
+ <label class="field">
340
+ <span>${d(`cron.form.description`)}</span>
341
+ <input
342
+ .value=${e.form.description}
343
+ placeholder=${d(`cron.form.descriptionPlaceholder`)}
344
+ @input=${t=>e.onFormChange({description:t.target.value})}
345
+ />
346
+ </label>
347
+ <label class="field">
348
+ ${T(d(`cron.form.agentId`))}
349
+ <input
350
+ id="cron-agent-id"
351
+ .value=${e.form.agentId}
352
+ list="cron-agent-suggestions"
353
+ ?disabled=${e.form.clearAgent}
354
+ @input=${t=>e.onFormChange({agentId:t.target.value})}
355
+ placeholder=${d(`cron.form.agentPlaceholder`)}
356
+ />
357
+ <div class="cron-help">${d(`cron.form.agentHelp`)}</div>
358
+ </label>
359
+ <label class="field checkbox cron-checkbox cron-checkbox-inline">
360
+ <input
361
+ type="checkbox"
362
+ .checked=${e.form.enabled}
363
+ @change=${t=>e.onFormChange({enabled:t.target.checked})}
364
+ />
365
+ <span class="field-checkbox__label">${d(`cron.summary.enabled`)}</span>
366
+ </label>
367
+ </div>
368
+ </section>
369
+
370
+ <section class="cron-form-section">
371
+ <div class="cron-form-section__title">${d(`cron.form.schedule`)}</div>
372
+ <div class="cron-form-section__sub">${d(`cron.form.scheduleSub`)}</div>
373
+ <div class="form-grid cron-form-grid">
374
+ <label class="field cron-span-2">
375
+ ${T(d(`cron.form.schedule`))}
376
+ <select
377
+ id="cron-schedule-kind"
378
+ .value=${e.form.scheduleKind}
379
+ @change=${t=>e.onFormChange({scheduleKind:t.target.value})}
380
+ >
381
+ <option value="every">${d(`cron.form.every`)}</option>
382
+ <option value="at">${d(`cron.form.at`)}</option>
383
+ <option value="cron">${d(`cron.form.cronOption`)}</option>
384
+ </select>
385
+ </label>
386
+ </div>
387
+ ${D(e)}
388
+ </section>
389
+
390
+ <section class="cron-form-section">
391
+ <div class="cron-form-section__title">${d(`cron.form.execution`)}</div>
392
+ <div class="cron-form-section__sub">${d(`cron.form.executionSub`)}</div>
393
+ <div class="form-grid cron-form-grid">
394
+ <label class="field">
395
+ ${T(d(`cron.form.session`))}
396
+ <select
397
+ id="cron-session-target"
398
+ .value=${e.form.sessionTarget}
399
+ @change=${t=>e.onFormChange({sessionTarget:t.target.value})}
400
+ >
401
+ <option value="main">${d(`cron.form.main`)}</option>
402
+ <option value="isolated">${d(`cron.form.isolated`)}</option>
403
+ </select>
404
+ <div class="cron-help">${d(`cron.form.sessionHelp`)}</div>
405
+ </label>
406
+ <label class="field">
407
+ ${T(d(`cron.form.wakeMode`))}
408
+ <select
409
+ id="cron-wake-mode"
410
+ .value=${e.form.wakeMode}
411
+ @change=${t=>e.onFormChange({wakeMode:t.target.value})}
412
+ >
413
+ <option value="now">${d(`cron.form.now`)}</option>
414
+ <option value="next-heartbeat">${d(`cron.form.nextHeartbeat`)}</option>
415
+ </select>
416
+ <div class="cron-help">${d(`cron.form.wakeModeHelp`)}</div>
417
+ </label>
418
+ <label class="field ${r?``:`cron-span-2`}">
419
+ ${T(d(`cron.form.payloadKind`))}
420
+ <select
421
+ id="cron-payload-kind"
422
+ .value=${e.form.payloadKind}
423
+ @change=${t=>e.onFormChange({payloadKind:t.target.value})}
424
+ >
425
+ <option value="systemEvent">${d(`cron.form.systemEvent`)}</option>
426
+ <option value="agentTurn">${d(`cron.form.agentTurn`)}</option>
427
+ </select>
428
+ <div class="cron-help">
429
+ ${e.form.payloadKind===`systemEvent`?d(`cron.form.systemEventHelp`):d(`cron.form.agentTurnHelp`)}
430
+ </div>
431
+ </label>
432
+ ${r?o`
433
+ <label class="field">
434
+ ${T(d(`cron.form.timeoutSeconds`))}
435
+ <input
436
+ id="cron-timeout-seconds"
437
+ .value=${e.form.timeoutSeconds}
438
+ placeholder=${d(`cron.form.timeoutPlaceholder`)}
439
+ aria-invalid=${e.fieldErrors.timeoutSeconds?`true`:`false`}
440
+ aria-describedby=${n(e.fieldErrors.timeoutSeconds?b(`timeoutSeconds`):void 0)}
441
+ @input=${t=>e.onFormChange({timeoutSeconds:t.target.value})}
442
+ />
443
+ <div class="cron-help">${d(`cron.form.timeoutHelp`)}</div>
444
+ ${O(e.fieldErrors.timeoutSeconds,b(`timeoutSeconds`))}
445
+ </label>
446
+ `:u}
447
+ </div>
448
+ <label class="field cron-span-2">
449
+ ${T(e.form.payloadKind===`systemEvent`?d(`cron.form.mainTimelineMessage`):d(`cron.form.assistantTaskPrompt`),!0)}
450
+ <textarea
451
+ id="cron-payload-text"
452
+ .value=${e.form.payloadText}
453
+ aria-invalid=${e.fieldErrors.payloadText?`true`:`false`}
454
+ aria-describedby=${n(e.fieldErrors.payloadText?b(`payloadText`):void 0)}
455
+ @input=${t=>e.onFormChange({payloadText:t.target.value})}
456
+ rows="4"
457
+ ></textarea>
458
+ ${O(e.fieldErrors.payloadText,b(`payloadText`))}
459
+ </label>
460
+ </section>
461
+
462
+ <section class="cron-form-section">
463
+ <div class="cron-form-section__title">${d(`cron.form.deliverySection`)}</div>
464
+ <div class="cron-form-section__sub">${d(`cron.form.deliverySub`)}</div>
465
+ <div class="form-grid cron-form-grid">
466
+ <label class="field ${F===`none`?`cron-span-2`:``}">
467
+ ${T(d(`cron.form.resultDelivery`))}
468
+ <select
469
+ id="cron-delivery-mode"
470
+ .value=${F}
471
+ @change=${t=>e.onFormChange({deliveryMode:t.target.value})}
472
+ >
473
+ ${P?o`
474
+ <option value="announce">${d(`cron.form.announceDefault`)}</option>
475
+ `:u}
476
+ <option value="webhook">${d(`cron.form.webhookPost`)}</option>
477
+ <option value="none">${d(`cron.form.noneInternal`)}</option>
478
+ </select>
479
+ <div class="cron-help">${d(`cron.form.deliveryHelp`)}</div>
480
+ </label>
481
+ ${F===`none`?u:o`
482
+ <label
483
+ class="field ${F===`webhook`?`cron-span-2`:``}"
484
+ >
485
+ ${T(d(F===`webhook`?`cron.form.webhookUrl`:`cron.form.channel`),F===`webhook`)}
486
+ ${F===`webhook`?o`
487
+ <input
488
+ id="cron-delivery-to"
489
+ .value=${e.form.deliveryTo}
490
+ list="cron-delivery-to-suggestions"
491
+ aria-invalid=${e.fieldErrors.deliveryTo?`true`:`false`}
492
+ aria-describedby=${n(e.fieldErrors.deliveryTo?b(`deliveryTo`):void 0)}
493
+ @input=${t=>e.onFormChange({deliveryTo:t.target.value})}
494
+ placeholder=${d(`cron.form.webhookPlaceholder`)}
495
+ />
496
+ `:o`
497
+ <select
498
+ id="cron-delivery-channel"
499
+ .value=${e.form.deliveryChannel||`last`}
500
+ @change=${t=>e.onFormChange({deliveryChannel:t.target.value})}
501
+ >
502
+ ${s.map(t=>o`<option value=${t}>
503
+ ${_(e,t)}
504
+ </option>`)}
505
+ </select>
506
+ `}
507
+ ${F===`announce`?o` <div class="cron-help">${d(`cron.form.channelHelp`)}</div> `:o` <div class="cron-help">${d(`cron.form.webhookHelp`)}</div> `}
508
+ </label>
509
+ ${F===`announce`?o`
510
+ <label class="field cron-span-2">
511
+ ${T(d(`cron.form.to`))}
512
+ <input
513
+ id="cron-delivery-to"
514
+ .value=${e.form.deliveryTo}
515
+ list="cron-delivery-to-suggestions"
516
+ @input=${t=>e.onFormChange({deliveryTo:t.target.value})}
517
+ placeholder=${d(`cron.form.toPlaceholder`)}
518
+ />
519
+ <div class="cron-help">${d(`cron.form.toHelp`)}</div>
520
+ </label>
521
+ `:u}
522
+ ${F===`webhook`?O(e.fieldErrors.deliveryTo,b(`deliveryTo`)):u}
523
+ `}
524
+ </div>
525
+ </section>
526
+
527
+ <details class="cron-advanced">
528
+ <summary class="cron-advanced__summary">${d(`cron.form.advanced`)}</summary>
529
+ <div class="cron-help">${d(`cron.form.advancedHelp`)}</div>
530
+ <div class="form-grid cron-form-grid">
531
+ <label class="field checkbox cron-checkbox">
532
+ <input
533
+ type="checkbox"
534
+ .checked=${e.form.deleteAfterRun}
535
+ @change=${t=>e.onFormChange({deleteAfterRun:t.target.checked})}
536
+ />
537
+ <span class="field-checkbox__label">${d(`cron.form.deleteAfterRun`)}</span>
538
+ <div class="cron-help">${d(`cron.form.deleteAfterRunHelp`)}</div>
539
+ </label>
540
+ <label class="field checkbox cron-checkbox">
541
+ <input
542
+ type="checkbox"
543
+ .checked=${e.form.clearAgent}
544
+ @change=${t=>e.onFormChange({clearAgent:t.target.checked})}
545
+ />
546
+ <span class="field-checkbox__label"
547
+ >${d(`cron.form.clearAgentOverride`)}</span
548
+ >
549
+ <div class="cron-help">${d(`cron.form.clearAgentHelp`)}</div>
550
+ </label>
551
+ <label class="field cron-span-2">
552
+ ${T(`Session key`)}
553
+ <input
554
+ id="cron-session-key"
555
+ .value=${e.form.sessionKey}
556
+ @input=${t=>e.onFormChange({sessionKey:t.target.value})}
557
+ placeholder="agent:main:main"
558
+ />
559
+ <div class="cron-help">
560
+ Optional routing key for job delivery and wake routing.
561
+ </div>
562
+ </label>
563
+ ${a?o`
564
+ <label class="field checkbox cron-checkbox cron-span-2">
565
+ <input
566
+ type="checkbox"
567
+ .checked=${e.form.scheduleExact}
568
+ @change=${t=>e.onFormChange({scheduleExact:t.target.checked})}
569
+ />
570
+ <span class="field-checkbox__label">${d(`cron.form.exactTiming`)}</span>
571
+ <div class="cron-help">${d(`cron.form.exactTimingHelp`)}</div>
572
+ </label>
573
+ <div class="cron-stagger-group cron-span-2">
574
+ <label class="field">
575
+ ${T(d(`cron.form.staggerWindow`))}
576
+ <input
577
+ id="cron-stagger-amount"
578
+ .value=${e.form.staggerAmount}
579
+ ?disabled=${e.form.scheduleExact}
580
+ aria-invalid=${e.fieldErrors.staggerAmount?`true`:`false`}
581
+ aria-describedby=${n(e.fieldErrors.staggerAmount?b(`staggerAmount`):void 0)}
582
+ @input=${t=>e.onFormChange({staggerAmount:t.target.value})}
583
+ placeholder=${d(`cron.form.staggerPlaceholder`)}
584
+ />
585
+ ${O(e.fieldErrors.staggerAmount,b(`staggerAmount`))}
586
+ </label>
587
+ <label class="field">
588
+ <span>${d(`cron.form.staggerUnit`)}</span>
589
+ <select
590
+ .value=${e.form.staggerUnit}
591
+ ?disabled=${e.form.scheduleExact}
592
+ @change=${t=>e.onFormChange({staggerUnit:t.target.value})}
593
+ >
594
+ <option value="seconds">${d(`cron.form.seconds`)}</option>
595
+ <option value="minutes">${d(`cron.form.minutes`)}</option>
596
+ </select>
597
+ </label>
598
+ </div>
599
+ `:u}
600
+ ${r?o`
601
+ <label class="field cron-span-2">
602
+ ${T(`Account ID`)}
603
+ <input
604
+ id="cron-delivery-account-id"
605
+ .value=${e.form.deliveryAccountId}
606
+ list="cron-delivery-account-suggestions"
607
+ ?disabled=${F!==`announce`}
608
+ @input=${t=>e.onFormChange({deliveryAccountId:t.target.value})}
609
+ placeholder="default"
610
+ />
611
+ <div class="cron-help">
612
+ Optional channel account ID for multi-account setups.
613
+ </div>
614
+ </label>
615
+ <label class="field checkbox cron-checkbox cron-span-2">
616
+ <input
617
+ type="checkbox"
618
+ .checked=${e.form.payloadLightContext}
619
+ @change=${t=>e.onFormChange({payloadLightContext:t.target.checked})}
620
+ />
621
+ <span class="field-checkbox__label">Light context</span>
622
+ <div class="cron-help">
623
+ Use lightweight bootstrap context for this agent job.
624
+ </div>
625
+ </label>
626
+ <label class="field">
627
+ ${T(d(`cron.form.model`))}
628
+ <input
629
+ id="cron-payload-model"
630
+ .value=${e.form.payloadModel}
631
+ list="cron-model-suggestions"
632
+ @input=${t=>e.onFormChange({payloadModel:t.target.value})}
633
+ placeholder=${d(`cron.form.modelPlaceholder`)}
634
+ />
635
+ <div class="cron-help">${d(`cron.form.modelHelp`)}</div>
636
+ </label>
637
+ <label class="field">
638
+ ${T(d(`cron.form.thinking`))}
639
+ <input
640
+ id="cron-payload-thinking"
641
+ .value=${e.form.payloadThinking}
642
+ list="cron-thinking-suggestions"
643
+ @input=${t=>e.onFormChange({payloadThinking:t.target.value})}
644
+ placeholder=${d(`cron.form.thinkingPlaceholder`)}
645
+ />
646
+ <div class="cron-help">${d(`cron.form.thinkingHelp`)}</div>
647
+ </label>
648
+ `:u}
649
+ ${r?o`
650
+ <label class="field cron-span-2">
651
+ ${T(`Failure alerts`)}
652
+ <select
653
+ .value=${e.form.failureAlertMode}
654
+ @change=${t=>e.onFormChange({failureAlertMode:t.target.value})}
655
+ >
656
+ <option value="inherit">Inherit global setting</option>
657
+ <option value="disabled">Disable for this job</option>
658
+ <option value="custom">Custom per-job settings</option>
659
+ </select>
660
+ <div class="cron-help">
661
+ Control when this job sends repeated-failure alerts.
662
+ </div>
663
+ </label>
664
+ ${e.form.failureAlertMode===`custom`?o`
665
+ <label class="field">
666
+ ${T(`Alert after`)}
667
+ <input
668
+ id="cron-failure-alert-after"
669
+ .value=${e.form.failureAlertAfter}
670
+ aria-invalid=${e.fieldErrors.failureAlertAfter?`true`:`false`}
671
+ aria-describedby=${n(e.fieldErrors.failureAlertAfter?b(`failureAlertAfter`):void 0)}
672
+ @input=${t=>e.onFormChange({failureAlertAfter:t.target.value})}
673
+ placeholder="2"
674
+ />
675
+ <div class="cron-help">Consecutive errors before alerting.</div>
676
+ ${O(e.fieldErrors.failureAlertAfter,b(`failureAlertAfter`))}
677
+ </label>
678
+ <label class="field">
679
+ ${T(`Cooldown (seconds)`)}
680
+ <input
681
+ id="cron-failure-alert-cooldown-seconds"
682
+ .value=${e.form.failureAlertCooldownSeconds}
683
+ aria-invalid=${e.fieldErrors.failureAlertCooldownSeconds?`true`:`false`}
684
+ aria-describedby=${n(e.fieldErrors.failureAlertCooldownSeconds?b(`failureAlertCooldownSeconds`):void 0)}
685
+ @input=${t=>e.onFormChange({failureAlertCooldownSeconds:t.target.value})}
686
+ placeholder="3600"
687
+ />
688
+ <div class="cron-help">Minimum seconds between alerts.</div>
689
+ ${O(e.fieldErrors.failureAlertCooldownSeconds,b(`failureAlertCooldownSeconds`))}
690
+ </label>
691
+ <label class="field">
692
+ ${T(`Alert channel`)}
693
+ <select
694
+ .value=${e.form.failureAlertChannel||`last`}
695
+ @change=${t=>e.onFormChange({failureAlertChannel:t.target.value})}
696
+ >
697
+ ${s.map(t=>o`<option value=${t}>
698
+ ${_(e,t)}
699
+ </option>`)}
700
+ </select>
701
+ </label>
702
+ <label class="field">
703
+ ${T(`Alert to`)}
704
+ <input
705
+ .value=${e.form.failureAlertTo}
706
+ list="cron-delivery-to-suggestions"
707
+ @input=${t=>e.onFormChange({failureAlertTo:t.target.value})}
708
+ placeholder="+1555... or chat id"
709
+ />
710
+ <div class="cron-help">
711
+ Optional recipient override for failure alerts.
712
+ </div>
713
+ </label>
714
+ <label class="field">
715
+ ${T(`Alert mode`)}
716
+ <select
717
+ .value=${e.form.failureAlertDeliveryMode||`announce`}
718
+ @change=${t=>e.onFormChange({failureAlertDeliveryMode:t.target.value})}
719
+ >
720
+ <option value="announce">Announce (via channel)</option>
721
+ <option value="webhook">Webhook (HTTP POST)</option>
722
+ </select>
723
+ </label>
724
+ <label class="field">
725
+ ${T(`Alert account ID`)}
726
+ <input
727
+ .value=${e.form.failureAlertAccountId}
728
+ @input=${t=>e.onFormChange({failureAlertAccountId:t.target.value})}
729
+ placeholder="Account ID for multi-account setups"
730
+ />
731
+ </label>
732
+ `:u}
733
+ `:u}
734
+ ${F===`none`?u:o`
735
+ <label class="field checkbox cron-checkbox cron-span-2">
736
+ <input
737
+ type="checkbox"
738
+ .checked=${e.form.deliveryBestEffort}
739
+ @change=${t=>e.onFormChange({deliveryBestEffort:t.target.checked})}
740
+ />
741
+ <span class="field-checkbox__label"
742
+ >${d(`cron.form.bestEffortDelivery`)}</span
743
+ >
744
+ <div class="cron-help">${d(`cron.form.bestEffortHelp`)}</div>
745
+ </label>
746
+ `}
747
+ </div>
748
+ </details>
749
+ </div>
750
+ ${V?o`
751
+ <div
752
+ class="cron-form-status"
753
+ role="status"
754
+ aria-live="polite"
755
+ ?hidden=${R}
756
+ >
757
+ <div class="cron-form-status__title">${d(`cron.form.cantAddYet`)}</div>
758
+ <div class="cron-help">${d(`cron.form.fillRequired`)}</div>
759
+ <ul class="cron-form-status__list">
760
+ ${B.map(e=>o`
761
+ <li>
762
+ <button
763
+ type="button"
764
+ class="cron-form-status__link"
765
+ @click=${()=>w(e.inputId)}
766
+ >
767
+ ${e.label}: ${d(e.message)}
768
+ </button>
769
+ </li>
770
+ `)}
771
+ </ul>
772
+ </div>
773
+ `:u}
774
+ <div class="row cron-form-actions" ?hidden=${R}>
775
+ <button
776
+ class="btn primary"
777
+ ?disabled=${e.busy||!e.canSubmit}
778
+ @click=${e.onAdd}
779
+ >
780
+ ${e.busy?d(`cron.form.saving`):d(t?`cron.form.saveChanges`:`cron.form.addJob`)}
781
+ </button>
782
+ ${G?o`
783
+ <div class="cron-submit-reason" aria-live="polite">
784
+ ${G}
785
+ </div>
786
+ `:u}
787
+ ${t?o`
788
+ <button class="btn" ?disabled=${e.busy} @click=${e.onCancelEdit}>
789
+ ${d(`cron.form.cancel`)}
790
+ </button>
791
+ `:u}
792
+ </div>
793
+ </section>
794
+ </div>
795
+ `:u}
796
+ ${y(`cron-agent-suggestions`,e.agentSuggestions)}
797
+ ${y(`cron-model-suggestions`,e.modelSuggestions)}
798
+ ${y(`cron-thinking-suggestions`,e.thinkingSuggestions)}
799
+ ${y(`cron-tz-suggestions`,e.timezoneSuggestions)}
800
+ ${y(`cron-delivery-to-suggestions`,e.deliveryToSuggestions)}
801
+ ${y(`cron-delivery-account-suggestions`,e.accountSuggestions)}
802
+ `}function D(e){let t=e.form;return t.scheduleKind===`at`?o`
803
+ <label class="field cron-span-2" style="margin-top: 12px;">
804
+ ${T(d(`cron.form.runAt`),!0)}
805
+ <input
806
+ id="cron-schedule-at"
807
+ type="datetime-local"
808
+ .value=${t.scheduleAt}
809
+ aria-invalid=${e.fieldErrors.scheduleAt?`true`:`false`}
810
+ aria-describedby=${n(e.fieldErrors.scheduleAt?b(`scheduleAt`):void 0)}
811
+ @input=${t=>e.onFormChange({scheduleAt:t.target.value})}
812
+ />
813
+ ${O(e.fieldErrors.scheduleAt,b(`scheduleAt`))}
814
+ </label>
815
+ `:t.scheduleKind===`every`?o`
816
+ <div class="form-grid cron-form-grid" style="margin-top: 12px;">
817
+ <label class="field">
818
+ ${T(d(`cron.form.every`),!0)}
819
+ <input
820
+ id="cron-every-amount"
821
+ .value=${t.everyAmount}
822
+ aria-invalid=${e.fieldErrors.everyAmount?`true`:`false`}
823
+ aria-describedby=${n(e.fieldErrors.everyAmount?b(`everyAmount`):void 0)}
824
+ @input=${t=>e.onFormChange({everyAmount:t.target.value})}
825
+ placeholder=${d(`cron.form.everyAmountPlaceholder`)}
826
+ />
827
+ ${O(e.fieldErrors.everyAmount,b(`everyAmount`))}
828
+ </label>
829
+ <label class="field">
830
+ <span>${d(`cron.form.unit`)}</span>
831
+ <select
832
+ .value=${t.everyUnit}
833
+ @change=${t=>e.onFormChange({everyUnit:t.target.value})}
834
+ >
835
+ <option value="minutes">${d(`cron.form.minutes`)}</option>
836
+ <option value="hours">${d(`cron.form.hours`)}</option>
837
+ <option value="days">${d(`cron.form.days`)}</option>
838
+ </select>
839
+ </label>
840
+ </div>
841
+ `:o`
842
+ <div class="form-grid cron-form-grid" style="margin-top: 12px;">
843
+ <label class="field">
844
+ ${T(d(`cron.form.expression`),!0)}
845
+ <input
846
+ id="cron-cron-expr"
847
+ .value=${t.cronExpr}
848
+ aria-invalid=${e.fieldErrors.cronExpr?`true`:`false`}
849
+ aria-describedby=${n(e.fieldErrors.cronExpr?b(`cronExpr`):void 0)}
850
+ @input=${t=>e.onFormChange({cronExpr:t.target.value})}
851
+ placeholder=${d(`cron.form.expressionPlaceholder`)}
852
+ />
853
+ ${O(e.fieldErrors.cronExpr,b(`cronExpr`))}
854
+ </label>
855
+ <label class="field">
856
+ <span>${d(`cron.form.timezoneOptional`)}</span>
857
+ <input
858
+ .value=${t.cronTz}
859
+ list="cron-tz-suggestions"
860
+ @input=${t=>e.onFormChange({cronTz:t.target.value})}
861
+ placeholder=${d(`cron.form.timezonePlaceholder`)}
862
+ />
863
+ <div class="cron-help">${d(`cron.form.timezoneHelp`)}</div>
864
+ </label>
865
+ <div class="cron-help cron-span-2">${d(`cron.form.jitterHelp`)}</div>
866
+ </div>
867
+ `}function O(e,t){return e?o`<div id=${n(t)} class="cron-help cron-error">${d(e)}</div>`:u}function k(e,t){let n=`list-item list-item-clickable cron-job${t.runsJobId===e.id?` list-item-selected`:``}`,r=n=>{t.onLoadRuns(e.id),n()};return o`
868
+ <div class=${n} @click=${()=>t.onLoadRuns(e.id)}>
869
+ <div class="cron-job-header">
870
+ <div class="list-main">
871
+ <div class="list-title">${e.name}</div>
872
+ <div class="list-sub">${l(e)}</div>
873
+ ${e.agentId?o`<div class="muted cron-job-agent">
874
+ ${d(`cron.jobDetail.agent`)}: ${e.agentId}
875
+ </div>`:u}
876
+ </div>
877
+ <div class="list-meta">${P(e)}</div>
878
+ </div>
879
+ ${A(e)}
880
+ <div class="cron-job-footer">
881
+ <div class="chip-row cron-job-chips">
882
+ <span class=${`chip ${e.enabled?`chip-ok`:`chip-danger`}`}>
883
+ ${e.enabled?d(`cron.jobList.enabled`):d(`cron.jobList.disabled`)}
884
+ </span>
885
+ <span class="chip">${e.sessionTarget}</span>
886
+ <span class="chip">${e.wakeMode}</span>
887
+ </div>
888
+ <div class="row cron-job-actions">
889
+ <button
890
+ class="btn"
891
+ ?disabled=${t.busy}
892
+ @click=${n=>{n.stopPropagation(),r(()=>t.onEdit(e))}}
893
+ >
894
+ ${d(`cron.jobList.edit`)}
895
+ </button>
896
+ <button
897
+ class="btn"
898
+ ?disabled=${t.busy}
899
+ @click=${n=>{n.stopPropagation(),r(()=>t.onClone(e))}}
900
+ >
901
+ ${d(`cron.jobList.clone`)}
902
+ </button>
903
+ <button
904
+ class="btn"
905
+ ?disabled=${t.busy}
906
+ @click=${n=>{n.stopPropagation(),r(()=>t.onToggle(e,!e.enabled))}}
907
+ >
908
+ ${e.enabled?d(`cron.jobList.disable`):d(`cron.jobList.enable`)}
909
+ </button>
910
+ <button
911
+ class="btn"
912
+ ?disabled=${t.busy}
913
+ @click=${n=>{n.stopPropagation(),r(()=>t.onRun(e,`force`))}}
914
+ >
915
+ ${d(`cron.jobList.run`)}
916
+ </button>
917
+ <button
918
+ class="btn"
919
+ ?disabled=${t.busy}
920
+ @click=${n=>{n.stopPropagation(),r(()=>t.onRun(e,`due`))}}
921
+ >
922
+ Run if due
923
+ </button>
924
+ <button
925
+ class="btn"
926
+ ?disabled=${t.busy}
927
+ @click=${n=>{n.stopPropagation(),t.onLoadRuns(e.id)}}
928
+ >
929
+ ${d(`cron.jobList.history`)}
930
+ </button>
931
+ <button
932
+ class="btn danger"
933
+ ?disabled=${t.busy}
934
+ @click=${n=>{n.stopPropagation(),r(()=>t.onRemove(e))}}
935
+ >
936
+ ${d(`cron.jobList.remove`)}
937
+ </button>
938
+ </div>
939
+ </div>
940
+ </div>
941
+ `}function A(t){let n=e(t);if(!n)return o``;if(n.kind===`systemEvent`)return o`<div class="cron-job-detail">
942
+ <span class="cron-job-detail-label">${d(`cron.jobDetail.system`)}</span>
943
+ <span class="muted cron-job-detail-value">${n.text}</span>
944
+ </div>`;let r=t.delivery,i=r?.mode===`webhook`?r.to?` (${r.to})`:``:r?.channel||r?.to?` (${r.channel??`last`}${r.to?` -> ${r.to}`:``})`:``;return o`
945
+ <div class="cron-job-detail">
946
+ <div class="cron-job-detail-section">
947
+ <span class="cron-job-detail-label">${d(`cron.jobDetail.prompt`)}</span>
948
+ <div class="muted cron-job-detail-value chat-text" @click=${j}>
949
+ ${a(c(n.message))}
950
+ </div>
951
+ </div>
952
+ ${r?o`<div class="cron-job-detail-section">
953
+ <span class="cron-job-detail-label">${d(`cron.jobDetail.delivery`)}</span>
954
+ <span class="muted cron-job-detail-value">${r.mode}${i}</span>
955
+ </div>`:u}
956
+ </div>
957
+ `}function j(e){e.target?.closest(`a,button,input,textarea,select,summary,[role='button'],[role='link']`)&&e.stopPropagation()}function M(e){return typeof e!=`number`||!Number.isFinite(e)?d(`common.na`):s(e)}function N(e,t=Date.now()){let n=s(e);return d(e>t?`cron.runEntry.next`:`cron.runEntry.due`,{rel:n})}function P(e){let n=e.state?.lastStatus,r=n===`ok`?`cron-job-status-ok`:n===`error`?`cron-job-status-error`:n===`skipped`?`cron-job-status-skipped`:`cron-job-status-na`,i=d(n===`ok`?`cron.runs.runStatusOk`:n===`error`?`cron.runs.runStatusError`:n===`skipped`?`cron.runs.runStatusSkipped`:`common.na`),a=e.state?.nextRunAtMs,s=e.state?.lastRunAtMs;return o`
958
+ <div class="cron-job-state">
959
+ <div class="cron-job-state-row">
960
+ <span class="cron-job-state-key">${d(`cron.jobState.status`)}</span>
961
+ <span class=${`cron-job-status-pill ${r}`}>${i}</span>
962
+ </div>
963
+ <div class="cron-job-state-row">
964
+ <span class="cron-job-state-key">${d(`cron.jobState.next`)}</span>
965
+ <span class="cron-job-state-value" title=${t(a)}>
966
+ ${M(a)}
967
+ </span>
968
+ </div>
969
+ <div class="cron-job-state-row">
970
+ <span class="cron-job-state-key">${d(`cron.jobState.last`)}</span>
971
+ <span class="cron-job-state-value" title=${t(s)}>
972
+ ${M(s)}
973
+ </span>
974
+ </div>
975
+ </div>
976
+ `}function F(e){switch(e){case`ok`:return d(`cron.runs.runStatusOk`);case`error`:return d(`cron.runs.runStatusError`);case`skipped`:return d(`cron.runs.runStatusSkipped`);default:return d(`cron.runs.runStatusUnknown`)}}function I(e){switch(e){case`delivered`:return d(`cron.runs.deliveryDelivered`);case`not-delivered`:return d(`cron.runs.deliveryNotDelivered`);case`not-requested`:return d(`cron.runs.deliveryNotRequested`);case`unknown`:return d(`cron.runs.deliveryUnknown`);default:return d(`cron.runs.deliveryUnknown`)}}function L(e,n,i){let s=typeof e.sessionKey==`string`&&e.sessionKey.trim().length>0?`${r(`chat`,n)}?session=${encodeURIComponent(e.sessionKey)}`:null,l=F(e.status??`unknown`),f=I(e.deliveryStatus??`not-requested`),p=e.usage,m=p&&typeof p.total_tokens==`number`?`${p.total_tokens} tokens`:p&&typeof p.input_tokens==`number`&&typeof p.output_tokens==`number`?`${p.input_tokens} in / ${p.output_tokens} out`:null,h=e.summary||e.error||d(`cron.runEntry.noSummary`),g=!!e.error&&!!e.summary;return o`
977
+ <div class="list-item cron-run-entry">
978
+ <div class="cron-run-entry__header">
979
+ <div class="list-main cron-run-entry__main">
980
+ <div class="list-title cron-run-entry__title">
981
+ ${e.jobName??e.jobId}
982
+ <span class="muted"> · ${l}</span>
983
+ </div>
984
+ <div class="chip-row" style="margin-top: 4px;">
985
+ <span class="chip">${f}</span>
986
+ ${e.model?o`<span class="chip">${e.model}</span>`:u}
987
+ ${e.provider?o`<span class="chip">${e.provider}</span>`:u}
988
+ ${m?o`<span class="chip">${m}</span>`:u}
989
+ </div>
990
+ </div>
991
+ <div class="list-meta cron-run-entry__meta">
992
+ <div>${t(e.ts)}</div>
993
+ ${typeof e.runAtMs==`number`?o`<div class="muted">${d(`cron.runEntry.runAt`)} ${t(e.runAtMs)}</div>`:u}
994
+ <div class="muted">${e.durationMs??0}ms</div>
995
+ ${typeof e.nextRunAtMs==`number`?o`<div class="muted">${N(e.nextRunAtMs)}</div>`:u}
996
+ ${s?o`<div>
997
+ <a
998
+ class="session-link"
999
+ href=${s}
1000
+ @click=${t=>{t.defaultPrevented||t.button!==0||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||i&&e.sessionKey&&(t.preventDefault(),i(e.sessionKey))}}
1001
+ >${d(`cron.runEntry.openRunChat`)}</a
1002
+ >
1003
+ </div>`:u}
1004
+ ${g?o`<div class="muted">${e.error}</div>`:u}
1005
+ ${e.deliveryError?o`<div class="muted">${e.deliveryError}</div>`:u}
1006
+ </div>
1007
+ </div>
1008
+ <div class="cron-run-entry__body chat-text">
1009
+ ${a(c(h))}
1010
+ </div>
1011
+ </div>
1012
+ `}export{E as renderCron};
1013
+ //# sourceMappingURL=cron-DS_5z6iY.js.map