@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,6 @@
|
|
|
1
|
+
-- Platform tool (spec 2026-11-07-platform-tool-design.md §6.2, §6.3): an approval carries the
|
|
2
|
+
-- kernel-rendered summary of the call ({zh, en}) and the scopes the person may choose. Expand-only:
|
|
3
|
+
-- both columns are nullable; null keeps today's behavior (no summary; scopes derived from the row:
|
|
4
|
+
-- "once" for a role escalation, else once / session / always).
|
|
5
|
+
ALTER TABLE approvals ADD COLUMN IF NOT EXISTS summary jsonb;
|
|
6
|
+
ALTER TABLE approvals ADD COLUMN IF NOT EXISTS scopes text[];
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
-- Environments phase 1 (spec 2026-11-07-environments-design §4.2, §10): a long-lived environment
|
|
2
|
+
-- is one sandbox instance plus a file system kept until the environment is deleted. This replaces
|
|
3
|
+
-- the per-conversation `sandboxes` table with `environment_instances`; the old table stays only
|
|
4
|
+
-- for the cleanup job that destroys its remaining instances. The CHECK lists of owner_kind and
|
|
5
|
+
-- source grow in phases 2 and 3 through new migrations.
|
|
6
|
+
CREATE TABLE IF NOT EXISTS capybara.environments (
|
|
7
|
+
id text PRIMARY KEY,
|
|
8
|
+
org_id text NOT NULL REFERENCES capybara.orgs(id) ON DELETE CASCADE,
|
|
9
|
+
owner_kind text NOT NULL CHECK (owner_kind IN ('personal')),
|
|
10
|
+
owner_account_id text NOT NULL REFERENCES capybara.accounts(id),
|
|
11
|
+
name text,
|
|
12
|
+
is_default boolean NOT NULL DEFAULT false,
|
|
13
|
+
source text NOT NULL CHECK (source IN ('cloud')),
|
|
14
|
+
provider text,
|
|
15
|
+
created_at timestamptz NOT NULL DEFAULT now(),
|
|
16
|
+
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
17
|
+
deleted_at timestamptz
|
|
18
|
+
);
|
|
19
|
+
CREATE UNIQUE INDEX IF NOT EXISTS environments_default_uq
|
|
20
|
+
ON capybara.environments (org_id, owner_account_id)
|
|
21
|
+
WHERE is_default AND deleted_at IS NULL;
|
|
22
|
+
CREATE UNIQUE INDEX IF NOT EXISTS environments_name_uq
|
|
23
|
+
ON capybara.environments (org_id, owner_account_id, lower(name))
|
|
24
|
+
WHERE name IS NOT NULL AND deleted_at IS NULL;
|
|
25
|
+
|
|
26
|
+
-- Same columns and meaning as the old sandboxes table (0023), keyed by environment. fs_handle and
|
|
27
|
+
-- fs_status describe the kept file system; status 'none' means no instance exists yet.
|
|
28
|
+
CREATE TABLE IF NOT EXISTS capybara.environment_instances (
|
|
29
|
+
environment_id text PRIMARY KEY REFERENCES capybara.environments(id) ON DELETE CASCADE,
|
|
30
|
+
org_id text NOT NULL,
|
|
31
|
+
provider text,
|
|
32
|
+
fs_handle jsonb,
|
|
33
|
+
fs_status text NOT NULL DEFAULT 'none' CHECK (fs_status IN ('none', 'ready', 'lost')),
|
|
34
|
+
handle jsonb,
|
|
35
|
+
status text NOT NULL DEFAULT 'none'
|
|
36
|
+
CHECK (status IN ('none', 'creating', 'running', 'suspended', 'destroyed')),
|
|
37
|
+
last_used_at timestamptz NOT NULL DEFAULT now(),
|
|
38
|
+
running_since timestamptz,
|
|
39
|
+
created_at timestamptz NOT NULL DEFAULT now(),
|
|
40
|
+
suspended_at timestamptz,
|
|
41
|
+
destroyed_at timestamptz,
|
|
42
|
+
generation integer NOT NULL DEFAULT 0,
|
|
43
|
+
had_instance boolean NOT NULL DEFAULT false,
|
|
44
|
+
prev_provider text,
|
|
45
|
+
prev_handle jsonb,
|
|
46
|
+
sweep_failed_at timestamptz
|
|
47
|
+
);
|
|
48
|
+
CREATE INDEX IF NOT EXISTS environment_instances_running_idx
|
|
49
|
+
ON capybara.environment_instances (last_used_at)
|
|
50
|
+
WHERE status = 'running';
|
|
51
|
+
CREATE INDEX IF NOT EXISTS environment_instances_live_idx
|
|
52
|
+
ON capybara.environment_instances (last_used_at)
|
|
53
|
+
WHERE status <> 'destroyed';
|
|
54
|
+
CREATE INDEX IF NOT EXISTS environment_instances_org_idx
|
|
55
|
+
ON capybara.environment_instances (org_id);
|
|
56
|
+
|
|
57
|
+
-- The environment a member's new conversations use when they pick none.
|
|
58
|
+
CREATE TABLE IF NOT EXISTS capybara.environment_defaults (
|
|
59
|
+
org_id text NOT NULL,
|
|
60
|
+
account_id text NOT NULL,
|
|
61
|
+
environment_id text NOT NULL REFERENCES capybara.environments(id) ON DELETE CASCADE,
|
|
62
|
+
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
63
|
+
PRIMARY KEY (org_id, account_id)
|
|
64
|
+
);
|
|
65
|
+
|
|
66
|
+
-- No cascade: a deleted environment is soft-deleted and the conversation keeps pointing at it.
|
|
67
|
+
ALTER TABLE capybara.conversations
|
|
68
|
+
ADD COLUMN IF NOT EXISTS environment_id text REFERENCES capybara.environments(id);
|
|
69
|
+
|
|
70
|
+
ALTER TABLE capybara.background_tasks ADD COLUMN IF NOT EXISTS environment_id text;
|
|
71
|
+
CREATE INDEX IF NOT EXISTS background_tasks_environment_running_idx
|
|
72
|
+
ON capybara.background_tasks (environment_id) WHERE status = 'running';
|
|
73
|
+
|
|
74
|
+
-- Tasks that ran in a per-conversation sandbox lose it with the move to environments (the
|
|
75
|
+
-- instances are destroyed by the cleanup job).
|
|
76
|
+
UPDATE capybara.background_tasks
|
|
77
|
+
SET status = 'lost',
|
|
78
|
+
lost_reason = COALESCE(lost_reason, 'sandbox_replaced_by_environment'),
|
|
79
|
+
finished_at = COALESCE(finished_at, now())
|
|
80
|
+
WHERE status = 'running';
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import type { KernelSchemaDb } from "../db/kernel-schema.js";
|
|
2
|
-
import type { ExtensionRegistry } from "../extensions/registry.js";
|
|
3
|
-
/**
|
|
4
|
-
* Which versions an org may upgrade an installed plugin to (package ecosystem spec §10, Decision
|
|
5
|
-
* 10, Ruling 8):
|
|
6
|
-
* - a plugin with an extension follows the deployment: the only target is the catalog version
|
|
7
|
-
* whose extension package (sha256) is the one installed on the deployment, the newest import on
|
|
8
|
-
* ties (`1.0.0` and `1.0.0+sha256.x` can share an extension version with different bytes); an
|
|
9
|
-
* extension loaded from the startup config (config, no package) is matched by its
|
|
10
|
-
* version;
|
|
11
|
-
* - a purely declarative plugin may move to any other imported version (an older one is a
|
|
12
|
-
* rollback).
|
|
13
|
-
*/
|
|
14
|
-
/** The extension the deployment runs for a plugin name. */
|
|
15
|
-
export interface DeployedExtension {
|
|
16
|
-
/** The installed package's sha256 (null for a config extension). */
|
|
17
|
-
sha256: string | null;
|
|
18
|
-
version: string;
|
|
19
|
-
}
|
|
20
|
-
/** A catalog version row as the target rules read it. */
|
|
21
|
-
export interface TargetVersion {
|
|
22
|
-
version: string;
|
|
23
|
-
manifest: unknown;
|
|
24
|
-
extension_sha256: string | null;
|
|
25
|
-
imported_at: Date;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* The deployment's extension for plugin `name`: its install record (`extension_installs`, the
|
|
29
|
-
* deployment's desired package; disabled on the deployment counts as none), else the extension
|
|
30
|
-
* this replica loaded from the startup config; undefined when the deployment runs none (then no
|
|
31
|
-
* upgrade target and no "upgrade pending").
|
|
32
|
-
*/
|
|
33
|
-
export declare function deployedExtension(db: KernelSchemaDb, host: Pick<ExtensionRegistry, "manifests">, name: string): Promise<DeployedExtension | undefined>;
|
|
34
|
-
/** Whether catalog version `v` carries the deployment's extension `d`. */
|
|
35
|
-
export declare const runsDeployed: (v: TargetVersion, d: DeployedExtension) => boolean;
|
|
36
|
-
/**
|
|
37
|
-
* The catalog version an org install of an extension-bearing plugin may move to: the one carrying
|
|
38
|
-
* the deployment's extension, the newest import on ties; undefined when none does.
|
|
39
|
-
*/
|
|
40
|
-
export declare function deploymentTarget(versions: readonly TargetVersion[], d: DeployedExtension | undefined): TargetVersion | undefined;
|
|
41
|
-
/** What an install view says about upgrades (Decision 10). */
|
|
42
|
-
export interface UpgradeInfo {
|
|
43
|
-
/** The version an upgrade can move to now (the highest allowed target), null when none. */
|
|
44
|
-
upgradeAvailable: string | null;
|
|
45
|
-
/** An extension-bearing plugin whose org version is not the one the deployment runs. */
|
|
46
|
-
deploymentPending: boolean;
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* The upgrade info of org installs (`itemId`, `name`, `version`), keyed by `itemId@version`; reads
|
|
50
|
-
* the items' catalog versions and the deployment's extensions in a few queries.
|
|
51
|
-
*/
|
|
52
|
-
export declare function upgradeInfo(db: KernelSchemaDb, host: Pick<ExtensionRegistry, "manifests">, installs: readonly {
|
|
53
|
-
itemId: string;
|
|
54
|
-
name: string;
|
|
55
|
-
version: string;
|
|
56
|
-
}[]): Promise<Map<string, UpgradeInfo>>;
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
import { compareVersions } from "./versions.js";
|
|
2
|
-
/**
|
|
3
|
-
* The deployment's extension for plugin `name`: its install record (`extension_installs`, the
|
|
4
|
-
* deployment's desired package; disabled on the deployment counts as none), else the extension
|
|
5
|
-
* this replica loaded from the startup config; undefined when the deployment runs none (then no
|
|
6
|
-
* upgrade target and no "upgrade pending").
|
|
7
|
-
*/
|
|
8
|
-
export async function deployedExtension(db, host, name) {
|
|
9
|
-
const row = await db
|
|
10
|
-
.selectFrom("extension_installs")
|
|
11
|
-
.select(["sha256", "version", "desired_state"])
|
|
12
|
-
.where("name", "=", name)
|
|
13
|
-
.executeTakeFirst();
|
|
14
|
-
if (row) {
|
|
15
|
-
return row.desired_state === "enabled"
|
|
16
|
-
? { sha256: row.sha256, version: row.version }
|
|
17
|
-
: undefined;
|
|
18
|
-
}
|
|
19
|
-
const loaded = host.manifests().find((m) => m.name === name);
|
|
20
|
-
return loaded ? { sha256: null, version: loaded.version } : undefined;
|
|
21
|
-
}
|
|
22
|
-
const extensionVersionOf = (v) => v.manifest.extension?.manifest.version;
|
|
23
|
-
/** Whether catalog version `v` carries the deployment's extension `d`. */
|
|
24
|
-
export const runsDeployed = (v, d) => d.sha256 !== null
|
|
25
|
-
? v.extension_sha256 === d.sha256
|
|
26
|
-
: v.manifest.extension !== undefined && extensionVersionOf(v) === d.version;
|
|
27
|
-
/**
|
|
28
|
-
* The catalog version an org install of an extension-bearing plugin may move to: the one carrying
|
|
29
|
-
* the deployment's extension, the newest import on ties; undefined when none does.
|
|
30
|
-
*/
|
|
31
|
-
export function deploymentTarget(versions, d) {
|
|
32
|
-
if (d === undefined)
|
|
33
|
-
return undefined;
|
|
34
|
-
let best;
|
|
35
|
-
for (const v of versions) {
|
|
36
|
-
if (!runsDeployed(v, d))
|
|
37
|
-
continue;
|
|
38
|
-
if (best === undefined ||
|
|
39
|
-
v.imported_at.getTime() > best.imported_at.getTime() ||
|
|
40
|
-
(v.imported_at.getTime() === best.imported_at.getTime() && compareVersions(v, best) > 0)) {
|
|
41
|
-
best = v;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
return best;
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* The upgrade info of org installs (`itemId`, `name`, `version`), keyed by `itemId@version`; reads
|
|
48
|
-
* the items' catalog versions and the deployment's extensions in a few queries.
|
|
49
|
-
*/
|
|
50
|
-
export async function upgradeInfo(db, host, installs) {
|
|
51
|
-
const out = new Map();
|
|
52
|
-
if (installs.length === 0)
|
|
53
|
-
return out;
|
|
54
|
-
const rows = await db
|
|
55
|
-
.selectFrom("catalog_item_versions")
|
|
56
|
-
.select(["item_id", "version", "manifest", "extension_sha256", "imported_at"])
|
|
57
|
-
.where("item_id", "in", [...new Set(installs.map((i) => i.itemId))])
|
|
58
|
-
.execute();
|
|
59
|
-
const deployed = new Map();
|
|
60
|
-
for (const i of installs) {
|
|
61
|
-
const versions = rows.filter((r) => r.item_id === i.itemId);
|
|
62
|
-
const current = versions.find((v) => v.version === i.version);
|
|
63
|
-
if (current && current.manifest.extension !== undefined) {
|
|
64
|
-
if (!deployed.has(i.name))
|
|
65
|
-
deployed.set(i.name, await deployedExtension(db, host, i.name));
|
|
66
|
-
const d = deployed.get(i.name);
|
|
67
|
-
const target = deploymentTarget(versions, d);
|
|
68
|
-
out.set(`${i.itemId}@${i.version}`, {
|
|
69
|
-
upgradeAvailable: target && target.version !== i.version ? target.version : null,
|
|
70
|
-
deploymentPending: d !== undefined && !runsDeployed(current, d),
|
|
71
|
-
});
|
|
72
|
-
continue;
|
|
73
|
-
}
|
|
74
|
-
let newest;
|
|
75
|
-
for (const v of versions) {
|
|
76
|
-
if (newest === undefined || compareVersions(v, newest) > 0)
|
|
77
|
-
newest = v;
|
|
78
|
-
}
|
|
79
|
-
const newer = newest !== undefined &&
|
|
80
|
-
newest.version !== i.version &&
|
|
81
|
-
(current === undefined
|
|
82
|
-
? compareVersions(newest.version, i.version) > 0
|
|
83
|
-
: compareVersions(newest, current) > 0);
|
|
84
|
-
out.set(`${i.itemId}@${i.version}`, {
|
|
85
|
-
upgradeAvailable: newer ? newest.version : null,
|
|
86
|
-
deploymentPending: false,
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
return out;
|
|
90
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { SandboxService } from "../sandbox/sandbox.service.js";
|
|
2
|
-
import { ConversationAccess } from "./access.js";
|
|
3
|
-
import { ConversationsService } from "./conversations.service.js";
|
|
4
|
-
export interface SandboxStatusView {
|
|
5
|
-
status: "running" | "suspended";
|
|
6
|
-
lastUsedAt: string;
|
|
7
|
-
}
|
|
8
|
-
/**
|
|
9
|
-
* 对话沙箱的状态(网页上下文标签,M5 T11):会话不可见 → `conversation.not_found`;
|
|
10
|
-
* 没有可用的沙箱(未创建、已销毁、正在创建)→ `sandbox.not_found`(界面显示「未创建」)。
|
|
11
|
-
*/
|
|
12
|
-
export declare class ConversationSandboxStatus {
|
|
13
|
-
/** 会话可见性(与会话 SSE 流同一判定)。 */
|
|
14
|
-
private readonly access;
|
|
15
|
-
/** The conversation whose sandbox it works in: a sub-agent's parent, else itself. */
|
|
16
|
-
private readonly conversations;
|
|
17
|
-
private readonly sandbox;
|
|
18
|
-
constructor(
|
|
19
|
-
/** 会话可见性(与会话 SSE 流同一判定)。 */
|
|
20
|
-
access: Pick<ConversationAccess, "isAccessible">,
|
|
21
|
-
/** The conversation whose sandbox it works in: a sub-agent's parent, else itself. */
|
|
22
|
-
conversations: Pick<ConversationsService, "sandboxConversationOf">, sandbox: Pick<SandboxService, "status">);
|
|
23
|
-
get(orgId: string, conversationId: string, viewerAccountId: string): Promise<SandboxStatusView>;
|
|
24
|
-
}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
8
|
-
return function (target, key) { decorator(target, key, paramIndex); }
|
|
9
|
-
};
|
|
10
|
-
import { Inject, Injectable } from "@nestjs/common";
|
|
11
|
-
import { ApiError } from "../errors.js";
|
|
12
|
-
import { SandboxService } from "../sandbox/sandbox.service.js";
|
|
13
|
-
import { UUID_RE } from "../ui/registry.js";
|
|
14
|
-
import { ConversationAccess } from "./access.js";
|
|
15
|
-
import { ConversationsService } from "./conversations.service.js";
|
|
16
|
-
/**
|
|
17
|
-
* 对话沙箱的状态(网页上下文标签,M5 T11):会话不可见 → `conversation.not_found`;
|
|
18
|
-
* 没有可用的沙箱(未创建、已销毁、正在创建)→ `sandbox.not_found`(界面显示「未创建」)。
|
|
19
|
-
*/
|
|
20
|
-
let ConversationSandboxStatus = class ConversationSandboxStatus {
|
|
21
|
-
access;
|
|
22
|
-
conversations;
|
|
23
|
-
sandbox;
|
|
24
|
-
constructor(
|
|
25
|
-
/** 会话可见性(与会话 SSE 流同一判定)。 */
|
|
26
|
-
access,
|
|
27
|
-
/** The conversation whose sandbox it works in: a sub-agent's parent, else itself. */
|
|
28
|
-
conversations, sandbox) {
|
|
29
|
-
this.access = access;
|
|
30
|
-
this.conversations = conversations;
|
|
31
|
-
this.sandbox = sandbox;
|
|
32
|
-
}
|
|
33
|
-
async get(orgId, conversationId, viewerAccountId) {
|
|
34
|
-
if (!UUID_RE.test(conversationId) ||
|
|
35
|
-
!(await this.access.isAccessible(orgId, conversationId, viewerAccountId))) {
|
|
36
|
-
throw new ApiError("conversation.not_found", "Conversation not found");
|
|
37
|
-
}
|
|
38
|
-
// a sub-agent works in its parent conversation's sandbox (sub-agents spec §10.1)
|
|
39
|
-
const sandboxConv = await this.conversations.sandboxConversationOf(orgId, conversationId);
|
|
40
|
-
const s = await this.sandbox.status(orgId, sandboxConv);
|
|
41
|
-
if (!s)
|
|
42
|
-
throw new ApiError("sandbox.not_found", "This conversation has no sandbox");
|
|
43
|
-
return { status: s.status, lastUsedAt: s.lastUsedAt.toISOString() };
|
|
44
|
-
}
|
|
45
|
-
};
|
|
46
|
-
ConversationSandboxStatus = __decorate([
|
|
47
|
-
Injectable(),
|
|
48
|
-
__param(0, Inject(ConversationAccess)),
|
|
49
|
-
__param(1, Inject(ConversationsService)),
|
|
50
|
-
__param(2, Inject(SandboxService))
|
|
51
|
-
], ConversationSandboxStatus);
|
|
52
|
-
export { ConversationSandboxStatus };
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import type { LocalizedName } from "@capybara-hq/plugin-sdk";
|
|
2
|
-
import { z } from "zod";
|
|
3
|
-
import { type Principal } from "../identity/principal.js";
|
|
4
|
-
import { type OrgContext } from "../orgs/org.guard.js";
|
|
5
|
-
import { ExtensionDisplayNames } from "./display-name.js";
|
|
6
|
-
import { OrgExtensionConfigs, type OrgExtensionView } from "./org-config.js";
|
|
7
|
-
declare const PutBody: z.ZodObject<{
|
|
8
|
-
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
9
|
-
config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
10
|
-
force: z.ZodOptional<z.ZodBoolean>;
|
|
11
|
-
}, z.core.$strict>;
|
|
12
|
-
/** One extension of the org list: the org view plus the plugin's display name. */
|
|
13
|
-
export type OrgExtensionItem = OrgExtensionView & {
|
|
14
|
-
displayName: LocalizedName | null;
|
|
15
|
-
};
|
|
16
|
-
/**
|
|
17
|
-
* Org-level extension enablement and config (`/api/v1/orgs/:orgId/extensions`); responses echo only
|
|
18
|
-
* non-secret config and whether each secret is set.
|
|
19
|
-
*/
|
|
20
|
-
export declare class OrgExtensionConfigsController {
|
|
21
|
-
private readonly configs;
|
|
22
|
-
private readonly displayNames;
|
|
23
|
-
constructor(configs: OrgExtensionConfigs, displayNames: ExtensionDisplayNames);
|
|
24
|
-
/** The org's extensions (also the channel plugin options: those providing `channel@1`). */
|
|
25
|
-
list(org: OrgContext): Promise<{
|
|
26
|
-
extensions: OrgExtensionItem[];
|
|
27
|
-
}>;
|
|
28
|
-
put(principal: Principal, org: OrgContext, extension: string, body: z.infer<typeof PutBody>): Promise<{
|
|
29
|
-
extension: OrgExtensionItem;
|
|
30
|
-
}>;
|
|
31
|
-
}
|
|
32
|
-
export {};
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
8
|
-
return function (target, key) { decorator(target, key, paramIndex); }
|
|
9
|
-
};
|
|
10
|
-
import { Controller, Get, Inject, Param, Put } from "@nestjs/common";
|
|
11
|
-
import { z } from "zod";
|
|
12
|
-
import { CurrentPrincipal, patTokenId, requireUser, } from "../identity/principal.js";
|
|
13
|
-
import { createZodDto } from "../infra/validation/create-zod-dto.js";
|
|
14
|
-
import { ZBody } from "../infra/validation/zod-params.js";
|
|
15
|
-
import { CurrentOrg, OrgAction } from "../orgs/org.guard.js";
|
|
16
|
-
import { ExtensionDisplayNames } from "./display-name.js";
|
|
17
|
-
import { OrgExtensionConfigs } from "./org-config.js";
|
|
18
|
-
const PutBody = z
|
|
19
|
-
.object({
|
|
20
|
-
enabled: z.boolean().optional(),
|
|
21
|
-
config: z.record(z.string(), z.unknown()).optional(),
|
|
22
|
-
force: z.boolean().optional(),
|
|
23
|
-
})
|
|
24
|
-
.strict();
|
|
25
|
-
class OrgExtensionPutBody extends createZodDto(PutBody, "OrgExtensionPutBody") {
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Org-level extension enablement and config (`/api/v1/orgs/:orgId/extensions`); responses echo only
|
|
29
|
-
* non-secret config and whether each secret is set.
|
|
30
|
-
*/
|
|
31
|
-
let OrgExtensionConfigsController = class OrgExtensionConfigsController {
|
|
32
|
-
configs;
|
|
33
|
-
displayNames;
|
|
34
|
-
constructor(configs, displayNames) {
|
|
35
|
-
this.configs = configs;
|
|
36
|
-
this.displayNames = displayNames;
|
|
37
|
-
}
|
|
38
|
-
/** The org's extensions (also the channel plugin options: those providing `channel@1`). */
|
|
39
|
-
async list(org) {
|
|
40
|
-
const views = await this.configs.list(org.orgId);
|
|
41
|
-
const names = await this.displayNames.many(views.map((v) => v.plugin));
|
|
42
|
-
return {
|
|
43
|
-
extensions: views.map((v) => ({ ...v, displayName: names.get(v.plugin) ?? null })),
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
async put(principal, org, extension, body) {
|
|
47
|
-
const p = requireUser(principal);
|
|
48
|
-
const view = await this.configs.put(org.orgId, extension, body, p.account.id, patTokenId(p));
|
|
49
|
-
return { extension: { ...view, displayName: await this.displayNames.get(view.plugin) } };
|
|
50
|
-
}
|
|
51
|
-
};
|
|
52
|
-
__decorate([
|
|
53
|
-
Get(),
|
|
54
|
-
OrgAction("org.extensions.manage"),
|
|
55
|
-
__param(0, CurrentOrg())
|
|
56
|
-
], OrgExtensionConfigsController.prototype, "list", null);
|
|
57
|
-
__decorate([
|
|
58
|
-
Put(":extension"),
|
|
59
|
-
OrgAction("org.extensions.manage"),
|
|
60
|
-
__param(0, CurrentPrincipal()),
|
|
61
|
-
__param(1, CurrentOrg()),
|
|
62
|
-
__param(2, Param("extension")),
|
|
63
|
-
__param(3, ZBody(OrgExtensionPutBody))
|
|
64
|
-
], OrgExtensionConfigsController.prototype, "put", null);
|
|
65
|
-
OrgExtensionConfigsController = __decorate([
|
|
66
|
-
Controller("api/v1/orgs/:orgId/extensions"),
|
|
67
|
-
__param(0, Inject(OrgExtensionConfigs)),
|
|
68
|
-
__param(1, Inject(ExtensionDisplayNames))
|
|
69
|
-
], OrgExtensionConfigsController);
|
|
70
|
-
export { OrgExtensionConfigsController };
|