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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (286) hide show
  1. package/CHANGELOG.md +95 -0
  2. package/README.md +33 -3
  3. package/dist/client/api/client.d.ts +3 -2
  4. package/dist/client/api/client.d.ts.map +1 -1
  5. package/dist/client/api/client.js +3 -0
  6. package/dist/client/api/client.js.map +1 -1
  7. package/dist/client/api/runners.d.ts +2 -2
  8. package/dist/client/api/runners.d.ts.map +1 -1
  9. package/dist/client/api/runners.js.map +1 -1
  10. package/dist/client/components/variables/variable-dialogs.d.ts.map +1 -1
  11. package/dist/client/components/variables/variable-dialogs.js +7 -7
  12. package/dist/client/components/variables/variable-dialogs.js.map +1 -1
  13. package/dist/client/config.d.ts +2 -0
  14. package/dist/client/config.d.ts.map +1 -1
  15. package/dist/client/config.js +2 -0
  16. package/dist/client/config.js.map +1 -1
  17. package/dist/client/lib/skill-settings-context.d.ts +9 -0
  18. package/dist/client/lib/skill-settings-context.d.ts.map +1 -0
  19. package/dist/client/lib/skill-settings-context.js +4 -0
  20. package/dist/client/lib/skill-settings-context.js.map +1 -0
  21. package/dist/client/lib/skill-settings.d.ts +12 -0
  22. package/dist/client/lib/skill-settings.d.ts.map +1 -0
  23. package/dist/client/lib/skill-settings.js +37 -0
  24. package/dist/client/lib/skill-settings.js.map +1 -0
  25. package/dist/client/locales/en-US.d.ts +2 -0
  26. package/dist/client/locales/en-US.d.ts.map +1 -1
  27. package/dist/client/locales/en-US.js +2 -0
  28. package/dist/client/locales/en-US.js.map +1 -1
  29. package/dist/client/locales/runtimes.en-US.d.ts +0 -1
  30. package/dist/client/locales/runtimes.en-US.d.ts.map +1 -1
  31. package/dist/client/locales/runtimes.en-US.js +0 -1
  32. package/dist/client/locales/runtimes.en-US.js.map +1 -1
  33. package/dist/client/locales/runtimes.zh-CN.d.ts.map +1 -1
  34. package/dist/client/locales/runtimes.zh-CN.js +0 -1
  35. package/dist/client/locales/runtimes.zh-CN.js.map +1 -1
  36. package/dist/client/locales/skills.en-US.d.ts +7 -0
  37. package/dist/client/locales/skills.en-US.d.ts.map +1 -1
  38. package/dist/client/locales/skills.en-US.js +8 -1
  39. package/dist/client/locales/skills.en-US.js.map +1 -1
  40. package/dist/client/locales/skills.zh-CN.d.ts.map +1 -1
  41. package/dist/client/locales/skills.zh-CN.js +8 -1
  42. package/dist/client/locales/skills.zh-CN.js.map +1 -1
  43. package/dist/client/locales/zh-CN.d.ts.map +1 -1
  44. package/dist/client/locales/zh-CN.js +2 -0
  45. package/dist/client/locales/zh-CN.js.map +1 -1
  46. package/dist/client/pages/agents/agent-dialog.d.ts.map +1 -1
  47. package/dist/client/pages/agents/agent-dialog.js +4 -4
  48. package/dist/client/pages/agents/agent-dialog.js.map +1 -1
  49. package/dist/client/pages/runtimes/connect.js.map +1 -1
  50. package/dist/client/pages/runtimes/index.js.map +1 -1
  51. package/dist/client/pages/runtimes/runner-cells.d.ts +3 -3
  52. package/dist/client/pages/runtimes/runner-cells.d.ts.map +1 -1
  53. package/dist/client/pages/runtimes/runner-sheet.d.ts +2 -2
  54. package/dist/client/pages/runtimes/runner-sheet.d.ts.map +1 -1
  55. package/dist/client/pages/runtimes/runner-sheet.js +15 -1
  56. package/dist/client/pages/runtimes/runner-sheet.js.map +1 -1
  57. package/dist/client/pages/runtimes/workspace-diagnostics.d.ts +2 -2
  58. package/dist/client/pages/runtimes/workspace-diagnostics.d.ts.map +1 -1
  59. package/dist/client/pages/runtimes/workspace-diagnostics.js +3 -5
  60. package/dist/client/pages/runtimes/workspace-diagnostics.js.map +1 -1
  61. package/dist/client/pages/skills/detail/index.d.ts.map +1 -1
  62. package/dist/client/pages/skills/detail/index.js +11 -15
  63. package/dist/client/pages/skills/detail/index.js.map +1 -1
  64. package/dist/client/pages/skills/index.d.ts.map +1 -1
  65. package/dist/client/pages/skills/index.js +2 -2
  66. package/dist/client/pages/skills/index.js.map +1 -1
  67. package/dist/database/migrations/.manifest.json +14 -2
  68. package/dist/database/migrations/202610020003_ag_create_runs.d.ts.map +1 -1
  69. package/dist/database/migrations/202610020003_ag_create_runs.js +0 -1
  70. package/dist/database/migrations/202610020003_ag_create_runs.js.map +1 -1
  71. package/dist/database/migrations/202610250001_ag_comment_runner_consent.d.ts +4 -0
  72. package/dist/database/migrations/202610250001_ag_comment_runner_consent.d.ts.map +1 -0
  73. package/dist/database/migrations/202610250001_ag_comment_runner_consent.js +41 -0
  74. package/dist/database/migrations/202610250001_ag_comment_runner_consent.js.map +1 -0
  75. package/dist/database/migrations/202610260001_ag_drop_directory_index.d.ts +4 -0
  76. package/dist/database/migrations/202610260001_ag_drop_directory_index.d.ts.map +1 -0
  77. package/dist/database/migrations/202610260001_ag_drop_directory_index.js +24 -0
  78. package/dist/database/migrations/202610260001_ag_drop_directory_index.js.map +1 -0
  79. package/dist/database/migrations/202610260001_ag_run_revision.d.ts +4 -0
  80. package/dist/database/migrations/202610260001_ag_run_revision.d.ts.map +1 -0
  81. package/dist/database/migrations/202610260001_ag_run_revision.js +19 -0
  82. package/dist/database/migrations/202610260001_ag_run_revision.js.map +1 -0
  83. package/dist/package.json +1 -1
  84. package/dist/server/cli/surface.d.ts.map +1 -1
  85. package/dist/server/cli/surface.js +4 -1
  86. package/dist/server/cli/surface.js.map +1 -1
  87. package/dist/server/composition.d.ts +4 -0
  88. package/dist/server/composition.d.ts.map +1 -1
  89. package/dist/server/composition.js +23 -4
  90. package/dist/server/composition.js.map +1 -1
  91. package/dist/server/core/agents/agent.service.d.ts.map +1 -1
  92. package/dist/server/core/agents/agent.service.js +5 -1
  93. package/dist/server/core/agents/agent.service.js.map +1 -1
  94. package/dist/server/core/agents/agent.store.d.ts +3 -1
  95. package/dist/server/core/agents/agent.store.d.ts.map +1 -1
  96. package/dist/server/core/agents/agent.store.js +13 -6
  97. package/dist/server/core/agents/agent.store.js.map +1 -1
  98. package/dist/server/core/agents/index.d.ts +1 -1
  99. package/dist/server/core/agents/index.d.ts.map +1 -1
  100. package/dist/server/core/agents/index.js +1 -1
  101. package/dist/server/core/agents/index.js.map +1 -1
  102. package/dist/server/core/brief/brief.js +3 -3
  103. package/dist/server/core/brief/brief.js.map +1 -1
  104. package/dist/server/core/callers/index.d.ts +9 -0
  105. package/dist/server/core/callers/index.d.ts.map +1 -1
  106. package/dist/server/core/callers/index.js +15 -0
  107. package/dist/server/core/callers/index.js.map +1 -1
  108. package/dist/server/core/conversations/chat-settings.d.ts.map +1 -1
  109. package/dist/server/core/conversations/chat-settings.js +12 -2
  110. package/dist/server/core/conversations/chat-settings.js.map +1 -1
  111. package/dist/server/core/conversations/conversation.service.d.ts.map +1 -1
  112. package/dist/server/core/conversations/conversation.service.js +3 -0
  113. package/dist/server/core/conversations/conversation.service.js.map +1 -1
  114. package/dist/server/core/reports/model-usage.d.ts.map +1 -1
  115. package/dist/server/core/reports/model-usage.js +42 -44
  116. package/dist/server/core/reports/model-usage.js.map +1 -1
  117. package/dist/server/core/reports/prices.d.ts.map +1 -1
  118. package/dist/server/core/reports/prices.js +29 -5
  119. package/dist/server/core/reports/prices.js.map +1 -1
  120. package/dist/server/core/reports/report.service.d.ts +4 -2
  121. package/dist/server/core/reports/report.service.d.ts.map +1 -1
  122. package/dist/server/core/reports/report.service.js +147 -68
  123. package/dist/server/core/reports/report.service.js.map +1 -1
  124. package/dist/server/core/runs/claim.d.ts +17 -3
  125. package/dist/server/core/runs/claim.d.ts.map +1 -1
  126. package/dist/server/core/runs/claim.js +325 -70
  127. package/dist/server/core/runs/claim.js.map +1 -1
  128. package/dist/server/core/runs/comment-consent.d.ts +24 -0
  129. package/dist/server/core/runs/comment-consent.d.ts.map +1 -0
  130. package/dist/server/core/runs/comment-consent.js +116 -0
  131. package/dist/server/core/runs/comment-consent.js.map +1 -0
  132. package/dist/server/core/runs/execution.d.ts +1 -1
  133. package/dist/server/core/runs/execution.d.ts.map +1 -1
  134. package/dist/server/core/runs/execution.js +7 -2
  135. package/dist/server/core/runs/execution.js.map +1 -1
  136. package/dist/server/core/runs/identity.d.ts +3 -0
  137. package/dist/server/core/runs/identity.d.ts.map +1 -1
  138. package/dist/server/core/runs/identity.js +38 -12
  139. package/dist/server/core/runs/identity.js.map +1 -1
  140. package/dist/server/core/runs/index.d.ts +2 -2
  141. package/dist/server/core/runs/index.d.ts.map +1 -1
  142. package/dist/server/core/runs/index.js +2 -2
  143. package/dist/server/core/runs/index.js.map +1 -1
  144. package/dist/server/core/runs/input-gate.d.ts.map +1 -1
  145. package/dist/server/core/runs/input-gate.js +4 -0
  146. package/dist/server/core/runs/input-gate.js.map +1 -1
  147. package/dist/server/core/runs/lifecycle.d.ts.map +1 -1
  148. package/dist/server/core/runs/lifecycle.js +71 -35
  149. package/dist/server/core/runs/lifecycle.js.map +1 -1
  150. package/dist/server/core/runs/policy.d.ts +9 -2
  151. package/dist/server/core/runs/policy.d.ts.map +1 -1
  152. package/dist/server/core/runs/policy.js +17 -8
  153. package/dist/server/core/runs/policy.js.map +1 -1
  154. package/dist/server/core/runs/ports.d.ts +8 -1
  155. package/dist/server/core/runs/ports.d.ts.map +1 -1
  156. package/dist/server/core/runs/ports.js.map +1 -1
  157. package/dist/server/core/runs/run-data-purge.d.ts +15 -0
  158. package/dist/server/core/runs/run-data-purge.d.ts.map +1 -0
  159. package/dist/server/core/runs/run-data-purge.js +82 -0
  160. package/dist/server/core/runs/run-data-purge.js.map +1 -0
  161. package/dist/server/core/runs/run-requests.d.ts +25 -0
  162. package/dist/server/core/runs/run-requests.d.ts.map +1 -1
  163. package/dist/server/core/runs/run-requests.js +131 -63
  164. package/dist/server/core/runs/run-requests.js.map +1 -1
  165. package/dist/server/core/runs/run.service.d.ts +19 -1
  166. package/dist/server/core/runs/run.service.d.ts.map +1 -1
  167. package/dist/server/core/runs/run.service.js +523 -35
  168. package/dist/server/core/runs/run.service.js.map +1 -1
  169. package/dist/server/core/runs/run.store.d.ts +10 -0
  170. package/dist/server/core/runs/run.store.d.ts.map +1 -1
  171. package/dist/server/core/runs/run.store.js +38 -11
  172. package/dist/server/core/runs/run.store.js.map +1 -1
  173. package/dist/server/core/runs/runner-view.d.ts +5 -0
  174. package/dist/server/core/runs/runner-view.d.ts.map +1 -1
  175. package/dist/server/core/runs/runner-view.js +5 -1
  176. package/dist/server/core/runs/runner-view.js.map +1 -1
  177. package/dist/server/core/runs/sweeper.d.ts +1 -0
  178. package/dist/server/core/runs/sweeper.d.ts.map +1 -1
  179. package/dist/server/core/runs/sweeper.js +13 -8
  180. package/dist/server/core/runs/sweeper.js.map +1 -1
  181. package/dist/server/core/runs/transitions.d.ts +5 -2
  182. package/dist/server/core/runs/transitions.d.ts.map +1 -1
  183. package/dist/server/core/runs/transitions.js +42 -14
  184. package/dist/server/core/runs/transitions.js.map +1 -1
  185. package/dist/server/core/runs/workload.d.ts +17 -6
  186. package/dist/server/core/runs/workload.d.ts.map +1 -1
  187. package/dist/server/core/runs/workload.js +182 -126
  188. package/dist/server/core/runs/workload.js.map +1 -1
  189. package/dist/server/core/skills/skill.service.d.ts +6 -2
  190. package/dist/server/core/skills/skill.service.d.ts.map +1 -1
  191. package/dist/server/core/skills/skill.service.js +87 -66
  192. package/dist/server/core/skills/skill.service.js.map +1 -1
  193. package/dist/server/core/skills/skill.store.d.ts +14 -0
  194. package/dist/server/core/skills/skill.store.d.ts.map +1 -1
  195. package/dist/server/core/skills/skill.store.js +30 -0
  196. package/dist/server/core/skills/skill.store.js.map +1 -1
  197. package/dist/server/core/transaction-read.d.ts +4 -0
  198. package/dist/server/core/transaction-read.d.ts.map +1 -0
  199. package/dist/server/core/transaction-read.js +30 -0
  200. package/dist/server/core/transaction-read.js.map +1 -0
  201. package/dist/server/core/variables/index.d.ts +1 -1
  202. package/dist/server/core/variables/index.d.ts.map +1 -1
  203. package/dist/server/core/variables/index.js.map +1 -1
  204. package/dist/server/core/variables/variable.service.d.ts +11 -0
  205. package/dist/server/core/variables/variable.service.d.ts.map +1 -1
  206. package/dist/server/core/variables/variable.service.js +63 -20
  207. package/dist/server/core/variables/variable.service.js.map +1 -1
  208. package/dist/server/kernel/scopes.d.ts +6 -0
  209. package/dist/server/kernel/scopes.d.ts.map +1 -1
  210. package/dist/server/kernel/scopes.js +3 -1
  211. package/dist/server/kernel/scopes.js.map +1 -1
  212. package/dist/server/online/services.d.ts.map +1 -1
  213. package/dist/server/online/services.js +101 -24
  214. package/dist/server/online/services.js.map +1 -1
  215. package/dist/server/providers/agents.d.ts +12 -0
  216. package/dist/server/providers/agents.d.ts.map +1 -1
  217. package/dist/server/providers/agents.js +6 -0
  218. package/dist/server/providers/agents.js.map +1 -1
  219. package/dist/server/providers/runners.d.ts +3 -1
  220. package/dist/server/providers/runners.d.ts.map +1 -1
  221. package/dist/server/providers/runners.js +35 -3
  222. package/dist/server/providers/runners.js.map +1 -1
  223. package/dist/server/routes/admin.d.ts +2 -0
  224. package/dist/server/routes/admin.d.ts.map +1 -1
  225. package/dist/server/routes/admin.js +30 -8
  226. package/dist/server/routes/admin.js.map +1 -1
  227. package/dist/server/routes/chat.d.ts.map +1 -1
  228. package/dist/server/routes/chat.js +27 -6
  229. package/dist/server/routes/chat.js.map +1 -1
  230. package/dist/server/routes/index.d.ts.map +1 -1
  231. package/dist/server/routes/index.js +3 -0
  232. package/dist/server/routes/index.js.map +1 -1
  233. package/dist/server/routes/run-requests.js +3 -3
  234. package/dist/server/routes/run-requests.js.map +1 -1
  235. package/dist/server/routes/runners/admin.d.ts.map +1 -1
  236. package/dist/server/routes/runners/admin.js +55 -9
  237. package/dist/server/routes/runners/admin.js.map +1 -1
  238. package/dist/server/routes/runners/install.d.ts.map +1 -1
  239. package/dist/server/routes/runners/install.js +7 -2
  240. package/dist/server/routes/runners/install.js.map +1 -1
  241. package/dist/server/routes/runners/runner.d.ts.map +1 -1
  242. package/dist/server/routes/runners/runner.js +2 -0
  243. package/dist/server/routes/runners/runner.js.map +1 -1
  244. package/dist/server/routes/schemas.d.ts +7 -1
  245. package/dist/server/routes/schemas.d.ts.map +1 -1
  246. package/dist/server/routes/schemas.js +201 -66
  247. package/dist/server/routes/schemas.js.map +1 -1
  248. package/dist/server/runners/runner.service.d.ts +22 -2
  249. package/dist/server/runners/runner.service.d.ts.map +1 -1
  250. package/dist/server/runners/runner.service.js +138 -56
  251. package/dist/server/runners/runner.service.js.map +1 -1
  252. package/dist/server/runners/runner.store.d.ts +2 -2
  253. package/dist/server/runners/runner.store.d.ts.map +1 -1
  254. package/dist/server/runners/runner.store.js +8 -5
  255. package/dist/server/runners/runner.store.js.map +1 -1
  256. package/dist/server/runners/slots.d.ts +5 -2
  257. package/dist/server/runners/slots.d.ts.map +1 -1
  258. package/dist/server/runners/slots.js +3 -4
  259. package/dist/server/runners/slots.js.map +1 -1
  260. package/dist/server/tokens.d.ts +1 -0
  261. package/dist/server/tokens.d.ts.map +1 -1
  262. package/dist/server/tokens.js +1 -0
  263. package/dist/server/tokens.js.map +1 -1
  264. package/dist/shared/agents.d.ts +0 -2
  265. package/dist/shared/agents.d.ts.map +1 -1
  266. package/dist/shared/agents.js.map +1 -1
  267. package/dist/shared/conversations.d.ts +2 -0
  268. package/dist/shared/conversations.d.ts.map +1 -1
  269. package/dist/shared/conversations.js.map +1 -1
  270. package/dist/shared/runners.d.ts +11 -2
  271. package/dist/shared/runners.d.ts.map +1 -1
  272. package/dist/shared/runners.js.map +1 -1
  273. package/dist/shared/runs.d.ts +18 -0
  274. package/dist/shared/runs.d.ts.map +1 -1
  275. package/dist/shared/runs.js +22 -0
  276. package/dist/shared/runs.js.map +1 -1
  277. package/dist/shared/skills.d.ts +11 -5
  278. package/dist/shared/skills.d.ts.map +1 -1
  279. package/dist/shared/skills.js +7 -2
  280. package/dist/shared/skills.js.map +1 -1
  281. package/dist/shared/variables.js +1 -1
  282. package/dist/shared/variables.js.map +1 -1
  283. package/package.json +15 -15
  284. package/skills/nocobase-app-plugin-agents/references/extension-points.md +19 -19
  285. package/skills/nocobase-app-plugin-agents/references/runners.md +6 -0
  286. package/skills/nocobase-app-plugin-agents/references/variables-skills-usage.md +3 -1
@@ -152,19 +152,9 @@ function cut(text) {
152
152
  ? `${line.slice(0, RUN_ACTIVITY_TEXT_MAX - 1)}…`
153
153
  : line;
154
154
  }
155
- export async function readWorkload(conn, clock, runnerSource, query, diagnose) {
155
+ /** The queue as the claim sees it, in a fixed number of reads. */
156
+ async function readQueueState(conn, clock, runnerSource) {
156
157
  const now = clock.now();
157
- const limit = Math.min(Math.max(query.limit ?? DEFAULT_LIMIT, 1), MAX_LIMIT);
158
- const open = await runsRepo(conn).findMany({
159
- filter: (f) => f.and([
160
- f.string('subjectKind').eq(query.subjectKind),
161
- f.or(['queued', ...ACTIVE].map((status) => f.string('status').eq(status))),
162
- ]),
163
- sort: (sort) => [sort.field('createdAt').asc(), sort.field('id').asc()],
164
- limit: limit + 1,
165
- });
166
- const truncated = open.length > limit;
167
- const mine = open.slice(0, limit);
168
158
  const queued = (await runsRepo(conn).findMany({
169
159
  filter: { status: 'queued' },
170
160
  limit: QUEUE_SCAN,
@@ -209,6 +199,155 @@ export async function readWorkload(conn, clock, runnerSource, query, diagnose) {
209
199
  agentQueued.set(run.agentId, count);
210
200
  agentPosition.set(run.id, count);
211
201
  }
202
+ return {
203
+ now,
204
+ queued,
205
+ runners,
206
+ online,
207
+ agents,
208
+ agentById,
209
+ runnerUsed,
210
+ runnerToolUsed,
211
+ agentActive,
212
+ busyKeys,
213
+ position,
214
+ agentPosition,
215
+ agentQueued,
216
+ };
217
+ }
218
+ /** Why a queued run waits by the claim's rules alone, without reading anything more (`explainWait`). */
219
+ function quickWait(record, requires, state) {
220
+ return explainWait({ ...record, requires }, {
221
+ now: state.now,
222
+ agent: state.agentById.get(record.agentId) ?? null,
223
+ runners: state.online,
224
+ runnerUsed: state.runnerUsed,
225
+ runnerToolUsed: state.runnerToolUsed,
226
+ agentActive: state.agentActive.get(record.agentId) ?? 0,
227
+ sameWorkActive: state.busyKeys.has(keyOf(record)),
228
+ });
229
+ }
230
+ const DIAGNOSTIC_CODES = {
231
+ ready: 'next',
232
+ busy: 'runnersBusy',
233
+ updatePending: 'updatePending',
234
+ pruning: 'pruning',
235
+ offline: 'noRunnerOnline',
236
+ incompatible: 'incompatible',
237
+ restricted: 'restricted',
238
+ concurrencyFull: 'concurrencyFull',
239
+ sameWorkActive: 'sameWorkActive',
240
+ delayed: 'delayed',
241
+ toolUnavailable: 'toolUnavailable',
242
+ toolNotInstalled: 'toolNotInstalled',
243
+ noSharedRunner: 'noSharedRunner',
244
+ unknown: 'unknown',
245
+ };
246
+ /** The quick explanation refined by the claim's own read-only diagnosis of the run's candidates. */
247
+ function refineWait(record, previous, diagnostic, state) {
248
+ // Keep the established identity and protected-variable explanation, including its precise parameters.
249
+ const detailed = [
250
+ 'secretsNotAllowed',
251
+ 'delayed',
252
+ 'agentArchived',
253
+ 'setupRetrying',
254
+ ].includes(previous.reason);
255
+ const entry = diagnostic?.entries.find((entry) => entry.reason === 'ready') ??
256
+ diagnostic?.entries[0];
257
+ if (!entry || detailed)
258
+ return previous;
259
+ const agent = state.agentById.get(record.agentId);
260
+ const active = state.agentActive.get(record.agentId) ?? 0;
261
+ const loads = entry.runners.filter((runner) => runner.reason === undefined ||
262
+ runner.reason === 'ready' ||
263
+ runner.reason === 'busy');
264
+ const toolFull = entry.reason === 'busy' &&
265
+ loads.some((runner) => (runner.used ?? 0) < (runner.limit ?? 0)) &&
266
+ loads.every((runner) => (runner.toolUsed ?? 0) >= (runner.toolLimit ?? 0) ||
267
+ runner.reportedFree === 0);
268
+ return {
269
+ ...previous,
270
+ reason: entry.reason === 'ready' && Number(record.claimFailures) > 0
271
+ ? 'setupRetrying'
272
+ : toolFull
273
+ ? 'toolSlotsFull'
274
+ : DIAGNOSTIC_CODES[entry.reason],
275
+ params: {
276
+ blockers: (entry.blockers ?? [])
277
+ .filter((reason) => reason !== entry.reason)
278
+ .map((reason) => DIAGNOSTIC_CODES[reason]),
279
+ tool: entry.tool,
280
+ ...(entry.reason === 'concurrencyFull'
281
+ ? { active, limit: agent.maxConcurrentRuns }
282
+ : entry.reason === 'busy'
283
+ ? {
284
+ used: loads.reduce((n, runner) => n + (toolFull ? (runner.toolUsed ?? 0) : (runner.used ?? 0)), 0),
285
+ limit: loads.reduce((n, runner) => n +
286
+ (toolFull ? (runner.toolLimit ?? 0) : (runner.limit ?? 0)), 0),
287
+ runners: loads.length,
288
+ reportedFree: loads.map((runner) => String(runner.reportedTotalFree ?? '—')),
289
+ detail: loads
290
+ .map((runner) => `${entry.tool} ${runner.toolUsed}/${runner.toolLimit}${runner.reportedTotalFree === 0 ? '; global free 0' : ''}`)
291
+ .join('; '),
292
+ }
293
+ : {}),
294
+ },
295
+ };
296
+ }
297
+ /** The newest activity of each of `runIds` in two reads: the newest sequence of each, then those events. */
298
+ async function newestActivities(conn, runIds) {
299
+ const activity = new Map();
300
+ if (runIds.length === 0)
301
+ return activity;
302
+ const newest = await eventsRepo(conn).groupBy({
303
+ by: ['runId'],
304
+ aggregate: (aggregate) => ({ seq: aggregate.max('seq') }),
305
+ filter: (f) => f.and([
306
+ f.or(runIds.map((id) => f.string('runId').eq(id))),
307
+ f.or(ACTIVITY_TYPES.map((type) => f.string('type').eq(type))),
308
+ ]),
309
+ });
310
+ const pairs = newest.flatMap((group) => group.seq === null || group.seq === undefined
311
+ ? []
312
+ : [{ runId: String(group.runId), seq: Number(group.seq) }]);
313
+ if (pairs.length === 0)
314
+ return activity;
315
+ const events = await eventsRepo(conn).findMany({
316
+ filter: (f) => f.and([
317
+ f.or(pairs.map((pair) => f.and([
318
+ f.string('runId').eq(pair.runId),
319
+ f.number('seq').eq(pair.seq),
320
+ ]))),
321
+ f.or(ACTIVITY_TYPES.map((type) => f.string('type').eq(type))),
322
+ ]),
323
+ });
324
+ for (const event of events)
325
+ activity.set(event.runId, {
326
+ at: iso(event.at) ?? event.at,
327
+ type: event.type,
328
+ tool: event.tool,
329
+ text: cut(event.content ?? event.output),
330
+ });
331
+ return activity;
332
+ }
333
+ /**
334
+ * The open runs on one kind of subject, in a fixed number of reads whatever their number. A queued run says why it
335
+ * waits by the claim's rules alone (`explainWait`); `readQueueWait` gives one run's exact reason.
336
+ */
337
+ export async function readWorkload(conn, clock, runnerSource, query) {
338
+ const limit = Math.min(Math.max(query.limit ?? DEFAULT_LIMIT, 1), MAX_LIMIT);
339
+ const open = await runsRepo(conn).findMany({
340
+ filter: (f) => f.and([
341
+ f.string('subjectKind').eq(query.subjectKind),
342
+ f.or(['queued', ...ACTIVE].map((status) => f.string('status').eq(status))),
343
+ ]),
344
+ sort: (sort) => [sort.field('createdAt').asc(), sort.field('id').asc()],
345
+ limit: limit + 1,
346
+ });
347
+ const truncated = open.length > limit;
348
+ const mine = open.slice(0, limit);
349
+ const state = await readQueueState(conn, clock, runnerSource);
350
+ const { queued, runners, online, agents, runnerUsed, agentActive } = state;
212
351
  // The newest input's trigger, per open run.
213
352
  const ids = mine.map((run) => run.id);
214
353
  const triggers = new Map();
@@ -225,129 +364,25 @@ export async function readWorkload(conn, clock, runnerSource, query, diagnose) {
225
364
  triggers.set(input.runId, trigger);
226
365
  }
227
366
  }
228
- // The newest activity of each held run: at most one per runner slot.
229
- const activity = new Map();
230
- for (const run of mine) {
231
- if (!ACTIVE.includes(run.status))
232
- continue;
233
- const event = await eventsRepo(conn).findOne({
234
- filter: (f) => f.and([
235
- f.string('runId').eq(run.id),
236
- f.or(ACTIVITY_TYPES.map((type) => f.string('type').eq(type))),
237
- ]),
238
- sort: (sort) => sort.field('seq').desc(),
239
- });
240
- if (event)
241
- activity.set(run.id, {
242
- at: iso(event.at) ?? event.at,
243
- type: event.type,
244
- tool: event.tool,
245
- text: cut(event.content ?? event.output),
246
- });
247
- }
367
+ // The newest activity of each held run.
368
+ const activity = await newestActivities(conn, mine.filter((run) => ACTIVE.includes(run.status)).map((run) => run.id));
248
369
  const runnerName = new Map(runners.map((runner) => [runner.id, runner.name]));
249
- const runs = await Promise.all(mine.map(async (record) => {
370
+ const runs = mine.map((record) => {
250
371
  const run = toRun(record);
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);
297
372
  return {
298
373
  ...run,
299
374
  trigger: triggers.get(run.id) ?? null,
300
- runnerName: run.runnerId
301
- ? (runnerName.get(run.runnerId) ?? null)
302
- : null,
375
+ runnerName: run.runnerId ? (runnerName.get(run.runnerId) ?? null) : null,
303
376
  lastActivity: activity.get(run.id) ?? null,
304
- wait: isQueued
377
+ wait: record.status === 'queued'
305
378
  ? {
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
- : {}),
345
- position: position.get(run.id) ?? null,
346
- agentPosition: agentPosition.get(run.id) ?? 1,
379
+ ...quickWait(record, run.requires, state),
380
+ position: state.position.get(run.id) ?? null,
381
+ agentPosition: state.agentPosition.get(run.id) ?? 1,
347
382
  }
348
383
  : null,
349
384
  };
350
- }));
385
+ });
351
386
  // Held runs first, the longest-running first; then queued ones in claim order.
352
387
  const order = new Map(queued.map((run, index) => [run.id, index]));
353
388
  runs.sort((a, b) => {
@@ -368,7 +403,7 @@ export async function readWorkload(conn, clock, runnerSource, query, diagnose) {
368
403
  loads.push({
369
404
  agentId: agent.id,
370
405
  active: agentActive.get(agent.id) ?? 0,
371
- queued: agentQueued.get(agent.id) ?? 0,
406
+ queued: state.agentQueued.get(agent.id) ?? 0,
372
407
  maxConcurrentRuns: agent.maxConcurrentRuns,
373
408
  online: agent.status === 'enabled' &&
374
409
  online.some((runner) => agent.modelEntries.some((entry) => runsEntry(runner, entry))),
@@ -387,4 +422,25 @@ export async function readWorkload(conn, clock, runnerSource, query, diagnose) {
387
422
  },
388
423
  };
389
424
  }
425
+ /**
426
+ * Exactly why one queued run waits: the claim's rules refined by its read-only diagnosis of the run's candidate
427
+ * runners (`ClaimService.diagnose`). Null when the run does not exist or is not queued.
428
+ */
429
+ export async function readQueueWait(conn, clock, runnerSource, runId, diagnose) {
430
+ const record = await runsRepo(conn).findOne({ filter: { id: runId } });
431
+ if (!record || record.status !== 'queued')
432
+ return null;
433
+ const state = await readQueueState(conn, clock, runnerSource);
434
+ const run = toRun(record);
435
+ const agent = state.agentById.get(run.agentId);
436
+ const previous = quickWait(record, run.requires, state);
437
+ const diagnostic = agent?.status === 'enabled' && diagnose
438
+ ? await diagnose(conn, run, agent)
439
+ : null;
440
+ return {
441
+ ...refineWait(record, previous, diagnostic, state),
442
+ position: state.position.get(run.id) ?? null,
443
+ agentPosition: state.agentPosition.get(run.id) ?? 1,
444
+ };
445
+ }
390
446
  //# sourceMappingURL=workload.js.map
@@ -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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"}