@nocobase/app-plugin-agents 0.1.0-beta.9 → 1.0.0-beta.15

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 (831) hide show
  1. package/CHANGELOG.md +293 -0
  2. package/README.md +94 -51
  3. package/dist/client/api/client.d.ts +25 -19
  4. package/dist/client/api/client.d.ts.map +1 -1
  5. package/dist/client/api/client.js +23 -24
  6. package/dist/client/api/client.js.map +1 -1
  7. package/dist/client/api/keys.d.ts +4 -1
  8. package/dist/client/api/keys.d.ts.map +1 -1
  9. package/dist/client/api/keys.js +4 -1
  10. package/dist/client/api/keys.js.map +1 -1
  11. package/dist/client/api/runners.d.ts +8 -4
  12. package/dist/client/api/runners.d.ts.map +1 -1
  13. package/dist/client/api/runners.js +9 -0
  14. package/dist/client/api/runners.js.map +1 -1
  15. package/dist/client/chat/ai-form.d.ts +13 -0
  16. package/dist/client/chat/ai-form.d.ts.map +1 -0
  17. package/dist/client/chat/ai-form.js +57 -0
  18. package/dist/client/chat/ai-form.js.map +1 -0
  19. package/dist/client/chat/api.d.ts +16 -14
  20. package/dist/client/chat/api.d.ts.map +1 -1
  21. package/dist/client/chat/api.js +85 -18
  22. package/dist/client/chat/api.js.map +1 -1
  23. package/dist/client/chat/client-id.d.ts +3 -0
  24. package/dist/client/chat/client-id.d.ts.map +1 -0
  25. package/dist/client/chat/client-id.js +17 -0
  26. package/dist/client/chat/client-id.js.map +1 -0
  27. package/dist/client/chat/consultation-identity.d.ts +7 -0
  28. package/dist/client/chat/consultation-identity.d.ts.map +1 -0
  29. package/dist/client/chat/consultation-identity.js +39 -0
  30. package/dist/client/chat/consultation-identity.js.map +1 -0
  31. package/dist/client/chat/context-model.d.ts +21 -3
  32. package/dist/client/chat/context-model.d.ts.map +1 -1
  33. package/dist/client/chat/context-model.js +33 -4
  34. package/dist/client/chat/context-model.js.map +1 -1
  35. package/dist/client/chat/controller.d.ts +83 -0
  36. package/dist/client/chat/controller.d.ts.map +1 -0
  37. package/dist/client/chat/controller.js +767 -0
  38. package/dist/client/chat/controller.js.map +1 -0
  39. package/dist/client/chat/extensions.d.ts +8 -3
  40. package/dist/client/chat/extensions.d.ts.map +1 -1
  41. package/dist/client/chat/extensions.js.map +1 -1
  42. package/dist/client/chat/feedback.d.ts +18 -0
  43. package/dist/client/chat/feedback.d.ts.map +1 -0
  44. package/dist/client/chat/feedback.js +38 -0
  45. package/dist/client/chat/feedback.js.map +1 -0
  46. package/dist/client/chat/form-registry.d.ts +95 -0
  47. package/dist/client/chat/form-registry.d.ts.map +1 -0
  48. package/dist/client/chat/form-registry.js +384 -0
  49. package/dist/client/chat/form-registry.js.map +1 -0
  50. package/dist/client/chat/keys.d.ts +1 -0
  51. package/dist/client/chat/keys.d.ts.map +1 -1
  52. package/dist/client/chat/keys.js +3 -1
  53. package/dist/client/chat/keys.js.map +1 -1
  54. package/dist/client/chat/message-model.d.ts +38 -44
  55. package/dist/client/chat/message-model.d.ts.map +1 -1
  56. package/dist/client/chat/message-model.js +138 -56
  57. package/dist/client/chat/message-model.js.map +1 -1
  58. package/dist/client/chat/provider.d.ts +12 -2
  59. package/dist/client/chat/provider.d.ts.map +1 -1
  60. package/dist/client/chat/provider.js +130 -4
  61. package/dist/client/chat/provider.js.map +1 -1
  62. package/dist/client/chat/submissions.d.ts +67 -0
  63. package/dist/client/chat/submissions.d.ts.map +1 -0
  64. package/dist/client/chat/submissions.js +241 -0
  65. package/dist/client/chat/submissions.js.map +1 -0
  66. package/dist/client/chat/tool-renderer.d.ts +39 -0
  67. package/dist/client/chat/tool-renderer.d.ts.map +1 -0
  68. package/dist/client/chat/tool-renderer.js +27 -0
  69. package/dist/client/chat/tool-renderer.js.map +1 -0
  70. package/dist/client/chat/use-chat-scroll.d.ts +4 -0
  71. package/dist/client/chat/use-chat-scroll.d.ts.map +1 -0
  72. package/dist/client/chat/use-chat-scroll.js +73 -0
  73. package/dist/client/chat/use-chat-scroll.js.map +1 -0
  74. package/dist/client/chat/use-chat.d.ts +13 -24
  75. package/dist/client/chat/use-chat.d.ts.map +1 -1
  76. package/dist/client/chat/use-chat.js +250 -235
  77. package/dist/client/chat/use-chat.js.map +1 -1
  78. package/dist/client/chat.d.ts +20 -8
  79. package/dist/client/chat.d.ts.map +1 -1
  80. package/dist/client/chat.js +16 -4
  81. package/dist/client/chat.js.map +1 -1
  82. package/dist/client/components/agent-picker.d.ts +6 -23
  83. package/dist/client/components/agent-picker.d.ts.map +1 -1
  84. package/dist/client/components/agent-picker.js +20 -39
  85. package/dist/client/components/agent-picker.js.map +1 -1
  86. package/dist/client/components/quota-status.d.ts +16 -0
  87. package/dist/client/components/quota-status.d.ts.map +1 -0
  88. package/dist/client/components/quota-status.js +39 -0
  89. package/dist/client/components/quota-status.js.map +1 -0
  90. package/dist/client/components/runners-refresh.d.ts.map +1 -1
  91. package/dist/client/components/runners-refresh.js +1 -0
  92. package/dist/client/components/runners-refresh.js.map +1 -1
  93. package/dist/client/components/variables/variable-dialogs.d.ts.map +1 -1
  94. package/dist/client/components/variables/variable-dialogs.js +7 -7
  95. package/dist/client/components/variables/variable-dialogs.js.map +1 -1
  96. package/dist/client/config.d.ts +2 -0
  97. package/dist/client/config.d.ts.map +1 -1
  98. package/dist/client/config.js +2 -0
  99. package/dist/client/config.js.map +1 -1
  100. package/dist/client/hooks/use-agent-picker-labels.d.ts.map +1 -1
  101. package/dist/client/hooks/use-agent-picker-labels.js +4 -12
  102. package/dist/client/hooks/use-agent-picker-labels.js.map +1 -1
  103. package/dist/client/hooks/use-quota-expiry.d.ts +7 -0
  104. package/dist/client/hooks/use-quota-expiry.d.ts.map +1 -0
  105. package/dist/client/hooks/use-quota-expiry.js +92 -0
  106. package/dist/client/hooks/use-quota-expiry.js.map +1 -0
  107. package/dist/client/hooks/use-realtime-topic.d.ts +1 -4
  108. package/dist/client/hooks/use-realtime-topic.d.ts.map +1 -1
  109. package/dist/client/hooks/use-realtime-topic.js +7 -11
  110. package/dist/client/hooks/use-realtime-topic.js.map +1 -1
  111. package/dist/client/kit.d.ts +14 -12
  112. package/dist/client/kit.d.ts.map +1 -1
  113. package/dist/client/kit.js +37 -14
  114. package/dist/client/kit.js.map +1 -1
  115. package/dist/client/lib/agents.d.ts +5 -18
  116. package/dist/client/lib/agents.d.ts.map +1 -1
  117. package/dist/client/lib/agents.js +18 -55
  118. package/dist/client/lib/agents.js.map +1 -1
  119. package/dist/client/lib/format.d.ts +3 -1
  120. package/dist/client/lib/format.d.ts.map +1 -1
  121. package/dist/client/lib/format.js +25 -0
  122. package/dist/client/lib/format.js.map +1 -1
  123. package/dist/client/lib/skill-settings-context.d.ts +9 -0
  124. package/dist/client/lib/skill-settings-context.d.ts.map +1 -0
  125. package/dist/client/lib/skill-settings-context.js +4 -0
  126. package/dist/client/lib/skill-settings-context.js.map +1 -0
  127. package/dist/client/lib/skill-settings.d.ts +12 -0
  128. package/dist/client/lib/skill-settings.d.ts.map +1 -0
  129. package/dist/client/lib/skill-settings.js +37 -0
  130. package/dist/client/lib/skill-settings.js.map +1 -0
  131. package/dist/client/locales/chat.en-US.d.ts +8 -27
  132. package/dist/client/locales/chat.en-US.d.ts.map +1 -1
  133. package/dist/client/locales/chat.en-US.js +12 -30
  134. package/dist/client/locales/chat.en-US.js.map +1 -1
  135. package/dist/client/locales/chat.zh-CN.d.ts.map +1 -1
  136. package/dist/client/locales/chat.zh-CN.js +9 -27
  137. package/dist/client/locales/chat.zh-CN.js.map +1 -1
  138. package/dist/client/locales/en-US.d.ts +87 -217
  139. package/dist/client/locales/en-US.d.ts.map +1 -1
  140. package/dist/client/locales/en-US.js +92 -218
  141. package/dist/client/locales/en-US.js.map +1 -1
  142. package/dist/client/locales/runWait.en-US.d.ts +7 -0
  143. package/dist/client/locales/runWait.en-US.d.ts.map +1 -1
  144. package/dist/client/locales/runWait.en-US.js +10 -3
  145. package/dist/client/locales/runWait.en-US.js.map +1 -1
  146. package/dist/client/locales/runWait.zh-CN.d.ts +1 -1
  147. package/dist/client/locales/runWait.zh-CN.d.ts.map +1 -1
  148. package/dist/client/locales/runWait.zh-CN.js +11 -4
  149. package/dist/client/locales/runWait.zh-CN.js.map +1 -1
  150. package/dist/client/locales/runtimes.en-US.d.ts +83 -0
  151. package/dist/client/locales/runtimes.en-US.d.ts.map +1 -1
  152. package/dist/client/locales/runtimes.en-US.js +84 -1
  153. package/dist/client/locales/runtimes.en-US.js.map +1 -1
  154. package/dist/client/locales/runtimes.zh-CN.d.ts.map +1 -1
  155. package/dist/client/locales/runtimes.zh-CN.js +83 -0
  156. package/dist/client/locales/runtimes.zh-CN.js.map +1 -1
  157. package/dist/client/locales/skills.en-US.d.ts +7 -0
  158. package/dist/client/locales/skills.en-US.d.ts.map +1 -1
  159. package/dist/client/locales/skills.en-US.js +8 -1
  160. package/dist/client/locales/skills.en-US.js.map +1 -1
  161. package/dist/client/locales/skills.zh-CN.d.ts.map +1 -1
  162. package/dist/client/locales/skills.zh-CN.js +8 -1
  163. package/dist/client/locales/skills.zh-CN.js.map +1 -1
  164. package/dist/client/locales/zh-CN.d.ts.map +1 -1
  165. package/dist/client/locales/zh-CN.js +94 -220
  166. package/dist/client/locales/zh-CN.js.map +1 -1
  167. package/dist/client/online/services.d.ts.map +1 -1
  168. package/dist/client/online/services.js +5 -6
  169. package/dist/client/online/services.js.map +1 -1
  170. package/dist/client/pages/agents/agent-dialog.d.ts +9 -0
  171. package/dist/client/pages/agents/agent-dialog.d.ts.map +1 -0
  172. package/dist/client/pages/agents/agent-dialog.js +106 -0
  173. package/dist/client/pages/agents/agent-dialog.js.map +1 -0
  174. package/dist/client/pages/agents/agent-state.d.ts +11 -0
  175. package/dist/client/pages/agents/agent-state.d.ts.map +1 -0
  176. package/dist/client/pages/agents/agent-state.js +28 -0
  177. package/dist/client/pages/agents/agent-state.js.map +1 -0
  178. package/dist/client/pages/agents/index.d.ts +1 -1
  179. package/dist/client/pages/agents/index.d.ts.map +1 -1
  180. package/dist/client/pages/agents/index.js +7 -101
  181. package/dist/client/pages/agents/index.js.map +1 -1
  182. package/dist/client/pages/agents/runner-agents.d.ts +3 -0
  183. package/dist/client/pages/agents/runner-agents.d.ts.map +1 -0
  184. package/dist/client/pages/agents/runner-agents.js +185 -0
  185. package/dist/client/pages/agents/runner-agents.js.map +1 -0
  186. package/dist/client/pages/runtimes/connect.js.map +1 -1
  187. package/dist/client/pages/runtimes/index.d.ts.map +1 -1
  188. package/dist/client/pages/runtimes/index.js +1 -1
  189. package/dist/client/pages/runtimes/index.js.map +1 -1
  190. package/dist/client/pages/runtimes/quota-targets.d.ts +4 -0
  191. package/dist/client/pages/runtimes/quota-targets.d.ts.map +1 -0
  192. package/dist/client/pages/runtimes/quota-targets.js +18 -0
  193. package/dist/client/pages/runtimes/quota-targets.js.map +1 -0
  194. package/dist/client/pages/runtimes/quota.d.ts +17 -0
  195. package/dist/client/pages/runtimes/quota.d.ts.map +1 -0
  196. package/dist/client/pages/runtimes/quota.js +50 -0
  197. package/dist/client/pages/runtimes/quota.js.map +1 -0
  198. package/dist/client/pages/runtimes/runner-cells.d.ts +11 -4
  199. package/dist/client/pages/runtimes/runner-cells.d.ts.map +1 -1
  200. package/dist/client/pages/runtimes/runner-cells.js +6 -3
  201. package/dist/client/pages/runtimes/runner-cells.js.map +1 -1
  202. package/dist/client/pages/runtimes/runner-overview.d.ts +9 -0
  203. package/dist/client/pages/runtimes/runner-overview.d.ts.map +1 -0
  204. package/dist/client/pages/runtimes/runner-overview.js +109 -0
  205. package/dist/client/pages/runtimes/runner-overview.js.map +1 -0
  206. package/dist/client/pages/runtimes/runner-runs.d.ts +5 -0
  207. package/dist/client/pages/runtimes/runner-runs.d.ts.map +1 -0
  208. package/dist/client/pages/runtimes/runner-runs.js +35 -0
  209. package/dist/client/pages/runtimes/runner-runs.js.map +1 -0
  210. package/dist/client/pages/runtimes/runner-sheet.d.ts +2 -3
  211. package/dist/client/pages/runtimes/runner-sheet.d.ts.map +1 -1
  212. package/dist/client/pages/runtimes/runner-sheet.js +43 -171
  213. package/dist/client/pages/runtimes/runner-sheet.js.map +1 -1
  214. package/dist/client/pages/runtimes/runner-tools.d.ts +17 -0
  215. package/dist/client/pages/runtimes/runner-tools.d.ts.map +1 -0
  216. package/dist/client/pages/runtimes/runner-tools.js +75 -0
  217. package/dist/client/pages/runtimes/runner-tools.js.map +1 -0
  218. package/dist/client/pages/runtimes/runner-workspaces.d.ts +6 -0
  219. package/dist/client/pages/runtimes/runner-workspaces.d.ts.map +1 -0
  220. package/dist/client/pages/runtimes/runner-workspaces.js +37 -0
  221. package/dist/client/pages/runtimes/runner-workspaces.js.map +1 -0
  222. package/dist/client/pages/runtimes/tool-slots-fields.js +1 -1
  223. package/dist/client/pages/runtimes/tool-slots-fields.js.map +1 -1
  224. package/dist/client/pages/runtimes/workspace-diagnostics.d.ts +6 -4
  225. package/dist/client/pages/runtimes/workspace-diagnostics.d.ts.map +1 -1
  226. package/dist/client/pages/runtimes/workspace-diagnostics.js +67 -33
  227. package/dist/client/pages/runtimes/workspace-diagnostics.js.map +1 -1
  228. package/dist/client/pages/skills/detail/index.d.ts.map +1 -1
  229. package/dist/client/pages/skills/detail/index.js +11 -15
  230. package/dist/client/pages/skills/detail/index.js.map +1 -1
  231. package/dist/client/pages/skills/index.d.ts.map +1 -1
  232. package/dist/client/pages/skills/index.js +2 -2
  233. package/dist/client/pages/skills/index.js.map +1 -1
  234. package/dist/client/pages/usage/index.js +2 -2
  235. package/dist/client/pages/usage/index.js.map +1 -1
  236. package/dist/client/profile/default-agent.d.ts.map +1 -1
  237. package/dist/client/profile/default-agent.js +2 -4
  238. package/dist/client/profile/default-agent.js.map +1 -1
  239. package/dist/client/routes.d.ts +1 -1
  240. package/dist/client/routes.d.ts.map +1 -1
  241. package/dist/client/routes.js +1 -13
  242. package/dist/client/routes.js.map +1 -1
  243. package/dist/client/runs/format-wait.d.ts.map +1 -1
  244. package/dist/client/runs/format-wait.js +15 -1
  245. package/dist/client/runs/format-wait.js.map +1 -1
  246. package/dist/client/runs/subject-runs.d.ts +5 -0
  247. package/dist/client/runs/subject-runs.d.ts.map +1 -1
  248. package/dist/client/runs/subject-runs.js +24 -9
  249. package/dist/client/runs/subject-runs.js.map +1 -1
  250. package/dist/client/runs/use-run-events.d.ts +1 -1
  251. package/dist/client/runs/use-run-events.d.ts.map +1 -1
  252. package/dist/client/runs/use-run-events.js +5 -2
  253. package/dist/client/runs/use-run-events.js.map +1 -1
  254. package/dist/client/runs.d.ts +1 -1
  255. package/dist/client/runs.d.ts.map +1 -1
  256. package/dist/client/runs.js +1 -1
  257. package/dist/client/runs.js.map +1 -1
  258. package/dist/database/migrations/.manifest.json +38 -2
  259. package/dist/database/migrations/202610020003_ag_create_runs.d.ts.map +1 -1
  260. package/dist/database/migrations/202610020003_ag_create_runs.js +0 -1
  261. package/dist/database/migrations/202610020003_ag_create_runs.js.map +1 -1
  262. package/dist/database/migrations/202610120002_ag_add_queue_entered_at.d.ts +4 -0
  263. package/dist/database/migrations/202610120002_ag_add_queue_entered_at.d.ts.map +1 -0
  264. package/dist/database/migrations/202610120002_ag_add_queue_entered_at.js +50 -0
  265. package/dist/database/migrations/202610120002_ag_add_queue_entered_at.js.map +1 -0
  266. package/dist/database/migrations/202610170001_ag_runner_quota.d.ts +4 -0
  267. package/dist/database/migrations/202610170001_ag_runner_quota.d.ts.map +1 -0
  268. package/dist/database/migrations/202610170001_ag_runner_quota.js +19 -0
  269. package/dist/database/migrations/202610170001_ag_runner_quota.js.map +1 -0
  270. package/dist/database/migrations/202610240020_ag_runner_agents.d.ts +4 -0
  271. package/dist/database/migrations/202610240020_ag_runner_agents.d.ts.map +1 -0
  272. package/dist/database/migrations/202610240020_ag_runner_agents.js +115 -0
  273. package/dist/database/migrations/202610240020_ag_runner_agents.js.map +1 -0
  274. package/dist/database/migrations/202610240040_ag_discovery_preferences.d.ts +4 -0
  275. package/dist/database/migrations/202610240040_ag_discovery_preferences.d.ts.map +1 -0
  276. package/dist/database/migrations/202610240040_ag_discovery_preferences.js +18 -0
  277. package/dist/database/migrations/202610240040_ag_discovery_preferences.js.map +1 -0
  278. package/dist/database/migrations/202610250001_ag_comment_runner_consent.d.ts +4 -0
  279. package/dist/database/migrations/202610250001_ag_comment_runner_consent.d.ts.map +1 -0
  280. package/dist/database/migrations/202610250001_ag_comment_runner_consent.js +41 -0
  281. package/dist/database/migrations/202610250001_ag_comment_runner_consent.js.map +1 -0
  282. package/dist/database/migrations/202610260001_ag_drop_directory_index.d.ts +4 -0
  283. package/dist/database/migrations/202610260001_ag_drop_directory_index.d.ts.map +1 -0
  284. package/dist/database/migrations/202610260001_ag_drop_directory_index.js +24 -0
  285. package/dist/database/migrations/202610260001_ag_drop_directory_index.js.map +1 -0
  286. package/dist/database/migrations/202610260001_ag_run_revision.d.ts +4 -0
  287. package/dist/database/migrations/202610260001_ag_run_revision.d.ts.map +1 -0
  288. package/dist/database/migrations/202610260001_ag_run_revision.js +19 -0
  289. package/dist/database/migrations/202610260001_ag_run_revision.js.map +1 -0
  290. package/dist/database/migrations/202610270001_ag_online_agent.d.ts +4 -0
  291. package/dist/database/migrations/202610270001_ag_online_agent.d.ts.map +1 -0
  292. package/dist/database/migrations/202610270001_ag_online_agent.js +43 -0
  293. package/dist/database/migrations/202610270001_ag_online_agent.js.map +1 -0
  294. package/dist/database/migrations/202610270002_ag_chat_list_visibility.d.ts +4 -0
  295. package/dist/database/migrations/202610270002_ag_chat_list_visibility.d.ts.map +1 -0
  296. package/dist/database/migrations/202610270002_ag_chat_list_visibility.js +17 -0
  297. package/dist/database/migrations/202610270002_ag_chat_list_visibility.js.map +1 -0
  298. package/dist/package.json +34 -12
  299. package/dist/server/cli/run-credential.js +1 -1
  300. package/dist/server/cli/surface.d.ts.map +1 -1
  301. package/dist/server/cli/surface.js +4 -1
  302. package/dist/server/cli/surface.js.map +1 -1
  303. package/dist/server/composition.d.ts +36 -35
  304. package/dist/server/composition.d.ts.map +1 -1
  305. package/dist/server/composition.js +99 -66
  306. package/dist/server/composition.js.map +1 -1
  307. package/dist/server/core/agents/agent.service.d.ts +51 -43
  308. package/dist/server/core/agents/agent.service.d.ts.map +1 -1
  309. package/dist/server/core/agents/agent.service.js +347 -321
  310. package/dist/server/core/agents/agent.service.js.map +1 -1
  311. package/dist/server/core/agents/agent.store.d.ts +26 -12
  312. package/dist/server/core/agents/agent.store.d.ts.map +1 -1
  313. package/dist/server/core/agents/agent.store.js +74 -66
  314. package/dist/server/core/agents/agent.store.js.map +1 -1
  315. package/dist/server/core/agents/agent.views.d.ts +29 -0
  316. package/dist/server/core/agents/agent.views.d.ts.map +1 -0
  317. package/dist/server/core/agents/agent.views.js +88 -0
  318. package/dist/server/core/agents/agent.views.js.map +1 -0
  319. package/dist/server/core/agents/discovery.d.ts +12 -0
  320. package/dist/server/core/agents/discovery.d.ts.map +1 -0
  321. package/dist/server/core/agents/discovery.js +39 -0
  322. package/dist/server/core/agents/discovery.js.map +1 -0
  323. package/dist/server/core/agents/index.d.ts +3 -2
  324. package/dist/server/core/agents/index.d.ts.map +1 -1
  325. package/dist/server/core/agents/index.js +3 -2
  326. package/dist/server/core/agents/index.js.map +1 -1
  327. package/dist/server/core/brief/brief.js +3 -3
  328. package/dist/server/core/brief/brief.js.map +1 -1
  329. package/dist/server/core/callers/index.d.ts +10 -1
  330. package/dist/server/core/callers/index.d.ts.map +1 -1
  331. package/dist/server/core/callers/index.js +15 -0
  332. package/dist/server/core/callers/index.js.map +1 -1
  333. package/dist/server/core/conversations/attachments.d.ts.map +1 -1
  334. package/dist/server/core/conversations/attachments.js +6 -1
  335. package/dist/server/core/conversations/attachments.js.map +1 -1
  336. package/dist/server/core/conversations/availability.d.ts +6 -11
  337. package/dist/server/core/conversations/availability.d.ts.map +1 -1
  338. package/dist/server/core/conversations/availability.js +11 -15
  339. package/dist/server/core/conversations/availability.js.map +1 -1
  340. package/dist/server/core/conversations/chat-settings.d.ts +2 -2
  341. package/dist/server/core/conversations/chat-settings.d.ts.map +1 -1
  342. package/dist/server/core/conversations/chat-settings.js +17 -22
  343. package/dist/server/core/conversations/chat-settings.js.map +1 -1
  344. package/dist/server/core/conversations/conversation.service.d.ts +13 -8
  345. package/dist/server/core/conversations/conversation.service.d.ts.map +1 -1
  346. package/dist/server/core/conversations/conversation.service.js +397 -383
  347. package/dist/server/core/conversations/conversation.service.js.map +1 -1
  348. package/dist/server/core/conversations/conversation.store.d.ts +3 -0
  349. package/dist/server/core/conversations/conversation.store.d.ts.map +1 -1
  350. package/dist/server/core/conversations/conversation.store.js +2 -1
  351. package/dist/server/core/conversations/conversation.store.js.map +1 -1
  352. package/dist/server/core/conversations/page-context.d.ts +8 -2
  353. package/dist/server/core/conversations/page-context.d.ts.map +1 -1
  354. package/dist/server/core/conversations/page-context.js +61 -2
  355. package/dist/server/core/conversations/page-context.js.map +1 -1
  356. package/dist/server/core/conversations/ports.d.ts +18 -20
  357. package/dist/server/core/conversations/ports.d.ts.map +1 -1
  358. package/dist/server/core/reports/model-usage.d.ts.map +1 -1
  359. package/dist/server/core/reports/model-usage.js +42 -44
  360. package/dist/server/core/reports/model-usage.js.map +1 -1
  361. package/dist/server/core/reports/prices.d.ts.map +1 -1
  362. package/dist/server/core/reports/prices.js +29 -5
  363. package/dist/server/core/reports/prices.js.map +1 -1
  364. package/dist/server/core/reports/report.service.d.ts +4 -2
  365. package/dist/server/core/reports/report.service.d.ts.map +1 -1
  366. package/dist/server/core/reports/report.service.js +148 -66
  367. package/dist/server/core/reports/report.service.js.map +1 -1
  368. package/dist/server/core/runs/access.d.ts +5 -0
  369. package/dist/server/core/runs/access.d.ts.map +1 -0
  370. package/dist/server/core/runs/access.js +10 -0
  371. package/dist/server/core/runs/access.js.map +1 -0
  372. package/dist/server/core/runs/availability.d.ts +18 -6
  373. package/dist/server/core/runs/availability.d.ts.map +1 -1
  374. package/dist/server/core/runs/availability.js +40 -34
  375. package/dist/server/core/runs/availability.js.map +1 -1
  376. package/dist/server/core/runs/claim.d.ts +30 -106
  377. package/dist/server/core/runs/claim.d.ts.map +1 -1
  378. package/dist/server/core/runs/claim.js +630 -323
  379. package/dist/server/core/runs/claim.js.map +1 -1
  380. package/dist/server/core/runs/comment-consent.d.ts +24 -0
  381. package/dist/server/core/runs/comment-consent.d.ts.map +1 -0
  382. package/dist/server/core/runs/comment-consent.js +116 -0
  383. package/dist/server/core/runs/comment-consent.js.map +1 -0
  384. package/dist/server/core/runs/eligibility.d.ts +13 -1
  385. package/dist/server/core/runs/eligibility.d.ts.map +1 -1
  386. package/dist/server/core/runs/eligibility.js +41 -10
  387. package/dist/server/core/runs/eligibility.js.map +1 -1
  388. package/dist/server/core/runs/execution-view.d.ts +8 -0
  389. package/dist/server/core/runs/execution-view.d.ts.map +1 -1
  390. package/dist/server/core/runs/execution-view.js +9 -0
  391. package/dist/server/core/runs/execution-view.js.map +1 -1
  392. package/dist/server/core/runs/execution.d.ts +1 -1
  393. package/dist/server/core/runs/execution.d.ts.map +1 -1
  394. package/dist/server/core/runs/execution.js +8 -2
  395. package/dist/server/core/runs/execution.js.map +1 -1
  396. package/dist/server/core/runs/identity.d.ts +9 -0
  397. package/dist/server/core/runs/identity.d.ts.map +1 -0
  398. package/dist/server/core/runs/identity.js +75 -0
  399. package/dist/server/core/runs/identity.js.map +1 -0
  400. package/dist/server/core/runs/index.d.ts +6 -6
  401. package/dist/server/core/runs/index.d.ts.map +1 -1
  402. package/dist/server/core/runs/index.js +6 -6
  403. package/dist/server/core/runs/index.js.map +1 -1
  404. package/dist/server/core/runs/input-gate.d.ts +1 -1
  405. package/dist/server/core/runs/input-gate.d.ts.map +1 -1
  406. package/dist/server/core/runs/input-gate.js +4 -2
  407. package/dist/server/core/runs/input-gate.js.map +1 -1
  408. package/dist/server/core/runs/lifecycle.d.ts +16 -18
  409. package/dist/server/core/runs/lifecycle.d.ts.map +1 -1
  410. package/dist/server/core/runs/lifecycle.js +146 -60
  411. package/dist/server/core/runs/lifecycle.js.map +1 -1
  412. package/dist/server/core/runs/policy.d.ts +9 -2
  413. package/dist/server/core/runs/policy.d.ts.map +1 -1
  414. package/dist/server/core/runs/policy.js +17 -8
  415. package/dist/server/core/runs/policy.js.map +1 -1
  416. package/dist/server/core/runs/ports.d.ts +41 -31
  417. package/dist/server/core/runs/ports.d.ts.map +1 -1
  418. package/dist/server/core/runs/ports.js +2 -13
  419. package/dist/server/core/runs/ports.js.map +1 -1
  420. package/dist/server/core/runs/preview.d.ts.map +1 -1
  421. package/dist/server/core/runs/preview.js +1 -3
  422. package/dist/server/core/runs/preview.js.map +1 -1
  423. package/dist/server/core/runs/run-data-purge.d.ts +15 -0
  424. package/dist/server/core/runs/run-data-purge.d.ts.map +1 -0
  425. package/dist/server/core/runs/run-data-purge.js +82 -0
  426. package/dist/server/core/runs/run-data-purge.js.map +1 -0
  427. package/dist/server/core/runs/run-requests.d.ts +25 -0
  428. package/dist/server/core/runs/run-requests.d.ts.map +1 -1
  429. package/dist/server/core/runs/run-requests.js +131 -64
  430. package/dist/server/core/runs/run-requests.js.map +1 -1
  431. package/dist/server/core/runs/run.service.d.ts +31 -2
  432. package/dist/server/core/runs/run.service.d.ts.map +1 -1
  433. package/dist/server/core/runs/run.service.js +638 -74
  434. package/dist/server/core/runs/run.service.js.map +1 -1
  435. package/dist/server/core/runs/run.store.d.ts +11 -0
  436. package/dist/server/core/runs/run.store.d.ts.map +1 -1
  437. package/dist/server/core/runs/run.store.js +39 -11
  438. package/dist/server/core/runs/run.store.js.map +1 -1
  439. package/dist/server/core/runs/runner-view.d.ts +12 -2
  440. package/dist/server/core/runs/runner-view.d.ts.map +1 -1
  441. package/dist/server/core/runs/runner-view.js +55 -13
  442. package/dist/server/core/runs/runner-view.js.map +1 -1
  443. package/dist/server/core/runs/selection.d.ts +13 -0
  444. package/dist/server/core/runs/selection.d.ts.map +1 -0
  445. package/dist/server/core/runs/selection.js +21 -0
  446. package/dist/server/core/runs/selection.js.map +1 -0
  447. package/dist/server/core/runs/sweeper.d.ts +1 -0
  448. package/dist/server/core/runs/sweeper.d.ts.map +1 -1
  449. package/dist/server/core/runs/sweeper.js +66 -17
  450. package/dist/server/core/runs/sweeper.js.map +1 -1
  451. package/dist/server/core/runs/transitions.d.ts +6 -2
  452. package/dist/server/core/runs/transitions.d.ts.map +1 -1
  453. package/dist/server/core/runs/transitions.js +73 -19
  454. package/dist/server/core/runs/transitions.js.map +1 -1
  455. package/dist/server/core/runs/workload.d.ts +17 -5
  456. package/dist/server/core/runs/workload.d.ts.map +1 -1
  457. package/dist/server/core/runs/workload.js +203 -68
  458. package/dist/server/core/runs/workload.js.map +1 -1
  459. package/dist/server/core/skills/skill.service.d.ts +6 -2
  460. package/dist/server/core/skills/skill.service.d.ts.map +1 -1
  461. package/dist/server/core/skills/skill.service.js +87 -66
  462. package/dist/server/core/skills/skill.service.js.map +1 -1
  463. package/dist/server/core/skills/skill.store.d.ts +14 -0
  464. package/dist/server/core/skills/skill.store.d.ts.map +1 -1
  465. package/dist/server/core/skills/skill.store.js +30 -0
  466. package/dist/server/core/skills/skill.store.js.map +1 -1
  467. package/dist/server/core/transaction-read.d.ts +4 -0
  468. package/dist/server/core/transaction-read.d.ts.map +1 -0
  469. package/dist/server/core/transaction-read.js +30 -0
  470. package/dist/server/core/transaction-read.js.map +1 -0
  471. package/dist/server/core/variables/index.d.ts +1 -1
  472. package/dist/server/core/variables/index.d.ts.map +1 -1
  473. package/dist/server/core/variables/index.js.map +1 -1
  474. package/dist/server/core/variables/variable.service.d.ts +18 -0
  475. package/dist/server/core/variables/variable.service.d.ts.map +1 -1
  476. package/dist/server/core/variables/variable.service.js +95 -20
  477. package/dist/server/core/variables/variable.service.js.map +1 -1
  478. package/dist/server/index.d.ts +4 -0
  479. package/dist/server/index.d.ts.map +1 -1
  480. package/dist/server/index.js +3 -0
  481. package/dist/server/index.js.map +1 -1
  482. package/dist/server/jobs/job.service.d.ts +1 -1
  483. package/dist/server/jobs/job.service.d.ts.map +1 -1
  484. package/dist/server/jobs/job.service.js +8 -2
  485. package/dist/server/jobs/job.service.js.map +1 -1
  486. package/dist/server/kernel/events.d.ts +7 -3
  487. package/dist/server/kernel/events.d.ts.map +1 -1
  488. package/dist/server/kernel/events.js.map +1 -1
  489. package/dist/server/kernel/scopes.d.ts +6 -0
  490. package/dist/server/kernel/scopes.d.ts.map +1 -1
  491. package/dist/server/kernel/scopes.js +3 -1
  492. package/dist/server/kernel/scopes.js.map +1 -1
  493. package/dist/server/online/agent/configuration.d.ts +26 -0
  494. package/dist/server/online/agent/configuration.d.ts.map +1 -0
  495. package/dist/server/online/agent/configuration.js +261 -0
  496. package/dist/server/online/agent/configuration.js.map +1 -0
  497. package/dist/server/online/agent/contracts.d.ts +87 -0
  498. package/dist/server/online/agent/contracts.d.ts.map +1 -0
  499. package/dist/server/online/agent/contracts.js +2 -0
  500. package/dist/server/online/agent/contracts.js.map +1 -0
  501. package/dist/server/online/agent/errors.d.ts +11 -0
  502. package/dist/server/online/agent/errors.d.ts.map +1 -0
  503. package/dist/server/online/agent/errors.js +21 -0
  504. package/dist/server/online/agent/errors.js.map +1 -0
  505. package/dist/server/online/agent/index.d.ts +11 -0
  506. package/dist/server/online/agent/index.d.ts.map +1 -0
  507. package/dist/server/online/agent/index.js +9 -0
  508. package/dist/server/online/agent/index.js.map +1 -0
  509. package/dist/server/online/agent/messages/json.d.ts +5 -0
  510. package/dist/server/online/agent/messages/json.d.ts.map +1 -0
  511. package/dist/server/online/agent/messages/json.js +88 -0
  512. package/dist/server/online/agent/messages/json.js.map +1 -0
  513. package/dist/server/online/agent/messages/projection.d.ts +20 -0
  514. package/dist/server/online/agent/messages/projection.d.ts.map +1 -0
  515. package/dist/server/online/agent/messages/projection.js +495 -0
  516. package/dist/server/online/agent/messages/projection.js.map +1 -0
  517. package/dist/server/online/agent/messages/validation.d.ts +7 -0
  518. package/dist/server/online/agent/messages/validation.d.ts.map +1 -0
  519. package/dist/server/online/agent/messages/validation.js +159 -0
  520. package/dist/server/online/agent/messages/validation.js.map +1 -0
  521. package/dist/server/online/agent/native/backend.d.ts +60 -0
  522. package/dist/server/online/agent/native/backend.d.ts.map +1 -0
  523. package/dist/server/online/agent/native/backend.js +411 -0
  524. package/dist/server/online/agent/native/backend.js.map +1 -0
  525. package/dist/server/online/agent/native/execution.d.ts +41 -0
  526. package/dist/server/online/agent/native/execution.d.ts.map +1 -0
  527. package/dist/server/online/agent/native/execution.js +430 -0
  528. package/dist/server/online/agent/native/execution.js.map +1 -0
  529. package/dist/server/online/agent/native/session.d.ts +40 -0
  530. package/dist/server/online/agent/native/session.d.ts.map +1 -0
  531. package/dist/server/online/agent/native/session.js +104 -0
  532. package/dist/server/online/agent/native/session.js.map +1 -0
  533. package/dist/server/online/agent/native/types.d.ts +32 -0
  534. package/dist/server/online/agent/native/types.d.ts.map +1 -0
  535. package/dist/server/online/agent/native/types.js +2 -0
  536. package/dist/server/online/agent/native/types.js.map +1 -0
  537. package/dist/server/online/agent/persistence/manager.d.ts +16 -0
  538. package/dist/server/online/agent/persistence/manager.d.ts.map +1 -0
  539. package/dist/server/online/agent/persistence/manager.js +209 -0
  540. package/dist/server/online/agent/persistence/manager.js.map +1 -0
  541. package/dist/server/online/agent/persistence/state.d.ts +11 -0
  542. package/dist/server/online/agent/persistence/state.d.ts.map +1 -0
  543. package/dist/server/online/agent/persistence/state.js +45 -0
  544. package/dist/server/online/agent/persistence/state.js.map +1 -0
  545. package/dist/server/online/agent/persistence/store.d.ts +58 -0
  546. package/dist/server/online/agent/persistence/store.d.ts.map +1 -0
  547. package/dist/server/online/agent/persistence/store.js +634 -0
  548. package/dist/server/online/agent/persistence/store.js.map +1 -0
  549. package/dist/server/online/agent/persistence/types.d.ts +44 -0
  550. package/dist/server/online/agent/persistence/types.d.ts.map +1 -0
  551. package/dist/server/online/agent/persistence/types.js +2 -0
  552. package/dist/server/online/agent/persistence/types.js.map +1 -0
  553. package/dist/server/online/agent/runner/backend.d.ts +57 -0
  554. package/dist/server/online/agent/runner/backend.d.ts.map +1 -0
  555. package/dist/server/online/agent/runner/backend.js +501 -0
  556. package/dist/server/online/agent/runner/backend.js.map +1 -0
  557. package/dist/server/online/agent/runner/projection.d.ts +10 -0
  558. package/dist/server/online/agent/runner/projection.d.ts.map +1 -0
  559. package/dist/server/online/agent/runner/projection.js +171 -0
  560. package/dist/server/online/agent/runner/projection.js.map +1 -0
  561. package/dist/server/online/agent/runner/types.d.ts +44 -0
  562. package/dist/server/online/agent/runner/types.d.ts.map +1 -0
  563. package/dist/server/online/agent/runner/types.js +2 -0
  564. package/dist/server/online/agent/runner/types.js.map +1 -0
  565. package/dist/server/online/agent/service.d.ts +47 -0
  566. package/dist/server/online/agent/service.d.ts.map +1 -0
  567. package/dist/server/online/agent/service.js +111 -0
  568. package/dist/server/online/agent/service.js.map +1 -0
  569. package/dist/server/online/agent/transport/streams.d.ts +54 -0
  570. package/dist/server/online/agent/transport/streams.d.ts.map +1 -0
  571. package/dist/server/online/agent/transport/streams.js +440 -0
  572. package/dist/server/online/agent/transport/streams.js.map +1 -0
  573. package/dist/server/online/agent/types.d.ts +155 -0
  574. package/dist/server/online/agent/types.d.ts.map +1 -0
  575. package/dist/server/online/agent/types.js +2 -0
  576. package/dist/server/online/agent/types.js.map +1 -0
  577. package/dist/server/online/index.d.ts +0 -5
  578. package/dist/server/online/index.d.ts.map +1 -1
  579. package/dist/server/online/index.js +0 -5
  580. package/dist/server/online/index.js.map +1 -1
  581. package/dist/server/online/providers.d.ts.map +1 -1
  582. package/dist/server/online/providers.js +26 -2
  583. package/dist/server/online/providers.js.map +1 -1
  584. package/dist/server/online/routes.d.ts.map +1 -1
  585. package/dist/server/online/routes.js +6 -35
  586. package/dist/server/online/routes.js.map +1 -1
  587. package/dist/server/online/services.d.ts.map +1 -1
  588. package/dist/server/online/services.js +101 -24
  589. package/dist/server/online/services.js.map +1 -1
  590. package/dist/server/providers/agents.d.ts +18 -25
  591. package/dist/server/providers/agents.d.ts.map +1 -1
  592. package/dist/server/providers/agents.js +72 -101
  593. package/dist/server/providers/agents.js.map +1 -1
  594. package/dist/server/providers/runners.d.ts +3 -1
  595. package/dist/server/providers/runners.d.ts.map +1 -1
  596. package/dist/server/providers/runners.js +38 -9
  597. package/dist/server/providers/runners.js.map +1 -1
  598. package/dist/server/routes/admin.d.ts +4 -0
  599. package/dist/server/routes/admin.d.ts.map +1 -1
  600. package/dist/server/routes/admin.js +131 -209
  601. package/dist/server/routes/admin.js.map +1 -1
  602. package/dist/server/routes/chat.d.ts.map +1 -1
  603. package/dist/server/routes/chat.js +313 -164
  604. package/dist/server/routes/chat.js.map +1 -1
  605. package/dist/server/routes/index.d.ts.map +1 -1
  606. package/dist/server/routes/index.js +8 -0
  607. package/dist/server/routes/index.js.map +1 -1
  608. package/dist/server/routes/roster.d.ts.map +1 -1
  609. package/dist/server/routes/roster.js +6 -22
  610. package/dist/server/routes/roster.js.map +1 -1
  611. package/dist/server/routes/run-requests.js +3 -3
  612. package/dist/server/routes/run-requests.js.map +1 -1
  613. package/dist/server/routes/runners/admin.d.ts.map +1 -1
  614. package/dist/server/routes/runners/admin.js +219 -25
  615. package/dist/server/routes/runners/admin.js.map +1 -1
  616. package/dist/server/routes/runners/install.d.ts.map +1 -1
  617. package/dist/server/routes/runners/install.js +7 -2
  618. package/dist/server/routes/runners/install.js.map +1 -1
  619. package/dist/server/routes/runners/runner.d.ts.map +1 -1
  620. package/dist/server/routes/runners/runner.js +2 -0
  621. package/dist/server/routes/runners/runner.js.map +1 -1
  622. package/dist/server/routes/schemas.d.ts +18 -10
  623. package/dist/server/routes/schemas.d.ts.map +1 -1
  624. package/dist/server/routes/schemas.js +497 -153
  625. package/dist/server/routes/schemas.js.map +1 -1
  626. package/dist/server/runners/runner.service.d.ts +47 -4
  627. package/dist/server/runners/runner.service.d.ts.map +1 -1
  628. package/dist/server/runners/runner.service.js +423 -79
  629. package/dist/server/runners/runner.service.js.map +1 -1
  630. package/dist/server/runners/runner.store.d.ts +8 -3
  631. package/dist/server/runners/runner.store.d.ts.map +1 -1
  632. package/dist/server/runners/runner.store.js +63 -6
  633. package/dist/server/runners/runner.store.js.map +1 -1
  634. package/dist/server/runners/slots.d.ts +5 -2
  635. package/dist/server/runners/slots.d.ts.map +1 -1
  636. package/dist/server/runners/slots.js +3 -4
  637. package/dist/server/runners/slots.js.map +1 -1
  638. package/dist/server/runners/workspaces.d.ts.map +1 -1
  639. package/dist/server/runners/workspaces.js +18 -2
  640. package/dist/server/runners/workspaces.js.map +1 -1
  641. package/dist/server/testing.d.ts +0 -2
  642. package/dist/server/testing.d.ts.map +1 -1
  643. package/dist/server/testing.js +1 -4
  644. package/dist/server/testing.js.map +1 -1
  645. package/dist/server/tokens.d.ts +8 -7
  646. package/dist/server/tokens.d.ts.map +1 -1
  647. package/dist/server/tokens.js +4 -2
  648. package/dist/server/tokens.js.map +1 -1
  649. package/dist/shared/access.d.ts +2 -6
  650. package/dist/shared/access.d.ts.map +1 -1
  651. package/dist/shared/access.js +2 -6
  652. package/dist/shared/access.js.map +1 -1
  653. package/dist/shared/agents.d.ts +131 -169
  654. package/dist/shared/agents.d.ts.map +1 -1
  655. package/dist/shared/agents.js +36 -102
  656. package/dist/shared/agents.js.map +1 -1
  657. package/dist/shared/conversations.d.ts +93 -170
  658. package/dist/shared/conversations.d.ts.map +1 -1
  659. package/dist/shared/conversations.js +8 -30
  660. package/dist/shared/conversations.js.map +1 -1
  661. package/dist/shared/model-catalog.d.ts +53 -0
  662. package/dist/shared/model-catalog.d.ts.map +1 -0
  663. package/dist/shared/model-catalog.js +182 -0
  664. package/dist/shared/model-catalog.js.map +1 -0
  665. package/dist/shared/online-agent.d.ts +3 -0
  666. package/dist/shared/online-agent.d.ts.map +1 -0
  667. package/dist/shared/online-agent.js +3 -0
  668. package/dist/shared/online-agent.js.map +1 -0
  669. package/dist/shared/page-ui-context.d.ts +26 -0
  670. package/dist/shared/page-ui-context.d.ts.map +1 -0
  671. package/dist/shared/page-ui-context.js +129 -0
  672. package/dist/shared/page-ui-context.js.map +1 -0
  673. package/dist/shared/quota.d.ts +15 -0
  674. package/dist/shared/quota.d.ts.map +1 -0
  675. package/dist/shared/quota.js +2 -0
  676. package/dist/shared/quota.js.map +1 -0
  677. package/dist/shared/runners.d.ts +132 -14
  678. package/dist/shared/runners.d.ts.map +1 -1
  679. package/dist/shared/runners.js +171 -11
  680. package/dist/shared/runners.js.map +1 -1
  681. package/dist/shared/runs.d.ts +57 -1
  682. package/dist/shared/runs.d.ts.map +1 -1
  683. package/dist/shared/runs.js +28 -0
  684. package/dist/shared/runs.js.map +1 -1
  685. package/dist/shared/skills.d.ts +11 -5
  686. package/dist/shared/skills.d.ts.map +1 -1
  687. package/dist/shared/skills.js +7 -2
  688. package/dist/shared/skills.js.map +1 -1
  689. package/dist/shared/ui-message.d.ts +80 -0
  690. package/dist/shared/ui-message.d.ts.map +1 -0
  691. package/dist/shared/ui-message.js +153 -0
  692. package/dist/shared/ui-message.js.map +1 -0
  693. package/dist/shared/variables.js +1 -1
  694. package/dist/shared/variables.js.map +1 -1
  695. package/docs/ai-forms.md +346 -0
  696. package/docs/execution-history.md +19 -0
  697. package/docs/mysql-installation-upgrade.md +7 -0
  698. package/docs/runner-agents.md +27 -0
  699. package/docs/ui-message-clients.md +80 -0
  700. package/docs/ui-messages.md +209 -0
  701. package/docs/workspace-cleanup.md +13 -0
  702. package/package.json +41 -27
  703. package/skills/nocobase-app-plugin-agents/SKILL.md +16 -13
  704. package/skills/nocobase-app-plugin-agents/references/agents.md +30 -0
  705. package/skills/nocobase-app-plugin-agents/references/extension-points.md +21 -21
  706. package/skills/nocobase-app-plugin-agents/references/model-services.md +17 -0
  707. package/skills/nocobase-app-plugin-agents/references/online-agent.md +216 -0
  708. package/skills/nocobase-app-plugin-agents/references/runners.md +12 -0
  709. package/skills/nocobase-app-plugin-agents/references/setup-and-config.md +6 -7
  710. package/skills/nocobase-app-plugin-agents/references/variables-skills-usage.md +6 -4
  711. package/skills/nocobase-app-plugin-agents/references/verification-and-troubleshooting.md +29 -32
  712. package/dist/client/chat/settings-section.d.ts +0 -5
  713. package/dist/client/chat/settings-section.d.ts.map +0 -1
  714. package/dist/client/chat/settings-section.js +0 -86
  715. package/dist/client/chat/settings-section.js.map +0 -1
  716. package/dist/client/components/agent-fields.d.ts +0 -45
  717. package/dist/client/components/agent-fields.d.ts.map +0 -1
  718. package/dist/client/components/agent-fields.js +0 -83
  719. package/dist/client/components/agent-fields.js.map +0 -1
  720. package/dist/client/components/agent-type.d.ts +0 -32
  721. package/dist/client/components/agent-type.d.ts.map +0 -1
  722. package/dist/client/components/agent-type.js +0 -80
  723. package/dist/client/components/agent-type.js.map +0 -1
  724. package/dist/client/components/model-entries.d.ts +0 -44
  725. package/dist/client/components/model-entries.d.ts.map +0 -1
  726. package/dist/client/components/model-entries.js +0 -104
  727. package/dist/client/components/model-entries.js.map +0 -1
  728. package/dist/client/hooks/use-agent-save.d.ts +0 -9
  729. package/dist/client/hooks/use-agent-save.d.ts.map +0 -1
  730. package/dist/client/hooks/use-agent-save.js +0 -40
  731. package/dist/client/hooks/use-agent-save.js.map +0 -1
  732. package/dist/client/hooks/use-model-catalog.d.ts +0 -9
  733. package/dist/client/hooks/use-model-catalog.d.ts.map +0 -1
  734. package/dist/client/hooks/use-model-catalog.js +0 -27
  735. package/dist/client/hooks/use-model-catalog.js.map +0 -1
  736. package/dist/client/lib/model-suggestions.d.ts +0 -28
  737. package/dist/client/lib/model-suggestions.d.ts.map +0 -1
  738. package/dist/client/lib/model-suggestions.js +0 -44
  739. package/dist/client/lib/model-suggestions.js.map +0 -1
  740. package/dist/client/lib/tool-policy.d.ts +0 -3
  741. package/dist/client/lib/tool-policy.d.ts.map +0 -1
  742. package/dist/client/lib/tool-policy.js +0 -5
  743. package/dist/client/lib/tool-policy.js.map +0 -1
  744. package/dist/client/online/default-model.d.ts +0 -5
  745. package/dist/client/online/default-model.d.ts.map +0 -1
  746. package/dist/client/online/default-model.js +0 -65
  747. package/dist/client/online/default-model.js.map +0 -1
  748. package/dist/client/pages/agents/agent-model.d.ts +0 -69
  749. package/dist/client/pages/agents/agent-model.d.ts.map +0 -1
  750. package/dist/client/pages/agents/agent-model.js +0 -153
  751. package/dist/client/pages/agents/agent-model.js.map +0 -1
  752. package/dist/client/pages/agents/detail/brief-preview.d.ts +0 -7
  753. package/dist/client/pages/agents/detail/brief-preview.d.ts.map +0 -1
  754. package/dist/client/pages/agents/detail/brief-preview.js +0 -43
  755. package/dist/client/pages/agents/detail/brief-preview.js.map +0 -1
  756. package/dist/client/pages/agents/detail/history.d.ts +0 -11
  757. package/dist/client/pages/agents/detail/history.d.ts.map +0 -1
  758. package/dist/client/pages/agents/detail/history.js +0 -149
  759. package/dist/client/pages/agents/detail/history.js.map +0 -1
  760. package/dist/client/pages/agents/detail/index.d.ts +0 -3
  761. package/dist/client/pages/agents/detail/index.d.ts.map +0 -1
  762. package/dist/client/pages/agents/detail/index.js +0 -241
  763. package/dist/client/pages/agents/detail/index.js.map +0 -1
  764. package/dist/client/pages/agents/detail/sections.d.ts +0 -21
  765. package/dist/client/pages/agents/detail/sections.d.ts.map +0 -1
  766. package/dist/client/pages/agents/detail/sections.js +0 -280
  767. package/dist/client/pages/agents/detail/sections.js.map +0 -1
  768. package/dist/client/pages/agents/detail/tab-draft.d.ts +0 -43
  769. package/dist/client/pages/agents/detail/tab-draft.d.ts.map +0 -1
  770. package/dist/client/pages/agents/detail/tab-draft.js +0 -115
  771. package/dist/client/pages/agents/detail/tab-draft.js.map +0 -1
  772. package/dist/client/pages/agents/detail/unsaved-bar.d.ts +0 -13
  773. package/dist/client/pages/agents/detail/unsaved-bar.d.ts.map +0 -1
  774. package/dist/client/pages/agents/detail/unsaved-bar.js +0 -21
  775. package/dist/client/pages/agents/detail/unsaved-bar.js.map +0 -1
  776. package/dist/client/pages/agents/new.d.ts +0 -3
  777. package/dist/client/pages/agents/new.d.ts.map +0 -1
  778. package/dist/client/pages/agents/new.js +0 -149
  779. package/dist/client/pages/agents/new.js.map +0 -1
  780. package/dist/client/pages/agents/preset-picker.d.ts +0 -8
  781. package/dist/client/pages/agents/preset-picker.d.ts.map +0 -1
  782. package/dist/client/pages/agents/preset-picker.js +0 -41
  783. package/dist/client/pages/agents/preset-picker.js.map +0 -1
  784. package/dist/server/core/consultations/consultation.service.d.ts +0 -59
  785. package/dist/server/core/consultations/consultation.service.d.ts.map +0 -1
  786. package/dist/server/core/consultations/consultation.service.js +0 -198
  787. package/dist/server/core/consultations/consultation.service.js.map +0 -1
  788. package/dist/server/core/consultations/index.d.ts +0 -3
  789. package/dist/server/core/consultations/index.d.ts.map +0 -1
  790. package/dist/server/core/consultations/index.js +0 -3
  791. package/dist/server/core/consultations/index.js.map +0 -1
  792. package/dist/server/core/consultations/prompt.d.ts +0 -41
  793. package/dist/server/core/consultations/prompt.d.ts.map +0 -1
  794. package/dist/server/core/consultations/prompt.js +0 -64
  795. package/dist/server/core/consultations/prompt.js.map +0 -1
  796. package/dist/server/core/presets/index.d.ts +0 -19
  797. package/dist/server/core/presets/index.d.ts.map +0 -1
  798. package/dist/server/core/presets/index.js +0 -28
  799. package/dist/server/core/presets/index.js.map +0 -1
  800. package/dist/server/online/cli-command.d.ts +0 -20
  801. package/dist/server/online/cli-command.d.ts.map +0 -1
  802. package/dist/server/online/cli-command.js +0 -345
  803. package/dist/server/online/cli-command.js.map +0 -1
  804. package/dist/server/online/consult-tool.d.ts +0 -54
  805. package/dist/server/online/consult-tool.d.ts.map +0 -1
  806. package/dist/server/online/consult-tool.js +0 -177
  807. package/dist/server/online/consult-tool.js.map +0 -1
  808. package/dist/server/online/executor.d.ts +0 -83
  809. package/dist/server/online/executor.d.ts.map +0 -1
  810. package/dist/server/online/executor.js +0 -714
  811. package/dist/server/online/executor.js.map +0 -1
  812. package/dist/server/online/sandbox.d.ts +0 -32
  813. package/dist/server/online/sandbox.d.ts.map +0 -1
  814. package/dist/server/online/sandbox.js +0 -246
  815. package/dist/server/online/sandbox.js.map +0 -1
  816. package/dist/server/online/scripted.d.ts +0 -12
  817. package/dist/server/online/scripted.d.ts.map +0 -1
  818. package/dist/server/online/scripted.js +0 -176
  819. package/dist/server/online/scripted.js.map +0 -1
  820. package/dist/server/online/tools.d.ts +0 -17
  821. package/dist/server/online/tools.d.ts.map +0 -1
  822. package/dist/server/online/tools.js +0 -31
  823. package/dist/server/online/tools.js.map +0 -1
  824. package/dist/server/vendor/THIRD_PARTY_LICENSES.txt +0 -782
  825. package/dist/server/vendor/just-bash.d.ts +0 -83
  826. package/dist/server/vendor/just-bash.js +0 -2102
  827. package/dist/shared/presets.d.ts +0 -30
  828. package/dist/shared/presets.d.ts.map +0 -1
  829. package/dist/shared/presets.js +0 -2
  830. package/dist/shared/presets.js.map +0 -1
  831. package/skills/nocobase-app-plugin-agents/references/online-agents.md +0 -31
@@ -1,10 +1,13 @@
1
1
  /**
2
- * The chat API, mounted at `/api/agents` (`CHAT_ROUTES` in `shared/conversations`), and the agent presets at
3
- * `/api/agents/presets`. Every route is behind the guard (a signed-in person and their authorization context). A
4
- * conversation is its owner's alone: the service answers 404 to anyone else, whatever they may manage. Changing the
5
- * team's default chat agent needs `agents.agents` manage; reading presets needs `agents.agents` read.
2
+ * The chat API, mounted at `/api/agents` (`CHAT_ROUTES` in `shared/conversations`). Every route is behind the guard (a
3
+ * signed-in person and their authorization context). A conversation is its owner's alone: the service answers 404 to
4
+ * anyone else, whatever they may manage. Changing the team's default chat agent needs `agents.agents` manage.
6
5
  */
7
6
  import { apiErrorResponse, apiErrorResponses, apiValidator, cliRoute, dataResponse, describeRoute, emptyResponse, listResponse, } from '@nocobase/app-server/router';
7
+ import { createUIMessageStreamResponse } from 'ai';
8
+ import { appUIMessageMetadataSchema, appUIToolApprovalInputSchema, } from '../../shared/online-agent.js';
9
+ import { cleanTitle } from '../core/conversations/titles.js';
10
+ import { jsonSafe } from '../online/agent/messages/json.js';
8
11
  import { bodyLimit } from 'hono/body-limit';
9
12
  import { z } from 'zod';
10
13
  import { CHAT_ATTACHMENT_SIZE_MAX, CHAT_ATTACHMENTS_PER_MESSAGE_MAX, CONVERSATION_SOURCE_PATTERN, CONVERSATION_TITLE_MAX, MESSAGE_CONTENT_MAX, } from '../../shared/conversations.js';
@@ -14,59 +17,100 @@ import { fileTooLarge } from '../core/conversations/attachments.js';
14
17
  import { forbidden, invalid } from '../kernel/errors.js';
15
18
  import { decodePageToken, domainRouter, encodePageToken, } from '../kernel/http.js';
16
19
  import { personOrRunSecurity, tags } from './openapi.js';
17
- import { AgentParams, AgentPresetSchema, AgentSchema, ChatAgentSchema, ChatSettingsSchema, ChatAttachmentContentQuery, ChatAttachmentParams, ChatDefaultAgentSchema, ConversationDetailSchema, ConversationListQuerySchema, ConversationMessageSchema, ConversationParams, ConversationSummarySchema, MessageAttachmentSchema, MessageListQuerySchema, PageTokenMetaSchema, SendMessageResultSchema, SeqPageMetaSchema, } from './schemas.js';
20
+ import { ChatAgentSchema, ChatSettingsSchema, ChatAttachmentContentQuery, ChatAttachmentParams, ChatDefaultAgentSchema, ConversationDetailSchema, ConversationListQuerySchema, ConversationParams, ConversationSummarySchema, MessageAttachmentSchema, MessageListQuerySchema, PageTokenMetaSchema, SeqPageMetaSchema, } from './schemas.js';
18
21
  const noConversation = apiErrorResponse(404, "The conversation does not exist or is not the caller's (`CONVERSATION_NOT_FOUND`).");
19
22
  const conversationConflict = (when) => apiErrorResponse(400, `${when} (\`CONVERSATION_CONFLICT\`).`);
20
23
  const MessagePosition = z.object({ before: z.number().int().min(1) });
21
- const CreateSchema = z.strictObject({
24
+ const ConfigInput = z.strictObject({
22
25
  agentId: z.string().min(1).max(64).optional(),
26
+ scope: z.array(z.string()).optional(),
27
+ thinking: z.string().optional(),
28
+ context: z
29
+ .strictObject({
30
+ variable: z.json().optional(),
31
+ })
32
+ .optional(),
33
+ });
34
+ const ConfigOutput = z.object({
35
+ agentId: z.string().optional(),
36
+ selectedModel: z
37
+ .object({ modelService: z.string(), model: z.string() })
38
+ .nullable(),
39
+ scope: z.array(z.string()),
40
+ model: z.array(z.string()),
41
+ thinking: z.string().optional(),
42
+ tool: z.array(z.string()),
43
+ toolVersions: z.record(z.string(), z.string()),
44
+ systemPrompt: z.string(),
45
+ variable: z.json().optional(),
46
+ });
47
+ const SelectedModel = z.strictObject({
48
+ modelService: z.string().min(1),
49
+ model: z.string().min(1),
50
+ });
51
+ const CreateSchema = z.strictObject({
52
+ agentId: z
53
+ .string()
54
+ .min(1)
55
+ .max(64)
56
+ .optional()
57
+ .describe('The agent to start the conversation with.'),
23
58
  title: z
24
59
  .string()
25
60
  .max(CONVERSATION_TITLE_MAX * 2)
26
- .optional(),
27
- source: z.string().regex(CONVERSATION_SOURCE_PATTERN).optional(),
28
- model: z
29
- .strictObject({
30
- modelService: z.string().min(1).max(100),
31
- model: z.string().min(1).max(200),
32
- })
33
- .nullable()
34
61
  .optional()
35
- .meta({
36
- description: "An online agent: the entry of its list (`ChatAgent.models`) to answer with; the agent's default when left out.",
37
- }),
62
+ .describe('The conversation title.'),
63
+ source: z
64
+ .string()
65
+ .regex(CONVERSATION_SOURCE_PATTERN)
66
+ .optional()
67
+ .describe('The source context associated with this conversation.'),
68
+ showInChatList: z
69
+ .boolean()
70
+ .optional()
71
+ .describe('Include this conversation in the default chat list (default true).'),
72
+ config: ConfigInput.optional().describe('Explicit ordinary OnlineAgent configuration overrides for the new conversation.'),
73
+ selectedModel: SelectedModel.optional().describe('Native model selection as modelService and model; omit for a Runner agent.'),
38
74
  });
39
75
  const PatchSchema = z.strictObject({
40
76
  title: z
41
77
  .string()
42
78
  .max(CONVERSATION_TITLE_MAX * 2)
43
- .optional(),
44
- archived: z.boolean().optional(),
45
- model: z
79
+ .optional()
80
+ .describe('The conversation title.'),
81
+ archived: z
82
+ .boolean()
83
+ .optional()
84
+ .describe('Whether to archive the conversation.'),
85
+ });
86
+ const NativeSendSchema = z.strictObject({
87
+ message: z
46
88
  .strictObject({
47
- modelService: z.string().min(1).max(100),
48
- model: z.string().min(1).max(200),
89
+ id: z.string().min(1).max(64),
90
+ role: z.literal('user'),
91
+ parts: z
92
+ .array(z.strictObject({
93
+ type: z.literal('text'),
94
+ text: z.string().max(MESSAGE_CONTENT_MAX * 2),
95
+ }))
96
+ .max(20),
49
97
  })
50
- .nullable()
51
- .optional(),
52
- });
53
- const SendSchema = z.strictObject({
54
- content: z
55
- .string()
56
- .max(MESSAGE_CONTENT_MAX * 2)
57
- .meta({
58
- description: 'Markdown; empty only when files are sent.',
59
- }),
60
- context: PageContextSchema.optional(),
61
- clientId: z.string().min(1).max(100).optional(),
98
+ .describe('The current SDK user message with id, role user and text parts.'),
62
99
  attachmentIds: z
63
100
  .array(z.string().min(1).max(64))
64
101
  .max(CHAT_ATTACHMENTS_PER_MESSAGE_MAX)
65
- .optional()
66
- .meta({
67
- description: `The caller's uploads not sent yet (\`POST /api/agents/chatAttachments\`), at most ${CHAT_ATTACHMENTS_PER_MESSAGE_MAX}, sent with the message in this order.`,
68
- }),
102
+ .optional(),
103
+ context: PageContextSchema.optional(),
104
+ selectedModel: SelectedModel.optional(),
69
105
  });
106
+ const SendSchema = NativeSendSchema;
107
+ const NativeMessageSchema = z.object({
108
+ id: z.string(),
109
+ role: z.enum(['user', 'assistant', 'system']),
110
+ metadata: appUIMessageMetadataSchema,
111
+ parts: z.array(z.json()),
112
+ });
113
+ const ApprovalSchema = appUIToolApprovalInputSchema;
70
114
  /** A multipart body of one file, as `file`. */
71
115
  const singleFileBody = {
72
116
  required: true,
@@ -75,7 +119,13 @@ const singleFileBody = {
75
119
  schema: {
76
120
  type: 'object',
77
121
  required: ['file'],
78
- properties: { file: { type: 'string', format: 'binary' } },
122
+ properties: {
123
+ file: {
124
+ type: 'string',
125
+ format: 'binary',
126
+ description: 'The file to upload for the conversation.',
127
+ },
128
+ },
79
129
  },
80
130
  },
81
131
  },
@@ -103,24 +153,6 @@ function contentHeaders(attachment, download) {
103
153
  };
104
154
  }
105
155
  const noAttachment = apiErrorResponse(404, 'The file does not exist, or the caller may not read it (`NOT_FOUND`).');
106
- const StartSchema = z.strictObject({
107
- source: z.string().regex(CONVERSATION_SOURCE_PATTERN),
108
- text: z
109
- .string()
110
- .min(1)
111
- .max(MESSAGE_CONTENT_MAX * 2),
112
- agentId: z.string().min(1).max(64).optional(),
113
- title: z
114
- .string()
115
- .max(CONVERSATION_TITLE_MAX * 2)
116
- .optional(),
117
- context: PageContextSchema.optional(),
118
- clientId: z.string().min(1).max(100).optional(),
119
- });
120
- const CopySchema = z.strictObject({
121
- name: z.string().max(400).optional(),
122
- makeDefault: z.boolean().optional(),
123
- });
124
156
  /**
125
157
  * `guard` authenticates the request and sets `caller`; the route contribution passes the real one, tests a fake.
126
158
  * `personOrRun` also takes a run token (setting `caller.run`), for reading a conversation's files; `guard` by default.
@@ -129,6 +161,12 @@ export function createChatRoutes(services, guard, personOrRun = guard) {
129
161
  const router = domainRouter();
130
162
  const { conversations, chat } = services;
131
163
  const me = (context) => context.get('caller').userId;
164
+ const trusted = (context) => {
165
+ const value = context.get('caller').onlineContext;
166
+ if (!value)
167
+ throw forbidden('Trusted entry credentials are required.');
168
+ return value;
169
+ };
132
170
  const conversationParam = apiValidator('param', ConversationParams);
133
171
  const conversationId = (context) => context.req.param('conversationId') ?? '';
134
172
  router.get('/conversations', guard, describeRoute({
@@ -170,9 +208,12 @@ export function createChatRoutes(services, guard, personOrRun = guard) {
170
208
  operationId: 'agentsCreateConversation',
171
209
  ...cliRoute({
172
210
  command: 'conversation create',
173
- flags: { agentId: { name: 'agent' } },
211
+ flags: {
212
+ agentId: { name: 'agent' },
213
+ showInChatList: { name: 'show-in-chat-list' },
214
+ },
174
215
  }),
175
- description: "With the given agent, or the caller's default chat agent when none is named; for an online agent, `model` chooses one of its `models` to answer with (400, `metadata.reason` `MODEL_NOT_LISTED`, for any other).",
216
+ description: 'Creates an OnlineAgent session without sending input. Configuration defaults are resolved once; original model columns remain authoritative.',
176
217
  responses: {
177
218
  201: dataResponse(ConversationDetailSchema, 'Created.'),
178
219
  400: conversationConflict('No chat agent is available'),
@@ -180,24 +221,28 @@ export function createChatRoutes(services, guard, personOrRun = guard) {
180
221
  ...apiErrorResponses,
181
222
  },
182
223
  }), apiValidator('json', CreateSchema), async (context) => context.json({
183
- data: await conversations.create(me(context), context.req.valid('json')),
224
+ data: await (async () => {
225
+ const request = context.req.valid('json');
226
+ const title = request.title === undefined
227
+ ? undefined
228
+ : cleanTitle(request.title);
229
+ if (title && title.length > CONVERSATION_TITLE_MAX)
230
+ throw invalid('The conversation title is too long.');
231
+ if (request.source &&
232
+ request.source !== 'panel' &&
233
+ !conversations.sources.has(request.source))
234
+ throw invalid('Unknown conversation source.');
235
+ const agent = await services.onlineAgent.realtime(trusted(context), {
236
+ ...request.config,
237
+ ...(request.agentId ? { agentId: request.agentId } : {}),
238
+ selectedModel: request.selectedModel,
239
+ source: request.source ?? 'panel',
240
+ title: title?.text || undefined,
241
+ showInChatList: request.showInChatList,
242
+ }, 'http');
243
+ return conversations.get(me(context), agent.sessionId);
244
+ })(),
184
245
  }, 201));
185
- router.post('/conversations/start', guard, describeRoute({
186
- tags,
187
- summary: 'Start a conversation with its first message',
188
- operationId: 'agentsStartConversation',
189
- // UI-only: the pages' buttons, with page context; `conversation create` and `conversation message send` do it from the command line.
190
- ...cliRoute(false),
191
- description: "A new conversation from a place the application registered (`source`), with its first message, which wakes the agent. What the application's buttons call.",
192
- responses: {
193
- 200: dataResponse(SendMessageResultSchema),
194
- 400: conversationConflict('No chat agent is available'),
195
- 404: apiErrorResponse(404, 'The agent does not exist (`AGENT_NOT_FOUND`).'),
196
- ...apiErrorResponses,
197
- },
198
- }), apiValidator('json', StartSchema), async (context) => context.json({
199
- data: await conversations.start(me(context), context.req.valid('json')),
200
- }));
201
246
  router.get('/conversations/:conversationId', guard, describeRoute({
202
247
  tags,
203
248
  summary: 'Get a conversation',
@@ -217,9 +262,8 @@ export function createChatRoutes(services, guard, personOrRun = guard) {
217
262
  }));
218
263
  router.patch('/conversations/:conversationId', guard, describeRoute({
219
264
  tags,
220
- summary: 'Rename, archive or choose the model of a conversation',
265
+ summary: 'Rename or archive a conversation',
221
266
  operationId: 'agentsUpdateConversation',
222
- description: "`model` picks one of the online conversation's `models` for its next runs (null: the agent's default); 400 `INVALID_REQUEST` with `reason: MODEL_NOT_LISTED` when the agent does not list it.",
223
267
  ...cliRoute({
224
268
  command: 'conversation update',
225
269
  args: ['conversationId'],
@@ -244,31 +288,45 @@ export function createChatRoutes(services, guard, personOrRun = guard) {
244
288
  conversationId: { name: 'conversation' },
245
289
  pageSize: { name: 'limit' },
246
290
  },
247
- columns: ['seq', 'role', 'content.content', 'createdAt'],
291
+ columns: ['metadata.seq', 'role', 'parts', 'metadata.createdAt'],
248
292
  }),
249
- description: 'Newest page first, each page in order; `after` reads only what arrived since a `seq`, and a page token the page before.',
293
+ description: 'Newest page first, each page in order; after reads newly inserted sequences and pageToken reads older pages. Native ids rereads current messages after revision notifications, including updates at unchanged sequences.',
250
294
  responses: {
251
- 200: listResponse(ConversationMessageSchema, SeqPageMetaSchema),
295
+ 200: listResponse(NativeMessageSchema, SeqPageMetaSchema),
252
296
  404: noConversation,
253
297
  ...apiErrorResponses,
254
298
  },
255
299
  }), conversationParam, apiValidator('query', MessageListQuerySchema), async (context) => {
256
- const { after, pageSize, pageToken } = context.req.valid('query');
300
+ const { after, pageSize, pageToken, ids } = context.req.valid('query');
257
301
  const before = pageToken === undefined
258
302
  ? undefined
259
303
  : decodePageToken(pageToken, MessagePosition).before;
260
- const page = await conversations.messages(me(context), context.req.valid('param').conversationId, {
261
- ...(before === undefined ? {} : { before }),
262
- ...(after === undefined || before !== undefined ? {} : { after }),
304
+ const agent = await services.onlineAgent.realtime(trusted(context), {
305
+ sessionId: conversationId(context),
306
+ });
307
+ const wanted = ids?.split(',');
308
+ if (wanted &&
309
+ (wanted.length > 100 || wanted.some((id) => !id || id.length > 100)))
310
+ throw invalid('Select at most 100 valid message IDs.');
311
+ const page = await agent.messages({
312
+ ids: wanted,
313
+ before,
314
+ after: before === undefined ? after : undefined,
263
315
  limit: pageSize,
264
316
  });
265
- const first = page.items[0];
266
317
  return context.json({
267
318
  data: page.items,
268
319
  meta: {
269
320
  lastSeq: page.lastSeq,
270
- ...(page.hasMore && first
271
- ? { nextPageToken: encodePageToken({ before: first.seq }) }
321
+ ...(page.nextAfter !== undefined
322
+ ? { nextAfter: page.nextAfter }
323
+ : {}),
324
+ ...(page.hasMore && after === undefined && page.items[0]
325
+ ? {
326
+ nextPageToken: encodePageToken({
327
+ before: page.items[0].metadata.seq,
328
+ }),
329
+ }
272
330
  : {}),
273
331
  },
274
332
  });
@@ -279,12 +337,13 @@ export function createChatRoutes(services, guard, personOrRun = guard) {
279
337
  operationId: 'agentsSendConversationMessage',
280
338
  ...cliRoute({
281
339
  command: 'conversation message send',
340
+ bodyFile: 'file',
282
341
  args: ['conversationId'],
283
342
  flags: {
284
343
  conversationId: { name: 'conversation' },
285
- content: { contentFile: true, alias: 'm' },
344
+ message: { alias: 'm' },
286
345
  context: { hidden: true },
287
- clientId: { hidden: true },
346
+ selectedModel: { hidden: true },
288
347
  },
289
348
  uploads: {
290
349
  attach: {
@@ -296,19 +355,100 @@ export function createChatRoutes(services, guard, personOrRun = guard) {
296
355
  },
297
356
  },
298
357
  examples: [
299
- 'conversation message send <conversation> -m "What is left on PM-12?"',
300
- 'conversation message send <conversation> -m "See the log" --attach build.log',
358
+ 'conversation message send <conversation> --file current-user-message.json',
359
+ 'conversation message send <conversation> --file current-user-message.json --attach build.log',
301
360
  ],
302
361
  }),
303
- description: "Adds the caller's message and hands it to the conversation's agent: a new run, or the open one. The answer arrives as messages later; `run` says what happened to the agent. `attachmentIds` sends the caller's uploads with it; any other id answers 400 and nothing is sent.",
362
+ description: 'Native input accepts only the current SDK user message with text parts and authorized attachmentIds, returning a standard UI message stream. Server metadata, history, tools and config are not writable here. Runner uses the same input and standard stream; only saved source records are projected. Busy input is refused. A timeout means outcome unknown: reconcile history and execution, never automatically resend.',
304
363
  responses: {
305
- 201: dataResponse(SendMessageResultSchema, 'Created.'),
364
+ 200: {
365
+ description: 'Native AI SDK UI message stream. Finish closes this response; query execution for durable business state.',
366
+ content: { 'text/event-stream': { schema: { type: 'string' } } },
367
+ },
306
368
  404: noConversation,
307
369
  ...apiErrorResponses,
308
370
  },
309
- }), conversationParam, apiValidator('json', SendSchema), async (context) => context.json({
310
- data: await conversations.send(me(context), context.req.valid('param').conversationId, context.req.valid('json')),
311
- }, 201));
371
+ }), conversationParam, apiValidator('json', SendSchema), async (context) => {
372
+ const id = context.req.valid('param').conversationId;
373
+ const request = context.req.valid('json');
374
+ const text = request.message.parts.map((part) => part.text).join('\n');
375
+ if ([...text].length > MESSAGE_CONTENT_MAX)
376
+ throw invalid('The message is too long.');
377
+ if (!text.trim() && !request.attachmentIds?.length)
378
+ throw invalid('A message or attachment is required.');
379
+ const workContext = request.context
380
+ ? await conversations.contextKinds.resolve(services.tx.read(), me(context), request.context)
381
+ : undefined;
382
+ const actor = trusted(context);
383
+ const agent = await services.onlineAgent.realtime({
384
+ ...actor,
385
+ ...(workContext ? { business: jsonSafe(workContext) } : {}),
386
+ }, { sessionId: id });
387
+ const parts = request.message.parts;
388
+ await agent.send([{ role: 'user', content: parts }], {
389
+ attachmentIds: [[...(request.attachmentIds ?? [])]],
390
+ clientId: request.message.id,
391
+ messageId: request.message.id,
392
+ selectedModel: request.selectedModel,
393
+ workContext,
394
+ });
395
+ const stream = await agent.receive();
396
+ if (!stream)
397
+ throw invalid('The accepted response requires history reconciliation.');
398
+ return createUIMessageStreamResponse({
399
+ stream,
400
+ headers: {
401
+ 'Cache-Control': 'private, no-store',
402
+ 'x-online-agent-recovery': services.onlineAgent.recovery,
403
+ },
404
+ });
405
+ });
406
+ router.post('/conversations/:conversationId/approval', guard, describeRoute({
407
+ tags,
408
+ summary: 'Respond to a native SDK tool approval',
409
+ operationId: 'agentsRespondConversationApproval',
410
+ ...cliRoute(false),
411
+ description: 'Only the SDK approval response is accepted. The server binds it to the owner, execution, message and real pending tool call. Duplicate, expired and concurrent responses are rejected without executing tools again.',
412
+ responses: {
413
+ 200: {
414
+ description: 'Standard SDK UI message continuation stream.',
415
+ content: { 'text/event-stream': { schema: { type: 'string' } } },
416
+ },
417
+ ...apiErrorResponses,
418
+ },
419
+ }), conversationParam, apiValidator('json', ApprovalSchema), async (context) => {
420
+ const agent = await services.onlineAgent.realtime(trusted(context), {
421
+ sessionId: conversationId(context),
422
+ });
423
+ await agent.approve(context.req.valid('json'));
424
+ const stream = await agent.receive();
425
+ if (!stream)
426
+ throw invalid('The accepted continuation requires history reconciliation.');
427
+ return createUIMessageStreamResponse({
428
+ stream,
429
+ headers: {
430
+ 'Cache-Control': 'private, no-store',
431
+ 'x-online-agent-recovery': services.onlineAgent.recovery,
432
+ },
433
+ });
434
+ });
435
+ router.post('/conversations/:conversationId/finalize', guard, describeRoute({
436
+ tags,
437
+ summary: 'Retry response persistence without executing again',
438
+ operationId: 'agentsFinalizeConversation',
439
+ ...cliRoute(false),
440
+ responses: {
441
+ 200: dataResponse(ConversationDetailSchema),
442
+ ...apiErrorResponses,
443
+ },
444
+ }), conversationParam, apiValidator('json', z.strictObject({})), async (context) => {
445
+ const id = conversationId(context);
446
+ const agent = await services.onlineAgent.realtime(trusted(context), {
447
+ sessionId: id,
448
+ });
449
+ await agent.retryFinalization();
450
+ return context.json({ data: await conversations.get(me(context), id) });
451
+ });
312
452
  const acts = {
313
453
  markRead: {
314
454
  act: (userId, id) => conversations.markRead(userId, id),
@@ -319,7 +459,9 @@ export function createChatRoutes(services, guard, personOrRun = guard) {
319
459
  description: "Marks the conversation's messages read for the caller.",
320
460
  },
321
461
  stop: {
322
- act: (userId, id) => conversations.stop(userId, id),
462
+ act: async () => {
463
+ throw invalid('Use the authenticated OnlineAgent stop handler.');
464
+ },
323
465
  operationId: 'agentsStopConversation',
324
466
  cli: {
325
467
  command: 'conversation stop',
@@ -327,31 +469,7 @@ export function createChatRoutes(services, guard, personOrRun = guard) {
327
469
  flags: { conversationId: { name: 'conversation' } },
328
470
  },
329
471
  summary: "Stop a conversation's agent",
330
- description: 'Cancels the run answering in the conversation, if any.',
331
- },
332
- fallback: {
333
- act: (userId, id) => conversations.fallback(userId, id),
334
- operationId: 'agentsFallbackConversation',
335
- cli: {
336
- command: 'conversation fallback',
337
- args: ['conversationId'],
338
- flags: { conversationId: { name: 'conversation' } },
339
- },
340
- summary: 'Switch a conversation to the default agent',
341
- description: 'Continues the conversation with the default chat agent while its own agent cannot answer; a runner conversation whose default is not a runner agent continues with the online fallback agent.',
342
- conflict: 'The conversation cannot fall back',
343
- },
344
- restore: {
345
- act: (userId, id) => conversations.restore(userId, id),
346
- operationId: 'agentsRestoreConversation',
347
- cli: {
348
- command: 'conversation restore',
349
- args: ['conversationId'],
350
- flags: { conversationId: { name: 'conversation' } },
351
- },
352
- summary: 'Switch a conversation back to its agent',
353
- description: 'Gives the conversation back to the agent it fell back from.',
354
- conflict: 'The conversation has nothing to switch back to',
472
+ description: 'Processes a cancellation request. The returned execution may remain running until actual termination and canonical history synchronization; request success does not mean the agent has stopped.',
355
473
  },
356
474
  };
357
475
  for (const [verb, item] of Object.entries(acts))
@@ -370,8 +488,77 @@ export function createChatRoutes(services, guard, personOrRun = guard) {
370
488
  ...apiErrorResponses,
371
489
  },
372
490
  }), conversationParam, async (context) => context.json({
373
- data: await item.act(me(context), conversationId(context)),
491
+ data: verb === 'stop'
492
+ ? await (async () => {
493
+ const id = conversationId(context);
494
+ const detail = await conversations.get(me(context), id);
495
+ if (!detail.execution)
496
+ return conversations.stop(me(context), id);
497
+ const agent = await services.onlineAgent.realtime(trusted(context), { sessionId: id });
498
+ await agent.abort();
499
+ return conversations.get(me(context), id);
500
+ })()
501
+ : await item.act(me(context), conversationId(context)),
374
502
  }));
503
+ router.get('/conversations/:conversationId/events', guard, describeRoute({
504
+ tags,
505
+ summary: 'Resume the current OnlineAgent UI stream',
506
+ operationId: 'agentsConversationEvents',
507
+ ...cliRoute(false),
508
+ description: 'Returns a full standard SDK replay and subsequent chunks when optional shared Redis recovery is configured. Without it, only an unclaimed local live response is available. Execution is never restarted. Missing streams return 204, which does not mean idle or successful: reconcile execution and persisted history. Disconnect never invokes Stop.',
509
+ responses: {
510
+ 200: {
511
+ description: 'Standard SDK UI message stream for Native and Runner.',
512
+ content: { 'text/event-stream': { schema: { type: 'string' } } },
513
+ },
514
+ 204: { description: 'No current stream; read saved history.' },
515
+ ...apiErrorResponses,
516
+ },
517
+ }), conversationParam, async (context) => {
518
+ const agent = await services.onlineAgent.realtime(trusted(context), {
519
+ sessionId: conversationId(context),
520
+ });
521
+ context.header('Cache-Control', 'private, no-store');
522
+ context.header('x-online-agent-recovery', services.onlineAgent.recovery);
523
+ const events = await agent.receive();
524
+ if (!events)
525
+ return context.body(null, 204);
526
+ return createUIMessageStreamResponse({
527
+ stream: events,
528
+ headers: {
529
+ 'Cache-Control': 'private, no-store',
530
+ 'x-online-agent-recovery': services.onlineAgent.recovery,
531
+ },
532
+ });
533
+ });
534
+ router.get('/conversations/:conversationId/config', guard, describeRoute({
535
+ tags,
536
+ summary: 'Read the saved OnlineAgent configuration',
537
+ operationId: 'agentsGetConversationConfig',
538
+ ...cliRoute(false),
539
+ responses: {
540
+ 200: dataResponse(ConfigOutput),
541
+ ...apiErrorResponses,
542
+ },
543
+ }), conversationParam, async (context) => {
544
+ const config = await services.onlineAgent.configuration(trusted(context), conversationId(context));
545
+ return context.json({ data: config });
546
+ });
547
+ router.patch('/conversations/:conversationId/config', guard, describeRoute({
548
+ tags,
549
+ summary: 'Update idle OnlineAgent configuration',
550
+ operationId: 'agentsUpdateConversationConfig',
551
+ ...cliRoute(false),
552
+ description: 'Explicit overrides only; running configuration is frozen. The selected model and snapshot update atomically.',
553
+ responses: { 200: dataResponse(ConfigOutput), ...apiErrorResponses },
554
+ }), conversationParam, apiValidator('json', z.strictObject({
555
+ config: ConfigInput,
556
+ selectedModel: SelectedModel.optional(),
557
+ })), async (context) => {
558
+ const input = context.req.valid('json');
559
+ const config = await services.onlineAgent.configure(trusted(context), conversationId(context), input.config, input.selectedModel, 'http');
560
+ return context.json({ data: config });
561
+ });
375
562
  router.get('/chatAgents', guard, describeRoute({
376
563
  tags,
377
564
  summary: 'List the agents the caller may chat with',
@@ -384,27 +571,9 @@ export function createChatRoutes(services, guard, personOrRun = guard) {
384
571
  ...apiErrorResponses,
385
572
  },
386
573
  }), async (context) => {
387
- const data = await conversations.chatAgents(me(context));
574
+ const data = await services.conversations.chatAgents(me(context));
388
575
  return context.json({ data, meta: { total: data.length } });
389
576
  });
390
- router.post('/:agentId/copy', guard, describeRoute({
391
- tags,
392
- summary: 'Copy an agent for oneself',
393
- operationId: 'agentsCopyAgent',
394
- ...cliRoute({
395
- command: 'agent copy',
396
- args: ['agentId'],
397
- flags: { agentId: { name: 'agent' } },
398
- }),
399
- description: "A private copy of an agent the caller may wake, owned and usable only by them; `makeDefault` makes it the caller's default chat agent.",
400
- responses: {
401
- 200: dataResponse(AgentSchema),
402
- 404: apiErrorResponse(404, 'The agent does not exist, or the caller may not wake it.'),
403
- ...apiErrorResponses,
404
- },
405
- }), apiValidator('param', AgentParams), apiValidator('json', CopySchema), async (context) => context.json({
406
- data: await conversations.copyAgent(me(context), context.req.valid('param').agentId, context.req.valid('json')),
407
- }));
408
577
  router.get('/chatPreferences', guard, describeRoute({
409
578
  tags,
410
579
  summary: "Get the caller's chat preferences",
@@ -453,10 +622,9 @@ export function createChatRoutes(services, guard, personOrRun = guard) {
453
622
  command: 'conversation settings update',
454
623
  flags: {
455
624
  defaultAgentId: { name: 'default-agent' },
456
- onlineFallbackAgentId: { name: 'online-fallback-agent' },
457
625
  },
458
626
  }),
459
- description: "Sets the team's default chat agent and the online agent that answers in place of a runner agent with no runner for the person. Needs `agents.agents` manage.",
627
+ description: "Sets the team's default chat agent, an enabled agent. Needs `agents.agents` manage.",
460
628
  responses: {
461
629
  200: dataResponse(ChatSettingsSchema),
462
630
  ...apiErrorResponses,
@@ -549,25 +717,6 @@ export function createChatRoutes(services, guard, personOrRun = guard) {
549
717
  headers: contentHeaders(attachment, context.req.valid('query').download),
550
718
  });
551
719
  });
552
- router.get('/presets', guard, describeRoute({
553
- tags,
554
- summary: 'List agent presets',
555
- operationId: 'agentsListPresets',
556
- ...cliRoute({
557
- command: 'agent preset list',
558
- columns: ['key', 'name', 'type', 'description'],
559
- }),
560
- description: 'The roles the application registered that a new agent can start from. Needs `agents.agents` read.',
561
- responses: {
562
- 200: listResponse(AgentPresetSchema),
563
- ...apiErrorResponses,
564
- },
565
- }), async (context) => {
566
- if (!(await context.get('caller').can('agents.agents', 'read')))
567
- throw forbidden('This needs agents.agents read permission.');
568
- const data = services.presets.list();
569
- return context.json({ data, meta: { total: data.length } });
570
- });
571
720
  return router;
572
721
  }
573
722
  //# sourceMappingURL=chat.js.map