@nocobase/app-plugin-agents 2.0.0-beta.1 → 2.0.0-beta.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +197 -0
- package/README.md +25 -5
- package/dist/client/chat/api.d.ts +6 -1
- package/dist/client/chat/api.d.ts.map +1 -1
- package/dist/client/chat/api.js +18 -0
- package/dist/client/chat/api.js.map +1 -1
- package/dist/client/chat/controller.d.ts +12 -0
- package/dist/client/chat/controller.d.ts.map +1 -1
- package/dist/client/chat/controller.js +65 -20
- package/dist/client/chat/controller.js.map +1 -1
- package/dist/client/chat/notices.d.ts +12 -0
- package/dist/client/chat/notices.d.ts.map +1 -0
- package/dist/client/chat/notices.js +15 -0
- package/dist/client/chat/notices.js.map +1 -0
- package/dist/client/chat/submissions.d.ts +16 -0
- package/dist/client/chat/submissions.d.ts.map +1 -1
- package/dist/client/chat/submissions.js +22 -0
- package/dist/client/chat/submissions.js.map +1 -1
- package/dist/client/chat/use-chat.d.ts.map +1 -1
- package/dist/client/chat/use-chat.js +1 -0
- package/dist/client/chat/use-chat.js.map +1 -1
- package/dist/client/chat.d.ts +1 -0
- package/dist/client/chat.d.ts.map +1 -1
- package/dist/client/chat.js +1 -0
- package/dist/client/chat.js.map +1 -1
- package/dist/client/components/page-container.js +1 -1
- package/dist/client/components/page-container.js.map +1 -1
- package/dist/client/components/route-child-page.d.ts +1 -1
- package/dist/client/components/route-child-page.d.ts.map +1 -1
- package/dist/client/components/route-child-page.js +18 -2
- package/dist/client/components/route-child-page.js.map +1 -1
- package/dist/client/components/route-overlay.d.ts +4 -1
- package/dist/client/components/route-overlay.d.ts.map +1 -1
- package/dist/client/components/route-overlay.js +32 -3
- package/dist/client/components/route-overlay.js.map +1 -1
- package/dist/client/components/ui/alert-dialog.d.ts +3 -1
- package/dist/client/components/ui/alert-dialog.d.ts.map +1 -1
- package/dist/client/components/ui/alert-dialog.js +2 -2
- package/dist/client/components/ui/alert-dialog.js.map +1 -1
- package/dist/client/components/unsaved-changes.d.ts.map +1 -1
- package/dist/client/components/unsaved-changes.js +17 -4
- package/dist/client/components/unsaved-changes.js.map +1 -1
- package/dist/client/components/use-route-overlay.d.ts +2 -9
- package/dist/client/components/use-route-overlay.d.ts.map +1 -1
- package/dist/client/components/use-route-overlay.js +5 -3
- package/dist/client/components/use-route-overlay.js.map +1 -1
- package/dist/client/lib/format.d.ts.map +1 -1
- package/dist/client/lib/format.js +1 -0
- package/dist/client/lib/format.js.map +1 -1
- package/dist/client/locales/de-DE.d.ts.map +1 -1
- package/dist/client/locales/de-DE.js +145 -109
- package/dist/client/locales/de-DE.js.map +1 -1
- package/dist/client/locales/en-US.d.ts +2 -0
- package/dist/client/locales/en-US.d.ts.map +1 -1
- package/dist/client/locales/en-US.js +4 -2
- package/dist/client/locales/en-US.js.map +1 -1
- package/dist/client/locales/es-ES.d.ts.map +1 -1
- package/dist/client/locales/es-ES.js +222 -186
- package/dist/client/locales/es-ES.js.map +1 -1
- package/dist/client/locales/fr-FR.d.ts.map +1 -1
- package/dist/client/locales/fr-FR.js +154 -118
- package/dist/client/locales/fr-FR.js.map +1 -1
- package/dist/client/locales/id-ID.d.ts.map +1 -1
- package/dist/client/locales/id-ID.js +143 -107
- package/dist/client/locales/id-ID.js.map +1 -1
- package/dist/client/locales/index.d.ts.map +1 -1
- package/dist/client/locales/index.js +2 -0
- package/dist/client/locales/index.js.map +1 -1
- package/dist/client/locales/ja-JP.d.ts.map +1 -1
- package/dist/client/locales/ja-JP.js +226 -190
- package/dist/client/locales/ja-JP.js.map +1 -1
- package/dist/client/locales/ko-KR.d.ts +5 -0
- package/dist/client/locales/ko-KR.d.ts.map +1 -0
- package/dist/client/locales/ko-KR.js +1319 -0
- package/dist/client/locales/ko-KR.js.map +1 -0
- package/dist/client/locales/pt-BR.d.ts.map +1 -1
- package/dist/client/locales/pt-BR.js +216 -180
- package/dist/client/locales/pt-BR.js.map +1 -1
- package/dist/client/locales/ru-RU.d.ts +5 -0
- package/dist/client/locales/ru-RU.d.ts.map +1 -0
- package/dist/client/locales/ru-RU.js +1349 -0
- package/dist/client/locales/ru-RU.js.map +1 -0
- package/dist/client/locales/runWait.en-US.d.ts +2 -0
- package/dist/client/locales/runWait.en-US.d.ts.map +1 -1
- package/dist/client/locales/runWait.en-US.js +2 -0
- package/dist/client/locales/runWait.en-US.js.map +1 -1
- package/dist/client/locales/runWait.zh-CN.d.ts.map +1 -1
- package/dist/client/locales/runWait.zh-CN.js +2 -0
- package/dist/client/locales/runWait.zh-CN.js.map +1 -1
- package/dist/client/locales/runtimes.en-US.d.ts +9 -0
- package/dist/client/locales/runtimes.en-US.d.ts.map +1 -1
- package/dist/client/locales/runtimes.en-US.js +11 -2
- package/dist/client/locales/runtimes.en-US.js.map +1 -1
- package/dist/client/locales/runtimes.zh-CN.d.ts.map +1 -1
- package/dist/client/locales/runtimes.zh-CN.js +11 -2
- package/dist/client/locales/runtimes.zh-CN.js.map +1 -1
- package/dist/client/locales/vi-VN.d.ts.map +1 -1
- package/dist/client/locales/vi-VN.js +182 -146
- package/dist/client/locales/vi-VN.js.map +1 -1
- package/dist/client/locales/zh-CN.d.ts.map +1 -1
- package/dist/client/locales/zh-CN.js +4 -2
- package/dist/client/locales/zh-CN.js.map +1 -1
- package/dist/client/locales/zh-TW.d.ts.map +1 -1
- package/dist/client/locales/zh-TW.js +159 -123
- package/dist/client/locales/zh-TW.js.map +1 -1
- package/dist/client/pages/runtimes/quota-limit-setting.d.ts +12 -0
- package/dist/client/pages/runtimes/quota-limit-setting.d.ts.map +1 -0
- package/dist/client/pages/runtimes/quota-limit-setting.js +57 -0
- package/dist/client/pages/runtimes/quota-limit-setting.js.map +1 -0
- package/dist/client/pages/runtimes/quota.d.ts +3 -2
- package/dist/client/pages/runtimes/quota.d.ts.map +1 -1
- package/dist/client/pages/runtimes/quota.js +10 -4
- package/dist/client/pages/runtimes/quota.js.map +1 -1
- package/dist/client/pages/runtimes/runner-runs.d.ts.map +1 -1
- package/dist/client/pages/runtimes/runner-runs.js +2 -8
- package/dist/client/pages/runtimes/runner-runs.js.map +1 -1
- package/dist/client/pages/runtimes/runner-tools.d.ts.map +1 -1
- package/dist/client/pages/runtimes/runner-tools.js +7 -16
- package/dist/client/pages/runtimes/runner-tools.js.map +1 -1
- package/dist/client/pages/runtimes/workspace-diagnostics.js +3 -3
- package/dist/client/pages/runtimes/workspace-diagnostics.js.map +1 -1
- package/dist/client/pages/usage/date-range-picker.d.ts.map +1 -1
- package/dist/client/pages/usage/date-range-picker.js +3 -1
- package/dist/client/pages/usage/date-range-picker.js.map +1 -1
- package/dist/client/routes.d.ts.map +1 -1
- package/dist/client/routes.js +7 -0
- package/dist/client/routes.js.map +1 -1
- package/dist/client/runs/format-wait.d.ts.map +1 -1
- package/dist/client/runs/format-wait.js +2 -0
- package/dist/client/runs/format-wait.js.map +1 -1
- package/dist/database/migrations/.manifest.json +20 -0
- package/dist/database/migrations/202611070001_ag_run_runner_pin.d.ts +4 -0
- package/dist/database/migrations/202611070001_ag_run_runner_pin.d.ts.map +1 -0
- package/dist/database/migrations/202611070001_ag_run_runner_pin.js +17 -0
- package/dist/database/migrations/202611070001_ag_run_runner_pin.js.map +1 -0
- package/dist/database/migrations/202611080001_ag_conversation_shares.d.ts +4 -0
- package/dist/database/migrations/202611080001_ag_conversation_shares.d.ts.map +1 -0
- package/dist/database/migrations/202611080001_ag_conversation_shares.js +25 -0
- package/dist/database/migrations/202611080001_ag_conversation_shares.js.map +1 -0
- package/dist/database/migrations/202611080002_ag_run_failure_params.d.ts +4 -0
- package/dist/database/migrations/202611080002_ag_run_failure_params.d.ts.map +1 -0
- package/dist/database/migrations/202611080002_ag_run_failure_params.js +17 -0
- package/dist/database/migrations/202611080002_ag_run_failure_params.js.map +1 -0
- package/dist/database/migrations/202611090001_ag_runner_preference.d.ts +9 -0
- package/dist/database/migrations/202611090001_ag_runner_preference.d.ts.map +1 -0
- package/dist/database/migrations/202611090001_ag_runner_preference.js +28 -0
- package/dist/database/migrations/202611090001_ag_runner_preference.js.map +1 -0
- package/dist/database/migrations/202611110001_ag_runner_quota_limits.d.ts +4 -0
- package/dist/database/migrations/202611110001_ag_runner_quota_limits.d.ts.map +1 -0
- package/dist/database/migrations/202611110001_ag_runner_quota_limits.js +17 -0
- package/dist/database/migrations/202611110001_ag_runner_quota_limits.js.map +1 -0
- package/dist/package.json +4 -2
- package/dist/server/composition.d.ts +9 -1
- package/dist/server/composition.d.ts.map +1 -1
- package/dist/server/composition.js +31 -2
- package/dist/server/composition.js.map +1 -1
- package/dist/server/core/agents/agent.service.d.ts +2 -1
- package/dist/server/core/agents/agent.service.d.ts.map +1 -1
- package/dist/server/core/agents/agent.service.js.map +1 -1
- package/dist/server/core/agents/agent.store.d.ts +2 -2
- package/dist/server/core/agents/agent.store.d.ts.map +1 -1
- package/dist/server/core/agents/agent.store.js +8 -2
- package/dist/server/core/agents/agent.store.js.map +1 -1
- package/dist/server/core/brief/brief.d.ts +10 -5
- package/dist/server/core/brief/brief.d.ts.map +1 -1
- package/dist/server/core/brief/brief.js +36 -13
- package/dist/server/core/brief/brief.js.map +1 -1
- package/dist/server/core/brief/index.d.ts +1 -1
- package/dist/server/core/brief/index.d.ts.map +1 -1
- package/dist/server/core/brief/index.js +1 -1
- package/dist/server/core/brief/index.js.map +1 -1
- package/dist/server/core/conversations/attachments.d.ts +6 -4
- package/dist/server/core/conversations/attachments.d.ts.map +1 -1
- package/dist/server/core/conversations/attachments.js +66 -22
- package/dist/server/core/conversations/attachments.js.map +1 -1
- package/dist/server/core/conversations/chat-settings.d.ts +1 -1
- package/dist/server/core/conversations/chat-settings.d.ts.map +1 -1
- package/dist/server/core/conversations/chat-settings.js +6 -0
- package/dist/server/core/conversations/chat-settings.js.map +1 -1
- package/dist/server/core/conversations/conversation.service.d.ts +3 -1
- package/dist/server/core/conversations/conversation.service.d.ts.map +1 -1
- package/dist/server/core/conversations/conversation.service.js +198 -18
- package/dist/server/core/conversations/conversation.service.js.map +1 -1
- package/dist/server/core/conversations/conversation.store.d.ts +2 -0
- package/dist/server/core/conversations/conversation.store.d.ts.map +1 -1
- package/dist/server/core/conversations/conversation.store.js.map +1 -1
- package/dist/server/core/conversations/index.d.ts +1 -0
- package/dist/server/core/conversations/index.d.ts.map +1 -1
- package/dist/server/core/conversations/links.d.ts.map +1 -1
- package/dist/server/core/conversations/links.js +10 -5
- package/dist/server/core/conversations/links.js.map +1 -1
- package/dist/server/core/conversations/ports.d.ts +8 -2
- package/dist/server/core/conversations/ports.d.ts.map +1 -1
- package/dist/server/core/conversations/shares.d.ts +38 -0
- package/dist/server/core/conversations/shares.d.ts.map +1 -0
- package/dist/server/core/conversations/shares.js +189 -0
- package/dist/server/core/conversations/shares.js.map +1 -0
- package/dist/server/core/reports/report.service.d.ts.map +1 -1
- package/dist/server/core/reports/report.service.js +24 -13
- package/dist/server/core/reports/report.service.js.map +1 -1
- package/dist/server/core/runs/access.d.ts +7 -1
- package/dist/server/core/runs/access.d.ts.map +1 -1
- package/dist/server/core/runs/access.js +51 -2
- package/dist/server/core/runs/access.js.map +1 -1
- package/dist/server/core/runs/claim.d.ts +22 -3
- package/dist/server/core/runs/claim.d.ts.map +1 -1
- package/dist/server/core/runs/claim.js +260 -42
- package/dist/server/core/runs/claim.js.map +1 -1
- package/dist/server/core/runs/eligibility.d.ts.map +1 -1
- package/dist/server/core/runs/eligibility.js +1 -0
- package/dist/server/core/runs/eligibility.js.map +1 -1
- package/dist/server/core/runs/extensions.d.ts +30 -2
- package/dist/server/core/runs/extensions.d.ts.map +1 -1
- package/dist/server/core/runs/extensions.js +18 -1
- package/dist/server/core/runs/extensions.js.map +1 -1
- package/dist/server/core/runs/git-credentials.d.ts.map +1 -1
- package/dist/server/core/runs/git-credentials.js +24 -2
- package/dist/server/core/runs/git-credentials.js.map +1 -1
- package/dist/server/core/runs/identity.d.ts.map +1 -1
- package/dist/server/core/runs/identity.js +9 -0
- package/dist/server/core/runs/identity.js.map +1 -1
- package/dist/server/core/runs/index.d.ts +3 -2
- package/dist/server/core/runs/index.d.ts.map +1 -1
- package/dist/server/core/runs/index.js +2 -1
- package/dist/server/core/runs/index.js.map +1 -1
- package/dist/server/core/runs/lifecycle.d.ts.map +1 -1
- package/dist/server/core/runs/lifecycle.js +14 -0
- package/dist/server/core/runs/lifecycle.js.map +1 -1
- package/dist/server/core/runs/npm-credentials.d.ts +35 -0
- package/dist/server/core/runs/npm-credentials.d.ts.map +1 -0
- package/dist/server/core/runs/npm-credentials.js +83 -0
- package/dist/server/core/runs/npm-credentials.js.map +1 -0
- package/dist/server/core/runs/ports.d.ts +24 -3
- package/dist/server/core/runs/ports.d.ts.map +1 -1
- package/dist/server/core/runs/ports.js.map +1 -1
- package/dist/server/core/runs/preview.d.ts +1 -4
- package/dist/server/core/runs/preview.d.ts.map +1 -1
- package/dist/server/core/runs/preview.js +10 -5
- package/dist/server/core/runs/preview.js.map +1 -1
- package/dist/server/core/runs/quota-wait.d.ts +7 -0
- package/dist/server/core/runs/quota-wait.d.ts.map +1 -0
- package/dist/server/core/runs/quota-wait.js +56 -0
- package/dist/server/core/runs/quota-wait.js.map +1 -0
- package/dist/server/core/runs/run-data-purge.d.ts.map +1 -1
- package/dist/server/core/runs/run-data-purge.js +1 -0
- package/dist/server/core/runs/run-data-purge.js.map +1 -1
- package/dist/server/core/runs/run.service.d.ts +31 -5
- package/dist/server/core/runs/run.service.d.ts.map +1 -1
- package/dist/server/core/runs/run.service.js +129 -35
- package/dist/server/core/runs/run.service.js.map +1 -1
- package/dist/server/core/runs/run.store.d.ts +24 -0
- package/dist/server/core/runs/run.store.d.ts.map +1 -1
- package/dist/server/core/runs/run.store.js +44 -0
- package/dist/server/core/runs/run.store.js.map +1 -1
- package/dist/server/core/runs/sweeper.d.ts.map +1 -1
- package/dist/server/core/runs/sweeper.js +2 -0
- package/dist/server/core/runs/sweeper.js.map +1 -1
- package/dist/server/core/runs/transitions.d.ts +1 -0
- package/dist/server/core/runs/transitions.d.ts.map +1 -1
- package/dist/server/core/runs/transitions.js +15 -1
- package/dist/server/core/runs/transitions.js.map +1 -1
- package/dist/server/core/runs/workload.d.ts +2 -2
- package/dist/server/core/runs/workload.d.ts.map +1 -1
- package/dist/server/core/runs/workload.js +62 -9
- package/dist/server/core/runs/workload.js.map +1 -1
- package/dist/server/kernel/clock.d.ts +2 -0
- package/dist/server/kernel/clock.d.ts.map +1 -1
- package/dist/server/kernel/clock.js +14 -0
- package/dist/server/kernel/clock.js.map +1 -1
- package/dist/server/kernel/events.d.ts +4 -1
- package/dist/server/kernel/events.d.ts.map +1 -1
- package/dist/server/kernel/events.js.map +1 -1
- package/dist/server/locales/de-DE.js +3 -3
- package/dist/server/locales/de-DE.js.map +1 -1
- package/dist/server/locales/es-ES.js +6 -6
- package/dist/server/locales/es-ES.js.map +1 -1
- package/dist/server/locales/fr-FR.js +4 -4
- package/dist/server/locales/fr-FR.js.map +1 -1
- package/dist/server/locales/id-ID.js +5 -5
- package/dist/server/locales/id-ID.js.map +1 -1
- package/dist/server/locales/index.d.ts.map +1 -1
- package/dist/server/locales/index.js +2 -0
- package/dist/server/locales/index.js.map +1 -1
- package/dist/server/locales/ja-JP.d.ts.map +1 -1
- package/dist/server/locales/ja-JP.js +6 -6
- package/dist/server/locales/ja-JP.js.map +1 -1
- package/dist/server/locales/ko-KR.d.ts +5 -0
- package/dist/server/locales/ko-KR.d.ts.map +1 -0
- package/dist/server/locales/ko-KR.js +59 -0
- package/dist/server/locales/ko-KR.js.map +1 -0
- package/dist/server/locales/pt-BR.js +6 -6
- package/dist/server/locales/pt-BR.js.map +1 -1
- package/dist/server/locales/ru-RU.d.ts +5 -0
- package/dist/server/locales/ru-RU.d.ts.map +1 -0
- package/dist/server/locales/ru-RU.js +59 -0
- package/dist/server/locales/ru-RU.js.map +1 -0
- package/dist/server/locales/vi-VN.js +6 -6
- package/dist/server/locales/vi-VN.js.map +1 -1
- package/dist/server/locales/zh-TW.d.ts.map +1 -1
- package/dist/server/locales/zh-TW.js +6 -6
- package/dist/server/locales/zh-TW.js.map +1 -1
- package/dist/server/online/agent/persistence/store.d.ts.map +1 -1
- package/dist/server/online/agent/persistence/store.js +3 -0
- package/dist/server/online/agent/persistence/store.js.map +1 -1
- package/dist/server/online/agent/runner/projection.d.ts +1 -1
- package/dist/server/online/agent/runner/projection.d.ts.map +1 -1
- package/dist/server/online/agent/runner/projection.js +8 -1
- package/dist/server/online/agent/runner/projection.js.map +1 -1
- package/dist/server/online/files/input.d.ts +2 -2
- package/dist/server/online/files/input.d.ts.map +1 -1
- package/dist/server/online/files/input.js +5 -6
- package/dist/server/online/files/input.js.map +1 -1
- package/dist/server/online/files/kimi.d.ts.map +1 -1
- package/dist/server/online/files/kimi.js +2 -2
- package/dist/server/online/files/kimi.js.map +1 -1
- package/dist/server/online/files/service.d.ts +2 -1
- package/dist/server/online/files/service.d.ts.map +1 -1
- package/dist/server/online/files/service.js +11 -10
- package/dist/server/online/files/service.js.map +1 -1
- package/dist/server/providers/agents.d.ts.map +1 -1
- package/dist/server/providers/agents.js +5 -2
- package/dist/server/providers/agents.js.map +1 -1
- package/dist/server/routes/admin.d.ts +1 -0
- package/dist/server/routes/admin.d.ts.map +1 -1
- package/dist/server/routes/admin.js +41 -14
- package/dist/server/routes/admin.js.map +1 -1
- package/dist/server/routes/chat.d.ts.map +1 -1
- package/dist/server/routes/chat.js +107 -24
- package/dist/server/routes/chat.js.map +1 -1
- package/dist/server/routes/index.d.ts.map +1 -1
- package/dist/server/routes/index.js +8 -2
- package/dist/server/routes/index.js.map +1 -1
- package/dist/server/routes/run.js +1 -1
- package/dist/server/routes/run.js.map +1 -1
- package/dist/server/routes/runners/admin.d.ts.map +1 -1
- package/dist/server/routes/runners/admin.js +3 -3
- package/dist/server/routes/runners/admin.js.map +1 -1
- package/dist/server/routes/runners/install.d.ts.map +1 -1
- package/dist/server/routes/runners/install.js +5 -0
- package/dist/server/routes/runners/install.js.map +1 -1
- package/dist/server/routes/runners/runner.d.ts.map +1 -1
- package/dist/server/routes/runners/runner.js +13 -22
- package/dist/server/routes/runners/runner.js.map +1 -1
- package/dist/server/routes/runners/runs.d.ts +1 -1
- package/dist/server/routes/runners/runs.d.ts.map +1 -1
- package/dist/server/routes/runners/runs.js +20 -1
- package/dist/server/routes/runners/runs.js.map +1 -1
- package/dist/server/routes/schemas.d.ts +4 -0
- package/dist/server/routes/schemas.d.ts.map +1 -1
- package/dist/server/routes/schemas.js +31 -6
- package/dist/server/routes/schemas.js.map +1 -1
- package/dist/server/runners/runner.service.d.ts.map +1 -1
- package/dist/server/runners/runner.service.js +33 -9
- package/dist/server/runners/runner.service.js.map +1 -1
- package/dist/server/runners/runner.store.d.ts +1 -0
- package/dist/server/runners/runner.store.d.ts.map +1 -1
- package/dist/server/runners/runner.store.js +1 -0
- package/dist/server/runners/runner.store.js.map +1 -1
- package/dist/server/tokens.d.ts +1 -1
- package/dist/server/tokens.d.ts.map +1 -1
- package/dist/server/tokens.js.map +1 -1
- package/dist/shared/briefs.d.ts +2 -6
- package/dist/shared/briefs.d.ts.map +1 -1
- package/dist/shared/conversations.d.ts +34 -3
- package/dist/shared/conversations.d.ts.map +1 -1
- package/dist/shared/conversations.js +10 -2
- package/dist/shared/conversations.js.map +1 -1
- package/dist/shared/runners.d.ts +7 -3
- package/dist/shared/runners.d.ts.map +1 -1
- package/dist/shared/runners.js +20 -4
- package/dist/shared/runners.js.map +1 -1
- package/dist/shared/runs.d.ts +11 -3
- package/dist/shared/runs.d.ts.map +1 -1
- package/dist/shared/runs.js +2 -0
- package/dist/shared/runs.js.map +1 -1
- package/docs/conversation-sharing.md +55 -0
- package/package.json +18 -16
- package/skills/nocobase-app-plugin-agents/SKILL.md +5 -1
- package/skills/nocobase-app-plugin-agents/references/extension-points.md +5 -1
- package/skills/nocobase-app-plugin-agents/references/online-agent.md +6 -6
- package/skills/nocobase-app-plugin-agents/references/runners.md +1 -1
- package/skills/nocobase-app-plugin-agents/references/verification-and-troubleshooting.md +2 -1
|
@@ -1,17 +1,22 @@
|
|
|
1
1
|
import { invalid, notFound } from '../../kernel/errors.js';
|
|
2
2
|
import { findAgent } from '../agents/index.js';
|
|
3
|
-
import { annotatePlaceholders, firstTurn, renderTurnPrompt, } from '../brief/index.js';
|
|
3
|
+
import { STABLE_AGENT_LAYER_PREFIX, annotatePlaceholders, firstTurn, renderTurnPrompt, } from '../brief/index.js';
|
|
4
4
|
import { briefOf, skillTargets } from './claim.js';
|
|
5
5
|
import { prepareExtensions, withSections, } from './extensions.js';
|
|
6
6
|
import { DEFAULT_THREAD } from './run.service.js';
|
|
7
7
|
/** The id a sample subject is previewed under. */
|
|
8
8
|
export const SAMPLE_SUBJECT_ID = 'sample';
|
|
9
|
-
/**
|
|
10
|
-
* The system prompt in two: the platform's part, with the runner's placeholders annotated, and the agent's own prompt,
|
|
11
|
-
* which ends it as written (`joinBrief` puts it last, after a fixed English lead-in that stays with the platform's part).
|
|
12
|
-
*/
|
|
9
|
+
/** The platform text and the owner's instructions, separated for display regardless of their execution order. */
|
|
13
10
|
export function splitPrompt(prompt, instructions) {
|
|
14
11
|
const own = instructions?.trim() ?? '';
|
|
12
|
+
const prefix = STABLE_AGENT_LAYER_PREFIX;
|
|
13
|
+
const first = own && prompt.startsWith(`${prefix}\n\n${own}\n\n`);
|
|
14
|
+
if (first) {
|
|
15
|
+
return {
|
|
16
|
+
platform: annotatePlaceholders(`${prefix}\n\n${prompt.slice(prefix.length + own.length + 4)}`),
|
|
17
|
+
agentPrompt: own,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
15
20
|
const at = own && prompt.endsWith(own) ? prompt.length - own.length : prompt.length;
|
|
16
21
|
return {
|
|
17
22
|
platform: annotatePlaceholders(prompt.slice(0, at)),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preview.js","sourceRoot":"","sources":["../../../../server/core/runs/preview.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EACL,oBAAoB,EACpB,SAAS,EACT,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EACL,iBAAiB,EACjB,YAAY,GAEb,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,kDAAkD;AAClD,MAAM,CAAC,MAAM,iBAAiB,GAAG,QAAQ,CAAC;AAoB1C
|
|
1
|
+
{"version":3,"file":"preview.js","sourceRoot":"","sources":["../../../../server/core/runs/preview.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { FailRequest } from '@nocobase/agent-protocol';
|
|
2
|
+
import type { Tx } from '../../kernel/tx.js';
|
|
3
|
+
import type { TransitionDeps } from './transitions.js';
|
|
4
|
+
import { type RunRecord } from './run.store.js';
|
|
5
|
+
/** Suspend the same run; unknown reset times remain terminal until a person retries. */
|
|
6
|
+
export declare function waitForQuota(tx: Tx, deps: TransitionDeps, run: RunRecord, request: FailRequest): Promise<RunRecord | null>;
|
|
7
|
+
//# sourceMappingURL=quota-wait.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quota-wait.d.ts","sourceRoot":"","sources":["../../../../server/core/runs/quota-wait.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAkC,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhF,wFAAwF;AACxF,wBAAsB,YAAY,CAChC,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,cAAc,EACpB,GAAG,EAAE,SAAS,EACd,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CA2D3B"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { revokeTokens } from './transitions.js';
|
|
2
|
+
import { endExecution } from './execution.js';
|
|
3
|
+
import { findRunRecord, runsRepo, toRun } from './run.store.js';
|
|
4
|
+
/** Suspend the same run; unknown reset times remain terminal until a person retries. */
|
|
5
|
+
export async function waitForQuota(tx, deps, run, request) {
|
|
6
|
+
const now = deps.clock.now().toISOString();
|
|
7
|
+
const windows = request.quota?.windows.filter((window) => window.exhausted) ?? [];
|
|
8
|
+
const reset = windows.length && windows.every((window) => window.resetsAt !== null)
|
|
9
|
+
? windows
|
|
10
|
+
.map((window) => window.resetsAt)
|
|
11
|
+
.sort()
|
|
12
|
+
.at(-1)
|
|
13
|
+
: null;
|
|
14
|
+
const availableAt = reset && Date.parse(reset) > Date.parse(now) ? reset : null;
|
|
15
|
+
const status = availableAt ? 'queued' : 'failed';
|
|
16
|
+
const result = await runsRepo(tx.conn).updateMany({
|
|
17
|
+
filter: {
|
|
18
|
+
id: run.id,
|
|
19
|
+
status: run.status,
|
|
20
|
+
attempt: run.attempt,
|
|
21
|
+
runnerId: run.runnerId,
|
|
22
|
+
},
|
|
23
|
+
values: {
|
|
24
|
+
status,
|
|
25
|
+
runnerPinId: run.runnerPinId ?? run.runnerId,
|
|
26
|
+
runnerId: null,
|
|
27
|
+
requires: [...new Set([...toRun(run).requires, 'strictSession'])],
|
|
28
|
+
sessionId: request.sessionId ?? run.sessionId,
|
|
29
|
+
freshSession: false,
|
|
30
|
+
availableAt,
|
|
31
|
+
queueEnteredAt: now,
|
|
32
|
+
attempt: Number(run.attempt) + (availableAt ? 1 : 0),
|
|
33
|
+
finishedAt: availableAt ? null : now,
|
|
34
|
+
leaseExpiresAt: null,
|
|
35
|
+
dispatchedAt: null,
|
|
36
|
+
startedAt: null,
|
|
37
|
+
acceptsInput: false,
|
|
38
|
+
failureReason: request.reason,
|
|
39
|
+
failureDetail: request.detail?.slice(0, 10_000) ?? null,
|
|
40
|
+
updatedAt: now,
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
if (result.updatedCount !== 1)
|
|
44
|
+
return null;
|
|
45
|
+
await endExecution(tx.conn, run, now, request.reason, undefined, request.quota);
|
|
46
|
+
await revokeTokens(tx, run.id, now);
|
|
47
|
+
const waiting = (await findRunRecord(tx.conn, run.id));
|
|
48
|
+
await deps.subjects
|
|
49
|
+
.get(run.subjectKind)
|
|
50
|
+
?.sink?.onQuotaWait?.(tx, toRun(waiting));
|
|
51
|
+
tx.emit({ type: 'run.changed', quotaWait: true, runId: run.id, status });
|
|
52
|
+
if (availableAt)
|
|
53
|
+
tx.emit({ type: 'run.requeued', runId: run.id, availableAt });
|
|
54
|
+
return waiting;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=quota-wait.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quota-wait.js","sourceRoot":"","sources":["../../../../server/core/runs/quota-wait.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-data-purge.d.ts","sourceRoot":"","sources":["../../../../server/core/runs/run-data-purge.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD,eAAO,MAAM,0BAA0B,EAAE,MAAoB,CAAC;AAC9D,eAAO,MAAM,oBAAoB,EAAE,MAAY,CAAC;AAChD,eAAO,MAAM,oBAAoB,EAAE,MAAa,CAAC;AACjD,eAAO,MAAM,uBAAuB,EAAE,MAAY,CAAC;AACnD,eAAO,MAAM,sBAAsB,EAAE,MAAmB,CAAC;AAEzD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAOvD;AAED,qFAAqF;AACrF,eAAO,MAAM,uCAAuC,EAAE,MAAyB,CAAC;AAEhF;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAO5D;AAED,oFAAoF;AACpF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC;IACtB,QAAQ,CAAC,aAAa,EAAE,MAAM,MAAM,CAAC;IACrC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACnD,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"run-data-purge.d.ts","sourceRoot":"","sources":["../../../../server/core/runs/run-data-purge.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD,eAAO,MAAM,0BAA0B,EAAE,MAAoB,CAAC;AAC9D,eAAO,MAAM,oBAAoB,EAAE,MAAY,CAAC;AAChD,eAAO,MAAM,oBAAoB,EAAE,MAAa,CAAC;AACjD,eAAO,MAAM,uBAAuB,EAAE,MAAY,CAAC;AACnD,eAAO,MAAM,sBAAsB,EAAE,MAAmB,CAAC;AAEzD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAOvD;AAED,qFAAqF;AACrF,eAAO,MAAM,uCAAuC,EAAE,MAAyB,CAAC;AAEhF;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAO5D;AAED,oFAAoF;AACpF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC;IACtB,QAAQ,CAAC,aAAa,EAAE,MAAM,MAAM,CAAC;IACrC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACnD,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,CA6ExB"}
|
|
@@ -44,6 +44,7 @@ export function createRunDataPurge(deps) {
|
|
|
44
44
|
.select(['id', 'finishedAt'])
|
|
45
45
|
.where('status', 'in', ['completed', 'failed', 'cancelled'])
|
|
46
46
|
.where('finishedAt', '<', cutoff)
|
|
47
|
+
.where((eb) => eb.or([eb('runnerPinId', 'is', null), eb('status', '!=', 'failed')]))
|
|
47
48
|
.where((eb) => eb.or([
|
|
48
49
|
eb.exists(eb
|
|
49
50
|
.selectFrom('agRunEvents')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-data-purge.js","sourceRoot":"","sources":["../../../../server/core/runs/run-data-purge.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run-data-purge.js","sourceRoot":"","sources":["../../../../server/core/runs/run-data-purge.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import { type ActorRef, type RunEventType, type RunInput, type RunInputType, type RunnerFeature, type RunSelf, type RunStatus } from '@nocobase/agent-protocol';
|
|
11
11
|
import type { Runner } from '../../../shared/runners.js';
|
|
12
|
-
import type { DatabaseConnection } from '@nocobase/db';
|
|
12
|
+
import type { DatabaseConnection, Expression, ExpressionBuilder, SqlBool } from '@nocobase/db';
|
|
13
13
|
import type { RunBrief } from '../../../shared/briefs.js';
|
|
14
14
|
import type { Run, RunDetail, RunEventPage, RunExecution, RunWait, Workload, WorkloadQuery, SubjectAgentWork } from '../../../shared/runs.js';
|
|
15
15
|
import type { Clock } from '../../kernel/clock.js';
|
|
@@ -20,7 +20,8 @@ import type { AgentService } from '../agents/index.js';
|
|
|
20
20
|
import type { ClaimEligibility } from './eligibility.js';
|
|
21
21
|
import { type RunRequestService } from './run-requests.js';
|
|
22
22
|
import { type RunTokenIdentity } from './run-tokens.js';
|
|
23
|
-
import type
|
|
23
|
+
import { type RecentRunSummary } from './run.store.js';
|
|
24
|
+
import type { CancelRequest, SubjectRegistry } from './ports.js';
|
|
24
25
|
import { type WorkloadRunners } from './workload.js';
|
|
25
26
|
import { type TransitionDeps } from './transitions.js';
|
|
26
27
|
import type { ClaimService } from './claim.js';
|
|
@@ -32,6 +33,13 @@ export interface NewInput {
|
|
|
32
33
|
readonly payload?: unknown;
|
|
33
34
|
}
|
|
34
35
|
export interface EnqueueRequest {
|
|
36
|
+
readonly runnerId?: string;
|
|
37
|
+
/**
|
|
38
|
+
* Hands a queued or failed run's work to the new run: the original is cancelled by `actorUserId` and the new run
|
|
39
|
+
* becomes its replacement (`retryOfRunId`). The original agent's lock serializes this with its retry and claim, so a
|
|
40
|
+
* run is replaced or retried once. Refused with `RUN_ALREADY_RETRIED`, `RUN_NOT_RETRYABLE` or `AGENT_BUSY`.
|
|
41
|
+
*/
|
|
42
|
+
readonly replacesRunId?: string;
|
|
35
43
|
/** Trusted application dispatch: prefer a compatible authorized active run across comment roots. */
|
|
36
44
|
readonly preferActive?: boolean;
|
|
37
45
|
/** Supplied only by a real comment entry point; subsequent comment dispatches share its first run. */
|
|
@@ -121,6 +129,7 @@ export type EnqueueResult = RunEnqueued | RunRequestPending;
|
|
|
121
129
|
*/
|
|
122
130
|
export declare function queuedRun(result: EnqueueResult): RunEnqueued;
|
|
123
131
|
export interface RunFilter {
|
|
132
|
+
readonly visibility?: (eb: ExpressionBuilder) => Expression<SqlBool>;
|
|
124
133
|
readonly subjectKind?: string;
|
|
125
134
|
readonly subjectId?: string;
|
|
126
135
|
readonly agentId?: string;
|
|
@@ -155,8 +164,11 @@ export interface RunService {
|
|
|
155
164
|
readonly requests: RunRequestService;
|
|
156
165
|
/** Adds input to a run that has not ended. */
|
|
157
166
|
addInput(runId: string, input: NewInput, outer?: Tx): Promise<string>;
|
|
158
|
-
/**
|
|
159
|
-
|
|
167
|
+
/**
|
|
168
|
+
* A queued run ends at once; a held one is asked to stop. In `outer`, joins the caller's transaction. `request`
|
|
169
|
+
* reaches the subject's `onCancelRequested` unchanged.
|
|
170
|
+
*/
|
|
171
|
+
cancel(runId: string, byUserId: string | null, outer?: Tx, request?: CancelRequest): Promise<Run>;
|
|
160
172
|
/**
|
|
161
173
|
* Ends the queued runs on a subject, of one agent or of any, or of one agent on every subject; optionally only those
|
|
162
174
|
* `actorUserId` woke. Held runs are left alone. Answers the runs it ended. In `outer`, joins the caller's transaction.
|
|
@@ -185,6 +197,13 @@ export interface RunService {
|
|
|
185
197
|
readonly source: string;
|
|
186
198
|
} | null>;
|
|
187
199
|
list(filter: RunFilter): Promise<Run[]>;
|
|
200
|
+
/** The agents that have a run on the subject (only the runs `involvingUserId` started or owns, when given), each once. */
|
|
201
|
+
agentIds(filter: {
|
|
202
|
+
readonly visibility?: RunFilter['visibility'];
|
|
203
|
+
readonly subjectKind: string;
|
|
204
|
+
readonly subjectId: string;
|
|
205
|
+
readonly involvingUserId?: string;
|
|
206
|
+
}): Promise<string[]>;
|
|
188
207
|
inputTriggers(runIds: readonly string[]): Promise<ReadonlyMap<string, readonly {
|
|
189
208
|
type: string;
|
|
190
209
|
payload: unknown;
|
|
@@ -204,7 +223,8 @@ export interface RunService {
|
|
|
204
223
|
* candidate runners; null when the run does not exist or is not queued. Whoever calls decides what of it a person may
|
|
205
224
|
* see.
|
|
206
225
|
*/
|
|
207
|
-
|
|
226
|
+
/** A conversation supplies its binding (null when unbound), restricting the existing queue facts to that runner. */
|
|
227
|
+
queueWait(runId: string, conversationRunnerId?: string | null): Promise<RunWait | null>;
|
|
208
228
|
events(runId: string, afterSeq: number, limit: number, types?: readonly RunEventType[]): Promise<RunEventPage>;
|
|
209
229
|
/** The run a run token belongs to; `RUN_TOKEN_INVALID` otherwise. */
|
|
210
230
|
authenticateToken(value: string): Promise<RunTokenIdentity>;
|
|
@@ -242,6 +262,12 @@ export interface RunService {
|
|
|
242
262
|
readonly subjectKind: string;
|
|
243
263
|
readonly subjectId: string;
|
|
244
264
|
}, exceptRunId: string): Promise<string | null>;
|
|
265
|
+
/** The five latest terminal runs of this agent on this subject, with summaries capped at 400 characters. */
|
|
266
|
+
recentSummaries(conn: DatabaseConnection, key: {
|
|
267
|
+
readonly agentId: string;
|
|
268
|
+
readonly subjectKind: string;
|
|
269
|
+
readonly subjectId: string;
|
|
270
|
+
}, exceptRunId: string): Promise<RecentRunSummary[]>;
|
|
245
271
|
}
|
|
246
272
|
export interface RunServiceDeps extends TransitionDeps {
|
|
247
273
|
readonly diagnose?: ClaimService['diagnose'];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.service.d.ts","sourceRoot":"","sources":["../../../../server/core/runs/run.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAGL,KAAK,QAAQ,EAEb,KAAK,YAAY,EACjB,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,OAAO,EACZ,KAAK,SAAS,EACf,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"run.service.d.ts","sourceRoot":"","sources":["../../../../server/core/runs/run.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ import { findAgent, lockAgentForClaim } from '../agents/index.js';
|
|
|
14
14
|
import { agentNamesOf } from '../agents/agent.store.js';
|
|
15
15
|
import { createRunRequestService, insertRunRequest, } from './run-requests.js';
|
|
16
16
|
import { authenticateRunToken } from './run-tokens.js';
|
|
17
|
-
import { ACTIVE, eventsRepo, findRunRecord, inputsOnSince, inputsRepo, isActive, isTerminal, lastSummary, openRunsOn, openRunsOnEach, pendingInputs, reposRepo, runsOfKey, runsRepo, toInput, toInputView, toRepo, toRun, usageRepo, } from './run.store.js';
|
|
17
|
+
import { ACTIVE, eventsRepo, findRunRecord, inputsOnSince, inputsRepo, isActive, isTerminal, lastSummary, recentSummaries, openRunsOn, openRunsOnEach, pendingInputs, reposRepo, runnerPreferenceOf, runsOfKey, runsRepo, toInput, toInputView, toRepo, toRun, usageRepo, } from './run.store.js';
|
|
18
18
|
import { readQueueWait, readWorkload, } from './workload.js';
|
|
19
19
|
import { finishRun } from './transitions.js';
|
|
20
20
|
import { gateInputs, gatePending } from './input-gate.js';
|
|
@@ -113,6 +113,9 @@ export function createRunService(deps) {
|
|
|
113
113
|
agentId: agent.id,
|
|
114
114
|
agentType: 'runner',
|
|
115
115
|
runnerId: null,
|
|
116
|
+
runnerPinId: values.runnerPinId ?? null,
|
|
117
|
+
tool: values.tool ?? null,
|
|
118
|
+
model: values.model ?? null,
|
|
116
119
|
status: 'queued',
|
|
117
120
|
priority: values.priority,
|
|
118
121
|
attempt: 1,
|
|
@@ -132,6 +135,8 @@ export function createRunService(deps) {
|
|
|
132
135
|
requestedByUserId: values.requestedByUserId,
|
|
133
136
|
confirmedByUserId: values.confirmedByUserId,
|
|
134
137
|
ownerUserId: values.ownerUserId,
|
|
138
|
+
// The actor's choice now: a later change applies to runs queued after it.
|
|
139
|
+
runnerPreference: await runnerPreferenceOf(unit.conn, values.actorUserId),
|
|
135
140
|
requires: cleanList([...values.requires]),
|
|
136
141
|
acceptsInput: false,
|
|
137
142
|
availableAt: values.availableAt ?? null,
|
|
@@ -145,8 +150,9 @@ export function createRunService(deps) {
|
|
|
145
150
|
cancelledById: null,
|
|
146
151
|
failureReason: null,
|
|
147
152
|
failureDetail: null,
|
|
153
|
+
failureParams: null,
|
|
148
154
|
summary: null,
|
|
149
|
-
sessionId: null,
|
|
155
|
+
sessionId: values.sessionId ?? null,
|
|
150
156
|
workDir: null,
|
|
151
157
|
directoryKey: null,
|
|
152
158
|
claimFailures: 0,
|
|
@@ -398,6 +404,10 @@ export function createRunService(deps) {
|
|
|
398
404
|
}
|
|
399
405
|
const waiting = open.find((run) => run.status === 'queued');
|
|
400
406
|
const target = working ?? waiting;
|
|
407
|
+
if (target && work.retryOfRunId)
|
|
408
|
+
throw precondition('AGENT_BUSY', 'The agent is already working on this.', {
|
|
409
|
+
runId: target.id,
|
|
410
|
+
});
|
|
401
411
|
const commentInput = (rootId) => rootId
|
|
402
412
|
? {
|
|
403
413
|
...work.input,
|
|
@@ -428,6 +438,7 @@ export function createRunService(deps) {
|
|
|
428
438
|
commentExecution: work.commentExecution,
|
|
429
439
|
commentOwnerKey: work.commentOwnerKey,
|
|
430
440
|
freshSession: work.freshSession,
|
|
441
|
+
runnerPinId: work.runnerPinId,
|
|
431
442
|
subject: work.subject,
|
|
432
443
|
threadScope: work.threadScope,
|
|
433
444
|
actorUserId: work.actorUserId,
|
|
@@ -436,7 +447,7 @@ export function createRunService(deps) {
|
|
|
436
447
|
ownerUserId: work.ownerUserId,
|
|
437
448
|
priority: work.priority,
|
|
438
449
|
requires: work.requires,
|
|
439
|
-
retryOfRunId: null,
|
|
450
|
+
retryOfRunId: work.retryOfRunId ?? null,
|
|
440
451
|
availableAt: work.fireAt,
|
|
441
452
|
...(work.parentRunId ? { parentRunId: work.parentRunId } : {}),
|
|
442
453
|
...(work.maxAttempts ? { maxAttempts: work.maxAttempts } : {}),
|
|
@@ -444,6 +455,43 @@ export function createRunService(deps) {
|
|
|
444
455
|
const inputId = await insertInput(unit, runId, commentInput(work.commentRootRunId === '' ? runId : work.commentRootRunId));
|
|
445
456
|
return { runId, outcome: 'created', status: 'queued', inputId };
|
|
446
457
|
}
|
|
458
|
+
/**
|
|
459
|
+
* Cancels a queued or failed run that is being replaced (`EnqueueRequest.replacesRunId`), under its agent's lock and
|
|
460
|
+
* revision. Not a stop request: the subject's cancel hooks do not run, since its work continues in the replacement.
|
|
461
|
+
*/
|
|
462
|
+
async function withdrawReplaced(unit, runId, subject, byUserId) {
|
|
463
|
+
const target = await require(unit.conn, runId);
|
|
464
|
+
await lockAgentForClaim(unit.conn, target.agentId, clock.now().toISOString());
|
|
465
|
+
const run = await require(unit.conn, runId);
|
|
466
|
+
if (run.subjectKind !== subject.kind || run.subjectId !== subject.id)
|
|
467
|
+
throw invalid('A replacement cannot cross subjects.');
|
|
468
|
+
const retried = await runsRepo(unit.conn).findOne({
|
|
469
|
+
filter: { retryOfRunId: run.id },
|
|
470
|
+
});
|
|
471
|
+
if (retried)
|
|
472
|
+
throw precondition('RUN_ALREADY_RETRIED', 'This run has already been retried.', { runId: retried.id });
|
|
473
|
+
if (run.status === 'queued') {
|
|
474
|
+
const ended = await finishRun(unit, deps, run, { status: 'cancelled', reason: 'cancelled', cancelledById: byUserId }, true);
|
|
475
|
+
if (!ended)
|
|
476
|
+
throw conflict('The run changed; try again.');
|
|
477
|
+
return;
|
|
478
|
+
}
|
|
479
|
+
if (run.status !== 'failed')
|
|
480
|
+
throw precondition('RUN_NOT_RETRYABLE', 'Only a queued or failed run can be replaced.');
|
|
481
|
+
const now = clock.now().toISOString();
|
|
482
|
+
const changed = await runsRepo(unit.conn).updateMany({
|
|
483
|
+
filter: { id: run.id, status: 'failed', revision: run.revision },
|
|
484
|
+
values: { status: 'cancelled', cancelledById: byUserId, updatedAt: now },
|
|
485
|
+
});
|
|
486
|
+
if (changed.updatedCount !== 1)
|
|
487
|
+
throw conflict('The run changed; try again.');
|
|
488
|
+
unit.emit({
|
|
489
|
+
type: 'run.changed',
|
|
490
|
+
...(run.runnerPinId ? { quotaWait: false } : {}),
|
|
491
|
+
runId: run.id,
|
|
492
|
+
status: 'cancelled',
|
|
493
|
+
});
|
|
494
|
+
}
|
|
447
495
|
/** The source of the chain of work a request belongs to (`EnqueueRequest.requestedByUserId`). */
|
|
448
496
|
async function sourceOf(unit, request) {
|
|
449
497
|
if (request.comment &&
|
|
@@ -761,13 +809,19 @@ export function createRunService(deps) {
|
|
|
761
809
|
const agent = await requireInvocable(unit, request.agentId, actorUserId);
|
|
762
810
|
if (foreign)
|
|
763
811
|
await requireRunnerFor(unit, agent, actorUserId, request.requires ?? []);
|
|
812
|
+
if (request.replacesRunId)
|
|
813
|
+
await withdrawReplaced(unit, request.replacesRunId, request.subject, request.actorUserId ?? actorUserId);
|
|
764
814
|
const result = await queue(unit, agent, {
|
|
815
|
+
...(request.replacesRunId
|
|
816
|
+
? { retryOfRunId: request.replacesRunId }
|
|
817
|
+
: {}),
|
|
765
818
|
preferActive: request.preferActive,
|
|
766
819
|
sourceRunId: request.causedByRunId,
|
|
767
820
|
commentRootRunId,
|
|
768
821
|
commentExecution,
|
|
769
822
|
commentOwnerKey,
|
|
770
823
|
freshSession: request.freshSession,
|
|
824
|
+
runnerPinId: request.runnerId,
|
|
771
825
|
subject: request.subject,
|
|
772
826
|
threadScope,
|
|
773
827
|
actorUserId,
|
|
@@ -848,7 +902,7 @@ export function createRunService(deps) {
|
|
|
848
902
|
}
|
|
849
903
|
return insertInput(unit, run.id, input);
|
|
850
904
|
}, outer),
|
|
851
|
-
cancel: (runId, byUserId, outer) => tx.run(async (unit) => {
|
|
905
|
+
cancel: (runId, byUserId, outer, request) => tx.run(async (unit) => {
|
|
852
906
|
const run = await require(unit.conn, runId);
|
|
853
907
|
if (isTerminal(run.status))
|
|
854
908
|
throw new ProtocolError('RUN_NOT_ACTIVE', `The run is ${run.status}.`);
|
|
@@ -860,7 +914,7 @@ export function createRunService(deps) {
|
|
|
860
914
|
}, false, async () => {
|
|
861
915
|
await deps.subjects
|
|
862
916
|
.get(run.subjectKind)
|
|
863
|
-
?.sink?.onCancelRequested?.(unit, toRun({ ...run, cancelledById: byUserId }));
|
|
917
|
+
?.sink?.onCancelRequested?.(unit, toRun({ ...run, cancelledById: byUserId }), request);
|
|
864
918
|
});
|
|
865
919
|
if (!ended)
|
|
866
920
|
throw conflict('The run changed; try again.');
|
|
@@ -882,7 +936,7 @@ export function createRunService(deps) {
|
|
|
882
936
|
...run,
|
|
883
937
|
cancelRequestedAt: now,
|
|
884
938
|
cancelledById: byUserId,
|
|
885
|
-
}));
|
|
939
|
+
}), request);
|
|
886
940
|
unit.emit({ type: 'run.changed', runId: run.id, status: run.status });
|
|
887
941
|
}
|
|
888
942
|
return toRun(await require(unit.conn, run.id));
|
|
@@ -947,6 +1001,15 @@ export function createRunService(deps) {
|
|
|
947
1001
|
throw precondition('RUN_ALREADY_RETRIED', 'This run has already been retried.', {
|
|
948
1002
|
runId: retried.id,
|
|
949
1003
|
});
|
|
1004
|
+
// Take the original over by its revision. The conditional write reads the latest row on every dialect, so a
|
|
1005
|
+
// replacement (`replacesRunId`) whose transaction read an older snapshot before the lock fails to cancel it,
|
|
1006
|
+
// and this retry fails if a replacement committed first.
|
|
1007
|
+
const taken = await runsRepo(unit.conn).updateMany({
|
|
1008
|
+
filter: { id: run.id, status: run.status, revision: run.revision },
|
|
1009
|
+
values: { updatedAt: clock.now().toISOString() },
|
|
1010
|
+
});
|
|
1011
|
+
if (taken.updatedCount !== 1)
|
|
1012
|
+
throw conflict('The run changed; try again.');
|
|
950
1013
|
const previousInputs = await inputsRepo(unit.conn).findMany({
|
|
951
1014
|
filter: { runId: run.id },
|
|
952
1015
|
});
|
|
@@ -1017,7 +1080,11 @@ export function createRunService(deps) {
|
|
|
1017
1080
|
priority: Number(run.priority),
|
|
1018
1081
|
requires: toRun(run).requires,
|
|
1019
1082
|
retryOfRunId: run.id,
|
|
1020
|
-
freshSession: run.freshSession,
|
|
1083
|
+
freshSession: run.runnerPinId ? false : run.freshSession,
|
|
1084
|
+
runnerPinId: run.runnerPinId,
|
|
1085
|
+
sessionId: run.sessionId,
|
|
1086
|
+
tool: run.tool,
|
|
1087
|
+
model: run.model,
|
|
1021
1088
|
});
|
|
1022
1089
|
if (renewComment && oldRoot) {
|
|
1023
1090
|
const origins = await inputsRepo(unit.conn).findMany({
|
|
@@ -1190,40 +1257,65 @@ export function createRunService(deps) {
|
|
|
1190
1257
|
return result;
|
|
1191
1258
|
},
|
|
1192
1259
|
async list(filter) {
|
|
1260
|
+
let query = tx.read().query.selectFrom('agRuns').selectAll();
|
|
1261
|
+
for (const key of ['subjectKind', 'subjectId', 'agentId'])
|
|
1262
|
+
if (filter[key])
|
|
1263
|
+
query = query.where(key, '=', filter[key]);
|
|
1264
|
+
if (filter.status)
|
|
1265
|
+
query = query.where('status', 'in', typeof filter.status === 'string' ? [filter.status] : filter.status);
|
|
1266
|
+
if (filter.involvingUserId)
|
|
1267
|
+
query = query.where((eb) => eb.or([
|
|
1268
|
+
eb('actorUserId', '=', filter.involvingUserId),
|
|
1269
|
+
eb('ownerUserId', '=', filter.involvingUserId),
|
|
1270
|
+
]));
|
|
1271
|
+
if (filter.visibility)
|
|
1272
|
+
query = query.where(filter.visibility);
|
|
1273
|
+
if (filter.cursor) {
|
|
1274
|
+
const cursor = filter.cursor;
|
|
1275
|
+
query = query.where((eb) => eb.or([
|
|
1276
|
+
eb('createdAt', '<', cursor.createdAt),
|
|
1277
|
+
eb.and([
|
|
1278
|
+
eb('createdAt', '=', cursor.createdAt),
|
|
1279
|
+
eb('id', '<', cursor.id),
|
|
1280
|
+
]),
|
|
1281
|
+
]));
|
|
1282
|
+
}
|
|
1283
|
+
const ids = await query
|
|
1284
|
+
.clearSelect()
|
|
1285
|
+
.select('id')
|
|
1286
|
+
.orderBy('createdAt', 'desc')
|
|
1287
|
+
.orderBy('id', 'desc')
|
|
1288
|
+
.limit(Math.min(Math.max(filter.limit ?? 50, 1), 200))
|
|
1289
|
+
.execute();
|
|
1290
|
+
if (ids.length === 0)
|
|
1291
|
+
return [];
|
|
1193
1292
|
const records = await runsRepo(tx.read()).findMany({
|
|
1194
|
-
filter: (f) => f.
|
|
1195
|
-
...(filter.subjectKind
|
|
1196
|
-
? [f.string('subjectKind').eq(filter.subjectKind)]
|
|
1197
|
-
: []),
|
|
1198
|
-
...(filter.subjectId
|
|
1199
|
-
? [f.string('subjectId').eq(filter.subjectId)]
|
|
1200
|
-
: []),
|
|
1201
|
-
...(filter.agentId ? [f.string('agentId').eq(filter.agentId)] : []),
|
|
1202
|
-
...(filter.status
|
|
1203
|
-
? [
|
|
1204
|
-
f.or((typeof filter.status === 'string'
|
|
1205
|
-
? [filter.status]
|
|
1206
|
-
: filter.status).map((status) => f.string('status').eq(status))),
|
|
1207
|
-
]
|
|
1208
|
-
: []),
|
|
1209
|
-
...(filter.involvingUserId
|
|
1210
|
-
? [
|
|
1211
|
-
f.or([
|
|
1212
|
-
f.string('actorUserId').eq(filter.involvingUserId),
|
|
1213
|
-
f.string('ownerUserId').eq(filter.involvingUserId),
|
|
1214
|
-
]),
|
|
1215
|
-
]
|
|
1216
|
-
: []),
|
|
1217
|
-
]),
|
|
1293
|
+
filter: (f) => f.or(ids.map(({ id }) => f.string('id').eq(id))),
|
|
1218
1294
|
sort: (sort) => [
|
|
1219
1295
|
sort.field('createdAt').desc(),
|
|
1220
1296
|
sort.field('id').desc(),
|
|
1221
1297
|
],
|
|
1222
|
-
limit: Math.min(Math.max(filter.limit ?? 50, 1), 200),
|
|
1223
|
-
...(filter.cursor ? { cursor: filter.cursor } : {}),
|
|
1224
1298
|
});
|
|
1225
1299
|
return readRuns(records);
|
|
1226
1300
|
},
|
|
1301
|
+
async agentIds(filter) {
|
|
1302
|
+
let query = tx
|
|
1303
|
+
.read()
|
|
1304
|
+
.query.selectFrom('agRuns')
|
|
1305
|
+
.select('agentId')
|
|
1306
|
+
.distinct()
|
|
1307
|
+
.where('subjectKind', '=', filter.subjectKind)
|
|
1308
|
+
.where('subjectId', '=', filter.subjectId);
|
|
1309
|
+
if (filter.visibility)
|
|
1310
|
+
query = query.where(filter.visibility);
|
|
1311
|
+
const userId = filter.involvingUserId;
|
|
1312
|
+
if (userId !== undefined)
|
|
1313
|
+
query = query.where((eb) => eb.or([
|
|
1314
|
+
eb('actorUserId', '=', userId),
|
|
1315
|
+
eb('ownerUserId', '=', userId),
|
|
1316
|
+
]));
|
|
1317
|
+
return (await query.execute()).map((row) => String(row.agentId));
|
|
1318
|
+
},
|
|
1227
1319
|
async lastEnded(subjectKind, subjectIds) {
|
|
1228
1320
|
if (subjectIds.length === 0)
|
|
1229
1321
|
return [];
|
|
@@ -1271,8 +1363,8 @@ export function createRunService(deps) {
|
|
|
1271
1363
|
workload(query) {
|
|
1272
1364
|
return readWorkload(tx.read(), clock, deps.runners, query);
|
|
1273
1365
|
},
|
|
1274
|
-
queueWait(runId) {
|
|
1275
|
-
return readQueueWait(tx.read(), clock, deps.runners, runId, deps.diagnose);
|
|
1366
|
+
queueWait(runId, conversationRunnerId) {
|
|
1367
|
+
return readQueueWait(tx.read(), clock, deps.runners, runId, conversationRunnerId === undefined ? deps.diagnose : undefined, conversationRunnerId);
|
|
1276
1368
|
},
|
|
1277
1369
|
async events(runId, afterSeq, limit, types) {
|
|
1278
1370
|
const conn = tx.read();
|
|
@@ -1323,6 +1415,7 @@ export function createRunService(deps) {
|
|
|
1323
1415
|
const agent = await findAgent(conn, run.agentId);
|
|
1324
1416
|
return {
|
|
1325
1417
|
runId: run.id,
|
|
1418
|
+
freshSession: run.freshSession === true,
|
|
1326
1419
|
attempt: Number(run.attempt),
|
|
1327
1420
|
status: run.status,
|
|
1328
1421
|
agent: { id: run.agentId, name: agent?.name ?? run.agentId },
|
|
@@ -1366,6 +1459,7 @@ export function createRunService(deps) {
|
|
|
1366
1459
|
pendingInputs: async (conn, runId) => (await pendingInputs(conn, runId)).map(toInput),
|
|
1367
1460
|
inputsSince: inputsOnSince,
|
|
1368
1461
|
lastSummary,
|
|
1462
|
+
recentSummaries,
|
|
1369
1463
|
};
|
|
1370
1464
|
}
|
|
1371
1465
|
//# sourceMappingURL=run.service.js.map
|