@capybara-hq/kernel 0.1.0-rc.3 → 0.1.0-rc.5
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/bootstrap.json +61 -5
- package/dist/admin/admin.controller.d.ts +47 -16
- package/dist/admin/admin.controller.js +44 -19
- package/dist/admin/extensions.controller.d.ts +24 -3
- package/dist/admin/extensions.controller.js +48 -8
- package/dist/admin/setup-lock.d.ts +1 -1
- package/dist/admin/setup-lock.js +1 -1
- package/dist/admin/setup.controller.d.ts +1 -1
- package/dist/admin/setup.controller.js +1 -1
- package/dist/admin/setup.service.d.ts +4 -4
- package/dist/admin/setup.service.js +8 -8
- package/dist/agents/agent-lookup.d.ts +19 -0
- package/dist/agents/agent-lookup.js +21 -0
- package/dist/agents/agent-profile.service.d.ts +29 -0
- package/dist/agents/agent-profile.service.js +117 -0
- package/dist/agents/agents.controller.d.ts +168 -3
- package/dist/agents/agents.controller.js +201 -12
- package/dist/agents/agents.module.d.ts +4 -1
- package/dist/agents/agents.module.js +36 -6
- package/dist/agents/agents.service.d.ts +64 -27
- package/dist/agents/agents.service.js +199 -74
- package/dist/agents/definition.d.ts +53 -0
- package/dist/agents/definition.js +55 -0
- package/dist/agents/from-template.d.ts +106 -0
- package/dist/agents/from-template.js +649 -0
- package/dist/agents/from-template.service.d.ts +60 -0
- package/dist/agents/from-template.service.js +161 -0
- package/dist/agents/instruction-files.d.ts +60 -0
- package/dist/agents/instruction-files.js +111 -0
- package/dist/agents/models.controller.d.ts +9 -3
- package/dist/agents/models.controller.js +19 -4
- package/dist/agents/org-templates.d.ts +176 -0
- package/dist/agents/org-templates.js +827 -0
- package/dist/agents/pending-connector-requests.d.ts +77 -0
- package/dist/agents/pending-connector-requests.js +215 -0
- package/dist/agents/pending-connectors.controller.d.ts +39 -0
- package/dist/agents/pending-connectors.controller.js +91 -0
- package/dist/agents/pending-connectors.service.d.ts +62 -0
- package/dist/agents/pending-connectors.service.js +282 -0
- package/dist/agents/profile.d.ts +96 -0
- package/dist/agents/profile.js +51 -0
- package/dist/agents/readiness.controller.d.ts +26 -0
- package/dist/agents/readiness.controller.js +56 -0
- package/dist/agents/templates.controller.d.ts +86 -5
- package/dist/agents/templates.controller.js +171 -7
- package/dist/agents/templates.d.ts +127 -23
- package/dist/agents/templates.js +476 -53
- package/dist/background/background.controller.d.ts +38 -0
- package/dist/background/background.controller.js +87 -0
- package/dist/background/background.module.d.ts +10 -0
- package/dist/background/background.module.js +39 -0
- package/dist/background/finish.d.ts +44 -0
- package/dist/background/finish.js +94 -0
- package/dist/background/launch-lock.d.ts +15 -0
- package/dist/background/launch-lock.js +40 -0
- package/dist/background/launch.d.ts +36 -0
- package/dist/background/launch.js +70 -0
- package/dist/background/poll.job.d.ts +56 -0
- package/dist/background/poll.job.js +190 -0
- package/dist/background/render.d.ts +23 -0
- package/dist/background/render.js +48 -0
- package/dist/background/session.d.ts +48 -0
- package/dist/background/session.js +79 -0
- package/dist/background/status.d.ts +35 -0
- package/dist/background/status.js +57 -0
- package/dist/background/stop.d.ts +68 -0
- package/dist/background/stop.js +243 -0
- package/dist/background/store.d.ts +162 -0
- package/dist/background/store.js +357 -0
- package/dist/background/store.module.d.ts +6 -0
- package/dist/background/store.module.js +22 -0
- package/dist/background/tasks.service.d.ts +77 -0
- package/dist/background/tasks.service.js +211 -0
- package/dist/background/wake-rules.d.ts +66 -0
- package/dist/background/wake-rules.js +113 -0
- package/dist/background/wake.d.ts +30 -0
- package/dist/background/wake.js +63 -0
- package/dist/catalog/admin-catalog.controller.d.ts +129 -30
- package/dist/catalog/admin-catalog.controller.js +213 -42
- package/dist/catalog/catalog-content.d.ts +58 -32
- package/dist/catalog/catalog-content.js +34 -8
- package/dist/catalog/catalog-import.module.d.ts +7 -0
- package/dist/catalog/catalog-import.module.js +60 -0
- package/dist/catalog/catalog-items.d.ts +111 -7
- package/dist/catalog/catalog-items.js +279 -13
- package/dist/catalog/catalog-scope.service.d.ts +260 -0
- package/dist/catalog/catalog-scope.service.js +1116 -0
- package/dist/catalog/catalog.module.d.ts +7 -9
- package/dist/catalog/catalog.module.js +41 -31
- package/dist/catalog/catalog.service.d.ts +101 -29
- package/dist/catalog/catalog.service.js +104 -106
- package/dist/catalog/claude/agents.js +2 -0
- package/dist/catalog/cli.d.ts +11 -1
- package/dist/catalog/cli.js +26 -1
- package/dist/catalog/component-promotion.d.ts +96 -0
- package/dist/catalog/component-promotion.js +395 -0
- package/dist/catalog/component-scope.controller.d.ts +152 -0
- package/dist/catalog/component-scope.controller.js +287 -0
- package/dist/catalog/component-scope.service.d.ts +303 -0
- package/dist/catalog/component-scope.service.js +936 -0
- package/dist/catalog/component-state.d.ts +174 -0
- package/dist/catalog/component-state.js +437 -0
- package/dist/catalog/job-ids.d.ts +30 -0
- package/dist/catalog/job-ids.js +25 -0
- package/dist/catalog/marketplace-fetch.d.ts +1 -1
- package/dist/catalog/marketplaces.controller.d.ts +22 -5
- package/dist/catalog/marketplaces.controller.js +56 -7
- package/dist/catalog/marketplaces.service.d.ts +54 -14
- package/dist/catalog/marketplaces.service.js +71 -22
- package/dist/catalog/org-catalog.controller.d.ts +125 -34
- package/dist/catalog/org-catalog.controller.js +181 -65
- package/dist/catalog/org-catalog.service.d.ts +65 -33
- package/dist/catalog/org-catalog.service.js +324 -157
- package/dist/catalog/org-extension-switch.d.ts +41 -0
- package/dist/catalog/org-extension-switch.js +115 -0
- package/dist/catalog/org-extension.controller.d.ts +119 -0
- package/dist/catalog/org-extension.controller.js +266 -0
- package/dist/catalog/org-plugin-uploads.controller.d.ts +98 -0
- package/dist/catalog/org-plugin-uploads.controller.js +213 -0
- package/dist/catalog/org-plugin-uploads.d.ts +63 -0
- package/dist/catalog/org-plugin-uploads.js +116 -0
- package/dist/catalog/owned-items.d.ts +184 -0
- package/dist/catalog/owned-items.js +789 -0
- package/dist/catalog/owned-plugin-cleanup.d.ts +56 -0
- package/dist/catalog/owned-plugin-cleanup.js +194 -0
- package/dist/catalog/ownership.d.ts +172 -0
- package/dist/catalog/ownership.js +326 -0
- package/dist/catalog/platform-components.d.ts +221 -0
- package/dist/catalog/platform-components.js +761 -0
- package/dist/catalog/platform-migration.d.ts +115 -0
- package/dist/catalog/platform-migration.js +582 -0
- package/dist/catalog/plugin-import.d.ts +178 -34
- package/dist/catalog/plugin-import.js +623 -83
- package/dist/catalog/plugin-install.d.ts +185 -41
- package/dist/catalog/plugin-install.js +758 -126
- package/dist/catalog/plugin-upgrade.d.ts +260 -225
- package/dist/catalog/plugin-upgrade.js +1148 -1137
- package/dist/catalog/request-rules.d.ts +65 -0
- package/dist/catalog/request-rules.js +217 -0
- package/dist/catalog/requests.service.d.ts +193 -118
- package/dist/catalog/requests.service.js +526 -343
- package/dist/catalog/reserved-names.d.ts +8 -0
- package/dist/catalog/reserved-names.js +42 -0
- package/dist/catalog/scope-orgs.d.ts +21 -0
- package/dist/catalog/scope-orgs.js +67 -0
- package/dist/catalog/scope-state.d.ts +35 -0
- package/dist/catalog/scope-state.js +87 -0
- package/dist/catalog/scope-sync-workers.d.ts +7 -0
- package/dist/catalog/scope-sync-workers.js +29 -0
- package/dist/catalog/scope-sync.d.ts +176 -0
- package/dist/catalog/scope-sync.js +576 -0
- package/dist/catalog/scope.d.ts +42 -0
- package/dist/catalog/scope.js +42 -0
- package/dist/catalog/unshare.d.ts +22 -0
- package/dist/catalog/unshare.js +118 -0
- package/dist/channels/actions.js +1 -0
- package/dist/channels/cards.js +21 -3
- package/dist/channels/channels.module.js +2 -0
- package/dist/channels/connections.service.d.ts +16 -1
- package/dist/channels/connections.service.js +38 -4
- package/dist/channels/inbound.d.ts +9 -1
- package/dist/channels/inbound.js +67 -5
- package/dist/channels/phrases.d.ts +35 -0
- package/dist/channels/phrases.js +29 -0
- package/dist/channels/threads.d.ts +5 -0
- package/dist/channels/threads.js +8 -0
- package/dist/config/docs.js +3 -1
- package/dist/config/schema.d.ts +24 -2
- package/dist/config/schema.js +145 -19
- package/dist/conversations/access.d.ts +6 -4
- package/dist/conversations/access.js +29 -5
- package/dist/conversations/agent-tree.d.ts +46 -0
- package/dist/conversations/agent-tree.js +92 -0
- package/dist/conversations/attachments.service.d.ts +30 -0
- package/dist/conversations/attachments.service.js +130 -5
- package/dist/conversations/conversations.controller.d.ts +79 -23
- package/dist/conversations/conversations.controller.js +141 -50
- package/dist/conversations/conversations.module.d.ts +1 -1
- package/dist/conversations/conversations.module.js +10 -7
- package/dist/conversations/conversations.service.d.ts +108 -9
- package/dist/conversations/conversations.service.js +237 -30
- package/dist/conversations/environment-status.d.ts +24 -0
- package/dist/conversations/environment-status.js +71 -0
- package/dist/conversations/event-log.d.ts +21 -6
- package/dist/conversations/event-log.js +70 -1
- package/dist/conversations/events.d.ts +140 -0
- package/dist/conversations/events.js +142 -13
- package/dist/conversations/queue.d.ts +3 -1
- package/dist/conversations/queue.js +13 -2
- package/dist/conversations/queue.service.d.ts +1 -1
- package/dist/conversations/queue.service.js +8 -1
- package/dist/conversations/titles.d.ts +12 -3
- package/dist/conversations/titles.js +36 -8
- package/dist/conversations/tree.d.ts +17 -0
- package/dist/conversations/tree.js +42 -0
- package/dist/ctx/create-ctx.d.ts +5 -0
- package/dist/ctx/create-ctx.js +15 -5
- package/dist/db/kernel-schema.d.ts +420 -20
- package/dist/db/pool.d.ts +5 -0
- package/dist/db/pool.js +3 -0
- package/dist/environments/access.d.ts +41 -0
- package/dist/environments/access.js +77 -0
- package/dist/environments/conversation-environments.d.ts +61 -0
- package/dist/environments/conversation-environments.js +170 -0
- package/dist/environments/dto.d.ts +25 -0
- package/dist/environments/dto.js +12 -0
- package/dist/environments/environments.controller.d.ts +33 -0
- package/dist/environments/environments.controller.js +110 -0
- package/dist/environments/environments.module.d.ts +8 -0
- package/dist/environments/environments.module.js +27 -0
- package/dist/environments/environments.service.d.ts +153 -0
- package/dist/environments/environments.service.js +541 -0
- package/dist/environments/legacy-cleanup.job.d.ts +34 -0
- package/dist/environments/legacy-cleanup.job.js +141 -0
- package/dist/errors.d.ts +90 -2
- package/dist/errors.js +90 -2
- package/dist/evals/reconstruct.d.ts +18 -9
- package/dist/evals/reconstruct.js +26 -7
- package/dist/evals/run-replay.d.ts +7 -2
- package/dist/evals/run-replay.js +42 -7
- package/dist/evals/step-replay.d.ts +2 -5
- package/dist/evals/step-replay.js +13 -7
- package/dist/evals/trajectory.js +1 -1
- package/dist/evals/trajectory.service.d.ts +8 -3
- package/dist/evals/trajectory.service.js +26 -14
- package/dist/evals/worker.d.ts +5 -5
- package/dist/evals/worker.js +9 -3
- package/dist/extensions/admin-ops.d.ts +36 -10
- package/dist/extensions/admin-ops.js +67 -42
- package/dist/extensions/admin-view.d.ts +39 -10
- package/dist/extensions/admin-view.js +111 -20
- package/dist/extensions/blobs.js +1 -0
- package/dist/extensions/bootstrap.d.ts +17 -4
- package/dist/extensions/bootstrap.js +70 -9
- package/dist/extensions/cli.d.ts +12 -0
- package/dist/extensions/cli.js +11 -2
- package/dist/extensions/config-issues.d.ts +13 -1
- package/dist/extensions/config-issues.js +22 -5
- package/dist/extensions/config-json-schema.d.ts +43 -7
- package/dist/extensions/config-json-schema.js +124 -58
- package/dist/extensions/deployment-config-store.d.ts +6 -0
- package/dist/extensions/deployment-config.d.ts +78 -8
- package/dist/extensions/deployment-config.js +172 -34
- package/dist/extensions/display-name.d.ts +22 -0
- package/dist/extensions/display-name.js +77 -0
- package/dist/extensions/effective-config.d.ts +127 -0
- package/dist/extensions/effective-config.js +368 -0
- package/dist/extensions/extensions.module.js +14 -2
- package/dist/extensions/hooks.d.ts +37 -4
- package/dist/extensions/hooks.js +82 -16
- package/dist/extensions/host.d.ts +45 -2
- package/dist/extensions/host.js +112 -16
- package/dist/extensions/installs.d.ts +20 -8
- package/dist/extensions/installs.js +37 -15
- package/dist/extensions/org-config.d.ts +81 -6
- package/dist/extensions/org-config.js +195 -44
- package/dist/extensions/org-levels.d.ts +37 -0
- package/dist/extensions/org-levels.js +71 -0
- package/dist/extensions/org-overrides.d.ts +151 -0
- package/dist/extensions/org-overrides.js +524 -0
- package/dist/extensions/package.d.ts +14 -1
- package/dist/extensions/package.js +51 -2
- package/dist/extensions/permission-view.d.ts +19 -4
- package/dist/extensions/permission-view.js +4 -4
- package/dist/extensions/plugin-items.d.ts +21 -0
- package/dist/extensions/plugin-items.js +42 -0
- package/dist/extensions/point-defaults.controller.d.ts +34 -0
- package/dist/extensions/point-defaults.controller.js +71 -0
- package/dist/extensions/point-defaults.d.ts +71 -0
- package/dist/extensions/point-defaults.js +234 -0
- package/dist/extensions/registry.d.ts +1 -1
- package/dist/extensions/registry.js +2 -0
- package/dist/extensions/resolve.d.ts +5 -1
- package/dist/extensions/resolve.js +15 -2
- package/dist/files/previewers.d.ts +8 -1
- package/dist/files/previewers.js +35 -6
- package/dist/http/api.module.js +31 -3
- package/dist/http/app.d.ts +11 -2
- package/dist/http/app.js +31 -5
- package/dist/http/nest-logger.d.ts +6 -5
- package/dist/http/nest-logger.js +24 -10
- package/dist/identity/accounts.d.ts +29 -29
- package/dist/identity/accounts.js +47 -47
- package/dist/identity/audit.d.ts +2 -1
- package/dist/identity/auth.controller.js +9 -5
- package/dist/identity/auth.guard.d.ts +13 -5
- package/dist/identity/auth.guard.js +26 -9
- package/dist/identity/cookies.d.ts +20 -5
- package/dist/identity/cookies.js +44 -6
- package/dist/identity/identity.module.d.ts +1 -1
- package/dist/identity/identity.module.js +4 -4
- package/dist/identity/me.controller.d.ts +5 -1
- package/dist/identity/me.controller.js +12 -3
- package/dist/identity/principal.d.ts +3 -3
- package/dist/identity/principal.js +3 -3
- package/dist/identity/sessions.d.ts +12 -0
- package/dist/identity/sessions.js +45 -0
- package/dist/identity/settings.d.ts +22 -11
- package/dist/identity/settings.js +53 -18
- package/dist/identity/{enterprise-admin.d.ts → super-admin.d.ts} +5 -5
- package/dist/identity/{enterprise-admin.js → super-admin.js} +24 -24
- package/dist/inbox/inbox.module.d.ts +4 -1
- package/dist/inbox/inbox.module.js +7 -3
- package/dist/inbox/inbox.service.d.ts +62 -3
- package/dist/inbox/inbox.service.js +74 -4
- package/dist/inbox/org-notices.d.ts +63 -0
- package/dist/inbox/org-notices.js +91 -0
- package/dist/inbox/platform-inbox.controller.d.ts +23 -0
- package/dist/inbox/platform-inbox.controller.js +58 -0
- package/dist/inbox/platform-inbox.service.d.ts +151 -0
- package/dist/inbox/platform-inbox.service.js +263 -0
- package/dist/inbox/platform-notices.d.ts +19 -0
- package/dist/inbox/platform-notices.js +9 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/infra/cli/kernel-cli.module.js +9 -1
- package/dist/infra/config/kernel-config.service.js +27 -1
- package/dist/infra/database/database.module.js +1 -0
- package/dist/infra/database/xact-lock.d.ts +1 -1
- package/dist/infra/database/xact-lock.js +1 -1
- package/dist/infra/events/kernel-events.d.ts +19 -2
- package/dist/infra/lifecycle/process-guards.js +4 -0
- package/dist/infra/logging/logging.module.d.ts +4 -2
- package/dist/infra/logging/logging.module.js +24 -6
- package/dist/infra/queue/add-job-once.d.ts +14 -0
- package/dist/infra/queue/add-job-once.js +16 -0
- package/dist/infra/queue/redis-connection.d.ts +6 -0
- package/dist/infra/queue/redis-connection.js +7 -0
- package/dist/infra/redis/redis.module.js +6 -2
- package/dist/infra/tokens.d.ts +6 -1
- package/dist/infra/tokens.js +6 -1
- package/dist/kernel.module.js +6 -0
- package/dist/lifecycle/kernel-lifecycle.d.ts +1 -1
- package/dist/lifecycle/kernel-lifecycle.js +4 -4
- package/dist/log.d.ts +13 -1
- package/dist/log.js +93 -17
- package/dist/models/prices.d.ts +5 -5
- package/dist/models/prices.js +4 -4
- package/dist/models/purposes.controller.d.ts +6 -4
- package/dist/models/purposes.controller.js +13 -7
- package/dist/models/purposes.d.ts +43 -9
- package/dist/models/purposes.js +48 -18
- package/dist/orgs/directory-sync.d.ts +14 -5
- package/dist/orgs/directory-sync.js +41 -17
- package/dist/orgs/offboarding.d.ts +12 -8
- package/dist/orgs/offboarding.js +54 -33
- package/dist/orgs/org-lock.d.ts +5 -0
- package/dist/orgs/org-lock.js +13 -0
- package/dist/orgs/org.guard.d.ts +10 -0
- package/dist/orgs/org.guard.js +43 -32
- package/dist/orgs/orgs.module.js +3 -0
- package/dist/orgs/orgs.service.d.ts +20 -7
- package/dist/orgs/orgs.service.js +32 -12
- package/dist/orgs/roles.d.ts +1 -1
- package/dist/orgs/roles.js +5 -1
- package/dist/orgs/settings.controller.d.ts +1 -1
- package/dist/orgs/settings.service.d.ts +20 -3
- package/dist/orgs/settings.service.js +19 -4
- package/dist/overrides.d.ts +3 -0
- package/dist/overrides.js +2 -0
- package/dist/platform/actor.d.ts +48 -0
- package/dist/platform/actor.js +100 -0
- package/dist/platform/agent-docs.d.ts +18 -0
- package/dist/platform/agent-docs.js +59 -0
- package/dist/platform/availability.d.ts +14 -0
- package/dist/platform/availability.js +43 -0
- package/dist/platform/errors.d.ts +11 -0
- package/dist/platform/errors.js +26 -0
- package/dist/platform/exclusions.d.ts +12 -0
- package/dist/platform/exclusions.js +1387 -0
- package/dist/platform/method.d.ts +6 -0
- package/dist/platform/method.js +15 -0
- package/dist/platform/operation.d.ts +92 -0
- package/dist/platform/operation.js +35 -0
- package/dist/platform/ops/agent-templates.ops.d.ts +14 -0
- package/dist/platform/ops/agent-templates.ops.js +92 -0
- package/dist/platform/ops/agents.ops.d.ts +19 -0
- package/dist/platform/ops/agents.ops.js +294 -0
- package/dist/platform/ops/connectors.ops.d.ts +15 -0
- package/dist/platform/ops/connectors.ops.js +126 -0
- package/dist/platform/ops/errors.d.ts +11 -0
- package/dist/platform/ops/errors.js +22 -0
- package/dist/platform/ops/extensions.ops.d.ts +19 -0
- package/dist/platform/ops/extensions.ops.js +116 -0
- package/dist/platform/ops/marketplaces.ops.d.ts +16 -0
- package/dist/platform/ops/marketplaces.ops.js +157 -0
- package/dist/platform/ops/paging.d.ts +14 -0
- package/dist/platform/ops/paging.js +20 -0
- package/dist/platform/ops/platform.ops.d.ts +23 -0
- package/dist/platform/ops/platform.ops.js +158 -0
- package/dist/platform/ops/plugins.ops.d.ts +33 -0
- package/dist/platform/ops/plugins.ops.js +377 -0
- package/dist/platform/ops/requests.ops.d.ts +14 -0
- package/dist/platform/ops/requests.ops.js +153 -0
- package/dist/platform/ops/role.d.ts +4 -0
- package/dist/platform/ops/role.js +10 -0
- package/dist/platform/ops/skills.ops.d.ts +13 -0
- package/dist/platform/ops/skills.ops.js +98 -0
- package/dist/platform/ops/summary.d.ts +10 -0
- package/dist/platform/ops/summary.js +18 -0
- package/dist/platform/platform-ops.module.d.ts +7 -0
- package/dist/platform/platform-ops.module.js +55 -0
- package/dist/platform/platform.module.d.ts +8 -0
- package/dist/platform/platform.module.js +25 -0
- package/dist/platform/redact-orgs.d.ts +7 -0
- package/dist/platform/redact-orgs.js +52 -0
- package/dist/platform/registry.d.ts +30 -0
- package/dist/platform/registry.js +111 -0
- package/dist/roles/worker-role.d.ts +6 -4
- package/dist/roles/worker-role.js +14 -7
- package/dist/roles/worker.module.d.ts +1 -1
- package/dist/roles/worker.module.js +15 -1
- package/dist/runtime/context/build.d.ts +11 -7
- package/dist/runtime/context/build.js +46 -19
- package/dist/runtime/context/claude-tools.d.ts +3 -1
- package/dist/runtime/context/claude-tools.js +8 -6
- package/dist/runtime/context/compaction.js +13 -0
- package/dist/runtime/context/reminders.d.ts +2 -0
- package/dist/runtime/context/reminders.js +2 -0
- package/dist/runtime/context/skills.js +9 -2
- package/dist/runtime/context/tool-changes.d.ts +27 -0
- package/dist/runtime/context/tool-changes.js +60 -0
- package/dist/runtime/hook-calls.js +2 -0
- package/dist/runtime/langgraph-loop.d.ts +3 -1
- package/dist/runtime/langgraph-loop.js +36 -17
- package/dist/runtime/loop.d.ts +34 -5
- package/dist/runtime/maintenance.d.ts +9 -4
- package/dist/runtime/maintenance.js +35 -8
- package/dist/runtime/model-call.d.ts +46 -8
- package/dist/runtime/model-call.js +72 -21
- package/dist/runtime/providers.d.ts +6 -0
- package/dist/runtime/providers.js +8 -0
- package/dist/runtime/run-control.d.ts +11 -1
- package/dist/runtime/run-control.js +12 -0
- package/dist/runtime/run-drafts.d.ts +85 -0
- package/dist/runtime/run-drafts.js +230 -0
- package/dist/runtime/run-jobs.d.ts +3 -5
- package/dist/runtime/run-jobs.js +3 -7
- package/dist/runtime/run-queue.d.ts +59 -2
- package/dist/runtime/run-queue.js +311 -38
- package/dist/runtime/run-worker.d.ts +11 -5
- package/dist/runtime/run-worker.js +69 -33
- package/dist/runtime/runtime.module.js +11 -3
- package/dist/runtime/step-log.d.ts +15 -4
- package/dist/runtime/step-log.js +24 -7
- package/dist/runtime/stream.controller.d.ts +23 -1
- package/dist/runtime/stream.controller.js +60 -3
- package/dist/runtime/stream.d.ts +4 -1
- package/dist/runtime/stream.js +27 -3
- package/dist/runtime/subagents/child.d.ts +55 -7
- package/dist/runtime/subagents/child.js +105 -7
- package/dist/runtime/subagents/definition.d.ts +12 -3
- package/dist/runtime/subagents/definition.js +44 -28
- package/dist/runtime/subagents/deliveries.d.ts +71 -0
- package/dist/runtime/subagents/deliveries.js +228 -0
- package/dist/runtime/subagents/dispatch.d.ts +115 -26
- package/dist/runtime/subagents/dispatch.js +212 -141
- package/dist/runtime/subagents/limits.d.ts +24 -5
- package/dist/runtime/subagents/limits.js +40 -6
- package/dist/runtime/subagents/messages.d.ts +95 -0
- package/dist/runtime/subagents/messages.js +328 -0
- package/dist/runtime/subagents/preamble.d.ts +4 -4
- package/dist/runtime/subagents/preamble.js +9 -7
- package/dist/runtime/subagents/progress.d.ts +8 -6
- package/dist/runtime/subagents/progress.js +11 -6
- package/dist/runtime/subagents/render.d.ts +30 -0
- package/dist/runtime/subagents/render.js +53 -0
- package/dist/runtime/subagents/roster.d.ts +24 -7
- package/dist/runtime/subagents/roster.js +47 -11
- package/dist/runtime/subagents/skill-fork.d.ts +3 -2
- package/dist/runtime/subagents/skill-fork.js +8 -4
- package/dist/runtime/subagents/status.d.ts +14 -0
- package/dist/runtime/subagents/status.js +23 -0
- package/dist/runtime/subagents/subagents.service.d.ts +7 -4
- package/dist/runtime/subagents/subagents.service.js +11 -6
- package/dist/runtime/usage-report.d.ts +2 -1
- package/dist/runtime/usage-report.js +19 -13
- package/dist/runtime/waits.d.ts +145 -36
- package/dist/runtime/waits.js +423 -109
- package/dist/sandbox/jobs.d.ts +40 -13
- package/dist/sandbox/jobs.js +57 -20
- package/dist/sandbox/leases.d.ts +37 -54
- package/dist/sandbox/leases.js +71 -115
- package/dist/sandbox/providers.d.ts +2 -2
- package/dist/sandbox/providers.js +1 -1
- package/dist/sandbox/sandbox.module.d.ts +3 -2
- package/dist/sandbox/sandbox.module.js +10 -4
- package/dist/sandbox/sandbox.service.d.ts +282 -129
- package/dist/sandbox/sandbox.service.js +736 -381
- package/dist/skills/catalog.d.ts +3 -2
- package/dist/skills/catalog.js +21 -43
- package/dist/skills/changes.controller.d.ts +7 -0
- package/dist/skills/changes.controller.js +19 -1
- package/dist/skills/invoke.js +8 -3
- package/dist/skills/package.d.ts +20 -1
- package/dist/skills/package.js +28 -1
- package/dist/skills/skills.controller.d.ts +39 -4
- package/dist/skills/skills.controller.js +88 -10
- package/dist/skills/skills.module.js +10 -1
- package/dist/skills/skills.service.d.ts +106 -26
- package/dist/skills/skills.service.js +421 -75
- package/dist/skills/usable.d.ts +81 -0
- package/dist/skills/usable.js +379 -0
- package/dist/tools/approvals.service.d.ts +20 -2
- package/dist/tools/approvals.service.js +25 -4
- package/dist/tools/builtin-names.d.ts +41 -7
- package/dist/tools/builtin-names.js +59 -7
- package/dist/tools/builtins/agent.d.ts +23 -21
- package/dist/tools/builtins/agent.js +62 -55
- package/dist/tools/builtins/builtin-tools.d.ts +19 -1
- package/dist/tools/builtins/builtin-tools.js +59 -2
- package/dist/tools/builtins/handback.d.ts +28 -0
- package/dist/tools/builtins/handback.js +53 -0
- package/dist/tools/builtins/platform.d.ts +34 -0
- package/dist/tools/builtins/platform.js +362 -0
- package/dist/tools/builtins/sandbox/bash.d.ts +1 -1
- package/dist/tools/builtins/sandbox/bash.js +241 -4
- package/dist/tools/builtins/sandbox/common.d.ts +69 -27
- package/dist/tools/builtins/sandbox/common.js +87 -48
- package/dist/tools/builtins/sandbox/deliver.js +1 -1
- package/dist/tools/builtins/sandbox/edit.js +2 -2
- package/dist/tools/builtins/sandbox/glob.js +2 -2
- package/dist/tools/builtins/sandbox/grep.js +2 -4
- package/dist/tools/builtins/sandbox/index.d.ts +3 -1
- package/dist/tools/builtins/sandbox/index.js +7 -1
- package/dist/tools/builtins/sandbox/read.js +1 -1
- package/dist/tools/builtins/sandbox/task-output.d.ts +74 -0
- package/dist/tools/builtins/sandbox/task-output.js +329 -0
- package/dist/tools/builtins/sandbox/task-stop.d.ts +10 -0
- package/dist/tools/builtins/sandbox/task-stop.js +113 -0
- package/dist/tools/builtins/sandbox/write.js +2 -2
- package/dist/tools/builtins/send-message.d.ts +56 -0
- package/dist/tools/builtins/send-message.js +100 -0
- package/dist/tools/builtins/skill-load.d.ts +22 -14
- package/dist/tools/builtins/skill-load.js +86 -57
- package/dist/tools/builtins/skill-write.js +1 -1
- package/dist/tools/builtins/web/errors.d.ts +8 -0
- package/dist/tools/builtins/web/errors.js +53 -0
- package/dist/tools/builtins/web/extract.d.ts +62 -0
- package/dist/tools/builtins/web/extract.js +271 -0
- package/dist/tools/builtins/web/fetch.d.ts +55 -0
- package/dist/tools/builtins/web/fetch.js +175 -0
- package/dist/tools/builtins/web/index.d.ts +13 -0
- package/dist/tools/builtins/web/index.js +12 -0
- package/dist/tools/builtins/web/page-cache.d.ts +25 -0
- package/dist/tools/builtins/web/page-cache.js +77 -0
- package/dist/tools/builtins/web/search.d.ts +25 -0
- package/dist/tools/builtins/web/search.js +210 -0
- package/dist/tools/builtins/web/url.d.ts +17 -0
- package/dist/tools/builtins/web/url.js +43 -0
- package/dist/tools/connectors.controller.d.ts +10 -0
- package/dist/tools/connectors.controller.js +12 -0
- package/dist/tools/connectors.service.d.ts +46 -5
- package/dist/tools/connectors.service.js +94 -15
- package/dist/tools/extension-tools.controller.d.ts +14 -0
- package/dist/tools/extension-tools.controller.js +37 -0
- package/dist/tools/info.d.ts +42 -1
- package/dist/tools/info.js +64 -1
- package/dist/tools/oauth/flow-paths.d.ts +1 -1
- package/dist/tools/oauth/flow-paths.js +1 -1
- package/dist/tools/org-tool-switches.d.ts +74 -0
- package/dist/tools/org-tool-switches.js +184 -0
- package/dist/tools/pipeline.d.ts +46 -40
- package/dist/tools/pipeline.js +202 -364
- package/dist/tools/policy.d.ts +1 -1
- package/dist/tools/policy.js +36 -16
- package/dist/tools/registry.d.ts +120 -8
- package/dist/tools/registry.js +112 -19
- package/dist/tools/tools.module.js +24 -2
- package/dist/tools/validate.js +1 -1
- package/dist/ui/views.d.ts +2 -1
- package/dist/ui/views.js +17 -3
- package/package.json +3 -3
- package/src/migrations/0064_account_last_org.sql +7 -0
- package/src/migrations/0065_conversation_archive.sql +8 -0
- package/src/migrations/0066_extension_display_name.sql +4 -0
- package/src/migrations/0067_agent_profiles.sql +20 -0
- package/src/migrations/0068_agent_avatar_uploads.sql +7 -0
- package/src/migrations/0069_attachments_agent_idx.sql +3 -0
- package/src/migrations/0070_background_tasks.sql +37 -0
- package/src/migrations/0071_background_tasks_reserve.sql +6 -0
- package/src/migrations/0072_background_tasks_stopping.sql +5 -0
- package/src/migrations/0073_org_extension_point_defaults.sql +11 -0
- package/src/migrations/0074_subagent_tree.sql +50 -0
- package/src/migrations/0075_plugin_scope.sql +61 -0
- package/src/migrations/0076_skills_created_by_nullable.sql +6 -0
- package/src/migrations/0077_scope_requests.sql +52 -0
- package/src/migrations/0078_scope_grant_switches.sql +18 -0
- package/src/migrations/0079_scope_live_install_switches.sql +19 -0
- package/src/migrations/0080_rename_enterprise_admin.sql +18 -0
- package/src/migrations/0081_platform_components.sql +129 -0
- package/src/migrations/0082_platform_migration.sql +33 -0
- package/src/migrations/0083_plugin_scope_sync_failures.sql +15 -0
- package/src/migrations/0084_org_owned_items.sql +85 -0
- package/src/migrations/0085_agent_templates_phase4.sql +45 -0
- package/src/migrations/0086_org_layering.sql +30 -0
- package/src/migrations/0087_approval_summary.sql +6 -0
- package/src/migrations/0088_environments.sql +80 -0
- package/dist/catalog/upgrade-targets.d.ts +0 -56
- package/dist/catalog/upgrade-targets.js +0 -90
- package/dist/conversations/sandbox-status.d.ts +0 -24
- package/dist/conversations/sandbox-status.js +0 -52
- package/dist/extensions/org-config.controller.d.ts +0 -24
- package/dist/extensions/org-config.controller.js +0 -62
package/dist/agents/templates.js
CHANGED
|
@@ -9,10 +9,17 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
9
9
|
};
|
|
10
10
|
import { randomUUID } from "node:crypto";
|
|
11
11
|
import { Inject, Injectable } from "@nestjs/common";
|
|
12
|
+
import { sql } from "kysely";
|
|
13
|
+
import { componentOn } from "../catalog/component-state.js";
|
|
14
|
+
import { ownerOf, ownersOf } from "../catalog/ownership.js";
|
|
12
15
|
import { KernelDb } from "../infra/database/kernel-db.js";
|
|
16
|
+
import { canonicalJson } from "../tools/canonical-json.js";
|
|
13
17
|
import { loadLegacyScope } from "../tools/legacy-data.js";
|
|
14
|
-
import { canonicalJson } from "../tools/registry.js";
|
|
15
18
|
import { needsLegacyScope, normalizeToolKeys } from "./definition.js";
|
|
19
|
+
/** The roster type of a template: `<plugin>:<name>`, the bare `<name>` without a plugin. */
|
|
20
|
+
export const templateTypeOf = (plugin, name) => plugin ? `${plugin}:${name}` : name;
|
|
21
|
+
/** Plugin install statuses that make a plugin on in the org (phase 1, org catalog state). */
|
|
22
|
+
const LIVE_INSTALL = ["installing", "installed", "upgrading"];
|
|
16
23
|
const baseQuery = (db, orgId) => db
|
|
17
24
|
.selectFrom("agent_templates as t")
|
|
18
25
|
.innerJoin("agent_template_versions as v", (j) => j.onRef("v.template_id", "=", "t.id").onRef("v.version", "=", "t.current_version"))
|
|
@@ -22,6 +29,8 @@ const baseQuery = (db, orgId) => db
|
|
|
22
29
|
"t.plugin_name",
|
|
23
30
|
"t.current_version",
|
|
24
31
|
"t.catalog_item_id",
|
|
32
|
+
"t.platform_template_id",
|
|
33
|
+
"t.pinned_version",
|
|
25
34
|
"v.definition",
|
|
26
35
|
"v.source_format",
|
|
27
36
|
"v.catalog_version",
|
|
@@ -29,34 +38,448 @@ const baseQuery = (db, orgId) => db
|
|
|
29
38
|
.where("t.org_id", "=", orgId)
|
|
30
39
|
.where("t.deleted_at", "is", null);
|
|
31
40
|
/**
|
|
32
|
-
*
|
|
33
|
-
*
|
|
41
|
+
* The ids among `platformIds` of the live platform templates owned by `orgId` (promoted from its
|
|
42
|
+
* own templates, ruling P3-3).
|
|
34
43
|
*/
|
|
35
|
-
|
|
44
|
+
async function ownedPlatformIds(db, orgId, platformIds) {
|
|
45
|
+
if (platformIds.length === 0)
|
|
46
|
+
return new Set();
|
|
47
|
+
const rows = await db
|
|
48
|
+
.selectFrom("platform_agent_templates")
|
|
49
|
+
.select("id")
|
|
50
|
+
.where("id", "in", [...new Set(platformIds)])
|
|
51
|
+
.where("owner_org_id", "=", orgId)
|
|
52
|
+
.where("deleted_at", "is", null)
|
|
53
|
+
.execute();
|
|
54
|
+
return new Set(rows.map((r) => r.id));
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Stored rows as {@link TemplateRow}s; tool keys read as current keys (tool naming spec §8.3): old
|
|
58
|
+
* builtin names always, rc `<x>__<tool>` keys with the org's legacy scope, read once when needed.
|
|
59
|
+
*/
|
|
60
|
+
async function normalized(db, orgId, rows) {
|
|
61
|
+
const scope = rows.some((r) => needsLegacyScope(r.definition))
|
|
62
|
+
? await loadLegacyScope(db, orgId)
|
|
63
|
+
: undefined;
|
|
64
|
+
return rows.map(({ definition, ...r }) => ({
|
|
65
|
+
...r,
|
|
66
|
+
template: normalizeToolKeys(definition, scope),
|
|
67
|
+
}));
|
|
68
|
+
}
|
|
69
|
+
const orgRaw = (r) => ({
|
|
36
70
|
id: r.id,
|
|
37
71
|
name: r.name,
|
|
38
72
|
plugin: r.plugin_name,
|
|
39
73
|
version: r.current_version,
|
|
40
|
-
|
|
74
|
+
definition: r.definition,
|
|
41
75
|
sourceFormat: r.source_format,
|
|
42
76
|
catalogItemId: r.catalog_item_id,
|
|
43
77
|
catalogVersion: r.catalog_version,
|
|
78
|
+
// a pinned copy keeps its link but serves its own version: no platform content source
|
|
79
|
+
origin: "org",
|
|
44
80
|
});
|
|
45
|
-
/** The
|
|
46
|
-
async function
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
81
|
+
/** The live platform template rows on in the org (`ids`: only those), before any type clash. */
|
|
82
|
+
async function platformRowsOn(db, orgId, ids) {
|
|
83
|
+
if (ids !== undefined && ids.length === 0)
|
|
84
|
+
return [];
|
|
85
|
+
let q = db
|
|
86
|
+
.selectFrom("platform_agent_templates as p")
|
|
87
|
+
.innerJoin("platform_agent_template_versions as v", (j) => j.onRef("v.template_id", "=", "p.id").onRef("v.version", "=", "p.current_version"))
|
|
88
|
+
.leftJoin("catalog_items as c", (j) => j.onRef("c.id", "=", "p.catalog_item_id").on("c.deleted_at", "is", null))
|
|
89
|
+
.select((eb) => [
|
|
90
|
+
"p.id",
|
|
91
|
+
"p.name",
|
|
92
|
+
"p.plugin_name",
|
|
93
|
+
"p.catalog_item_id",
|
|
94
|
+
"p.current_version",
|
|
95
|
+
"p.scope_mode",
|
|
96
|
+
"p.scope",
|
|
97
|
+
"v.definition",
|
|
98
|
+
"v.source_format",
|
|
99
|
+
"v.catalog_version",
|
|
100
|
+
"c.id as item_id",
|
|
101
|
+
"c.disabled as item_disabled",
|
|
102
|
+
"c.builtin as item_builtin",
|
|
103
|
+
eb
|
|
104
|
+
.exists(eb
|
|
105
|
+
.selectFrom("plugin_installs as a")
|
|
106
|
+
.select("a.id")
|
|
107
|
+
.whereRef("a.item_id", "=", "p.catalog_item_id")
|
|
108
|
+
.where("a.org_id", "=", orgId)
|
|
109
|
+
.where("a.status", "in", [...LIVE_INSTALL]))
|
|
110
|
+
.as("installed"),
|
|
111
|
+
eb
|
|
112
|
+
.exists(eb
|
|
113
|
+
.selectFrom("component_scope_orgs as l")
|
|
114
|
+
.select("l.org_id")
|
|
115
|
+
.where("l.kind", "=", "agent_template")
|
|
116
|
+
.whereRef("l.component_id", "=", "p.id")
|
|
117
|
+
.where("l.org_id", "=", orgId))
|
|
118
|
+
.as("listed"),
|
|
119
|
+
eb
|
|
120
|
+
.selectFrom("component_org_switches as w")
|
|
121
|
+
.select("w.enabled")
|
|
122
|
+
.where("w.kind", "=", "agent_template")
|
|
123
|
+
.whereRef("w.component_id", "=", "p.id")
|
|
124
|
+
.where("w.org_id", "=", orgId)
|
|
125
|
+
.as("switch"),
|
|
126
|
+
])
|
|
127
|
+
.where("p.deleted_at", "is", null)
|
|
128
|
+
.where("p.disabled", "=", false);
|
|
129
|
+
if (ids !== undefined)
|
|
130
|
+
q = q.where("p.id", "in", [...ids]);
|
|
131
|
+
// the predicate of component scope (catalog/component-state.ts); `disabled` is filtered above
|
|
132
|
+
return (await q.execute()).filter((r) => componentOn({ scopeMode: r.scope_mode, scope: r.scope, disabled: false, itemId: r.catalog_item_id }, r.catalog_item_id === null
|
|
133
|
+
? null
|
|
134
|
+
: {
|
|
135
|
+
live: r.item_id !== null,
|
|
136
|
+
disabled: r.item_disabled === true,
|
|
137
|
+
builtin: r.item_builtin === true,
|
|
138
|
+
// the plugin's own scope and list do not decide whether a component is on
|
|
139
|
+
scope: "optional",
|
|
140
|
+
listed: false,
|
|
141
|
+
installed: Boolean(r.installed),
|
|
142
|
+
}, Boolean(r.listed), r.switch ?? null));
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* The ids among `ids` of the platform templates on in the org (see {@link platformOn}), whatever
|
|
146
|
+
* the org's own templates are.
|
|
147
|
+
*/
|
|
148
|
+
export async function platformTemplatesOn(db, orgId, ids) {
|
|
149
|
+
return new Set((await platformRowsOn(db, orgId, ids)).map((r) => r.id));
|
|
51
150
|
}
|
|
52
|
-
/**
|
|
53
|
-
|
|
151
|
+
/**
|
|
152
|
+
* Rule 10 for platform agent template `component` (`plugin` / `name`: its roster type) newly
|
|
153
|
+
* offered to the org (ruling P4-13, as `skillNameClashes` for skills): the org's own live rows of
|
|
154
|
+
* that type (unlinked, or pinned) that are no copy of it (linked to it, or from its plugin), and
|
|
155
|
+
* the other platform templates of that type on in the org (two orgs' shared templates of one bare
|
|
156
|
+
* name, P3-5). `skills`: the clashing template ids; `owners`: each one's owner, in the same order
|
|
157
|
+
* (an org row without a plugin is the org's own; a plugin's row its catalog item's owner; a
|
|
158
|
+
* platform row its `owner_org_id`); `plugins`: the clashing platform templates' plugins.
|
|
159
|
+
*/
|
|
160
|
+
export async function templateTypeClashes(db, orgId, component) {
|
|
161
|
+
const own = await db
|
|
162
|
+
.selectFrom("agent_templates as t")
|
|
163
|
+
.select(["t.id", "t.platform_template_id", "t.catalog_item_id"])
|
|
164
|
+
.where("t.org_id", "=", orgId)
|
|
165
|
+
.where("t.deleted_at", "is", null)
|
|
166
|
+
.where("t.name", "=", component.name)
|
|
167
|
+
.where((eb) => component.plugin === null
|
|
168
|
+
? eb("t.plugin_name", "is", null)
|
|
169
|
+
: eb("t.plugin_name", "=", component.plugin))
|
|
170
|
+
.where((eb) => eb.or([eb("t.platform_template_id", "is", null), eb("t.pinned_version", "is not", null)]))
|
|
171
|
+
.execute();
|
|
172
|
+
const ownRows = own.filter((r) => r.platform_template_id !== component.id &&
|
|
173
|
+
(component.itemId === null || r.catalog_item_id !== component.itemId));
|
|
174
|
+
const others = await db
|
|
175
|
+
.selectFrom("platform_agent_templates")
|
|
176
|
+
.select(["id", "plugin_name", "owner_org_id"])
|
|
177
|
+
.where("name", "=", component.name)
|
|
178
|
+
.where((eb) => component.plugin === null
|
|
179
|
+
? eb("plugin_name", "is", null)
|
|
180
|
+
: eb("plugin_name", "=", component.plugin))
|
|
181
|
+
.where("deleted_at", "is", null)
|
|
182
|
+
.where("id", "!=", component.id)
|
|
183
|
+
.execute();
|
|
184
|
+
const on = await platformTemplatesOn(db, orgId, others.map((o) => o.id));
|
|
185
|
+
const platform = others.filter((o) => on.has(o.id));
|
|
186
|
+
// a plugin's row: its catalog item's owner (`catalog_items.id` is a uuid, the column text)
|
|
187
|
+
const itemIds = [
|
|
188
|
+
...new Set(ownRows.flatMap((r) => (r.catalog_item_id === null ? [] : [r.catalog_item_id]))),
|
|
189
|
+
];
|
|
190
|
+
const itemOwner = new Map((itemIds.length === 0
|
|
191
|
+
? []
|
|
192
|
+
: await db
|
|
193
|
+
.selectFrom("catalog_items")
|
|
194
|
+
.select(["id", "owner_org_id"])
|
|
195
|
+
.where(sql `id::text`, "in", itemIds)
|
|
196
|
+
.execute()).map((i) => [String(i.id), i.owner_org_id]));
|
|
197
|
+
const ownerIds = [
|
|
198
|
+
...ownRows.map((r) => component.plugin === null
|
|
199
|
+
? orgId
|
|
200
|
+
: r.catalog_item_id === null
|
|
201
|
+
? null
|
|
202
|
+
: (itemOwner.get(r.catalog_item_id) ?? null)),
|
|
203
|
+
...platform.map((o) => o.owner_org_id),
|
|
204
|
+
];
|
|
205
|
+
const owners = await ownersOf(db, ownerIds.filter((x) => x !== null));
|
|
206
|
+
return {
|
|
207
|
+
skills: [...ownRows.map((r) => r.id), ...platform.map((o) => o.id)],
|
|
208
|
+
plugins: platform.flatMap((o) => (o.plugin_name === null ? [] : [o.plugin_name])),
|
|
209
|
+
owners: ownerIds.map((x) => ownerOf(x, owners)),
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* The ids among `ids` (platform templates that org copies are pinned to) whose pinned copies the
|
|
214
|
+
* org may use (ruling P2-18): the platform template is on in the org, or it was removed by a
|
|
215
|
+
* plugin update (soft-deleted, ruling P2-7: a pinned copy then keeps its own version as the org's).
|
|
216
|
+
*/
|
|
217
|
+
async function pinnedTemplateLinksServed(db, orgId, ids) {
|
|
54
218
|
if (ids.length === 0)
|
|
219
|
+
return new Set();
|
|
220
|
+
const removed = await db
|
|
221
|
+
.selectFrom("platform_agent_templates")
|
|
222
|
+
.select("id")
|
|
223
|
+
.where("id", "in", [...ids])
|
|
224
|
+
.where("deleted_at", "is not", null)
|
|
225
|
+
.execute();
|
|
226
|
+
return new Set([...(await platformTemplatesOn(db, orgId, ids)), ...removed.map((r) => r.id)]);
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* The platform templates on in the org (`ids`: only those), minus the ones whose type an org
|
|
230
|
+
* template of its own (unlinked, or pinned) already has (the org's wins; logged unless it is a copy
|
|
231
|
+
* of the same component: linked to it, or from the same catalog item; `shadowed` maps such a
|
|
232
|
+
* platform id to that org row's id). On in the org:
|
|
233
|
+
* - never when the template or its plugin is disabled (or its plugin is deleted);
|
|
234
|
+
* - `follow`: its plugin is on in the org (a live install, or builtin) and no component switch of
|
|
235
|
+
* the org says off;
|
|
236
|
+
* - `own`: `wantedOn` over the template's own scope, the org's list membership and its switch.
|
|
237
|
+
* One query for the templates with their plugin and org state, one for the org's clashing rows.
|
|
238
|
+
*/
|
|
239
|
+
async function platformOn(db, orgId, ids, log) {
|
|
240
|
+
const shadowed = new Map();
|
|
241
|
+
const rows = await platformRowsOn(db, orgId, ids);
|
|
242
|
+
if (rows.length === 0)
|
|
243
|
+
return { rows: [], shadowed };
|
|
244
|
+
const own = await db
|
|
245
|
+
.selectFrom("agent_templates")
|
|
246
|
+
.select(["id", "name", "plugin_name", "platform_template_id", "catalog_item_id"])
|
|
247
|
+
.where("org_id", "=", orgId)
|
|
248
|
+
.where("deleted_at", "is", null)
|
|
249
|
+
.where((eb) => eb.or([eb("platform_template_id", "is", null), eb("pinned_version", "is not", null)]))
|
|
250
|
+
.where("name", "in", [...new Set(rows.map((r) => r.name))])
|
|
251
|
+
.execute();
|
|
252
|
+
const ownByType = new Map(own.map((r) => [templateTypeOf(r.plugin_name, r.name), r]));
|
|
253
|
+
const out = [];
|
|
254
|
+
for (const r of rows.sort((a, b) => (a.id < b.id ? -1 : a.id > b.id ? 1 : 0))) {
|
|
255
|
+
const o = ownByType.get(templateTypeOf(r.plugin_name, r.name));
|
|
256
|
+
if (o) {
|
|
257
|
+
const sameComponent = o.platform_template_id === r.id ||
|
|
258
|
+
(o.catalog_item_id !== null && o.catalog_item_id === r.catalog_item_id);
|
|
259
|
+
if (!sameComponent) {
|
|
260
|
+
log?.warn("platform agent template shadowed by an org template of the same type", {
|
|
261
|
+
orgId,
|
|
262
|
+
type: templateTypeOf(r.plugin_name, r.name),
|
|
263
|
+
platformTemplateId: r.id,
|
|
264
|
+
templateId: o.id,
|
|
265
|
+
});
|
|
266
|
+
}
|
|
267
|
+
else {
|
|
268
|
+
shadowed.set(r.id, o.id);
|
|
269
|
+
}
|
|
270
|
+
continue;
|
|
271
|
+
}
|
|
272
|
+
out.push({
|
|
273
|
+
id: r.id,
|
|
274
|
+
name: r.name,
|
|
275
|
+
plugin: r.plugin_name,
|
|
276
|
+
version: r.current_version,
|
|
277
|
+
definition: r.definition,
|
|
278
|
+
sourceFormat: r.source_format,
|
|
279
|
+
catalogItemId: r.catalog_item_id,
|
|
280
|
+
catalogVersion: r.catalog_version,
|
|
281
|
+
origin: "platform",
|
|
282
|
+
platformTemplateId: r.id,
|
|
283
|
+
});
|
|
284
|
+
}
|
|
285
|
+
return { rows: out, shadowed };
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* The org's live templates by id (`ids`; ids that are no usable template are missing): an org
|
|
289
|
+
* template with its current version; an org copy linked to a platform template without a pin
|
|
290
|
+
* (ruling B2) as that platform template's current version under the copy's id, while the platform
|
|
291
|
+
* template is on in the org; a pinned copy as its own version while its platform template is on in
|
|
292
|
+
* the org (ruling P2-18); a platform template id while it is on in the org, or, when an org row
|
|
293
|
+
* of the same component (unlinked or pinned) wins its type, as that row (its `id` is the row's: the
|
|
294
|
+
* roster lists the platform id as an alias). Deleted and foreign ids are left out. `log` receives
|
|
295
|
+
* the type-clash warnings.
|
|
296
|
+
*/
|
|
297
|
+
export async function loadTemplates(db, orgId, ids, log) {
|
|
298
|
+
const unique = [...new Set(ids)];
|
|
299
|
+
if (unique.length === 0)
|
|
55
300
|
return new Map();
|
|
56
|
-
const rows = await baseQuery(db, orgId)
|
|
57
|
-
|
|
301
|
+
const rows = await baseQuery(db, orgId).where("t.id", "in", unique).execute();
|
|
302
|
+
const linked = new Set(rows.filter((r) => r.platform_template_id !== null && r.pinned_version === null));
|
|
303
|
+
const known = new Set(rows.map((r) => r.id));
|
|
304
|
+
const platformIds = [
|
|
305
|
+
...new Set([
|
|
306
|
+
...unique.filter((id) => !known.has(id)),
|
|
307
|
+
...[...linked].map((r) => r.platform_template_id),
|
|
308
|
+
]),
|
|
309
|
+
];
|
|
310
|
+
const on = await platformOn(db, orgId, platformIds, log);
|
|
311
|
+
const platform = new Map(on.rows.map((p) => [p.id, p]));
|
|
312
|
+
const owned = await ownedPlatformIds(db, orgId, [...linked].map((r) => r.platform_template_id));
|
|
313
|
+
// ruling P2-18: a pinned copy serves its own version while its platform template is on
|
|
314
|
+
const pinnedOn = await pinnedTemplateLinksServed(db, orgId, [
|
|
315
|
+
...new Set(rows.flatMap((r) => r.platform_template_id !== null && r.pinned_version !== null
|
|
316
|
+
? [r.platform_template_id]
|
|
317
|
+
: [])),
|
|
318
|
+
]);
|
|
319
|
+
// a selected platform id shadowed by an org row of the same component resolves to that row
|
|
320
|
+
const shadowIds = unique.filter((id) => !known.has(id) && on.shadowed.has(id));
|
|
321
|
+
const shadowRows = new Map((shadowIds.length === 0
|
|
322
|
+
? []
|
|
323
|
+
: await baseQuery(db, orgId)
|
|
324
|
+
.where("t.id", "in", [...new Set(shadowIds.map((id) => on.shadowed.get(id)))])
|
|
325
|
+
.execute()).map((r) => [r.id, orgRaw(r)]));
|
|
326
|
+
const raw = [];
|
|
327
|
+
for (const r of rows) {
|
|
328
|
+
if (linked.has(r)) {
|
|
329
|
+
const p = platform.get(r.platform_template_id);
|
|
330
|
+
if (!p)
|
|
331
|
+
continue;
|
|
332
|
+
if (!owned.has(p.id)) {
|
|
333
|
+
raw.push({ key: r.id, row: { ...p, id: r.id } });
|
|
334
|
+
}
|
|
335
|
+
else if (r.current_version === p.version) {
|
|
336
|
+
// the org's own template, promoted (ruling P3-3) at the same version: its own stored
|
|
337
|
+
// version, so the roster and `subagent_started` see what they saw before
|
|
338
|
+
raw.push({ key: r.id, row: orgRaw(r) });
|
|
339
|
+
}
|
|
340
|
+
else {
|
|
341
|
+
// a newer platform version: under its id, with the copy's roster type
|
|
342
|
+
raw.push({ key: r.id, row: { ...p, id: r.id, plugin: r.plugin_name, ownedCopy: true } });
|
|
343
|
+
}
|
|
344
|
+
continue;
|
|
345
|
+
}
|
|
346
|
+
if (r.platform_template_id !== null && !pinnedOn.has(r.platform_template_id))
|
|
347
|
+
continue;
|
|
348
|
+
raw.push({ key: r.id, row: orgRaw(r) });
|
|
349
|
+
}
|
|
350
|
+
for (const id of unique) {
|
|
351
|
+
if (known.has(id))
|
|
352
|
+
continue;
|
|
353
|
+
const p = platform.get(id);
|
|
354
|
+
if (p) {
|
|
355
|
+
raw.push({ key: id, row: p });
|
|
356
|
+
continue;
|
|
357
|
+
}
|
|
358
|
+
const o = shadowRows.get(on.shadowed.get(id) ?? "");
|
|
359
|
+
if (o)
|
|
360
|
+
raw.push({ key: id, row: o });
|
|
361
|
+
}
|
|
362
|
+
const done = await normalized(db, orgId, raw.map((x) => x.row));
|
|
363
|
+
return new Map(raw.map((x, i) => [x.key, done[i]]));
|
|
364
|
+
}
|
|
365
|
+
/**
|
|
366
|
+
* The org's usable templates, by plugin (none first), name and id: its own live templates
|
|
367
|
+
* (unlinked, or pinned while their platform template is on in the org, ruling P2-18) and the platform templates on in the org (see {@link platformOn}). An org
|
|
368
|
+
* copy linked without a pin is not listed: its platform template is; except the org's own template
|
|
369
|
+
* it promoted (ruling P3-3), listed once under its own id instead of the platform template. `log`
|
|
370
|
+
* receives the type-clash warnings.
|
|
371
|
+
*/
|
|
372
|
+
export async function usableTemplates(db, orgId, log) {
|
|
373
|
+
const own = await baseQuery(db, orgId)
|
|
374
|
+
.where((eb) => eb.or([eb("t.platform_template_id", "is", null), eb("t.pinned_version", "is not", null)]))
|
|
375
|
+
.execute();
|
|
376
|
+
// ruling P2-18: a pinned copy follows its platform template's availability (the pin fixes the
|
|
377
|
+
// version only)
|
|
378
|
+
const pinnedOn = await pinnedTemplateLinksServed(db, orgId, [
|
|
379
|
+
...new Set(own.flatMap((r) => (r.platform_template_id === null ? [] : [r.platform_template_id]))),
|
|
380
|
+
]);
|
|
381
|
+
// the org's own templates it promoted: under their own ids, instead of their platform templates
|
|
382
|
+
const promoted = await db
|
|
383
|
+
.selectFrom("agent_templates as t")
|
|
384
|
+
.innerJoin("platform_agent_templates as p", "p.id", "t.platform_template_id")
|
|
385
|
+
.select(["t.id", "t.platform_template_id"])
|
|
386
|
+
.where("t.org_id", "=", orgId)
|
|
387
|
+
.where("t.deleted_at", "is", null)
|
|
388
|
+
.where("t.pinned_version", "is", null)
|
|
389
|
+
.where("p.owner_org_id", "=", orgId)
|
|
390
|
+
.where("p.deleted_at", "is", null)
|
|
58
391
|
.execute();
|
|
59
|
-
|
|
392
|
+
const promotedTo = new Set(promoted.map((r) => r.platform_template_id));
|
|
393
|
+
const served = promoted.length === 0
|
|
394
|
+
? []
|
|
395
|
+
: [
|
|
396
|
+
...(await loadTemplates(db, orgId, promoted.map((r) => r.id), log)).values(),
|
|
397
|
+
];
|
|
398
|
+
const rows = [
|
|
399
|
+
...(await normalized(db, orgId, [
|
|
400
|
+
...own
|
|
401
|
+
.filter((r) => r.platform_template_id === null || pinnedOn.has(r.platform_template_id))
|
|
402
|
+
.map(orgRaw),
|
|
403
|
+
...(await platformOn(db, orgId, undefined, log)).rows.filter((p) => !promotedTo.has(p.id)),
|
|
404
|
+
])),
|
|
405
|
+
...served,
|
|
406
|
+
];
|
|
407
|
+
const key = (t) => [t.plugin ?? "", t.name, t.id];
|
|
408
|
+
return rows.sort((a, b) => {
|
|
409
|
+
const [x, y] = [key(a), key(b)];
|
|
410
|
+
for (let i = 0; i < x.length; i++) {
|
|
411
|
+
if (x[i] !== y[i])
|
|
412
|
+
return x[i] < y[i] ? -1 : 1;
|
|
413
|
+
}
|
|
414
|
+
return 0;
|
|
415
|
+
});
|
|
416
|
+
}
|
|
417
|
+
/**
|
|
418
|
+
* The one "org's own template" predicate (rulings P3-6, P3-46, P4-13), shared by the template
|
|
419
|
+
* routes and `OwnedItems`: the org's live row `id` is its own when it is an org template (no
|
|
420
|
+
* plugin, no catalog item) that is unlinked, or linked without a pin to a live platform row the
|
|
421
|
+
* org owns (promoted on share). Returns the row (`forUpdate`: locked), `{ own: false, name }` for
|
|
422
|
+
* a row of the org that is not its own (a plugin's template, a copy of another owner's platform
|
|
423
|
+
* template), or undefined when the org has no live row `id`.
|
|
424
|
+
*/
|
|
425
|
+
export async function readOwnTemplate(db, orgId, id, forUpdate) {
|
|
426
|
+
let q = db
|
|
427
|
+
.selectFrom("agent_templates as t")
|
|
428
|
+
.leftJoin("platform_agent_templates as p", "p.id", "t.platform_template_id")
|
|
429
|
+
.select([
|
|
430
|
+
"t.id",
|
|
431
|
+
"t.name",
|
|
432
|
+
"t.current_version",
|
|
433
|
+
"t.shareable",
|
|
434
|
+
"t.plugin_name",
|
|
435
|
+
"t.catalog_item_id",
|
|
436
|
+
"t.platform_template_id",
|
|
437
|
+
"t.pinned_version",
|
|
438
|
+
"p.owner_org_id",
|
|
439
|
+
"p.deleted_at as p_deleted_at",
|
|
440
|
+
])
|
|
441
|
+
.where("t.id", "=", id)
|
|
442
|
+
.where("t.org_id", "=", orgId)
|
|
443
|
+
.where("t.deleted_at", "is", null);
|
|
444
|
+
if (forUpdate)
|
|
445
|
+
q = q.forUpdate("t");
|
|
446
|
+
const r = await q.executeTakeFirst();
|
|
447
|
+
if (!r)
|
|
448
|
+
return undefined;
|
|
449
|
+
const notOwn = { own: false, name: r.name };
|
|
450
|
+
if (r.plugin_name !== null || r.catalog_item_id !== null)
|
|
451
|
+
return notOwn;
|
|
452
|
+
const own = {
|
|
453
|
+
id: r.id,
|
|
454
|
+
name: r.name,
|
|
455
|
+
current_version: r.current_version,
|
|
456
|
+
shareable: r.shareable,
|
|
457
|
+
};
|
|
458
|
+
if (r.platform_template_id === null)
|
|
459
|
+
return { ...own, link: null };
|
|
460
|
+
const promoted = r.pinned_version === null && r.owner_org_id === orgId && r.p_deleted_at === null;
|
|
461
|
+
return promoted ? { ...own, link: r.platform_template_id } : notOwn;
|
|
462
|
+
}
|
|
463
|
+
/**
|
|
464
|
+
* The listing view of a usable template; `linkedIds`: the org's unpinned copies linked to it (a
|
|
465
|
+
* platform template only).
|
|
466
|
+
*/
|
|
467
|
+
export function templateViewOf(t, linkedIds) {
|
|
468
|
+
return {
|
|
469
|
+
id: t.id,
|
|
470
|
+
name: t.name,
|
|
471
|
+
plugin: t.plugin,
|
|
472
|
+
type: templateTypeOf(t.plugin, t.name),
|
|
473
|
+
description: typeof t.template.description === "string" ? t.template.description : "",
|
|
474
|
+
model: t.template.model ?? "inherit",
|
|
475
|
+
version: t.version,
|
|
476
|
+
sourceFormat: t.sourceFormat,
|
|
477
|
+
catalogItemId: t.catalogItemId,
|
|
478
|
+
catalogVersion: t.catalogVersion,
|
|
479
|
+
// the org's own template it promoted is the org's own, whatever version it serves
|
|
480
|
+
origin: t.ownedCopy ? "org" : t.origin,
|
|
481
|
+
...(t.origin === "platform" && !t.ownedCopy && { linkedIds }),
|
|
482
|
+
};
|
|
60
483
|
}
|
|
61
484
|
/** Reads the org's agent templates (consumed by the roster, the agent page and Task 19's API). */
|
|
62
485
|
let AgentTemplatesService = class AgentTemplatesService {
|
|
@@ -64,40 +487,35 @@ let AgentTemplatesService = class AgentTemplatesService {
|
|
|
64
487
|
constructor(db) {
|
|
65
488
|
this.db = db;
|
|
66
489
|
}
|
|
67
|
-
/**
|
|
490
|
+
/**
|
|
491
|
+
* Every usable template of the org ({@link usableTemplates}), by plugin then name; a platform
|
|
492
|
+
* template carries the ids of the org's unpinned copies linked to it (`linkedIds`).
|
|
493
|
+
*/
|
|
68
494
|
async listForOrg(orgId) {
|
|
69
|
-
const
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
495
|
+
const usable = await usableTemplates(this.db.db, orgId);
|
|
496
|
+
const platformIds = usable.filter((t) => t.origin === "platform").map((t) => t.id);
|
|
497
|
+
const links = platformIds.length === 0
|
|
498
|
+
? []
|
|
499
|
+
: await this.db.db
|
|
500
|
+
.selectFrom("agent_templates")
|
|
501
|
+
.select(["id", "platform_template_id"])
|
|
502
|
+
.where("org_id", "=", orgId)
|
|
503
|
+
.where("deleted_at", "is", null)
|
|
504
|
+
.where("pinned_version", "is", null)
|
|
505
|
+
.where("platform_template_id", "in", platformIds)
|
|
506
|
+
.orderBy("id")
|
|
507
|
+
.execute();
|
|
508
|
+
const linked = new Map();
|
|
509
|
+
for (const l of links) {
|
|
510
|
+
const k = l.platform_template_id;
|
|
511
|
+
linked.set(k, [...(linked.get(k) ?? []), l.id]);
|
|
512
|
+
}
|
|
513
|
+
return usable.map((t) => templateViewOf(t, linked.get(t.id) ?? []));
|
|
88
514
|
}
|
|
89
|
-
/** A
|
|
515
|
+
/** A usable template by id or by its roster type; null when there is none. */
|
|
90
516
|
async resolve(orgId, ref) {
|
|
91
|
-
const
|
|
92
|
-
|
|
93
|
-
q =
|
|
94
|
-
i < 0
|
|
95
|
-
? q.where("t.id", "=", ref)
|
|
96
|
-
: q.where("t.plugin_name", "=", ref.slice(0, i)).where("t.name", "=", ref.slice(i + 1));
|
|
97
|
-
const r = await q.executeTakeFirst();
|
|
98
|
-
if (!r)
|
|
99
|
-
return null;
|
|
100
|
-
const [t] = await scopedRows(this.db.db, orgId, [r]);
|
|
517
|
+
const t = (await loadTemplates(this.db.db, orgId, [ref])).get(ref) ??
|
|
518
|
+
(await usableTemplates(this.db.db, orgId)).find((u) => templateTypeOf(u.plugin, u.name) === ref);
|
|
101
519
|
if (!t)
|
|
102
520
|
return null;
|
|
103
521
|
return { id: t.id, version: t.version, plugin: t.plugin, template: t.template };
|
|
@@ -109,9 +527,10 @@ AgentTemplatesService = __decorate([
|
|
|
109
527
|
], AgentTemplatesService);
|
|
110
528
|
export { AgentTemplatesService };
|
|
111
529
|
/**
|
|
112
|
-
* Writes `template` as the org's live template `<plugin>:<name>`
|
|
113
|
-
* caller holds the org row lock): a new template
|
|
114
|
-
* one when its definition differs (`changed`,
|
|
530
|
+
* Writes `template` as the org's live template `<plugin>:<name>` (the bare `<name>` when `plugin`
|
|
531
|
+
* is null) in the caller's transaction (the caller holds the org row lock): a new template
|
|
532
|
+
* (version 1, `created`), a new version of the live one when its definition differs (`changed`,
|
|
533
|
+
* the version added), or nothing when it is equal.
|
|
115
534
|
*/
|
|
116
535
|
export async function putTemplateVersionIn(t, s, template) {
|
|
117
536
|
const live = await t
|
|
@@ -119,7 +538,7 @@ export async function putTemplateVersionIn(t, s, template) {
|
|
|
119
538
|
.innerJoin("agent_template_versions as v", (j) => j.onRef("v.template_id", "=", "a.id").onRef("v.version", "=", "a.current_version"))
|
|
120
539
|
.select(["a.id", "a.current_version", "v.definition"])
|
|
121
540
|
.where("a.org_id", "=", s.orgId)
|
|
122
|
-
.where("a.plugin_name", "=", s.plugin)
|
|
541
|
+
.where((eb) => s.plugin === null ? eb("a.plugin_name", "is", null) : eb("a.plugin_name", "=", s.plugin))
|
|
123
542
|
.where("a.name", "=", template.name)
|
|
124
543
|
.where("a.deleted_at", "is", null)
|
|
125
544
|
.forUpdate("a")
|
|
@@ -136,7 +555,7 @@ export async function putTemplateVersionIn(t, s, template) {
|
|
|
136
555
|
id,
|
|
137
556
|
org_id: s.orgId,
|
|
138
557
|
name: template.name,
|
|
139
|
-
catalog_item_id: s.catalogItemId,
|
|
558
|
+
catalog_item_id: s.catalogItemId ?? null,
|
|
140
559
|
plugin_name: s.plugin,
|
|
141
560
|
current_version: 1,
|
|
142
561
|
})
|
|
@@ -155,7 +574,11 @@ export async function putTemplateVersionIn(t, s, template) {
|
|
|
155
574
|
if (live) {
|
|
156
575
|
await t
|
|
157
576
|
.updateTable("agent_templates")
|
|
158
|
-
.set({
|
|
577
|
+
.set({
|
|
578
|
+
current_version: version,
|
|
579
|
+
catalog_item_id: s.catalogItemId ?? null,
|
|
580
|
+
updated_at: new Date(),
|
|
581
|
+
})
|
|
159
582
|
.where("id", "=", id)
|
|
160
583
|
.execute();
|
|
161
584
|
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { type Principal } from "../identity/principal.js";
|
|
3
|
+
import { type OrgContext } from "../orgs/org.guard.js";
|
|
4
|
+
import { type BackgroundTaskOutput, BackgroundTasks, type BackgroundTaskView } from "./tasks.service.js";
|
|
5
|
+
declare const ConversationParams: z.ZodObject<{
|
|
6
|
+
id: z.ZodString;
|
|
7
|
+
}, z.core.$strip>;
|
|
8
|
+
declare const TaskParams: z.ZodObject<{
|
|
9
|
+
id: z.ZodString;
|
|
10
|
+
taskId: z.ZodString;
|
|
11
|
+
}, z.core.$strip>;
|
|
12
|
+
declare const OutputQuery: z.ZodObject<{
|
|
13
|
+
tail: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
14
|
+
}, z.core.$strip>;
|
|
15
|
+
/**
|
|
16
|
+
* Background Bash tasks of a conversation (spec 2026-11-05-background-bash-design §5). Visible to
|
|
17
|
+
* whoever sees the conversation, stoppable by whoever may abort its run (the owner): the same
|
|
18
|
+
* checks as `GET :id` and `POST :id/abort`.
|
|
19
|
+
*/
|
|
20
|
+
export declare class BackgroundController {
|
|
21
|
+
private readonly tasks;
|
|
22
|
+
constructor(tasks: BackgroundTasks);
|
|
23
|
+
/** The conversation's tasks and its sub-agents' (`subagentId`), newest first. */
|
|
24
|
+
list(principal: Principal, org: OrgContext, params: z.infer<typeof ConversationParams>): Promise<{
|
|
25
|
+
tasks: BackgroundTaskView[];
|
|
26
|
+
}>;
|
|
27
|
+
/**
|
|
28
|
+
* Stops a task like a person's stop: 200 `{ task }` with the row after the stop. A task that is
|
|
29
|
+
* still `running` with `stopping: true` is being stopped by another request (or is still
|
|
30
|
+
* launching); a stop that fails is an error and the task keeps running.
|
|
31
|
+
*/
|
|
32
|
+
stop(principal: Principal, org: OrgContext, params: z.infer<typeof TaskParams>): Promise<{
|
|
33
|
+
task: BackgroundTaskView;
|
|
34
|
+
}>;
|
|
35
|
+
/** The end of the task's output (`tail` bytes, at most 65536); 409 when it cannot be read now. */
|
|
36
|
+
output(principal: Principal, org: OrgContext, params: z.infer<typeof TaskParams>, q: z.infer<typeof OutputQuery>): Promise<BackgroundTaskOutput>;
|
|
37
|
+
}
|
|
38
|
+
export {};
|