daycare-cli 2026.2.9 → 2026.2.12

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 (724) hide show
  1. package/dist/commands/add.js +1 -1
  2. package/dist/commands/add.js.map +1 -1
  3. package/dist/commands/providers.js +1 -1
  4. package/dist/commands/providers.js.map +1 -1
  5. package/dist/config/configResolve.js +1 -1
  6. package/dist/config/configResolve.js.map +1 -1
  7. package/dist/config/configResolve.spec.js +2 -2
  8. package/dist/config/configResolve.spec.js.map +1 -1
  9. package/dist/engine/agents/agent.d.ts +7 -5
  10. package/dist/engine/agents/agent.d.ts.map +1 -1
  11. package/dist/engine/agents/agent.js +54 -35
  12. package/dist/engine/agents/agent.js.map +1 -1
  13. package/dist/engine/agents/agent.spec.js +98 -0
  14. package/dist/engine/agents/agent.spec.js.map +1 -1
  15. package/dist/engine/agents/agentSystem.d.ts +3 -17
  16. package/dist/engine/agents/agentSystem.d.ts.map +1 -1
  17. package/dist/engine/agents/agentSystem.js +41 -88
  18. package/dist/engine/agents/agentSystem.js.map +1 -1
  19. package/dist/engine/agents/agentSystem.spec.js +1 -16
  20. package/dist/engine/agents/agentSystem.spec.js.map +1 -1
  21. package/dist/engine/agents/agentSystemDurableInbox.spec.d.ts +2 -0
  22. package/dist/engine/agents/agentSystemDurableInbox.spec.d.ts.map +1 -0
  23. package/dist/engine/agents/agentSystemDurableInbox.spec.js +225 -0
  24. package/dist/engine/agents/agentSystemDurableInbox.spec.js.map +1 -0
  25. package/dist/engine/agents/ops/agentHistoryContext.d.ts +1 -1
  26. package/dist/engine/agents/ops/agentHistoryContext.d.ts.map +1 -1
  27. package/dist/engine/agents/ops/agentHistoryContext.js +1 -1
  28. package/dist/engine/agents/ops/agentHistoryContext.js.map +1 -1
  29. package/dist/engine/agents/ops/agentHistoryPendingToolResults.js.map +1 -1
  30. package/dist/engine/agents/ops/agentInbox.d.ts +7 -1
  31. package/dist/engine/agents/ops/agentInbox.d.ts.map +1 -1
  32. package/dist/engine/agents/ops/agentInbox.js +5 -17
  33. package/dist/engine/agents/ops/agentInbox.js.map +1 -1
  34. package/dist/engine/agents/ops/agentInbox.spec.js +21 -7
  35. package/dist/engine/agents/ops/agentInbox.spec.js.map +1 -1
  36. package/dist/engine/agents/ops/agentLoopRun.d.ts.map +1 -1
  37. package/dist/engine/agents/ops/agentLoopRun.js +0 -5
  38. package/dist/engine/agents/ops/agentLoopRun.js.map +1 -1
  39. package/dist/engine/agents/ops/agentLoopRun.spec.js +1 -4
  40. package/dist/engine/agents/ops/agentLoopRun.spec.js.map +1 -1
  41. package/dist/engine/agents/ops/agentPromptResolve.d.ts.map +1 -1
  42. package/dist/engine/agents/ops/agentPromptResolve.js +4 -1
  43. package/dist/engine/agents/ops/agentPromptResolve.js.map +1 -1
  44. package/dist/engine/agents/ops/agentPromptResolve.spec.js +7 -3
  45. package/dist/engine/agents/ops/agentPromptResolve.spec.js.map +1 -1
  46. package/dist/engine/agents/ops/agentSystemPrompt.spec.js +30 -20
  47. package/dist/engine/agents/ops/agentSystemPrompt.spec.js.map +1 -1
  48. package/dist/engine/agents/ops/agentSystemPromptContext.d.ts +1 -1
  49. package/dist/engine/agents/ops/agentSystemPromptContext.d.ts.map +1 -1
  50. package/dist/engine/agents/ops/agentSystemPromptSectionMemory.d.ts +1 -1
  51. package/dist/engine/agents/ops/agentSystemPromptSectionMemory.d.ts.map +1 -1
  52. package/dist/engine/agents/ops/agentSystemPromptSectionMemory.js +3 -26
  53. package/dist/engine/agents/ops/agentSystemPromptSectionMemory.js.map +1 -1
  54. package/dist/engine/agents/ops/agentSystemPromptSectionPermissions.d.ts.map +1 -1
  55. package/dist/engine/agents/ops/agentSystemPromptSectionPermissions.js +3 -4
  56. package/dist/engine/agents/ops/agentSystemPromptSectionPermissions.js.map +1 -1
  57. package/dist/engine/agents/ops/agentTypes.d.ts +0 -2
  58. package/dist/engine/agents/ops/agentTypes.d.ts.map +1 -1
  59. package/dist/engine/agents/ops/inboxItemDeserialize.d.ts +7 -0
  60. package/dist/engine/agents/ops/inboxItemDeserialize.d.ts.map +1 -0
  61. package/dist/engine/agents/ops/inboxItemDeserialize.js +27 -0
  62. package/dist/engine/agents/ops/inboxItemDeserialize.js.map +1 -0
  63. package/dist/engine/agents/ops/inboxItemSerialize.d.ts +7 -0
  64. package/dist/engine/agents/ops/inboxItemSerialize.d.ts.map +1 -0
  65. package/dist/engine/agents/ops/inboxItemSerialize.js +8 -0
  66. package/dist/engine/agents/ops/inboxItemSerialize.js.map +1 -0
  67. package/dist/engine/agents/ops/inboxItemSerialize.spec.d.ts +2 -0
  68. package/dist/engine/agents/ops/inboxItemSerialize.spec.d.ts.map +1 -0
  69. package/dist/engine/agents/ops/inboxItemSerialize.spec.js +51 -0
  70. package/dist/engine/agents/ops/inboxItemSerialize.spec.js.map +1 -0
  71. package/dist/engine/agents/system/_systemAgents.d.ts.map +1 -1
  72. package/dist/engine/agents/system/_systemAgents.js +0 -5
  73. package/dist/engine/agents/system/_systemAgents.js.map +1 -1
  74. package/dist/engine/agents/system/systemAgentPromptResolve.spec.js +0 -6
  75. package/dist/engine/agents/system/systemAgentPromptResolve.spec.js.map +1 -1
  76. package/dist/engine/apps/appExecute.d.ts +1 -1
  77. package/dist/engine/apps/appExecute.d.ts.map +1 -1
  78. package/dist/engine/apps/appExecute.js +2 -19
  79. package/dist/engine/apps/appExecute.js.map +1 -1
  80. package/dist/engine/apps/appExecute.spec.js +6 -20
  81. package/dist/engine/apps/appExecute.spec.js.map +1 -1
  82. package/dist/engine/apps/appInstallToolBuild.spec.js +1 -4
  83. package/dist/engine/apps/appInstallToolBuild.spec.js.map +1 -1
  84. package/dist/engine/apps/appPermissionBuild.d.ts.map +1 -1
  85. package/dist/engine/apps/appPermissionBuild.js +2 -14
  86. package/dist/engine/apps/appPermissionBuild.js.map +1 -1
  87. package/dist/engine/apps/appPermissionBuild.spec.js +6 -18
  88. package/dist/engine/apps/appPermissionBuild.spec.js.map +1 -1
  89. package/dist/engine/apps/appRuleToolBuild.d.ts.map +1 -1
  90. package/dist/engine/apps/appRuleToolBuild.js +1 -44
  91. package/dist/engine/apps/appRuleToolBuild.js.map +1 -1
  92. package/dist/engine/apps/appRuleToolBuild.spec.js +8 -39
  93. package/dist/engine/apps/appRuleToolBuild.spec.js.map +1 -1
  94. package/dist/engine/apps/appToolExecutorBuild.js +1 -1
  95. package/dist/engine/apps/appToolExecutorBuild.js.map +1 -1
  96. package/dist/engine/apps/appToolExecutorBuild.spec.js +3 -6
  97. package/dist/engine/apps/appToolExecutorBuild.spec.js.map +1 -1
  98. package/dist/engine/cron/cronTypes.d.ts +0 -2
  99. package/dist/engine/cron/cronTypes.d.ts.map +1 -1
  100. package/dist/engine/cron/crons.d.ts +0 -4
  101. package/dist/engine/cron/crons.d.ts.map +1 -1
  102. package/dist/engine/cron/crons.js +0 -45
  103. package/dist/engine/cron/crons.js.map +1 -1
  104. package/dist/engine/cron/crons.spec.js +9 -150
  105. package/dist/engine/cron/crons.spec.js.map +1 -1
  106. package/dist/engine/cron/ops/cronFieldParse.js +3 -3
  107. package/dist/engine/cron/ops/cronFieldParse.js.map +1 -1
  108. package/dist/engine/cron/ops/cronScheduler.d.ts +1 -11
  109. package/dist/engine/cron/ops/cronScheduler.d.ts.map +1 -1
  110. package/dist/engine/cron/ops/cronScheduler.js +2 -73
  111. package/dist/engine/cron/ops/cronScheduler.js.map +1 -1
  112. package/dist/engine/cron/ops/cronScheduler.spec.js +7 -154
  113. package/dist/engine/cron/ops/cronScheduler.spec.js.map +1 -1
  114. package/dist/engine/engine.d.ts +1 -2
  115. package/dist/engine/engine.d.ts.map +1 -1
  116. package/dist/engine/engine.js +13 -62
  117. package/dist/engine/engine.js.map +1 -1
  118. package/dist/engine/engine.spec.js +0 -112
  119. package/dist/engine/engine.spec.js.map +1 -1
  120. package/dist/engine/heartbeat/heartbeatTypes.d.ts +0 -7
  121. package/dist/engine/heartbeat/heartbeatTypes.d.ts.map +1 -1
  122. package/dist/engine/heartbeat/heartbeats.d.ts +0 -4
  123. package/dist/engine/heartbeat/heartbeats.d.ts.map +1 -1
  124. package/dist/engine/heartbeat/heartbeats.js +0 -26
  125. package/dist/engine/heartbeat/heartbeats.js.map +1 -1
  126. package/dist/engine/heartbeat/heartbeats.spec.js +28 -110
  127. package/dist/engine/heartbeat/heartbeats.spec.js.map +1 -1
  128. package/dist/engine/heartbeat/ops/heartbeatPromptBuildBatch.spec.js +0 -1
  129. package/dist/engine/heartbeat/ops/heartbeatPromptBuildBatch.spec.js.map +1 -1
  130. package/dist/engine/heartbeat/ops/heartbeatScheduler.d.ts +0 -5
  131. package/dist/engine/heartbeat/ops/heartbeatScheduler.d.ts.map +1 -1
  132. package/dist/engine/heartbeat/ops/heartbeatScheduler.js +6 -84
  133. package/dist/engine/heartbeat/ops/heartbeatScheduler.js.map +1 -1
  134. package/dist/engine/heartbeat/ops/heartbeatScheduler.spec.js +4 -148
  135. package/dist/engine/heartbeat/ops/heartbeatScheduler.spec.js.map +1 -1
  136. package/dist/engine/memory/memorySessionObserve.d.ts +11 -0
  137. package/dist/engine/memory/memorySessionObserve.d.ts.map +1 -0
  138. package/dist/engine/memory/memorySessionObserve.js +12 -0
  139. package/dist/engine/memory/memorySessionObserve.js.map +1 -0
  140. package/dist/engine/memory/memorySessionObserve.spec.d.ts +2 -0
  141. package/dist/engine/memory/memorySessionObserve.spec.d.ts.map +1 -0
  142. package/dist/engine/memory/memorySessionObserve.spec.js +41 -0
  143. package/dist/engine/memory/memorySessionObserve.spec.js.map +1 -0
  144. package/dist/engine/memory/memoryWorker.d.ts +22 -0
  145. package/dist/engine/memory/memoryWorker.d.ts.map +1 -0
  146. package/dist/engine/memory/memoryWorker.js +95 -0
  147. package/dist/engine/memory/memoryWorker.js.map +1 -0
  148. package/dist/engine/memory/memoryWorker.spec.d.ts +2 -0
  149. package/dist/engine/memory/memoryWorker.spec.d.ts.map +1 -0
  150. package/dist/engine/memory/memoryWorker.spec.js +137 -0
  151. package/dist/engine/memory/memoryWorker.spec.js.map +1 -0
  152. package/dist/engine/messages/incomingMessages.js +1 -13
  153. package/dist/engine/messages/incomingMessages.js.map +1 -1
  154. package/dist/engine/messages/incomingMessages.spec.js +3 -4
  155. package/dist/engine/messages/incomingMessages.spec.js.map +1 -1
  156. package/dist/engine/modules/connectorRegistry.d.ts +1 -4
  157. package/dist/engine/modules/connectorRegistry.d.ts.map +1 -1
  158. package/dist/engine/modules/connectorRegistry.js +4 -18
  159. package/dist/engine/modules/connectorRegistry.js.map +1 -1
  160. package/dist/engine/modules/connectors/types.d.ts +0 -44
  161. package/dist/engine/modules/connectors/types.d.ts.map +1 -1
  162. package/dist/engine/modules/executablePrompts/executablePromptExpand.spec.js +1 -4
  163. package/dist/engine/modules/executablePrompts/executablePromptExpand.spec.js.map +1 -1
  164. package/dist/engine/modules/media/pdfExtract.d.ts +33 -0
  165. package/dist/engine/modules/media/pdfExtract.d.ts.map +1 -0
  166. package/dist/engine/modules/media/pdfExtract.js +123 -0
  167. package/dist/engine/modules/media/pdfExtract.js.map +1 -0
  168. package/dist/engine/modules/media/pdfExtract.spec.d.ts +2 -0
  169. package/dist/engine/modules/media/pdfExtract.spec.d.ts.map +1 -0
  170. package/dist/engine/modules/media/pdfExtract.spec.js +25 -0
  171. package/dist/engine/modules/media/pdfExtract.spec.js.map +1 -0
  172. package/dist/engine/modules/monty/montyPythonTypeFromSchemaRuntime.spec.js +1 -4
  173. package/dist/engine/modules/monty/montyPythonTypeFromSchemaRuntime.spec.js.map +1 -1
  174. package/dist/engine/modules/rlm/rlmExecute.spec.js +1 -4
  175. package/dist/engine/modules/rlm/rlmExecute.spec.js.map +1 -1
  176. package/dist/engine/modules/rlm/rlmPromptSkills.spec.js +0 -6
  177. package/dist/engine/modules/rlm/rlmPromptSkills.spec.js.map +1 -1
  178. package/dist/engine/modules/rlm/rlmRestore.spec.js +1 -4
  179. package/dist/engine/modules/rlm/rlmRestore.spec.js.map +1 -1
  180. package/dist/engine/modules/rlm/rlmTool.spec.js +1 -4
  181. package/dist/engine/modules/rlm/rlmTool.spec.js.map +1 -1
  182. package/dist/engine/modules/say/sayFileResolve.d.ts.map +1 -1
  183. package/dist/engine/modules/say/sayFileResolve.js +2 -2
  184. package/dist/engine/modules/say/sayFileResolve.js.map +1 -1
  185. package/dist/engine/modules/say/sayFileResolve.spec.js +1 -4
  186. package/dist/engine/modules/say/sayFileResolve.spec.js.map +1 -1
  187. package/dist/engine/modules/toolResolver.spec.js +1 -4
  188. package/dist/engine/modules/toolResolver.spec.js.map +1 -1
  189. package/dist/engine/modules/tools/agentCompactTool.spec.js +1 -4
  190. package/dist/engine/modules/tools/agentCompactTool.spec.js.map +1 -1
  191. package/dist/engine/modules/tools/agentResetTool.spec.js +1 -4
  192. package/dist/engine/modules/tools/agentResetTool.spec.js.map +1 -1
  193. package/dist/engine/modules/tools/background.d.ts.map +1 -1
  194. package/dist/engine/modules/tools/background.js +1 -10
  195. package/dist/engine/modules/tools/background.js.map +1 -1
  196. package/dist/engine/modules/tools/background.spec.js +4 -31
  197. package/dist/engine/modules/tools/background.spec.js.map +1 -1
  198. package/dist/engine/modules/tools/channelCreateTool.spec.js +1 -4
  199. package/dist/engine/modules/tools/channelCreateTool.spec.js.map +1 -1
  200. package/dist/engine/modules/tools/channelHistoryTool.spec.js +1 -4
  201. package/dist/engine/modules/tools/channelHistoryTool.spec.js.map +1 -1
  202. package/dist/engine/modules/tools/channelMemberTool.spec.js +1 -4
  203. package/dist/engine/modules/tools/channelMemberTool.spec.js.map +1 -1
  204. package/dist/engine/modules/tools/channelSendTool.spec.js +1 -4
  205. package/dist/engine/modules/tools/channelSendTool.spec.js.map +1 -1
  206. package/dist/engine/modules/tools/cron.d.ts.map +1 -1
  207. package/dist/engine/modules/tools/cron.js +13 -43
  208. package/dist/engine/modules/tools/cron.js.map +1 -1
  209. package/dist/engine/modules/tools/heartbeat.d.ts.map +1 -1
  210. package/dist/engine/modules/tools/heartbeat.js +2 -27
  211. package/dist/engine/modules/tools/heartbeat.js.map +1 -1
  212. package/dist/engine/modules/tools/image-generation.spec.js +1 -4
  213. package/dist/engine/modules/tools/image-generation.spec.js.map +1 -1
  214. package/dist/engine/modules/tools/mermaid-png.spec.js +1 -4
  215. package/dist/engine/modules/tools/mermaid-png.spec.js.map +1 -1
  216. package/dist/engine/modules/tools/pdf-process.d.ts +27 -0
  217. package/dist/engine/modules/tools/pdf-process.d.ts.map +1 -0
  218. package/dist/engine/modules/tools/pdf-process.js +151 -0
  219. package/dist/engine/modules/tools/pdf-process.js.map +1 -0
  220. package/dist/engine/modules/tools/pdf-process.spec.d.ts +2 -0
  221. package/dist/engine/modules/tools/pdf-process.spec.d.ts.map +1 -0
  222. package/dist/engine/modules/tools/pdf-process.spec.js +56 -0
  223. package/dist/engine/modules/tools/pdf-process.spec.js.map +1 -0
  224. package/dist/engine/modules/tools/permanentAgentToolBuild.d.ts.map +1 -1
  225. package/dist/engine/modules/tools/permanentAgentToolBuild.js +2 -10
  226. package/dist/engine/modules/tools/permanentAgentToolBuild.js.map +1 -1
  227. package/dist/engine/modules/tools/permanentAgentToolBuild.spec.js +6 -37
  228. package/dist/engine/modules/tools/permanentAgentToolBuild.spec.js.map +1 -1
  229. package/dist/engine/modules/tools/send-file.js +2 -2
  230. package/dist/engine/modules/tools/send-file.js.map +1 -1
  231. package/dist/engine/modules/tools/sendUserMessageTool.spec.js +1 -4
  232. package/dist/engine/modules/tools/sendUserMessageTool.spec.js.map +1 -1
  233. package/dist/engine/modules/tools/signal.spec.js +1 -4
  234. package/dist/engine/modules/tools/signal.spec.js.map +1 -1
  235. package/dist/engine/modules/tools/signalEventsCsvToolBuild.spec.js +1 -4
  236. package/dist/engine/modules/tools/signalEventsCsvToolBuild.spec.js.map +1 -1
  237. package/dist/engine/modules/tools/signalSubscribeToolBuild.spec.js +1 -4
  238. package/dist/engine/modules/tools/signalSubscribeToolBuild.spec.js.map +1 -1
  239. package/dist/engine/modules/tools/signalUnsubscribeToolBuild.spec.js +1 -4
  240. package/dist/engine/modules/tools/signalUnsubscribeToolBuild.spec.js.map +1 -1
  241. package/dist/engine/modules/tools/skillToolBuild.d.ts.map +1 -1
  242. package/dist/engine/modules/tools/skillToolBuild.js +0 -10
  243. package/dist/engine/modules/tools/skillToolBuild.js.map +1 -1
  244. package/dist/engine/modules/tools/skillToolBuild.spec.js +4 -25
  245. package/dist/engine/modules/tools/skillToolBuild.spec.js.map +1 -1
  246. package/dist/engine/modules/tools/toolListContextBuild.d.ts +0 -1
  247. package/dist/engine/modules/tools/toolListContextBuild.d.ts.map +1 -1
  248. package/dist/engine/modules/tools/toolListContextBuild.js.map +1 -1
  249. package/dist/engine/modules/tools/topologyToolBuild.spec.js +0 -3
  250. package/dist/engine/modules/tools/topologyToolBuild.spec.js.map +1 -1
  251. package/dist/engine/modules/tools/types.d.ts +1 -3
  252. package/dist/engine/modules/tools/types.d.ts.map +1 -1
  253. package/dist/engine/permissions/permissionBuildUser.d.ts.map +1 -1
  254. package/dist/engine/permissions/permissionBuildUser.js +1 -18
  255. package/dist/engine/permissions/permissionBuildUser.js.map +1 -1
  256. package/dist/engine/permissions/permissionBuildUser.spec.js +2 -21
  257. package/dist/engine/permissions/permissionBuildUser.spec.js.map +1 -1
  258. package/dist/engine/permissions.d.ts +0 -4
  259. package/dist/engine/permissions.d.ts.map +1 -1
  260. package/dist/engine/permissions.js +2 -31
  261. package/dist/engine/permissions.js.map +1 -1
  262. package/dist/engine/plugins/builtins.spec.js +3 -1
  263. package/dist/engine/plugins/builtins.spec.js.map +1 -1
  264. package/dist/engine/plugins/descriptor.d.ts +2 -2
  265. package/dist/engine/plugins/loader.spec.js +3 -1
  266. package/dist/engine/plugins/loader.spec.js.map +1 -1
  267. package/dist/engine/processes/processes.d.ts +0 -2
  268. package/dist/engine/processes/processes.d.ts.map +1 -1
  269. package/dist/engine/processes/processes.js +8 -12
  270. package/dist/engine/processes/processes.js.map +1 -1
  271. package/dist/engine/processes/processes.spec.js +22 -31
  272. package/dist/engine/processes/processes.spec.js.map +1 -1
  273. package/dist/engine/users/userHomeMigrate.d.ts +2 -5
  274. package/dist/engine/users/userHomeMigrate.d.ts.map +1 -1
  275. package/dist/engine/users/userHomeMigrate.js +2 -13
  276. package/dist/engine/users/userHomeMigrate.js.map +1 -1
  277. package/dist/engine/users/userHomeMigrate.spec.js +7 -62
  278. package/dist/engine/users/userHomeMigrate.spec.js.map +1 -1
  279. package/dist/log.spec.js +1 -0
  280. package/dist/log.spec.js.map +1 -1
  281. package/dist/plugins/anthropic-fetch/plugin.d.ts.map +1 -1
  282. package/dist/plugins/anthropic-fetch/plugin.js +4 -7
  283. package/dist/plugins/anthropic-fetch/plugin.js.map +1 -1
  284. package/dist/plugins/anthropic-search/plugin.d.ts.map +1 -1
  285. package/dist/plugins/anthropic-search/plugin.js +4 -7
  286. package/dist/plugins/anthropic-search/plugin.js.map +1 -1
  287. package/dist/plugins/brave-search/plugin.d.ts.map +1 -1
  288. package/dist/plugins/brave-search/plugin.js +2 -5
  289. package/dist/plugins/brave-search/plugin.js.map +1 -1
  290. package/dist/plugins/cloudflare-tunnel/plugin.d.ts.map +1 -1
  291. package/dist/plugins/cloudflare-tunnel/plugin.js +1 -4
  292. package/dist/plugins/cloudflare-tunnel/plugin.js.map +1 -1
  293. package/dist/plugins/cloudflare-tunnel/plugin.spec.js +3 -8
  294. package/dist/plugins/cloudflare-tunnel/plugin.spec.js.map +1 -1
  295. package/dist/plugins/custom-tunnel/plugin.spec.js +1 -2
  296. package/dist/plugins/custom-tunnel/plugin.spec.js.map +1 -1
  297. package/dist/plugins/dashboard/site/404.html +1 -1
  298. package/dist/plugins/dashboard/site/_next/static/chunks/app/automations/page-6245088e82da3e1c.js +1 -0
  299. package/dist/plugins/dashboard/site/agent.html +1 -1
  300. package/dist/plugins/dashboard/site/agent.txt +1 -1
  301. package/dist/plugins/dashboard/site/agents.html +1 -1
  302. package/dist/plugins/dashboard/site/agents.txt +1 -1
  303. package/dist/plugins/dashboard/site/automations.html +1 -1
  304. package/dist/plugins/dashboard/site/automations.txt +2 -2
  305. package/dist/plugins/dashboard/site/connectors.html +1 -1
  306. package/dist/plugins/dashboard/site/connectors.txt +1 -1
  307. package/dist/plugins/dashboard/site/index.html +1 -1
  308. package/dist/plugins/dashboard/site/index.txt +1 -1
  309. package/dist/plugins/dashboard/site/processes.html +1 -1
  310. package/dist/plugins/dashboard/site/processes.txt +1 -1
  311. package/dist/plugins/dashboard/site/providers.html +1 -1
  312. package/dist/plugins/dashboard/site/providers.txt +1 -1
  313. package/dist/plugins/dashboard/site/signals.html +1 -1
  314. package/dist/plugins/dashboard/site/signals.txt +1 -1
  315. package/dist/plugins/dashboard/site/telemetry.html +1 -1
  316. package/dist/plugins/dashboard/site/telemetry.txt +1 -1
  317. package/dist/plugins/dashboard/site/tools.html +1 -1
  318. package/dist/plugins/dashboard/site/tools.txt +1 -1
  319. package/dist/plugins/database/__tests__/plugin.spec.js +4 -5
  320. package/dist/plugins/database/__tests__/plugin.spec.js.map +1 -1
  321. package/dist/plugins/exa-ai/plugin.d.ts.map +1 -1
  322. package/dist/plugins/exa-ai/plugin.js +2 -5
  323. package/dist/plugins/exa-ai/plugin.js.map +1 -1
  324. package/dist/plugins/firecrawl/plugin.d.ts.map +1 -1
  325. package/dist/plugins/firecrawl/plugin.js +2 -5
  326. package/dist/plugins/firecrawl/plugin.js.map +1 -1
  327. package/dist/plugins/gemini-search/plugin.d.ts.map +1 -1
  328. package/dist/plugins/gemini-search/plugin.js +4 -7
  329. package/dist/plugins/gemini-search/plugin.js.map +1 -1
  330. package/dist/plugins/local-expose/plugin.d.ts.map +1 -1
  331. package/dist/plugins/local-expose/plugin.js +1 -4
  332. package/dist/plugins/local-expose/plugin.js.map +1 -1
  333. package/dist/plugins/local-expose/plugin.spec.js +4 -10
  334. package/dist/plugins/local-expose/plugin.spec.js.map +1 -1
  335. package/dist/plugins/monty-python/tool.d.ts.map +1 -1
  336. package/dist/plugins/monty-python/tool.js.map +1 -1
  337. package/dist/plugins/monty-python/tool.spec.js +1 -4
  338. package/dist/plugins/monty-python/tool.spec.js.map +1 -1
  339. package/dist/plugins/nano-banana-pro/__tests__/plugin.integration.spec.js +3 -1
  340. package/dist/plugins/nano-banana-pro/__tests__/plugin.integration.spec.js.map +1 -1
  341. package/dist/plugins/openai-search/plugin.d.ts.map +1 -1
  342. package/dist/plugins/openai-search/plugin.js +5 -8
  343. package/dist/plugins/openai-search/plugin.js.map +1 -1
  344. package/dist/plugins/perplexity-search/plugin.d.ts.map +1 -1
  345. package/dist/plugins/perplexity-search/plugin.js +3 -6
  346. package/dist/plugins/perplexity-search/plugin.js.map +1 -1
  347. package/dist/plugins/shell/processTools.d.ts.map +1 -1
  348. package/dist/plugins/shell/processTools.js +5 -21
  349. package/dist/plugins/shell/processTools.js.map +1 -1
  350. package/dist/plugins/shell/processTools.spec.js +10 -70
  351. package/dist/plugins/shell/processTools.spec.js.map +1 -1
  352. package/dist/plugins/shell/tool.d.ts.map +1 -1
  353. package/dist/plugins/shell/tool.js +13 -29
  354. package/dist/plugins/shell/tool.js.map +1 -1
  355. package/dist/plugins/shell/tool.spec.js +56 -152
  356. package/dist/plugins/shell/tool.spec.js.map +1 -1
  357. package/dist/plugins/tailscale/plugin.spec.js +1 -2
  358. package/dist/plugins/tailscale/plugin.spec.js.map +1 -1
  359. package/dist/plugins/telegram/connector.d.ts +1 -6
  360. package/dist/plugins/telegram/connector.d.ts.map +1 -1
  361. package/dist/plugins/telegram/connector.js +1 -152
  362. package/dist/plugins/telegram/connector.js.map +1 -1
  363. package/dist/plugins/telegram/connector.spec.js +0 -116
  364. package/dist/plugins/telegram/connector.spec.js.map +1 -1
  365. package/dist/plugins/telegram/markdownToTelegramHtml.js +6 -6
  366. package/dist/plugins/telegram/markdownToTelegramHtml.js.map +1 -1
  367. package/dist/plugins/upgrade/plugin.spec.js +5 -10
  368. package/dist/plugins/upgrade/plugin.spec.js.map +1 -1
  369. package/dist/plugins/web-fetch/plugin.d.ts.map +1 -1
  370. package/dist/plugins/web-fetch/plugin.js +1 -4
  371. package/dist/plugins/web-fetch/plugin.js.map +1 -1
  372. package/dist/plugins/whatsapp/authenticate.d.ts.map +1 -1
  373. package/dist/plugins/whatsapp/authenticate.js.map +1 -1
  374. package/dist/plugins/whatsapp/connector.d.ts +1 -6
  375. package/dist/plugins/whatsapp/connector.d.ts.map +1 -1
  376. package/dist/plugins/whatsapp/connector.js +0 -106
  377. package/dist/plugins/whatsapp/connector.js.map +1 -1
  378. package/dist/plugins/whatsapp/markdownToWhatsAppText.js +9 -9
  379. package/dist/plugins/whatsapp/markdownToWhatsAppText.js.map +1 -1
  380. package/dist/prompts/PERMISSIONS.md +1 -1
  381. package/dist/prompts/SYSTEM_TOPOLOGY.md +1 -1
  382. package/dist/providers/__tests__/inference.integration.spec.js +2 -2
  383. package/dist/providers/__tests__/inference.integration.spec.js.map +1 -1
  384. package/dist/sandbox/pathResolveSecure.d.ts.map +1 -0
  385. package/dist/sandbox/pathResolveSecure.js.map +1 -0
  386. package/dist/sandbox/pathResolveSecure.spec.d.ts.map +1 -0
  387. package/dist/sandbox/pathResolveSecure.spec.js.map +1 -0
  388. package/dist/sandbox/pathSanitize.d.ts.map +1 -0
  389. package/dist/sandbox/pathSanitize.js.map +1 -0
  390. package/dist/sandbox/pathSanitize.spec.d.ts.map +1 -0
  391. package/dist/{engine/permissions → sandbox}/pathSanitize.spec.js +2 -2
  392. package/dist/sandbox/pathSanitize.spec.js.map +1 -0
  393. package/dist/sandbox/sandboxAllowedDomainsValidate.d.ts +2 -2
  394. package/dist/sandbox/sandboxAllowedDomainsValidate.d.ts.map +1 -1
  395. package/dist/sandbox/sandboxAllowedDomainsValidate.js +4 -7
  396. package/dist/sandbox/sandboxAllowedDomainsValidate.js.map +1 -1
  397. package/dist/sandbox/sandboxAllowedDomainsValidate.spec.js +7 -10
  398. package/dist/sandbox/sandboxAllowedDomainsValidate.spec.js.map +1 -1
  399. package/dist/sandbox/sandboxAppsAccessCheck.js +20 -2
  400. package/dist/sandbox/sandboxAppsAccessCheck.js.map +1 -1
  401. package/dist/sandbox/sandboxAppsDenyPathsBuild.d.ts +3 -2
  402. package/dist/sandbox/sandboxAppsDenyPathsBuild.d.ts.map +1 -1
  403. package/dist/sandbox/sandboxAppsDenyPathsBuild.js.map +1 -1
  404. package/dist/sandbox/sandboxCanRead.js +1 -1
  405. package/dist/sandbox/sandboxCanRead.js.map +1 -1
  406. package/dist/sandbox/sandboxCanRead.spec.js +8 -16
  407. package/dist/sandbox/sandboxCanRead.spec.js.map +1 -1
  408. package/dist/sandbox/sandboxCanWrite.js +1 -1
  409. package/dist/sandbox/sandboxCanWrite.js.map +1 -1
  410. package/dist/sandbox/sandboxCanWrite.spec.js +1 -4
  411. package/dist/sandbox/sandboxCanWrite.spec.js.map +1 -1
  412. package/dist/sandbox/sandboxFilesystemPolicyBuild.d.ts +2 -2
  413. package/dist/sandbox/sandboxFilesystemPolicyBuild.d.ts.map +1 -1
  414. package/dist/sandbox/sandboxFilesystemPolicyBuild.js +4 -2
  415. package/dist/sandbox/sandboxFilesystemPolicyBuild.js.map +1 -1
  416. package/dist/sandbox/sandboxFilesystemPolicyBuild.spec.js +9 -21
  417. package/dist/sandbox/sandboxFilesystemPolicyBuild.spec.js.map +1 -1
  418. package/dist/skills/scheduling/SKILL.md +3 -57
  419. package/dist/skills/skills/scheduling/SKILL.md +3 -57
  420. package/dist/storage/agentsRepository.spec.js +1 -5
  421. package/dist/storage/agentsRepository.spec.js.map +1 -1
  422. package/dist/storage/cronTasksRepository.d.ts.map +1 -1
  423. package/dist/storage/cronTasksRepository.js +4 -23
  424. package/dist/storage/cronTasksRepository.js.map +1 -1
  425. package/dist/storage/cronTasksRepository.spec.js +1 -9
  426. package/dist/storage/cronTasksRepository.spec.js.map +1 -1
  427. package/dist/storage/databaseTypes.d.ts +19 -5
  428. package/dist/storage/databaseTypes.d.ts.map +1 -1
  429. package/dist/storage/heartbeatTasksRepository.d.ts.map +1 -1
  430. package/dist/storage/heartbeatTasksRepository.js +4 -23
  431. package/dist/storage/heartbeatTasksRepository.js.map +1 -1
  432. package/dist/storage/heartbeatTasksRepository.spec.js +0 -5
  433. package/dist/storage/heartbeatTasksRepository.spec.js.map +1 -1
  434. package/dist/storage/historyRepository.d.ts +15 -1
  435. package/dist/storage/historyRepository.d.ts.map +1 -1
  436. package/dist/storage/historyRepository.js +26 -1
  437. package/dist/storage/historyRepository.js.map +1 -1
  438. package/dist/storage/historyRepository.spec.js +97 -23
  439. package/dist/storage/historyRepository.spec.js.map +1 -1
  440. package/dist/storage/inboxRepository.d.ts +15 -0
  441. package/dist/storage/inboxRepository.d.ts.map +1 -0
  442. package/dist/storage/inboxRepository.js +47 -0
  443. package/dist/storage/inboxRepository.js.map +1 -0
  444. package/dist/storage/inboxRepository.spec.d.ts +2 -0
  445. package/dist/storage/inboxRepository.spec.d.ts.map +1 -0
  446. package/dist/storage/inboxRepository.spec.js +42 -0
  447. package/dist/storage/inboxRepository.spec.js.map +1 -0
  448. package/dist/storage/migrations/20260219_import_files.js +1 -4
  449. package/dist/storage/migrations/20260219_import_files.js.map +1 -1
  450. package/dist/storage/migrations/20260220_add_tasks.d.ts.map +1 -1
  451. package/dist/storage/migrations/20260220_add_tasks.js +0 -2
  452. package/dist/storage/migrations/20260220_add_tasks.js.map +1 -1
  453. package/dist/storage/migrations/20260220_add_tasks.spec.js +0 -2
  454. package/dist/storage/migrations/20260220_add_tasks.spec.js.map +1 -1
  455. package/dist/storage/migrations/20260220_import_tasks.d.ts.map +1 -1
  456. package/dist/storage/migrations/20260220_import_tasks.js +5 -10
  457. package/dist/storage/migrations/20260220_import_tasks.js.map +1 -1
  458. package/dist/storage/migrations/20260220_import_tasks.spec.js +1 -4
  459. package/dist/storage/migrations/20260220_import_tasks.spec.js.map +1 -1
  460. package/dist/storage/migrations/20260221_add_inbox.d.ts +7 -0
  461. package/dist/storage/migrations/20260221_add_inbox.d.ts.map +1 -0
  462. package/dist/storage/migrations/20260221_add_inbox.js +22 -0
  463. package/dist/storage/migrations/20260221_add_inbox.js.map +1 -0
  464. package/dist/storage/migrations/20260221_add_inbox.spec.d.ts +2 -0
  465. package/dist/storage/migrations/20260221_add_inbox.spec.d.ts.map +1 -0
  466. package/dist/storage/migrations/20260221_add_inbox.spec.js +19 -0
  467. package/dist/storage/migrations/20260221_add_inbox.spec.js.map +1 -0
  468. package/dist/storage/migrations/20260221_drop_gate_columns.d.ts +7 -0
  469. package/dist/storage/migrations/20260221_drop_gate_columns.d.ts.map +1 -0
  470. package/dist/storage/migrations/20260221_drop_gate_columns.js +20 -0
  471. package/dist/storage/migrations/20260221_drop_gate_columns.js.map +1 -0
  472. package/dist/storage/migrations/20260221_drop_gate_columns.spec.d.ts +2 -0
  473. package/dist/storage/migrations/20260221_drop_gate_columns.spec.d.ts.map +1 -0
  474. package/dist/storage/migrations/20260221_drop_gate_columns.spec.js +50 -0
  475. package/dist/storage/migrations/20260221_drop_gate_columns.spec.js.map +1 -0
  476. package/dist/storage/migrations/20260223_add_heartbeat_users.spec.js +4 -6
  477. package/dist/storage/migrations/20260223_add_heartbeat_users.spec.js.map +1 -1
  478. package/dist/storage/migrations/20260224_add_memory_columns.d.ts +8 -0
  479. package/dist/storage/migrations/20260224_add_memory_columns.d.ts.map +1 -0
  480. package/dist/storage/migrations/20260224_add_memory_columns.js +24 -0
  481. package/dist/storage/migrations/20260224_add_memory_columns.js.map +1 -0
  482. package/dist/storage/migrations/20260224_add_memory_columns.spec.d.ts +2 -0
  483. package/dist/storage/migrations/20260224_add_memory_columns.spec.d.ts.map +1 -0
  484. package/dist/storage/migrations/20260224_add_memory_columns.spec.js +48 -0
  485. package/dist/storage/migrations/20260224_add_memory_columns.spec.js.map +1 -0
  486. package/dist/storage/migrations/_migrations.d.ts.map +1 -1
  487. package/dist/storage/migrations/_migrations.js +7 -1
  488. package/dist/storage/migrations/_migrations.js.map +1 -1
  489. package/dist/storage/processesRepository.js +4 -15
  490. package/dist/storage/processesRepository.js.map +1 -1
  491. package/dist/storage/processesRepository.spec.js +1 -4
  492. package/dist/storage/processesRepository.spec.js.map +1 -1
  493. package/dist/storage/sessionsRepository.d.ts +17 -0
  494. package/dist/storage/sessionsRepository.d.ts.map +1 -1
  495. package/dist/storage/sessionsRepository.js +46 -3
  496. package/dist/storage/sessionsRepository.js.map +1 -1
  497. package/dist/storage/sessionsRepository.spec.js +155 -24
  498. package/dist/storage/sessionsRepository.spec.js.map +1 -1
  499. package/dist/storage/storage.d.ts +2 -0
  500. package/dist/storage/storage.d.ts.map +1 -1
  501. package/dist/storage/storage.js +3 -0
  502. package/dist/storage/storage.js.map +1 -1
  503. package/dist/types.d.ts +1 -2
  504. package/dist/types.d.ts.map +1 -1
  505. package/dist/util/stringUtils.spec.d.ts +2 -0
  506. package/dist/util/stringUtils.spec.d.ts.map +1 -0
  507. package/dist/util/stringUtils.spec.js +53 -0
  508. package/dist/util/stringUtils.spec.js.map +1 -0
  509. package/dist/util/timeFormat.js +17 -17
  510. package/dist/util/timeFormat.js.map +1 -1
  511. package/dist/utils/stringTruncate.js +1 -1
  512. package/dist/utils/stringTruncate.js.map +1 -1
  513. package/package.json +2 -1
  514. package/dist/engine/agents/ops/agentDescriptorIsCron.d.ts +0 -9
  515. package/dist/engine/agents/ops/agentDescriptorIsCron.d.ts.map +0 -1
  516. package/dist/engine/agents/ops/agentDescriptorIsCron.js +0 -8
  517. package/dist/engine/agents/ops/agentDescriptorIsCron.js.map +0 -1
  518. package/dist/engine/apps/appPermissionStateGrant.d.ts +0 -7
  519. package/dist/engine/apps/appPermissionStateGrant.d.ts.map +0 -1
  520. package/dist/engine/apps/appPermissionStateGrant.js +0 -14
  521. package/dist/engine/apps/appPermissionStateGrant.js.map +0 -1
  522. package/dist/engine/apps/appPermissionStateGrant.spec.d.ts +0 -2
  523. package/dist/engine/apps/appPermissionStateGrant.spec.d.ts.map +0 -1
  524. package/dist/engine/apps/appPermissionStateGrant.spec.js +0 -33
  525. package/dist/engine/apps/appPermissionStateGrant.spec.js.map +0 -1
  526. package/dist/engine/apps/appPermissionStatePathBuild.d.ts +0 -6
  527. package/dist/engine/apps/appPermissionStatePathBuild.d.ts.map +0 -1
  528. package/dist/engine/apps/appPermissionStatePathBuild.js +0 -9
  529. package/dist/engine/apps/appPermissionStatePathBuild.js.map +0 -1
  530. package/dist/engine/apps/appPermissionStateRead.d.ts +0 -6
  531. package/dist/engine/apps/appPermissionStateRead.d.ts.map +0 -1
  532. package/dist/engine/apps/appPermissionStateRead.js +0 -40
  533. package/dist/engine/apps/appPermissionStateRead.js.map +0 -1
  534. package/dist/engine/apps/appPermissionStateWrite.d.ts +0 -6
  535. package/dist/engine/apps/appPermissionStateWrite.d.ts.map +0 -1
  536. package/dist/engine/apps/appPermissionStateWrite.js +0 -32
  537. package/dist/engine/apps/appPermissionStateWrite.js.map +0 -1
  538. package/dist/engine/modules/tools/permissionRequestRegistry.d.ts +0 -13
  539. package/dist/engine/modules/tools/permissionRequestRegistry.d.ts.map +0 -1
  540. package/dist/engine/modules/tools/permissionRequestRegistry.js +0 -51
  541. package/dist/engine/modules/tools/permissionRequestRegistry.js.map +0 -1
  542. package/dist/engine/modules/tools/permissionRequestRegistry.spec.d.ts +0 -2
  543. package/dist/engine/modules/tools/permissionRequestRegistry.spec.d.ts.map +0 -1
  544. package/dist/engine/modules/tools/permissionRequestRegistry.spec.js +0 -47
  545. package/dist/engine/modules/tools/permissionRequestRegistry.spec.js.map +0 -1
  546. package/dist/engine/modules/tools/permissions.d.ts +0 -28
  547. package/dist/engine/modules/tools/permissions.d.ts.map +0 -1
  548. package/dist/engine/modules/tools/permissions.js +0 -375
  549. package/dist/engine/modules/tools/permissions.js.map +0 -1
  550. package/dist/engine/modules/tools/permissions.spec.d.ts +0 -2
  551. package/dist/engine/modules/tools/permissions.spec.d.ts.map +0 -1
  552. package/dist/engine/modules/tools/permissions.spec.js +0 -366
  553. package/dist/engine/modules/tools/permissions.spec.js.map +0 -1
  554. package/dist/engine/permissions/pathResolveSecure.d.ts.map +0 -1
  555. package/dist/engine/permissions/pathResolveSecure.js.map +0 -1
  556. package/dist/engine/permissions/pathResolveSecure.spec.d.ts.map +0 -1
  557. package/dist/engine/permissions/pathResolveSecure.spec.js.map +0 -1
  558. package/dist/engine/permissions/pathSanitize.d.ts.map +0 -1
  559. package/dist/engine/permissions/pathSanitize.js.map +0 -1
  560. package/dist/engine/permissions/pathSanitize.spec.d.ts.map +0 -1
  561. package/dist/engine/permissions/pathSanitize.spec.js.map +0 -1
  562. package/dist/engine/permissions/permissionAccessAllows.d.ts +0 -7
  563. package/dist/engine/permissions/permissionAccessAllows.d.ts.map +0 -1
  564. package/dist/engine/permissions/permissionAccessAllows.js +0 -72
  565. package/dist/engine/permissions/permissionAccessAllows.js.map +0 -1
  566. package/dist/engine/permissions/permissionAccessAllows.spec.d.ts +0 -2
  567. package/dist/engine/permissions/permissionAccessAllows.spec.d.ts.map +0 -1
  568. package/dist/engine/permissions/permissionAccessAllows.spec.js +0 -111
  569. package/dist/engine/permissions/permissionAccessAllows.spec.js.map +0 -1
  570. package/dist/engine/permissions/permissionAccessApply.d.ts +0 -7
  571. package/dist/engine/permissions/permissionAccessApply.d.ts.map +0 -1
  572. package/dist/engine/permissions/permissionAccessApply.js +0 -55
  573. package/dist/engine/permissions/permissionAccessApply.js.map +0 -1
  574. package/dist/engine/permissions/permissionAccessApply.spec.d.ts +0 -2
  575. package/dist/engine/permissions/permissionAccessApply.spec.d.ts.map +0 -1
  576. package/dist/engine/permissions/permissionAccessApply.spec.js +0 -56
  577. package/dist/engine/permissions/permissionAccessApply.spec.js.map +0 -1
  578. package/dist/engine/permissions/permissionAccessParse.d.ts +0 -7
  579. package/dist/engine/permissions/permissionAccessParse.d.ts.map +0 -1
  580. package/dist/engine/permissions/permissionAccessParse.js +0 -32
  581. package/dist/engine/permissions/permissionAccessParse.js.map +0 -1
  582. package/dist/engine/permissions/permissionAccessParse.spec.d.ts +0 -2
  583. package/dist/engine/permissions/permissionAccessParse.spec.d.ts.map +0 -1
  584. package/dist/engine/permissions/permissionAccessParse.spec.js +0 -17
  585. package/dist/engine/permissions/permissionAccessParse.spec.js.map +0 -1
  586. package/dist/engine/permissions/permissionApply.d.ts +0 -4
  587. package/dist/engine/permissions/permissionApply.d.ts.map +0 -1
  588. package/dist/engine/permissions/permissionApply.js +0 -10
  589. package/dist/engine/permissions/permissionApply.js.map +0 -1
  590. package/dist/engine/permissions/permissionApply.spec.d.ts +0 -2
  591. package/dist/engine/permissions/permissionApply.spec.d.ts.map +0 -1
  592. package/dist/engine/permissions/permissionApply.spec.js +0 -104
  593. package/dist/engine/permissions/permissionApply.spec.js.map +0 -1
  594. package/dist/engine/permissions/permissionClone.d.ts +0 -7
  595. package/dist/engine/permissions/permissionClone.d.ts.map +0 -1
  596. package/dist/engine/permissions/permissionClone.js +0 -12
  597. package/dist/engine/permissions/permissionClone.js.map +0 -1
  598. package/dist/engine/permissions/permissionClone.spec.d.ts +0 -2
  599. package/dist/engine/permissions/permissionClone.spec.d.ts.map +0 -1
  600. package/dist/engine/permissions/permissionClone.spec.js +0 -18
  601. package/dist/engine/permissions/permissionClone.spec.js.map +0 -1
  602. package/dist/engine/permissions/permissionDescribeDecision.d.ts +0 -3
  603. package/dist/engine/permissions/permissionDescribeDecision.d.ts.map +0 -1
  604. package/dist/engine/permissions/permissionDescribeDecision.js +0 -16
  605. package/dist/engine/permissions/permissionDescribeDecision.js.map +0 -1
  606. package/dist/engine/permissions/permissionDescribeDecision.spec.d.ts +0 -2
  607. package/dist/engine/permissions/permissionDescribeDecision.spec.d.ts.map +0 -1
  608. package/dist/engine/permissions/permissionDescribeDecision.spec.js +0 -17
  609. package/dist/engine/permissions/permissionDescribeDecision.spec.js.map +0 -1
  610. package/dist/engine/permissions/permissionEnsureDefaultFile.d.ts +0 -3
  611. package/dist/engine/permissions/permissionEnsureDefaultFile.d.ts.map +0 -1
  612. package/dist/engine/permissions/permissionEnsureDefaultFile.js +0 -7
  613. package/dist/engine/permissions/permissionEnsureDefaultFile.js.map +0 -1
  614. package/dist/engine/permissions/permissionEnsureDefaultFile.spec.d.ts +0 -2
  615. package/dist/engine/permissions/permissionEnsureDefaultFile.spec.d.ts.map +0 -1
  616. package/dist/engine/permissions/permissionEnsureDefaultFile.spec.js +0 -20
  617. package/dist/engine/permissions/permissionEnsureDefaultFile.spec.js.map +0 -1
  618. package/dist/engine/permissions/permissionFormatTag.d.ts +0 -3
  619. package/dist/engine/permissions/permissionFormatTag.d.ts.map +0 -1
  620. package/dist/engine/permissions/permissionFormatTag.js +0 -13
  621. package/dist/engine/permissions/permissionFormatTag.js.map +0 -1
  622. package/dist/engine/permissions/permissionFormatTag.spec.d.ts +0 -2
  623. package/dist/engine/permissions/permissionFormatTag.spec.d.ts.map +0 -1
  624. package/dist/engine/permissions/permissionFormatTag.spec.js +0 -17
  625. package/dist/engine/permissions/permissionFormatTag.spec.js.map +0 -1
  626. package/dist/engine/permissions/permissionMergeDefault.d.ts +0 -3
  627. package/dist/engine/permissions/permissionMergeDefault.d.ts.map +0 -1
  628. package/dist/engine/permissions/permissionMergeDefault.js +0 -14
  629. package/dist/engine/permissions/permissionMergeDefault.js.map +0 -1
  630. package/dist/engine/permissions/permissionMergeDefault.spec.d.ts +0 -2
  631. package/dist/engine/permissions/permissionMergeDefault.spec.d.ts.map +0 -1
  632. package/dist/engine/permissions/permissionMergeDefault.spec.js +0 -72
  633. package/dist/engine/permissions/permissionMergeDefault.spec.js.map +0 -1
  634. package/dist/engine/permissions/permissionTagsApply.d.ts +0 -7
  635. package/dist/engine/permissions/permissionTagsApply.d.ts.map +0 -1
  636. package/dist/engine/permissions/permissionTagsApply.js +0 -16
  637. package/dist/engine/permissions/permissionTagsApply.js.map +0 -1
  638. package/dist/engine/permissions/permissionTagsApply.spec.d.ts +0 -2
  639. package/dist/engine/permissions/permissionTagsApply.spec.d.ts.map +0 -1
  640. package/dist/engine/permissions/permissionTagsApply.spec.js +0 -22
  641. package/dist/engine/permissions/permissionTagsApply.spec.js.map +0 -1
  642. package/dist/engine/permissions/permissionTagsNormalize.d.ts +0 -6
  643. package/dist/engine/permissions/permissionTagsNormalize.d.ts.map +0 -1
  644. package/dist/engine/permissions/permissionTagsNormalize.js +0 -43
  645. package/dist/engine/permissions/permissionTagsNormalize.js.map +0 -1
  646. package/dist/engine/permissions/permissionTagsNormalize.spec.d.ts +0 -2
  647. package/dist/engine/permissions/permissionTagsNormalize.spec.d.ts.map +0 -1
  648. package/dist/engine/permissions/permissionTagsNormalize.spec.js +0 -19
  649. package/dist/engine/permissions/permissionTagsNormalize.spec.js.map +0 -1
  650. package/dist/engine/permissions/permissionTagsValidate.d.ts +0 -9
  651. package/dist/engine/permissions/permissionTagsValidate.d.ts.map +0 -1
  652. package/dist/engine/permissions/permissionTagsValidate.js +0 -18
  653. package/dist/engine/permissions/permissionTagsValidate.js.map +0 -1
  654. package/dist/engine/permissions/permissionTagsValidate.spec.d.ts +0 -2
  655. package/dist/engine/permissions/permissionTagsValidate.spec.d.ts.map +0 -1
  656. package/dist/engine/permissions/permissionTagsValidate.spec.js +0 -96
  657. package/dist/engine/permissions/permissionTagsValidate.spec.js.map +0 -1
  658. package/dist/engine/permissions/permissionWorkspaceGranted.d.ts +0 -7
  659. package/dist/engine/permissions/permissionWorkspaceGranted.d.ts.map +0 -1
  660. package/dist/engine/permissions/permissionWorkspaceGranted.js +0 -12
  661. package/dist/engine/permissions/permissionWorkspaceGranted.js.map +0 -1
  662. package/dist/engine/permissions/permissionWorkspaceGranted.spec.d.ts +0 -2
  663. package/dist/engine/permissions/permissionWorkspaceGranted.spec.d.ts.map +0 -1
  664. package/dist/engine/permissions/permissionWorkspaceGranted.spec.js +0 -35
  665. package/dist/engine/permissions/permissionWorkspaceGranted.spec.js.map +0 -1
  666. package/dist/engine/permissions/permissionWorkspacePathResolve.d.ts +0 -7
  667. package/dist/engine/permissions/permissionWorkspacePathResolve.d.ts.map +0 -1
  668. package/dist/engine/permissions/permissionWorkspacePathResolve.js +0 -42
  669. package/dist/engine/permissions/permissionWorkspacePathResolve.js.map +0 -1
  670. package/dist/engine/permissions/permissionWorkspacePathResolve.spec.d.ts +0 -2
  671. package/dist/engine/permissions/permissionWorkspacePathResolve.spec.d.ts.map +0 -1
  672. package/dist/engine/permissions/permissionWorkspacePathResolve.spec.js +0 -36
  673. package/dist/engine/permissions/permissionWorkspacePathResolve.spec.js.map +0 -1
  674. package/dist/engine/scheduling/execGateCheck.d.ts +0 -20
  675. package/dist/engine/scheduling/execGateCheck.d.ts.map +0 -1
  676. package/dist/engine/scheduling/execGateCheck.js +0 -137
  677. package/dist/engine/scheduling/execGateCheck.js.map +0 -1
  678. package/dist/engine/scheduling/execGateNormalize.d.ts +0 -7
  679. package/dist/engine/scheduling/execGateNormalize.d.ts.map +0 -1
  680. package/dist/engine/scheduling/execGateNormalize.js +0 -74
  681. package/dist/engine/scheduling/execGateNormalize.js.map +0 -1
  682. package/dist/engine/scheduling/execGateNormalize.spec.d.ts +0 -2
  683. package/dist/engine/scheduling/execGateNormalize.spec.d.ts.map +0 -1
  684. package/dist/engine/scheduling/execGateNormalize.spec.js +0 -31
  685. package/dist/engine/scheduling/execGateNormalize.spec.js.map +0 -1
  686. package/dist/engine/scheduling/execGateOutputAppend.d.ts +0 -7
  687. package/dist/engine/scheduling/execGateOutputAppend.d.ts.map +0 -1
  688. package/dist/engine/scheduling/execGateOutputAppend.js +0 -21
  689. package/dist/engine/scheduling/execGateOutputAppend.js.map +0 -1
  690. package/dist/engine/scheduling/execGateOutputAppend.spec.d.ts +0 -2
  691. package/dist/engine/scheduling/execGateOutputAppend.spec.d.ts.map +0 -1
  692. package/dist/engine/scheduling/execGateOutputAppend.spec.js +0 -24
  693. package/dist/engine/scheduling/execGateOutputAppend.spec.js.map +0 -1
  694. package/dist/engine/scheduling/execGateTypes.d.ts +0 -15
  695. package/dist/engine/scheduling/execGateTypes.d.ts.map +0 -1
  696. package/dist/engine/scheduling/execGateTypes.js +0 -2
  697. package/dist/engine/scheduling/execGateTypes.js.map +0 -1
  698. package/dist/engine/scheduling/gatePermissionRequest.d.ts +0 -21
  699. package/dist/engine/scheduling/gatePermissionRequest.d.ts.map +0 -1
  700. package/dist/engine/scheduling/gatePermissionRequest.js +0 -98
  701. package/dist/engine/scheduling/gatePermissionRequest.js.map +0 -1
  702. package/dist/engine/scheduling/gatePermissionRequest.spec.d.ts +0 -2
  703. package/dist/engine/scheduling/gatePermissionRequest.spec.d.ts.map +0 -1
  704. package/dist/engine/scheduling/gatePermissionRequest.spec.js +0 -126
  705. package/dist/engine/scheduling/gatePermissionRequest.spec.js.map +0 -1
  706. package/dist/engine/scheduling/gatePermissionsCheck.d.ts +0 -11
  707. package/dist/engine/scheduling/gatePermissionsCheck.d.ts.map +0 -1
  708. package/dist/engine/scheduling/gatePermissionsCheck.js +0 -58
  709. package/dist/engine/scheduling/gatePermissionsCheck.js.map +0 -1
  710. package/dist/engine/scheduling/gatePermissionsCheck.spec.d.ts +0 -2
  711. package/dist/engine/scheduling/gatePermissionsCheck.spec.d.ts.map +0 -1
  712. package/dist/engine/scheduling/gatePermissionsCheck.spec.js +0 -67
  713. package/dist/engine/scheduling/gatePermissionsCheck.spec.js.map +0 -1
  714. package/dist/plugins/dashboard/site/_next/static/chunks/app/automations/page-9df2c7b543034651.js +0 -1
  715. package/dist/prompts/CRON.md +0 -8
  716. /package/dist/plugins/dashboard/site/_next/static/{Qpa35HgGjxQYB6MqQG8XF → dkIRezLpmA4xSr6Bj5DQ6}/_buildManifest.js +0 -0
  717. /package/dist/plugins/dashboard/site/_next/static/{Qpa35HgGjxQYB6MqQG8XF → dkIRezLpmA4xSr6Bj5DQ6}/_ssgManifest.js +0 -0
  718. /package/dist/{engine/permissions → sandbox}/pathResolveSecure.d.ts +0 -0
  719. /package/dist/{engine/permissions → sandbox}/pathResolveSecure.js +0 -0
  720. /package/dist/{engine/permissions → sandbox}/pathResolveSecure.spec.d.ts +0 -0
  721. /package/dist/{engine/permissions → sandbox}/pathResolveSecure.spec.js +0 -0
  722. /package/dist/{engine/permissions → sandbox}/pathSanitize.d.ts +0 -0
  723. /package/dist/{engine/permissions → sandbox}/pathSanitize.js +0 -0
  724. /package/dist/{engine/permissions → sandbox}/pathSanitize.spec.d.ts +0 -0
@@ -1,98 +0,0 @@
1
- import path from "node:path";
2
- import { createId } from "@paralleldrive/cuid2";
3
- import { agentDescriptorLabel } from "../agents/ops/agentDescriptorLabel.js";
4
- import { agentDescriptorTargetResolve } from "../agents/ops/agentDescriptorTargetResolve.js";
5
- import { permissionAccessParse } from "../permissions/permissionAccessParse.js";
6
- const DEFAULT_TIMEOUT_MS = 15 * 60_000;
7
- /**
8
- * Requests missing gate permissions from the most-recent foreground user.
9
- * Expects: missing values are valid permission tags and agentId identifies the gated task agent.
10
- */
11
- export async function gatePermissionRequest(input) {
12
- if (input.missing.length === 0) {
13
- return { granted: true };
14
- }
15
- const foregroundAgentId = input.agentSystem.agentFor("most-recent-foreground");
16
- if (!foregroundAgentId) {
17
- throw new Error("No foreground agent available for permission requests.");
18
- }
19
- const foregroundDescriptor = input.agentSystem.getAgentDescriptor(foregroundAgentId);
20
- if (!foregroundDescriptor) {
21
- throw new Error("Foreground agent descriptor not found.");
22
- }
23
- const target = agentDescriptorTargetResolve(foregroundDescriptor);
24
- if (!target) {
25
- throw new Error("Foreground agent has no user target for permission requests.");
26
- }
27
- const connector = input.connectorRegistry.get(target.connector);
28
- if (!connector) {
29
- throw new Error("Connector not available for permission requests.");
30
- }
31
- const requesterDescriptor = input.agentSystem.getAgentDescriptor(input.agentId);
32
- if (!requesterDescriptor) {
33
- throw new Error("Requesting agent descriptor not found.");
34
- }
35
- const permissions = input.missing.map((permission) => {
36
- const access = permissionAccessParse(permission);
37
- if ((access.kind === "read" || access.kind === "write") && !path.isAbsolute(access.path)) {
38
- throw new Error("Path must be absolute.");
39
- }
40
- return { permission, access };
41
- });
42
- const reason = `Gate check for ${input.taskLabel} requires additional permissions.`;
43
- const message = [
44
- `Permission request for ${input.taskLabel}:`,
45
- ...permissions.map((entry) => `- ${entry.permission}`),
46
- `Reason: ${reason}`,
47
- "Scope: always"
48
- ].join("\n");
49
- const request = {
50
- token: createId(),
51
- agentId: input.agentId,
52
- reason,
53
- message,
54
- permissions,
55
- scope: "always",
56
- requester: {
57
- id: input.agentId,
58
- type: requesterDescriptor.type,
59
- label: agentDescriptorLabel(requesterDescriptor),
60
- kind: "background"
61
- }
62
- };
63
- if (connector.requestPermission) {
64
- await connector.requestPermission(target.targetId, request, {}, foregroundDescriptor);
65
- }
66
- else {
67
- await connector.sendMessage(target.targetId, { text: request.message });
68
- }
69
- const timeoutMs = input.timeoutMs ?? DEFAULT_TIMEOUT_MS;
70
- let decision;
71
- try {
72
- decision = await input.permissionRequestRegistry.register(request.token, timeoutMs);
73
- }
74
- catch (error) {
75
- const isTimeout = error instanceof Error && error.message === "Permission request timed out.";
76
- if (isTimeout) {
77
- return { granted: false };
78
- }
79
- throw error;
80
- }
81
- if (!decision.approved) {
82
- return { granted: false };
83
- }
84
- const targetAgentId = decision.agentId || input.agentId;
85
- const resolvedDecision = {
86
- ...decision,
87
- agentId: targetAgentId,
88
- scope: "always"
89
- };
90
- for (const entry of decision.permissions) {
91
- await input.agentSystem.grantPermission({ agentId: targetAgentId }, entry.access, {
92
- source: target.connector,
93
- decision: resolvedDecision
94
- });
95
- }
96
- return { granted: true };
97
- }
98
- //# sourceMappingURL=gatePermissionRequest.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gatePermissionRequest.js","sourceRoot":"","sources":["../../../sources/engine/scheduling/gatePermissionRequest.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=gatePermissionRequest.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gatePermissionRequest.spec.d.ts","sourceRoot":"","sources":["../../../sources/engine/scheduling/gatePermissionRequest.spec.ts"],"names":[],"mappings":""}
@@ -1,126 +0,0 @@
1
- import { describe, expect, it, vi } from "vitest";
2
- import { PermissionRequestRegistry } from "../modules/tools/permissionRequestRegistry.js";
3
- import { gatePermissionRequest } from "./gatePermissionRequest.js";
4
- describe("gatePermissionRequest", () => {
5
- it("requests permission, waits for approval, and grants missing access", async () => {
6
- const registry = new PermissionRequestRegistry();
7
- const grantPermission = vi.fn(async () => undefined);
8
- const requestPermission = vi.fn(async (_targetId, _request) => undefined);
9
- const pending = gatePermissionRequest({
10
- missing: ["@network"],
11
- taskLabel: "cron task alpha",
12
- agentId: "agent-1",
13
- agentSystem: agentSystemBuild({
14
- grantPermission
15
- }),
16
- connectorRegistry: connectorRegistryBuild({ requestPermission }),
17
- permissionRequestRegistry: registry
18
- });
19
- const request = await permissionRequestWait(requestPermission);
20
- await registryResolveWhenReady(registry, {
21
- token: request.token,
22
- agentId: request.agentId,
23
- approved: true,
24
- permissions: request.permissions,
25
- scope: "always"
26
- });
27
- const result = await pending;
28
- expect(result.granted).toBe(true);
29
- expect(request.scope).toBe("always");
30
- expect(grantPermission).toHaveBeenCalledTimes(1);
31
- expect(grantPermission).toHaveBeenCalledWith({ agentId: "agent-1" }, { kind: "network" }, expect.objectContaining({ source: "telegram" }));
32
- });
33
- it("returns false when permission is denied", async () => {
34
- const registry = new PermissionRequestRegistry();
35
- const grantPermission = vi.fn(async () => undefined);
36
- const requestPermission = vi.fn(async (_targetId, _request) => undefined);
37
- const pending = gatePermissionRequest({
38
- missing: ["@network"],
39
- taskLabel: "heartbeat task beta",
40
- agentId: "agent-1",
41
- agentSystem: agentSystemBuild({
42
- grantPermission
43
- }),
44
- connectorRegistry: connectorRegistryBuild({ requestPermission }),
45
- permissionRequestRegistry: registry
46
- });
47
- const request = await permissionRequestWait(requestPermission);
48
- await registryResolveWhenReady(registry, {
49
- token: request.token,
50
- agentId: request.agentId,
51
- approved: false,
52
- permissions: request.permissions,
53
- scope: "always"
54
- });
55
- const result = await pending;
56
- expect(result.granted).toBe(false);
57
- expect(grantPermission).not.toHaveBeenCalled();
58
- });
59
- it("returns false on timeout", async () => {
60
- const result = await gatePermissionRequest({
61
- missing: ["@network"],
62
- taskLabel: "cron task gamma",
63
- agentId: "agent-1",
64
- agentSystem: agentSystemBuild({}),
65
- connectorRegistry: connectorRegistryBuild({ requestPermission: vi.fn(async () => undefined) }),
66
- permissionRequestRegistry: new PermissionRequestRegistry(),
67
- timeoutMs: 10
68
- });
69
- expect(result.granted).toBe(false);
70
- });
71
- });
72
- function agentSystemBuild(overrides) {
73
- const descriptors = new Map([
74
- [
75
- "foreground-1",
76
- {
77
- type: "user",
78
- connector: "telegram",
79
- userId: "u1",
80
- channelId: "c1"
81
- }
82
- ],
83
- [
84
- "agent-1",
85
- {
86
- type: "system",
87
- tag: "cron"
88
- }
89
- ]
90
- ]);
91
- return {
92
- agentFor: vi.fn(() => "foreground-1"),
93
- getAgentDescriptor: vi.fn((agentId) => descriptors.get(agentId) ?? null),
94
- grantPermission: overrides.grantPermission ?? (async () => undefined)
95
- };
96
- }
97
- function connectorRegistryBuild(options) {
98
- return {
99
- get: vi.fn(() => ({
100
- capabilities: { sendText: true },
101
- onMessage: vi.fn(() => () => undefined),
102
- sendMessage: vi.fn(async () => undefined),
103
- requestPermission: options.requestPermission
104
- }))
105
- };
106
- }
107
- async function permissionRequestWait(requestPermission) {
108
- for (let attempt = 0; attempt < 50; attempt += 1) {
109
- const request = requestPermission.mock.calls[0]?.[1];
110
- if (request) {
111
- return request;
112
- }
113
- await new Promise((resolve) => setTimeout(resolve, 0));
114
- }
115
- throw new Error("Expected permission request payload");
116
- }
117
- async function registryResolveWhenReady(registry, decision) {
118
- for (let attempt = 0; attempt < 20; attempt += 1) {
119
- if (registry.resolve(decision.token, decision)) {
120
- return;
121
- }
122
- await Promise.resolve();
123
- }
124
- throw new Error("Permission token was never registered.");
125
- }
126
- //# sourceMappingURL=gatePermissionRequest.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gatePermissionRequest.spec.js","sourceRoot":"","sources":["../../../sources/engine/scheduling/gatePermissionRequest.spec.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- import type { SessionPermissions } from "@/types";
2
- export type GatePermissionsCheckResult = {
3
- allowed: boolean;
4
- missing: string[];
5
- };
6
- /**
7
- * Checks gate permission tags against the current permissions.
8
- * Expects: tags are @network, @events, @workspace, @read:<path>, or @write:<path>.
9
- */
10
- export declare function gatePermissionsCheck(permissions: SessionPermissions, tags?: string[]): Promise<GatePermissionsCheckResult>;
11
- //# sourceMappingURL=gatePermissionsCheck.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gatePermissionsCheck.d.ts","sourceRoot":"","sources":["../../../sources/engine/scheduling/gatePermissionsCheck.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAoB,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAGpE,MAAM,MAAM,0BAA0B,GAAG;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;AAEF;;;GAGG;AACH,wBAAsB,oBAAoB,CACtC,WAAW,EAAE,kBAAkB,EAC/B,IAAI,CAAC,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC,0BAA0B,CAAC,CAwBrC"}
@@ -1,58 +0,0 @@
1
- import { permissionAccessAllows } from "../permissions/permissionAccessAllows.js";
2
- /**
3
- * Checks gate permission tags against the current permissions.
4
- * Expects: tags are @network, @events, @workspace, @read:<path>, or @write:<path>.
5
- */
6
- export async function gatePermissionsCheck(permissions, tags) {
7
- if (!tags || tags.length === 0) {
8
- return { allowed: true, missing: [] };
9
- }
10
- const missing = [];
11
- for (const entry of tags) {
12
- const trimmed = entry.trim();
13
- if (!trimmed) {
14
- missing.push("<blank> (Permission tag cannot be blank.)");
15
- continue;
16
- }
17
- const parsed = parsePermissionAccess(trimmed);
18
- if (!parsed.access) {
19
- missing.push(`${trimmed} (${parsed.error ?? "Invalid gate permission."})`);
20
- continue;
21
- }
22
- const allowed = await permissionAccessAllows(permissions, parsed.access);
23
- if (!allowed) {
24
- missing.push(trimmed);
25
- }
26
- }
27
- return { allowed: missing.length === 0, missing };
28
- }
29
- function parsePermissionAccess(tag) {
30
- if (tag === "@network") {
31
- return { access: { kind: "network" } };
32
- }
33
- if (tag === "@events") {
34
- return { access: { kind: "events" } };
35
- }
36
- if (tag === "@workspace") {
37
- return { access: { kind: "workspace" } };
38
- }
39
- if (tag.startsWith("@read:")) {
40
- const pathValue = tag.slice("@read:".length).trim();
41
- if (!pathValue) {
42
- return { access: null, error: "Read permission requires a path." };
43
- }
44
- return { access: { kind: "read", path: pathValue } };
45
- }
46
- if (tag.startsWith("@write:")) {
47
- const pathValue = tag.slice("@write:".length).trim();
48
- if (!pathValue) {
49
- return { access: null, error: "Write permission requires a path." };
50
- }
51
- return { access: { kind: "write", path: pathValue } };
52
- }
53
- return {
54
- access: null,
55
- error: "Permission must be @network, @events, @workspace, @read:<path>, or @write:<path>."
56
- };
57
- }
58
- //# sourceMappingURL=gatePermissionsCheck.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gatePermissionsCheck.js","sourceRoot":"","sources":["../../../sources/engine/scheduling/gatePermissionsCheck.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAOlF;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACtC,WAA+B,EAC/B,IAAe;IAEf,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAC1C,CAAC;IAED,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;YAC1D,SAAS;QACb,CAAC;QACD,MAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,KAAK,MAAM,CAAC,KAAK,IAAI,0BAA0B,GAAG,CAAC,CAAC;YAC3E,SAAS;QACb,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACzE,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1B,CAAC;IACL,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;AACtD,CAAC;AAED,SAAS,qBAAqB,CAAC,GAAW;IACtC,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;QACrB,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC;IAC3C,CAAC;IACD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACpB,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC;IAC1C,CAAC;IACD,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;QACvB,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC;IAC7C,CAAC;IAED,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QACpD,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,kCAAkC,EAAE,CAAC;QACvE,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC;IACzD,CAAC;IAED,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QACrD,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,mCAAmC,EAAE,CAAC;QACxE,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC;IAC1D,CAAC;IAED,OAAO;QACH,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE,mFAAmF;KAC7F,CAAC;AACN,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=gatePermissionsCheck.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gatePermissionsCheck.spec.d.ts","sourceRoot":"","sources":["../../../sources/engine/scheduling/gatePermissionsCheck.spec.ts"],"names":[],"mappings":""}
@@ -1,67 +0,0 @@
1
- import { describe, expect, it } from "vitest";
2
- import { gatePermissionsCheck } from "./gatePermissionsCheck.js";
3
- const basePermissions = {
4
- workspaceDir: "/tmp",
5
- workingDir: "/tmp",
6
- readDirs: ["/tmp"],
7
- writeDirs: ["/tmp"],
8
- network: false,
9
- events: false
10
- };
11
- describe("gatePermissionsCheck", () => {
12
- it("allows empty tags", async () => {
13
- const result = await gatePermissionsCheck(basePermissions);
14
- expect(result).toEqual({ allowed: true, missing: [] });
15
- });
16
- it("denies network when not allowed", async () => {
17
- const result = await gatePermissionsCheck(basePermissions, ["@network"]);
18
- expect(result.allowed).toBe(false);
19
- expect(result.missing).toEqual(["@network"]);
20
- });
21
- it("allows network when permitted", async () => {
22
- const permissions = { ...basePermissions, network: true };
23
- const result = await gatePermissionsCheck(permissions, ["@network"]);
24
- expect(result).toEqual({ allowed: true, missing: [] });
25
- });
26
- it("denies events when not allowed", async () => {
27
- const result = await gatePermissionsCheck(basePermissions, ["@events"]);
28
- expect(result.allowed).toBe(false);
29
- expect(result.missing).toEqual(["@events"]);
30
- });
31
- it("allows events when permitted", async () => {
32
- const permissions = { ...basePermissions, events: true };
33
- const result = await gatePermissionsCheck(permissions, ["@events"]);
34
- expect(result).toEqual({ allowed: true, missing: [] });
35
- });
36
- it("denies workspace when not allowed", async () => {
37
- const appPermissions = {
38
- workspaceDir: "/tmp",
39
- workingDir: "/tmp/apps/my-app/data",
40
- readDirs: ["/tmp"],
41
- writeDirs: ["/tmp/apps/my-app/data"],
42
- network: false,
43
- events: false
44
- };
45
- const result = await gatePermissionsCheck(appPermissions, ["@workspace"]);
46
- expect(result.allowed).toBe(false);
47
- expect(result.missing).toEqual(["@workspace"]);
48
- });
49
- it("allows workspace when permitted", async () => {
50
- const permissions = { ...basePermissions };
51
- const result = await gatePermissionsCheck(permissions, ["@workspace"]);
52
- expect(result).toEqual({ allowed: true, missing: [] });
53
- });
54
- it("denies paths outside allowed roots", async () => {
55
- const result = await gatePermissionsCheck(basePermissions, ["@read:/etc"]);
56
- expect(result.allowed).toBe(false);
57
- expect(result.missing).toEqual(["@read:/etc"]);
58
- });
59
- it("reports invalid permission tags", async () => {
60
- const result = await gatePermissionsCheck(basePermissions, ["@banana"]);
61
- expect(result.allowed).toBe(false);
62
- expect(result.missing).toEqual([
63
- "@banana (Permission must be @network, @events, @workspace, @read:<path>, or @write:<path>.)"
64
- ]);
65
- });
66
- });
67
- //# sourceMappingURL=gatePermissionsCheck.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gatePermissionsCheck.spec.js","sourceRoot":"","sources":["../../../sources/engine/scheduling/gatePermissionsCheck.spec.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[371],{67969:function(e,t,a){Promise.resolve().then(a.bind(a,87268))},87268:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return k}});var s=a(27573),n=a(7653),r=a(86742),l=a(2470),i=a(50027),c=a(50326);let o=(0,c.Z)("HeartPulse",[["path",{d:"M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z",key:"c3ymky"}],["path",{d:"M3.22 12H9.5l.5-1 2 4.5 2-7 1.5 3.5h5.27",key:"1uw2ng"}]]),d=(0,c.Z)("Shield",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]]);var u=a(20942);let m=(0,c.Z)("Repeat",[["path",{d:"m17 2 4 4-4 4",key:"nntrym"}],["path",{d:"M3 11v-1a4 4 0 0 1 4-4h14",key:"84bu3i"}],["path",{d:"m7 22-4-4 4-4",key:"1wqhfi"}],["path",{d:"M21 13v1a4 4 0 0 1-4 4H3",key:"1rx37r"}]]);var x=a(94883),f=a(87164),h=a(74997);let g=(0,c.Z)("FileText",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);var p=a(75351),v=a(48157),j=a(82041),b=a(16273),N=a(26798),y=a(8807),w=a(90497);function k(){let[e,t]=(0,n.useState)([]),[a,c]=(0,n.useState)([]),[u,m]=(0,n.useState)(!1),[x,f]=(0,n.useState)(null),[h,g]=(0,n.useState)(null),p=(0,n.useCallback)(async()=>{m(!0),f(null);try{let[e,a]=await Promise.all([(0,w.fP)(),(0,w.sZ)()]);t(e),c(a),g(new Date)}catch(e){f(e instanceof Error?e.message:"Failed to load automations")}finally{m(!1)}},[]);(0,n.useEffect)(()=>{p()},[p]);let j=(0,n.useMemo)(()=>e.filter(e=>!e.deleteAfterRun).length,[e]),N=(0,n.useMemo)(()=>e.filter(e=>e.deleteAfterRun).length,[e]),k=(0,n.useMemo)(()=>e.filter(e=>e.gate).length+a.filter(e=>e.gate).length,[e,a]),M=e.length+a.length;return(0,s.jsx)(v.r,{title:"Automations",subtitle:"Cron schedules, heartbeat tasks, prompts, and execution details.",toolbar:(0,s.jsxs)(b.z,{onClick:()=>void p(),disabled:u,className:"gap-2",children:[(0,s.jsx)(r.Z,{className:u?"h-4 w-4 animate-spin":"h-4 w-4"}),"Refresh"]}),status:(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("span",{children:h?"Last synced ".concat(h.toLocaleTimeString()):"Awaiting first sync"}),x?(0,s.jsx)("span",{className:"rounded-full border border-destructive/40 bg-destructive/10 px-2.5 py-1 text-destructive",children:x}):(0,s.jsxs)("span",{children:[M," tasks registered"]})]}),children:(0,s.jsxs)("div",{className:"flex flex-1 flex-col gap-6 px-4 py-6 lg:px-6",children:[(0,s.jsxs)("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-4",children:[(0,s.jsx)(Z,{label:"Total tasks",value:M,detail:"Automations registered",icon:(0,s.jsx)(l.Z,{className:"h-5 w-5"}),tone:"primary"}),(0,s.jsx)(Z,{label:"Cron",value:e.length,detail:"".concat(j," recurring / ").concat(N," one-off"),icon:(0,s.jsx)(i.Z,{className:"h-5 w-5"}),tone:"amber"}),(0,s.jsx)(Z,{label:"Heartbeat",value:a.length,detail:"Batch interval tasks",icon:(0,s.jsx)(o,{className:"h-5 w-5"}),tone:"rose"}),(0,s.jsx)(Z,{label:"Gated",value:k,detail:"Tasks with gate conditions",icon:(0,s.jsx)(d,{className:"h-5 w-5"}),tone:"emerald"})]}),(0,s.jsxs)(y.mQ,{defaultValue:"cron",className:"flex flex-col gap-4",children:[(0,s.jsxs)(y.dr,{className:"self-start",children:[(0,s.jsxs)(y.SP,{value:"cron",className:"gap-2",children:[(0,s.jsx)(i.Z,{className:"h-3.5 w-3.5"}),"Cron tasks (",e.length,")"]}),(0,s.jsxs)(y.SP,{value:"heartbeat",className:"gap-2",children:[(0,s.jsx)(o,{className:"h-3.5 w-3.5"}),"Heartbeat tasks (",a.length,")"]})]}),(0,s.jsx)(y.nU,{value:"cron",className:"mt-0",children:e.length?(0,s.jsx)("div",{className:"grid gap-4",children:e.map((e,t)=>{var a;return(0,s.jsx)(C,{task:e},null!==(a=e.id)&&void 0!==a?a:"cron-".concat(t))})}):(0,s.jsx)(T,{icon:(0,s.jsx)(i.Z,{className:"h-8 w-8"}),label:"No cron tasks scheduled"})}),(0,s.jsx)(y.nU,{value:"heartbeat",className:"mt-0",children:a.length?(0,s.jsx)("div",{className:"grid gap-4",children:a.map(e=>(0,s.jsx)(R,{task:e},e.id))}):(0,s.jsx)(T,{icon:(0,s.jsx)(o,{className:"h-8 w-8"}),label:"No heartbeat tasks found"})})]})]})})}let M={primary:{bg:"bg-primary/10",text:"text-primary",gradient:"from-primary/10 via-card to-card"},amber:{bg:"bg-amber-500/10",text:"text-amber-600 dark:text-amber-400",gradient:"from-amber-500/10 via-card to-card"},rose:{bg:"bg-rose-500/10",text:"text-rose-600 dark:text-rose-400",gradient:"from-rose-500/10 via-card to-card"},emerald:{bg:"bg-emerald-500/10",text:"text-emerald-600 dark:text-emerald-400",gradient:"from-emerald-500/10 via-card to-card"}};function Z(e){let{label:t,value:a,detail:n,icon:r,tone:l}=e,i=M[l];return(0,s.jsxs)(N.Zb,{className:"relative overflow-hidden",children:[(0,s.jsx)("div",{className:"absolute inset-0 bg-gradient-to-br ".concat(i.gradient)}),(0,s.jsxs)(N.Ol,{className:"relative flex flex-row items-center justify-between pb-2",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)(N.SZ,{className:"text-xs",children:t}),(0,s.jsx)(N.ll,{className:"text-3xl font-semibold tabular-nums",children:a})]}),(0,s.jsx)("div",{className:"flex h-10 w-10 items-center justify-center rounded-full ".concat(i.bg," ").concat(i.text),children:r})]}),(0,s.jsx)(N.aY,{className:"relative text-xs text-muted-foreground",children:n})]})}function C(e){var t,a,r,l;let{task:c}=e,[o,v]=(0,n.useState)(!1),b=!1===c.enabled;return(0,s.jsxs)(N.Zb,{className:"transition-shadow hover:shadow-md ".concat(b?"opacity-60":""),children:[(0,s.jsx)(N.Ol,{className:"cursor-pointer select-none",onClick:()=>v(e=>!e),children:(0,s.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,s.jsxs)("div",{className:"flex items-start gap-3 min-w-0",children:[(0,s.jsx)("div",{className:"mt-0.5 flex h-9 w-9 shrink-0 items-center justify-center rounded-lg bg-amber-500/10 text-amber-600 dark:text-amber-400",children:(0,s.jsx)(i.Z,{className:"h-4 w-4"})}),(0,s.jsxs)("div",{className:"min-w-0",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)(N.ll,{className:"text-base truncate",children:null!==(a=null!==(t=c.name)&&void 0!==t?t:c.id)&&void 0!==a?a:"Unnamed task"}),b&&(0,s.jsx)(j.C,{variant:"secondary",className:"text-[10px] uppercase",children:"disabled"})]}),c.description&&(0,s.jsx)(N.SZ,{className:"mt-0.5 line-clamp-2",children:c.description}),(0,s.jsxs)("div",{className:"mt-2 flex flex-wrap items-center gap-3 text-xs text-muted-foreground",children:[(0,s.jsxs)("span",{className:"flex items-center gap-1.5 font-mono",children:[(0,s.jsx)(u.Z,{className:"h-3 w-3"}),null!==(r=c.schedule)&&void 0!==r?r:"custom"]}),(0,s.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,s.jsx)(m,{className:"h-3 w-3"}),c.deleteAfterRun?"Run once":"Recurring"]}),c.lastRunAt&&(0,s.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,s.jsx)(x.Z,{className:"h-3 w-3"}),"Last run ",D(c.lastRunAt)]}),c.gate&&(0,s.jsxs)(j.C,{variant:"outline",className:"gap-1 text-[10px]",children:[(0,s.jsx)(d,{className:"h-2.5 w-2.5"})," Gated"]})]})]})]}),(0,s.jsx)("button",{className:"mt-1 shrink-0 rounded p-1 text-muted-foreground hover:bg-muted",children:o?(0,s.jsx)(f.Z,{className:"h-4 w-4"}):(0,s.jsx)(h.Z,{className:"h-4 w-4"})})]})}),o&&(0,s.jsxs)(N.aY,{className:"border-t pt-4 space-y-4",children:[c.prompt&&(0,s.jsxs)("div",{children:[(0,s.jsxs)("div",{className:"mb-2 flex items-center gap-2 text-xs font-medium uppercase tracking-wide text-muted-foreground",children:[(0,s.jsx)(g,{className:"h-3.5 w-3.5"}),"Prompt"]}),(0,s.jsx)("pre",{className:"max-h-72 overflow-auto rounded-lg border bg-muted/50 p-4 text-xs leading-relaxed text-foreground whitespace-pre-wrap break-words font-mono",children:c.prompt})]}),(0,s.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3",children:[(0,s.jsx)(A,{label:"Task ID",value:c.id,mono:!0}),(0,s.jsx)(A,{label:"Schedule",value:null!==(l=c.schedule)&&void 0!==l?l:"custom",mono:!0}),(0,s.jsx)(A,{label:"Mode",value:c.deleteAfterRun?"One-off (delete after run)":"Recurring"}),c.agentId&&(0,s.jsx)(A,{label:"Target agent",value:c.agentId,mono:!0}),c.lastRunAt&&(0,s.jsx)(A,{label:"Last run",value:V(c.lastRunAt)}),!1===c.enabled&&(0,s.jsx)(A,{label:"Enabled",value:"No"})]}),c.gate&&(0,s.jsx)(P,{gate:c.gate}),(c.taskPath||c.memoryPath||c.filesPath)&&(0,s.jsxs)("div",{children:[(0,s.jsxs)("div",{className:"mb-2 flex items-center gap-2 text-xs font-medium uppercase tracking-wide text-muted-foreground",children:[(0,s.jsx)(p.Z,{className:"h-3.5 w-3.5"}),"File paths"]}),(0,s.jsxs)("div",{className:"space-y-1.5",children:[c.taskPath&&(0,s.jsx)(S,{label:"Task",value:c.taskPath}),c.memoryPath&&(0,s.jsx)(S,{label:"Memory",value:c.memoryPath}),c.filesPath&&(0,s.jsx)(S,{label:"Files",value:c.filesPath})]})]})]})]})}function R(e){let{task:t}=e,[a,r]=(0,n.useState)(!1);return(0,s.jsxs)(N.Zb,{className:"transition-shadow hover:shadow-md",children:[(0,s.jsx)(N.Ol,{className:"cursor-pointer select-none",onClick:()=>r(e=>!e),children:(0,s.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,s.jsxs)("div",{className:"flex items-start gap-3 min-w-0",children:[(0,s.jsx)("div",{className:"mt-0.5 flex h-9 w-9 shrink-0 items-center justify-center rounded-lg bg-rose-500/10 text-rose-600 dark:text-rose-400",children:(0,s.jsx)(o,{className:"h-4 w-4"})}),(0,s.jsxs)("div",{className:"min-w-0",children:[(0,s.jsx)(N.ll,{className:"text-base truncate",children:t.title}),(0,s.jsxs)("div",{className:"mt-2 flex flex-wrap items-center gap-3 text-xs text-muted-foreground",children:[(0,s.jsx)("span",{className:"font-mono",children:t.id}),t.lastRunAt?(0,s.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,s.jsx)(x.Z,{className:"h-3 w-3"}),"Last run ",D(t.lastRunAt)]}):(0,s.jsx)("span",{className:"italic",children:"Never run"}),t.gate?(0,s.jsxs)(j.C,{variant:"outline",className:"gap-1 text-[10px]",children:[(0,s.jsx)(d,{className:"h-2.5 w-2.5"})," Gated"]}):(0,s.jsx)(j.C,{variant:"outline",className:"text-[10px]",children:"Always"})]})]})]}),(0,s.jsx)("button",{className:"mt-1 shrink-0 rounded p-1 text-muted-foreground hover:bg-muted",children:a?(0,s.jsx)(f.Z,{className:"h-4 w-4"}):(0,s.jsx)(h.Z,{className:"h-4 w-4"})})]})}),a&&(0,s.jsxs)(N.aY,{className:"border-t pt-4 space-y-4",children:[t.prompt&&(0,s.jsxs)("div",{children:[(0,s.jsxs)("div",{className:"mb-2 flex items-center gap-2 text-xs font-medium uppercase tracking-wide text-muted-foreground",children:[(0,s.jsx)(g,{className:"h-3.5 w-3.5"}),"Prompt"]}),(0,s.jsx)("pre",{className:"max-h-72 overflow-auto rounded-lg border bg-muted/50 p-4 text-xs leading-relaxed text-foreground whitespace-pre-wrap break-words font-mono",children:t.prompt})]}),(0,s.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3",children:[(0,s.jsx)(A,{label:"Task ID",value:t.id,mono:!0}),t.lastRunAt&&(0,s.jsx)(A,{label:"Last run",value:V(t.lastRunAt)}),t.filePath&&(0,s.jsx)(A,{label:"File",value:t.filePath,mono:!0})]}),t.gate&&(0,s.jsx)(P,{gate:t.gate})]})]})}function P(e){let{gate:t}=e;return(0,s.jsxs)("div",{children:[(0,s.jsxs)("div",{className:"mb-2 flex items-center gap-2 text-xs font-medium uppercase tracking-wide text-muted-foreground",children:[(0,s.jsx)(d,{className:"h-3.5 w-3.5"}),"Gate condition"]}),(0,s.jsxs)("div",{className:"rounded-lg border bg-muted/30 p-3 space-y-2",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[(0,s.jsx)("span",{className:"text-muted-foreground",children:"Command:"}),(0,s.jsx)("code",{className:"rounded bg-muted px-2 py-0.5 font-mono text-foreground",children:t.command})]}),t.cwd&&(0,s.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[(0,s.jsx)("span",{className:"text-muted-foreground",children:"Working directory:"}),(0,s.jsx)("code",{className:"rounded bg-muted px-2 py-0.5 font-mono text-foreground",children:t.cwd})]}),t.timeoutMs&&(0,s.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[(0,s.jsx)("span",{className:"text-muted-foreground",children:"Timeout:"}),(0,s.jsxs)("span",{children:[t.timeoutMs,"ms"]})]}),t.permissions&&t.permissions.length>0&&(0,s.jsxs)("div",{className:"flex items-start gap-2 text-xs",children:[(0,s.jsx)("span",{className:"text-muted-foreground shrink-0",children:"Permissions:"}),(0,s.jsx)("div",{className:"flex flex-wrap gap-1",children:t.permissions.map(e=>(0,s.jsx)(j.C,{variant:"outline",className:"text-[10px] font-mono",children:e},e))})]})]})]})}function A(e){let{label:t,value:a,mono:n}=e;return(0,s.jsxs)("div",{className:"rounded-lg border bg-background/60 px-3 py-2.5",children:[(0,s.jsx)("div",{className:"text-[10px] font-medium uppercase tracking-wider text-muted-foreground",children:t}),(0,s.jsx)("div",{className:"mt-0.5 text-sm text-foreground truncate ".concat(n?"font-mono":""),children:a})]})}function S(e){let{label:t,value:a}=e;return(0,s.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[(0,s.jsxs)("span",{className:"w-16 shrink-0 text-muted-foreground",children:[t,":"]}),(0,s.jsx)("code",{className:"truncate rounded bg-muted px-2 py-0.5 font-mono text-foreground",children:a})]})}function T(e){let{icon:t,label:a}=e;return(0,s.jsx)(N.Zb,{children:(0,s.jsxs)(N.aY,{className:"flex flex-col items-center justify-center gap-3 py-16 text-muted-foreground",children:[(0,s.jsx)("div",{className:"flex h-16 w-16 items-center justify-center rounded-full bg-muted/50",children:t}),(0,s.jsx)("span",{className:"text-sm",children:a})]})})}function V(e){let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function D(e){let t=new Date(e);if(Number.isNaN(t.getTime()))return e;let a=Math.floor((Date.now()-t.getTime())/6e4);if(a<1)return"just now";if(a<60)return"".concat(a,"m ago");let s=Math.floor(a/60);return s<24?"".concat(s,"h ago"):"".concat(Math.floor(s/24),"d ago")}},82041:function(e,t,a){"use strict";a.d(t,{C:function(){return i}});var s=a(27573);a(7653);var n=a(49289),r=a(19369);let l=(0,n.j)("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-medium transition-colors",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground",secondary:"border-transparent bg-secondary text-secondary-foreground",destructive:"border-transparent bg-destructive text-destructive-foreground",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function i(e){let{className:t,variant:a,...n}=e;return(0,s.jsx)("div",{className:(0,r.cn)(l({variant:a}),t),...n})}},8807:function(e,t,a){"use strict";a.d(t,{mQ:function(){return P},nU:function(){return T},dr:function(){return A},SP:function(){return S}});var s=a(27573),n=a(7653),r=a(46196),l=a(99933),i=a(48684),c=a(65622),o=a(78378),d=a(21004),u=a(47178),m=a(17321),x="Tabs",[f,h]=(0,l.b)(x,[i.Pc]),g=(0,i.Pc)(),[p,v]=f(x),j=n.forwardRef((e,t)=>{let{__scopeTabs:a,value:n,onValueChange:r,defaultValue:l,orientation:i="horizontal",dir:c,activationMode:f="automatic",...h}=e,g=(0,d.gm)(c),[v,j]=(0,u.T)({prop:n,onChange:r,defaultProp:null!=l?l:"",caller:x});return(0,s.jsx)(p,{scope:a,baseId:(0,m.M)(),value:v,onValueChange:j,orientation:i,dir:g,activationMode:f,children:(0,s.jsx)(o.WV.div,{dir:g,"data-orientation":i,...h,ref:t})})});j.displayName=x;var b="TabsList",N=n.forwardRef((e,t)=>{let{__scopeTabs:a,loop:n=!0,...r}=e,l=v(b,a),c=g(a);return(0,s.jsx)(i.fC,{asChild:!0,...c,orientation:l.orientation,dir:l.dir,loop:n,children:(0,s.jsx)(o.WV.div,{role:"tablist","aria-orientation":l.orientation,...r,ref:t})})});N.displayName=b;var y="TabsTrigger",w=n.forwardRef((e,t)=>{let{__scopeTabs:a,value:n,disabled:l=!1,...c}=e,d=v(y,a),u=g(a),m=Z(d.baseId,n),x=C(d.baseId,n),f=n===d.value;return(0,s.jsx)(i.ck,{asChild:!0,...u,focusable:!l,active:f,children:(0,s.jsx)(o.WV.button,{type:"button",role:"tab","aria-selected":f,"aria-controls":x,"data-state":f?"active":"inactive","data-disabled":l?"":void 0,disabled:l,id:m,...c,ref:t,onMouseDown:(0,r.Mj)(e.onMouseDown,e=>{l||0!==e.button||!1!==e.ctrlKey?e.preventDefault():d.onValueChange(n)}),onKeyDown:(0,r.Mj)(e.onKeyDown,e=>{[" ","Enter"].includes(e.key)&&d.onValueChange(n)}),onFocus:(0,r.Mj)(e.onFocus,()=>{let e="manual"!==d.activationMode;f||l||!e||d.onValueChange(n)})})})});w.displayName=y;var k="TabsContent",M=n.forwardRef((e,t)=>{let{__scopeTabs:a,value:r,forceMount:l,children:i,...d}=e,u=v(k,a),m=Z(u.baseId,r),x=C(u.baseId,r),f=r===u.value,h=n.useRef(f);return n.useEffect(()=>{let e=requestAnimationFrame(()=>h.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,s.jsx)(c.z,{present:l||f,children:a=>{let{present:n}=a;return(0,s.jsx)(o.WV.div,{"data-state":f?"active":"inactive","data-orientation":u.orientation,role:"tabpanel","aria-labelledby":m,hidden:!n,id:x,tabIndex:0,...d,ref:t,style:{...e.style,animationDuration:h.current?"0s":void 0},children:n&&i})}})});function Z(e,t){return"".concat(e,"-trigger-").concat(t)}function C(e,t){return"".concat(e,"-content-").concat(t)}M.displayName=k;var R=a(19369);let P=j,A=n.forwardRef((e,t)=>{let{className:a,...n}=e;return(0,s.jsx)(N,{ref:t,className:(0,R.cn)("inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground",a),...n})});A.displayName=N.displayName;let S=n.forwardRef((e,t)=>{let{className:a,...n}=e;return(0,s.jsx)(w,{ref:t,className:(0,R.cn)("inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm",a),...n})});S.displayName=w.displayName;let T=n.forwardRef((e,t)=>{let{className:a,...n}=e;return(0,s.jsx)(M,{ref:t,className:(0,R.cn)("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",a),...n})});T.displayName=M.displayName},90497:function(e,t,a){"use strict";async function s(e){let t=await fetch(e);if(!t.ok)throw Error("Request failed: ".concat(t.status));return await t.json()}async function n(){var e;return null!==(e=(await s("/api/v1/engine/status")).status)&&void 0!==e?e:{}}async function r(){var e;return null!==(e=(await s("/api/v1/engine/cron/tasks")).tasks)&&void 0!==e?e:[]}async function l(){var e;return null!==(e=(await s("/api/v1/engine/heartbeat/tasks")).tasks)&&void 0!==e?e:[]}async function i(){var e;return null!==(e=(await s("/api/v1/engine/processes")).processes)&&void 0!==e?e:[]}async function c(e){let t=await fetch("/api/v1/engine/signals/generate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),a=await t.json();if(!t.ok||!a.ok){var s;throw Error(null!==(s=a.error)&&void 0!==s?s:"Request failed: ".concat(t.status))}return a.signal}async function o(){var e;return null!==(e=(await s("/api/v1/engine/signals/subscriptions")).subscriptions)&&void 0!==e?e:[]}async function d(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:200,a=new URLSearchParams({limit:String(t)});return null!==(e=(await s("/api/v1/engine/signals/events?".concat(a))).events)&&void 0!==e?e:[]}async function u(){var e;return null!==(e=(await s("/api/v1/engine/agents/background")).agents)&&void 0!==e?e:[]}async function m(){var e;return null!==(e=(await s("/api/v1/engine/agents")).agents)&&void 0!==e?e:[]}async function x(e){var t;let a=encodeURIComponent(e);return null!==(t=(await s("/api/v1/engine/agents/".concat(a,"/history"))).records)&&void 0!==t?t:[]}a.d(t,{Ip:function(){return d},Sj:function(){return m},Sk:function(){return o},ab:function(){return x},fP:function(){return r},jg:function(){return n},oI:function(){return u},sB:function(){return c},sZ:function(){return l},x3:function(){return i}})},2470:function(e,t,a){"use strict";a.d(t,{Z:function(){return s}});let s=(0,a(50326).Z)("AlarmClock",[["circle",{cx:"12",cy:"13",r:"8",key:"3y4lt7"}],["path",{d:"M12 9v4l2 2",key:"1c63tq"}],["path",{d:"M5 3 2 6",key:"18tl5t"}],["path",{d:"m22 6-3-3",key:"1opdir"}],["path",{d:"M6.38 18.7 4 21",key:"17xu3x"}],["path",{d:"M17.64 18.67 20 21",key:"kv2oe2"}]])},20942:function(e,t,a){"use strict";a.d(t,{Z:function(){return s}});let s=(0,a(50326).Z)("Cable",[["path",{d:"M17 21v-2a1 1 0 0 1-1-1v-1a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v1a1 1 0 0 1-1 1",key:"10bnsj"}],["path",{d:"M19 15V6.5a1 1 0 0 0-7 0v11a1 1 0 0 1-7 0V9",key:"1eqmu1"}],["path",{d:"M21 21v-2h-4",key:"14zm7j"}],["path",{d:"M3 5h4V3",key:"z442eg"}],["path",{d:"M7 5a1 1 0 0 1 1 1v1a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6a1 1 0 0 1 1-1V3",key:"ebdjd7"}]])},87164:function(e,t,a){"use strict";a.d(t,{Z:function(){return s}});let s=(0,a(50326).Z)("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]])},94883:function(e,t,a){"use strict";a.d(t,{Z:function(){return s}});let s=(0,a(50326).Z)("Zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]])}},function(e){e.O(0,[315,668,293,528,744],function(){return e(e.s=67969)}),_N_E=e.O()}]);
@@ -1,8 +0,0 @@
1
- # CRON WORKER
2
-
3
- You are the Daycare cron worker.
4
-
5
- - Treat incoming signal events as scheduler-triggered cron tasks.
6
- - Parse the signal payload and execute the task prompt carefully.
7
- - Respect granted permissions and avoid requesting unnecessary escalation.
8
- - When reporting results, keep output concise and actionable.