@capybara-hq/kernel 0.1.0-rc.4 → 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 +39 -13
- package/dist/admin/admin.controller.js +33 -17
- package/dist/admin/extensions.controller.d.ts +16 -2
- package/dist/admin/extensions.controller.js +26 -6
- 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 +16 -0
- package/dist/agents/agent-lookup.js +11 -0
- package/dist/agents/agents.controller.d.ts +76 -1
- package/dist/agents/agents.controller.js +90 -11
- package/dist/agents/agents.module.d.ts +4 -1
- package/dist/agents/agents.module.js +32 -6
- package/dist/agents/agents.service.d.ts +51 -22
- package/dist/agents/agents.service.js +172 -70
- package/dist/agents/definition.d.ts +49 -0
- package/dist/agents/definition.js +45 -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/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/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 +475 -52
- package/dist/background/background.module.js +8 -1
- package/dist/background/finish.d.ts +3 -2
- package/dist/background/launch-lock.d.ts +4 -3
- package/dist/background/launch-lock.js +4 -3
- package/dist/background/poll.job.d.ts +9 -6
- package/dist/background/poll.job.js +30 -22
- package/dist/background/session.d.ts +13 -2
- package/dist/background/session.js +13 -0
- package/dist/background/stop.d.ts +12 -6
- package/dist/background/stop.js +57 -39
- package/dist/background/store.d.ts +18 -6
- package/dist/background/store.js +12 -6
- package/dist/background/tasks.service.d.ts +15 -5
- package/dist/background/tasks.service.js +42 -17
- package/dist/background/wake-rules.d.ts +27 -18
- package/dist/background/wake-rules.js +52 -22
- package/dist/background/wake.d.ts +13 -11
- package/dist/background/wake.js +20 -14
- 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/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 +622 -82
- 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 +1147 -1136
- 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 +20 -2
- package/dist/channels/channels.module.js +2 -0
- 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/config/docs.js +3 -1
- package/dist/config/schema.d.ts +6 -2
- package/dist/config/schema.js +46 -22
- package/dist/conversations/access.d.ts +6 -4
- package/dist/conversations/access.js +27 -5
- package/dist/conversations/agent-tree.d.ts +46 -0
- package/dist/conversations/agent-tree.js +92 -0
- package/dist/conversations/conversations.controller.d.ts +43 -18
- package/dist/conversations/conversations.controller.js +79 -38
- package/dist/conversations/conversations.module.d.ts +1 -1
- package/dist/conversations/conversations.module.js +7 -7
- package/dist/conversations/conversations.service.d.ts +69 -12
- package/dist/conversations/conversations.service.js +106 -27
- package/dist/conversations/environment-status.d.ts +24 -0
- package/dist/conversations/environment-status.js +71 -0
- package/dist/conversations/event-log.d.ts +20 -5
- package/dist/conversations/event-log.js +60 -0
- package/dist/conversations/events.d.ts +84 -2
- package/dist/conversations/events.js +91 -17
- package/dist/conversations/queue.service.d.ts +1 -1
- package/dist/conversations/queue.service.js +5 -0
- package/dist/conversations/titles.d.ts +5 -3
- package/dist/conversations/titles.js +21 -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 +362 -18
- 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 +82 -2
- package/dist/errors.js +82 -2
- package/dist/evals/reconstruct.d.ts +18 -9
- package/dist/evals/reconstruct.js +26 -7
- package/dist/evals/run-replay.d.ts +4 -2
- package/dist/evals/run-replay.js +16 -4
- package/dist/evals/step-replay.d.ts +2 -5
- package/dist/evals/step-replay.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 +65 -42
- package/dist/extensions/admin-view.d.ts +37 -10
- package/dist/extensions/admin-view.js +103 -20
- 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/deployment-config.d.ts +28 -5
- package/dist/extensions/deployment-config.js +48 -7
- package/dist/extensions/effective-config.d.ts +127 -0
- package/dist/extensions/effective-config.js +368 -0
- package/dist/extensions/extensions.module.js +8 -2
- package/dist/extensions/hooks.d.ts +37 -4
- package/dist/extensions/hooks.js +82 -16
- package/dist/extensions/host.d.ts +19 -1
- package/dist/extensions/host.js +30 -7
- package/dist/extensions/installs.d.ts +20 -8
- package/dist/extensions/installs.js +37 -15
- package/dist/extensions/org-config.d.ts +75 -6
- package/dist/extensions/org-config.js +184 -32
- 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/permission-view.d.ts +16 -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.d.ts +12 -5
- package/dist/extensions/point-defaults.js +37 -9
- 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 +23 -3
- package/dist/http/app.d.ts +11 -2
- package/dist/http/app.js +31 -5
- 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.guard.d.ts +13 -5
- package/dist/identity/auth.guard.js +26 -9
- package/dist/identity/identity.module.d.ts +1 -1
- package/dist/identity/identity.module.js +4 -4
- package/dist/identity/me.controller.js +1 -1
- package/dist/identity/principal.d.ts +3 -3
- package/dist/identity/principal.js +3 -3
- 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 +1 -1
- package/dist/index.js +1 -1
- package/dist/infra/cli/kernel-cli.module.js +9 -1
- package/dist/infra/config/kernel-config.service.js +21 -1
- 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 +11 -2
- package/dist/infra/queue/add-job-once.d.ts +14 -0
- package/dist/infra/queue/add-job-once.js +16 -0
- 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/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 +20 -9
- package/dist/models/purposes.js +17 -8
- package/dist/orgs/directory-sync.d.ts +14 -5
- package/dist/orgs/directory-sync.js +41 -17
- package/dist/orgs/offboarding.d.ts +9 -7
- package/dist/orgs/offboarding.js +28 -17
- 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 +15 -3
- package/dist/orgs/settings.service.js +6 -2
- 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 +9 -1
- package/dist/runtime/context/build.d.ts +6 -4
- package/dist/runtime/context/build.js +26 -7
- package/dist/runtime/context/claude-tools.d.ts +2 -1
- package/dist/runtime/context/claude-tools.js +5 -4
- package/dist/runtime/context/compaction.js +9 -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 +35 -17
- package/dist/runtime/loop.d.ts +32 -4
- package/dist/runtime/maintenance.d.ts +7 -4
- package/dist/runtime/maintenance.js +23 -8
- package/dist/runtime/model-call.d.ts +30 -8
- package/dist/runtime/model-call.js +69 -19
- 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 +37 -3
- package/dist/runtime/run-queue.js +188 -11
- package/dist/runtime/run-worker.d.ts +11 -5
- package/dist/runtime/run-worker.js +54 -31
- package/dist/runtime/runtime.module.js +3 -0
- package/dist/runtime/step-log.d.ts +9 -4
- package/dist/runtime/step-log.js +8 -5
- 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 +43 -29
- 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.js +17 -12
- package/dist/runtime/waits.d.ts +140 -37
- package/dist/runtime/waits.js +394 -106
- 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 +4 -3
- package/dist/sandbox/sandbox.service.d.ts +229 -134
- package/dist/sandbox/sandbox.service.js +630 -409
- 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 +23 -4
- package/dist/tools/builtin-names.d.ts +21 -5
- package/dist/tools/builtin-names.js +30 -5
- 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 +6 -2
- package/dist/tools/builtins/builtin-tools.js +37 -12
- 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.js +13 -3
- package/dist/tools/builtins/sandbox/common.d.ts +43 -24
- package/dist/tools/builtins/sandbox/common.js +80 -45
- 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 +1 -1
- package/dist/tools/builtins/sandbox/index.js +1 -1
- package/dist/tools/builtins/sandbox/read.js +1 -1
- package/dist/tools/builtins/sandbox/task-output.d.ts +14 -3
- package/dist/tools/builtins/sandbox/task-output.js +30 -5
- package/dist/tools/builtins/sandbox/task-stop.js +2 -1
- 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/extract.js +5 -1
- package/dist/tools/builtins/web/fetch.js +1 -0
- package/dist/tools/builtins/web/search.js +1 -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/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 +187 -364
- package/dist/tools/policy.d.ts +1 -1
- package/dist/tools/policy.js +36 -16
- package/dist/tools/registry.d.ts +98 -5
- package/dist/tools/registry.js +87 -9
- package/dist/tools/tools.module.js +12 -2
- package/dist/ui/views.d.ts +2 -1
- package/dist/ui/views.js +17 -3
- package/package.json +3 -3
- 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 -32
- package/dist/extensions/org-config.controller.js +0 -70
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { KernelSchemaDb } from "../db/kernel-schema.js";
|
|
2
|
+
import { ApiError } from "../errors.js";
|
|
3
|
+
/**
|
|
4
|
+
* Before an org creates a component from the catalog (enabling an extension, creating a connector
|
|
5
|
+
* from a template, importing a skill), re-checks in the caller's transaction that the item is live
|
|
6
|
+
* and not disabled by the super admin (`catalog.item_disabled`). A dependency's components
|
|
7
|
+
* pass `approvedBy`, the item the org is installing: the dependency's own item must still be live
|
|
8
|
+
* and not disabled, and the installed item is judged too. Scope is decided by the org switch, not
|
|
9
|
+
* here.
|
|
10
|
+
*/
|
|
11
|
+
export declare function assertItemInstallable(t: KernelSchemaDb, orgId: string, itemId: string, approvedBy?: string): Promise<void>;
|
|
12
|
+
/**
|
|
13
|
+
* The extensions among `plugins` whose own catalog item (the non-deleted item with the same name) is
|
|
14
|
+
* disabled (FOR SHARE: exclusive with the admin changing it). A disabled item is a master switch: no
|
|
15
|
+
* path (direct enabling, its item, another plugin) can newly enable its extension (Ruling M-5).
|
|
16
|
+
*/
|
|
17
|
+
export declare function disabledPluginItems(db: KernelSchemaDb, plugins: readonly string[]): Promise<string[]>;
|
|
18
|
+
/**
|
|
19
|
+
* Throws `catalog.item_disabled` when a plugin's own catalog item is disabled (the message names
|
|
20
|
+
* the plugin).
|
|
21
|
+
*/
|
|
22
|
+
export declare function pluginItemDisabled(names: readonly string[]): ApiError;
|
|
23
|
+
/**
|
|
24
|
+
* When an org enables an extension directly (not by installing from an item, e.g.
|
|
25
|
+
* `PUT /orgs/:orgId/extensions/:extension`), every catalog item that brought it into the deployment
|
|
26
|
+
* (`extension_catalog_sources`) is consulted: any source disabled -> `catalog.item_disabled`. Deleted
|
|
27
|
+
* items no longer count as sources. No source (not installed through the catalog) -> not bound.
|
|
28
|
+
*/
|
|
29
|
+
export declare function assertPluginSourcesInstallable(t: KernelSchemaDb, orgId: string, plugin: string): Promise<void>;
|
|
30
|
+
/** The PAT recorded in the audit (when a personal access token made the call). */
|
|
31
|
+
export interface RequestActorOpts {
|
|
32
|
+
actorTokenId?: string;
|
|
33
|
+
/** Merged into the audit detail (a write made through the Platform tool: `via`, …). */
|
|
34
|
+
auditDetail?: Record<string, unknown>;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Cancels catalog requests still pending in the caller's transaction (`db` is its handle; when the
|
|
38
|
+
* item or the org is deleted), status `cancelled` (the decider is the actor). Each one audits
|
|
39
|
+
* `catalog.request_cancelled` (with the reason). Returns how many were cancelled.
|
|
40
|
+
*/
|
|
41
|
+
export declare function cancelPendingRequests(db: KernelSchemaDb, where: {
|
|
42
|
+
itemId: string;
|
|
43
|
+
} | {
|
|
44
|
+
orgId: string;
|
|
45
|
+
}, actor: string | null, reason: "item_removed" | "org_deleted", opts?: RequestActorOpts): Promise<number>;
|
|
46
|
+
/**
|
|
47
|
+
* After an install (or an upgrade) of the item in the org, in the caller's transaction: the org's
|
|
48
|
+
* pending requests for the item (a member's `enable`, an `access` the scope has since granted) are
|
|
49
|
+
* approved with the installer as the decider (null for the scope sync). Audits
|
|
50
|
+
* `catalog.request_decided` with `installed: true`.
|
|
51
|
+
*/
|
|
52
|
+
export declare function resolveRequestsByInstall(db: KernelSchemaDb, orgId: string, itemId: string, actor: string | null, opts?: RequestActorOpts): Promise<void>;
|
|
53
|
+
/** The pending `import` request linked to a staged import (its approval prepared it), if any. */
|
|
54
|
+
export declare function importRequestOf(db: KernelSchemaDb, stagingId: string): Promise<{
|
|
55
|
+
id: string;
|
|
56
|
+
orgId: string;
|
|
57
|
+
} | undefined>;
|
|
58
|
+
/** Whether pending `import` requests are linked to the staging (its confirm resolves them). */
|
|
59
|
+
export declare function hasImportRequests(db: KernelSchemaDb, stagingId: string): Promise<boolean>;
|
|
60
|
+
/**
|
|
61
|
+
* The confirm of a staged import, in its transaction: the pending `import` requests linked to the
|
|
62
|
+
* staging are approved (decider: the confirming admin) and point at the item. Audits
|
|
63
|
+
* `catalog.request_decided`. Returns the requests' orgs.
|
|
64
|
+
*/
|
|
65
|
+
export declare function resolveImportRequests(db: KernelSchemaDb, stagingId: string, itemId: string, actor: string | null, opts?: RequestActorOpts): Promise<string[]>;
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
import { sql } from "kysely";
|
|
2
|
+
import { ApiError } from "../errors.js";
|
|
3
|
+
import { audit } from "../identity/audit.js";
|
|
4
|
+
import { isUsable, itemPendingError } from "./ownership.js";
|
|
5
|
+
import { visibleTo } from "./scope.js";
|
|
6
|
+
/**
|
|
7
|
+
* The catalog's database-level rules shared by the installers, the import confirm and the request
|
|
8
|
+
* service (kept apart from `CatalogRequestsService` so the services that depend on them do not
|
|
9
|
+
* import it): whether an item may be newly installed in an org, and the request rows an install,
|
|
10
|
+
* an import confirm or a deletion resolves.
|
|
11
|
+
*/
|
|
12
|
+
const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
13
|
+
const itemDisabled = () => new ApiError("catalog.item_disabled", "This catalog item is disabled by the super admin and cannot be newly installed");
|
|
14
|
+
/** Reads the item in the caller's transaction (FOR SHARE: exclusive with the admin disabling or deleting it). Missing or deleted -> undefined. */
|
|
15
|
+
async function lockItem(t, itemId) {
|
|
16
|
+
if (!UUID_RE.test(itemId))
|
|
17
|
+
return undefined;
|
|
18
|
+
return t
|
|
19
|
+
.selectFrom("catalog_items")
|
|
20
|
+
.select(["id", "name", "disabled", "scope", "builtin", "deleted_at", "awaiting_confirmation"])
|
|
21
|
+
.where("id", "=", itemId)
|
|
22
|
+
.forShare()
|
|
23
|
+
.executeTakeFirst();
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Before an org creates a component from the catalog (enabling an extension, creating a connector
|
|
27
|
+
* from a template, importing a skill), re-checks in the caller's transaction that the item is live
|
|
28
|
+
* and not disabled by the super admin (`catalog.item_disabled`). A dependency's components
|
|
29
|
+
* pass `approvedBy`, the item the org is installing: the dependency's own item must still be live
|
|
30
|
+
* and not disabled, and the installed item is judged too. Scope is decided by the org switch, not
|
|
31
|
+
* here.
|
|
32
|
+
*/
|
|
33
|
+
export async function assertItemInstallable(t, orgId, itemId, approvedBy = itemId) {
|
|
34
|
+
if (approvedBy !== itemId)
|
|
35
|
+
assertUsable(await lockItem(t, itemId));
|
|
36
|
+
const item = await lockItem(t, approvedBy);
|
|
37
|
+
assertUsable(item);
|
|
38
|
+
if (!(await offeredTo(t, orgId, item)))
|
|
39
|
+
throw notOffered();
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* The item is usable ({@link isUsable}): gone or disabled -> `catalog.item_disabled`; an org
|
|
43
|
+
* upload still waiting for the super admin -> 409 `catalog.item_pending` (ruling P3-9).
|
|
44
|
+
*/
|
|
45
|
+
function assertUsable(item) {
|
|
46
|
+
if (item && isUsable(item))
|
|
47
|
+
return;
|
|
48
|
+
if (item && item.deleted_at === null && !item.disabled)
|
|
49
|
+
throw itemPendingError(item.name);
|
|
50
|
+
throw itemDisabled();
|
|
51
|
+
}
|
|
52
|
+
const notOffered = () => new ApiError("catalog.approval_required", "This catalog item is not offered to this organization (plugin scope)");
|
|
53
|
+
/** Scope rule: a `named` item is offered only to the orgs on its list (builtin implies `all`). */
|
|
54
|
+
async function offeredTo(t, orgId, item) {
|
|
55
|
+
const scope = item.builtin ? "all" : item.scope;
|
|
56
|
+
if (scope !== "named")
|
|
57
|
+
return true;
|
|
58
|
+
const listed = await t
|
|
59
|
+
.selectFrom("catalog_item_scope_orgs")
|
|
60
|
+
.select("item_id")
|
|
61
|
+
.where("item_id", "=", item.id)
|
|
62
|
+
.where("org_id", "=", orgId)
|
|
63
|
+
.executeTakeFirst();
|
|
64
|
+
return visibleTo({ scope }, listed !== undefined);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* The extensions among `plugins` whose own catalog item (the non-deleted item with the same name) is
|
|
68
|
+
* disabled (FOR SHARE: exclusive with the admin changing it). A disabled item is a master switch: no
|
|
69
|
+
* path (direct enabling, its item, another plugin) can newly enable its extension (Ruling M-5).
|
|
70
|
+
*/
|
|
71
|
+
export async function disabledPluginItems(db, plugins) {
|
|
72
|
+
if (plugins.length === 0)
|
|
73
|
+
return [];
|
|
74
|
+
const rows = await db
|
|
75
|
+
.selectFrom("catalog_items")
|
|
76
|
+
.select("name")
|
|
77
|
+
.where("name", "in", [...plugins])
|
|
78
|
+
.where("disabled", "=", true)
|
|
79
|
+
.where("deleted_at", "is", null)
|
|
80
|
+
.orderBy("name")
|
|
81
|
+
.forShare()
|
|
82
|
+
.execute();
|
|
83
|
+
return [...new Set(rows.map((r) => r.name))];
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Throws `catalog.item_disabled` when a plugin's own catalog item is disabled (the message names
|
|
87
|
+
* the plugin).
|
|
88
|
+
*/
|
|
89
|
+
export function pluginItemDisabled(names) {
|
|
90
|
+
return new ApiError("catalog.item_disabled", `The super admin disabled the catalog item of extension ${names.join(", ")}; it cannot be newly enabled, not even through a plugin that bundles it`);
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* When an org enables an extension directly (not by installing from an item, e.g.
|
|
94
|
+
* `PUT /orgs/:orgId/extensions/:extension`), every catalog item that brought it into the deployment
|
|
95
|
+
* (`extension_catalog_sources`) is consulted: any source disabled -> `catalog.item_disabled`. Deleted
|
|
96
|
+
* items no longer count as sources. No source (not installed through the catalog) -> not bound.
|
|
97
|
+
*/
|
|
98
|
+
export async function assertPluginSourcesInstallable(t, orgId, plugin) {
|
|
99
|
+
const rows = await t
|
|
100
|
+
.selectFrom("extension_catalog_sources as s")
|
|
101
|
+
.innerJoin("catalog_items as i", "i.id", "s.item_id")
|
|
102
|
+
.select(["i.id", "i.disabled", "i.scope", "i.builtin"])
|
|
103
|
+
.where("s.plugin", "=", plugin)
|
|
104
|
+
.where("i.deleted_at", "is", null)
|
|
105
|
+
.orderBy("i.id")
|
|
106
|
+
.forShare("i")
|
|
107
|
+
.execute();
|
|
108
|
+
if (rows.some((r) => r.disabled))
|
|
109
|
+
throw itemDisabled();
|
|
110
|
+
for (const r of rows)
|
|
111
|
+
if (!(await offeredTo(t, orgId, r)))
|
|
112
|
+
throw notOffered();
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Cancels catalog requests still pending in the caller's transaction (`db` is its handle; when the
|
|
116
|
+
* item or the org is deleted), status `cancelled` (the decider is the actor). Each one audits
|
|
117
|
+
* `catalog.request_cancelled` (with the reason). Returns how many were cancelled.
|
|
118
|
+
*/
|
|
119
|
+
export async function cancelPendingRequests(db, where, actor, reason, opts = {}) {
|
|
120
|
+
let q = db
|
|
121
|
+
.updateTable("catalog_requests")
|
|
122
|
+
.set({ status: "cancelled", decided_by: actor, decided_at: sql `now()` })
|
|
123
|
+
.where("status", "=", "pending");
|
|
124
|
+
q =
|
|
125
|
+
"itemId" in where ? q.where("item_id", "=", where.itemId) : q.where("org_id", "=", where.orgId);
|
|
126
|
+
const rows = await q.returning(["id", "org_id", "item_id", "kind"]).execute();
|
|
127
|
+
for (const r of rows) {
|
|
128
|
+
await audit(db, {
|
|
129
|
+
actorAccountId: actor,
|
|
130
|
+
...(opts.actorTokenId !== undefined && { actorTokenId: opts.actorTokenId }),
|
|
131
|
+
orgId: r.org_id,
|
|
132
|
+
action: "catalog.request_cancelled",
|
|
133
|
+
target: r.id,
|
|
134
|
+
detail: { itemId: r.item_id, kind: r.kind, reason },
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
return rows.length;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* After an install (or an upgrade) of the item in the org, in the caller's transaction: the org's
|
|
141
|
+
* pending requests for the item (a member's `enable`, an `access` the scope has since granted) are
|
|
142
|
+
* approved with the installer as the decider (null for the scope sync). Audits
|
|
143
|
+
* `catalog.request_decided` with `installed: true`.
|
|
144
|
+
*/
|
|
145
|
+
export async function resolveRequestsByInstall(db, orgId, itemId, actor, opts = {}) {
|
|
146
|
+
const rows = await db
|
|
147
|
+
.updateTable("catalog_requests")
|
|
148
|
+
.set({ status: "approved", decided_by: actor, decided_at: sql `now()` })
|
|
149
|
+
.where("org_id", "=", orgId)
|
|
150
|
+
.where("item_id", "=", itemId)
|
|
151
|
+
.where("status", "=", "pending")
|
|
152
|
+
.returning(["id", "kind"])
|
|
153
|
+
.execute();
|
|
154
|
+
for (const r of rows) {
|
|
155
|
+
await audit(db, {
|
|
156
|
+
actorAccountId: actor,
|
|
157
|
+
...(opts.actorTokenId !== undefined && { actorTokenId: opts.actorTokenId }),
|
|
158
|
+
orgId,
|
|
159
|
+
action: "catalog.request_decided",
|
|
160
|
+
target: r.id,
|
|
161
|
+
detail: { itemId, kind: r.kind, decision: "approve", installed: true },
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
/** The pending `import` request linked to a staged import (its approval prepared it), if any. */
|
|
166
|
+
export async function importRequestOf(db, stagingId) {
|
|
167
|
+
const r = await db
|
|
168
|
+
.selectFrom("catalog_requests")
|
|
169
|
+
.select(["id", "org_id"])
|
|
170
|
+
.where("staging_id", "=", stagingId)
|
|
171
|
+
.where("kind", "=", "import")
|
|
172
|
+
.where("status", "=", "pending")
|
|
173
|
+
.executeTakeFirst();
|
|
174
|
+
return r && { id: r.id, orgId: r.org_id };
|
|
175
|
+
}
|
|
176
|
+
/** Whether pending `import` requests are linked to the staging (its confirm resolves them). */
|
|
177
|
+
export async function hasImportRequests(db, stagingId) {
|
|
178
|
+
const r = await db
|
|
179
|
+
.selectFrom("catalog_requests")
|
|
180
|
+
.select("id")
|
|
181
|
+
.where("staging_id", "=", stagingId)
|
|
182
|
+
.where("kind", "=", "import")
|
|
183
|
+
.where("status", "=", "pending")
|
|
184
|
+
.executeTakeFirst();
|
|
185
|
+
return r !== undefined;
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* The confirm of a staged import, in its transaction: the pending `import` requests linked to the
|
|
189
|
+
* staging are approved (decider: the confirming admin) and point at the item. Audits
|
|
190
|
+
* `catalog.request_decided`. Returns the requests' orgs.
|
|
191
|
+
*/
|
|
192
|
+
export async function resolveImportRequests(db, stagingId, itemId, actor, opts = {}) {
|
|
193
|
+
const rows = await db
|
|
194
|
+
.updateTable("catalog_requests")
|
|
195
|
+
.set({
|
|
196
|
+
status: "approved",
|
|
197
|
+
item_id: itemId,
|
|
198
|
+
decided_by: actor,
|
|
199
|
+
decided_at: sql `now()`,
|
|
200
|
+
})
|
|
201
|
+
.where("staging_id", "=", stagingId)
|
|
202
|
+
.where("kind", "=", "import")
|
|
203
|
+
.where("status", "=", "pending")
|
|
204
|
+
.returning(["id", "org_id"])
|
|
205
|
+
.execute();
|
|
206
|
+
for (const r of rows) {
|
|
207
|
+
await audit(db, {
|
|
208
|
+
actorAccountId: actor,
|
|
209
|
+
...(opts.actorTokenId !== undefined && { actorTokenId: opts.actorTokenId }),
|
|
210
|
+
orgId: r.org_id,
|
|
211
|
+
action: "catalog.request_decided",
|
|
212
|
+
target: r.id,
|
|
213
|
+
detail: { itemId, kind: "import", decision: "approve", stagingId },
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
return rows.map((r) => r.org_id);
|
|
217
|
+
}
|