@nocobase/app-plugin-agents 2.0.0-beta.0 → 2.0.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +199 -0
- package/README.md +26 -4
- 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/coalesced-invalidation.d.ts +3 -8
- package/dist/client/chat/coalesced-invalidation.d.ts.map +1 -1
- package/dist/client/chat/coalesced-invalidation.js +16 -21
- package/dist/client/chat/coalesced-invalidation.js.map +1 -1
- package/dist/client/chat/controller.d.ts +30 -3
- package/dist/client/chat/controller.d.ts.map +1 -1
- package/dist/client/chat/controller.js +477 -78
- 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/provider.d.ts.map +1 -1
- package/dist/client/chat/provider.js +7 -4
- package/dist/client/chat/provider.js.map +1 -1
- 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 +4 -2
- package/dist/client/chat/use-chat.d.ts.map +1 -1
- package/dist/client/chat/use-chat.js +83 -51
- 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/hooks/use-realtime-topic.d.ts +1 -1
- package/dist/client/hooks/use-realtime-topic.d.ts.map +1 -1
- package/dist/client/hooks/use-realtime-topic.js +8 -4
- package/dist/client/hooks/use-realtime-topic.js.map +1 -1
- package/dist/client/kit.d.ts.map +1 -1
- package/dist/client/kit.js +30 -5
- package/dist/client/kit.js.map +1 -1
- package/dist/client/locales/de-DE.d.ts.map +1 -1
- package/dist/client/locales/de-DE.js +137 -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 +214 -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 +146 -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 +135 -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 +218 -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 +1311 -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 +208 -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 +1341 -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 +1 -0
- package/dist/client/locales/runtimes.en-US.d.ts.map +1 -1
- package/dist/client/locales/runtimes.en-US.js +3 -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 +3 -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 +174 -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 +151 -123
- package/dist/client/locales/zh-TW.js.map +1 -1
- package/dist/client/pages/agents/agent-dialog.js +4 -1
- package/dist/client/pages/agents/agent-dialog.js.map +1 -1
- 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 +8 -3
- 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 +16 -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/package.json +1 -1
- package/dist/server/composition.d.ts +7 -1
- package/dist/server/composition.d.ts.map +1 -1
- package/dist/server/composition.js +14 -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 +2 -12
- package/dist/server/core/conversations/attachments.d.ts.map +1 -1
- package/dist/server/core/conversations/attachments.js +56 -14
- 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 +212 -21
- 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 +3 -0
- package/dist/server/core/conversations/links.d.ts.map +1 -1
- package/dist/server/core/conversations/links.js +43 -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/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/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 +19 -2
- 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 +29 -5
- package/dist/server/core/runs/run.service.d.ts.map +1 -1
- package/dist/server/core/runs/run.service.js +101 -10
- 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 +6 -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/backend.d.ts.map +1 -1
- package/dist/server/online/agent/runner/backend.js +17 -8
- package/dist/server/online/agent/runner/backend.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/providers/agents.d.ts.map +1 -1
- package/dist/server/providers/agents.js +3 -0
- 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 +32 -2
- 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 +99 -16
- 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 +5 -1
- package/dist/server/routes/schemas.d.ts.map +1 -1
- package/dist/server/routes/schemas.js +33 -8
- 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 +17 -5
- package/dist/server/runners/runner.service.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 +38 -1
- package/dist/shared/conversations.d.ts.map +1 -1
- package/dist/shared/conversations.js +10 -0
- package/dist/shared/conversations.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/dist/shared/ui-message.d.ts +2 -2
- package/dist/shared/ui-message.d.ts.map +1 -1
- package/dist/shared/ui-message.js +1 -1
- package/dist/shared/ui-message.js.map +1 -1
- package/docs/conversation-sharing.md +55 -0
- package/package.json +16 -16
- package/skills/nocobase-app-plugin-agents/references/extension-points.md +2 -0
- package/skills/nocobase-app-plugin-agents/references/runners.md +1 -1
- package/skills/nocobase-app-plugin-agents/references/verification-and-troubleshooting.md +2 -1
|
@@ -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":"AAAA,OAAO,EAAE,UAAU,IAAI,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAI3D,MAAM,CAAC,MAAM,0BAA0B,GAAW,EAAE,GAAG,MAAM,CAAC;AAC9D,MAAM,CAAC,MAAM,oBAAoB,GAAW,GAAG,CAAC;AAChD,MAAM,CAAC,MAAM,oBAAoB,GAAW,IAAI,CAAC;AACjD,MAAM,CAAC,MAAM,uBAAuB,GAAW,GAAG,CAAC;AACnD,MAAM,CAAC,MAAM,sBAAsB,GAAW,CAAC,GAAG,MAAM,CAAC;AAEzD,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACnC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;QACxE,MAAM,IAAI,KAAK,CACb,2DAA2D,CAC5D,CAAC;IACJ,OAAO,KAAK,CAAC;AACf,CAAC;AAED,qFAAqF;AACrF,MAAM,CAAC,MAAM,uCAAuC,GAAW,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;AAEhF;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAClD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACnC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;QACxE,MAAM,IAAI,KAAK,CACb,4EAA4E,CAC7E,CAAC;IACJ,OAAO,KAAK,CAAC;AACf,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,kBAAkB,CAAC,IAKlC;IACC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;IACjC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC;IAClC,OAAO,KAAK,IAAqB,EAAE;QACjC,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QACpD,IAAI,IAAI,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QACzB,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;QACnE,IAAI,MAAuD,CAAC;QAC5D,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,OACE,MAAM,GAAG,oBAAoB;YAC7B,GAAG,EAAE,GAAG,OAAO,GAAG,sBAAsB,EACxC,CAAC;YACD,IAAI,IAAI,GAAG,IAAI,CAAC,EAAE;iBACf,IAAI,EAAE;iBACN,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC;iBAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;iBAC5B,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;iBAC3D,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,MAAM,CAAC;iBAChC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CACZ,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CACrE;iBACA,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CACZ,EAAE,CAAC,EAAE,CAAC;gBACJ,EAAE,CAAC,MAAM,CACP,EAAE;qBACC,UAAU,CAAC,aAAa,CAAC;qBACzB,MAAM,CAAC,IAAI,CAAC;qBACZ,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE,WAAW,CAAC,CACnD;gBACD,EAAE,CAAC,MAAM,CACP,EAAE;qBACC,UAAU,CAAC,aAAa,CAAC;qBACzB,MAAM,CAAC,IAAI,CAAC;qBACZ,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE,WAAW,CAAC,CACnD;aACF,CAAC,CACH,CAAC;YACJ,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,IAAI,GAAG,MAAM,CAAC;gBACpB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CACvB,EAAE,CAAC,EAAE,CAAC;oBACJ,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC;oBACtC,EAAE,CAAC,GAAG,CAAC;wBACL,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC;wBACtC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;qBACvB,CAAC;iBACH,CAAC,CACH,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,IAAI;iBACpB,OAAO,CAAC,YAAY,CAAC;iBACrB,OAAO,CAAC,IAAI,CAAC;iBACb,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,oBAAoB,GAAG,MAAM,CAAC,CAAC;iBACpE,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,GAAG,EAAE,GAAG,OAAO,IAAI,sBAAsB;gBAAE,MAAM;YACrE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9C,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;gBACnC,MAAM,IAAI,CAAC,KAAK;qBACb,UAAU,CAAC,aAAa,CAAC;qBACzB,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC;qBACzB,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,CAAC,KAAK;qBACb,UAAU,CAAC,aAAa,CAAC;qBACzB,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC;qBACzB,OAAO,EAAE,CAAC;YACf,CAAC,CAAC,CAAC;YACH,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC;YACtB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC;YAC1B,MAAM,GAAG,EAAE,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;YAC9D,IAAI,IAAI,CAAC,MAAM,GAAG,oBAAoB,IAAI,MAAM,IAAI,oBAAoB;gBACtE,MAAM;YACR,MAAM,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -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. */
|
|
@@ -124,7 +132,7 @@ export interface RunFilter {
|
|
|
124
132
|
readonly subjectKind?: string;
|
|
125
133
|
readonly subjectId?: string;
|
|
126
134
|
readonly agentId?: string;
|
|
127
|
-
readonly status?: RunStatus;
|
|
135
|
+
readonly status?: RunStatus | readonly RunStatus[];
|
|
128
136
|
/** Only runs this user started or is owner of. */
|
|
129
137
|
readonly involvingUserId?: string;
|
|
130
138
|
readonly limit?: number;
|
|
@@ -155,8 +163,11 @@ export interface RunService {
|
|
|
155
163
|
readonly requests: RunRequestService;
|
|
156
164
|
/** Adds input to a run that has not ended. */
|
|
157
165
|
addInput(runId: string, input: NewInput, outer?: Tx): Promise<string>;
|
|
158
|
-
/**
|
|
159
|
-
|
|
166
|
+
/**
|
|
167
|
+
* A queued run ends at once; a held one is asked to stop. In `outer`, joins the caller's transaction. `request`
|
|
168
|
+
* reaches the subject's `onCancelRequested` unchanged.
|
|
169
|
+
*/
|
|
170
|
+
cancel(runId: string, byUserId: string | null, outer?: Tx, request?: CancelRequest): Promise<Run>;
|
|
160
171
|
/**
|
|
161
172
|
* Ends the queued runs on a subject, of one agent or of any, or of one agent on every subject; optionally only those
|
|
162
173
|
* `actorUserId` woke. Held runs are left alone. Answers the runs it ended. In `outer`, joins the caller's transaction.
|
|
@@ -185,6 +196,12 @@ export interface RunService {
|
|
|
185
196
|
readonly source: string;
|
|
186
197
|
} | null>;
|
|
187
198
|
list(filter: RunFilter): Promise<Run[]>;
|
|
199
|
+
/** The agents that have a run on the subject (only the runs `involvingUserId` started or owns, when given), each once. */
|
|
200
|
+
agentIds(filter: {
|
|
201
|
+
readonly subjectKind: string;
|
|
202
|
+
readonly subjectId: string;
|
|
203
|
+
readonly involvingUserId?: string;
|
|
204
|
+
}): Promise<string[]>;
|
|
188
205
|
inputTriggers(runIds: readonly string[]): Promise<ReadonlyMap<string, readonly {
|
|
189
206
|
type: string;
|
|
190
207
|
payload: unknown;
|
|
@@ -204,7 +221,8 @@ export interface RunService {
|
|
|
204
221
|
* candidate runners; null when the run does not exist or is not queued. Whoever calls decides what of it a person may
|
|
205
222
|
* see.
|
|
206
223
|
*/
|
|
207
|
-
|
|
224
|
+
/** A conversation supplies its binding (null when unbound), restricting the existing queue facts to that runner. */
|
|
225
|
+
queueWait(runId: string, conversationRunnerId?: string | null): Promise<RunWait | null>;
|
|
208
226
|
events(runId: string, afterSeq: number, limit: number, types?: readonly RunEventType[]): Promise<RunEventPage>;
|
|
209
227
|
/** The run a run token belongs to; `RUN_TOKEN_INVALID` otherwise. */
|
|
210
228
|
authenticateToken(value: string): Promise<RunTokenIdentity>;
|
|
@@ -242,6 +260,12 @@ export interface RunService {
|
|
|
242
260
|
readonly subjectKind: string;
|
|
243
261
|
readonly subjectId: string;
|
|
244
262
|
}, exceptRunId: string): Promise<string | null>;
|
|
263
|
+
/** The five latest terminal runs of this agent on this subject, with summaries capped at 400 characters. */
|
|
264
|
+
recentSummaries(conn: DatabaseConnection, key: {
|
|
265
|
+
readonly agentId: string;
|
|
266
|
+
readonly subjectKind: string;
|
|
267
|
+
readonly subjectId: string;
|
|
268
|
+
}, exceptRunId: string): Promise<RecentRunSummary[]>;
|
|
245
269
|
}
|
|
246
270
|
export interface RunServiceDeps extends TransitionDeps {
|
|
247
271
|
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,EAAE,kBAAkB,EAAqB,MAAM,cAAc,CAAC;AAG1E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EACV,GAAG,EACH,SAAS,EACT,YAAY,EACZ,YAAY,EAEZ,OAAO,EACP,QAAQ,EACR,aAAa,EACb,gBAAgB,EACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAQrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAOvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAwB,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;
|
|
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({
|
|
@@ -1199,7 +1266,13 @@ export function createRunService(deps) {
|
|
|
1199
1266
|
? [f.string('subjectId').eq(filter.subjectId)]
|
|
1200
1267
|
: []),
|
|
1201
1268
|
...(filter.agentId ? [f.string('agentId').eq(filter.agentId)] : []),
|
|
1202
|
-
...(filter.status
|
|
1269
|
+
...(filter.status
|
|
1270
|
+
? [
|
|
1271
|
+
f.or((typeof filter.status === 'string'
|
|
1272
|
+
? [filter.status]
|
|
1273
|
+
: filter.status).map((status) => f.string('status').eq(status))),
|
|
1274
|
+
]
|
|
1275
|
+
: []),
|
|
1203
1276
|
...(filter.involvingUserId
|
|
1204
1277
|
? [
|
|
1205
1278
|
f.or([
|
|
@@ -1218,6 +1291,22 @@ export function createRunService(deps) {
|
|
|
1218
1291
|
});
|
|
1219
1292
|
return readRuns(records);
|
|
1220
1293
|
},
|
|
1294
|
+
async agentIds(filter) {
|
|
1295
|
+
let query = tx
|
|
1296
|
+
.read()
|
|
1297
|
+
.query.selectFrom('agRuns')
|
|
1298
|
+
.select('agentId')
|
|
1299
|
+
.distinct()
|
|
1300
|
+
.where('subjectKind', '=', filter.subjectKind)
|
|
1301
|
+
.where('subjectId', '=', filter.subjectId);
|
|
1302
|
+
const userId = filter.involvingUserId;
|
|
1303
|
+
if (userId !== undefined)
|
|
1304
|
+
query = query.where((eb) => eb.or([
|
|
1305
|
+
eb('actorUserId', '=', userId),
|
|
1306
|
+
eb('ownerUserId', '=', userId),
|
|
1307
|
+
]));
|
|
1308
|
+
return (await query.execute()).map((row) => String(row.agentId));
|
|
1309
|
+
},
|
|
1221
1310
|
async lastEnded(subjectKind, subjectIds) {
|
|
1222
1311
|
if (subjectIds.length === 0)
|
|
1223
1312
|
return [];
|
|
@@ -1265,8 +1354,8 @@ export function createRunService(deps) {
|
|
|
1265
1354
|
workload(query) {
|
|
1266
1355
|
return readWorkload(tx.read(), clock, deps.runners, query);
|
|
1267
1356
|
},
|
|
1268
|
-
queueWait(runId) {
|
|
1269
|
-
return readQueueWait(tx.read(), clock, deps.runners, runId, deps.diagnose);
|
|
1357
|
+
queueWait(runId, conversationRunnerId) {
|
|
1358
|
+
return readQueueWait(tx.read(), clock, deps.runners, runId, conversationRunnerId === undefined ? deps.diagnose : undefined, conversationRunnerId);
|
|
1270
1359
|
},
|
|
1271
1360
|
async events(runId, afterSeq, limit, types) {
|
|
1272
1361
|
const conn = tx.read();
|
|
@@ -1317,6 +1406,7 @@ export function createRunService(deps) {
|
|
|
1317
1406
|
const agent = await findAgent(conn, run.agentId);
|
|
1318
1407
|
return {
|
|
1319
1408
|
runId: run.id,
|
|
1409
|
+
freshSession: run.freshSession === true,
|
|
1320
1410
|
attempt: Number(run.attempt),
|
|
1321
1411
|
status: run.status,
|
|
1322
1412
|
agent: { id: run.agentId, name: agent?.name ?? run.agentId },
|
|
@@ -1360,6 +1450,7 @@ export function createRunService(deps) {
|
|
|
1360
1450
|
pendingInputs: async (conn, runId) => (await pendingInputs(conn, runId)).map(toInput),
|
|
1361
1451
|
inputsSince: inputsOnSince,
|
|
1362
1452
|
lastSummary,
|
|
1453
|
+
recentSummaries,
|
|
1363
1454
|
};
|
|
1364
1455
|
}
|
|
1365
1456
|
//# sourceMappingURL=run.service.js.map
|