@capybara-hq/kernel 0.1.0-rc.1 → 0.1.0-rc.2
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/dist/admin/admin.controller.d.ts +17 -17
- package/dist/admin/admin.controller.js +43 -26
- package/dist/admin/admin.module.d.ts +3 -0
- package/dist/admin/admin.module.js +22 -0
- package/dist/admin/extensions.controller.d.ts +14 -14
- package/dist/admin/extensions.controller.js +30 -17
- package/dist/admin/setup-lock.d.ts +16 -0
- package/dist/admin/setup-lock.js +47 -0
- package/dist/admin/setup.controller.d.ts +8 -8
- package/dist/admin/setup.controller.js +27 -25
- package/dist/admin/setup.service.d.ts +19 -27
- package/dist/admin/setup.service.js +61 -61
- package/dist/agents/agent-lookup.d.ts +53 -0
- package/dist/agents/agent-lookup.js +179 -0
- package/dist/agents/agents.controller.d.ts +1 -1
- package/dist/agents/agents.controller.js +14 -8
- package/dist/agents/agents.module.d.ts +7 -0
- package/dist/agents/agents.module.js +41 -0
- package/dist/agents/agents.service.d.ts +39 -58
- package/dist/agents/agents.service.js +261 -329
- package/dist/agents/definition.d.ts +8 -0
- package/dist/agents/definition.js +8 -0
- package/dist/agents/models.controller.d.ts +1 -1
- package/dist/agents/models.controller.js +2 -2
- package/dist/agents/templates.controller.d.ts +1 -1
- package/dist/agents/templates.controller.js +2 -2
- package/dist/agents/templates.d.ts +6 -8
- package/dist/agents/templates.js +20 -4
- package/dist/app.d.ts +93 -0
- package/dist/app.js +150 -0
- package/dist/catalog/admin-catalog.controller.d.ts +3 -3
- package/dist/catalog/admin-catalog.controller.js +27 -13
- package/dist/catalog/catalog-content.d.ts +185 -0
- package/dist/catalog/catalog-content.js +323 -0
- package/dist/catalog/catalog-items.d.ts +186 -0
- package/dist/catalog/catalog-items.js +410 -0
- package/dist/catalog/catalog.module.d.ts +14 -0
- package/dist/catalog/catalog.module.js +71 -0
- package/dist/catalog/catalog.service.d.ts +34 -188
- package/dist/catalog/catalog.service.js +155 -489
- package/dist/catalog/cli.d.ts +3 -2
- package/dist/catalog/cli.js +13 -31
- package/dist/catalog/job-ids.d.ts +15 -0
- package/dist/catalog/job-ids.js +15 -0
- package/dist/catalog/jobs.d.ts +27 -0
- package/dist/catalog/jobs.js +70 -0
- package/dist/catalog/locks.d.ts +24 -0
- package/dist/catalog/locks.js +63 -0
- package/dist/catalog/marketplaces.controller.d.ts +4 -4
- package/dist/catalog/marketplaces.controller.js +22 -11
- package/dist/catalog/marketplaces.service.d.ts +30 -13
- package/dist/catalog/marketplaces.service.js +330 -256
- package/dist/catalog/org-catalog.controller.d.ts +4 -3
- package/dist/catalog/org-catalog.controller.js +29 -14
- package/dist/catalog/org-catalog.service.d.ts +32 -198
- package/dist/catalog/org-catalog.service.js +159 -400
- package/dist/catalog/plugin-import.d.ts +73 -34
- package/dist/catalog/plugin-import.js +356 -217
- package/dist/catalog/plugin-install.d.ts +83 -41
- package/dist/catalog/plugin-install.js +421 -269
- package/dist/catalog/plugin-upgrade.d.ts +59 -4
- package/dist/catalog/plugin-upgrade.js +407 -282
- package/dist/catalog/requests.service.d.ts +27 -15
- package/dist/catalog/requests.service.js +201 -145
- package/dist/catalog/upgrade-targets.d.ts +4 -7
- package/dist/channels/actions.d.ts +6 -4
- package/dist/channels/actions.js +1 -1
- package/dist/channels/cards.d.ts +2 -2
- package/dist/channels/channels.module.d.ts +40 -0
- package/dist/channels/channels.module.js +128 -0
- package/dist/channels/connections.controller.d.ts +1 -1
- package/dist/channels/connections.controller.js +11 -6
- package/dist/channels/connections.service.d.ts +43 -21
- package/dist/channels/connections.service.js +236 -131
- package/dist/channels/inbound.d.ts +34 -38
- package/dist/channels/inbound.js +107 -41
- package/dist/channels/job-ids.d.ts +10 -0
- package/dist/channels/job-ids.js +10 -0
- package/dist/channels/jobs.d.ts +85 -0
- package/dist/channels/jobs.js +157 -0
- package/dist/channels/outbound.d.ts +60 -82
- package/dist/channels/outbound.js +165 -194
- package/dist/channels/supervisor.d.ts +88 -46
- package/dist/channels/supervisor.js +230 -132
- package/dist/channels/threads.d.ts +29 -8
- package/dist/channels/threads.js +71 -13
- package/dist/channels/webhook.d.ts +20 -14
- package/dist/channels/webhook.js +51 -20
- package/dist/config/load.d.ts +3 -2
- package/dist/config/load.js +3 -2
- package/dist/config/nacos-source.js +11 -2
- package/dist/config/schema.d.ts +1 -0
- package/dist/config/schema.js +10 -4
- package/dist/conversations/access.d.ts +29 -0
- package/dist/conversations/access.js +86 -0
- package/dist/conversations/artifacts.d.ts +10 -10
- package/dist/conversations/artifacts.js +35 -9
- package/dist/conversations/attachments.controller.d.ts +1 -1
- package/dist/conversations/attachments.controller.js +8 -6
- package/dist/conversations/attachments.module.d.ts +7 -0
- package/dist/conversations/attachments.module.js +25 -0
- package/dist/conversations/attachments.service.d.ts +30 -22
- package/dist/conversations/attachments.service.js +119 -46
- package/dist/conversations/conversations.controller.d.ts +8 -7
- package/dist/conversations/conversations.controller.js +59 -29
- package/dist/conversations/conversations.module.d.ts +8 -0
- package/dist/conversations/conversations.module.js +69 -0
- package/dist/conversations/conversations.service.d.ts +40 -38
- package/dist/conversations/conversations.service.js +130 -140
- package/dist/conversations/event-log.d.ts +28 -18
- package/dist/conversations/event-log.js +74 -27
- package/dist/conversations/files.d.ts +10 -10
- package/dist/conversations/files.js +37 -11
- package/dist/conversations/idem-keys.d.ts +5 -0
- package/dist/conversations/idem-keys.js +5 -0
- package/dist/conversations/job-ids.d.ts +6 -0
- package/dist/conversations/job-ids.js +6 -0
- package/dist/conversations/outputs-read.d.ts +11 -11
- package/dist/conversations/outputs-read.js +31 -7
- package/dist/conversations/queue.d.ts +48 -56
- package/dist/conversations/queue.js +13 -289
- package/dist/conversations/queue.service.d.ts +60 -0
- package/dist/conversations/queue.service.js +343 -0
- package/dist/conversations/sandbox-status.d.ts +13 -10
- package/dist/conversations/sandbox-status.js +36 -8
- package/dist/conversations/titles.d.ts +71 -24
- package/dist/conversations/titles.js +159 -63
- package/dist/ctx/bus.js +9 -3
- package/dist/ctx/create-ctx.d.ts +6 -0
- package/dist/ctx/create-ctx.js +7 -9
- package/dist/ctx/lock.d.ts +7 -3
- package/dist/ctx/lock.js +9 -20
- package/dist/ctx/secrets.d.ts +10 -2
- package/dist/ctx/secrets.js +7 -3
- package/dist/db/kernel-schema.d.ts +2 -2
- package/dist/db/pool.d.ts +5 -0
- package/dist/db/pool.js +1 -0
- package/dist/errors.d.ts +1 -0
- package/dist/errors.js +1 -0
- package/dist/evals/budget.d.ts +42 -21
- package/dist/evals/budget.js +114 -62
- package/dist/evals/evals.module.d.ts +31 -0
- package/dist/evals/evals.module.js +114 -0
- package/dist/evals/jobs.d.ts +20 -0
- package/dist/evals/jobs.js +45 -0
- package/dist/evals/run-replay.d.ts +56 -8
- package/dist/evals/run-replay.js +140 -80
- package/dist/evals/runs.controller.d.ts +1 -1
- package/dist/evals/runs.controller.js +17 -8
- package/dist/evals/runs.service.d.ts +23 -45
- package/dist/evals/runs.service.js +245 -234
- package/dist/evals/sets.controller.d.ts +1 -1
- package/dist/evals/sets.controller.js +17 -8
- package/dist/evals/sets.service.d.ts +22 -6
- package/dist/evals/sets.service.js +248 -194
- package/dist/evals/snapshot.d.ts +2 -2
- package/dist/evals/step-replay.d.ts +2 -2
- package/dist/evals/step-replay.js +1 -1
- package/dist/evals/trajectory.controller.d.ts +1 -1
- package/dist/evals/trajectory.controller.js +11 -7
- package/dist/evals/trajectory.service.d.ts +5 -4
- package/dist/evals/trajectory.service.js +30 -7
- package/dist/evals/worker.d.ts +44 -27
- package/dist/evals/worker.js +220 -121
- package/dist/extensions/admin-ops.d.ts +61 -33
- package/dist/extensions/admin-ops.js +248 -154
- package/dist/extensions/admin-view.d.ts +38 -27
- package/dist/extensions/admin-view.js +126 -55
- package/dist/extensions/approvals.d.ts +12 -8
- package/dist/extensions/approvals.js +73 -46
- package/dist/extensions/blobs.d.ts +27 -10
- package/dist/extensions/blobs.js +111 -45
- package/dist/extensions/bootstrap.d.ts +58 -31
- package/dist/extensions/bootstrap.js +175 -121
- package/dist/extensions/cli.d.ts +20 -10
- package/dist/extensions/cli.js +41 -96
- package/dist/extensions/config-issues.d.ts +7 -0
- package/dist/extensions/config-issues.js +31 -0
- package/dist/extensions/deployment-config-store.d.ts +49 -0
- package/dist/extensions/deployment-config-store.js +133 -0
- package/dist/extensions/deployment-config.d.ts +58 -67
- package/dist/extensions/deployment-config.js +202 -230
- package/dist/extensions/enabled.d.ts +5 -5
- package/dist/extensions/extensions.module.d.ts +8 -0
- package/dist/extensions/extensions.module.js +77 -0
- package/dist/extensions/hooks.d.ts +3 -2
- package/dist/extensions/hooks.js +1 -1
- package/dist/extensions/host.d.ts +72 -68
- package/dist/extensions/host.js +191 -152
- package/dist/extensions/installs.d.ts +49 -16
- package/dist/extensions/installs.js +128 -32
- package/dist/extensions/job-ids.d.ts +6 -0
- package/dist/extensions/job-ids.js +6 -0
- package/dist/extensions/lifecycle-topics.d.ts +18 -0
- package/dist/extensions/lifecycle-topics.js +18 -0
- package/dist/extensions/lifecycle.d.ts +35 -47
- package/dist/extensions/lifecycle.js +103 -39
- package/dist/extensions/locks.d.ts +33 -0
- package/dist/extensions/locks.js +86 -0
- package/dist/extensions/migrate-lock.d.ts +3 -4
- package/dist/extensions/org-config.controller.d.ts +1 -1
- package/dist/extensions/org-config.controller.js +8 -5
- package/dist/extensions/org-config.d.ts +48 -46
- package/dist/extensions/org-config.js +284 -226
- package/dist/extensions/registry.d.ts +50 -2
- package/dist/extensions/registry.js +89 -4
- package/dist/extensions/sources.d.ts +12 -8
- package/dist/extensions/sources.js +34 -13
- package/dist/files/files.module.d.ts +3 -0
- package/dist/files/files.module.js +22 -0
- package/dist/files/previewers.controller.d.ts +7 -2
- package/dist/files/previewers.controller.js +17 -9
- package/dist/files/previewers.d.ts +13 -18
- package/dist/files/previewers.js +83 -36
- package/dist/http/adapter.d.ts +3 -0
- package/dist/http/adapter.js +25 -0
- package/dist/http/api.module.d.ts +3 -110
- package/dist/http/api.module.js +47 -355
- package/dist/http/app.d.ts +11 -15
- package/dist/http/app.js +17 -62
- package/dist/http/error-filter.module.d.ts +5 -0
- package/dist/http/error-filter.module.js +18 -0
- package/dist/http/error.filter.js +2 -2
- package/dist/identity/accounts.d.ts +82 -29
- package/dist/identity/accounts.js +294 -175
- package/dist/identity/api-tokens.d.ts +11 -7
- package/dist/identity/api-tokens.js +71 -44
- package/dist/identity/audit.d.ts +7 -4
- package/dist/identity/audit.js +5 -1
- package/dist/identity/auth.controller.d.ts +11 -10
- package/dist/identity/auth.controller.js +31 -25
- package/dist/identity/auth.guard.d.ts +3 -3
- package/dist/identity/auth.guard.js +6 -4
- package/dist/identity/binding.d.ts +9 -11
- package/dist/identity/binding.js +41 -13
- package/dist/identity/enterprise-admin.d.ts +18 -12
- package/dist/identity/enterprise-admin.js +67 -13
- package/dist/identity/external-identity-lock.d.ts +17 -0
- package/dist/identity/external-identity-lock.js +39 -0
- package/dist/identity/external.d.ts +19 -15
- package/dist/identity/external.js +163 -125
- package/dist/identity/identity.module.d.ts +6 -0
- package/dist/identity/identity.module.js +56 -0
- package/dist/identity/me.controller.d.ts +16 -15
- package/dist/identity/me.controller.js +37 -31
- package/dist/identity/sessions.d.ts +12 -10
- package/dist/identity/sessions.js +74 -42
- package/dist/identity/settings.d.ts +20 -14
- package/dist/identity/settings.js +85 -57
- package/dist/identity/sso.controller.d.ts +7 -7
- package/dist/identity/sso.controller.js +13 -9
- package/dist/identity/sso.d.ts +9 -12
- package/dist/identity/sso.js +54 -24
- package/dist/inbox/inbox.module.d.ts +3 -0
- package/dist/inbox/inbox.module.js +22 -0
- package/dist/inbox/inbox.service.d.ts +7 -9
- package/dist/inbox/inbox.service.js +32 -11
- package/dist/index.d.ts +16 -11
- package/dist/index.js +9 -6
- package/dist/infra/cache/cache.module.d.ts +3 -0
- package/dist/infra/cache/cache.module.js +16 -0
- package/dist/infra/cache/cache.service.d.ts +21 -0
- package/dist/infra/cache/cache.service.js +80 -0
- package/dist/infra/cache/cacheable.decorator.d.ts +32 -0
- package/dist/infra/cache/cacheable.decorator.js +83 -0
- package/dist/infra/cli/kernel-cli.module.d.ts +66 -0
- package/dist/infra/cli/kernel-cli.module.js +165 -0
- package/dist/infra/close-within.d.ts +15 -0
- package/dist/infra/close-within.js +36 -0
- package/dist/infra/config/config.module.d.ts +13 -0
- package/dist/infra/config/config.module.js +39 -0
- package/dist/infra/config/kernel-config.service.d.ts +25 -0
- package/dist/infra/config/kernel-config.service.js +126 -0
- package/dist/infra/database/after-commit.d.ts +6 -0
- package/dist/infra/database/after-commit.js +9 -0
- package/dist/infra/database/database.module.d.ts +25 -0
- package/dist/infra/database/database.module.js +90 -0
- package/dist/infra/database/kernel-db.d.ts +22 -0
- package/dist/infra/database/kernel-db.js +65 -0
- package/dist/infra/database/transaction-host.d.ts +50 -0
- package/dist/infra/database/transaction-host.js +125 -0
- package/dist/infra/database/transactional.decorator.d.ts +15 -0
- package/dist/infra/database/transactional.decorator.js +27 -0
- package/dist/infra/database/xact-lock.d.ts +17 -0
- package/dist/infra/database/xact-lock.js +43 -0
- package/dist/infra/events/kernel-events.d.ts +96 -0
- package/dist/infra/events/kernel-events.js +65 -0
- package/dist/infra/health/health.controller.d.ts +26 -0
- package/dist/infra/health/health.controller.js +104 -0
- package/dist/infra/health/health.module.d.ts +9 -0
- package/dist/infra/health/health.module.js +24 -0
- package/dist/infra/health/health.options.d.ts +10 -0
- package/dist/infra/health/health.options.js +15 -0
- package/dist/infra/health/shutdown-state.d.ts +6 -0
- package/dist/infra/health/shutdown-state.js +2 -0
- package/dist/infra/lifecycle/graceful-shutdown.module.d.ts +6 -0
- package/dist/infra/lifecycle/graceful-shutdown.module.js +23 -0
- package/dist/infra/lifecycle/graceful-shutdown.service.d.ts +70 -0
- package/dist/infra/lifecycle/graceful-shutdown.service.js +135 -0
- package/dist/infra/lifecycle/process-guards.d.ts +52 -0
- package/dist/infra/lifecycle/process-guards.js +86 -0
- package/dist/infra/lifecycle/shutdown-signals.d.ts +30 -0
- package/dist/infra/lifecycle/shutdown-signals.js +48 -0
- package/dist/infra/lock/key-template.d.ts +13 -0
- package/dist/infra/lock/key-template.js +46 -0
- package/dist/infra/lock/lock.module.d.ts +3 -0
- package/dist/infra/lock/lock.module.js +16 -0
- package/dist/infra/lock/lock.service.d.ts +120 -0
- package/dist/infra/lock/lock.service.js +343 -0
- package/dist/infra/lock/shared-lease.d.ts +44 -0
- package/dist/infra/lock/shared-lease.js +121 -0
- package/dist/infra/lock/with-lock.decorator.d.ts +28 -0
- package/dist/infra/lock/with-lock.decorator.js +49 -0
- package/dist/infra/logging/logging.module.d.ts +16 -0
- package/dist/infra/logging/logging.module.js +34 -0
- package/dist/infra/queue/configured-processor.d.ts +18 -0
- package/dist/infra/queue/configured-processor.js +23 -0
- package/dist/infra/queue/job-failure.d.ts +18 -0
- package/dist/infra/queue/job-failure.js +26 -0
- package/dist/infra/queue/queue-shutdown.d.ts +27 -0
- package/dist/infra/queue/queue-shutdown.js +81 -0
- package/dist/infra/queue/queue.module.d.ts +16 -0
- package/dist/infra/queue/queue.module.js +61 -0
- package/dist/infra/queue/redis-connection.d.ts +7 -0
- package/dist/infra/queue/redis-connection.js +18 -0
- package/dist/infra/queue/retired-schedulers.d.ts +7 -0
- package/dist/infra/queue/retired-schedulers.js +9 -0
- package/dist/infra/queue/run-job.d.ts +16 -0
- package/dist/infra/queue/run-job.js +19 -0
- package/dist/infra/redis/redis.module.d.ts +24 -0
- package/dist/infra/redis/redis.module.js +87 -0
- package/dist/infra/schedule/cron-tick.d.ts +12 -0
- package/dist/infra/schedule/cron-tick.js +25 -0
- package/dist/infra/schedule/locked-cron.decorator.d.ts +27 -0
- package/dist/infra/schedule/locked-cron.decorator.js +53 -0
- package/dist/infra/schedule/locked-interval.d.ts +69 -0
- package/dist/infra/schedule/locked-interval.js +190 -0
- package/dist/infra/schedule/locked-tick.d.ts +90 -0
- package/dist/infra/schedule/locked-tick.js +137 -0
- package/dist/infra/schedule/schedule.module.d.ts +8 -0
- package/dist/infra/schedule/schedule.module.js +27 -0
- package/dist/infra/schedule/scheduled-runs.d.ts +69 -0
- package/dist/infra/schedule/scheduled-runs.js +163 -0
- package/dist/infra/swagger/swagger.d.ts +16 -0
- package/dist/infra/swagger/swagger.js +31 -0
- package/dist/infra/throttler/credential-throttler.d.ts +35 -0
- package/dist/infra/throttler/credential-throttler.js +77 -0
- package/dist/infra/throttler/named-throttlers.d.ts +31 -0
- package/dist/infra/throttler/named-throttlers.js +119 -0
- package/dist/infra/throttler/redis-throttler-storage.d.ts +38 -0
- package/dist/infra/throttler/redis-throttler-storage.js +130 -0
- package/dist/infra/throttler/throttler.guard.d.ts +23 -0
- package/dist/infra/throttler/throttler.guard.js +68 -0
- package/dist/infra/throttler/throttler.module.d.ts +15 -0
- package/dist/infra/throttler/throttler.module.js +53 -0
- package/dist/infra/tokens.d.ts +15 -0
- package/dist/infra/tokens.js +15 -0
- package/dist/infra/validation/create-zod-dto.d.ts +23 -0
- package/dist/infra/validation/create-zod-dto.js +35 -0
- package/dist/infra/validation/parse-with-zod.d.ts +7 -0
- package/dist/infra/validation/parse-with-zod.js +12 -0
- package/dist/infra/validation/validation.module.d.ts +3 -0
- package/dist/infra/validation/validation.module.js +16 -0
- package/dist/infra/validation/zod-params.d.ts +7 -0
- package/dist/infra/validation/zod-params.js +42 -0
- package/dist/infra/validation/zod-validation.pipe.d.ts +11 -0
- package/dist/infra/validation/zod-validation.pipe.js +31 -0
- package/dist/kernel.d.ts +9 -244
- package/dist/kernel.js +8 -1305
- package/dist/kernel.module.d.ts +17 -0
- package/dist/kernel.module.js +136 -0
- package/dist/lifecycle/kernel-lifecycle.d.ts +140 -0
- package/dist/lifecycle/kernel-lifecycle.js +451 -0
- package/dist/lifecycle/tokens.d.ts +3 -0
- package/dist/lifecycle/tokens.js +3 -0
- package/dist/log-context.d.ts +2 -0
- package/dist/log-context.js +4 -0
- package/dist/models/models.module.d.ts +3 -0
- package/dist/models/models.module.js +24 -0
- package/dist/models/prices.d.ts +8 -2
- package/dist/models/prices.js +65 -37
- package/dist/models/purposes.controller.d.ts +1 -1
- package/dist/models/purposes.controller.js +5 -6
- package/dist/models/purposes.d.ts +35 -13
- package/dist/models/purposes.js +101 -51
- package/dist/orgs/directory-sync.controller.d.ts +1 -1
- package/dist/orgs/directory-sync.controller.js +2 -2
- package/dist/orgs/directory-sync.d.ts +61 -31
- package/dist/orgs/directory-sync.js +212 -125
- package/dist/orgs/invitations.controller.d.ts +8 -8
- package/dist/orgs/invitations.controller.js +27 -26
- package/dist/orgs/invitations.service.d.ts +12 -9
- package/dist/orgs/invitations.service.js +130 -92
- package/dist/orgs/job-ids.d.ts +8 -0
- package/dist/orgs/job-ids.js +8 -0
- package/dist/orgs/members.service.d.ts +19 -12
- package/dist/orgs/members.service.js +161 -117
- package/dist/orgs/offboarding.d.ts +54 -57
- package/dist/orgs/offboarding.js +161 -71
- package/dist/orgs/org-lock.d.ts +28 -19
- package/dist/orgs/org-lock.js +81 -35
- package/dist/orgs/org.guard.d.ts +1 -1
- package/dist/orgs/org.guard.js +2 -2
- package/dist/orgs/orgs.controller.d.ts +13 -13
- package/dist/orgs/orgs.controller.js +29 -17
- package/dist/orgs/orgs.module.d.ts +6 -0
- package/dist/orgs/orgs.module.js +68 -0
- package/dist/orgs/orgs.service.d.ts +30 -19
- package/dist/orgs/orgs.service.js +139 -86
- package/dist/orgs/settings.controller.d.ts +1 -1
- package/dist/orgs/settings.controller.js +8 -6
- package/dist/orgs/settings.service.d.ts +14 -8
- package/dist/orgs/settings.service.js +75 -46
- package/dist/overrides.d.ts +56 -0
- package/dist/overrides.js +30 -0
- package/dist/roles/gateway-role.d.ts +43 -0
- package/dist/roles/gateway-role.js +98 -0
- package/dist/roles/gateway.module.d.ts +8 -0
- package/dist/roles/gateway.module.js +28 -0
- package/dist/roles/worker-role.d.ts +63 -0
- package/dist/roles/worker-role.js +144 -0
- package/dist/roles/worker.module.d.ts +14 -0
- package/dist/roles/worker.module.js +90 -0
- package/dist/runtime/abort.js +19 -2
- package/dist/runtime/checkpointer.d.ts +8 -3
- package/dist/runtime/checkpointer.js +87 -55
- package/dist/runtime/conversation-lock.d.ts +20 -11
- package/dist/runtime/conversation-lock.js +62 -72
- package/dist/runtime/hook-calls.d.ts +3 -3
- package/dist/runtime/hook-calls.js +1 -6
- package/dist/runtime/job-ids.d.ts +10 -0
- package/dist/runtime/job-ids.js +10 -0
- package/dist/runtime/langgraph-loop.js +1 -1
- package/dist/runtime/loop.d.ts +7 -0
- package/dist/runtime/loop.js +14 -0
- package/dist/runtime/maintenance-queue.d.ts +10 -0
- package/dist/runtime/maintenance-queue.js +10 -0
- package/dist/runtime/maintenance.d.ts +45 -74
- package/dist/runtime/maintenance.js +139 -137
- package/dist/runtime/model-call.d.ts +7 -4
- package/dist/runtime/model-call.js +24 -57
- package/dist/runtime/providers.d.ts +17 -6
- package/dist/runtime/providers.js +66 -25
- package/dist/runtime/quota.d.ts +17 -3
- package/dist/runtime/quota.js +27 -2
- package/dist/runtime/retired-schedulers.d.ts +7 -0
- package/dist/runtime/retired-schedulers.js +31 -0
- package/dist/runtime/run-control.d.ts +33 -0
- package/dist/runtime/run-control.js +77 -0
- package/dist/runtime/run-finish.d.ts +26 -17
- package/dist/runtime/run-finish.js +98 -51
- package/dist/runtime/run-jobs.d.ts +48 -0
- package/dist/runtime/run-jobs.js +95 -0
- package/dist/runtime/run-processors.d.ts +60 -0
- package/dist/runtime/run-processors.js +185 -0
- package/dist/runtime/run-queue.d.ts +32 -57
- package/dist/runtime/run-queue.js +291 -295
- package/dist/runtime/run-steps.d.ts +39 -0
- package/dist/runtime/run-steps.js +96 -0
- package/dist/runtime/run-worker.d.ts +121 -75
- package/dist/runtime/run-worker.js +340 -226
- package/dist/runtime/runtime.module.d.ts +10 -0
- package/dist/runtime/runtime.module.js +112 -0
- package/dist/runtime/step-log.d.ts +40 -0
- package/dist/runtime/step-log.js +94 -0
- package/dist/runtime/stream.controller.d.ts +5 -8
- package/dist/runtime/stream.controller.js +14 -12
- package/dist/runtime/stream.d.ts +24 -6
- package/dist/runtime/stream.js +78 -7
- package/dist/runtime/subagents/child.d.ts +3 -44
- package/dist/runtime/subagents/child.js +0 -79
- package/dist/runtime/subagents/definition.d.ts +4 -4
- package/dist/runtime/subagents/definition.js +2 -2
- package/dist/runtime/subagents/dispatch.d.ts +87 -6
- package/dist/runtime/subagents/dispatch.js +135 -140
- package/dist/runtime/subagents/limits.d.ts +9 -4
- package/dist/runtime/subagents/limits.js +4 -2
- package/dist/runtime/subagents/org-agents.d.ts +4 -4
- package/dist/runtime/subagents/org-agents.js +1 -1
- package/dist/runtime/subagents/progress.d.ts +2 -2
- package/dist/runtime/subagents/roster.d.ts +3 -3
- package/dist/runtime/subagents/roster.js +1 -1
- package/dist/runtime/subagents/skill-fork.d.ts +6 -7
- package/dist/runtime/subagents/skill-fork.js +16 -5
- package/dist/runtime/subagents/subagents.service.d.ts +40 -0
- package/dist/runtime/subagents/subagents.service.js +101 -0
- package/dist/runtime/usage-report.d.ts +94 -52
- package/dist/runtime/usage-report.js +200 -100
- package/dist/runtime/waits.d.ts +125 -57
- package/dist/runtime/waits.js +431 -208
- package/dist/sandbox/job-ids.d.ts +10 -0
- package/dist/sandbox/job-ids.js +10 -0
- package/dist/sandbox/jobs.d.ts +41 -0
- package/dist/sandbox/jobs.js +113 -0
- package/dist/sandbox/leases.d.ts +39 -31
- package/dist/sandbox/leases.js +117 -257
- package/dist/sandbox/providers.d.ts +19 -0
- package/dist/sandbox/providers.js +38 -0
- package/dist/sandbox/sandbox.module.d.ts +8 -0
- package/dist/sandbox/sandbox.module.js +30 -0
- package/dist/sandbox/sandbox.service.d.ts +24 -29
- package/dist/sandbox/sandbox.service.js +106 -75
- package/dist/skills/catalog.d.ts +33 -20
- package/dist/skills/catalog.js +96 -53
- package/dist/skills/changes.controller.d.ts +4 -4
- package/dist/skills/changes.controller.js +15 -9
- package/dist/skills/changes.service.d.ts +28 -18
- package/dist/skills/changes.service.js +421 -364
- package/dist/skills/invocable.controller.d.ts +1 -1
- package/dist/skills/invocable.controller.js +8 -5
- package/dist/skills/invoke.d.ts +16 -15
- package/dist/skills/invoke.js +48 -17
- package/dist/skills/skills.controller.d.ts +1 -1
- package/dist/skills/skills.controller.js +11 -6
- package/dist/skills/skills.module.d.ts +6 -0
- package/dist/skills/skills.module.js +30 -0
- package/dist/skills/skills.service.d.ts +47 -30
- package/dist/skills/skills.service.js +221 -158
- package/dist/storage/job-ids.d.ts +6 -0
- package/dist/storage/job-ids.js +6 -0
- package/dist/storage/purge.d.ts +22 -7
- package/dist/storage/purge.js +55 -3
- package/dist/storage/storage.module.d.ts +6 -0
- package/dist/storage/storage.module.js +23 -0
- package/dist/storage/storage.service.d.ts +18 -4
- package/dist/storage/storage.service.js +44 -3
- package/dist/tools/approvals.controller.d.ts +1 -1
- package/dist/tools/approvals.controller.js +12 -8
- package/dist/tools/approvals.service.d.ts +27 -25
- package/dist/tools/approvals.service.js +324 -258
- package/dist/tools/breaker.d.ts +2 -2
- package/dist/tools/breaker.js +21 -3
- package/dist/tools/builtins/ask-user.d.ts +2 -2
- package/dist/tools/builtins/ask-user.js +1 -1
- package/dist/tools/builtins/builtin-tools.d.ts +21 -0
- package/dist/tools/builtins/builtin-tools.js +80 -0
- package/dist/tools/builtins/read-tool-output.d.ts +2 -2
- package/dist/tools/builtins/read-tool-output.js +1 -1
- package/dist/tools/builtins/sandbox/bash.js +2 -2
- package/dist/tools/builtins/sandbox/common.d.ts +2 -1
- package/dist/tools/builtins/sandbox/deliver.js +2 -2
- package/dist/tools/builtins/sandbox/edit.js +1 -1
- package/dist/tools/builtins/sandbox/glob.js +2 -2
- package/dist/tools/builtins/sandbox/grep.js +2 -2
- package/dist/tools/builtins/sandbox/read.js +1 -1
- package/dist/tools/builtins/sandbox/write.js +1 -1
- package/dist/tools/builtins/skill-load.d.ts +3 -3
- package/dist/tools/builtins/skill-load.js +1 -1
- package/dist/tools/canonical-json.d.ts +6 -0
- package/dist/tools/canonical-json.js +16 -0
- package/dist/tools/connector-content.controller.d.ts +1 -1
- package/dist/tools/connector-content.controller.js +11 -6
- package/dist/tools/connector-content.d.ts +12 -15
- package/dist/tools/connector-content.js +53 -18
- package/dist/tools/connectors.controller.d.ts +1 -1
- package/dist/tools/connectors.controller.js +21 -10
- package/dist/tools/connectors.service.d.ts +31 -13
- package/dist/tools/connectors.service.js +434 -344
- package/dist/tools/credentials.d.ts +17 -20
- package/dist/tools/credentials.js +55 -34
- package/dist/tools/drift.d.ts +29 -41
- package/dist/tools/drift.js +111 -79
- package/dist/tools/info.d.ts +12 -9
- package/dist/tools/info.js +33 -7
- package/dist/tools/job-ids.d.ts +13 -0
- package/dist/tools/job-ids.js +15 -0
- package/dist/tools/jobs.d.ts +24 -0
- package/dist/tools/jobs.js +69 -0
- package/dist/tools/oauth/flow-paths.d.ts +16 -0
- package/dist/tools/oauth/flow-paths.js +38 -0
- package/dist/tools/oauth/flow.d.ts +30 -30
- package/dist/tools/oauth/flow.js +109 -81
- package/dist/tools/oauth/oauth.controller.d.ts +3 -3
- package/dist/tools/oauth/oauth.controller.js +12 -9
- package/dist/tools/oauth/tokens.d.ts +11 -3
- package/dist/tools/oauth/tokens.js +15 -14
- package/dist/tools/outputs.d.ts +13 -4
- package/dist/tools/outputs.js +47 -3
- package/dist/tools/pipeline.d.ts +62 -46
- package/dist/tools/pipeline.js +145 -64
- package/dist/tools/policy.d.ts +2 -2
- package/dist/tools/questions.controller.d.ts +1 -1
- package/dist/tools/questions.controller.js +8 -5
- package/dist/tools/questions.service.d.ts +25 -24
- package/dist/tools/questions.service.js +201 -142
- package/dist/tools/registry.d.ts +30 -20
- package/dist/tools/registry.js +73 -37
- package/dist/tools/specs.d.ts +5 -4
- package/dist/tools/specs.js +3 -1
- package/dist/tools/tools.module.d.ts +10 -0
- package/dist/tools/tools.module.js +91 -0
- package/dist/ui/call-extension.d.ts +16 -0
- package/dist/ui/call-extension.js +38 -0
- package/dist/ui/embed-token.d.ts +9 -5
- package/dist/ui/embed-token.js +34 -6
- package/dist/ui/ui-stream.d.ts +22 -17
- package/dist/ui/ui-stream.js +72 -12
- package/dist/ui/ui.module.d.ts +7 -0
- package/dist/ui/ui.module.js +28 -0
- package/dist/ui/views.controller.d.ts +14 -12
- package/dist/ui/views.controller.js +32 -25
- package/dist/ui/views.d.ts +9 -57
- package/dist/ui/views.js +43 -45
- package/package.json +9 -2
- package/dist/http/health.controller.d.ts +0 -26
- package/dist/http/health.controller.js +0 -79
- package/dist/http/tokens.d.ts +0 -131
- package/dist/http/tokens.js +0 -131
- package/dist/http/zod.pipe.d.ts +0 -8
- package/dist/http/zod.pipe.js +0 -14
- package/dist/identity/rate-limit.d.ts +0 -55
- package/dist/identity/rate-limit.js +0 -121
- package/dist/sandbox/lifecycle.d.ts +0 -21
- package/dist/sandbox/lifecycle.js +0 -68
- /package/dist/http/{gateway.module.d.ts → gateway-routes.d.ts} +0 -0
- /package/dist/http/{gateway.module.js → gateway-routes.js} +0 -0
|
@@ -1,7 +1,26 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
8
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
9
|
+
};
|
|
1
10
|
import { randomUUID } from "node:crypto";
|
|
2
11
|
import { IMAGE_MEDIA_TYPES, MEDIA_LIMITS, } from "@capybara-hq/plugin-sdk";
|
|
12
|
+
import { Inject, Injectable } from "@nestjs/common";
|
|
3
13
|
import { sql } from "kysely";
|
|
4
14
|
import { ApiError } from "../errors.js";
|
|
15
|
+
import { KernelConfigService } from "../infra/config/kernel-config.service.js";
|
|
16
|
+
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
17
|
+
import { TransactionHost } from "../infra/database/transaction-host.js";
|
|
18
|
+
import { Transactional } from "../infra/database/transactional.decorator.js";
|
|
19
|
+
import { LockService } from "../infra/lock/lock.service.js";
|
|
20
|
+
import { LockedCron } from "../infra/schedule/locked-cron.decorator.js";
|
|
21
|
+
import { KERNEL_LOGGER } from "../infra/tokens.js";
|
|
22
|
+
import { StorageService } from "../storage/storage.service.js";
|
|
23
|
+
import { ConversationAccess } from "./access.js";
|
|
5
24
|
/** 预签名上传的有效期(秒)。尽量短:表单在有效期内可被再次使用(内容替换由 etag 核对兜底)。 */
|
|
6
25
|
export const ATTACHMENT_UPLOAD_TTL_SECONDS = 300;
|
|
7
26
|
/** 下载跳转的预签名有效期(秒);不短于 {@link ATTACHMENT_DOWNLOAD_CACHE_SECONDS}(浏览器缓存的跳转仍可用)。 */
|
|
@@ -26,10 +45,8 @@ export const SKILL_PACKAGE_TTL_HOURS = 1;
|
|
|
26
45
|
* 并发处理同一上传也不会互相覆盖出不同内容。版本行记下这个前缀(`skill_versions.object_prefix`)。
|
|
27
46
|
*/
|
|
28
47
|
export const skillFilesPrefix = (uploadId) => `skills/${uploadId}/`;
|
|
29
|
-
/**
|
|
48
|
+
/** 周期任务:每小时清理过期未绑定的附件(`@LockedCron`)。 */
|
|
30
49
|
export const ATTACHMENT_CLEANUP_JOB = "attachment-cleanup";
|
|
31
|
-
export const ATTACHMENT_CLEANUP_SCHEDULER_ID = "attachment-cleanup-hourly";
|
|
32
|
-
export const ATTACHMENT_CLEANUP_EVERY_MS = 3_600_000;
|
|
33
50
|
/** 每批认领的行数。 */
|
|
34
51
|
const CLEANUP_BATCH = 100;
|
|
35
52
|
/** finalize 时读取开头多少字节核对文件签名。 */
|
|
@@ -77,26 +94,38 @@ async function readAll(body) {
|
|
|
77
94
|
* 字节只在对象存储(`kernel/<orgId>/attachments/<id>`),日志里只有引用;构建模型请求时经 {@link fetchMedia} 取字节。
|
|
78
95
|
* 无进程内状态,可多副本共用。
|
|
79
96
|
*/
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
97
|
+
let AttachmentsService = class AttachmentsService {
|
|
98
|
+
db;
|
|
99
|
+
storage;
|
|
100
|
+
config;
|
|
101
|
+
access;
|
|
102
|
+
log;
|
|
103
|
+
txHost;
|
|
104
|
+
constructor(db, storage, config,
|
|
105
|
+
/** viewer 能否访问该会话(与会话流相同的规则)。 */
|
|
106
|
+
access, log, txHost) {
|
|
107
|
+
this.db = db;
|
|
108
|
+
this.storage = storage;
|
|
109
|
+
this.config = config;
|
|
110
|
+
this.access = access;
|
|
111
|
+
this.log = log;
|
|
112
|
+
this.txHost = txHost;
|
|
84
113
|
}
|
|
85
114
|
/** 单个附件的大小上限:配置的 `maxBytes`,图片再受 `MEDIA_LIMITS.imageBytes` 限制。 */
|
|
86
115
|
limitFor(contentType) {
|
|
87
|
-
const { maxBytes } = this.
|
|
116
|
+
const { maxBytes } = this.config.get().attachments;
|
|
88
117
|
return Math.min(maxBytes, isImage(contentType) ? MEDIA_LIMITS.imageBytes : MEDIA_LIMITS.documentBytes);
|
|
89
118
|
}
|
|
90
119
|
/** 当前配置下的上限(不需要对象存储)。 */
|
|
91
120
|
limits() {
|
|
92
|
-
const cfg = this.
|
|
121
|
+
const cfg = this.config.get().attachments;
|
|
93
122
|
return {
|
|
94
123
|
types: [...cfg.allowedTypes],
|
|
95
124
|
maxBytes: Math.min(cfg.maxBytes, MEDIA_LIMITS.documentBytes),
|
|
96
125
|
imageMaxBytes: Math.min(cfg.maxBytes, MEDIA_LIMITS.imageBytes),
|
|
97
126
|
maxPerMessage: cfg.maxPerMessage,
|
|
98
127
|
requestMediaBytes: cfg.requestMediaBytes,
|
|
99
|
-
available: this.
|
|
128
|
+
available: this.storage.available,
|
|
100
129
|
};
|
|
101
130
|
}
|
|
102
131
|
/**
|
|
@@ -106,8 +135,8 @@ export class AttachmentsService {
|
|
|
106
135
|
* (软上限:并发登记可能略超);没有对象存储 → `storage.unavailable`。
|
|
107
136
|
*/
|
|
108
137
|
async create(orgId, accountId, input, purpose = "chat") {
|
|
109
|
-
this.
|
|
110
|
-
const cfg = this.
|
|
138
|
+
this.storage.assertAvailable();
|
|
139
|
+
const cfg = this.config.get().attachments;
|
|
111
140
|
const contentType = normalizeContentType(input.contentType);
|
|
112
141
|
const skill = purpose === "skill-package";
|
|
113
142
|
if (skill
|
|
@@ -119,7 +148,7 @@ export class AttachmentsService {
|
|
|
119
148
|
if (input.size > limit) {
|
|
120
149
|
throw new ApiError("attachment.too_large", `Attachment is ${input.size} bytes, over the limit of ${limit} bytes`);
|
|
121
150
|
}
|
|
122
|
-
const pending = await this.
|
|
151
|
+
const pending = await this.db
|
|
123
152
|
.selectFrom("attachments")
|
|
124
153
|
.select((eb) => eb.fn.countAll().as("n"))
|
|
125
154
|
.where("org_id", "=", orgId)
|
|
@@ -134,12 +163,12 @@ export class AttachmentsService {
|
|
|
134
163
|
const id = randomUUID();
|
|
135
164
|
const key = objectKey(id, purpose);
|
|
136
165
|
const ttlHours = skill ? SKILL_PACKAGE_TTL_HOURS : cfg.unboundTtlHours;
|
|
137
|
-
const upload = await this.
|
|
166
|
+
const upload = await this.storage.kernel(orgId).presignPut(key, {
|
|
138
167
|
contentType,
|
|
139
168
|
maxSize: input.size,
|
|
140
169
|
ttlSeconds: ATTACHMENT_UPLOAD_TTL_SECONDS,
|
|
141
170
|
});
|
|
142
|
-
await this.
|
|
171
|
+
await this.db
|
|
143
172
|
.insertInto("attachments")
|
|
144
173
|
.values({
|
|
145
174
|
id,
|
|
@@ -167,8 +196,8 @@ export class AttachmentsService {
|
|
|
167
196
|
* - 存储记录的类型或文件开头的签名与声明不符 → 删除对象,`attachment.type_not_allowed`。
|
|
168
197
|
*/
|
|
169
198
|
async finalize(orgId, accountId, id) {
|
|
170
|
-
this.
|
|
171
|
-
const row = await this.
|
|
199
|
+
this.storage.assertAvailable();
|
|
200
|
+
const row = await this.db
|
|
172
201
|
.selectFrom("attachments")
|
|
173
202
|
.select(["id", "name", "content_type", "size", "object_key", "status"])
|
|
174
203
|
.where("id", "=", id)
|
|
@@ -186,7 +215,7 @@ export class AttachmentsService {
|
|
|
186
215
|
};
|
|
187
216
|
if (row.status === "ready")
|
|
188
217
|
return view;
|
|
189
|
-
const store = this.
|
|
218
|
+
const store = this.storage.kernel(orgId);
|
|
190
219
|
const head = await store.head(row.object_key);
|
|
191
220
|
if (!head) {
|
|
192
221
|
throw new ApiError("attachment.not_ready", "The file has not been uploaded yet");
|
|
@@ -211,7 +240,7 @@ export class AttachmentsService {
|
|
|
211
240
|
if (!sniffMatches(view.contentType, data.subarray(0, SNIFF_BYTES))) {
|
|
212
241
|
await reject(new ApiError("attachment.type_not_allowed", `Uploaded file content is not ${view.contentType}`));
|
|
213
242
|
}
|
|
214
|
-
await this.
|
|
243
|
+
await this.db
|
|
215
244
|
.updateTable("attachments")
|
|
216
245
|
.set({ status: "ready", etag: got?.head.etag ?? head.etag ?? null, pages })
|
|
217
246
|
.where("id", "=", id)
|
|
@@ -225,8 +254,8 @@ export class AttachmentsService {
|
|
|
225
254
|
* (即使存储里的类型被改成 text/html 也不会在页面里渲染);响应类型按 finalize 核对过的类型返回。
|
|
226
255
|
*/
|
|
227
256
|
async downloadUrl(orgId, accountId, id) {
|
|
228
|
-
this.
|
|
229
|
-
const row = await this.
|
|
257
|
+
this.storage.assertAvailable();
|
|
258
|
+
const row = await this.db
|
|
230
259
|
.selectFrom("attachments")
|
|
231
260
|
.select(["account_id", "conversation_id", "name", "content_type", "object_key", "etag"])
|
|
232
261
|
.where("id", "=", id)
|
|
@@ -238,10 +267,10 @@ export class AttachmentsService {
|
|
|
238
267
|
throw notFound();
|
|
239
268
|
const allowed = row.conversation_id === null
|
|
240
269
|
? row.account_id === accountId
|
|
241
|
-
: await this.
|
|
270
|
+
: await this.access.isAccessible(orgId, row.conversation_id, accountId);
|
|
242
271
|
if (!allowed)
|
|
243
272
|
throw notFound();
|
|
244
|
-
const store = this.
|
|
273
|
+
const store = this.storage.kernel(orgId);
|
|
245
274
|
const head = await store.head(row.object_key);
|
|
246
275
|
if (!head || !this.sameContent(row.etag, head.etag, { orgId, attachmentId: id })) {
|
|
247
276
|
throw notFound();
|
|
@@ -258,7 +287,7 @@ export class AttachmentsService {
|
|
|
258
287
|
* 绑定在该会话、已 ready 的附件(id 与原始文件名),按上传时间、id 排序(沙箱同步按这个顺序分配文件名)。
|
|
259
288
|
*/
|
|
260
289
|
async listForConversation(orgId, conversationId) {
|
|
261
|
-
return this.
|
|
290
|
+
return this.db
|
|
262
291
|
.selectFrom("attachments")
|
|
263
292
|
.select(["id", "name"])
|
|
264
293
|
.where("org_id", "=", orgId)
|
|
@@ -274,7 +303,7 @@ export class AttachmentsService {
|
|
|
274
303
|
* 大小或 etag 与 finalize 时不符 → null。其余错误(存储不可用等)照常抛出。调用方负责读完或取消 `body`。
|
|
275
304
|
*/
|
|
276
305
|
async openForConversation(orgId, conversationId, attachmentId) {
|
|
277
|
-
const row = await this.
|
|
306
|
+
const row = await this.db
|
|
278
307
|
.selectFrom("attachments")
|
|
279
308
|
.select(["name", "content_type", "object_key", "size", "etag"])
|
|
280
309
|
.where("id", "=", attachmentId)
|
|
@@ -285,7 +314,7 @@ export class AttachmentsService {
|
|
|
285
314
|
.executeTakeFirst();
|
|
286
315
|
if (!row)
|
|
287
316
|
return null;
|
|
288
|
-
const got = await this.
|
|
317
|
+
const got = await this.storage.kernel(orgId).get(row.object_key);
|
|
289
318
|
if (!got)
|
|
290
319
|
return null;
|
|
291
320
|
const size = Number(row.size);
|
|
@@ -304,9 +333,9 @@ export class AttachmentsService {
|
|
|
304
333
|
* 后两种的 details 为 `[{ path: "files", message, attachmentId }]`,网页据此标出对应条目。
|
|
305
334
|
* 已绑定到本会话的(重试)照常返回块。
|
|
306
335
|
*/
|
|
307
|
-
async bindForMessage(
|
|
336
|
+
async bindForMessage(orgId, conversationId, accountId, ids) {
|
|
308
337
|
const unique = [...new Set(ids)];
|
|
309
|
-
const max = this.
|
|
338
|
+
const max = this.config.get().attachments.maxPerMessage;
|
|
310
339
|
if (ids.length > max) {
|
|
311
340
|
throw new ApiError("validation_failed", "Request validation failed", [
|
|
312
341
|
{ path: "files", message: `At most ${max} files per message` },
|
|
@@ -319,6 +348,7 @@ export class AttachmentsService {
|
|
|
319
348
|
}
|
|
320
349
|
if (unique.length === 0)
|
|
321
350
|
return [];
|
|
351
|
+
const trx = this.db.db;
|
|
322
352
|
const rows = await trx
|
|
323
353
|
.selectFrom("attachments")
|
|
324
354
|
.select([
|
|
@@ -383,7 +413,7 @@ export class AttachmentsService {
|
|
|
383
413
|
sameContent(recorded, current, where) {
|
|
384
414
|
if (recorded === null || recorded === (current ?? null))
|
|
385
415
|
return true;
|
|
386
|
-
this.
|
|
416
|
+
this.log.warn("attachment content changed after finalize; treating it as unavailable", where);
|
|
387
417
|
return false;
|
|
388
418
|
}
|
|
389
419
|
/**
|
|
@@ -393,7 +423,7 @@ export class AttachmentsService {
|
|
|
393
423
|
async mediaInfo(orgId, conversationId, ids) {
|
|
394
424
|
if (ids.length === 0)
|
|
395
425
|
return new Map();
|
|
396
|
-
const rows = await this.
|
|
426
|
+
const rows = await this.db
|
|
397
427
|
.selectFrom("attachments")
|
|
398
428
|
.select(["id", "size", "pages", "etag"])
|
|
399
429
|
.where("org_id", "=", orgId)
|
|
@@ -413,7 +443,7 @@ export class AttachmentsService {
|
|
|
413
443
|
const out = new Map();
|
|
414
444
|
if (ids.length === 0)
|
|
415
445
|
return out;
|
|
416
|
-
const rows = await this.
|
|
446
|
+
const rows = await this.db
|
|
417
447
|
.selectFrom("attachments")
|
|
418
448
|
.select(["id", "content_type", "object_key", "size", "etag"])
|
|
419
449
|
.where("org_id", "=", orgId)
|
|
@@ -423,7 +453,7 @@ export class AttachmentsService {
|
|
|
423
453
|
.where("id", "in", [...ids])
|
|
424
454
|
.execute();
|
|
425
455
|
const byId = new Map(rows.map((r) => [r.id, r]));
|
|
426
|
-
const store = this.
|
|
456
|
+
const store = this.storage.kernel(orgId);
|
|
427
457
|
await Promise.all(ids.map(async (id) => {
|
|
428
458
|
const r = byId.get(id);
|
|
429
459
|
if (!r)
|
|
@@ -436,7 +466,7 @@ export class AttachmentsService {
|
|
|
436
466
|
const where = { orgId, conversationId, attachmentId: id };
|
|
437
467
|
if (got.head.size !== Number(r.size) || !this.sameContent(r.etag, got.head.etag, where)) {
|
|
438
468
|
if (got.head.size !== Number(r.size)) {
|
|
439
|
-
this.
|
|
469
|
+
this.log.warn("attachment size changed after finalize; treating it as unavailable", where);
|
|
440
470
|
}
|
|
441
471
|
await got.body.cancel().catch(() => { });
|
|
442
472
|
return out.set(id, null);
|
|
@@ -455,8 +485,8 @@ export class AttachmentsService {
|
|
|
455
485
|
* 对象已不在或内容与 finalize 时不符 → `attachment.not_found`。
|
|
456
486
|
*/
|
|
457
487
|
async readSkillPackage(orgId, accountId, id) {
|
|
458
|
-
this.
|
|
459
|
-
const row = await this.
|
|
488
|
+
this.storage.assertAvailable();
|
|
489
|
+
const row = await this.db
|
|
460
490
|
.selectFrom("attachments")
|
|
461
491
|
.select(["status", "purpose", sql `expires_at <= now()`.as("expired")])
|
|
462
492
|
.where("id", "=", id)
|
|
@@ -468,7 +498,7 @@ export class AttachmentsService {
|
|
|
468
498
|
}
|
|
469
499
|
if (row.status === "pending")
|
|
470
500
|
await this.finalize(orgId, accountId, id);
|
|
471
|
-
const live = await this.
|
|
501
|
+
const live = await this.db
|
|
472
502
|
.updateTable("attachments")
|
|
473
503
|
.set({ expires_at: sql `now() + make_interval(hours => ${SKILL_PACKAGE_TTL_HOURS})` })
|
|
474
504
|
.where("id", "=", id)
|
|
@@ -478,7 +508,7 @@ export class AttachmentsService {
|
|
|
478
508
|
.executeTakeFirst();
|
|
479
509
|
if (!live)
|
|
480
510
|
throw notFound();
|
|
481
|
-
const got = await this.
|
|
511
|
+
const got = await this.storage.kernel(orgId).get(live.object_key);
|
|
482
512
|
if (!got)
|
|
483
513
|
throw notFound();
|
|
484
514
|
if (got.head.size !== Number(live.size) ||
|
|
@@ -492,7 +522,8 @@ export class AttachmentsService {
|
|
|
492
522
|
* 在调用方事务里把技能包上传标记为已用掉(行锁;之后由清理任务删 zip,解出的文件因被版本引用而保留)。
|
|
493
523
|
* 不是该账号的 ready 技能包(如已被并发的请求用掉)→ `attachment.not_found`。
|
|
494
524
|
*/
|
|
495
|
-
async consumeSkillPackage(
|
|
525
|
+
async consumeSkillPackage(orgId, accountId, id) {
|
|
526
|
+
const trx = this.db.db;
|
|
496
527
|
const row = await trx
|
|
497
528
|
.selectFrom("attachments")
|
|
498
529
|
.select("status")
|
|
@@ -518,15 +549,15 @@ export class AttachmentsService {
|
|
|
518
549
|
* 没有对象存储时什么也不做。返回删除的附件数。
|
|
519
550
|
*/
|
|
520
551
|
async deleteExpired() {
|
|
521
|
-
if (!this.
|
|
552
|
+
if (!this.storage.available)
|
|
522
553
|
return 0;
|
|
523
554
|
let deleted = 0;
|
|
524
555
|
const failed = [];
|
|
525
556
|
for (;;) {
|
|
526
|
-
const claimed = await this.
|
|
557
|
+
const claimed = await this.db
|
|
527
558
|
.updateTable("attachments")
|
|
528
559
|
.set({ status: "deleting" })
|
|
529
|
-
.where("id", "in", this.
|
|
560
|
+
.where("id", "in", this.db
|
|
530
561
|
.selectFrom("attachments")
|
|
531
562
|
.select("id")
|
|
532
563
|
.where("conversation_id", "is", null)
|
|
@@ -542,12 +573,12 @@ export class AttachmentsService {
|
|
|
542
573
|
return deleted;
|
|
543
574
|
for (const r of claimed) {
|
|
544
575
|
try {
|
|
545
|
-
const store = this.
|
|
576
|
+
const store = this.storage.kernel(r.org_id);
|
|
546
577
|
await store.delete(r.object_key);
|
|
547
578
|
if (r.purpose === "skill-package") {
|
|
548
579
|
// 解出的文件没被任何版本引用(处理中途失败、或从未用掉)才删
|
|
549
580
|
const prefix = skillFilesPrefix(r.id);
|
|
550
|
-
const used = await this.
|
|
581
|
+
const used = await this.db
|
|
551
582
|
.selectFrom("skill_versions")
|
|
552
583
|
.select("skill_id")
|
|
553
584
|
.where("object_prefix", "=", prefix)
|
|
@@ -555,7 +586,7 @@ export class AttachmentsService {
|
|
|
555
586
|
if (!used)
|
|
556
587
|
await store.deletePrefix(prefix);
|
|
557
588
|
}
|
|
558
|
-
await this.
|
|
589
|
+
await this.db
|
|
559
590
|
.deleteFrom("attachments")
|
|
560
591
|
.where("id", "=", r.id)
|
|
561
592
|
.where("conversation_id", "is", null)
|
|
@@ -564,7 +595,7 @@ export class AttachmentsService {
|
|
|
564
595
|
}
|
|
565
596
|
catch (err) {
|
|
566
597
|
failed.push(r.id);
|
|
567
|
-
this.
|
|
598
|
+
this.log.warn("cannot delete expired attachment; will retry", {
|
|
568
599
|
orgId: r.org_id,
|
|
569
600
|
attachmentId: r.id,
|
|
570
601
|
err,
|
|
@@ -575,4 +606,46 @@ export class AttachmentsService {
|
|
|
575
606
|
return deleted;
|
|
576
607
|
}
|
|
577
608
|
}
|
|
578
|
-
}
|
|
609
|
+
};
|
|
610
|
+
__decorate([
|
|
611
|
+
Transactional({ propagation: "mandatory" })
|
|
612
|
+
], AttachmentsService.prototype, "bindForMessage", null);
|
|
613
|
+
__decorate([
|
|
614
|
+
Transactional({ propagation: "mandatory" })
|
|
615
|
+
], AttachmentsService.prototype, "consumeSkillPackage", null);
|
|
616
|
+
AttachmentsService = __decorate([
|
|
617
|
+
Injectable(),
|
|
618
|
+
__param(0, Inject(KernelDb)),
|
|
619
|
+
__param(1, Inject(StorageService)),
|
|
620
|
+
__param(2, Inject(KernelConfigService)),
|
|
621
|
+
__param(3, Inject(ConversationAccess)),
|
|
622
|
+
__param(4, Inject(KERNEL_LOGGER)),
|
|
623
|
+
__param(5, Inject(TransactionHost))
|
|
624
|
+
], AttachmentsService);
|
|
625
|
+
export { AttachmentsService };
|
|
626
|
+
/** The hourly cleanup of expired unbound attachments, once per tick across replicas. */
|
|
627
|
+
let AttachmentCleanupJob = class AttachmentCleanupJob {
|
|
628
|
+
attachments;
|
|
629
|
+
lockService;
|
|
630
|
+
log;
|
|
631
|
+
constructor(attachments, lockService, log) {
|
|
632
|
+
this.attachments = attachments;
|
|
633
|
+
this.lockService = lockService;
|
|
634
|
+
this.log = log;
|
|
635
|
+
}
|
|
636
|
+
async run() {
|
|
637
|
+
const n = await this.attachments.deleteExpired();
|
|
638
|
+
if (n > 0)
|
|
639
|
+
this.log.info("expired attachments deleted", { count: n });
|
|
640
|
+
}
|
|
641
|
+
};
|
|
642
|
+
__decorate([
|
|
643
|
+
LockedCron("0 * * * *", { name: ATTACHMENT_CLEANUP_JOB })
|
|
644
|
+
], AttachmentCleanupJob.prototype, "run", null);
|
|
645
|
+
AttachmentCleanupJob = __decorate([
|
|
646
|
+
Injectable(),
|
|
647
|
+
__param(0, Inject(AttachmentsService)),
|
|
648
|
+
__param(1, Inject(LockService)),
|
|
649
|
+
__param(2, Inject(KERNEL_LOGGER))
|
|
650
|
+
], AttachmentCleanupJob);
|
|
651
|
+
export { AttachmentCleanupJob };
|
|
@@ -2,14 +2,15 @@ import type { FastifyReply } from "fastify";
|
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
import { type Principal } from "../identity/principal.js";
|
|
4
4
|
import { type OrgContext } from "../orgs/org.guard.js";
|
|
5
|
-
import {
|
|
6
|
-
import { type ArtifactPreview,
|
|
7
|
-
import { type ConversationGroup,
|
|
5
|
+
import { ConversationToolInfo, type ToolInfo } from "../tools/info.js";
|
|
6
|
+
import { type ArtifactPreview, ConversationArtifacts } from "./artifacts.js";
|
|
7
|
+
import { type ConversationGroup, ConversationsService, type ConversationView, type SubagentView, type UsageTotals } from "./conversations.service.js";
|
|
8
8
|
import type { ConversationEvent } from "./events.js";
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import type {
|
|
12
|
-
import
|
|
9
|
+
import { ConversationFiles, type FileOutput } from "./files.js";
|
|
10
|
+
import { ConversationOutputs, type OutputPage } from "./outputs-read.js";
|
|
11
|
+
import type { QueueItem, QueuePauseReason } from "./queue.js";
|
|
12
|
+
import { ConversationQueue } from "./queue.service.js";
|
|
13
|
+
import { ConversationSandboxStatus, type SandboxStatusView } from "./sandbox-status.js";
|
|
13
14
|
declare const ListQuery: z.ZodObject<{
|
|
14
15
|
after: z.ZodOptional<z.ZodString>;
|
|
15
16
|
limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
@@ -7,20 +7,22 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
8
8
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
9
9
|
};
|
|
10
|
-
import {
|
|
10
|
+
import { Controller, Delete, Get, Header, HttpCode, Inject, Param, Patch, Post, Res, } from "@nestjs/common";
|
|
11
11
|
import { z } from "zod";
|
|
12
12
|
import { ModelRef } from "../agents/definition.js";
|
|
13
|
-
import { CONVERSATION_ARTIFACTS, CONVERSATION_FILES, CONVERSATION_OUTPUTS, CONVERSATION_QUEUE, CONVERSATION_SANDBOX, CONVERSATION_TOOLS, CONVERSATIONS, } from "../http/tokens.js";
|
|
14
|
-
import { ZodPipe } from "../http/zod.pipe.js";
|
|
15
13
|
import { CurrentPrincipal, requireUser } from "../identity/principal.js";
|
|
14
|
+
import { createZodDto } from "../infra/validation/create-zod-dto.js";
|
|
15
|
+
import { ZBody, ZQuery } from "../infra/validation/zod-params.js";
|
|
16
16
|
import { CurrentOrg, OrgAction } from "../orgs/org.guard.js";
|
|
17
17
|
import { CONTROL_OR_HIDDEN_RE } from "../text.js";
|
|
18
18
|
import { MAX_ATTACHMENTS } from "../tools/connector-content.js";
|
|
19
|
-
import { TOOL_INFO_KEY_MAX, TOOL_INFO_MAX_KEYS, } from "../tools/info.js";
|
|
20
|
-
import { ARTIFACT_DOWNLOAD_CACHE_SECONDS, } from "./artifacts.js";
|
|
21
|
-
import { CONVERSATION_TITLE_MAX_CHARS, } from "./conversations.service.js";
|
|
22
|
-
import { FILE_CONTENT_MAX_BYTES, FILES_PAGE_MAX, } from "./files.js";
|
|
23
|
-
import {
|
|
19
|
+
import { ConversationToolInfo, TOOL_INFO_KEY_MAX, TOOL_INFO_MAX_KEYS, } from "../tools/info.js";
|
|
20
|
+
import { ARTIFACT_DOWNLOAD_CACHE_SECONDS, ConversationArtifacts, } from "./artifacts.js";
|
|
21
|
+
import { CONVERSATION_TITLE_MAX_CHARS, ConversationsService, } from "./conversations.service.js";
|
|
22
|
+
import { ConversationFiles, FILE_CONTENT_MAX_BYTES, FILES_PAGE_MAX, } from "./files.js";
|
|
23
|
+
import { ConversationOutputs, OUTPUT_PAGE_MAX_CHARS } from "./outputs-read.js";
|
|
24
|
+
import { ConversationQueue } from "./queue.service.js";
|
|
25
|
+
import { ConversationSandboxStatus } from "./sandbox-status.js";
|
|
24
26
|
const ListQuery = z.object({
|
|
25
27
|
after: z.string().min(1).max(100).optional(),
|
|
26
28
|
limit: z.coerce.number().int().min(1).max(200).default(50),
|
|
@@ -152,6 +154,34 @@ const RenameBody = z
|
|
|
152
154
|
.refine((t) => !CONTROL_OR_HIDDEN_RE.test(t), "title must not contain control or format characters"),
|
|
153
155
|
})
|
|
154
156
|
.strict();
|
|
157
|
+
class ConversationCreateBodyDto extends createZodDto(CreateBody, "ConversationCreateBody") {
|
|
158
|
+
}
|
|
159
|
+
class ConversationRenameBodyDto extends createZodDto(RenameBody, "ConversationRenameBody") {
|
|
160
|
+
}
|
|
161
|
+
class ConversationListQueryDto extends createZodDto(ListQuery, "ConversationListQuery") {
|
|
162
|
+
}
|
|
163
|
+
class ConversationGroupsQueryDto extends createZodDto(GroupsQuery, "ConversationGroupsQuery") {
|
|
164
|
+
}
|
|
165
|
+
class ConversationEventsQueryDto extends createZodDto(EventsQuery, "ConversationEventsQuery") {
|
|
166
|
+
}
|
|
167
|
+
class ConversationSubagentsQueryDto extends createZodDto(SubagentsQuery, "ConversationSubagentsQuery") {
|
|
168
|
+
}
|
|
169
|
+
class ConversationOutputQueryDto extends createZodDto(OutputQuery, "ConversationOutputQuery") {
|
|
170
|
+
}
|
|
171
|
+
class ConversationDownloadQueryDto extends createZodDto(DownloadQuery, "ConversationDownloadQuery") {
|
|
172
|
+
}
|
|
173
|
+
class ConversationFilesQueryDto extends createZodDto(FilesQuery, "ConversationFilesQuery") {
|
|
174
|
+
}
|
|
175
|
+
class ConversationFileContentQueryDto extends createZodDto(FileContentQuery, "ConversationFileContentQuery") {
|
|
176
|
+
}
|
|
177
|
+
class ConversationToolsQueryDto extends createZodDto(ToolsQuery, "ConversationToolsQuery") {
|
|
178
|
+
}
|
|
179
|
+
class ConversationMessageBodyDto extends createZodDto(MessageBody, "ConversationMessageBody") {
|
|
180
|
+
}
|
|
181
|
+
class ConversationQueueBodyDto extends createZodDto(QueueBody, "ConversationQueueBody") {
|
|
182
|
+
}
|
|
183
|
+
class ConversationQueueEditBodyDto extends createZodDto(QueueEditBody, "ConversationQueueEditBody") {
|
|
184
|
+
}
|
|
155
185
|
/**
|
|
156
186
|
* 会话(`/api/v1/orgs/:orgId/conversations`):`agents.use`(访客以上),只接受人类用户;
|
|
157
187
|
* 服务令牌 → 403 `forbidden`。只有会话所有者可见,其他人一律 `conversation.not_found`。
|
|
@@ -404,7 +434,7 @@ __decorate([
|
|
|
404
434
|
OrgAction("agents.use"),
|
|
405
435
|
__param(0, CurrentPrincipal()),
|
|
406
436
|
__param(1, CurrentOrg()),
|
|
407
|
-
__param(2,
|
|
437
|
+
__param(2, ZBody(ConversationCreateBodyDto)),
|
|
408
438
|
__param(3, Res({ passthrough: true }))
|
|
409
439
|
], ConversationsController.prototype, "create", null);
|
|
410
440
|
__decorate([
|
|
@@ -413,21 +443,21 @@ __decorate([
|
|
|
413
443
|
__param(0, CurrentPrincipal()),
|
|
414
444
|
__param(1, CurrentOrg()),
|
|
415
445
|
__param(2, Param("id")),
|
|
416
|
-
__param(3,
|
|
446
|
+
__param(3, ZBody(ConversationRenameBodyDto))
|
|
417
447
|
], ConversationsController.prototype, "rename", null);
|
|
418
448
|
__decorate([
|
|
419
449
|
Get(),
|
|
420
450
|
OrgAction("agents.use"),
|
|
421
451
|
__param(0, CurrentPrincipal()),
|
|
422
452
|
__param(1, CurrentOrg()),
|
|
423
|
-
__param(2,
|
|
453
|
+
__param(2, ZQuery(ConversationListQueryDto))
|
|
424
454
|
], ConversationsController.prototype, "list", null);
|
|
425
455
|
__decorate([
|
|
426
456
|
Get("groups"),
|
|
427
457
|
OrgAction("agents.use"),
|
|
428
458
|
__param(0, CurrentPrincipal()),
|
|
429
459
|
__param(1, CurrentOrg()),
|
|
430
|
-
__param(2,
|
|
460
|
+
__param(2, ZQuery(ConversationGroupsQueryDto))
|
|
431
461
|
], ConversationsController.prototype, "groups", null);
|
|
432
462
|
__decorate([
|
|
433
463
|
Get(":id"),
|
|
@@ -442,7 +472,7 @@ __decorate([
|
|
|
442
472
|
__param(0, CurrentPrincipal()),
|
|
443
473
|
__param(1, CurrentOrg()),
|
|
444
474
|
__param(2, Param("id")),
|
|
445
|
-
__param(3,
|
|
475
|
+
__param(3, ZQuery(ConversationEventsQueryDto))
|
|
446
476
|
], ConversationsController.prototype, "events", null);
|
|
447
477
|
__decorate([
|
|
448
478
|
Get(":id/subagents"),
|
|
@@ -451,7 +481,7 @@ __decorate([
|
|
|
451
481
|
__param(0, CurrentPrincipal()),
|
|
452
482
|
__param(1, CurrentOrg()),
|
|
453
483
|
__param(2, Param("id")),
|
|
454
|
-
__param(3,
|
|
484
|
+
__param(3, ZQuery(ConversationSubagentsQueryDto))
|
|
455
485
|
], ConversationsController.prototype, "subagents", null);
|
|
456
486
|
__decorate([
|
|
457
487
|
Get(":id/usage"),
|
|
@@ -468,7 +498,7 @@ __decorate([
|
|
|
468
498
|
__param(1, CurrentOrg()),
|
|
469
499
|
__param(2, Param("id")),
|
|
470
500
|
__param(3, Param("outputId")),
|
|
471
|
-
__param(4,
|
|
501
|
+
__param(4, ZQuery(ConversationOutputQueryDto))
|
|
472
502
|
], ConversationsController.prototype, "output", null);
|
|
473
503
|
__decorate([
|
|
474
504
|
Get(":id/artifacts/:artifactId/download"),
|
|
@@ -477,7 +507,7 @@ __decorate([
|
|
|
477
507
|
__param(1, CurrentOrg()),
|
|
478
508
|
__param(2, Param("id")),
|
|
479
509
|
__param(3, Param("artifactId")),
|
|
480
|
-
__param(4,
|
|
510
|
+
__param(4, ZQuery(ConversationDownloadQueryDto)),
|
|
481
511
|
__param(5, Res())
|
|
482
512
|
], ConversationsController.prototype, "downloadArtifact", null);
|
|
483
513
|
__decorate([
|
|
@@ -496,7 +526,7 @@ __decorate([
|
|
|
496
526
|
__param(0, CurrentPrincipal()),
|
|
497
527
|
__param(1, CurrentOrg()),
|
|
498
528
|
__param(2, Param("id")),
|
|
499
|
-
__param(3,
|
|
529
|
+
__param(3, ZQuery(ConversationFilesQueryDto))
|
|
500
530
|
], ConversationsController.prototype, "listFiles", null);
|
|
501
531
|
__decorate([
|
|
502
532
|
Get(":id/files/:fileId/content"),
|
|
@@ -505,7 +535,7 @@ __decorate([
|
|
|
505
535
|
__param(1, CurrentOrg()),
|
|
506
536
|
__param(2, Param("id")),
|
|
507
537
|
__param(3, Param("fileId")),
|
|
508
|
-
__param(4,
|
|
538
|
+
__param(4, ZQuery(ConversationFileContentQueryDto)),
|
|
509
539
|
__param(5, Res())
|
|
510
540
|
], ConversationsController.prototype, "fileContent", null);
|
|
511
541
|
__decorate([
|
|
@@ -523,7 +553,7 @@ __decorate([
|
|
|
523
553
|
__param(0, CurrentPrincipal()),
|
|
524
554
|
__param(1, CurrentOrg()),
|
|
525
555
|
__param(2, Param("id")),
|
|
526
|
-
__param(3,
|
|
556
|
+
__param(3, ZQuery(ConversationToolsQueryDto))
|
|
527
557
|
], ConversationsController.prototype, "tools", null);
|
|
528
558
|
__decorate([
|
|
529
559
|
Post(":id/messages"),
|
|
@@ -532,7 +562,7 @@ __decorate([
|
|
|
532
562
|
__param(0, CurrentPrincipal()),
|
|
533
563
|
__param(1, CurrentOrg()),
|
|
534
564
|
__param(2, Param("id")),
|
|
535
|
-
__param(3,
|
|
565
|
+
__param(3, ZBody(ConversationMessageBodyDto))
|
|
536
566
|
], ConversationsController.prototype, "postMessage", null);
|
|
537
567
|
__decorate([
|
|
538
568
|
Get(":id/queue"),
|
|
@@ -548,7 +578,7 @@ __decorate([
|
|
|
548
578
|
__param(0, CurrentPrincipal()),
|
|
549
579
|
__param(1, CurrentOrg()),
|
|
550
580
|
__param(2, Param("id")),
|
|
551
|
-
__param(3,
|
|
581
|
+
__param(3, ZBody(ConversationQueueBodyDto)),
|
|
552
582
|
__param(4, Res({ passthrough: true }))
|
|
553
583
|
], ConversationsController.prototype, "enqueue", null);
|
|
554
584
|
__decorate([
|
|
@@ -566,7 +596,7 @@ __decorate([
|
|
|
566
596
|
__param(1, CurrentOrg()),
|
|
567
597
|
__param(2, Param("id")),
|
|
568
598
|
__param(3, Param("itemId")),
|
|
569
|
-
__param(4,
|
|
599
|
+
__param(4, ZBody(ConversationQueueEditBodyDto))
|
|
570
600
|
], ConversationsController.prototype, "editQueued", null);
|
|
571
601
|
__decorate([
|
|
572
602
|
Delete(":id/queue/:itemId"),
|
|
@@ -596,12 +626,12 @@ __decorate([
|
|
|
596
626
|
], ConversationsController.prototype, "abort", null);
|
|
597
627
|
ConversationsController = __decorate([
|
|
598
628
|
Controller("api/v1/orgs/:orgId/conversations"),
|
|
599
|
-
__param(0, Inject(
|
|
600
|
-
__param(1, Inject(
|
|
601
|
-
__param(2, Inject(
|
|
602
|
-
__param(3, Inject(
|
|
603
|
-
__param(4, Inject(
|
|
604
|
-
__param(5, Inject(
|
|
605
|
-
__param(6, Inject(
|
|
629
|
+
__param(0, Inject(ConversationsService)),
|
|
630
|
+
__param(1, Inject(ConversationOutputs)),
|
|
631
|
+
__param(2, Inject(ConversationArtifacts)),
|
|
632
|
+
__param(3, Inject(ConversationSandboxStatus)),
|
|
633
|
+
__param(4, Inject(ConversationToolInfo)),
|
|
634
|
+
__param(5, Inject(ConversationQueue)),
|
|
635
|
+
__param(6, Inject(ConversationFiles))
|
|
606
636
|
], ConversationsController);
|
|
607
637
|
export { ConversationsController };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Conversations: the one {@link ConversationsService} (messages, model switches, skill
|
|
3
|
+
* invocations, sub-agent views, abort), the queue, the file / artifact / output reads and the
|
|
4
|
+
* sandbox status. The event log, the access check and the attachments are their own modules (the
|
|
5
|
+
* skills and tools use them too) and are re-exported here.
|
|
6
|
+
*/
|
|
7
|
+
export declare class ConversationsModule {
|
|
8
|
+
}
|