@nocobase/app-plugin-agents 0.1.0-beta.1 → 0.1.0-beta.11

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 (649) hide show
  1. package/CHANGELOG.md +398 -0
  2. package/README.md +129 -67
  3. package/dist/client/api/client.d.ts +25 -17
  4. package/dist/client/api/client.d.ts.map +1 -1
  5. package/dist/client/api/client.js +29 -27
  6. package/dist/client/api/client.js.map +1 -1
  7. package/dist/client/api/keys.d.ts +1 -1
  8. package/dist/client/api/keys.d.ts.map +1 -1
  9. package/dist/client/api/keys.js +1 -1
  10. package/dist/client/api/keys.js.map +1 -1
  11. package/dist/client/chat/api.d.ts +2 -7
  12. package/dist/client/chat/api.d.ts.map +1 -1
  13. package/dist/client/chat/api.js +0 -7
  14. package/dist/client/chat/api.js.map +1 -1
  15. package/dist/client/chat/consultation-identity.d.ts +7 -0
  16. package/dist/client/chat/consultation-identity.d.ts.map +1 -0
  17. package/dist/client/chat/consultation-identity.js +39 -0
  18. package/dist/client/chat/consultation-identity.js.map +1 -0
  19. package/dist/client/chat/message-model.d.ts +4 -2
  20. package/dist/client/chat/message-model.d.ts.map +1 -1
  21. package/dist/client/chat/message-model.js +28 -3
  22. package/dist/client/chat/message-model.js.map +1 -1
  23. package/dist/client/chat/use-chat.d.ts +2 -10
  24. package/dist/client/chat/use-chat.d.ts.map +1 -1
  25. package/dist/client/chat/use-chat.js +3 -10
  26. package/dist/client/chat/use-chat.js.map +1 -1
  27. package/dist/client/chat.d.ts +4 -1
  28. package/dist/client/chat.d.ts.map +1 -1
  29. package/dist/client/chat.js +3 -0
  30. package/dist/client/chat.js.map +1 -1
  31. package/dist/client/components/agent-picker.d.ts +6 -23
  32. package/dist/client/components/agent-picker.d.ts.map +1 -1
  33. package/dist/client/components/agent-picker.js +19 -39
  34. package/dist/client/components/agent-picker.js.map +1 -1
  35. package/dist/client/components/variables/variable-dialogs.d.ts +6 -1
  36. package/dist/client/components/variables/variable-dialogs.d.ts.map +1 -1
  37. package/dist/client/components/variables/variable-dialogs.js +27 -11
  38. package/dist/client/components/variables/variable-dialogs.js.map +1 -1
  39. package/dist/client/components/variables/variables-panel.d.ts.map +1 -1
  40. package/dist/client/components/variables/variables-panel.js +9 -2
  41. package/dist/client/components/variables/variables-panel.js.map +1 -1
  42. package/dist/client/hooks/use-agent-picker-labels.d.ts.map +1 -1
  43. package/dist/client/hooks/use-agent-picker-labels.js +3 -12
  44. package/dist/client/hooks/use-agent-picker-labels.js.map +1 -1
  45. package/dist/client/kit.d.ts +9 -12
  46. package/dist/client/kit.d.ts.map +1 -1
  47. package/dist/client/kit.js +12 -14
  48. package/dist/client/kit.js.map +1 -1
  49. package/dist/client/lib/agents.d.ts +5 -13
  50. package/dist/client/lib/agents.d.ts.map +1 -1
  51. package/dist/client/lib/agents.js +17 -32
  52. package/dist/client/lib/agents.js.map +1 -1
  53. package/dist/client/lib/install.js +1 -1
  54. package/dist/client/locales/chat.en-US.d.ts +9 -22
  55. package/dist/client/locales/chat.en-US.d.ts.map +1 -1
  56. package/dist/client/locales/chat.en-US.js +13 -25
  57. package/dist/client/locales/chat.en-US.js.map +1 -1
  58. package/dist/client/locales/chat.zh-CN.d.ts.map +1 -1
  59. package/dist/client/locales/chat.zh-CN.js +10 -22
  60. package/dist/client/locales/chat.zh-CN.js.map +1 -1
  61. package/dist/client/locales/en-US.d.ts +101 -219
  62. package/dist/client/locales/en-US.d.ts.map +1 -1
  63. package/dist/client/locales/en-US.js +106 -219
  64. package/dist/client/locales/en-US.js.map +1 -1
  65. package/dist/client/locales/runWait.en-US.d.ts +38 -0
  66. package/dist/client/locales/runWait.en-US.d.ts.map +1 -0
  67. package/dist/client/locales/runWait.en-US.js +37 -0
  68. package/dist/client/locales/runWait.en-US.js.map +1 -0
  69. package/dist/client/locales/runWait.zh-CN.d.ts +5 -0
  70. package/dist/client/locales/runWait.zh-CN.d.ts.map +1 -0
  71. package/dist/client/locales/runWait.zh-CN.js +32 -0
  72. package/dist/client/locales/runWait.zh-CN.js.map +1 -0
  73. package/dist/client/locales/runtimes.en-US.d.ts +54 -0
  74. package/dist/client/locales/runtimes.en-US.d.ts.map +1 -1
  75. package/dist/client/locales/runtimes.en-US.js +57 -3
  76. package/dist/client/locales/runtimes.en-US.js.map +1 -1
  77. package/dist/client/locales/runtimes.zh-CN.d.ts.map +1 -1
  78. package/dist/client/locales/runtimes.zh-CN.js +57 -3
  79. package/dist/client/locales/runtimes.zh-CN.js.map +1 -1
  80. package/dist/client/locales/skills.en-US.d.ts +1 -0
  81. package/dist/client/locales/skills.en-US.d.ts.map +1 -1
  82. package/dist/client/locales/skills.en-US.js +2 -1
  83. package/dist/client/locales/skills.en-US.js.map +1 -1
  84. package/dist/client/locales/skills.zh-CN.d.ts.map +1 -1
  85. package/dist/client/locales/skills.zh-CN.js +2 -1
  86. package/dist/client/locales/skills.zh-CN.js.map +1 -1
  87. package/dist/client/locales/zh-CN.d.ts.map +1 -1
  88. package/dist/client/locales/zh-CN.js +108 -221
  89. package/dist/client/locales/zh-CN.js.map +1 -1
  90. package/dist/client/online/services.d.ts.map +1 -1
  91. package/dist/client/online/services.js +5 -6
  92. package/dist/client/online/services.js.map +1 -1
  93. package/dist/client/pages/agents/agent-dialog.d.ts +9 -0
  94. package/dist/client/pages/agents/agent-dialog.d.ts.map +1 -0
  95. package/dist/client/pages/agents/agent-dialog.js +106 -0
  96. package/dist/client/pages/agents/agent-dialog.js.map +1 -0
  97. package/dist/client/pages/agents/agent-state.d.ts +11 -0
  98. package/dist/client/pages/agents/agent-state.d.ts.map +1 -0
  99. package/dist/client/pages/agents/agent-state.js +28 -0
  100. package/dist/client/pages/agents/agent-state.js.map +1 -0
  101. package/dist/client/pages/agents/index.d.ts +1 -1
  102. package/dist/client/pages/agents/index.d.ts.map +1 -1
  103. package/dist/client/pages/agents/index.js +6 -100
  104. package/dist/client/pages/agents/index.js.map +1 -1
  105. package/dist/client/pages/agents/runner-agents.d.ts +3 -0
  106. package/dist/client/pages/agents/runner-agents.d.ts.map +1 -0
  107. package/dist/client/pages/agents/runner-agents.js +172 -0
  108. package/dist/client/pages/agents/runner-agents.js.map +1 -0
  109. package/dist/client/pages/runtimes/connect.js +1 -1
  110. package/dist/client/pages/runtimes/connect.js.map +1 -1
  111. package/dist/client/pages/runtimes/index.d.ts.map +1 -1
  112. package/dist/client/pages/runtimes/index.js +3 -2
  113. package/dist/client/pages/runtimes/index.js.map +1 -1
  114. package/dist/client/pages/runtimes/runner-cells.d.ts +1 -1
  115. package/dist/client/pages/runtimes/runner-cells.d.ts.map +1 -1
  116. package/dist/client/pages/runtimes/runner-cells.js +4 -1
  117. package/dist/client/pages/runtimes/runner-cells.js.map +1 -1
  118. package/dist/client/pages/runtimes/runner-sheet.d.ts.map +1 -1
  119. package/dist/client/pages/runtimes/runner-sheet.js +12 -3
  120. package/dist/client/pages/runtimes/runner-sheet.js.map +1 -1
  121. package/dist/client/pages/runtimes/workspace-diagnostics.d.ts +9 -0
  122. package/dist/client/pages/runtimes/workspace-diagnostics.d.ts.map +1 -0
  123. package/dist/client/pages/runtimes/workspace-diagnostics.js +68 -0
  124. package/dist/client/pages/runtimes/workspace-diagnostics.js.map +1 -0
  125. package/dist/client/pages/skills/detail/index.d.ts.map +1 -1
  126. package/dist/client/pages/skills/detail/index.js +7 -10
  127. package/dist/client/pages/skills/detail/index.js.map +1 -1
  128. package/dist/client/pages/skills/index.d.ts.map +1 -1
  129. package/dist/client/pages/skills/index.js +2 -2
  130. package/dist/client/pages/skills/index.js.map +1 -1
  131. package/dist/client/pages/usage/index.js +2 -2
  132. package/dist/client/pages/usage/index.js.map +1 -1
  133. package/dist/client/profile/default-agent.d.ts.map +1 -1
  134. package/dist/client/profile/default-agent.js +2 -4
  135. package/dist/client/profile/default-agent.js.map +1 -1
  136. package/dist/client/routes.d.ts +1 -1
  137. package/dist/client/routes.d.ts.map +1 -1
  138. package/dist/client/routes.js +1 -13
  139. package/dist/client/routes.js.map +1 -1
  140. package/dist/client/runs/format-wait.d.ts +21 -0
  141. package/dist/client/runs/format-wait.d.ts.map +1 -0
  142. package/dist/client/runs/format-wait.js +90 -0
  143. package/dist/client/runs/format-wait.js.map +1 -0
  144. package/dist/client/runs/subject-runs.d.ts +5 -0
  145. package/dist/client/runs/subject-runs.d.ts.map +1 -1
  146. package/dist/client/runs/subject-runs.js +13 -7
  147. package/dist/client/runs/subject-runs.js.map +1 -1
  148. package/dist/client/runs.d.ts +3 -1
  149. package/dist/client/runs.d.ts.map +1 -1
  150. package/dist/client/runs.js +3 -1
  151. package/dist/client/runs.js.map +1 -1
  152. package/dist/database/migrations/.manifest.json +62 -2
  153. package/dist/database/migrations/202610020003_ag_create_runs.d.ts.map +1 -1
  154. package/dist/database/migrations/202610020003_ag_create_runs.js +0 -1
  155. package/dist/database/migrations/202610020003_ag_create_runs.js.map +1 -1
  156. package/dist/database/migrations/202610090001_ag_add_team_runner_variables.d.ts +9 -0
  157. package/dist/database/migrations/202610090001_ag_add_team_runner_variables.d.ts.map +1 -0
  158. package/dist/database/migrations/202610090001_ag_add_team_runner_variables.js +28 -0
  159. package/dist/database/migrations/202610090001_ag_add_team_runner_variables.js.map +1 -0
  160. package/dist/database/migrations/202610090002_ag_create_run_requests.d.ts +10 -0
  161. package/dist/database/migrations/202610090002_ag_create_run_requests.d.ts.map +1 -0
  162. package/dist/database/migrations/202610090002_ag_create_run_requests.js +105 -0
  163. package/dist/database/migrations/202610090002_ag_create_run_requests.js.map +1 -0
  164. package/dist/database/migrations/202610090003_ag_add_execution_history.d.ts +4 -0
  165. package/dist/database/migrations/202610090003_ag_add_execution_history.d.ts.map +1 -0
  166. package/dist/database/migrations/202610090003_ag_add_execution_history.js +17 -0
  167. package/dist/database/migrations/202610090003_ag_add_execution_history.js.map +1 -0
  168. package/dist/database/migrations/202610090004_ag_add_runner_workspace_usage.d.ts +9 -0
  169. package/dist/database/migrations/202610090004_ag_add_runner_workspace_usage.d.ts.map +1 -0
  170. package/dist/database/migrations/202610090004_ag_add_runner_workspace_usage.js +22 -0
  171. package/dist/database/migrations/202610090004_ag_add_runner_workspace_usage.js.map +1 -0
  172. package/dist/database/migrations/202610090005_ag_add_runner_variables.d.ts +10 -0
  173. package/dist/database/migrations/202610090005_ag_add_runner_variables.d.ts.map +1 -0
  174. package/dist/database/migrations/202610090005_ag_add_runner_variables.js +36 -0
  175. package/dist/database/migrations/202610090005_ag_add_runner_variables.js.map +1 -0
  176. package/dist/database/migrations/202610100001_ag_index_run_event_types.d.ts +4 -0
  177. package/dist/database/migrations/202610100001_ag_index_run_event_types.d.ts.map +1 -0
  178. package/dist/database/migrations/202610100001_ag_index_run_event_types.js +17 -0
  179. package/dist/database/migrations/202610100001_ag_index_run_event_types.js.map +1 -0
  180. package/dist/database/migrations/202610100002_ag_add_run_git_credentials.d.ts +9 -0
  181. package/dist/database/migrations/202610100002_ag_add_run_git_credentials.d.ts.map +1 -0
  182. package/dist/database/migrations/202610100002_ag_add_run_git_credentials.js +30 -0
  183. package/dist/database/migrations/202610100002_ag_add_run_git_credentials.js.map +1 -0
  184. package/dist/database/migrations/202610110001_ag_add_fresh_sessions.d.ts +4 -0
  185. package/dist/database/migrations/202610110001_ag_add_fresh_sessions.d.ts.map +1 -0
  186. package/dist/database/migrations/202610110001_ag_add_fresh_sessions.js +23 -0
  187. package/dist/database/migrations/202610110001_ag_add_fresh_sessions.js.map +1 -0
  188. package/dist/database/migrations/202610120001_ag_index_run_retries.d.ts +4 -0
  189. package/dist/database/migrations/202610120001_ag_index_run_retries.d.ts.map +1 -0
  190. package/dist/database/migrations/202610120001_ag_index_run_retries.js +17 -0
  191. package/dist/database/migrations/202610120001_ag_index_run_retries.js.map +1 -0
  192. package/dist/database/migrations/202610120002_ag_add_queue_entered_at.d.ts +4 -0
  193. package/dist/database/migrations/202610120002_ag_add_queue_entered_at.d.ts.map +1 -0
  194. package/dist/database/migrations/202610120002_ag_add_queue_entered_at.js +50 -0
  195. package/dist/database/migrations/202610120002_ag_add_queue_entered_at.js.map +1 -0
  196. package/dist/database/migrations/202610240020_ag_runner_agents.d.ts +4 -0
  197. package/dist/database/migrations/202610240020_ag_runner_agents.d.ts.map +1 -0
  198. package/dist/database/migrations/202610240020_ag_runner_agents.js +115 -0
  199. package/dist/database/migrations/202610240020_ag_runner_agents.js.map +1 -0
  200. package/dist/database/migrations/202610240040_ag_discovery_preferences.d.ts +4 -0
  201. package/dist/database/migrations/202610240040_ag_discovery_preferences.d.ts.map +1 -0
  202. package/dist/database/migrations/202610240040_ag_discovery_preferences.js +18 -0
  203. package/dist/database/migrations/202610240040_ag_discovery_preferences.js.map +1 -0
  204. package/dist/database/migrations/202610250001_ag_comment_runner_consent.d.ts +4 -0
  205. package/dist/database/migrations/202610250001_ag_comment_runner_consent.d.ts.map +1 -0
  206. package/dist/database/migrations/202610250001_ag_comment_runner_consent.js +41 -0
  207. package/dist/database/migrations/202610250001_ag_comment_runner_consent.js.map +1 -0
  208. package/dist/database/migrations/202610260001_ag_drop_directory_index.d.ts +4 -0
  209. package/dist/database/migrations/202610260001_ag_drop_directory_index.d.ts.map +1 -0
  210. package/dist/database/migrations/202610260001_ag_drop_directory_index.js +24 -0
  211. package/dist/database/migrations/202610260001_ag_drop_directory_index.js.map +1 -0
  212. package/dist/database/migrations/202610260001_ag_run_revision.d.ts +4 -0
  213. package/dist/database/migrations/202610260001_ag_run_revision.d.ts.map +1 -0
  214. package/dist/database/migrations/202610260001_ag_run_revision.js +19 -0
  215. package/dist/database/migrations/202610260001_ag_run_revision.js.map +1 -0
  216. package/dist/package.json +8 -10
  217. package/dist/server/cli/run-credential.js +1 -1
  218. package/dist/server/composition.d.ts +41 -37
  219. package/dist/server/composition.d.ts.map +1 -1
  220. package/dist/server/composition.js +66 -66
  221. package/dist/server/composition.js.map +1 -1
  222. package/dist/server/core/agents/agent.service.d.ts +51 -43
  223. package/dist/server/core/agents/agent.service.d.ts.map +1 -1
  224. package/dist/server/core/agents/agent.service.js +342 -317
  225. package/dist/server/core/agents/agent.service.js.map +1 -1
  226. package/dist/server/core/agents/agent.store.d.ts +24 -12
  227. package/dist/server/core/agents/agent.store.d.ts.map +1 -1
  228. package/dist/server/core/agents/agent.store.js +64 -66
  229. package/dist/server/core/agents/agent.store.js.map +1 -1
  230. package/dist/server/core/agents/agent.views.d.ts +29 -0
  231. package/dist/server/core/agents/agent.views.d.ts.map +1 -0
  232. package/dist/server/core/agents/agent.views.js +86 -0
  233. package/dist/server/core/agents/agent.views.js.map +1 -0
  234. package/dist/server/core/agents/discovery.d.ts +12 -0
  235. package/dist/server/core/agents/discovery.d.ts.map +1 -0
  236. package/dist/server/core/agents/discovery.js +39 -0
  237. package/dist/server/core/agents/discovery.js.map +1 -0
  238. package/dist/server/core/agents/index.d.ts +2 -1
  239. package/dist/server/core/agents/index.d.ts.map +1 -1
  240. package/dist/server/core/agents/index.js +2 -1
  241. package/dist/server/core/agents/index.js.map +1 -1
  242. package/dist/server/core/brief/brief.js +1 -1
  243. package/dist/server/core/brief/brief.js.map +1 -1
  244. package/dist/server/core/callers/index.d.ts +1 -1
  245. package/dist/server/core/conversations/availability.d.ts +11 -10
  246. package/dist/server/core/conversations/availability.d.ts.map +1 -1
  247. package/dist/server/core/conversations/availability.js +14 -32
  248. package/dist/server/core/conversations/availability.js.map +1 -1
  249. package/dist/server/core/conversations/chat-settings.d.ts.map +1 -1
  250. package/dist/server/core/conversations/chat-settings.js +5 -3
  251. package/dist/server/core/conversations/chat-settings.js.map +1 -1
  252. package/dist/server/core/conversations/conversation.service.d.ts +3 -5
  253. package/dist/server/core/conversations/conversation.service.d.ts.map +1 -1
  254. package/dist/server/core/conversations/conversation.service.js +161 -221
  255. package/dist/server/core/conversations/conversation.service.js.map +1 -1
  256. package/dist/server/core/conversations/ports.d.ts +3 -17
  257. package/dist/server/core/conversations/ports.d.ts.map +1 -1
  258. package/dist/server/core/reports/report.service.d.ts.map +1 -1
  259. package/dist/server/core/reports/report.service.js +5 -2
  260. package/dist/server/core/reports/report.service.js.map +1 -1
  261. package/dist/server/core/runs/availability.d.ts +18 -7
  262. package/dist/server/core/runs/availability.d.ts.map +1 -1
  263. package/dist/server/core/runs/availability.js +35 -24
  264. package/dist/server/core/runs/availability.js.map +1 -1
  265. package/dist/server/core/runs/claim.d.ts +47 -67
  266. package/dist/server/core/runs/claim.d.ts.map +1 -1
  267. package/dist/server/core/runs/claim.js +805 -313
  268. package/dist/server/core/runs/claim.js.map +1 -1
  269. package/dist/server/core/runs/comment-consent.d.ts +24 -0
  270. package/dist/server/core/runs/comment-consent.d.ts.map +1 -0
  271. package/dist/server/core/runs/comment-consent.js +116 -0
  272. package/dist/server/core/runs/comment-consent.js.map +1 -0
  273. package/dist/server/core/runs/eligibility.d.ts +51 -0
  274. package/dist/server/core/runs/eligibility.d.ts.map +1 -0
  275. package/dist/server/core/runs/eligibility.js +44 -0
  276. package/dist/server/core/runs/eligibility.js.map +1 -0
  277. package/dist/server/core/runs/execution-view.d.ts +10 -0
  278. package/dist/server/core/runs/execution-view.d.ts.map +1 -0
  279. package/dist/server/core/runs/execution-view.js +25 -0
  280. package/dist/server/core/runs/execution-view.js.map +1 -0
  281. package/dist/server/core/runs/execution.d.ts +13 -0
  282. package/dist/server/core/runs/execution.d.ts.map +1 -0
  283. package/dist/server/core/runs/execution.js +85 -0
  284. package/dist/server/core/runs/execution.js.map +1 -0
  285. package/dist/server/core/runs/extensions.d.ts +59 -4
  286. package/dist/server/core/runs/extensions.d.ts.map +1 -1
  287. package/dist/server/core/runs/extensions.js +45 -9
  288. package/dist/server/core/runs/extensions.js.map +1 -1
  289. package/dist/server/core/runs/git-credentials.d.ts +43 -0
  290. package/dist/server/core/runs/git-credentials.d.ts.map +1 -0
  291. package/dist/server/core/runs/git-credentials.js +129 -0
  292. package/dist/server/core/runs/git-credentials.js.map +1 -0
  293. package/dist/server/core/runs/identity.d.ts +9 -0
  294. package/dist/server/core/runs/identity.d.ts.map +1 -0
  295. package/dist/server/core/runs/identity.js +75 -0
  296. package/dist/server/core/runs/identity.js.map +1 -0
  297. package/dist/server/core/runs/index.d.ts +9 -5
  298. package/dist/server/core/runs/index.d.ts.map +1 -1
  299. package/dist/server/core/runs/index.js +9 -5
  300. package/dist/server/core/runs/index.js.map +1 -1
  301. package/dist/server/core/runs/input-gate.d.ts +34 -0
  302. package/dist/server/core/runs/input-gate.d.ts.map +1 -0
  303. package/dist/server/core/runs/input-gate.js +58 -0
  304. package/dist/server/core/runs/input-gate.js.map +1 -0
  305. package/dist/server/core/runs/lifecycle.d.ts +9 -19
  306. package/dist/server/core/runs/lifecycle.d.ts.map +1 -1
  307. package/dist/server/core/runs/lifecycle.js +98 -50
  308. package/dist/server/core/runs/lifecycle.js.map +1 -1
  309. package/dist/server/core/runs/policy.d.ts +8 -0
  310. package/dist/server/core/runs/policy.d.ts.map +1 -1
  311. package/dist/server/core/runs/policy.js +10 -0
  312. package/dist/server/core/runs/policy.js.map +1 -1
  313. package/dist/server/core/runs/ports.d.ts +91 -28
  314. package/dist/server/core/runs/ports.d.ts.map +1 -1
  315. package/dist/server/core/runs/ports.js +2 -13
  316. package/dist/server/core/runs/ports.js.map +1 -1
  317. package/dist/server/core/runs/preview.d.ts.map +1 -1
  318. package/dist/server/core/runs/preview.js +3 -3
  319. package/dist/server/core/runs/preview.js.map +1 -1
  320. package/dist/server/core/runs/run-data-purge.d.ts +15 -0
  321. package/dist/server/core/runs/run-data-purge.d.ts.map +1 -0
  322. package/dist/server/core/runs/run-data-purge.js +82 -0
  323. package/dist/server/core/runs/run-data-purge.js.map +1 -0
  324. package/dist/server/core/runs/run-requests.d.ts +245 -0
  325. package/dist/server/core/runs/run-requests.d.ts.map +1 -0
  326. package/dist/server/core/runs/run-requests.js +543 -0
  327. package/dist/server/core/runs/run-requests.js.map +1 -0
  328. package/dist/server/core/runs/run.service.d.ts +96 -11
  329. package/dist/server/core/runs/run.service.d.ts.map +1 -1
  330. package/dist/server/core/runs/run.service.js +921 -96
  331. package/dist/server/core/runs/run.service.js.map +1 -1
  332. package/dist/server/core/runs/run.store.d.ts +25 -3
  333. package/dist/server/core/runs/run.store.d.ts.map +1 -1
  334. package/dist/server/core/runs/run.store.js +52 -2
  335. package/dist/server/core/runs/run.store.js.map +1 -1
  336. package/dist/server/core/runs/runner-view.d.ts +6 -4
  337. package/dist/server/core/runs/runner-view.d.ts.map +1 -1
  338. package/dist/server/core/runs/runner-view.js +13 -11
  339. package/dist/server/core/runs/runner-view.js.map +1 -1
  340. package/dist/server/core/runs/selection.d.ts +13 -0
  341. package/dist/server/core/runs/selection.d.ts.map +1 -0
  342. package/dist/server/core/runs/selection.js +21 -0
  343. package/dist/server/core/runs/selection.js.map +1 -0
  344. package/dist/server/core/runs/sweeper.d.ts +1 -0
  345. package/dist/server/core/runs/sweeper.d.ts.map +1 -1
  346. package/dist/server/core/runs/sweeper.js +55 -10
  347. package/dist/server/core/runs/sweeper.js.map +1 -1
  348. package/dist/server/core/runs/transitions.d.ts +2 -2
  349. package/dist/server/core/runs/transitions.d.ts.map +1 -1
  350. package/dist/server/core/runs/transitions.js +80 -8
  351. package/dist/server/core/runs/transitions.js.map +1 -1
  352. package/dist/server/core/runs/workload.d.ts +3 -3
  353. package/dist/server/core/runs/workload.d.ts.map +1 -1
  354. package/dist/server/core/runs/workload.js +154 -45
  355. package/dist/server/core/runs/workload.js.map +1 -1
  356. package/dist/server/core/skills/skill.service.d.ts +6 -2
  357. package/dist/server/core/skills/skill.service.d.ts.map +1 -1
  358. package/dist/server/core/skills/skill.service.js +43 -58
  359. package/dist/server/core/skills/skill.service.js.map +1 -1
  360. package/dist/server/core/skills/skill.store.d.ts +14 -0
  361. package/dist/server/core/skills/skill.store.d.ts.map +1 -1
  362. package/dist/server/core/skills/skill.store.js +30 -0
  363. package/dist/server/core/skills/skill.store.js.map +1 -1
  364. package/dist/server/core/variables/index.d.ts +1 -1
  365. package/dist/server/core/variables/index.d.ts.map +1 -1
  366. package/dist/server/core/variables/index.js +1 -1
  367. package/dist/server/core/variables/index.js.map +1 -1
  368. package/dist/server/core/variables/variable.service.d.ts +38 -6
  369. package/dist/server/core/variables/variable.service.d.ts.map +1 -1
  370. package/dist/server/core/variables/variable.service.js +201 -30
  371. package/dist/server/core/variables/variable.service.js.map +1 -1
  372. package/dist/server/distribution/dist.service.d.ts +27 -5
  373. package/dist/server/distribution/dist.service.d.ts.map +1 -1
  374. package/dist/server/distribution/dist.service.js +41 -5
  375. package/dist/server/distribution/dist.service.js.map +1 -1
  376. package/dist/server/distribution/download-tokens.d.ts +1 -1
  377. package/dist/server/distribution/download-tokens.d.ts.map +1 -1
  378. package/dist/server/distribution/download-tokens.js +7 -4
  379. package/dist/server/distribution/download-tokens.js.map +1 -1
  380. package/dist/server/distribution/index.d.ts +11 -3
  381. package/dist/server/distribution/index.d.ts.map +1 -1
  382. package/dist/server/distribution/index.js +31 -8
  383. package/dist/server/distribution/index.js.map +1 -1
  384. package/dist/server/jobs/index.d.ts +1 -1
  385. package/dist/server/jobs/index.d.ts.map +1 -1
  386. package/dist/server/jobs/index.js +1 -1
  387. package/dist/server/jobs/index.js.map +1 -1
  388. package/dist/server/jobs/job.service.d.ts +3 -1
  389. package/dist/server/jobs/job.service.d.ts.map +1 -1
  390. package/dist/server/jobs/job.service.js +11 -3
  391. package/dist/server/jobs/job.service.js.map +1 -1
  392. package/dist/server/jobs/spec.d.ts +4 -0
  393. package/dist/server/jobs/spec.d.ts.map +1 -1
  394. package/dist/server/jobs/spec.js +6 -0
  395. package/dist/server/jobs/spec.js.map +1 -1
  396. package/dist/server/kernel/errors.d.ts +1 -1
  397. package/dist/server/kernel/errors.d.ts.map +1 -1
  398. package/dist/server/kernel/errors.js +1 -0
  399. package/dist/server/kernel/errors.js.map +1 -1
  400. package/dist/server/kernel/events.d.ts +34 -9
  401. package/dist/server/kernel/events.d.ts.map +1 -1
  402. package/dist/server/kernel/events.js.map +1 -1
  403. package/dist/server/kernel/redaction.d.ts +2 -0
  404. package/dist/server/kernel/redaction.d.ts.map +1 -1
  405. package/dist/server/kernel/redaction.js +17 -0
  406. package/dist/server/kernel/redaction.js.map +1 -1
  407. package/dist/server/kernel/scopes.d.ts.map +1 -1
  408. package/dist/server/kernel/scopes.js +3 -1
  409. package/dist/server/kernel/scopes.js.map +1 -1
  410. package/dist/server/online/index.d.ts +0 -5
  411. package/dist/server/online/index.d.ts.map +1 -1
  412. package/dist/server/online/index.js +0 -5
  413. package/dist/server/online/index.js.map +1 -1
  414. package/dist/server/online/routes.d.ts.map +1 -1
  415. package/dist/server/online/routes.js +6 -35
  416. package/dist/server/online/routes.js.map +1 -1
  417. package/dist/server/providers/agents.d.ts +8 -25
  418. package/dist/server/providers/agents.d.ts.map +1 -1
  419. package/dist/server/providers/agents.js +11 -75
  420. package/dist/server/providers/agents.js.map +1 -1
  421. package/dist/server/providers/runners.d.ts.map +1 -1
  422. package/dist/server/providers/runners.js +23 -0
  423. package/dist/server/providers/runners.js.map +1 -1
  424. package/dist/server/routes/admin.d.ts.map +1 -1
  425. package/dist/server/routes/admin.js +158 -209
  426. package/dist/server/routes/admin.js.map +1 -1
  427. package/dist/server/routes/chat.d.ts.map +1 -1
  428. package/dist/server/routes/chat.js +12 -70
  429. package/dist/server/routes/chat.js.map +1 -1
  430. package/dist/server/routes/index.d.ts.map +1 -1
  431. package/dist/server/routes/index.js +11 -1
  432. package/dist/server/routes/index.js.map +1 -1
  433. package/dist/server/routes/roster.d.ts.map +1 -1
  434. package/dist/server/routes/roster.js +6 -21
  435. package/dist/server/routes/roster.js.map +1 -1
  436. package/dist/server/routes/run-requests.d.ts +6 -0
  437. package/dist/server/routes/run-requests.d.ts.map +1 -0
  438. package/dist/server/routes/run-requests.js +216 -0
  439. package/dist/server/routes/run-requests.js.map +1 -0
  440. package/dist/server/routes/runners/admin.d.ts +9 -1
  441. package/dist/server/routes/runners/admin.d.ts.map +1 -1
  442. package/dist/server/routes/runners/admin.js +62 -24
  443. package/dist/server/routes/runners/admin.js.map +1 -1
  444. package/dist/server/routes/runners/dist.d.ts +5 -1
  445. package/dist/server/routes/runners/dist.d.ts.map +1 -1
  446. package/dist/server/routes/runners/dist.js +36 -9
  447. package/dist/server/routes/runners/dist.js.map +1 -1
  448. package/dist/server/routes/runners/install.d.ts.map +1 -1
  449. package/dist/server/routes/runners/install.js +98 -15
  450. package/dist/server/routes/runners/install.js.map +1 -1
  451. package/dist/server/routes/runners/runner.d.ts.map +1 -1
  452. package/dist/server/routes/runners/runner.js +27 -7
  453. package/dist/server/routes/runners/runner.js.map +1 -1
  454. package/dist/server/routes/runners/runs.d.ts +1 -1
  455. package/dist/server/routes/runners/runs.d.ts.map +1 -1
  456. package/dist/server/routes/runners/runs.js +23 -3
  457. package/dist/server/routes/runners/runs.js.map +1 -1
  458. package/dist/server/routes/schemas.d.ts +37 -8
  459. package/dist/server/routes/schemas.d.ts.map +1 -1
  460. package/dist/server/routes/schemas.js +381 -84
  461. package/dist/server/routes/schemas.js.map +1 -1
  462. package/dist/server/runners/index.d.ts +1 -0
  463. package/dist/server/runners/index.d.ts.map +1 -1
  464. package/dist/server/runners/index.js +1 -0
  465. package/dist/server/runners/index.js.map +1 -1
  466. package/dist/server/runners/runner.service.d.ts +32 -8
  467. package/dist/server/runners/runner.service.d.ts.map +1 -1
  468. package/dist/server/runners/runner.service.js +130 -14
  469. package/dist/server/runners/runner.service.js.map +1 -1
  470. package/dist/server/runners/runner.store.d.ts +10 -1
  471. package/dist/server/runners/runner.store.d.ts.map +1 -1
  472. package/dist/server/runners/runner.store.js +117 -4
  473. package/dist/server/runners/runner.store.js.map +1 -1
  474. package/dist/server/runners/sweeper.d.ts +5 -0
  475. package/dist/server/runners/sweeper.d.ts.map +1 -1
  476. package/dist/server/runners/sweeper.js +4 -2
  477. package/dist/server/runners/sweeper.js.map +1 -1
  478. package/dist/server/runners/workspaces.d.ts +33 -0
  479. package/dist/server/runners/workspaces.d.ts.map +1 -0
  480. package/dist/server/runners/workspaces.js +248 -0
  481. package/dist/server/runners/workspaces.js.map +1 -0
  482. package/dist/server/testing.d.ts +0 -2
  483. package/dist/server/testing.d.ts.map +1 -1
  484. package/dist/server/testing.js +1 -4
  485. package/dist/server/testing.js.map +1 -1
  486. package/dist/server/tokens.d.ts +13 -9
  487. package/dist/server/tokens.d.ts.map +1 -1
  488. package/dist/server/tokens.js +7 -2
  489. package/dist/server/tokens.js.map +1 -1
  490. package/dist/shared/access.d.ts +2 -6
  491. package/dist/shared/access.d.ts.map +1 -1
  492. package/dist/shared/access.js +2 -6
  493. package/dist/shared/access.js.map +1 -1
  494. package/dist/shared/agents.d.ts +128 -167
  495. package/dist/shared/agents.d.ts.map +1 -1
  496. package/dist/shared/agents.js +46 -97
  497. package/dist/shared/agents.js.map +1 -1
  498. package/dist/shared/conversations.d.ts +43 -89
  499. package/dist/shared/conversations.d.ts.map +1 -1
  500. package/dist/shared/conversations.js +5 -24
  501. package/dist/shared/conversations.js.map +1 -1
  502. package/dist/shared/model-catalog.d.ts +48 -0
  503. package/dist/shared/model-catalog.d.ts.map +1 -0
  504. package/dist/shared/model-catalog.js +148 -0
  505. package/dist/shared/model-catalog.js.map +1 -0
  506. package/dist/shared/models.js +1 -1
  507. package/dist/shared/models.js.map +1 -1
  508. package/dist/shared/runners.d.ts +107 -17
  509. package/dist/shared/runners.d.ts.map +1 -1
  510. package/dist/shared/runners.js +49 -7
  511. package/dist/shared/runners.js.map +1 -1
  512. package/dist/shared/runs.d.ts +213 -1
  513. package/dist/shared/runs.d.ts.map +1 -1
  514. package/dist/shared/runs.js +24 -0
  515. package/dist/shared/runs.js.map +1 -1
  516. package/dist/shared/skills.d.ts +8 -4
  517. package/dist/shared/skills.d.ts.map +1 -1
  518. package/dist/shared/skills.js +7 -2
  519. package/dist/shared/skills.js.map +1 -1
  520. package/dist/shared/variables.d.ts +22 -0
  521. package/dist/shared/variables.d.ts.map +1 -1
  522. package/dist/shared/variables.js +10 -2
  523. package/dist/shared/variables.js.map +1 -1
  524. package/package.json +24 -26
  525. package/skills/nocobase-app-plugin-agents/SKILL.md +8 -7
  526. package/skills/nocobase-app-plugin-agents/references/agents.md +30 -0
  527. package/skills/nocobase-app-plugin-agents/references/distribution.md +21 -4
  528. package/skills/nocobase-app-plugin-agents/references/extension-points.md +30 -20
  529. package/skills/nocobase-app-plugin-agents/references/model-services.md +17 -0
  530. package/skills/nocobase-app-plugin-agents/references/runners.md +15 -1
  531. package/skills/nocobase-app-plugin-agents/references/setup-and-config.md +4 -7
  532. package/skills/nocobase-app-plugin-agents/references/variables-skills-usage.md +6 -4
  533. package/skills/nocobase-app-plugin-agents/references/verification-and-troubleshooting.md +33 -32
  534. package/dist/client/chat/settings-section.d.ts +0 -5
  535. package/dist/client/chat/settings-section.d.ts.map +0 -1
  536. package/dist/client/chat/settings-section.js +0 -76
  537. package/dist/client/chat/settings-section.js.map +0 -1
  538. package/dist/client/components/agent-fields.d.ts +0 -45
  539. package/dist/client/components/agent-fields.d.ts.map +0 -1
  540. package/dist/client/components/agent-fields.js +0 -83
  541. package/dist/client/components/agent-fields.js.map +0 -1
  542. package/dist/client/components/agent-type.d.ts +0 -32
  543. package/dist/client/components/agent-type.d.ts.map +0 -1
  544. package/dist/client/components/agent-type.js +0 -80
  545. package/dist/client/components/agent-type.js.map +0 -1
  546. package/dist/client/components/model-entries.d.ts +0 -35
  547. package/dist/client/components/model-entries.d.ts.map +0 -1
  548. package/dist/client/components/model-entries.js +0 -82
  549. package/dist/client/components/model-entries.js.map +0 -1
  550. package/dist/client/hooks/use-agent-save.d.ts +0 -9
  551. package/dist/client/hooks/use-agent-save.d.ts.map +0 -1
  552. package/dist/client/hooks/use-agent-save.js +0 -40
  553. package/dist/client/hooks/use-agent-save.js.map +0 -1
  554. package/dist/client/hooks/use-model-catalog.d.ts +0 -9
  555. package/dist/client/hooks/use-model-catalog.d.ts.map +0 -1
  556. package/dist/client/hooks/use-model-catalog.js +0 -27
  557. package/dist/client/hooks/use-model-catalog.js.map +0 -1
  558. package/dist/client/lib/tool-policy.d.ts +0 -5
  559. package/dist/client/lib/tool-policy.d.ts.map +0 -1
  560. package/dist/client/lib/tool-policy.js +0 -10
  561. package/dist/client/lib/tool-policy.js.map +0 -1
  562. package/dist/client/online/default-model.d.ts +0 -5
  563. package/dist/client/online/default-model.d.ts.map +0 -1
  564. package/dist/client/online/default-model.js +0 -65
  565. package/dist/client/online/default-model.js.map +0 -1
  566. package/dist/client/pages/agents/agent-model.d.ts +0 -73
  567. package/dist/client/pages/agents/agent-model.d.ts.map +0 -1
  568. package/dist/client/pages/agents/agent-model.js +0 -172
  569. package/dist/client/pages/agents/agent-model.js.map +0 -1
  570. package/dist/client/pages/agents/detail/brief-preview.d.ts +0 -7
  571. package/dist/client/pages/agents/detail/brief-preview.d.ts.map +0 -1
  572. package/dist/client/pages/agents/detail/brief-preview.js +0 -43
  573. package/dist/client/pages/agents/detail/brief-preview.js.map +0 -1
  574. package/dist/client/pages/agents/detail/history.d.ts +0 -11
  575. package/dist/client/pages/agents/detail/history.d.ts.map +0 -1
  576. package/dist/client/pages/agents/detail/history.js +0 -149
  577. package/dist/client/pages/agents/detail/history.js.map +0 -1
  578. package/dist/client/pages/agents/detail/index.d.ts +0 -3
  579. package/dist/client/pages/agents/detail/index.d.ts.map +0 -1
  580. package/dist/client/pages/agents/detail/index.js +0 -241
  581. package/dist/client/pages/agents/detail/index.js.map +0 -1
  582. package/dist/client/pages/agents/detail/sections.d.ts +0 -22
  583. package/dist/client/pages/agents/detail/sections.d.ts.map +0 -1
  584. package/dist/client/pages/agents/detail/sections.js +0 -311
  585. package/dist/client/pages/agents/detail/sections.js.map +0 -1
  586. package/dist/client/pages/agents/detail/tab-draft.d.ts +0 -43
  587. package/dist/client/pages/agents/detail/tab-draft.d.ts.map +0 -1
  588. package/dist/client/pages/agents/detail/tab-draft.js +0 -115
  589. package/dist/client/pages/agents/detail/tab-draft.js.map +0 -1
  590. package/dist/client/pages/agents/detail/unsaved-bar.d.ts +0 -13
  591. package/dist/client/pages/agents/detail/unsaved-bar.d.ts.map +0 -1
  592. package/dist/client/pages/agents/detail/unsaved-bar.js +0 -21
  593. package/dist/client/pages/agents/detail/unsaved-bar.js.map +0 -1
  594. package/dist/client/pages/agents/new.d.ts +0 -3
  595. package/dist/client/pages/agents/new.d.ts.map +0 -1
  596. package/dist/client/pages/agents/new.js +0 -149
  597. package/dist/client/pages/agents/new.js.map +0 -1
  598. package/dist/client/pages/agents/preset-picker.d.ts +0 -8
  599. package/dist/client/pages/agents/preset-picker.d.ts.map +0 -1
  600. package/dist/client/pages/agents/preset-picker.js +0 -41
  601. package/dist/client/pages/agents/preset-picker.js.map +0 -1
  602. package/dist/server/core/consultations/consultation.service.d.ts +0 -59
  603. package/dist/server/core/consultations/consultation.service.d.ts.map +0 -1
  604. package/dist/server/core/consultations/consultation.service.js +0 -195
  605. package/dist/server/core/consultations/consultation.service.js.map +0 -1
  606. package/dist/server/core/consultations/index.d.ts +0 -3
  607. package/dist/server/core/consultations/index.d.ts.map +0 -1
  608. package/dist/server/core/consultations/index.js +0 -3
  609. package/dist/server/core/consultations/index.js.map +0 -1
  610. package/dist/server/core/consultations/prompt.d.ts +0 -41
  611. package/dist/server/core/consultations/prompt.d.ts.map +0 -1
  612. package/dist/server/core/consultations/prompt.js +0 -64
  613. package/dist/server/core/consultations/prompt.js.map +0 -1
  614. package/dist/server/core/presets/index.d.ts +0 -19
  615. package/dist/server/core/presets/index.d.ts.map +0 -1
  616. package/dist/server/core/presets/index.js +0 -28
  617. package/dist/server/core/presets/index.js.map +0 -1
  618. package/dist/server/online/cli-command.d.ts +0 -20
  619. package/dist/server/online/cli-command.d.ts.map +0 -1
  620. package/dist/server/online/cli-command.js +0 -345
  621. package/dist/server/online/cli-command.js.map +0 -1
  622. package/dist/server/online/consult-tool.d.ts +0 -54
  623. package/dist/server/online/consult-tool.d.ts.map +0 -1
  624. package/dist/server/online/consult-tool.js +0 -177
  625. package/dist/server/online/consult-tool.js.map +0 -1
  626. package/dist/server/online/executor.d.ts +0 -83
  627. package/dist/server/online/executor.d.ts.map +0 -1
  628. package/dist/server/online/executor.js +0 -714
  629. package/dist/server/online/executor.js.map +0 -1
  630. package/dist/server/online/sandbox.d.ts +0 -32
  631. package/dist/server/online/sandbox.d.ts.map +0 -1
  632. package/dist/server/online/sandbox.js +0 -246
  633. package/dist/server/online/sandbox.js.map +0 -1
  634. package/dist/server/online/scripted.d.ts +0 -12
  635. package/dist/server/online/scripted.d.ts.map +0 -1
  636. package/dist/server/online/scripted.js +0 -176
  637. package/dist/server/online/scripted.js.map +0 -1
  638. package/dist/server/online/tools.d.ts +0 -17
  639. package/dist/server/online/tools.d.ts.map +0 -1
  640. package/dist/server/online/tools.js +0 -31
  641. package/dist/server/online/tools.js.map +0 -1
  642. package/dist/server/vendor/THIRD_PARTY_LICENSES.txt +0 -782
  643. package/dist/server/vendor/just-bash.d.ts +0 -83
  644. package/dist/server/vendor/just-bash.js +0 -2102
  645. package/dist/shared/presets.d.ts +0 -30
  646. package/dist/shared/presets.d.ts.map +0 -1
  647. package/dist/shared/presets.js +0 -2
  648. package/dist/shared/presets.js.map +0 -1
  649. package/skills/nocobase-app-plugin-agents/references/online-agents.md +0 -31
@@ -1,7 +1,8 @@
1
1
  import { entryTools } from '../../../shared/agents.js';
2
- import { runsTool, toolLimit } from '../../../shared/runners.js';
2
+ import { runsEntry, runsTool, toolLimit, } from '../../../shared/runners.js';
3
3
  import { RUN_ACTIVITY_TEXT_MAX, } from '../../../shared/runs.js';
4
4
  import { covers } from '../../kernel/values.js';
5
+ import { variableRefs } from '../variables/index.js';
5
6
  import { listAgents } from '../agents/index.js';
6
7
  import { ACTIVE, eventsRepo, inputsRepo, runsRepo, toRun, } from './run.store.js';
7
8
  const DEFAULT_LIMIT = 200;
@@ -24,6 +25,7 @@ const wait = (reason, extra = {}) => ({
24
25
  tool: null,
25
26
  missing: [],
26
27
  detail: null,
28
+ variables: [],
27
29
  ...extra,
28
30
  });
29
31
  /**
@@ -32,54 +34,88 @@ const wait = (reason, extra = {}) => ({
32
34
  */
33
35
  export function explainWait(run, context) {
34
36
  const { agent } = context;
35
- if (!agent || agent.archivedAt)
37
+ if (!agent || agent.status !== 'enabled')
36
38
  return wait('agentArchived');
37
39
  const availableAt = time(run.availableAt);
38
- if (availableAt !== null && availableAt > context.now.getTime())
39
- return wait('delayed', { until: iso(run.availableAt) });
40
- // An online run needs no runner: the application takes it as soon as an instance looks.
41
- if (agent.type === 'online')
42
- return wait('next');
40
+ if (availableAt !== null && availableAt > context.now.getTime()) {
41
+ const until = iso(run.availableAt);
42
+ return wait('delayed', { until, params: until ? { until } : {} });
43
+ }
43
44
  const tools = entryTools(agent);
44
45
  const tool = tools[0] ?? null;
46
+ const model = agent.modelEntries[0]?.model ?? null;
45
47
  let fitting = context.runners;
46
48
  if (fitting.length === 0)
47
49
  return wait('noRunnerOnline');
48
- if (agent.runnerIds.length > 0) {
49
- fitting = fitting.filter((runner) => agent.runnerIds.includes(runner.id));
50
- if (fitting.length === 0)
51
- return wait('runnersOffline');
52
- }
53
- fitting = fitting.filter((runner) => tools.some((each) => runsTool(runner, each)));
50
+ fitting = fitting.filter((runner) => agent.modelEntries.some((entry) => runsEntry(runner, entry)));
54
51
  if (fitting.length === 0)
55
- return wait('toolUnavailable', { tool });
52
+ return wait('toolUnavailable', {
53
+ tool,
54
+ params: {
55
+ ...(tool ? { tool } : {}),
56
+ ...(model ? { model } : {}),
57
+ },
58
+ });
56
59
  fitting = fitting.filter((runner) => runner.trust === 'team' || runner.ownerUserId === run.actorUserId);
57
60
  if (fitting.length === 0)
58
61
  return wait('noSharedRunner');
59
62
  const withFeatures = fitting.filter((runner) => covers(runner.features, run.requires));
60
63
  if (withFeatures.length === 0) {
61
64
  const offered = new Set(fitting.flatMap((runner) => runner.features));
62
- return wait('missingFeatures', {
63
- missing: run.requires.filter((feature) => !offered.has(feature)),
64
- });
65
+ const missing = run.requires.filter((feature) => !offered.has(feature));
66
+ return wait('missingFeatures', { missing, params: { features: missing } });
65
67
  }
68
+ // Variables for team runners only, as the last claim by a personal runner found them (`claim.ts`).
69
+ const teamOnly = variableRefs(run.teamOnlyVariables);
70
+ const trusted = teamOnly.length > 0
71
+ ? withFeatures.filter((runner) => runner.trust === 'team')
72
+ : withFeatures;
73
+ if (trusted.length === 0)
74
+ return wait('secretsNotAllowed', {
75
+ variables: teamOnly,
76
+ params: { variables: [...new Set(teamOnly.map((each) => each.name))] },
77
+ });
66
78
  if (context.sameWorkActive)
67
79
  return wait('sameWorkActive');
68
80
  if (context.agentActive >= agent.maxConcurrentRuns)
69
- return wait('concurrencyFull');
70
- const free = withFeatures.filter((runner) => (context.runnerUsed.get(runner.id) ?? 0) < runner.slots);
81
+ return wait('concurrencyFull', {
82
+ params: { active: context.agentActive, limit: agent.maxConcurrentRuns },
83
+ });
84
+ if (trusted.every((runner) => runner.draining))
85
+ return wait(trusted.some((runner) => runner.draining === 'updatePending')
86
+ ? 'updatePending'
87
+ : 'pruning');
88
+ const free = trusted.filter((runner) => !runner.draining &&
89
+ (runner.globalFree ?? 1) > 0 &&
90
+ (context.runnerUsed.get(runner.id) ?? 0) < runner.slots);
71
91
  if (free.length === 0)
72
- return wait('runnersBusy');
92
+ return wait('runnersBusy', { params: { runners: trusted.length } });
73
93
  // A tool has room on a runner below its limit here and while the runner last said it could take more of it.
74
94
  const hasRoom = (runner, each) => (context.runnerToolUsed?.get(runner.id)?.[each] ?? 0) <
75
95
  toolLimit(runner, each) && (runner.toolLoad?.[each]?.free ?? 1) > 0;
76
- if (free.every((runner) => !tools.some((each) => runsTool(runner, each) && hasRoom(runner, each))))
96
+ if (free.every((runner) => !agent.modelEntries.some((entry) => runsEntry(runner, entry) && hasRoom(runner, entry.tool)))) {
97
+ const full = tools.find((each) => free.some((runner) => runsTool(runner, each))) ??
98
+ null;
99
+ // The runner that runs it with the fewest of its slots taken: the one closest to room.
100
+ const closest = full
101
+ ? free
102
+ .filter((runner) => runsTool(runner, full))
103
+ .map((runner) => ({
104
+ used: context.runnerToolUsed?.get(runner.id)?.[full] ?? 0,
105
+ limit: toolLimit(runner, full),
106
+ }))
107
+ .sort((a, b) => a.used - a.limit - (b.used - b.limit))[0]
108
+ : undefined;
77
109
  return wait('toolSlotsFull', {
78
- tool: tools.find((each) => free.some((runner) => runsTool(runner, each))) ??
79
- null,
110
+ tool: full,
111
+ params: full ? { tool: full, ...(closest ? closest : {}) } : {},
80
112
  });
113
+ }
81
114
  if (Number(run.claimFailures) > 0)
82
- return wait('setupRetrying', { detail: run.failureDetail });
115
+ return wait('setupRetrying', {
116
+ detail: run.failureDetail,
117
+ params: run.failureDetail ? { detail: run.failureDetail } : {},
118
+ });
83
119
  return wait('next');
84
120
  }
85
121
  const keyOf = (run) => JSON.stringify([
@@ -116,7 +152,7 @@ function cut(text) {
116
152
  ? `${line.slice(0, RUN_ACTIVITY_TEXT_MAX - 1)}…`
117
153
  : line;
118
154
  }
119
- export async function readWorkload(conn, clock, runnerSource, query) {
155
+ export async function readWorkload(conn, clock, runnerSource, query, diagnose) {
120
156
  const now = clock.now();
121
157
  const limit = Math.min(Math.max(query.limit ?? DEFAULT_LIMIT, 1), MAX_LIMIT);
122
158
  const open = await runsRepo(conn).findMany({
@@ -139,7 +175,7 @@ export async function readWorkload(conn, clock, runnerSource, query) {
139
175
  const runners = await runnerSource.all(conn);
140
176
  const online = runners.filter((runner) => runner.status === 'online');
141
177
  const jobs = await runnerSource.jobsByRunner(conn);
142
- const agents = await listAgents(conn, true);
178
+ const agents = await listAgents(conn);
143
179
  const agentById = new Map(agents.map((agent) => [agent.id, agent]));
144
180
  const runnerUsed = new Map();
145
181
  const runnerToolUsed = new Map();
@@ -210,31 +246,108 @@ export async function readWorkload(conn, clock, runnerSource, query) {
210
246
  });
211
247
  }
212
248
  const runnerName = new Map(runners.map((runner) => [runner.id, runner.name]));
213
- const runs = mine.map((record) => {
249
+ const runs = await Promise.all(mine.map(async (record) => {
214
250
  const run = toRun(record);
215
251
  const isQueued = record.status === 'queued';
252
+ const candidateAgent = agentById.get(run.agentId);
253
+ const diagnostic = isQueued && candidateAgent?.status === 'enabled' && diagnose
254
+ ? await diagnose(conn, run, candidateAgent)
255
+ : null;
256
+ const previous = explainWait({ ...record, requires: run.requires }, {
257
+ now,
258
+ agent: candidateAgent ?? null,
259
+ runners: online,
260
+ runnerUsed,
261
+ runnerToolUsed,
262
+ agentActive: agentActive.get(run.agentId) ?? 0,
263
+ sameWorkActive: busyKeys.has(keyOf(record)),
264
+ });
265
+ // Keep the established identity and protected-variable explanation, including its precise parameters.
266
+ const detailed = [
267
+ 'secretsNotAllowed',
268
+ 'delayed',
269
+ 'agentArchived',
270
+ 'setupRetrying',
271
+ ].includes(previous.reason);
272
+ const entry = diagnostic?.entries.find((entry) => entry.reason === 'ready') ??
273
+ diagnostic?.entries[0];
274
+ const codes = {
275
+ ready: 'next',
276
+ busy: 'runnersBusy',
277
+ updatePending: 'updatePending',
278
+ pruning: 'pruning',
279
+ offline: 'noRunnerOnline',
280
+ incompatible: 'incompatible',
281
+ restricted: 'restricted',
282
+ concurrencyFull: 'concurrencyFull',
283
+ sameWorkActive: 'sameWorkActive',
284
+ delayed: 'delayed',
285
+ toolUnavailable: 'toolUnavailable',
286
+ toolNotInstalled: 'toolNotInstalled',
287
+ noSharedRunner: 'noSharedRunner',
288
+ unknown: 'unknown',
289
+ };
290
+ const loads = entry?.runners.filter((runner) => runner.reason === undefined ||
291
+ runner.reason === 'ready' ||
292
+ runner.reason === 'busy') ?? [];
293
+ const toolFull = entry?.reason === 'busy' &&
294
+ loads.some((runner) => (runner.used ?? 0) < (runner.limit ?? 0)) &&
295
+ loads.every((runner) => (runner.toolUsed ?? 0) >= (runner.toolLimit ?? 0) ||
296
+ runner.reportedFree === 0);
216
297
  return {
217
298
  ...run,
218
299
  trigger: triggers.get(run.id) ?? null,
219
- runnerName: run.runnerId ? (runnerName.get(run.runnerId) ?? null) : null,
300
+ runnerName: run.runnerId
301
+ ? (runnerName.get(run.runnerId) ?? null)
302
+ : null,
220
303
  lastActivity: activity.get(run.id) ?? null,
221
304
  wait: isQueued
222
305
  ? {
223
- ...explainWait({ ...record, requires: run.requires }, {
224
- now,
225
- agent: agentById.get(run.agentId) ?? null,
226
- runners: online,
227
- runnerUsed,
228
- runnerToolUsed,
229
- agentActive: agentActive.get(run.agentId) ?? 0,
230
- sameWorkActive: busyKeys.has(keyOf(record)),
231
- }),
306
+ ...previous,
307
+ ...(entry && !detailed
308
+ ? {
309
+ reason: entry.reason === 'ready' &&
310
+ Number(record.claimFailures) > 0
311
+ ? 'setupRetrying'
312
+ : toolFull
313
+ ? 'toolSlotsFull'
314
+ : codes[entry.reason],
315
+ params: {
316
+ blockers: (entry.blockers ?? [])
317
+ .filter((reason) => reason !== entry.reason)
318
+ .map((reason) => codes[reason]),
319
+ tool: entry.tool,
320
+ ...(entry.reason === 'concurrencyFull'
321
+ ? {
322
+ active: agentActive.get(run.agentId) ?? 0,
323
+ limit: candidateAgent.maxConcurrentRuns,
324
+ }
325
+ : entry.reason === 'busy'
326
+ ? {
327
+ used: loads.reduce((n, runner) => n +
328
+ (toolFull
329
+ ? (runner.toolUsed ?? 0)
330
+ : (runner.used ?? 0)), 0),
331
+ limit: loads.reduce((n, runner) => n +
332
+ (toolFull
333
+ ? (runner.toolLimit ?? 0)
334
+ : (runner.limit ?? 0)), 0),
335
+ runners: loads.length,
336
+ reportedFree: loads.map((runner) => String(runner.reportedTotalFree ?? '—')),
337
+ detail: loads
338
+ .map((runner) => `${entry.tool} ${runner.toolUsed}/${runner.toolLimit}${runner.reportedTotalFree === 0 ? '; global free 0' : ''}`)
339
+ .join('; '),
340
+ }
341
+ : {}),
342
+ },
343
+ }
344
+ : {}),
232
345
  position: position.get(run.id) ?? null,
233
346
  agentPosition: agentPosition.get(run.id) ?? 1,
234
347
  }
235
348
  : null,
236
349
  };
237
- });
350
+ }));
238
351
  // Held runs first, the longest-running first; then queued ones in claim order.
239
352
  const order = new Map(queued.map((run, index) => [run.id, index]));
240
353
  runs.sort((a, b) => {
@@ -250,19 +363,15 @@ export async function readWorkload(conn, clock, runnerSource, query) {
250
363
  const loads = [];
251
364
  const agentsWithRuns = new Set(mine.map((run) => run.agentId));
252
365
  for (const agent of agents) {
253
- if (agent.archivedAt && !agentsWithRuns.has(agent.id))
366
+ if (agent.status !== 'enabled' && !agentsWithRuns.has(agent.id))
254
367
  continue;
255
368
  loads.push({
256
369
  agentId: agent.id,
257
370
  active: agentActive.get(agent.id) ?? 0,
258
371
  queued: agentQueued.get(agent.id) ?? 0,
259
372
  maxConcurrentRuns: agent.maxConcurrentRuns,
260
- // An online agent needs no runner; whether its model is offered is the availability's business.
261
- online: !agent.archivedAt &&
262
- (agent.type === 'online' ||
263
- online.some((runner) => entryTools(agent).some((tool) => runsTool(runner, tool)) &&
264
- (agent.runnerIds.length === 0 ||
265
- agent.runnerIds.includes(runner.id)))),
373
+ online: agent.status === 'enabled' &&
374
+ online.some((runner) => agent.modelEntries.some((entry) => runsEntry(runner, entry))),
266
375
  });
267
376
  }
268
377
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"workload.js","sourceRoot":"","sources":["../../../../server/core/runs/workload.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workload.js","sourceRoot":"","sources":["../../../../server/core/runs/workload.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * The skill library: skills in the open Agent Skills format, every save a new version, the latest one always the one
3
- * runs get. An older version can be compared and restored (as a new version). Skills are attached to agents, and as
3
+ * runs get. An older version can be compared and restored (as a new version). Skills are team defaults, and
4
4
  * defaults to a working directory or a scope the application registers. Who may change skills is the route's concern;
5
5
  * the service checks only the values.
6
6
  *
@@ -23,6 +23,7 @@ import type { IdSource } from '../../kernel/ids.js';
23
23
  import type { People } from '../../kernel/people.js';
24
24
  import type { TxRunner } from '../../kernel/tx.js';
25
25
  import { type SkillBlobs } from './blobs.js';
26
+ import { type RunSkillRow } from './skill.store.js';
26
27
  export declare const SkillInputSchema: z.ZodType<SkillInput>;
27
28
  export declare const SkillSaveSchema: z.ZodType<SkillSave>;
28
29
  export declare const SkillImportSchema: z.ZodType<SkillImport>;
@@ -48,12 +49,13 @@ export interface SkillService {
48
49
  version(id: string, version: number): Promise<SkillVersionDetail>;
49
50
  /** `version` becomes current again, as a new version, when the skill is still at `expectedRevision`. */
50
51
  restore(id: string, version: number, userId: string | null, expectedRevision: number): Promise<SkillDetail>;
52
+ validateIds(conn: DatabaseConnection, skillIds: readonly string[]): Promise<string[]>;
51
53
  attached(target: SkillTarget): Promise<string[]>;
52
54
  /** Makes `skillIds` the skills attached to the target; unknown ids are refused. */
53
55
  attach(target: SkillTarget, skillIds: readonly string[], conn?: DatabaseConnection): Promise<string[]>;
54
56
  /**
55
57
  * For a claim: the latest version of every skill attached to `targets`, each once. Where two skills share a slug,
56
- * the earlier target's wins (the claim lists the agent first).
58
+ * the later target wins.
57
59
  */
58
60
  forRun(conn: DatabaseConnection, targets: readonly SkillTarget[], runId: string): Promise<RunSkill[]>;
59
61
  /** One of a run's skills, as the runner fetches it: assembled from its blobs, cached by its version's hash. */
@@ -102,4 +104,6 @@ export interface SkillServiceDeps {
102
104
  readonly blobs: SkillBlobs;
103
105
  }
104
106
  export declare function createSkillService(deps: SkillServiceDeps): SkillService;
107
+ /** Rows are ordered by target priority; replacement preserves deterministic slug order. */
108
+ export declare function mergeRunSkills(rows: readonly RunSkillRow[], runId: string): RunSkill[];
105
109
  //# sourceMappingURL=skill.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"skill.service.d.ts","sourceRoot":"","sources":["../../../../server/core/skills/skill.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skill.service.d.ts","sourceRoot":"","sources":["../../../../server/core/skills/skill.service.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * The skill library: skills in the open Agent Skills format, every save a new version, the latest one always the one
3
- * runs get. An older version can be compared and restored (as a new version). Skills are attached to agents, and as
3
+ * runs get. An older version can be compared and restored (as a new version). Skills are team defaults, and
4
4
  * defaults to a working directory or a scope the application registers. Who may change skills is the route's concern;
5
5
  * the service checks only the values.
6
6
  *
@@ -16,12 +16,11 @@
16
16
  */
17
17
  import { RUNNER_ROUTES, routePath, } from '@nocobase/agent-protocol';
18
18
  import { z } from 'zod';
19
- import { SKILL_CONTENT_MAX_BYTES, SKILL_FILE_MAX_BYTES, SKILL_MAX_BYTES, SKILL_MAX_FILES, SKILL_UPLOAD_MAX_BYTES, formatBytes, isSkillScript, parseSkillMarkdown, skillFilePathProblem, } from '../../../shared/skills.js';
19
+ import { GLOBAL_SKILL_TARGET, SKILL_CONTENT_MAX_BYTES, SKILL_FILE_MAX_BYTES, SKILL_MAX_BYTES, SKILL_MAX_FILES, SKILL_UPLOAD_MAX_BYTES, formatBytes, isSkillScript, parseSkillMarkdown, skillFilePathProblem, } from '../../../shared/skills.js';
20
20
  import { invalid, notFound, precondition, ProtocolError, } from '../../kernel/errors.js';
21
- import { findAgent } from '../agents/agent.store.js';
22
21
  import { SizedCache } from './blobs.js';
23
22
  import { bundleFiles, deliveredMarkdown, toBundle, versionHash, } from './bundle.js';
24
- import { attachedSkillIds, attachmentsRepo, replaceAttachments, skillsRepo, versionsRepo, } from './skill.store.js';
23
+ import { attachedSkillIds, attachmentsRepo, replaceAttachments, runSkillRows, skillsRepo, versionsRepo, } from './skill.store.js';
25
24
  import { readZip, writeZip, ZipError } from './zip.js';
26
25
  const HASH = /^[0-9a-f]{64}$/u;
27
26
  const FileSchema = z
@@ -200,16 +199,7 @@ export function createSkillService(deps) {
200
199
  throw notFound('Skill version');
201
200
  return record;
202
201
  };
203
- const agentCounts = async (conn) => {
204
- const rows = await attachmentsRepo(conn).findMany({
205
- filter: { scope: 'agent' },
206
- });
207
- const counts = new Map();
208
- for (const row of rows)
209
- counts.set(row.skillId, (counts.get(row.skillId) ?? 0) + 1);
210
- return counts;
211
- };
212
- const summary = (skill, current, agents) => {
202
+ const summary = (skill, current) => {
213
203
  const manifest = manifestOf(current?.manifest);
214
204
  const scripts = manifest
215
205
  .filter((entry) => isSkillScript(entry))
@@ -229,7 +219,6 @@ export function createSkillService(deps) {
229
219
  size: current ? sizeOf(current.content, manifest) : 0,
230
220
  scriptCount: scripts.length,
231
221
  scripts,
232
- agentCount: agents,
233
222
  createdById: skill.createdById,
234
223
  createdAt: skill.createdAt,
235
224
  updatedAt: skill.updatedAt,
@@ -239,7 +228,7 @@ export function createSkillService(deps) {
239
228
  const skill = await requireSkill(conn, id);
240
229
  const current = await versionOf(conn, id, Number(skill.currentVersion));
241
230
  const rows = await attachmentsRepo(conn).findMany({
242
- filter: { skillId: id },
231
+ filter: (f) => f.and([f.string('skillId').eq(id), f.string('scope').ne('agent')]),
243
232
  sort: (sort) => [
244
233
  sort.field('scope').asc(),
245
234
  sort.field('createdAt').asc(),
@@ -247,17 +236,10 @@ export function createSkillService(deps) {
247
236
  });
248
237
  const attachments = [];
249
238
  for (const row of rows) {
250
- const agent = row.scope === 'agent' ? await findAgent(conn, row.scopeId) : null;
251
- if (row.scope === 'agent' && !agent)
252
- continue;
253
- attachments.push({
254
- scope: row.scope,
255
- scopeId: row.scopeId,
256
- name: agent?.name ?? null,
257
- });
239
+ attachments.push({ scope: row.scope, scopeId: row.scopeId, name: null });
258
240
  }
259
241
  return {
260
- ...summary(skill, current, attachments.filter((item) => item.scope === 'agent').length),
242
+ ...summary(skill, current),
261
243
  content: deliveredMarkdown(skill.slug, current.description, current.content),
262
244
  files: await entriesOf(manifestOf(current.manifest)),
263
245
  attachments,
@@ -317,7 +299,7 @@ export function createSkillService(deps) {
317
299
  },
318
300
  ]);
319
301
  }
320
- const attachIn = async (conn, target, skillIds) => {
302
+ const validateIds = async (conn, skillIds) => {
321
303
  const unique = [...new Set(skillIds)];
322
304
  if (unique.length > 0) {
323
305
  const found = await skillsRepo(conn).findMany({
@@ -328,6 +310,11 @@ export function createSkillService(deps) {
328
310
  skillIds: unique.filter((id) => !found.some((s) => s.id === id)),
329
311
  });
330
312
  }
313
+ return unique;
314
+ };
315
+ const attachIn = async (conn, target, skillIds) => {
316
+ checkSkillTarget(target);
317
+ const unique = await validateIds(conn, skillIds);
331
318
  return replaceAttachments(conn, target.scope, target.scopeId, unique, () => ids.next(), clock.now().toISOString());
332
319
  };
333
320
  const createWith = async (userId, input, note = null) => {
@@ -372,13 +359,12 @@ export function createSkillService(deps) {
372
359
  const skills = await skillsRepo(conn).findMany({
373
360
  sort: (sort) => [sort.field('name').asc(), sort.field('id').asc()],
374
361
  });
375
- const counts = await agentCounts(conn);
376
362
  const result = [];
377
363
  for (const skill of skills) {
378
364
  const current = await versionsRepo(conn).findOne({
379
365
  filter: { skillId: skill.id, version: skill.currentVersion },
380
366
  });
381
- result.push(summary(skill, current, counts.get(skill.id) ?? 0));
367
+ result.push(summary(skill, current));
382
368
  }
383
369
  return result;
384
370
  },
@@ -447,40 +433,16 @@ export function createSkillService(deps) {
447
433
  }, userId, clock.now().toISOString());
448
434
  return detail(conn, id);
449
435
  }),
450
- attached: (target) => attachedSkillIds(tx.read(), target.scope, target.scopeId),
436
+ validateIds,
437
+ async attached(target) {
438
+ checkSkillTarget(target);
439
+ return attachedSkillIds(tx.read(), target.scope, target.scopeId);
440
+ },
451
441
  attach: (target, skillIds, conn) => conn
452
442
  ? attachIn(conn, target, skillIds)
453
443
  : tx.run(({ conn: inner }) => attachIn(inner, target, skillIds)),
454
444
  async forRun(conn, targets, runId) {
455
- const seenIds = new Set();
456
- const seenSlugs = new Set();
457
- const skills = [];
458
- for (const target of targets) {
459
- for (const skillId of await attachedSkillIds(conn, target.scope, target.scopeId)) {
460
- if (seenIds.has(skillId))
461
- continue;
462
- seenIds.add(skillId);
463
- const skill = await skillsRepo(conn).findOne({
464
- filter: { id: skillId },
465
- });
466
- if (!skill || seenSlugs.has(skill.slug))
467
- continue;
468
- seenSlugs.add(skill.slug);
469
- const current = await versionOf(conn, skill.id, Number(skill.currentVersion));
470
- skills.push({
471
- slug: skill.slug,
472
- name: skill.name,
473
- version: String(skill.currentVersion),
474
- hash: current.contentHash,
475
- description: skill.description,
476
- bundleUrl: routePath(RUNNER_ROUTES.skill, {
477
- runId,
478
- slug: skill.slug,
479
- }),
480
- });
481
- }
482
- }
483
- return skills;
445
+ return mergeRunSkills(await runSkillRows(conn, targets.filter((target) => target.scope !== 'agent')), runId);
484
446
  },
485
447
  async bundle(conn, slug) {
486
448
  const skill = await skillsRepo(conn).findOne({ filter: { slug } });
@@ -622,4 +584,27 @@ export function createSkillService(deps) {
622
584
  }, graceMs),
623
585
  };
624
586
  }
587
+ function checkSkillTarget(target) {
588
+ if (target.scope === 'agent' ||
589
+ (target.scope === GLOBAL_SKILL_TARGET.scope &&
590
+ target.scopeId !== GLOBAL_SKILL_TARGET.scopeId))
591
+ throw notFound('Scope');
592
+ }
593
+ /** Rows are ordered by target priority; replacement preserves deterministic slug order. */
594
+ export function mergeRunSkills(rows, runId) {
595
+ const skills = new Map();
596
+ for (const row of rows) {
597
+ if (row.hash === null)
598
+ throw notFound('Skill version');
599
+ skills.set(row.slug, {
600
+ slug: row.slug,
601
+ name: row.name,
602
+ version: String(row.version),
603
+ hash: row.hash,
604
+ description: row.description,
605
+ bundleUrl: routePath(RUNNER_ROUTES.skill, { runId, slug: row.slug }),
606
+ });
607
+ }
608
+ return [...skills.values()];
609
+ }
625
610
  //# sourceMappingURL=skill.service.js.map