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

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 (594) hide show
  1. package/CHANGELOG.md +355 -0
  2. package/README.md +107 -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 +100 -219
  62. package/dist/client/locales/en-US.d.ts.map +1 -1
  63. package/dist/client/locales/en-US.js +105 -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 +55 -0
  74. package/dist/client/locales/runtimes.en-US.d.ts.map +1 -1
  75. package/dist/client/locales/runtimes.en-US.js +58 -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 +58 -3
  79. package/dist/client/locales/runtimes.zh-CN.js.map +1 -1
  80. package/dist/client/locales/zh-CN.d.ts.map +1 -1
  81. package/dist/client/locales/zh-CN.js +107 -221
  82. package/dist/client/locales/zh-CN.js.map +1 -1
  83. package/dist/client/online/services.d.ts.map +1 -1
  84. package/dist/client/online/services.js +5 -6
  85. package/dist/client/online/services.js.map +1 -1
  86. package/dist/client/pages/agents/agent-dialog.d.ts +9 -0
  87. package/dist/client/pages/agents/agent-dialog.d.ts.map +1 -0
  88. package/dist/client/pages/agents/agent-dialog.js +106 -0
  89. package/dist/client/pages/agents/agent-dialog.js.map +1 -0
  90. package/dist/client/pages/agents/agent-state.d.ts +11 -0
  91. package/dist/client/pages/agents/agent-state.d.ts.map +1 -0
  92. package/dist/client/pages/agents/agent-state.js +28 -0
  93. package/dist/client/pages/agents/agent-state.js.map +1 -0
  94. package/dist/client/pages/agents/index.d.ts +1 -1
  95. package/dist/client/pages/agents/index.d.ts.map +1 -1
  96. package/dist/client/pages/agents/index.js +6 -100
  97. package/dist/client/pages/agents/index.js.map +1 -1
  98. package/dist/client/pages/agents/runner-agents.d.ts +3 -0
  99. package/dist/client/pages/agents/runner-agents.d.ts.map +1 -0
  100. package/dist/client/pages/agents/runner-agents.js +172 -0
  101. package/dist/client/pages/agents/runner-agents.js.map +1 -0
  102. package/dist/client/pages/runtimes/connect.js +1 -1
  103. package/dist/client/pages/runtimes/connect.js.map +1 -1
  104. package/dist/client/pages/runtimes/index.d.ts.map +1 -1
  105. package/dist/client/pages/runtimes/index.js +3 -2
  106. package/dist/client/pages/runtimes/index.js.map +1 -1
  107. package/dist/client/pages/runtimes/runner-cells.d.ts +1 -1
  108. package/dist/client/pages/runtimes/runner-cells.d.ts.map +1 -1
  109. package/dist/client/pages/runtimes/runner-cells.js +4 -1
  110. package/dist/client/pages/runtimes/runner-cells.js.map +1 -1
  111. package/dist/client/pages/runtimes/runner-sheet.d.ts.map +1 -1
  112. package/dist/client/pages/runtimes/runner-sheet.js +12 -3
  113. package/dist/client/pages/runtimes/runner-sheet.js.map +1 -1
  114. package/dist/client/pages/runtimes/workspace-diagnostics.d.ts +9 -0
  115. package/dist/client/pages/runtimes/workspace-diagnostics.d.ts.map +1 -0
  116. package/dist/client/pages/runtimes/workspace-diagnostics.js +70 -0
  117. package/dist/client/pages/runtimes/workspace-diagnostics.js.map +1 -0
  118. package/dist/client/pages/usage/index.js +2 -2
  119. package/dist/client/pages/usage/index.js.map +1 -1
  120. package/dist/client/profile/default-agent.d.ts.map +1 -1
  121. package/dist/client/profile/default-agent.js +2 -4
  122. package/dist/client/profile/default-agent.js.map +1 -1
  123. package/dist/client/routes.d.ts +1 -1
  124. package/dist/client/routes.d.ts.map +1 -1
  125. package/dist/client/routes.js +1 -13
  126. package/dist/client/routes.js.map +1 -1
  127. package/dist/client/runs/format-wait.d.ts +21 -0
  128. package/dist/client/runs/format-wait.d.ts.map +1 -0
  129. package/dist/client/runs/format-wait.js +90 -0
  130. package/dist/client/runs/format-wait.js.map +1 -0
  131. package/dist/client/runs/subject-runs.d.ts +5 -0
  132. package/dist/client/runs/subject-runs.d.ts.map +1 -1
  133. package/dist/client/runs/subject-runs.js +13 -7
  134. package/dist/client/runs/subject-runs.js.map +1 -1
  135. package/dist/client/runs.d.ts +3 -1
  136. package/dist/client/runs.d.ts.map +1 -1
  137. package/dist/client/runs.js +3 -1
  138. package/dist/client/runs.js.map +1 -1
  139. package/dist/database/migrations/.manifest.json +48 -0
  140. package/dist/database/migrations/202610090001_ag_add_team_runner_variables.d.ts +9 -0
  141. package/dist/database/migrations/202610090001_ag_add_team_runner_variables.d.ts.map +1 -0
  142. package/dist/database/migrations/202610090001_ag_add_team_runner_variables.js +28 -0
  143. package/dist/database/migrations/202610090001_ag_add_team_runner_variables.js.map +1 -0
  144. package/dist/database/migrations/202610090002_ag_create_run_requests.d.ts +10 -0
  145. package/dist/database/migrations/202610090002_ag_create_run_requests.d.ts.map +1 -0
  146. package/dist/database/migrations/202610090002_ag_create_run_requests.js +105 -0
  147. package/dist/database/migrations/202610090002_ag_create_run_requests.js.map +1 -0
  148. package/dist/database/migrations/202610090003_ag_add_execution_history.d.ts +4 -0
  149. package/dist/database/migrations/202610090003_ag_add_execution_history.d.ts.map +1 -0
  150. package/dist/database/migrations/202610090003_ag_add_execution_history.js +17 -0
  151. package/dist/database/migrations/202610090003_ag_add_execution_history.js.map +1 -0
  152. package/dist/database/migrations/202610090004_ag_add_runner_workspace_usage.d.ts +9 -0
  153. package/dist/database/migrations/202610090004_ag_add_runner_workspace_usage.d.ts.map +1 -0
  154. package/dist/database/migrations/202610090004_ag_add_runner_workspace_usage.js +22 -0
  155. package/dist/database/migrations/202610090004_ag_add_runner_workspace_usage.js.map +1 -0
  156. package/dist/database/migrations/202610090005_ag_add_runner_variables.d.ts +10 -0
  157. package/dist/database/migrations/202610090005_ag_add_runner_variables.d.ts.map +1 -0
  158. package/dist/database/migrations/202610090005_ag_add_runner_variables.js +36 -0
  159. package/dist/database/migrations/202610090005_ag_add_runner_variables.js.map +1 -0
  160. package/dist/database/migrations/202610100001_ag_index_run_event_types.d.ts +4 -0
  161. package/dist/database/migrations/202610100001_ag_index_run_event_types.d.ts.map +1 -0
  162. package/dist/database/migrations/202610100001_ag_index_run_event_types.js +17 -0
  163. package/dist/database/migrations/202610100001_ag_index_run_event_types.js.map +1 -0
  164. package/dist/database/migrations/202610100002_ag_add_run_git_credentials.d.ts +9 -0
  165. package/dist/database/migrations/202610100002_ag_add_run_git_credentials.d.ts.map +1 -0
  166. package/dist/database/migrations/202610100002_ag_add_run_git_credentials.js +30 -0
  167. package/dist/database/migrations/202610100002_ag_add_run_git_credentials.js.map +1 -0
  168. package/dist/database/migrations/202610110001_ag_add_fresh_sessions.d.ts +4 -0
  169. package/dist/database/migrations/202610110001_ag_add_fresh_sessions.d.ts.map +1 -0
  170. package/dist/database/migrations/202610110001_ag_add_fresh_sessions.js +23 -0
  171. package/dist/database/migrations/202610110001_ag_add_fresh_sessions.js.map +1 -0
  172. package/dist/database/migrations/202610120001_ag_index_run_retries.d.ts +4 -0
  173. package/dist/database/migrations/202610120001_ag_index_run_retries.d.ts.map +1 -0
  174. package/dist/database/migrations/202610120001_ag_index_run_retries.js +17 -0
  175. package/dist/database/migrations/202610120001_ag_index_run_retries.js.map +1 -0
  176. package/dist/database/migrations/202610120002_ag_add_queue_entered_at.d.ts +4 -0
  177. package/dist/database/migrations/202610120002_ag_add_queue_entered_at.d.ts.map +1 -0
  178. package/dist/database/migrations/202610120002_ag_add_queue_entered_at.js +50 -0
  179. package/dist/database/migrations/202610120002_ag_add_queue_entered_at.js.map +1 -0
  180. package/dist/database/migrations/202610240020_ag_runner_agents.d.ts +4 -0
  181. package/dist/database/migrations/202610240020_ag_runner_agents.d.ts.map +1 -0
  182. package/dist/database/migrations/202610240020_ag_runner_agents.js +115 -0
  183. package/dist/database/migrations/202610240020_ag_runner_agents.js.map +1 -0
  184. package/dist/database/migrations/202610240040_ag_discovery_preferences.d.ts +4 -0
  185. package/dist/database/migrations/202610240040_ag_discovery_preferences.d.ts.map +1 -0
  186. package/dist/database/migrations/202610240040_ag_discovery_preferences.js +18 -0
  187. package/dist/database/migrations/202610240040_ag_discovery_preferences.js.map +1 -0
  188. package/dist/package.json +8 -10
  189. package/dist/server/cli/run-credential.js +1 -1
  190. package/dist/server/composition.d.ts +39 -37
  191. package/dist/server/composition.d.ts.map +1 -1
  192. package/dist/server/composition.js +53 -65
  193. package/dist/server/composition.js.map +1 -1
  194. package/dist/server/core/agents/agent.service.d.ts +51 -43
  195. package/dist/server/core/agents/agent.service.d.ts.map +1 -1
  196. package/dist/server/core/agents/agent.service.js +342 -317
  197. package/dist/server/core/agents/agent.service.js.map +1 -1
  198. package/dist/server/core/agents/agent.store.d.ts +24 -12
  199. package/dist/server/core/agents/agent.store.d.ts.map +1 -1
  200. package/dist/server/core/agents/agent.store.js +65 -64
  201. package/dist/server/core/agents/agent.store.js.map +1 -1
  202. package/dist/server/core/agents/agent.views.d.ts +29 -0
  203. package/dist/server/core/agents/agent.views.d.ts.map +1 -0
  204. package/dist/server/core/agents/agent.views.js +86 -0
  205. package/dist/server/core/agents/agent.views.js.map +1 -0
  206. package/dist/server/core/agents/discovery.d.ts +12 -0
  207. package/dist/server/core/agents/discovery.d.ts.map +1 -0
  208. package/dist/server/core/agents/discovery.js +39 -0
  209. package/dist/server/core/agents/discovery.js.map +1 -0
  210. package/dist/server/core/agents/index.d.ts +2 -1
  211. package/dist/server/core/agents/index.d.ts.map +1 -1
  212. package/dist/server/core/agents/index.js +2 -1
  213. package/dist/server/core/agents/index.js.map +1 -1
  214. package/dist/server/core/brief/brief.js +1 -1
  215. package/dist/server/core/brief/brief.js.map +1 -1
  216. package/dist/server/core/callers/index.d.ts +1 -1
  217. package/dist/server/core/conversations/availability.d.ts +11 -10
  218. package/dist/server/core/conversations/availability.d.ts.map +1 -1
  219. package/dist/server/core/conversations/availability.js +14 -32
  220. package/dist/server/core/conversations/availability.js.map +1 -1
  221. package/dist/server/core/conversations/chat-settings.d.ts.map +1 -1
  222. package/dist/server/core/conversations/chat-settings.js +5 -3
  223. package/dist/server/core/conversations/chat-settings.js.map +1 -1
  224. package/dist/server/core/conversations/conversation.service.d.ts +3 -5
  225. package/dist/server/core/conversations/conversation.service.d.ts.map +1 -1
  226. package/dist/server/core/conversations/conversation.service.js +161 -221
  227. package/dist/server/core/conversations/conversation.service.js.map +1 -1
  228. package/dist/server/core/conversations/ports.d.ts +3 -17
  229. package/dist/server/core/conversations/ports.d.ts.map +1 -1
  230. package/dist/server/core/reports/report.service.d.ts.map +1 -1
  231. package/dist/server/core/reports/report.service.js +5 -2
  232. package/dist/server/core/reports/report.service.js.map +1 -1
  233. package/dist/server/core/runs/availability.d.ts +18 -7
  234. package/dist/server/core/runs/availability.d.ts.map +1 -1
  235. package/dist/server/core/runs/availability.js +35 -24
  236. package/dist/server/core/runs/availability.js.map +1 -1
  237. package/dist/server/core/runs/claim.d.ts +33 -65
  238. package/dist/server/core/runs/claim.d.ts.map +1 -1
  239. package/dist/server/core/runs/claim.js +566 -307
  240. package/dist/server/core/runs/claim.js.map +1 -1
  241. package/dist/server/core/runs/eligibility.d.ts +51 -0
  242. package/dist/server/core/runs/eligibility.d.ts.map +1 -0
  243. package/dist/server/core/runs/eligibility.js +44 -0
  244. package/dist/server/core/runs/eligibility.js.map +1 -0
  245. package/dist/server/core/runs/execution-view.d.ts +10 -0
  246. package/dist/server/core/runs/execution-view.d.ts.map +1 -0
  247. package/dist/server/core/runs/execution-view.js +25 -0
  248. package/dist/server/core/runs/execution-view.js.map +1 -0
  249. package/dist/server/core/runs/execution.d.ts +13 -0
  250. package/dist/server/core/runs/execution.d.ts.map +1 -0
  251. package/dist/server/core/runs/execution.js +85 -0
  252. package/dist/server/core/runs/execution.js.map +1 -0
  253. package/dist/server/core/runs/extensions.d.ts +59 -4
  254. package/dist/server/core/runs/extensions.d.ts.map +1 -1
  255. package/dist/server/core/runs/extensions.js +45 -9
  256. package/dist/server/core/runs/extensions.js.map +1 -1
  257. package/dist/server/core/runs/git-credentials.d.ts +43 -0
  258. package/dist/server/core/runs/git-credentials.d.ts.map +1 -0
  259. package/dist/server/core/runs/git-credentials.js +129 -0
  260. package/dist/server/core/runs/git-credentials.js.map +1 -0
  261. package/dist/server/core/runs/identity.d.ts +6 -0
  262. package/dist/server/core/runs/identity.d.ts.map +1 -0
  263. package/dist/server/core/runs/identity.js +49 -0
  264. package/dist/server/core/runs/identity.js.map +1 -0
  265. package/dist/server/core/runs/index.d.ts +9 -5
  266. package/dist/server/core/runs/index.d.ts.map +1 -1
  267. package/dist/server/core/runs/index.js +9 -5
  268. package/dist/server/core/runs/index.js.map +1 -1
  269. package/dist/server/core/runs/input-gate.d.ts +34 -0
  270. package/dist/server/core/runs/input-gate.d.ts.map +1 -0
  271. package/dist/server/core/runs/input-gate.js +54 -0
  272. package/dist/server/core/runs/input-gate.js.map +1 -0
  273. package/dist/server/core/runs/lifecycle.d.ts +9 -19
  274. package/dist/server/core/runs/lifecycle.d.ts.map +1 -1
  275. package/dist/server/core/runs/lifecycle.js +76 -34
  276. package/dist/server/core/runs/lifecycle.js.map +1 -1
  277. package/dist/server/core/runs/policy.d.ts +8 -0
  278. package/dist/server/core/runs/policy.d.ts.map +1 -1
  279. package/dist/server/core/runs/policy.js +10 -0
  280. package/dist/server/core/runs/policy.js.map +1 -1
  281. package/dist/server/core/runs/ports.d.ts +84 -28
  282. package/dist/server/core/runs/ports.d.ts.map +1 -1
  283. package/dist/server/core/runs/ports.js +2 -13
  284. package/dist/server/core/runs/ports.js.map +1 -1
  285. package/dist/server/core/runs/preview.d.ts.map +1 -1
  286. package/dist/server/core/runs/preview.js +3 -3
  287. package/dist/server/core/runs/preview.js.map +1 -1
  288. package/dist/server/core/runs/run-requests.d.ts +220 -0
  289. package/dist/server/core/runs/run-requests.d.ts.map +1 -0
  290. package/dist/server/core/runs/run-requests.js +475 -0
  291. package/dist/server/core/runs/run-requests.js.map +1 -0
  292. package/dist/server/core/runs/run.service.d.ts +84 -11
  293. package/dist/server/core/runs/run.service.d.ts.map +1 -1
  294. package/dist/server/core/runs/run.service.js +433 -93
  295. package/dist/server/core/runs/run.service.js.map +1 -1
  296. package/dist/server/core/runs/run.store.d.ts +20 -3
  297. package/dist/server/core/runs/run.store.d.ts.map +1 -1
  298. package/dist/server/core/runs/run.store.js +49 -2
  299. package/dist/server/core/runs/run.store.js.map +1 -1
  300. package/dist/server/core/runs/runner-view.d.ts +6 -4
  301. package/dist/server/core/runs/runner-view.d.ts.map +1 -1
  302. package/dist/server/core/runs/runner-view.js +13 -11
  303. package/dist/server/core/runs/runner-view.js.map +1 -1
  304. package/dist/server/core/runs/selection.d.ts +13 -0
  305. package/dist/server/core/runs/selection.d.ts.map +1 -0
  306. package/dist/server/core/runs/selection.js +21 -0
  307. package/dist/server/core/runs/selection.js.map +1 -0
  308. package/dist/server/core/runs/sweeper.d.ts.map +1 -1
  309. package/dist/server/core/runs/sweeper.js +54 -10
  310. package/dist/server/core/runs/sweeper.js.map +1 -1
  311. package/dist/server/core/runs/transitions.d.ts +1 -1
  312. package/dist/server/core/runs/transitions.d.ts.map +1 -1
  313. package/dist/server/core/runs/transitions.js +69 -5
  314. package/dist/server/core/runs/transitions.js.map +1 -1
  315. package/dist/server/core/runs/workload.d.ts +3 -3
  316. package/dist/server/core/runs/workload.d.ts.map +1 -1
  317. package/dist/server/core/runs/workload.js +154 -45
  318. package/dist/server/core/runs/workload.js.map +1 -1
  319. package/dist/server/core/variables/index.d.ts +1 -1
  320. package/dist/server/core/variables/index.d.ts.map +1 -1
  321. package/dist/server/core/variables/index.js +1 -1
  322. package/dist/server/core/variables/index.js.map +1 -1
  323. package/dist/server/core/variables/variable.service.d.ts +38 -6
  324. package/dist/server/core/variables/variable.service.d.ts.map +1 -1
  325. package/dist/server/core/variables/variable.service.js +201 -30
  326. package/dist/server/core/variables/variable.service.js.map +1 -1
  327. package/dist/server/distribution/dist.service.d.ts +27 -5
  328. package/dist/server/distribution/dist.service.d.ts.map +1 -1
  329. package/dist/server/distribution/dist.service.js +41 -5
  330. package/dist/server/distribution/dist.service.js.map +1 -1
  331. package/dist/server/distribution/download-tokens.d.ts +1 -1
  332. package/dist/server/distribution/download-tokens.d.ts.map +1 -1
  333. package/dist/server/distribution/download-tokens.js +7 -4
  334. package/dist/server/distribution/download-tokens.js.map +1 -1
  335. package/dist/server/distribution/index.d.ts +11 -3
  336. package/dist/server/distribution/index.d.ts.map +1 -1
  337. package/dist/server/distribution/index.js +31 -8
  338. package/dist/server/distribution/index.js.map +1 -1
  339. package/dist/server/jobs/index.d.ts +1 -1
  340. package/dist/server/jobs/index.d.ts.map +1 -1
  341. package/dist/server/jobs/index.js +1 -1
  342. package/dist/server/jobs/index.js.map +1 -1
  343. package/dist/server/jobs/job.service.d.ts +3 -1
  344. package/dist/server/jobs/job.service.d.ts.map +1 -1
  345. package/dist/server/jobs/job.service.js +11 -3
  346. package/dist/server/jobs/job.service.js.map +1 -1
  347. package/dist/server/jobs/spec.d.ts +4 -0
  348. package/dist/server/jobs/spec.d.ts.map +1 -1
  349. package/dist/server/jobs/spec.js +6 -0
  350. package/dist/server/jobs/spec.js.map +1 -1
  351. package/dist/server/kernel/errors.d.ts +1 -1
  352. package/dist/server/kernel/errors.d.ts.map +1 -1
  353. package/dist/server/kernel/errors.js +1 -0
  354. package/dist/server/kernel/errors.js.map +1 -1
  355. package/dist/server/kernel/events.d.ts +34 -9
  356. package/dist/server/kernel/events.d.ts.map +1 -1
  357. package/dist/server/kernel/events.js.map +1 -1
  358. package/dist/server/kernel/redaction.d.ts +2 -0
  359. package/dist/server/kernel/redaction.d.ts.map +1 -1
  360. package/dist/server/kernel/redaction.js +17 -0
  361. package/dist/server/kernel/redaction.js.map +1 -1
  362. package/dist/server/online/index.d.ts +0 -5
  363. package/dist/server/online/index.d.ts.map +1 -1
  364. package/dist/server/online/index.js +0 -5
  365. package/dist/server/online/index.js.map +1 -1
  366. package/dist/server/online/routes.d.ts.map +1 -1
  367. package/dist/server/online/routes.js +6 -35
  368. package/dist/server/online/routes.js.map +1 -1
  369. package/dist/server/providers/agents.d.ts +4 -25
  370. package/dist/server/providers/agents.d.ts.map +1 -1
  371. package/dist/server/providers/agents.js +8 -75
  372. package/dist/server/providers/agents.js.map +1 -1
  373. package/dist/server/routes/admin.d.ts.map +1 -1
  374. package/dist/server/routes/admin.js +140 -201
  375. package/dist/server/routes/admin.js.map +1 -1
  376. package/dist/server/routes/chat.d.ts.map +1 -1
  377. package/dist/server/routes/chat.js +12 -70
  378. package/dist/server/routes/chat.js.map +1 -1
  379. package/dist/server/routes/index.d.ts.map +1 -1
  380. package/dist/server/routes/index.js +11 -1
  381. package/dist/server/routes/index.js.map +1 -1
  382. package/dist/server/routes/roster.d.ts.map +1 -1
  383. package/dist/server/routes/roster.js +6 -21
  384. package/dist/server/routes/roster.js.map +1 -1
  385. package/dist/server/routes/run-requests.d.ts +6 -0
  386. package/dist/server/routes/run-requests.d.ts.map +1 -0
  387. package/dist/server/routes/run-requests.js +216 -0
  388. package/dist/server/routes/run-requests.js.map +1 -0
  389. package/dist/server/routes/runners/admin.d.ts +9 -1
  390. package/dist/server/routes/runners/admin.d.ts.map +1 -1
  391. package/dist/server/routes/runners/admin.js +62 -24
  392. package/dist/server/routes/runners/admin.js.map +1 -1
  393. package/dist/server/routes/runners/dist.d.ts +5 -1
  394. package/dist/server/routes/runners/dist.d.ts.map +1 -1
  395. package/dist/server/routes/runners/dist.js +36 -9
  396. package/dist/server/routes/runners/dist.js.map +1 -1
  397. package/dist/server/routes/runners/install.d.ts.map +1 -1
  398. package/dist/server/routes/runners/install.js +98 -15
  399. package/dist/server/routes/runners/install.js.map +1 -1
  400. package/dist/server/routes/runners/runner.d.ts.map +1 -1
  401. package/dist/server/routes/runners/runner.js +25 -7
  402. package/dist/server/routes/runners/runner.js.map +1 -1
  403. package/dist/server/routes/runners/runs.d.ts +1 -1
  404. package/dist/server/routes/runners/runs.d.ts.map +1 -1
  405. package/dist/server/routes/runners/runs.js +23 -3
  406. package/dist/server/routes/runners/runs.js.map +1 -1
  407. package/dist/server/routes/schemas.d.ts +37 -8
  408. package/dist/server/routes/schemas.d.ts.map +1 -1
  409. package/dist/server/routes/schemas.js +367 -82
  410. package/dist/server/routes/schemas.js.map +1 -1
  411. package/dist/server/runners/index.d.ts +1 -0
  412. package/dist/server/runners/index.d.ts.map +1 -1
  413. package/dist/server/runners/index.js +1 -0
  414. package/dist/server/runners/index.js.map +1 -1
  415. package/dist/server/runners/runner.service.d.ts +22 -8
  416. package/dist/server/runners/runner.service.d.ts.map +1 -1
  417. package/dist/server/runners/runner.service.js +112 -14
  418. package/dist/server/runners/runner.service.js.map +1 -1
  419. package/dist/server/runners/runner.store.d.ts +10 -1
  420. package/dist/server/runners/runner.store.d.ts.map +1 -1
  421. package/dist/server/runners/runner.store.js +117 -4
  422. package/dist/server/runners/runner.store.js.map +1 -1
  423. package/dist/server/runners/sweeper.d.ts +5 -0
  424. package/dist/server/runners/sweeper.d.ts.map +1 -1
  425. package/dist/server/runners/sweeper.js +4 -2
  426. package/dist/server/runners/sweeper.js.map +1 -1
  427. package/dist/server/runners/workspaces.d.ts +33 -0
  428. package/dist/server/runners/workspaces.d.ts.map +1 -0
  429. package/dist/server/runners/workspaces.js +248 -0
  430. package/dist/server/runners/workspaces.js.map +1 -0
  431. package/dist/server/testing.d.ts +0 -2
  432. package/dist/server/testing.d.ts.map +1 -1
  433. package/dist/server/testing.js +1 -4
  434. package/dist/server/testing.js.map +1 -1
  435. package/dist/server/tokens.d.ts +12 -9
  436. package/dist/server/tokens.d.ts.map +1 -1
  437. package/dist/server/tokens.js +6 -2
  438. package/dist/server/tokens.js.map +1 -1
  439. package/dist/shared/access.d.ts +2 -6
  440. package/dist/shared/access.d.ts.map +1 -1
  441. package/dist/shared/access.js +2 -6
  442. package/dist/shared/access.js.map +1 -1
  443. package/dist/shared/agents.d.ts +128 -165
  444. package/dist/shared/agents.d.ts.map +1 -1
  445. package/dist/shared/agents.js +46 -97
  446. package/dist/shared/agents.js.map +1 -1
  447. package/dist/shared/conversations.d.ts +43 -89
  448. package/dist/shared/conversations.d.ts.map +1 -1
  449. package/dist/shared/conversations.js +5 -24
  450. package/dist/shared/conversations.js.map +1 -1
  451. package/dist/shared/model-catalog.d.ts +48 -0
  452. package/dist/shared/model-catalog.d.ts.map +1 -0
  453. package/dist/shared/model-catalog.js +148 -0
  454. package/dist/shared/model-catalog.js.map +1 -0
  455. package/dist/shared/models.js +1 -1
  456. package/dist/shared/models.js.map +1 -1
  457. package/dist/shared/runners.d.ts +107 -17
  458. package/dist/shared/runners.d.ts.map +1 -1
  459. package/dist/shared/runners.js +49 -7
  460. package/dist/shared/runners.js.map +1 -1
  461. package/dist/shared/runs.d.ts +203 -1
  462. package/dist/shared/runs.d.ts.map +1 -1
  463. package/dist/shared/runs.js +24 -0
  464. package/dist/shared/runs.js.map +1 -1
  465. package/dist/shared/variables.d.ts +22 -0
  466. package/dist/shared/variables.d.ts.map +1 -1
  467. package/dist/shared/variables.js +9 -1
  468. package/dist/shared/variables.js.map +1 -1
  469. package/package.json +24 -26
  470. package/skills/nocobase-app-plugin-agents/SKILL.md +8 -7
  471. package/skills/nocobase-app-plugin-agents/references/agents.md +30 -0
  472. package/skills/nocobase-app-plugin-agents/references/distribution.md +21 -4
  473. package/skills/nocobase-app-plugin-agents/references/extension-points.md +30 -20
  474. package/skills/nocobase-app-plugin-agents/references/model-services.md +17 -0
  475. package/skills/nocobase-app-plugin-agents/references/runners.md +15 -1
  476. package/skills/nocobase-app-plugin-agents/references/setup-and-config.md +4 -7
  477. package/skills/nocobase-app-plugin-agents/references/variables-skills-usage.md +4 -4
  478. package/skills/nocobase-app-plugin-agents/references/verification-and-troubleshooting.md +33 -32
  479. package/dist/client/chat/settings-section.d.ts +0 -5
  480. package/dist/client/chat/settings-section.d.ts.map +0 -1
  481. package/dist/client/chat/settings-section.js +0 -76
  482. package/dist/client/chat/settings-section.js.map +0 -1
  483. package/dist/client/components/agent-fields.d.ts +0 -45
  484. package/dist/client/components/agent-fields.d.ts.map +0 -1
  485. package/dist/client/components/agent-fields.js +0 -83
  486. package/dist/client/components/agent-fields.js.map +0 -1
  487. package/dist/client/components/agent-type.d.ts +0 -32
  488. package/dist/client/components/agent-type.d.ts.map +0 -1
  489. package/dist/client/components/agent-type.js +0 -80
  490. package/dist/client/components/agent-type.js.map +0 -1
  491. package/dist/client/components/model-entries.d.ts +0 -35
  492. package/dist/client/components/model-entries.d.ts.map +0 -1
  493. package/dist/client/components/model-entries.js +0 -82
  494. package/dist/client/components/model-entries.js.map +0 -1
  495. package/dist/client/hooks/use-agent-save.d.ts +0 -9
  496. package/dist/client/hooks/use-agent-save.d.ts.map +0 -1
  497. package/dist/client/hooks/use-agent-save.js +0 -40
  498. package/dist/client/hooks/use-agent-save.js.map +0 -1
  499. package/dist/client/hooks/use-model-catalog.d.ts +0 -9
  500. package/dist/client/hooks/use-model-catalog.d.ts.map +0 -1
  501. package/dist/client/hooks/use-model-catalog.js +0 -27
  502. package/dist/client/hooks/use-model-catalog.js.map +0 -1
  503. package/dist/client/lib/tool-policy.d.ts +0 -5
  504. package/dist/client/lib/tool-policy.d.ts.map +0 -1
  505. package/dist/client/lib/tool-policy.js +0 -10
  506. package/dist/client/lib/tool-policy.js.map +0 -1
  507. package/dist/client/online/default-model.d.ts +0 -5
  508. package/dist/client/online/default-model.d.ts.map +0 -1
  509. package/dist/client/online/default-model.js +0 -65
  510. package/dist/client/online/default-model.js.map +0 -1
  511. package/dist/client/pages/agents/agent-model.d.ts +0 -73
  512. package/dist/client/pages/agents/agent-model.d.ts.map +0 -1
  513. package/dist/client/pages/agents/agent-model.js +0 -172
  514. package/dist/client/pages/agents/agent-model.js.map +0 -1
  515. package/dist/client/pages/agents/detail/brief-preview.d.ts +0 -7
  516. package/dist/client/pages/agents/detail/brief-preview.d.ts.map +0 -1
  517. package/dist/client/pages/agents/detail/brief-preview.js +0 -43
  518. package/dist/client/pages/agents/detail/brief-preview.js.map +0 -1
  519. package/dist/client/pages/agents/detail/history.d.ts +0 -11
  520. package/dist/client/pages/agents/detail/history.d.ts.map +0 -1
  521. package/dist/client/pages/agents/detail/history.js +0 -149
  522. package/dist/client/pages/agents/detail/history.js.map +0 -1
  523. package/dist/client/pages/agents/detail/index.d.ts +0 -3
  524. package/dist/client/pages/agents/detail/index.d.ts.map +0 -1
  525. package/dist/client/pages/agents/detail/index.js +0 -241
  526. package/dist/client/pages/agents/detail/index.js.map +0 -1
  527. package/dist/client/pages/agents/detail/sections.d.ts +0 -22
  528. package/dist/client/pages/agents/detail/sections.d.ts.map +0 -1
  529. package/dist/client/pages/agents/detail/sections.js +0 -311
  530. package/dist/client/pages/agents/detail/sections.js.map +0 -1
  531. package/dist/client/pages/agents/detail/tab-draft.d.ts +0 -43
  532. package/dist/client/pages/agents/detail/tab-draft.d.ts.map +0 -1
  533. package/dist/client/pages/agents/detail/tab-draft.js +0 -115
  534. package/dist/client/pages/agents/detail/tab-draft.js.map +0 -1
  535. package/dist/client/pages/agents/detail/unsaved-bar.d.ts +0 -13
  536. package/dist/client/pages/agents/detail/unsaved-bar.d.ts.map +0 -1
  537. package/dist/client/pages/agents/detail/unsaved-bar.js +0 -21
  538. package/dist/client/pages/agents/detail/unsaved-bar.js.map +0 -1
  539. package/dist/client/pages/agents/new.d.ts +0 -3
  540. package/dist/client/pages/agents/new.d.ts.map +0 -1
  541. package/dist/client/pages/agents/new.js +0 -149
  542. package/dist/client/pages/agents/new.js.map +0 -1
  543. package/dist/client/pages/agents/preset-picker.d.ts +0 -8
  544. package/dist/client/pages/agents/preset-picker.d.ts.map +0 -1
  545. package/dist/client/pages/agents/preset-picker.js +0 -41
  546. package/dist/client/pages/agents/preset-picker.js.map +0 -1
  547. package/dist/server/core/consultations/consultation.service.d.ts +0 -59
  548. package/dist/server/core/consultations/consultation.service.d.ts.map +0 -1
  549. package/dist/server/core/consultations/consultation.service.js +0 -195
  550. package/dist/server/core/consultations/consultation.service.js.map +0 -1
  551. package/dist/server/core/consultations/index.d.ts +0 -3
  552. package/dist/server/core/consultations/index.d.ts.map +0 -1
  553. package/dist/server/core/consultations/index.js +0 -3
  554. package/dist/server/core/consultations/index.js.map +0 -1
  555. package/dist/server/core/consultations/prompt.d.ts +0 -41
  556. package/dist/server/core/consultations/prompt.d.ts.map +0 -1
  557. package/dist/server/core/consultations/prompt.js +0 -64
  558. package/dist/server/core/consultations/prompt.js.map +0 -1
  559. package/dist/server/core/presets/index.d.ts +0 -19
  560. package/dist/server/core/presets/index.d.ts.map +0 -1
  561. package/dist/server/core/presets/index.js +0 -28
  562. package/dist/server/core/presets/index.js.map +0 -1
  563. package/dist/server/online/cli-command.d.ts +0 -20
  564. package/dist/server/online/cli-command.d.ts.map +0 -1
  565. package/dist/server/online/cli-command.js +0 -345
  566. package/dist/server/online/cli-command.js.map +0 -1
  567. package/dist/server/online/consult-tool.d.ts +0 -54
  568. package/dist/server/online/consult-tool.d.ts.map +0 -1
  569. package/dist/server/online/consult-tool.js +0 -177
  570. package/dist/server/online/consult-tool.js.map +0 -1
  571. package/dist/server/online/executor.d.ts +0 -83
  572. package/dist/server/online/executor.d.ts.map +0 -1
  573. package/dist/server/online/executor.js +0 -714
  574. package/dist/server/online/executor.js.map +0 -1
  575. package/dist/server/online/sandbox.d.ts +0 -32
  576. package/dist/server/online/sandbox.d.ts.map +0 -1
  577. package/dist/server/online/sandbox.js +0 -246
  578. package/dist/server/online/sandbox.js.map +0 -1
  579. package/dist/server/online/scripted.d.ts +0 -12
  580. package/dist/server/online/scripted.d.ts.map +0 -1
  581. package/dist/server/online/scripted.js +0 -176
  582. package/dist/server/online/scripted.js.map +0 -1
  583. package/dist/server/online/tools.d.ts +0 -17
  584. package/dist/server/online/tools.d.ts.map +0 -1
  585. package/dist/server/online/tools.js +0 -31
  586. package/dist/server/online/tools.js.map +0 -1
  587. package/dist/server/vendor/THIRD_PARTY_LICENSES.txt +0 -782
  588. package/dist/server/vendor/just-bash.d.ts +0 -83
  589. package/dist/server/vendor/just-bash.js +0 -2102
  590. package/dist/shared/presets.d.ts +0 -30
  591. package/dist/shared/presets.d.ts.map +0 -1
  592. package/dist/shared/presets.js +0 -2
  593. package/dist/shared/presets.js.map +0 -1
  594. package/skills/nocobase-app-plugin-agents/references/online-agents.md +0 -31
@@ -1,10 +1,10 @@
1
1
  /**
2
2
  * `GET /api/agents/available`: the agents the caller may give work to, for a person (session or API key, scoped keys
3
- * included) and for an agent's run, which asks for the person who woke it. The agents' configuration is the settings
4
- * API's (`GET /api/agents`, `agents.agents` read); this answers only what picking one needs.
3
+ * included) and for an agent's run, which asks for the person who woke it: enabled agents discovered from runners and
4
+ * reported recently (`Agents.roster`). The Agent page's list is `GET /api/agents`; this answers only what picking one
5
+ * needs.
5
6
  */
6
7
  import { apiErrorResponses, cliRoute, describeRoute, listResponse, } from '@nocobase/app-server/router';
7
- import { entryTools } from '../../shared/agents.js';
8
8
  import { AGENTS_VIEW_ACTION } from '../core/callers/index.js';
9
9
  import { domainRouter } from '../kernel/http.js';
10
10
  import { personOrRunSecurity, tags } from './openapi.js';
@@ -16,7 +16,7 @@ export function createRosterRoutes(services, guard) {
16
16
  tags,
17
17
  summary: 'List the agents the caller may give work to',
18
18
  operationId: 'agentsListAvailableAgents',
19
- description: 'The agents that are not archived and that the caller (for a run, the person who woke its agent) may wake: what each is good at, and whether it can take work now. An online agent with no model of its own answers with the system default chat model, and is left out only while there is none.',
19
+ description: 'The enabled agents the caller (for a run, the person who woke its agent) may give work to, one for each coding tool and model the runners report: what each is good at, whether a runner would take the caller’s work now, whether only personal runners have it, and how many of its runs have not finished. Agents no runner reported for 14 days are left out.',
20
20
  security: personOrRunSecurity,
21
21
  responses: {
22
22
  200: listResponse(AvailableAgentSchema),
@@ -25,26 +25,11 @@ export function createRosterRoutes(services, guard) {
25
25
  ...cliRoute({
26
26
  command: 'agent list',
27
27
  action: AGENTS_VIEW_ACTION,
28
- columns: ['id', 'name', 'type', 'online', 'busy', 'goodAt'],
28
+ columns: ['id', 'name', 'online', 'busy', 'goodAt'],
29
29
  examples: ['agent list', 'agent list --json'],
30
30
  }),
31
31
  }), async (context) => {
32
- const userId = context.get('caller').userId;
33
- const hasDefault = Boolean((await services.online.services.defaults()).effectiveChat);
34
- const agents = (await services.agents.list()).filter((agent) => !agent.archivedAt &&
35
- (agent.modelEntries.length > 0 ||
36
- (agent.type === 'online' && hasDefault)) &&
37
- services.agents.mayInvoke(agent, userId));
38
- const availability = await services.availability(services.tx.read(), agents);
39
- const data = agents.map((agent) => ({
40
- id: agent.id,
41
- name: agent.name,
42
- goodAt: agent.description ?? '',
43
- type: agent.type,
44
- tool: entryTools(agent)[0] ?? null,
45
- online: availability.get(agent.id)?.online ?? false,
46
- busy: availability.get(agent.id)?.busy ?? 0,
47
- }));
32
+ const data = await services.roster(services.tx.read(), context.get('caller').userId);
48
33
  return context.json({ data, meta: { total: data.length } });
49
34
  });
50
35
  return router;
@@ -1 +1 @@
1
- {"version":3,"file":"roster.js","sourceRoot":"","sources":["../../../server/routes/roster.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"roster.js","sourceRoot":"","sources":["../../../server/routes/roster.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EACL,iBAAiB,EACjB,QAAQ,EACR,aAAa,EACb,YAAY,GACb,MAAM,6BAA6B,CAAC;AAIrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEpD,kFAAkF;AAClF,MAAM,UAAU,kBAAkB,CAChC,QAAgB,EAChB,KAAkC;IAElC,MAAM,MAAM,GAAG,YAAY,EAAY,CAAC;IACxC,MAAM,CAAC,GAAG,CACR,YAAY,EACZ,KAAK,EACL,aAAa,CAAC;QACZ,IAAI;QACJ,OAAO,EAAE,6CAA6C;QACtD,WAAW,EAAE,2BAA2B;QACxC,WAAW,EACT,mWAAmW;QACrW,QAAQ,EAAE,mBAAmB;QAC7B,SAAS,EAAE;YACT,GAAG,EAAE,YAAY,CAAC,oBAAoB,CAAC;YACvC,GAAG,iBAAiB;SACrB;QACD,GAAG,QAAQ,CAAC;YACV,OAAO,EAAE,YAAY;YACrB,MAAM,EAAE,kBAAkB;YAC1B,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;YACnD,QAAQ,EAAE,CAAC,YAAY,EAAE,mBAAmB,CAAC;SAC9C,CAAC;KACH,CAAC,EACF,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,MAAM,CAChC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,EAClB,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,CAC7B,CAAC;QACF,OAAO,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC9D,CAAC,CACF,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { Hono, MiddlewareHandler } from 'hono';
2
+ import type { Agents } from '../composition.js';
3
+ import type { AdminEnv } from './admin.js';
4
+ /** `guard` authenticates a person (no run token, no scoped key) and sets `caller`. */
5
+ export declare function createRunRequestRoutes(services: Agents, guard: MiddlewareHandler<AdminEnv>): Hono<AdminEnv>;
6
+ //# sourceMappingURL=run-requests.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-requests.d.ts","sourceRoot":"","sources":["../../../server/routes/run-requests.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAW,IAAI,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAI7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAOhD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AA2B3C,sFAAsF;AACtF,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,iBAAiB,CAAC,QAAQ,CAAC,GACjC,IAAI,CAAC,QAAQ,CAAC,CAwShB"}
@@ -0,0 +1,216 @@
1
+ /**
2
+ * Run requests, mounted at `/api/agents`: work someone asked of an agent on a subject another person answers for,
3
+ * waiting for that person (`shared/runs.ts`, `core/runs/run-requests.ts`). For people only, by their session or an
4
+ * unscoped API key: a run's token or a scoped key never settles a request, because confirming one makes a run act as
5
+ * the person who confirms.
6
+ *
7
+ * - The caller sees the requests they answer for or asked, and no other: an administrator or a manager of agents
8
+ * included, since a request holds someone's words for one person.
9
+ * - Only the responsible confirms or rejects; only the person who asked withdraws or runs it as themselves.
10
+ * - A request that is not pending answers `RUN_REQUEST_SETTLED`.
11
+ */
12
+ import { apiErrorResponse, apiErrorResponses, apiValidator, cliRoute, dataResponse, describeRoute, listResponse, } from '@nocobase/app-server/router';
13
+ import { z } from 'zod';
14
+ import { forbidden, notFound } from '../kernel/errors.js';
15
+ import { decodePageToken, domainRouter, encodePageToken, } from '../kernel/http.js';
16
+ import { tags } from './openapi.js';
17
+ import { PageTokenMetaSchema, RunRequestItemSchema, RunRequestListQuery, RunRequestOutcomeSchema, RunRequestParams, RunRequestRejectInput, RunRequestSchema, } from './schemas.js';
18
+ const RequestPosition = z.object({ createdAt: z.string(), id: z.string() });
19
+ const noRequest = apiErrorResponse(404, 'The run request does not exist, or the caller neither answers for it nor asked it.');
20
+ const settledError = (also = '') => apiErrorResponse(400, `The request is not pending any more (\`RUN_REQUEST_SETTLED\`, \`metadata.status\` its status)${also}.`);
21
+ /** `guard` authenticates a person (no run token, no scoped key) and sets `caller`. */
22
+ export function createRunRequestRoutes(services, guard) {
23
+ const router = domainRouter();
24
+ const requests = services.runs.requests;
25
+ /** The request of the path, if the caller answers for it or asked it (404 otherwise, as if it did not exist). */
26
+ const visible = async (context) => {
27
+ const userId = context.get('caller').userId;
28
+ const request = await requests.get(context.req.param('requestId') ?? '');
29
+ if (request.responsibleUserId !== userId &&
30
+ request.requestedByUserId !== userId)
31
+ throw notFound('Run request');
32
+ return request;
33
+ };
34
+ /** Only the party who may act on the request goes on: 404 when the caller is in it neither way, 403 when not as `party`. */
35
+ const party = (who) => async (context, next) => {
36
+ const request = await visible(context);
37
+ const userId = context.get('caller').userId;
38
+ if (who === 'responsible' && request.responsibleUserId !== userId)
39
+ throw forbidden('Only the person who answers for the subject may confirm or reject this request.');
40
+ if (who === 'requester' && request.requestedByUserId !== userId)
41
+ throw forbidden('Only the person who asked may withdraw this request or run it as themselves.');
42
+ await next();
43
+ };
44
+ const requestParam = apiValidator('param', RunRequestParams);
45
+ router.get('/runRequests', guard, describeRoute({
46
+ tags,
47
+ summary: 'List run requests',
48
+ operationId: 'agentsListRunRequests',
49
+ description: 'The run requests the caller answers for or asked, newest first, a page at a time: an inbox of work waiting for the caller to confirm (`role=responsible&status=pending`), or of what the caller asked of others.',
50
+ ...cliRoute({
51
+ command: 'run request list',
52
+ flags: {
53
+ subjectId: { name: 'subject' },
54
+ agentId: { name: 'agent' },
55
+ pageSize: { name: 'limit' },
56
+ },
57
+ columns: [
58
+ 'id',
59
+ 'agentName',
60
+ 'subject.kind',
61
+ 'subject.id',
62
+ 'requestedByName',
63
+ 'responsibleName',
64
+ 'status',
65
+ 'createdAt',
66
+ ],
67
+ examples: [
68
+ 'run request list --role responsible --status pending',
69
+ 'run request list --role requester',
70
+ ],
71
+ }),
72
+ responses: {
73
+ 200: listResponse(RunRequestItemSchema, PageTokenMetaSchema),
74
+ ...apiErrorResponses,
75
+ },
76
+ }), apiValidator('query', RunRequestListQuery), async (context) => {
77
+ const query = context.req.valid('query');
78
+ const found = await requests.list({
79
+ userId: context.get('caller').userId,
80
+ ...(query.role ? { role: query.role } : {}),
81
+ ...(query.status ? { status: query.status } : {}),
82
+ ...(query.subjectKind
83
+ ? {
84
+ subject: {
85
+ kind: query.subjectKind,
86
+ ...(query.subjectId ? { id: query.subjectId } : {}),
87
+ },
88
+ }
89
+ : {}),
90
+ ...(query.agentId ? { agentId: query.agentId } : {}),
91
+ limit: query.pageSize + 1,
92
+ ...(query.pageToken === undefined
93
+ ? {}
94
+ : { cursor: decodePageToken(query.pageToken, RequestPosition) }),
95
+ });
96
+ const page = found.slice(0, query.pageSize);
97
+ const last = page.at(-1);
98
+ return context.json({
99
+ data: page,
100
+ meta: found.length > query.pageSize && last
101
+ ? {
102
+ nextPageToken: encodePageToken({
103
+ createdAt: last.createdAt,
104
+ id: last.id,
105
+ }),
106
+ }
107
+ : {},
108
+ });
109
+ });
110
+ router.get('/runRequests/:requestId', guard, describeRoute({
111
+ tags,
112
+ summary: 'Get a run request',
113
+ operationId: 'agentsGetRunRequest',
114
+ description: 'With the input as it was asked, in full: what confirming it runs. For the person who answers for it and the person who asked it.',
115
+ ...cliRoute({
116
+ command: 'run request get',
117
+ args: ['requestId'],
118
+ flags: { requestId: { name: 'request' } },
119
+ }),
120
+ responses: {
121
+ 200: dataResponse(RunRequestItemSchema),
122
+ 404: noRequest,
123
+ ...apiErrorResponses,
124
+ },
125
+ }), requestParam, async (context) => context.json({ data: await visible(context) }));
126
+ router.post('/runRequests/:requestId/confirm', guard, party('responsible'), describeRoute({
127
+ tags,
128
+ summary: 'Confirm a run request',
129
+ operationId: 'agentsConfirmRunRequest',
130
+ description: "Runs the work as the request's responsible, who must still be able to wake the agent. When the subject binds a current responsible resolver, it is rechecked; otherwise the application must reassign requests when responsibility changes. Administrators and agent managers cannot confirm for them. The original input joins only a run acting as the caller.",
131
+ ...cliRoute({
132
+ command: 'run request confirm',
133
+ args: ['requestId'],
134
+ flags: { requestId: { name: 'request' } },
135
+ confirm: 'Run this request as you?',
136
+ }),
137
+ responses: {
138
+ 200: dataResponse(RunRequestOutcomeSchema),
139
+ 400: settledError(', or the agent is archived (`AGENT_ARCHIVED`)'),
140
+ 403: apiErrorResponse(403, 'The caller does not answer for the subject, or may no longer wake the agent (`FORBIDDEN`).'),
141
+ 404: noRequest,
142
+ 409: apiErrorResponse(409, 'The request changed concurrently; read it again.'),
143
+ 401: apiErrorResponse(401),
144
+ 500: apiErrorResponse(500),
145
+ },
146
+ }), requestParam, async (context) => context.json({
147
+ data: await requests.confirm(context.req.valid('param').requestId, context.get('caller').userId),
148
+ }));
149
+ router.post('/runRequests/:requestId/reject', guard, party('responsible'), describeRoute({
150
+ tags,
151
+ summary: 'Reject a run request',
152
+ operationId: 'agentsRejectRunRequest',
153
+ description: "Declines the work; only the request's responsible may. The subject's current responsible resolver is rechecked when bound; otherwise the application must reassign requests on responsibility changes. The person who asked may run it as themselves by asking again.",
154
+ ...cliRoute({
155
+ command: 'run request reject',
156
+ args: ['requestId'],
157
+ flags: { requestId: { name: 'request' } },
158
+ }),
159
+ responses: {
160
+ 200: dataResponse(RunRequestSchema),
161
+ 400: settledError(),
162
+ 409: apiErrorResponse(409, 'The request changed concurrently; read it again.'),
163
+ 404: noRequest,
164
+ ...apiErrorResponses,
165
+ },
166
+ }), requestParam, apiValidator('json', RunRequestRejectInput), async (context) => {
167
+ const { note } = context.req.valid('json');
168
+ return context.json({
169
+ data: await requests.reject(context.req.valid('param').requestId, context.get('caller').userId, note),
170
+ });
171
+ });
172
+ router.post('/runRequests/:requestId/withdraw', guard, party('requester'), describeRoute({
173
+ tags,
174
+ summary: 'Withdraw a run request',
175
+ operationId: 'agentsWithdrawRunRequest',
176
+ description: 'Takes the request back; only the person who asked may.',
177
+ ...cliRoute({
178
+ command: 'run request withdraw',
179
+ args: ['requestId'],
180
+ flags: { requestId: { name: 'request' } },
181
+ }),
182
+ responses: {
183
+ 200: dataResponse(RunRequestSchema),
184
+ 400: settledError(),
185
+ 409: apiErrorResponse(409, 'The request changed concurrently; read it again.'),
186
+ 404: noRequest,
187
+ ...apiErrorResponses,
188
+ },
189
+ }), requestParam, async (context) => context.json({
190
+ data: await requests.withdraw(context.req.valid('param').requestId, context.get('caller').userId),
191
+ }));
192
+ router.post('/runRequests/:requestId/runAsMe', guard, party('requester'), describeRoute({
193
+ tags,
194
+ summary: 'Run a run request as the caller',
195
+ operationId: 'agentsRunRunRequestAsMe',
196
+ description: 'The person who asked runs the work as themselves now, without waiting for confirmation: on their own runner or a team runner, never on the runners of the person who answers for the subject. A pending request is withdrawn; an expired one that went nowhere may be run this way once. Refused with `NO_RUNNER_AVAILABLE` when no runner the caller may use can run the agent now, so the work never waits unseen.',
197
+ ...cliRoute({
198
+ command: 'run request run-as-me',
199
+ args: ['requestId'],
200
+ flags: { requestId: { name: 'request' } },
201
+ }),
202
+ responses: {
203
+ 200: dataResponse(RunRequestOutcomeSchema),
204
+ 400: settledError(', no runner the caller may use can run the agent (`NO_RUNNER_AVAILABLE`), or the agent is archived (`AGENT_ARCHIVED`)'),
205
+ 403: apiErrorResponse(403, 'The caller did not ask it, or may not wake the agent (`FORBIDDEN`).'),
206
+ 404: noRequest,
207
+ 409: apiErrorResponse(409, 'The request changed concurrently; read it again.'),
208
+ 401: apiErrorResponse(401),
209
+ 500: apiErrorResponse(500),
210
+ },
211
+ }), requestParam, async (context) => context.json({
212
+ data: await requests.runAsRequester(context.req.valid('param').requestId, context.get('caller').userId),
213
+ }));
214
+ return router;
215
+ }
216
+ //# sourceMappingURL=run-requests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-requests.js","sourceRoot":"","sources":["../../../server/routes/run-requests.ts"],"names":[],"mappings":"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"}
@@ -13,8 +13,16 @@ export interface AdminEnv {
13
13
  runnerToManage: Runner;
14
14
  };
15
15
  }
16
+ /** Where a manager revoking someone else's runner is recorded: the application's logger. */
17
+ export interface AdminAuditLogger {
18
+ info(details: Readonly<Record<string, unknown>>, message: string): void;
19
+ }
20
+ export interface AdminRoutesOptions {
21
+ /** Without one, the record goes to the console. */
22
+ readonly logger?: AdminAuditLogger;
23
+ }
16
24
  /**
17
25
  * `guard` authenticates the request and sets `caller`; the route contribution installs the real one, tests a fake.
18
26
  */
19
- export declare function createAdminRoutes(services: Agents, guard: MiddlewareHandler<AdminEnv>): Hono<AdminEnv>;
27
+ export declare function createAdminRoutes(services: Agents, guard: MiddlewareHandler<AdminEnv>, options?: AdminRoutesOptions): Hono<AdminEnv>;
20
28
  //# sourceMappingURL=admin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../../../server/routes/runners/admin.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAW,IAAI,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAE7D,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,KAAK,EACV,MAAM,EAIP,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAiBnD,iFAAiF;AACjF,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACnE;AAED,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE;QAAE,MAAM,EAAE,WAAW,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5D;AAMD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,iBAAiB,CAAC,QAAQ,CAAC,GACjC,IAAI,CAAC,QAAQ,CAAC,CAiXhB"}
1
+ {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../../../server/routes/runners/admin.ts"],"names":[],"mappings":"AAiCA,OAAO,KAAK,EAAW,IAAI,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAE7D,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,KAAK,EACV,MAAM,EAIP,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAiBnD,iFAAiF;AACjF,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACnE;AAED,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE;QAAE,MAAM,EAAE,WAAW,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5D;AAMD,4FAA4F;AAC5F,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACzE;AAED,MAAM,WAAW,kBAAkB;IACjC,mDAAmD;IACnD,QAAQ,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC;CACpC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,iBAAiB,CAAC,QAAQ,CAAC,EAClC,OAAO,GAAE,kBAAuB,GAC/B,IAAI,CAAC,QAAQ,CAAC,CAqahB"}
@@ -3,10 +3,14 @@
3
3
  * and registration tokens. Every route is behind the guard the route contribution passes (a signed-in user and their
4
4
  * authorization context); what each caller may do is checked here.
5
5
  *
6
- * - `agents.runners` read/manage: every runner; adding a team runner, changing, revoking and deleting any runner.
7
- * Anyone signed in may add a personal runner and manage their own runners, including sharing one with the team and
8
- * choosing which coding tools it runs. Reading agents (`agents.agents` read) also shows every runner, to pick where
9
- * an agent runs.
6
+ * - `agents.runners` read/manage: every runner; adding a team runner, and revoking and deleting any runner. Revoking
7
+ * someone else's runner is an emergency measure: its owner is told, and the server log records who did it.
8
+ * - Changing a runner (its name, slots, coding tools, policy and trust) is its owner's alone, because the runner is
9
+ * their machine with their tools' sign-ins and credentials: a manager who could share it with the team would send
10
+ * everyone's work there. A runner whose owner can no longer act (no owner recorded, or an owner the application's
11
+ * directory reports disabled or deleted, `people.inactive`) is changed by managers of runners, or nobody could.
12
+ * Anyone signed in may add a personal runner and change their own, including sharing it with the
13
+ * team. Reading agents (`agents.agents` read) also shows every runner, to pick where an agent runs.
10
14
  * - A runner's page: whoever sees a runner sees which agents it takes (`takes`), what it holds now
11
15
  * (`GET /agents/runners/:runnerId/work`: its runs as the caller may see them, then its jobs) and its latest runs
12
16
  * (`GET /agents/runners/:runnerId/runs`). What identifies its machine (its host name, where its tools are installed)
@@ -27,13 +31,21 @@ function caller(context) {
27
31
  /**
28
32
  * `guard` authenticates the request and sets `caller`; the route contribution installs the real one, tests a fake.
29
33
  */
30
- export function createAdminRoutes(services, guard) {
34
+ export function createAdminRoutes(services, guard, options = {}) {
35
+ const audit = options.logger ?? {
36
+ info: (details, message) => console.info(message, details),
37
+ };
31
38
  const router = domainRouter();
32
39
  const runnerParam = apiValidator('param', RunnerParams);
33
40
  const notVisible = apiErrorResponse(404, 'The runner does not exist, or the caller may not see it.');
34
- const manageErrors = {
41
+ const editErrors = {
35
42
  ...apiErrorResponses,
36
- 403: apiErrorResponse(403, "Only the runner's owner or a manager of runners (`agents.runners` manage) may change it."),
43
+ 403: apiErrorResponse(403, "Only the runner's owner may change it; a manager of runners (`agents.runners` manage) only once its owner can no longer act."),
44
+ 404: notVisible,
45
+ };
46
+ const revokeErrors = {
47
+ ...apiErrorResponses,
48
+ 403: apiErrorResponse(403, "Only the runner's owner or a manager of runners (`agents.runners` manage) may revoke or delete it."),
37
49
  404: notVisible,
38
50
  };
39
51
  /** Whether the caller sees every runner: `agents.runners` read, or `agents.agents` read (to pick where one runs). */
@@ -51,14 +63,18 @@ export function createAdminRoutes(services, guard) {
51
63
  }
52
64
  return found;
53
65
  };
66
+ /** Whether nobody can act as the runner's owner: none recorded, or one the directory reports disabled or deleted. */
67
+ const ownerGone = async (runner) => runner.ownerUserId === null ||
68
+ (await services.people.inactive(services.tx.read(), [runner.ownerUserId])).has(runner.ownerUserId);
54
69
  /** What the caller may do with a runner, or 404 when they may not see it. */
55
70
  const runnerRights = async (context, runner) => {
56
71
  const who = caller(context);
57
72
  const own = runner.ownerUserId === who.userId;
58
- const manage = own || (await who.can('agents.runners', 'manage'));
59
- const see = manage || (await seesEveryRunner(who));
60
- const machine = manage || (see && (await mayUseAgents(who)));
61
- return { see, manage, machine };
73
+ const revoke = own || (await who.can('agents.runners', 'manage'));
74
+ const edit = own || (revoke && (await ownerGone(runner)));
75
+ const see = revoke || (await seesEveryRunner(who));
76
+ const machine = revoke || (see && (await mayUseAgents(who)));
77
+ return { see, edit, revoke, machine };
62
78
  };
63
79
  /** The agents each runner takes. */
64
80
  const takesOf = async (runners) => runners.length > 0
@@ -73,20 +89,32 @@ export function createAdminRoutes(services, guard) {
73
89
  activeJobs: held.jobs,
74
90
  activeByTool: held.byTool ?? {},
75
91
  takes: takes.get(runner.id) ?? [],
76
- canManage: rights.manage,
77
- canChangeTrust: rights.manage,
92
+ canManage: rights.edit,
93
+ canChangeTrust: rights.edit,
94
+ canRevoke: rights.revoke,
78
95
  updateVersion: (await upgradeFor(services.dist, runner))?.latestVersion ?? null,
79
96
  requiredProtocol: { min: MIN_PROTOCOL_VERSION, max: PROTOCOL_VERSION },
80
97
  offersJobs: services.jobs.kinds().length > 0,
81
98
  };
82
99
  };
83
- const manageableRunner = async (context) => {
100
+ /** The runner named in the path if the caller may change it: 404 when they may not see it, 403 when not theirs. */
101
+ const editableRunner = async (context) => {
102
+ const runner = await services.runners.get(context.req.param('runnerId') ?? '');
103
+ const rights = await runnerRights(context, runner);
104
+ if (!rights.see)
105
+ throw notFound('Runner');
106
+ if (!rights.edit)
107
+ throw forbidden("Only the runner's owner may change it; a manager of runners only once its owner can no longer act.");
108
+ return runner;
109
+ };
110
+ /** The runner named in the path if the caller may revoke or delete it: 404 when they may not see it, else 403. */
111
+ const revocableRunner = async (context) => {
84
112
  const runner = await services.runners.get(context.req.param('runnerId') ?? '');
85
113
  const rights = await runnerRights(context, runner);
86
114
  if (!rights.see)
87
115
  throw notFound('Runner');
88
- if (!rights.manage)
89
- throw forbidden("Only the runner's owner or a manager of runners may change it.");
116
+ if (!rights.revoke)
117
+ throw forbidden("Only the runner's owner or a manager of runners may revoke or delete it.");
90
118
  return runner;
91
119
  };
92
120
  // Runners.
@@ -228,9 +256,10 @@ export function createAdminRoutes(services, guard) {
228
256
  args: ['runnerId'],
229
257
  flags: { runnerId: { name: 'runtime' } },
230
258
  }),
231
- responses: { 200: dataResponse(RunnerSchema), ...manageErrors },
259
+ description: "Its owner's alone, a manager of runners (`agents.runners` manage) included; a runner whose owner can no longer act (none recorded, or disabled or deleted) is changed by managers of runners.",
260
+ responses: { 200: dataResponse(RunnerSchema), ...editErrors },
232
261
  }), runnerParam, async (context, next) => {
233
- context.set('runnerToManage', await manageableRunner(context));
262
+ context.set('runnerToManage', await editableRunner(context));
234
263
  await next();
235
264
  }, apiValidator('json', RunnerPatchInput), async (context) => context.json({
236
265
  data: await services.runners.update(context.get('runnerToManage').id, context.req.valid('json')),
@@ -245,11 +274,20 @@ export function createAdminRoutes(services, guard) {
245
274
  flags: { runnerId: { name: 'runtime' } },
246
275
  confirm: 'Revoke this runtime? It stops taking work and must register again.',
247
276
  }),
248
- description: 'Revokes the runner and its keys; the runs and jobs it held go back to the queue.',
249
- responses: { 200: dataResponse(RunnerSchema), ...manageErrors },
277
+ description: "Revokes the runner and its keys; the runs and jobs it held go back to the queue. Its owner or a manager of runners (`agents.runners` manage); a manager revoking someone else's runner tells its owner.",
278
+ responses: { 200: dataResponse(RunnerSchema), ...revokeErrors },
250
279
  }), runnerParam, async (context) => {
251
- const runner = await manageableRunner(context);
252
- const revoked = await services.runners.revoke(runner.id);
280
+ const runner = await revocableRunner(context);
281
+ const by = caller(context).userId;
282
+ const revoked = await services.runners.revoke(runner.id, { by });
283
+ if (runner.ownerUserId !== null && runner.ownerUserId !== by)
284
+ audit.info({
285
+ event: 'agents.runner.revoked',
286
+ runnerId: runner.id,
287
+ runnerName: runner.name,
288
+ ownerUserId: runner.ownerUserId,
289
+ actorId: by,
290
+ }, "A manager of runners revoked someone else's runner.");
253
291
  // What it held goes back to the queue now rather than at the next sweep.
254
292
  await services.sweeper.sweep();
255
293
  return context.json({ data: revoked });
@@ -267,11 +305,11 @@ export function createAdminRoutes(services, guard) {
267
305
  description: 'Deletes a revoked runner; its past runs keep its id.',
268
306
  responses: {
269
307
  204: emptyResponse(),
270
- ...manageErrors,
308
+ ...revokeErrors,
271
309
  400: apiErrorResponse(400, 'The runner is not revoked (`RUNNER_NOT_REVOKED`).'),
272
310
  },
273
311
  }), runnerParam, async (context) => {
274
- const runner = await manageableRunner(context);
312
+ const runner = await revocableRunner(context);
275
313
  await services.runners.remove(runner.id);
276
314
  return context.body(null, 204);
277
315
  });
@@ -1 +1 @@
1
- {"version":3,"file":"admin.js","sourceRoot":"","sources":["../../../../server/routes/runners/admin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EACL,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,aAAa,EACb,YAAY,GACb,MAAM,6BAA6B,CAAC;AAWrC,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EACL,4BAA4B,EAC5B,uBAAuB,EACvB,oBAAoB,EACpB,YAAY,EACZ,gBAAgB,EAChB,qBAAqB,EACrB,YAAY,EACZ,mBAAmB,GACpB,MAAM,eAAe,CAAC;AAYvB,SAAS,MAAM,CAAC,OAA0B;IACxC,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC/B,QAAgB,EAChB,KAAkC;IAElC,MAAM,MAAM,GAAG,YAAY,EAAY,CAAC;IACxC,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACxD,MAAM,UAAU,GAAG,gBAAgB,CACjC,GAAG,EACH,0DAA0D,CAC3D,CAAC;IACF,MAAM,YAAY,GAAG;QACnB,GAAG,iBAAiB;QACpB,GAAG,EAAE,gBAAgB,CACnB,GAAG,EACH,0FAA0F,CAC3F;QACD,GAAG,EAAE,UAAU;KAChB,CAAC;IAEF,qHAAqH;IACrH,MAAM,eAAe,GAAG,KAAK,EAAE,GAAgB,EAAoB,EAAE,CACnE,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;QACzC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;IAE3C,8EAA8E;IAC9E,MAAM,UAAU,GAAG,IAAI,OAAO,EAAiC,CAAC;IAChE,MAAM,YAAY,GAAG,CAAC,GAAgB,EAAoB,EAAE;QAC1D,IAAI,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,QAAQ,CAAC,MAAM;iBACpB,IAAI,EAAE;iBACN,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CACf,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CACrE,CAAC;YACJ,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,6EAA6E;IAC7E,MAAM,YAAY,GAAG,KAAK,EACxB,OAA0B,EAC1B,MAAc,EAKb,EAAE;QACH,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,KAAK,GAAG,CAAC,MAAM,CAAC;QAC9C,MAAM,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC,CAAC;QAClE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC7D,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IAClC,CAAC,CAAC;IAEF,oCAAoC;IACpC,MAAM,OAAO,GAAG,KAAK,EACnB,OAA0B,EACiC,EAAE,CAC7D,OAAO,CAAC,MAAM,GAAG,CAAC;QAChB,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC;QACpC,CAAC,CAAC,IAAI,GAAG,EAAuC,CAAC;IAErD,MAAM,eAAe,GAAG,KAAK,EAC3B,OAA0B,EAC1B,MAAc,EACd,KAAuD,EAC/B,EAAE;QAC1B,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QACtE,OAAO;YACL,GAAG,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC;YAC1C,UAAU,EAAE,IAAI,CAAC,IAAI;YACrB,UAAU,EAAE,IAAI,CAAC,IAAI;YACrB,YAAY,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE;YAC/B,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE;YACjC,SAAS,EAAE,MAAM,CAAC,MAAM;YACxB,cAAc,EAAE,MAAM,CAAC,MAAM;YAC7B,aAAa,EACX,CAAC,MAAM,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,aAAa,IAAI,IAAI;YAClE,gBAAgB,EAAE,EAAE,GAAG,EAAE,oBAAoB,EAAE,GAAG,EAAE,gBAAgB,EAAE;YACtE,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,GAAG,CAAC;SAC7C,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,KAAK,EAC5B,OAA0B,EACT,EAAE;QACnB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,GAAG,CACvC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CACpC,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM,CAAC,GAAG;YAAE,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,CAAC,MAAM;YAChB,MAAM,SAAS,CACb,gEAAgE,CACjE,CAAC;QACJ,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF,WAAW;IACX,2EAA2E;IAC3E,MAAM,aAAa,GAAG,KAAK,EAAE,OAA0B,EAAmB,EAAE;QAC1E,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,GAAG,CACvC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CACpC,CAAC;QACF,IAAI,CAAC,CAAC,MAAM,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG;YAAE,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACzE,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF,MAAM,CAAC,GAAG,CACR,GAAG,EACH,KAAK,EACL,aAAa,CAAC;QACZ,IAAI;QACJ,OAAO,EAAE,cAAc;QACvB,WAAW,EAAE,mBAAmB;QAChC,GAAG,QAAQ,CAAC;YACV,OAAO,EAAE,cAAc;YACvB,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,CAAC;SACtE,CAAC;QACF,WAAW,EACT,2HAA2H;QAC7H,SAAS,EAAE;YACT,GAAG,EAAE,YAAY,CAAC,mBAAmB,CAAC;YACtC,GAAG,iBAAiB;SACrB;KACF,CAAC,EACF,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,MAAM,IAAI,MAAM,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE;YAChD,IAAI,CAAC,MAAM,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG;gBAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtE,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,IAAI,GAAoB,EAAE,CAAC;QACjC,KAAK,MAAM,MAAM,IAAI,OAAO;YAC1B,IAAI,CAAC,IAAI,CAAC,MAAM,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QAC3D,OAAO,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC9D,CAAC,CACF,CAAC;IACF,MAAM,CAAC,IAAI,CACT,qBAAqB,EACrB,KAAK,EACL,aAAa,CAAC;QACZ,IAAI;QACJ,OAAO,EAAE,oCAAoC;QAC7C,WAAW,EAAE,qCAAqC;QAClD,GAAG,QAAQ,CAAC;YACV,OAAO,EAAE,sBAAsB;YAC/B,QAAQ,EAAE,CAAC,mCAAmC,CAAC;SAChD,CAAC;QACF,WAAW,EACT,+NAA+N;QACjO,SAAS,EAAE;YACT,GAAG,EAAE,YAAY,CAAC,uBAAuB,EAAE,UAAU,CAAC;YACtD,GAAG,iBAAiB;SACrB;KACF,CAAC,EACF,YAAY,CAAC,MAAM,EAAE,4BAA4B,CAAC,EAClD,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACxC,IACE,KAAK,CAAC,KAAK,KAAK,MAAM;YACtB,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;YAE5C,MAAM,SAAS,CACb,8EAA8E,CAC/E,CAAC;QACJ,OAAO,OAAO,CAAC,IAAI,CACjB;YACE,IAAI,EAAE,MAAM,QAAQ,CAAC,OAAO,CAAC,uBAAuB,CAClD,GAAG,CAAC,MAAM,EACV,KAAK,CACN;SACF,EACD,GAAG,CACJ,CAAC;IACJ,CAAC,CACF,CAAC;IACF,MAAM,CAAC,GAAG,CACR,YAAY,EACZ,KAAK,EACL,aAAa,CAAC;QACZ,IAAI;QACJ,OAAO,EAAE,cAAc;QACvB,WAAW,EAAE,iBAAiB;QAC9B,GAAG,QAAQ,CAAC;YACV,OAAO,EAAE,aAAa;YACtB,IAAI,EAAE,CAAC,UAAU,CAAC;YAClB,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;SACzC,CAAC;QACF,SAAS,EAAE;YACT,GAAG,EAAE,YAAY,CAAC,mBAAmB,CAAC;YACtC,GAAG,iBAAiB;YACpB,GAAG,EAAE,UAAU;SAChB;KACF,CAAC,EACF,WAAW,EACX,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;QAC5C,OAAO,OAAO,CAAC,IAAI,CAAC;YAClB,IAAI,EAAE,MAAM,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;SACtE,CAAC,CAAC;IACL,CAAC,CACF,CAAC;IACF,0DAA0D;IAC1D,MAAM,CAAC,GAAG,CACR,iBAAiB,EACjB,KAAK,EACL,aAAa,CAAC;QACZ,IAAI;QACJ,OAAO,EAAE,8BAA8B;QACvC,WAAW,EAAE,sBAAsB;QACnC,GAAG,QAAQ,CAAC;YACV,OAAO,EAAE,cAAc;YACvB,IAAI,EAAE,CAAC,UAAU,CAAC;YAClB,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;YACxC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,CAAC;SACxD,CAAC;QACF,WAAW,EACT,2FAA2F;QAC7F,SAAS,EAAE;YACT,GAAG,EAAE,YAAY,CAAC,oBAAoB,CAAC;YACvC,GAAG,iBAAiB;YACpB,GAAG,EAAE,UAAU;SAChB;KACF,CAAC,EACF,WAAW,EACX,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,IAAI,CACzC,MAAM,EACN,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CACvB,CAAC;QACF,MAAM,IAAI,GAAG,CACX,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAC9D,CAAC,MAAM,CACN,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,YAAY,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,CACjE,CAAC;QACF,MAAM,IAAI,GAAqB;YAC7B,GAAG,IAAI;YACP,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBACpB,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,IAAI,EAAE,KAAc;gBACpB,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI;gBAC5B,MAAM,EAAE,GAAG,CAAC,MAAkC;gBAC9C,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,YAAY;gBAC5C,IAAI,EAAE,IAAI;aACX,CAAC,CAAC;SACJ,CAAC;QACF,OAAO,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC9D,CAAC,CACF,CAAC;IACF,MAAM,CAAC,GAAG,CACR,iBAAiB,EACjB,KAAK,EACL,aAAa,CAAC;QACZ,IAAI;QACJ,OAAO,EAAE,6BAA6B;QACtC,WAAW,EAAE,sBAAsB;QACnC,GAAG,QAAQ,CAAC;YACV,OAAO,EAAE,cAAc;YACvB,IAAI,EAAE,CAAC,UAAU,CAAC;YAClB,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;YACxC,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,CAAC;SAChD,CAAC;QACF,WAAW,EACT,mHAAmH;QACrH,SAAS,EAAE;YACT,GAAG,EAAE,YAAY,CAAC,qBAAqB,CAAC;YACxC,GAAG,iBAAiB;YACpB,GAAG,EAAE,UAAU;SAChB;KACF,CAAC,EACF,WAAW,EACX,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,MAAM,CAC3C,MAAM,EACN,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CACvB,CAAC;QACF,OAAO,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC9D,CAAC,CACF,CAAC;IACF,MAAM,CAAC,KAAK,CACV,YAAY,EACZ,KAAK,EACL,aAAa,CAAC;QACZ,IAAI;QACJ,OAAO,EAAE,iBAAiB;QAC1B,WAAW,EAAE,oBAAoB;QACjC,GAAG,QAAQ,CAAC;YACV,OAAO,EAAE,gBAAgB;YACzB,IAAI,EAAE,CAAC,UAAU,CAAC;YAClB,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;SACzC,CAAC;QACF,SAAS,EAAE,EAAE,GAAG,EAAE,YAAY,CAAC,YAAY,CAAC,EAAE,GAAG,YAAY,EAAE;KAChE,CAAC,EACF,WAAW,EACX,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACtB,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;QAC/D,MAAM,IAAI,EAAE,CAAC;IACf,CAAC,EACD,YAAY,CAAC,MAAM,EAAE,gBAAgB,CAAC,EACtC,KAAK,EAAE,OAAO,EAAE,EAAE,CAChB,OAAO,CAAC,IAAI,CAAC;QACX,IAAI,EAAE,MAAM,QAAQ,CAAC,OAAO,CAAC,MAAM,CACjC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,EAAE,EAChC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAC1B;KACF,CAAC,CACL,CAAC;IACF,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,KAAK,EACL,aAAa,CAAC;QACZ,IAAI;QACJ,OAAO,EAAE,iBAAiB;QAC1B,WAAW,EAAE,oBAAoB;QACjC,GAAG,QAAQ,CAAC;YACV,OAAO,EAAE,gBAAgB;YACzB,IAAI,EAAE,CAAC,UAAU,CAAC;YAClB,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;YACxC,OAAO,EACL,oEAAoE;SACvE,CAAC;QACF,WAAW,EACT,kFAAkF;QACpF,SAAS,EAAE,EAAE,GAAG,EAAE,YAAY,CAAC,YAAY,CAAC,EAAE,GAAG,YAAY,EAAE;KAChE,CAAC,EACF,WAAW,EACX,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACzD,yEAAyE;QACzE,MAAM,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC/B,OAAO,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IACzC,CAAC,CACF,CAAC;IACF,MAAM,CAAC,MAAM,CACX,YAAY,EACZ,KAAK,EACL,aAAa,CAAC;QACZ,IAAI;QACJ,OAAO,EAAE,iBAAiB;QAC1B,WAAW,EAAE,oBAAoB;QACjC,GAAG,QAAQ,CAAC;YACV,OAAO,EAAE,gBAAgB;YACzB,IAAI,EAAE,CAAC,UAAU,CAAC;YAClB,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;YACxC,OAAO,EAAE,sBAAsB;SAChC,CAAC;QACF,WAAW,EAAE,sDAAsD;QACnE,SAAS,EAAE;YACT,GAAG,EAAE,aAAa,EAAE;YACpB,GAAG,YAAY;YACf,GAAG,EAAE,gBAAgB,CACnB,GAAG,EACH,mDAAmD,CACpD;SACF;KACF,CAAC,EACF,WAAW,EACX,KAAK,EAAE,OAAO,EAAE,EAAE;QAChB,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC/C,MAAM,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACzC,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACjC,CAAC,CACF,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"admin.js","sourceRoot":"","sources":["../../../../server/routes/runners/admin.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type DistArtifact } from '@nocobase/agent-protocol';
1
+ import { type DistArtifact, type DistNpmPackage, type DistResolution } from '@nocobase/agent-protocol';
2
2
  import type { Hono, MiddlewareHandler } from 'hono';
3
3
  import type { Agents } from '../../composition.js';
4
4
  import type { AdminEnv } from './admin.js';
@@ -16,5 +16,9 @@ export interface DistRoutesOptions {
16
16
  }
17
17
  /** `key=value` lines a POSIX shell reads without a JSON parser. Values never contain a newline. */
18
18
  export declare function artifactEnv(artifact: DistArtifact): string;
19
+ /** The same lines for an npm answer, led by `kind=npm`; only a caller that sent `accept=npm` reads them. */
20
+ export declare function npmPackageEnv(npm: DistNpmPackage): string;
21
+ /** `artifactEnv` or `npmPackageEnv`, whichever the answer is. */
22
+ export declare function resolutionEnv(resolution: DistResolution): string;
19
23
  export declare function createDistRoutes(services: Pick<Agents, 'runners' | 'dist' | 'downloadTokens'>, options?: DistRoutesOptions): Hono;
20
24
  //# sourceMappingURL=dist.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dist.d.ts","sourceRoot":"","sources":["../../../../server/routes/runners/dist.ts"],"names":[],"mappings":"AAeA,OAAO,EAKL,KAAK,YAAY,EAClB,MAAM,0BAA0B,CAAC;AAUlC,OAAO,KAAK,EAAW,IAAI,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAI7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AASnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,iBAAiB,CAAC;IAChD;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC;CAC/C;AAED,mGAAmG;AACnG,wBAAgB,WAAW,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,CAY1D;AAED,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,gBAAgB,CAAC,EAC7D,OAAO,GAAE,iBAAsB,GAC9B,IAAI,CAmNN"}
1
+ {"version":3,"file":"dist.d.ts","sourceRoot":"","sources":["../../../../server/routes/runners/dist.ts"],"names":[],"mappings":"AAeA,OAAO,EAWL,KAAK,YAAY,EAEjB,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,0BAA0B,CAAC;AAUlC,OAAO,KAAK,EAAW,IAAI,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAI7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AASnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,iBAAiB,CAAC;IAChD;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC;CAC/C;AAED,mGAAmG;AACnG,wBAAgB,WAAW,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,CAc1D;AAED,4GAA4G;AAC5G,wBAAgB,aAAa,CAAC,GAAG,EAAE,cAAc,GAAG,MAAM,CAUzD;AAED,iEAAiE;AACjE,wBAAgB,aAAa,CAAC,UAAU,EAAE,cAAc,GAAG,MAAM,CAIhE;AAED,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,gBAAgB,CAAC,EAC7D,OAAO,GAAE,iBAAsB,GAC9B,IAAI,CA4NN"}