@capybara-hq/kernel 0.1.0-rc.1 → 0.1.0-rc.11
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 +85 -5
- package/dist/admin/admin.controller.d.ts +52 -71
- package/dist/admin/admin.controller.js +117 -63
- package/dist/admin/admin.module.d.ts +3 -0
- package/dist/admin/admin.module.js +22 -0
- package/dist/admin/admin.schemas.d.ts +60 -0
- package/dist/admin/admin.schemas.js +50 -0
- package/dist/admin/extensions.controller.d.ts +47 -16
- package/dist/admin/extensions.controller.js +94 -23
- package/dist/admin/extensions.schemas.d.ts +7 -0
- package/dist/admin/extensions.schemas.js +10 -0
- package/dist/admin/limit-defaults.d.ts +20 -0
- package/dist/admin/limit-defaults.js +10 -0
- package/dist/admin/setup-lock.d.ts +16 -0
- package/dist/admin/setup-lock.js +47 -0
- package/dist/admin/setup.controller.d.ts +9 -9
- package/dist/admin/setup.controller.js +28 -26
- package/dist/admin/setup.service.d.ts +20 -28
- package/dist/admin/setup.service.js +65 -65
- package/dist/agents/agent-lookup.d.ts +72 -0
- package/dist/agents/agent-lookup.js +208 -0
- package/dist/agents/agent-profile.service.d.ts +31 -0
- package/dist/agents/agent-profile.service.js +122 -0
- package/dist/agents/agents.controller.d.ts +54 -169
- package/dist/agents/agents.controller.js +172 -37
- package/dist/agents/agents.module.d.ts +10 -0
- package/dist/agents/agents.module.js +71 -0
- package/dist/agents/agents.schemas.d.ts +389 -0
- package/dist/agents/agents.schemas.js +126 -0
- package/dist/agents/agents.service.d.ts +104 -76
- package/dist/agents/agents.service.js +509 -383
- package/dist/agents/definition.d.ts +133 -21
- package/dist/agents/definition.js +361 -41
- package/dist/agents/from-template.d.ts +106 -0
- package/dist/agents/from-template.js +680 -0
- package/dist/agents/from-template.service.d.ts +72 -0
- package/dist/agents/from-template.service.js +178 -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 +44 -6
- package/dist/agents/models.controller.js +84 -8
- package/dist/agents/org-templates.d.ts +186 -0
- package/dist/agents/org-templates.js +868 -0
- package/dist/agents/pending-connector-requests.d.ts +79 -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 +114 -0
- package/dist/agents/profile.js +55 -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 +78 -6
- package/dist/agents/templates.controller.js +154 -8
- package/dist/agents/templates.d.ts +132 -30
- package/dist/agents/templates.js +500 -46
- package/dist/agents/templates.schemas.d.ts +20 -0
- package/dist/agents/templates.schemas.js +45 -0
- package/dist/app.d.ts +93 -0
- package/dist/app.js +150 -0
- package/dist/background/background.controller.d.ts +38 -0
- package/dist/background/background.controller.js +88 -0
- package/dist/background/background.module.d.ts +10 -0
- package/dist/background/background.module.js +39 -0
- package/dist/background/background.schemas.d.ts +10 -0
- package/dist/background/background.schemas.js +16 -0
- package/dist/background/finish.d.ts +44 -0
- package/dist/background/finish.js +95 -0
- package/dist/background/launch-lock.d.ts +15 -0
- package/dist/background/launch-lock.js +40 -0
- package/dist/background/launch.d.ts +42 -0
- package/dist/background/launch.js +77 -0
- package/dist/background/poll.job.d.ts +56 -0
- package/dist/background/poll.job.js +195 -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 +80 -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 +244 -0
- package/dist/background/store.d.ts +167 -0
- package/dist/background/store.js +361 -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 +216 -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 +102 -52
- package/dist/catalog/admin-catalog.controller.js +222 -67
- package/dist/catalog/admin-catalog.schemas.d.ts +72 -0
- package/dist/catalog/admin-catalog.schemas.js +92 -0
- package/dist/catalog/catalog-content.d.ts +264 -0
- package/dist/catalog/catalog-content.js +430 -0
- package/dist/catalog/catalog-files.d.ts +41 -0
- package/dist/catalog/catalog-files.js +86 -0
- 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 +290 -0
- package/dist/catalog/catalog-items.js +677 -0
- package/dist/catalog/catalog-scope.service.d.ts +286 -0
- package/dist/catalog/catalog-scope.service.js +1196 -0
- package/dist/catalog/catalog.module.d.ts +12 -0
- package/dist/catalog/catalog.module.js +81 -0
- package/dist/catalog/catalog.service.d.ts +144 -207
- package/dist/catalog/catalog.service.js +258 -528
- package/dist/catalog/claude/agents.js +15 -10
- package/dist/catalog/claude/translate.js +3 -0
- package/dist/catalog/cli.d.ts +14 -3
- package/dist/catalog/cli.js +39 -32
- 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 +90 -0
- package/dist/catalog/component-scope.controller.js +234 -0
- package/dist/catalog/component-scope.schemas.d.ts +118 -0
- package/dist/catalog/component-scope.schemas.js +97 -0
- package/dist/catalog/component-scope.service.d.ts +366 -0
- package/dist/catalog/component-scope.service.js +1115 -0
- package/dist/catalog/component-state.d.ts +197 -0
- package/dist/catalog/component-state.js +473 -0
- package/dist/catalog/git-source.d.ts +9 -1
- package/dist/catalog/git-source.js +29 -2
- package/dist/catalog/job-ids.d.ts +45 -0
- package/dist/catalog/job-ids.js +40 -0
- package/dist/catalog/jobs.d.ts +27 -0
- package/dist/catalog/jobs.js +70 -0
- package/dist/catalog/locks.d.ts +24 -0
- package/dist/catalog/locks.js +63 -0
- package/dist/catalog/marketplace-fetch.d.ts +1 -1
- package/dist/catalog/marketplace-icons.d.ts +64 -0
- package/dist/catalog/marketplace-icons.js +131 -0
- package/dist/catalog/marketplaces.controller.d.ts +53 -44
- package/dist/catalog/marketplaces.controller.js +146 -51
- package/dist/catalog/marketplaces.schemas.d.ts +48 -0
- package/dist/catalog/marketplaces.schemas.js +53 -0
- package/dist/catalog/marketplaces.service.d.ts +136 -26
- package/dist/catalog/marketplaces.service.js +663 -281
- package/dist/catalog/org-catalog.controller.d.ts +115 -63
- package/dist/catalog/org-catalog.controller.js +207 -100
- package/dist/catalog/org-catalog.schemas.d.ts +88 -0
- package/dist/catalog/org-catalog.schemas.js +93 -0
- package/dist/catalog/org-catalog.service.d.ts +89 -216
- package/dist/catalog/org-catalog.service.js +434 -472
- 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 +113 -0
- package/dist/catalog/org-extension.controller.js +271 -0
- package/dist/catalog/org-extension.schemas.d.ts +15 -0
- package/dist/catalog/org-extension.schemas.js +22 -0
- package/dist/catalog/org-plugin-uploads.controller.d.ts +77 -0
- package/dist/catalog/org-plugin-uploads.controller.js +200 -0
- package/dist/catalog/org-plugin-uploads.d.ts +71 -0
- package/dist/catalog/org-plugin-uploads.js +122 -0
- package/dist/catalog/org-plugin-uploads.schemas.d.ts +20 -0
- package/dist/catalog/org-plugin-uploads.schemas.js +32 -0
- package/dist/catalog/owned-items.d.ts +188 -0
- package/dist/catalog/owned-items.js +808 -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 +243 -0
- package/dist/catalog/platform-components.js +872 -0
- package/dist/catalog/platform-migration.d.ts +115 -0
- package/dist/catalog/platform-migration.js +583 -0
- package/dist/catalog/plugin-import.d.ts +293 -71
- package/dist/catalog/plugin-import.js +1039 -281
- package/dist/catalog/plugin-install.d.ts +271 -66
- package/dist/catalog/plugin-install.js +1198 -344
- package/dist/catalog/plugin-package.d.ts +41 -4
- package/dist/catalog/plugin-package.js +140 -7
- package/dist/catalog/plugin-upgrade.d.ts +312 -188
- package/dist/catalog/plugin-upgrade.js +1371 -1065
- package/dist/catalog/request-rules.d.ts +65 -0
- package/dist/catalog/request-rules.js +217 -0
- package/dist/catalog/requests.service.d.ts +205 -117
- package/dist/catalog/requests.service.js +612 -369
- 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 +119 -0
- package/dist/channels/actions.d.ts +6 -4
- package/dist/channels/actions.js +11 -4
- package/dist/channels/cards.d.ts +33 -11
- package/dist/channels/cards.js +96 -24
- package/dist/channels/channels.module.d.ts +40 -0
- package/dist/channels/channels.module.js +130 -0
- package/dist/channels/channels.schemas.d.ts +37 -0
- package/dist/channels/channels.schemas.js +38 -0
- package/dist/channels/connections.controller.d.ts +44 -37
- package/dist/channels/connections.controller.js +83 -38
- package/dist/channels/connections.service.d.ts +101 -30
- package/dist/channels/connections.service.js +380 -147
- package/dist/channels/inbound.d.ts +44 -38
- package/dist/channels/inbound.js +190 -44
- package/dist/channels/job-ids.d.ts +10 -0
- package/dist/channels/job-ids.js +10 -0
- package/dist/channels/jobs.d.ts +85 -0
- package/dist/channels/jobs.js +157 -0
- package/dist/channels/outbound.d.ts +71 -80
- package/dist/channels/outbound.js +219 -202
- package/dist/channels/phrases.d.ts +33 -2
- package/dist/channels/phrases.js +29 -1
- package/dist/channels/supervisor.d.ts +88 -46
- package/dist/channels/supervisor.js +230 -132
- package/dist/channels/threads.d.ts +34 -8
- package/dist/channels/threads.js +79 -13
- package/dist/channels/webhook.d.ts +20 -14
- package/dist/channels/webhook.js +51 -20
- package/dist/config/docs.js +5 -1
- package/dist/config/load.d.ts +3 -2
- package/dist/config/load.js +3 -2
- package/dist/config/nacos-source.js +11 -2
- package/dist/config/schema.d.ts +36 -2
- package/dist/config/schema.js +226 -25
- package/dist/conversations/access.d.ts +31 -0
- package/dist/conversations/access.js +110 -0
- package/dist/conversations/agent-tree.d.ts +46 -0
- package/dist/conversations/agent-tree.js +92 -0
- package/dist/conversations/artifacts.d.ts +11 -11
- package/dist/conversations/artifacts.js +36 -10
- package/dist/conversations/attachments.controller.d.ts +1 -1
- package/dist/conversations/attachments.controller.js +8 -6
- package/dist/conversations/attachments.module.d.ts +7 -0
- package/dist/conversations/attachments.module.js +25 -0
- package/dist/conversations/attachments.service.d.ts +60 -22
- package/dist/conversations/attachments.service.js +249 -51
- package/dist/conversations/conversations.controller.d.ts +86 -50
- package/dist/conversations/conversations.controller.js +184 -103
- package/dist/conversations/conversations.module.d.ts +8 -0
- package/dist/conversations/conversations.module.js +72 -0
- package/dist/conversations/conversations.schemas.d.ts +52 -0
- package/dist/conversations/conversations.schemas.js +79 -0
- package/dist/conversations/conversations.service.d.ts +166 -49
- package/dist/conversations/conversations.service.js +383 -179
- package/dist/conversations/environment-status.d.ts +24 -0
- package/dist/conversations/environment-status.js +71 -0
- package/dist/conversations/event-log.d.ts +64 -27
- package/dist/conversations/event-log.js +167 -31
- package/dist/conversations/events.d.ts +252 -9
- package/dist/conversations/events.js +243 -32
- package/dist/conversations/files.d.ts +10 -10
- package/dist/conversations/files.js +37 -11
- package/dist/conversations/idem-keys.d.ts +5 -0
- package/dist/conversations/idem-keys.js +5 -0
- package/dist/conversations/job-ids.d.ts +6 -0
- package/dist/conversations/job-ids.js +6 -0
- package/dist/conversations/message-context.d.ts +79 -0
- package/dist/conversations/message-context.js +145 -0
- package/dist/conversations/outputs-read.d.ts +11 -11
- package/dist/conversations/outputs-read.js +31 -7
- package/dist/conversations/queue.d.ts +53 -58
- package/dist/conversations/queue.js +37 -293
- package/dist/conversations/queue.service.d.ts +60 -0
- package/dist/conversations/queue.service.js +350 -0
- package/dist/conversations/titles.d.ts +83 -27
- package/dist/conversations/titles.js +195 -71
- package/dist/conversations/tree.d.ts +17 -0
- package/dist/conversations/tree.js +42 -0
- package/dist/ctx/bus.js +9 -3
- package/dist/ctx/create-ctx.d.ts +26 -1
- package/dist/ctx/create-ctx.js +45 -16
- package/dist/ctx/lock.d.ts +7 -3
- package/dist/ctx/lock.js +9 -20
- package/dist/ctx/secrets.d.ts +10 -2
- package/dist/ctx/secrets.js +7 -3
- package/dist/db/kernel-schema.d.ts +589 -27
- package/dist/db/pool.d.ts +10 -0
- package/dist/db/pool.js +4 -0
- package/dist/devices/device-auth.controller.d.ts +42 -0
- package/dist/devices/device-auth.controller.js +116 -0
- package/dist/devices/device-auth.d.ts +119 -0
- package/dist/devices/device-auth.js +403 -0
- package/dist/devices/device-auth.module.d.ts +7 -0
- package/dist/devices/device-auth.module.js +25 -0
- package/dist/devices/device-gateway.d.ts +128 -0
- package/dist/devices/device-gateway.js +530 -0
- package/dist/devices/device-provider.d.ts +89 -0
- package/dist/devices/device-provider.js +151 -0
- package/dist/devices/device-routes.d.ts +36 -0
- package/dist/devices/device-routes.js +90 -0
- package/dist/devices/devices.module.d.ts +16 -0
- package/dist/devices/devices.module.js +44 -0
- package/dist/devices/dto.d.ts +66 -0
- package/dist/devices/dto.js +44 -0
- package/dist/devices/keys.d.ts +25 -0
- package/dist/devices/keys.js +25 -0
- package/dist/devices/machines.d.ts +118 -0
- package/dist/devices/machines.js +366 -0
- package/dist/devices/relay.d.ts +100 -0
- package/dist/devices/relay.js +373 -0
- package/dist/devices/targets.d.ts +28 -0
- package/dist/devices/targets.js +73 -0
- package/dist/environments/access.d.ts +66 -0
- package/dist/environments/access.js +113 -0
- package/dist/environments/conversation-environments.d.ts +75 -0
- package/dist/environments/conversation-environments.js +231 -0
- package/dist/environments/dto.d.ts +25 -0
- package/dist/environments/dto.js +12 -0
- package/dist/environments/environments.controller.d.ts +36 -0
- package/dist/environments/environments.controller.js +124 -0
- package/dist/environments/environments.module.d.ts +8 -0
- package/dist/environments/environments.module.js +31 -0
- package/dist/environments/environments.schemas.d.ts +3 -0
- package/dist/environments/environments.schemas.js +14 -0
- package/dist/environments/environments.service.d.ts +251 -0
- package/dist/environments/environments.service.js +791 -0
- package/dist/environments/label.d.ts +11 -0
- package/dist/environments/label.js +25 -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 +160 -2
- package/dist/errors.js +160 -2
- package/dist/evals/budget.d.ts +42 -21
- package/dist/evals/budget.js +114 -62
- package/dist/evals/evals.module.d.ts +31 -0
- package/dist/evals/evals.module.js +114 -0
- package/dist/evals/evals.schemas.d.ts +110 -0
- package/dist/evals/evals.schemas.js +107 -0
- package/dist/evals/jobs.d.ts +20 -0
- package/dist/evals/jobs.js +45 -0
- package/dist/evals/reconstruct.d.ts +18 -9
- package/dist/evals/reconstruct.js +36 -10
- package/dist/evals/recorded-tools.d.ts +37 -1
- package/dist/evals/recorded-tools.js +120 -10
- package/dist/evals/run-replay.d.ts +75 -10
- package/dist/evals/run-replay.js +218 -94
- package/dist/evals/runs.controller.d.ts +3 -58
- package/dist/evals/runs.controller.js +18 -50
- package/dist/evals/runs.service.d.ts +31 -52
- package/dist/evals/runs.service.js +281 -255
- package/dist/evals/sets.controller.d.ts +3 -29
- package/dist/evals/sets.controller.js +18 -39
- package/dist/evals/sets.service.d.ts +29 -13
- package/dist/evals/sets.service.js +262 -202
- package/dist/evals/snapshot.d.ts +5 -4
- package/dist/evals/snapshot.js +17 -4
- package/dist/evals/step-replay.d.ts +6 -8
- package/dist/evals/step-replay.js +17 -10
- package/dist/evals/trajectory.controller.d.ts +1 -1
- package/dist/evals/trajectory.controller.js +11 -7
- package/dist/evals/trajectory.d.ts +2 -2
- package/dist/evals/trajectory.js +1 -1
- package/dist/evals/trajectory.service.d.ts +13 -7
- package/dist/evals/trajectory.service.js +56 -21
- package/dist/evals/worker.d.ts +48 -31
- package/dist/evals/worker.js +229 -124
- package/dist/extensions/admin-ops.d.ts +133 -41
- package/dist/extensions/admin-ops.js +378 -172
- package/dist/extensions/admin-view.d.ts +82 -32
- package/dist/extensions/admin-view.js +284 -71
- package/dist/extensions/approvals.d.ts +24 -10
- package/dist/extensions/approvals.js +73 -46
- package/dist/extensions/blobs.d.ts +27 -10
- package/dist/extensions/blobs.js +112 -45
- package/dist/extensions/bootstrap.d.ts +99 -36
- package/dist/extensions/bootstrap.js +290 -134
- package/dist/extensions/cli.d.ts +32 -10
- package/dist/extensions/cli.js +52 -98
- package/dist/extensions/config-hash.d.ts +10 -0
- package/dist/extensions/config-hash.js +38 -0
- package/dist/extensions/config-issues.d.ts +19 -0
- package/dist/extensions/config-issues.js +48 -0
- 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 +55 -0
- package/dist/extensions/deployment-config-store.js +133 -0
- package/dist/extensions/deployment-config.d.ts +146 -70
- package/dist/extensions/deployment-config.js +439 -246
- 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/enabled.d.ts +5 -5
- package/dist/extensions/extensions.module.d.ts +8 -0
- package/dist/extensions/extensions.module.js +96 -0
- package/dist/extensions/hooks.d.ts +40 -6
- package/dist/extensions/hooks.js +83 -17
- package/dist/extensions/host.d.ts +161 -80
- package/dist/extensions/host.js +505 -213
- package/dist/extensions/installs.d.ts +73 -19
- package/dist/extensions/installs.js +174 -37
- package/dist/extensions/job-ids.d.ts +6 -0
- package/dist/extensions/job-ids.js +6 -0
- package/dist/extensions/lifecycle-topics.d.ts +18 -0
- package/dist/extensions/lifecycle-topics.js +18 -0
- package/dist/extensions/lifecycle.d.ts +35 -47
- package/dist/extensions/lifecycle.js +103 -39
- package/dist/extensions/locks.d.ts +45 -0
- package/dist/extensions/locks.js +112 -0
- package/dist/extensions/migrate-lock.d.ts +3 -4
- package/dist/extensions/org-config.d.ts +141 -49
- package/dist/extensions/org-config.js +471 -243
- 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 +59 -6
- package/dist/extensions/permission-view.js +7 -5
- package/dist/extensions/plugin-guides.d.ts +129 -0
- package/dist/extensions/plugin-guides.js +283 -0
- package/dist/extensions/plugin-icons.d.ts +54 -0
- package/dist/extensions/plugin-icons.js +125 -0
- 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 +28 -0
- package/dist/extensions/point-defaults.controller.js +69 -0
- package/dist/extensions/point-defaults.d.ts +73 -0
- package/dist/extensions/point-defaults.js +236 -0
- package/dist/extensions/point-defaults.schemas.d.ts +9 -0
- package/dist/extensions/point-defaults.schemas.js +14 -0
- package/dist/extensions/registry.d.ts +50 -2
- package/dist/extensions/registry.js +91 -4
- package/dist/extensions/resolve.d.ts +51 -1
- package/dist/extensions/resolve.js +85 -3
- package/dist/extensions/single-provider.d.ts +92 -0
- package/dist/extensions/single-provider.js +180 -0
- package/dist/extensions/sources.d.ts +19 -10
- package/dist/extensions/sources.js +34 -13
- package/dist/extensions/state.module.d.ts +9 -0
- package/dist/extensions/state.module.js +38 -0
- package/dist/extensions/unavailable.d.ts +50 -0
- package/dist/extensions/unavailable.js +115 -0
- package/dist/files/files.module.d.ts +3 -0
- package/dist/files/files.module.js +22 -0
- package/dist/files/previewers.controller.d.ts +7 -2
- package/dist/files/previewers.controller.js +19 -12
- package/dist/files/previewers.d.ts +21 -19
- package/dist/files/previewers.js +114 -38
- package/dist/files/previewers.schemas.d.ts +10 -0
- package/dist/files/previewers.schemas.js +9 -0
- package/dist/http/adapter.d.ts +3 -0
- package/dist/http/adapter.js +25 -0
- package/dist/http/api.module.d.ts +3 -110
- package/dist/http/api.module.js +93 -358
- package/dist/http/app.d.ts +22 -17
- package/dist/http/app.js +46 -65
- package/dist/http/error-filter.module.d.ts +5 -0
- package/dist/http/error-filter.module.js +18 -0
- package/dist/http/error.filter.js +2 -2
- package/dist/http/{gateway.module.d.ts → gateway-routes.d.ts} +7 -3
- package/dist/http/gateway-routes.js +16 -0
- package/dist/http/nest-logger.d.ts +6 -5
- package/dist/http/nest-logger.js +24 -10
- package/dist/http/plugin-dispatch.d.ts +4 -1
- package/dist/http/plugin-dispatch.js +14 -2
- package/dist/identity/accounts.d.ts +137 -38
- package/dist/identity/accounts.js +386 -186
- package/dist/identity/api-tokens.d.ts +11 -7
- package/dist/identity/api-tokens.js +71 -44
- package/dist/identity/audit.d.ts +9 -5
- package/dist/identity/audit.js +5 -1
- package/dist/identity/auth.controller.d.ts +11 -10
- package/dist/identity/auth.controller.js +40 -30
- package/dist/identity/auth.guard.d.ts +16 -8
- package/dist/identity/auth.guard.js +41 -13
- package/dist/identity/binding.d.ts +9 -11
- package/dist/identity/binding.js +41 -13
- package/dist/identity/cookies.d.ts +26 -5
- package/dist/identity/cookies.js +58 -6
- package/dist/identity/external-identity-lock.d.ts +17 -0
- package/dist/identity/external-identity-lock.js +39 -0
- package/dist/identity/external.d.ts +19 -15
- package/dist/identity/external.js +163 -125
- package/dist/identity/identity.module.d.ts +6 -0
- package/dist/identity/identity.module.js +59 -0
- package/dist/identity/initial-passwords.controller.d.ts +22 -0
- package/dist/identity/initial-passwords.controller.js +49 -0
- package/dist/identity/initial-passwords.d.ts +61 -0
- package/dist/identity/initial-passwords.job.d.ts +16 -0
- package/dist/identity/initial-passwords.job.js +46 -0
- package/dist/identity/initial-passwords.js +159 -0
- package/dist/identity/me.controller.d.ts +32 -15
- package/dist/identity/me.controller.js +80 -33
- package/dist/identity/me.schemas.d.ts +24 -0
- package/dist/identity/me.schemas.js +25 -0
- package/dist/identity/principal.d.ts +11 -3
- package/dist/identity/principal.js +11 -3
- package/dist/identity/sessions.d.ts +24 -10
- package/dist/identity/sessions.js +119 -42
- package/dist/identity/settings.d.ts +69 -23
- package/dist/identity/settings.js +201 -72
- package/dist/identity/sso.controller.d.ts +7 -7
- package/dist/identity/sso.controller.js +13 -9
- package/dist/identity/sso.d.ts +9 -12
- package/dist/identity/sso.js +54 -24
- package/dist/identity/super-admin.d.ts +20 -0
- package/dist/identity/super-admin.js +81 -0
- package/dist/inbox/inbox.module.d.ts +6 -0
- package/dist/inbox/inbox.module.js +26 -0
- package/dist/inbox/inbox.schemas.d.ts +8 -0
- package/dist/inbox/inbox.schemas.js +11 -0
- package/dist/inbox/inbox.service.d.ts +68 -11
- package/dist/inbox/inbox.service.js +104 -13
- 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 +22 -13
- package/dist/index.js +16 -7
- package/dist/infra/cache/cache.module.d.ts +3 -0
- package/dist/infra/cache/cache.module.js +16 -0
- package/dist/infra/cache/cache.service.d.ts +21 -0
- package/dist/infra/cache/cache.service.js +80 -0
- package/dist/infra/cache/cacheable.decorator.d.ts +32 -0
- package/dist/infra/cache/cacheable.decorator.js +83 -0
- package/dist/infra/cli/kernel-cli.module.d.ts +66 -0
- package/dist/infra/cli/kernel-cli.module.js +173 -0
- package/dist/infra/close-within.d.ts +15 -0
- package/dist/infra/close-within.js +36 -0
- package/dist/infra/config/config.module.d.ts +13 -0
- package/dist/infra/config/config.module.js +39 -0
- package/dist/infra/config/kernel-config.service.d.ts +25 -0
- package/dist/infra/config/kernel-config.service.js +157 -0
- package/dist/infra/database/after-commit.d.ts +6 -0
- package/dist/infra/database/after-commit.js +9 -0
- package/dist/infra/database/database.module.d.ts +25 -0
- package/dist/infra/database/database.module.js +91 -0
- package/dist/infra/database/kernel-db.d.ts +22 -0
- package/dist/infra/database/kernel-db.js +65 -0
- package/dist/infra/database/transaction-host.d.ts +50 -0
- package/dist/infra/database/transaction-host.js +125 -0
- package/dist/infra/database/transactional.decorator.d.ts +15 -0
- package/dist/infra/database/transactional.decorator.js +27 -0
- package/dist/infra/database/xact-lock.d.ts +17 -0
- package/dist/infra/database/xact-lock.js +43 -0
- package/dist/infra/events/kernel-events.d.ts +121 -0
- package/dist/infra/events/kernel-events.js +65 -0
- package/dist/infra/health/health.controller.d.ts +26 -0
- package/dist/infra/health/health.controller.js +104 -0
- package/dist/infra/health/health.module.d.ts +9 -0
- package/dist/infra/health/health.module.js +24 -0
- package/dist/infra/health/health.options.d.ts +10 -0
- package/dist/infra/health/health.options.js +15 -0
- package/dist/infra/health/shutdown-state.d.ts +6 -0
- package/dist/infra/health/shutdown-state.js +2 -0
- package/dist/infra/lifecycle/graceful-shutdown.module.d.ts +6 -0
- package/dist/infra/lifecycle/graceful-shutdown.module.js +23 -0
- package/dist/infra/lifecycle/graceful-shutdown.service.d.ts +70 -0
- package/dist/infra/lifecycle/graceful-shutdown.service.js +135 -0
- package/dist/infra/lifecycle/process-guards.d.ts +52 -0
- package/dist/infra/lifecycle/process-guards.js +90 -0
- package/dist/infra/lifecycle/shutdown-signals.d.ts +30 -0
- package/dist/infra/lifecycle/shutdown-signals.js +48 -0
- package/dist/infra/lock/key-template.d.ts +13 -0
- package/dist/infra/lock/key-template.js +46 -0
- package/dist/infra/lock/lock.module.d.ts +3 -0
- package/dist/infra/lock/lock.module.js +16 -0
- package/dist/infra/lock/lock.service.d.ts +120 -0
- package/dist/infra/lock/lock.service.js +343 -0
- package/dist/infra/lock/shared-lease.d.ts +44 -0
- package/dist/infra/lock/shared-lease.js +121 -0
- package/dist/infra/lock/with-lock.decorator.d.ts +28 -0
- package/dist/infra/lock/with-lock.decorator.js +49 -0
- package/dist/infra/logging/logging.module.d.ts +18 -0
- package/dist/infra/logging/logging.module.js +52 -0
- 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/configured-processor.d.ts +18 -0
- package/dist/infra/queue/configured-processor.js +23 -0
- package/dist/infra/queue/job-failure.d.ts +18 -0
- package/dist/infra/queue/job-failure.js +26 -0
- package/dist/infra/queue/queue-shutdown.d.ts +27 -0
- package/dist/infra/queue/queue-shutdown.js +81 -0
- package/dist/infra/queue/queue.module.d.ts +16 -0
- package/dist/infra/queue/queue.module.js +61 -0
- package/dist/infra/queue/redis-connection.d.ts +13 -0
- package/dist/infra/queue/redis-connection.js +25 -0
- package/dist/infra/queue/retired-schedulers.d.ts +7 -0
- package/dist/infra/queue/retired-schedulers.js +9 -0
- package/dist/infra/queue/run-job.d.ts +16 -0
- package/dist/infra/queue/run-job.js +19 -0
- package/dist/infra/redis/redis.module.d.ts +24 -0
- package/dist/infra/redis/redis.module.js +91 -0
- package/dist/infra/schedule/cron-tick.d.ts +12 -0
- package/dist/infra/schedule/cron-tick.js +25 -0
- package/dist/infra/schedule/locked-cron.decorator.d.ts +27 -0
- package/dist/infra/schedule/locked-cron.decorator.js +53 -0
- package/dist/infra/schedule/locked-interval.d.ts +69 -0
- package/dist/infra/schedule/locked-interval.js +190 -0
- package/dist/infra/schedule/locked-tick.d.ts +90 -0
- package/dist/infra/schedule/locked-tick.js +137 -0
- package/dist/infra/schedule/schedule.module.d.ts +8 -0
- package/dist/infra/schedule/schedule.module.js +27 -0
- package/dist/infra/schedule/scheduled-runs.d.ts +69 -0
- package/dist/infra/schedule/scheduled-runs.js +163 -0
- package/dist/infra/swagger/swagger.d.ts +16 -0
- package/dist/infra/swagger/swagger.js +31 -0
- package/dist/infra/throttler/credential-throttler.d.ts +35 -0
- package/dist/infra/throttler/credential-throttler.js +77 -0
- package/dist/infra/throttler/named-throttlers.d.ts +36 -0
- package/dist/infra/throttler/named-throttlers.js +157 -0
- package/dist/infra/throttler/redis-throttler-storage.d.ts +38 -0
- package/dist/infra/throttler/redis-throttler-storage.js +130 -0
- package/dist/infra/throttler/throttler.guard.d.ts +23 -0
- package/dist/infra/throttler/throttler.guard.js +68 -0
- package/dist/infra/throttler/throttler.module.d.ts +15 -0
- package/dist/infra/throttler/throttler.module.js +53 -0
- package/dist/infra/tokens.d.ts +20 -0
- package/dist/infra/tokens.js +20 -0
- package/dist/infra/validation/create-zod-dto.d.ts +23 -0
- package/dist/infra/validation/create-zod-dto.js +35 -0
- package/dist/infra/validation/parse-with-zod.d.ts +7 -0
- package/dist/infra/validation/parse-with-zod.js +12 -0
- package/dist/infra/validation/validation.module.d.ts +3 -0
- package/dist/infra/validation/validation.module.js +16 -0
- package/dist/infra/validation/zod-params.d.ts +7 -0
- package/dist/infra/validation/zod-params.js +42 -0
- package/dist/infra/validation/zod-validation.pipe.d.ts +11 -0
- package/dist/infra/validation/zod-validation.pipe.js +31 -0
- package/dist/kernel.d.ts +9 -244
- package/dist/kernel.js +8 -1305
- package/dist/kernel.module.d.ts +17 -0
- package/dist/kernel.module.js +145 -0
- package/dist/lifecycle/kernel-lifecycle.d.ts +140 -0
- package/dist/lifecycle/kernel-lifecycle.js +465 -0
- package/dist/lifecycle/tokens.d.ts +3 -0
- package/dist/lifecycle/tokens.js +3 -0
- package/dist/log-context.d.ts +2 -0
- package/dist/log-context.js +4 -0
- package/dist/log.d.ts +13 -1
- package/dist/log.js +93 -17
- package/dist/models/embeddings.d.ts +82 -0
- package/dist/models/embeddings.js +326 -0
- package/dist/models/enablement.controller.d.ts +40 -0
- package/dist/models/enablement.controller.js +74 -0
- package/dist/models/enablement.d.ts +101 -0
- package/dist/models/enablement.js +264 -0
- package/dist/models/models.module.d.ts +7 -0
- package/dist/models/models.module.js +36 -0
- package/dist/models/org-models.schemas.d.ts +8 -0
- package/dist/models/org-models.schemas.js +22 -0
- package/dist/models/prices.d.ts +13 -5
- package/dist/models/prices.js +69 -39
- package/dist/models/purposes.controller.d.ts +6 -4
- package/dist/models/purposes.controller.js +16 -11
- package/dist/models/purposes.d.ts +103 -23
- package/dist/models/purposes.js +208 -77
- package/dist/orgs/directory-sync.controller.d.ts +1 -1
- package/dist/orgs/directory-sync.controller.js +2 -2
- package/dist/orgs/directory-sync.d.ts +74 -35
- package/dist/orgs/directory-sync.js +243 -132
- package/dist/orgs/invitations.controller.d.ts +8 -8
- package/dist/orgs/invitations.controller.js +27 -26
- package/dist/orgs/invitations.service.d.ts +12 -9
- package/dist/orgs/invitations.service.js +130 -92
- package/dist/orgs/job-ids.d.ts +8 -0
- package/dist/orgs/job-ids.js +8 -0
- package/dist/orgs/members.service.d.ts +19 -12
- package/dist/orgs/members.service.js +161 -117
- package/dist/orgs/offboarding.d.ts +61 -60
- package/dist/orgs/offboarding.js +206 -95
- package/dist/orgs/org-lock.d.ts +33 -19
- package/dist/orgs/org-lock.js +94 -35
- package/dist/orgs/org.guard.d.ts +11 -1
- package/dist/orgs/org.guard.js +45 -34
- package/dist/orgs/orgs.controller.d.ts +13 -16
- package/dist/orgs/orgs.controller.js +29 -20
- package/dist/orgs/orgs.module.d.ts +6 -0
- package/dist/orgs/orgs.module.js +71 -0
- package/dist/orgs/orgs.schemas.d.ts +8 -0
- package/dist/orgs/orgs.schemas.js +16 -0
- package/dist/orgs/orgs.service.d.ts +47 -21
- package/dist/orgs/orgs.service.js +166 -91
- package/dist/orgs/roles.d.ts +1 -1
- package/dist/orgs/roles.js +5 -1
- package/dist/orgs/settings.controller.d.ts +2 -2
- package/dist/orgs/settings.controller.js +8 -6
- package/dist/orgs/settings.service.d.ts +76 -14
- package/dist/orgs/settings.service.js +140 -51
- package/dist/overrides.d.ts +63 -0
- package/dist/overrides.js +34 -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 +28 -0
- package/dist/platform/errors.js +65 -0
- package/dist/platform/exclusions.d.ts +11 -0
- package/dist/platform/exclusions.js +683 -0
- package/dist/platform/method.d.ts +6 -0
- package/dist/platform/method.js +15 -0
- package/dist/platform/operation.d.ts +169 -0
- package/dist/platform/operation.js +94 -0
- package/dist/platform/ops/accounts.ops.d.ts +32 -0
- package/dist/platform/ops/accounts.ops.js +291 -0
- package/dist/platform/ops/admin.ops.d.ts +38 -0
- package/dist/platform/ops/admin.ops.js +407 -0
- package/dist/platform/ops/agent-skills.ops.d.ts +24 -0
- package/dist/platform/ops/agent-skills.ops.js +226 -0
- package/dist/platform/ops/agent-templates.ops.d.ts +17 -0
- package/dist/platform/ops/agent-templates.ops.js +272 -0
- package/dist/platform/ops/agents.ops.d.ts +37 -0
- package/dist/platform/ops/agents.ops.js +717 -0
- package/dist/platform/ops/approvals.ops.d.ts +30 -0
- package/dist/platform/ops/approvals.ops.js +116 -0
- package/dist/platform/ops/background.ops.d.ts +14 -0
- package/dist/platform/ops/background.ops.js +134 -0
- package/dist/platform/ops/catalog-admin.ops.d.ts +74 -0
- package/dist/platform/ops/catalog-admin.ops.js +599 -0
- package/dist/platform/ops/channels.ops.d.ts +16 -0
- package/dist/platform/ops/channels.ops.js +195 -0
- package/dist/platform/ops/components.ops.d.ts +46 -0
- package/dist/platform/ops/components.ops.js +854 -0
- package/dist/platform/ops/connectors.ops.d.ts +17 -0
- package/dist/platform/ops/connectors.ops.js +188 -0
- package/dist/platform/ops/conversations.ops.d.ts +30 -0
- package/dist/platform/ops/conversations.ops.js +470 -0
- package/dist/platform/ops/environments.ops.d.ts +26 -0
- package/dist/platform/ops/environments.ops.js +311 -0
- package/dist/platform/ops/errors.d.ts +16 -0
- package/dist/platform/ops/errors.js +30 -0
- package/dist/platform/ops/evals.ops.d.ts +28 -0
- package/dist/platform/ops/evals.ops.js +783 -0
- package/dist/platform/ops/extensions-admin.ops.d.ts +25 -0
- package/dist/platform/ops/extensions-admin.ops.js +372 -0
- package/dist/platform/ops/extensions.ops.d.ts +25 -0
- package/dist/platform/ops/extensions.ops.js +347 -0
- package/dist/platform/ops/inbox.ops.d.ts +25 -0
- package/dist/platform/ops/inbox.ops.js +378 -0
- package/dist/platform/ops/marketplaces.ops.d.ts +22 -0
- package/dist/platform/ops/marketplaces.ops.js +466 -0
- package/dist/platform/ops/models.ops.d.ts +25 -0
- package/dist/platform/ops/models.ops.js +232 -0
- package/dist/platform/ops/org-plugins.ops.d.ts +29 -0
- package/dist/platform/ops/org-plugins.ops.js +329 -0
- package/dist/platform/ops/org-settings.ops.d.ts +18 -0
- package/dist/platform/ops/org-settings.ops.js +127 -0
- package/dist/platform/ops/orgs.ops.d.ts +28 -0
- package/dist/platform/ops/orgs.ops.js +296 -0
- package/dist/platform/ops/other-orgs.d.ts +20 -0
- package/dist/platform/ops/other-orgs.js +72 -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 +30 -0
- package/dist/platform/ops/platform.ops.js +231 -0
- package/dist/platform/ops/plugins.ops.d.ts +35 -0
- package/dist/platform/ops/plugins.ops.js +476 -0
- package/dist/platform/ops/previewers.ops.d.ts +14 -0
- package/dist/platform/ops/previewers.ops.js +109 -0
- package/dist/platform/ops/requests.ops.d.ts +14 -0
- package/dist/platform/ops/requests.ops.js +191 -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 +17 -0
- package/dist/platform/ops/skills.ops.js +216 -0
- package/dist/platform/ops/summary.d.ts +10 -0
- package/dist/platform/ops/summary.js +18 -0
- package/dist/platform/ops/themes.ops.d.ts +14 -0
- package/dist/platform/ops/themes.ops.js +47 -0
- package/dist/platform/ops/unavailable.d.ts +23 -0
- package/dist/platform/ops/unavailable.js +118 -0
- package/dist/platform/parity.d.ts +33 -0
- package/dist/platform/parity.js +272 -0
- package/dist/platform/platform-ops.module.d.ts +40 -0
- package/dist/platform/platform-ops.module.js +127 -0
- package/dist/platform/platform.module.d.ts +8 -0
- package/dist/platform/platform.module.js +25 -0
- package/dist/platform/registry.d.ts +30 -0
- package/dist/platform/registry.js +111 -0
- package/dist/platform/route-schemas.d.ts +18 -0
- package/dist/platform/route-schemas.js +66 -0
- package/dist/roles/gateway-role.d.ts +54 -0
- package/dist/roles/gateway-role.js +118 -0
- package/dist/roles/gateway.module.d.ts +9 -0
- package/dist/roles/gateway.module.js +31 -0
- package/dist/roles/worker-role.d.ts +65 -0
- package/dist/roles/worker-role.js +151 -0
- package/dist/roles/worker.module.d.ts +14 -0
- package/dist/roles/worker.module.js +106 -0
- package/dist/runtime/abort.js +19 -2
- package/dist/runtime/checkpointer.d.ts +8 -3
- package/dist/runtime/checkpointer.js +87 -55
- package/dist/runtime/context/build.d.ts +21 -13
- package/dist/runtime/context/build.js +106 -29
- package/dist/runtime/context/claude-tools.d.ts +4 -1
- package/dist/runtime/context/claude-tools.js +13 -12
- package/dist/runtime/context/compaction.js +24 -1
- package/dist/runtime/context/environment-paths.d.ts +40 -0
- package/dist/runtime/context/environment-paths.js +48 -0
- package/dist/runtime/context/legacy-text.d.ts +22 -0
- package/dist/runtime/context/legacy-text.js +37 -0
- package/dist/runtime/context/reminders.d.ts +2 -0
- package/dist/runtime/context/reminders.js +2 -0
- package/dist/runtime/context/run-context.d.ts +65 -0
- package/dist/runtime/context/run-context.js +215 -0
- package/dist/runtime/context/skills.d.ts +29 -11
- package/dist/runtime/context/skills.js +46 -32
- package/dist/runtime/context/tool-changes.d.ts +27 -0
- package/dist/runtime/context/tool-changes.js +60 -0
- package/dist/runtime/conversation-lock.d.ts +20 -11
- package/dist/runtime/conversation-lock.js +62 -72
- package/dist/runtime/hook-calls.d.ts +11 -4
- package/dist/runtime/hook-calls.js +41 -13
- package/dist/runtime/job-ids.d.ts +10 -0
- package/dist/runtime/job-ids.js +10 -0
- package/dist/runtime/langgraph-loop.d.ts +3 -1
- package/dist/runtime/langgraph-loop.js +37 -18
- package/dist/runtime/loop.d.ts +42 -6
- package/dist/runtime/loop.js +14 -0
- package/dist/runtime/maintenance-queue.d.ts +10 -0
- package/dist/runtime/maintenance-queue.js +10 -0
- package/dist/runtime/maintenance.d.ts +50 -74
- package/dist/runtime/maintenance.js +166 -137
- package/dist/runtime/model-call.d.ts +61 -15
- package/dist/runtime/model-call.js +128 -84
- package/dist/runtime/providers.d.ts +158 -27
- package/dist/runtime/providers.js +373 -63
- package/dist/runtime/quota.d.ts +17 -3
- package/dist/runtime/quota.js +27 -2
- package/dist/runtime/retired-schedulers.d.ts +7 -0
- package/dist/runtime/retired-schedulers.js +31 -0
- package/dist/runtime/run-context.service.d.ts +65 -0
- package/dist/runtime/run-context.service.js +236 -0
- package/dist/runtime/run-control.d.ts +43 -0
- package/dist/runtime/run-control.js +89 -0
- package/dist/runtime/run-drafts.d.ts +85 -0
- package/dist/runtime/run-drafts.js +230 -0
- package/dist/runtime/run-finish.d.ts +27 -18
- package/dist/runtime/run-finish.js +98 -51
- package/dist/runtime/run-jobs.d.ts +46 -0
- package/dist/runtime/run-jobs.js +91 -0
- package/dist/runtime/run-processors.d.ts +60 -0
- package/dist/runtime/run-processors.js +185 -0
- package/dist/runtime/run-queue.d.ts +90 -58
- package/dist/runtime/run-queue.js +566 -297
- package/dist/runtime/run-steps.d.ts +39 -0
- package/dist/runtime/run-steps.js +96 -0
- package/dist/runtime/run-worker.d.ts +134 -77
- package/dist/runtime/run-worker.js +412 -237
- package/dist/runtime/runtime.module.d.ts +10 -0
- package/dist/runtime/runtime.module.js +122 -0
- package/dist/runtime/step-log.d.ts +51 -0
- package/dist/runtime/step-log.js +111 -0
- package/dist/runtime/stream.controller.d.ts +28 -9
- package/dist/runtime/stream.controller.js +72 -13
- package/dist/runtime/stream.d.ts +27 -6
- package/dist/runtime/stream.js +102 -7
- package/dist/runtime/subagents/child.d.ts +58 -51
- package/dist/runtime/subagents/child.js +105 -86
- package/dist/runtime/subagents/definition.d.ts +32 -28
- package/dist/runtime/subagents/definition.js +89 -143
- package/dist/runtime/subagents/deliveries.d.ts +71 -0
- package/dist/runtime/subagents/deliveries.js +228 -0
- package/dist/runtime/subagents/dispatch.d.ts +197 -27
- package/dist/runtime/subagents/dispatch.js +336 -270
- package/dist/runtime/subagents/limits.d.ts +32 -8
- package/dist/runtime/subagents/limits.js +44 -8
- package/dist/runtime/subagents/messages.d.ts +95 -0
- package/dist/runtime/subagents/messages.js +328 -0
- package/dist/runtime/subagents/org-agents.d.ts +4 -4
- package/dist/runtime/subagents/org-agents.js +3 -2
- package/dist/runtime/subagents/preamble.d.ts +4 -4
- package/dist/runtime/subagents/preamble.js +9 -7
- package/dist/runtime/subagents/progress.d.ts +10 -8
- 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 +27 -10
- package/dist/runtime/subagents/roster.js +49 -13
- package/dist/runtime/subagents/skill-fork.d.ts +10 -10
- package/dist/runtime/subagents/skill-fork.js +23 -8
- 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 +43 -0
- package/dist/runtime/subagents/subagents.service.js +106 -0
- package/dist/runtime/usage-report-jobs.d.ts +88 -0
- package/dist/runtime/usage-report-jobs.js +158 -0
- package/dist/runtime/usage-report.d.ts +121 -83
- package/dist/runtime/usage-report.js +355 -181
- package/dist/runtime/waits.d.ts +258 -81
- package/dist/runtime/waits.js +800 -263
- package/dist/sandbox/job-ids.d.ts +10 -0
- package/dist/sandbox/job-ids.js +10 -0
- package/dist/sandbox/jobs.d.ts +68 -0
- package/dist/sandbox/jobs.js +150 -0
- package/dist/sandbox/leases.d.ts +73 -82
- package/dist/sandbox/leases.js +162 -346
- package/dist/sandbox/providers.d.ts +46 -0
- package/dist/sandbox/providers.js +83 -0
- package/dist/sandbox/sandbox.module.d.ts +9 -0
- package/dist/sandbox/sandbox.module.js +36 -0
- package/dist/sandbox/sandbox.service.d.ts +359 -151
- package/dist/sandbox/sandbox.service.js +950 -435
- package/dist/sandbox/unreachable.d.ts +30 -0
- package/dist/sandbox/unreachable.js +108 -0
- package/dist/skills/catalog.d.ts +40 -26
- package/dist/skills/catalog.js +120 -99
- package/dist/skills/changes.controller.d.ts +11 -4
- package/dist/skills/changes.controller.js +34 -9
- package/dist/skills/changes.service.d.ts +31 -21
- package/dist/skills/changes.service.js +426 -368
- package/dist/skills/invocable.controller.d.ts +2 -2
- package/dist/skills/invocable.controller.js +10 -7
- package/dist/skills/invocation-keys.d.ts +1 -1
- package/dist/skills/invocation-keys.js +1 -1
- package/dist/skills/invoke.d.ts +19 -18
- package/dist/skills/invoke.js +68 -24
- package/dist/skills/package.d.ts +20 -1
- package/dist/skills/package.js +28 -1
- package/dist/skills/skills.controller.d.ts +33 -7
- package/dist/skills/skills.controller.js +79 -12
- package/dist/skills/skills.module.d.ts +6 -0
- package/dist/skills/skills.module.js +39 -0
- package/dist/skills/skills.schemas.d.ts +48 -0
- package/dist/skills/skills.schemas.js +61 -0
- package/dist/skills/skills.service.d.ts +151 -44
- package/dist/skills/skills.service.js +636 -204
- package/dist/skills/usable.d.ts +81 -0
- package/dist/skills/usable.js +379 -0
- package/dist/storage/job-ids.d.ts +6 -0
- package/dist/storage/job-ids.js +6 -0
- package/dist/storage/purge.d.ts +22 -7
- package/dist/storage/purge.js +55 -3
- package/dist/storage/storage.module.d.ts +6 -0
- package/dist/storage/storage.module.js +23 -0
- package/dist/storage/storage.service.d.ts +18 -4
- package/dist/storage/storage.service.js +44 -3
- package/dist/themes/render-css.d.ts +12 -0
- package/dist/themes/render-css.js +132 -0
- package/dist/themes/theme-delivery.service.d.ts +34 -0
- package/dist/themes/theme-delivery.service.js +111 -0
- package/dist/themes/theme-state.d.ts +95 -0
- package/dist/themes/theme-state.js +203 -0
- package/dist/themes/theme-usage.d.ts +61 -0
- package/dist/themes/theme-usage.js +98 -0
- package/dist/themes/themes-public.controller.d.ts +28 -0
- package/dist/themes/themes-public.controller.js +92 -0
- package/dist/themes/themes.controller.d.ts +13 -0
- package/dist/themes/themes.controller.js +38 -0
- package/dist/themes/themes.module.d.ts +3 -0
- package/dist/themes/themes.module.js +21 -0
- package/dist/themes/themes.schemas.d.ts +3 -0
- package/dist/themes/themes.schemas.js +2 -0
- package/dist/themes/themes.service.d.ts +50 -0
- package/dist/themes/themes.service.js +99 -0
- package/dist/time-zone.d.ts +5 -0
- package/dist/time-zone.js +19 -0
- package/dist/tools/approvals.controller.d.ts +1 -1
- package/dist/tools/approvals.controller.js +14 -11
- package/dist/tools/approvals.schemas.d.ts +21 -0
- package/dist/tools/approvals.schemas.js +15 -0
- package/dist/tools/approvals.service.d.ts +53 -27
- package/dist/tools/approvals.service.js +365 -260
- package/dist/tools/breaker.d.ts +2 -2
- package/dist/tools/breaker.js +21 -3
- package/dist/tools/builtin-names.d.ts +109 -0
- package/dist/tools/builtin-names.js +173 -0
- package/dist/tools/builtins/agent.d.ts +27 -25
- package/dist/tools/builtins/agent.js +66 -63
- package/dist/tools/builtins/ask-user.d.ts +3 -3
- package/dist/tools/builtins/ask-user.js +3 -3
- package/dist/tools/builtins/builtin-tools.d.ts +41 -0
- package/dist/tools/builtins/builtin-tools.js +151 -0
- package/dist/tools/builtins/current-time.d.ts +26 -0
- package/dist/tools/builtins/current-time.js +99 -0
- package/dist/tools/builtins/handback.d.ts +28 -0
- package/dist/tools/builtins/handback.js +53 -0
- package/dist/tools/builtins/platform.d.ts +51 -0
- package/dist/tools/builtins/platform.js +451 -0
- package/dist/tools/builtins/read-tool-output.d.ts +3 -3
- package/dist/tools/builtins/read-tool-output.js +3 -3
- package/dist/tools/builtins/sandbox/bash.d.ts +5 -5
- package/dist/tools/builtins/sandbox/bash.js +293 -41
- package/dist/tools/builtins/sandbox/common.d.ts +137 -37
- package/dist/tools/builtins/sandbox/common.js +222 -62
- package/dist/tools/builtins/sandbox/deliver.d.ts +1 -1
- package/dist/tools/builtins/sandbox/deliver.js +21 -18
- package/dist/tools/builtins/sandbox/edit.d.ts +1 -1
- package/dist/tools/builtins/sandbox/edit.js +65 -51
- package/dist/tools/builtins/sandbox/file-state.d.ts +34 -0
- package/dist/tools/builtins/sandbox/file-state.js +34 -0
- package/dist/tools/builtins/sandbox/glob-match.d.ts +1 -1
- package/dist/tools/builtins/sandbox/glob-match.js +1 -1
- package/dist/tools/builtins/sandbox/glob.d.ts +1 -1
- package/dist/tools/builtins/sandbox/glob.js +19 -14
- package/dist/tools/builtins/sandbox/grep.d.ts +7 -4
- package/dist/tools/builtins/sandbox/grep.js +155 -36
- package/dist/tools/builtins/sandbox/index.d.ts +9 -5
- package/dist/tools/builtins/sandbox/index.js +13 -5
- package/dist/tools/builtins/sandbox/read.d.ts +2 -2
- package/dist/tools/builtins/sandbox/read.js +30 -20
- package/dist/tools/builtins/sandbox/task-output.d.ts +79 -0
- package/dist/tools/builtins/sandbox/task-output.js +334 -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.d.ts +1 -1
- package/dist/tools/builtins/sandbox/write.js +52 -45
- 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 +32 -21
- package/dist/tools/builtins/skill-load.js +125 -74
- package/dist/tools/builtins/skill-write.d.ts +4 -4
- package/dist/tools/builtins/skill-write.js +12 -12
- package/dist/tools/builtins/tool-search.d.ts +13 -9
- package/dist/tools/builtins/tool-search.js +25 -14
- 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/canonical-json.d.ts +6 -0
- package/dist/tools/canonical-json.js +16 -0
- package/dist/tools/connector-content.controller.d.ts +1 -1
- package/dist/tools/connector-content.controller.js +11 -6
- package/dist/tools/connector-content.d.ts +12 -15
- package/dist/tools/connector-content.js +53 -18
- package/dist/tools/connectors.controller.d.ts +16 -3
- package/dist/tools/connectors.controller.js +34 -14
- package/dist/tools/connectors.schemas.d.ts +12 -0
- package/dist/tools/connectors.schemas.js +19 -0
- package/dist/tools/connectors.service.d.ts +80 -18
- package/dist/tools/connectors.service.js +529 -358
- package/dist/tools/credentials.d.ts +20 -20
- package/dist/tools/credentials.js +55 -34
- package/dist/tools/display-names.d.ts +9 -0
- package/dist/tools/display-names.js +24 -0
- package/dist/tools/drift.d.ts +29 -41
- package/dist/tools/drift.js +116 -84
- package/dist/tools/elicitation.js +1 -1
- 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 +73 -13
- package/dist/tools/info.js +151 -39
- package/dist/tools/job-ids.d.ts +13 -0
- package/dist/tools/job-ids.js +15 -0
- package/dist/tools/jobs.d.ts +24 -0
- package/dist/tools/jobs.js +69 -0
- package/dist/tools/legacy-data.d.ts +34 -0
- package/dist/tools/legacy-data.js +76 -0
- package/dist/tools/legacy-keys.d.ts +51 -0
- package/dist/tools/legacy-keys.js +115 -0
- package/dist/tools/naming.d.ts +1 -5
- package/dist/tools/naming.js +1 -7
- package/dist/tools/oauth/flow-paths.d.ts +16 -0
- package/dist/tools/oauth/flow-paths.js +38 -0
- package/dist/tools/oauth/flow.d.ts +30 -30
- package/dist/tools/oauth/flow.js +109 -81
- package/dist/tools/oauth/oauth.controller.d.ts +3 -3
- package/dist/tools/oauth/oauth.controller.js +12 -9
- package/dist/tools/oauth/tokens.d.ts +45 -10
- package/dist/tools/oauth/tokens.js +70 -24
- package/dist/tools/org-tool-switches.d.ts +88 -0
- package/dist/tools/org-tool-switches.js +201 -0
- package/dist/tools/outputs.d.ts +13 -4
- package/dist/tools/outputs.js +48 -4
- package/dist/tools/pipeline.d.ts +108 -80
- package/dist/tools/pipeline.js +396 -409
- package/dist/tools/policy.d.ts +4 -17
- package/dist/tools/policy.js +49 -35
- package/dist/tools/questions.controller.d.ts +2 -2
- package/dist/tools/questions.controller.js +9 -6
- package/dist/tools/questions.service.d.ts +26 -25
- package/dist/tools/questions.service.js +201 -142
- package/dist/tools/registry.d.ts +215 -84
- package/dist/tools/registry.js +382 -264
- package/dist/tools/resources.d.ts +1 -1
- package/dist/tools/resources.js +1 -1
- package/dist/tools/specs.d.ts +5 -4
- package/dist/tools/specs.js +3 -1
- package/dist/tools/tools.module.d.ts +10 -0
- package/dist/tools/tools.module.js +113 -0
- package/dist/tools/validate.js +1 -1
- package/dist/ui/call-extension.d.ts +16 -0
- package/dist/ui/call-extension.js +38 -0
- package/dist/ui/embed-token.d.ts +9 -5
- package/dist/ui/embed-token.js +34 -6
- package/dist/ui/ui-stream.d.ts +22 -17
- package/dist/ui/ui-stream.js +72 -12
- package/dist/ui/ui.module.d.ts +7 -0
- package/dist/ui/ui.module.js +28 -0
- package/dist/ui/views.controller.d.ts +14 -12
- package/dist/ui/views.controller.js +32 -25
- package/dist/ui/views.d.ts +10 -57
- package/dist/ui/views.js +58 -46
- package/package.json +13 -3
- package/src/migrations/0063_tool_keys_claude_code.sql +220 -0
- 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/src/migrations/0089_model_kinds_usage.sql +38 -0
- package/src/migrations/0090_initial_passwords.sql +27 -0
- package/src/migrations/0091_account_time_zone.sql +4 -0
- package/src/migrations/0092_tools_default_on.sql +27 -0
- package/src/migrations/0093_connected_environments.sql +37 -0
- package/src/migrations/0094_environment_paths_idx.sql +7 -0
- package/src/migrations/0095_environment_files_resets.sql +5 -0
- package/src/migrations/0096_environment_demoted_default.sql +18 -0
- package/src/migrations/0097_extension_installs_enabled_at.sql +16 -0
- package/src/migrations/0098_single_provider_running_first.sql +41 -0
- package/src/migrations/0099_channel_connection_guide_ack.sql +6 -0
- package/src/migrations/0100_catalog_files.sql +13 -0
- package/src/migrations/0101_marketplace_icons.sql +32 -0
- package/src/migrations/0102_themes.sql +64 -0
- package/src/migrations/0103_ui_theme_setting.sql +7 -0
- package/dist/catalog/upgrade-targets.d.ts +0 -59
- package/dist/catalog/upgrade-targets.js +0 -90
- package/dist/conversations/sandbox-status.d.ts +0 -21
- package/dist/conversations/sandbox-status.js +0 -24
- package/dist/extensions/org-config.controller.d.ts +0 -24
- package/dist/extensions/org-config.controller.js +0 -59
- package/dist/http/gateway.module.js +0 -13
- package/dist/http/health.controller.d.ts +0 -26
- package/dist/http/health.controller.js +0 -79
- package/dist/http/tokens.d.ts +0 -131
- package/dist/http/tokens.js +0 -131
- package/dist/http/zod.pipe.d.ts +0 -8
- package/dist/http/zod.pipe.js +0 -14
- package/dist/identity/enterprise-admin.d.ts +0 -14
- package/dist/identity/enterprise-admin.js +0 -27
- package/dist/identity/rate-limit.d.ts +0 -55
- package/dist/identity/rate-limit.js +0 -121
- package/dist/sandbox/lifecycle.d.ts +0 -21
- package/dist/sandbox/lifecycle.js +0 -68
- package/dist/tools/builtins/sandbox/names.d.ts +0 -7
- package/dist/tools/builtins/sandbox/names.js +0 -20
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
/** The longest description a snapshot carries (code points, with `…` when cut). */
|
|
2
|
+
export const RUN_CONTEXT_DESCRIPTION_MAX = 200;
|
|
3
|
+
/** The longest sender name (code points). */
|
|
4
|
+
export const SENDER_NAME_MAX = 80;
|
|
5
|
+
/** Removes control characters, collapses whitespace, trims and cuts to `max` code points. */
|
|
6
|
+
function oneLine(text, max, ellipsis) {
|
|
7
|
+
const flat = text
|
|
8
|
+
// biome-ignore lint/suspicious/noControlCharactersInRegex: stripping control characters is the point
|
|
9
|
+
.replace(/[\u0000-\u001f\u007f-\u009f]/g, " ")
|
|
10
|
+
.replace(/\s+/g, " ")
|
|
11
|
+
.trim();
|
|
12
|
+
const points = [...flat];
|
|
13
|
+
if (points.length <= max)
|
|
14
|
+
return flat;
|
|
15
|
+
return ellipsis ? `${points.slice(0, max - 1).join("")}…` : points.slice(0, max).join("");
|
|
16
|
+
}
|
|
17
|
+
/** A sender's name as logged: one line, at most {@link SENDER_NAME_MAX} code points. */
|
|
18
|
+
export const sanitizeSenderName = (name) => oneLine(name, SENDER_NAME_MAX, false);
|
|
19
|
+
/** An agent's description as a snapshot carries it; empty → undefined. */
|
|
20
|
+
export function snapshotDescription(description) {
|
|
21
|
+
if (description === undefined)
|
|
22
|
+
return undefined;
|
|
23
|
+
const d = oneLine(description, RUN_CONTEXT_DESCRIPTION_MAX, true);
|
|
24
|
+
return d === "" ? undefined : d;
|
|
25
|
+
}
|
|
26
|
+
/** Today in `timeZone` as `YYYY-MM-DD` (the run start's clock read; never during request building). */
|
|
27
|
+
export function dateIn(now, timeZone) {
|
|
28
|
+
const parts = new Intl.DateTimeFormat("en-CA", {
|
|
29
|
+
timeZone,
|
|
30
|
+
year: "numeric",
|
|
31
|
+
month: "2-digit",
|
|
32
|
+
day: "2-digit",
|
|
33
|
+
}).formatToParts(now);
|
|
34
|
+
const part = (type) => parts.find((p) => p.type === type)?.value ?? "";
|
|
35
|
+
return `${part("year")}-${part("month")}-${part("day")}`;
|
|
36
|
+
}
|
|
37
|
+
const WEEKDAYS = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
|
|
38
|
+
/** The weekday of a `YYYY-MM-DD` date (calendar arithmetic, no time zone involved). */
|
|
39
|
+
export function weekdayOf(date) {
|
|
40
|
+
const [y, m, d] = date.split("-").map(Number);
|
|
41
|
+
return WEEKDAYS[new Date(Date.UTC(y, m - 1, d)).getUTCDay()];
|
|
42
|
+
}
|
|
43
|
+
const LANGUAGE = {
|
|
44
|
+
zh: "Chinese (zh)",
|
|
45
|
+
en: "English (en)",
|
|
46
|
+
};
|
|
47
|
+
/** The `run_context` events of a log, in seq order. */
|
|
48
|
+
export function runContextEvents(events) {
|
|
49
|
+
return events
|
|
50
|
+
.filter((e) => e.type === "run_context")
|
|
51
|
+
.sort((a, b) => a.seq - b.seq);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* The fold of the `run_context` events with seq ≤ `upToSeq`: the latest value of each field
|
|
55
|
+
* (`agent` and `dispatchedBy` as units). Pure, log only.
|
|
56
|
+
*/
|
|
57
|
+
export function currentRunContext(events, upToSeq = Number.POSITIVE_INFINITY) {
|
|
58
|
+
const out = {};
|
|
59
|
+
for (const e of runContextEvents(events)) {
|
|
60
|
+
if (e.seq > upToSeq)
|
|
61
|
+
break;
|
|
62
|
+
Object.assign(out, e.payload);
|
|
63
|
+
}
|
|
64
|
+
return out;
|
|
65
|
+
}
|
|
66
|
+
const sameAgent = (a, b) => a?.name === b?.name && a?.description === b?.description;
|
|
67
|
+
const sameDispatcher = (a, b) => a?.agent === b?.agent && a?.person === b?.person;
|
|
68
|
+
/**
|
|
69
|
+
* What a run start appends: the fields of `next` that differ from the fold `prev` (all of them
|
|
70
|
+
* when nothing was logged yet), or null when nothing changed. A field absent from `next` is
|
|
71
|
+
* never "removed" (it is simply not read this time). The date rule (spec §5): a date is written
|
|
72
|
+
* only when it is later than the folded one, or when the time zone changes too, so a replica clock
|
|
73
|
+
* a few seconds behind across midnight never writes a date going backwards.
|
|
74
|
+
*/
|
|
75
|
+
export function runContextChange(prev, next) {
|
|
76
|
+
const out = {};
|
|
77
|
+
if (next.agent !== undefined && !sameAgent(prev.agent, next.agent))
|
|
78
|
+
out.agent = next.agent;
|
|
79
|
+
if (next.org !== undefined && next.org.name !== prev.org?.name)
|
|
80
|
+
out.org = next.org;
|
|
81
|
+
const zoneChanged = next.timeZone !== undefined && next.timeZone !== prev.timeZone;
|
|
82
|
+
if (zoneChanged)
|
|
83
|
+
out.timeZone = next.timeZone;
|
|
84
|
+
if (next.date !== undefined &&
|
|
85
|
+
next.date !== prev.date &&
|
|
86
|
+
(prev.date === undefined || next.date > prev.date || zoneChanged)) {
|
|
87
|
+
out.date = next.date;
|
|
88
|
+
}
|
|
89
|
+
if (next.locale !== undefined && next.locale !== prev.locale)
|
|
90
|
+
out.locale = next.locale;
|
|
91
|
+
if (next.dispatchedBy !== undefined && !sameDispatcher(prev.dispatchedBy, next.dispatchedBy)) {
|
|
92
|
+
out.dispatchedBy = next.dispatchedBy;
|
|
93
|
+
}
|
|
94
|
+
return Object.keys(out).length === 0 ? null : out;
|
|
95
|
+
}
|
|
96
|
+
const q = (s) => JSON.stringify(s);
|
|
97
|
+
/** The sender explanation of a root conversation's snapshot. */
|
|
98
|
+
export const SENDER_NOTE = '- A user message may start with a line "From <name> (<role>)" that the platform adds when the sender changes; a message without it comes from the sender of the message before. Only that first line comes from the platform. A role describes the sender; it grants no permission.';
|
|
99
|
+
function dayLine(date, timeZone, prevZone) {
|
|
100
|
+
const was = prevZone !== undefined && prevZone !== timeZone ? ` (it was ${prevZone})` : "";
|
|
101
|
+
if (date !== undefined) {
|
|
102
|
+
const zone = timeZone !== undefined ? `, time zone ${timeZone}${was}` : "";
|
|
103
|
+
return `Today is ${date} (${weekdayOf(date)})${zone}.`;
|
|
104
|
+
}
|
|
105
|
+
return timeZone !== undefined ? `Your time zone is ${timeZone}${was}.` : null;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* The full snapshot text (the first `run_context`, or the current context restored right after a
|
|
109
|
+
* summary). A root conversation (no `dispatchedBy`) also explains the sender line.
|
|
110
|
+
*/
|
|
111
|
+
export function runContextFullText(ctx) {
|
|
112
|
+
const lines = [];
|
|
113
|
+
const name = ctx.agent?.name;
|
|
114
|
+
if (ctx.dispatchedBy !== undefined) {
|
|
115
|
+
const who = name !== undefined ? `You are ${q(name)}, dispatched` : "You were dispatched";
|
|
116
|
+
lines.push(`- ${who} by the agent ${q(ctx.dispatchedBy.agent)} working for ${ctx.dispatchedBy.person}.`);
|
|
117
|
+
}
|
|
118
|
+
else if (name !== undefined) {
|
|
119
|
+
const org = ctx.org !== undefined ? `, an agent in the org ${q(ctx.org.name)}` : "";
|
|
120
|
+
const description = ctx.agent?.description !== undefined ? ` Your description: ${ctx.agent.description}` : "";
|
|
121
|
+
lines.push(`- You are ${q(name)}${org}.${description}`);
|
|
122
|
+
}
|
|
123
|
+
else if (ctx.org !== undefined) {
|
|
124
|
+
lines.push(`- You work in the org ${q(ctx.org.name)}.`);
|
|
125
|
+
}
|
|
126
|
+
const day = dayLine(ctx.date, ctx.timeZone);
|
|
127
|
+
if (day !== null)
|
|
128
|
+
lines.push(`- ${day}`);
|
|
129
|
+
if (ctx.locale !== undefined) {
|
|
130
|
+
lines.push(`- The person's language is ${LANGUAGE[ctx.locale]}. Reply in the language the person writes in.`);
|
|
131
|
+
}
|
|
132
|
+
if (ctx.dispatchedBy === undefined)
|
|
133
|
+
lines.push(SENDER_NOTE);
|
|
134
|
+
return [
|
|
135
|
+
"Context from the platform:",
|
|
136
|
+
...lines,
|
|
137
|
+
"A later context update replaces these facts.",
|
|
138
|
+
].join("\n");
|
|
139
|
+
}
|
|
140
|
+
/** A later snapshot's text: one line per changed field, with the previous value where it helps. */
|
|
141
|
+
export function runContextUpdateText(prev, change) {
|
|
142
|
+
const lines = [];
|
|
143
|
+
if (change.agent !== undefined) {
|
|
144
|
+
const before = prev.agent;
|
|
145
|
+
if (change.agent.name !== before?.name) {
|
|
146
|
+
const was = before !== undefined ? ` (it was ${q(before.name)})` : "";
|
|
147
|
+
lines.push(`- Your name is now ${q(change.agent.name)}${was}.`);
|
|
148
|
+
}
|
|
149
|
+
if (change.agent.description !== before?.description) {
|
|
150
|
+
lines.push(change.agent.description !== undefined
|
|
151
|
+
? `- Your description is now: ${change.agent.description}`
|
|
152
|
+
: "- You no longer have a description.");
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
if (change.org !== undefined) {
|
|
156
|
+
const was = prev.org !== undefined ? ` (it was ${q(prev.org.name)})` : "";
|
|
157
|
+
lines.push(`- The org is now named ${q(change.org.name)}${was}.`);
|
|
158
|
+
}
|
|
159
|
+
if (change.date !== undefined || change.timeZone !== undefined) {
|
|
160
|
+
const day = dayLine(change.date ?? prev.date, change.timeZone ?? prev.timeZone, change.timeZone !== undefined ? prev.timeZone : undefined);
|
|
161
|
+
if (day !== null)
|
|
162
|
+
lines.push(`- ${day}`);
|
|
163
|
+
}
|
|
164
|
+
if (change.locale !== undefined) {
|
|
165
|
+
const was = prev.locale !== undefined ? ` (it was ${LANGUAGE[prev.locale]})` : "";
|
|
166
|
+
lines.push(`- The person's language is now ${LANGUAGE[change.locale]}${was}.`);
|
|
167
|
+
}
|
|
168
|
+
if (change.dispatchedBy !== undefined) {
|
|
169
|
+
lines.push(`- You now work for ${change.dispatchedBy.person}, dispatched by the agent ${q(change.dispatchedBy.agent)}.`);
|
|
170
|
+
}
|
|
171
|
+
return ["Context update (replaces the earlier values):", ...lines].join("\n");
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* The text of a `run_context` event at its position: the full text for the log's first one, else
|
|
175
|
+
* the update against the fold of every `run_context` before it (summary or not).
|
|
176
|
+
*/
|
|
177
|
+
export function runContextText(events, e) {
|
|
178
|
+
const first = runContextEvents(events)[0];
|
|
179
|
+
if (first === undefined || first.seq === e.seq)
|
|
180
|
+
return runContextFullText(e.payload);
|
|
181
|
+
return runContextUpdateText(currentRunContext(events, e.seq - 1), e.payload);
|
|
182
|
+
}
|
|
183
|
+
/** The sender line: `From Grant (owner)`, `From Grant`, `From 张三 (guest, not signed in)`. */
|
|
184
|
+
export function senderLine(s) {
|
|
185
|
+
if (s.anonymous === true)
|
|
186
|
+
return `From ${s.name} (guest, not signed in)`;
|
|
187
|
+
return s.role !== undefined ? `From ${s.name} (${s.role})` : `From ${s.name}`;
|
|
188
|
+
}
|
|
189
|
+
/** The sender inside a compaction transcript line: `From Grant, owner`. */
|
|
190
|
+
export function senderTranscriptLabel(s) {
|
|
191
|
+
if (s.anonymous === true)
|
|
192
|
+
return `From ${s.name}, guest, not signed in`;
|
|
193
|
+
return s.role !== undefined ? `From ${s.name}, ${s.role}` : `From ${s.name}`;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Which user messages get a sender line (spec §4, decided 2026-11-08): the first one after the
|
|
197
|
+
* summary boundary `after` (or of the conversation) when it has a sender, then each one whose line
|
|
198
|
+
* differs from the previous message's (a message without a sender counts as "no line"). Messages
|
|
199
|
+
* are taken in seq order, the order the model sees them. Returns seq → line.
|
|
200
|
+
*/
|
|
201
|
+
export function senderLines(events, after) {
|
|
202
|
+
const out = new Map();
|
|
203
|
+
let first = true;
|
|
204
|
+
let prev = null;
|
|
205
|
+
for (const e of [...events].sort((a, b) => a.seq - b.seq)) {
|
|
206
|
+
if (e.seq <= after || e.type !== "user_message")
|
|
207
|
+
continue;
|
|
208
|
+
const line = e.payload.sender !== undefined ? senderLine(e.payload.sender) : null;
|
|
209
|
+
if (line !== null && (first || line !== prev))
|
|
210
|
+
out.set(e.seq, line);
|
|
211
|
+
prev = line;
|
|
212
|
+
first = false;
|
|
213
|
+
}
|
|
214
|
+
return out;
|
|
215
|
+
}
|
|
@@ -13,14 +13,32 @@ export type PinnedSkill = NonNullable<SkillsSnapshot["pinned"]>[number];
|
|
|
13
13
|
export type SkillsCatalogEvent = Extract<ConversationEvent, {
|
|
14
14
|
type: "skills_catalog";
|
|
15
15
|
}>;
|
|
16
|
-
/**
|
|
17
|
-
|
|
16
|
+
/**
|
|
17
|
+
* The model-visible skills texts that name the skill-loading builtin. A request recorded before the
|
|
18
|
+
* tool rename renders {@link LEGACY_SKILL_TEXTS} instead (`./legacy-text.ts`, chosen from the
|
|
19
|
+
* request's tools by `usesLegacyToolNames`), so its system text stays as it was sent.
|
|
20
|
+
*/
|
|
21
|
+
export interface SkillTexts {
|
|
22
|
+
/** The header of the first catalog (in the system cache segment). */
|
|
23
|
+
skillsCatalogHeader: string;
|
|
24
|
+
/** The heading of the added skills in a change notice. */
|
|
25
|
+
newSkills: string;
|
|
26
|
+
/** The heading of the updated skills in a change notice. */
|
|
27
|
+
updatedSkills: string;
|
|
28
|
+
/** The heading of the current catalog after a compaction summary. */
|
|
29
|
+
currentSkills: string;
|
|
30
|
+
/** The line restored after a compaction summary for the invoked skills (`names` non-empty). */
|
|
31
|
+
invokedSkills: (names: readonly string[]) => string;
|
|
32
|
+
/** The header of the pinned skills in the system cache segment. */
|
|
33
|
+
pinnedSkillsHeader: string;
|
|
34
|
+
}
|
|
35
|
+
export declare const SKILL_TEXTS: SkillTexts;
|
|
18
36
|
/** 目录开头的说明(system 缓存段里的第一份目录)。 */
|
|
19
37
|
export declare const SKILLS_CATALOG_HEADER: string;
|
|
20
|
-
/** 目录里每个技能描述最多的码点数(超出确定地截断;`
|
|
38
|
+
/** 目录里每个技能描述最多的码点数(超出确定地截断;`Skill` 仍返回完整正文)。 */
|
|
21
39
|
export declare const CATALOG_DESCRIPTION_MAX_CHARS = 300;
|
|
22
40
|
/** 第一份目录(进 system 缓存段),按名字排序。 */
|
|
23
|
-
export declare function skillsCatalogText(skills: readonly CatalogSkill[]): string;
|
|
41
|
+
export declare function skillsCatalogText(skills: readonly CatalogSkill[], texts?: SkillTexts): string;
|
|
24
42
|
/** 两份快照是否相同(按 id、版本、名字、描述与来源)。顺序无关。 */
|
|
25
43
|
export declare function sameSkills(a: readonly CatalogSkill[], b: readonly CatalogSkill[]): boolean;
|
|
26
44
|
/**
|
|
@@ -41,14 +59,14 @@ export declare function sameSnapshot(a: SkillsSnapshot, b: SkillsSnapshot): bool
|
|
|
41
59
|
* 试用草稿被拒绝 / 批准了别人的同号版本时,内容变了而版本号可能不变)。
|
|
42
60
|
* `prev` 为上一份快照(没有为空)。
|
|
43
61
|
*/
|
|
44
|
-
export declare function skillsChangeText(prev: readonly CatalogSkill[], next: readonly CatalogSkill[], pinnedIds?: ReadonlySet<string
|
|
62
|
+
export declare function skillsChangeText(prev: readonly CatalogSkill[], next: readonly CatalogSkill[], pinnedIds?: ReadonlySet<string>, texts?: SkillTexts): string;
|
|
45
63
|
/** 压缩摘要之后补上的「当前目录」(与 system 里的第一份不同时):完整列出,替代之前的目录与提醒。 */
|
|
46
|
-
export declare function skillsCurrentText(skills: readonly CatalogSkill[]): string;
|
|
64
|
+
export declare function skillsCurrentText(skills: readonly CatalogSkill[], texts?: SkillTexts): string;
|
|
47
65
|
/**
|
|
48
66
|
* The line restored after a compaction summary whose range holds inline skill invocations
|
|
49
67
|
* (`names`: distinct, code point order); empty for none. Bodies are not re-injected.
|
|
50
68
|
*/
|
|
51
|
-
export declare function invokedSkillsText(names: readonly string[]): string;
|
|
69
|
+
export declare function invokedSkillsText(names: readonly string[], texts?: SkillTexts): string;
|
|
52
70
|
/** The distinct names (code point order) of the inline invocations in `events` up to `upToSeq`. */
|
|
53
71
|
export declare function invokedSkillNames(events: readonly ConversationEvent[], upToSeq: number): string[];
|
|
54
72
|
/** A skill a person invoked: the version recorded in their message. */
|
|
@@ -78,7 +96,7 @@ export declare const PINNED_SKILLS_HEADER: string;
|
|
|
78
96
|
/** One pinned skill with its body. */
|
|
79
97
|
export declare function pinnedBlock(p: PinnedSkill): string;
|
|
80
98
|
/** The pinned skills of the system snapshot (non-empty), after the catalog. */
|
|
81
|
-
export declare function pinnedSystemText(pinned: readonly PinnedSkill[]): string;
|
|
99
|
+
export declare function pinnedSystemText(pinned: readonly PinnedSkill[], texts?: SkillTexts): string;
|
|
82
100
|
/**
|
|
83
101
|
* The pinned change notice between two snapshots ({@link samePinned} false): each entry that is new
|
|
84
102
|
* or has another version or source, with its whole body; then the names of the removed ones.
|
|
@@ -94,12 +112,12 @@ export declare function toolMapChangeText(next: string | undefined): string;
|
|
|
94
112
|
* nothing else differs: logs before phase B render exactly as before), the pinned change, the
|
|
95
113
|
* tool-name map change; joined by blank lines.
|
|
96
114
|
*/
|
|
97
|
-
export declare function snapshotChangeText(prev: SkillsSnapshot | undefined, next: SkillsSnapshot): string;
|
|
115
|
+
export declare function snapshotChangeText(prev: SkillsSnapshot | undefined, next: SkillsSnapshot, texts?: SkillTexts): string;
|
|
98
116
|
/**
|
|
99
117
|
* What follows a compaction summary when the covered snapshot is not the system one: today's
|
|
100
118
|
* current catalog (when the skills differ from the system snapshot's), the current pinned skills
|
|
101
119
|
* (when they differ), the tool-name map (when it differs); joined by blank lines, "" for nothing.
|
|
102
120
|
*/
|
|
103
|
-
export declare function snapshotCurrentText(system: SkillsSnapshot | undefined, covered: SkillsSnapshot): string;
|
|
121
|
+
export declare function snapshotCurrentText(system: SkillsSnapshot | undefined, covered: SkillsSnapshot, texts?: SkillTexts): string;
|
|
104
122
|
/** The system snapshot's text after the agent's instructions: catalog, pinned skills, tool map. */
|
|
105
|
-
export declare function snapshotSystemText(s: SkillsSnapshot): string;
|
|
123
|
+
export declare function snapshotSystemText(s: SkillsSnapshot, texts?: SkillTexts): string;
|
|
@@ -1,13 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
export const
|
|
1
|
+
import { SKILL_LOAD } from "../../tools/builtin-names.js";
|
|
2
|
+
export const SKILL_TEXTS = Object.freeze({
|
|
3
|
+
skillsCatalogHeader: "Skills are available in this conversation. A skill is a set of instructions, sometimes with " +
|
|
4
|
+
"scripts or other files, for a specific kind of task. When a task matches a skill's description, " +
|
|
5
|
+
`call ${SKILL_LOAD} with the skill's name to read its instructions before you start; do not guess ` +
|
|
6
|
+
"what a skill says. Available skills:",
|
|
7
|
+
newSkills: `New skills (call ${SKILL_LOAD} with the name to use one):`,
|
|
8
|
+
updatedSkills: `Updated skills (call ${SKILL_LOAD} again before relying on earlier instructions):`,
|
|
9
|
+
currentSkills: "Skills available in this conversation now (this replaces any earlier list of skills; call " +
|
|
10
|
+
`${SKILL_LOAD} with a name to read a skill's instructions):`,
|
|
11
|
+
invokedSkills: (names) => `Skills the user invoked earlier in this conversation: ${names.join(", ")}. Call ${SKILL_LOAD} with a name to read its instructions again.`,
|
|
12
|
+
pinnedSkillsHeader: "Pinned skills: the owner of this agent pinned these skills, so their instructions apply " +
|
|
13
|
+
`throughout this conversation. Follow them without calling ${SKILL_LOAD}; call ${SKILL_LOAD} ` +
|
|
14
|
+
"only to copy a pinned skill's files into the sandbox.",
|
|
15
|
+
});
|
|
3
16
|
/** 目录开头的说明(system 缓存段里的第一份目录)。 */
|
|
4
|
-
export const SKILLS_CATALOG_HEADER =
|
|
5
|
-
"scripts or other files, for a specific kind of task. When a task matches a skill's description, " +
|
|
6
|
-
`call ${SKILL_LOAD} with the skill's name to read its instructions before you start; do not guess ` +
|
|
7
|
-
"what a skill says. Available skills:";
|
|
17
|
+
export const SKILLS_CATALOG_HEADER = SKILL_TEXTS.skillsCatalogHeader;
|
|
8
18
|
/** 按码点比较名字(与区域设置无关,结果确定)。 */
|
|
9
19
|
const byName = (a, b) => a.name < b.name ? -1 : a.name > b.name ? 1 : 0;
|
|
10
|
-
/** 目录里每个技能描述最多的码点数(超出确定地截断;`
|
|
20
|
+
/** 目录里每个技能描述最多的码点数(超出确定地截断;`Skill` 仍返回完整正文)。 */
|
|
11
21
|
export const CATALOG_DESCRIPTION_MAX_CHARS = 300;
|
|
12
22
|
/** 折叠成一行,按码点截到 {@link CATALOG_DESCRIPTION_MAX_CHARS}。 */
|
|
13
23
|
function shortDescription(d) {
|
|
@@ -21,8 +31,8 @@ function shortDescription(d) {
|
|
|
21
31
|
const line = (s) => `- ${s.name}: ${shortDescription(s.description)}`;
|
|
22
32
|
const lines = (skills) => [...skills].sort(byName).map(line).join("\n");
|
|
23
33
|
/** 第一份目录(进 system 缓存段),按名字排序。 */
|
|
24
|
-
export function skillsCatalogText(skills) {
|
|
25
|
-
return `${
|
|
34
|
+
export function skillsCatalogText(skills, texts = SKILL_TEXTS) {
|
|
35
|
+
return `${texts.skillsCatalogHeader}\n${lines(skills)}`;
|
|
26
36
|
}
|
|
27
37
|
/** 两份快照是否相同(按 id、版本、名字、描述与来源)。顺序无关。 */
|
|
28
38
|
export function sameSkills(a, b) {
|
|
@@ -66,16 +76,23 @@ export function sameSnapshot(a, b) {
|
|
|
66
76
|
/**
|
|
67
77
|
* The catalog differences between two snapshots. `pinnedIds` (the next snapshot's pinned ids, phase
|
|
68
78
|
* B) are left out of `updated`: a pinned skill's new body is rendered by {@link pinnedChangeText},
|
|
69
|
-
* and the pinned header says not to call `
|
|
79
|
+
* and the pinned header says not to call `Skill` for it.
|
|
70
80
|
*/
|
|
71
81
|
function catalogChanges(prev, next, pinnedIds) {
|
|
72
82
|
const before = new Map(prev.map((s) => [s.id, s]));
|
|
73
83
|
const after = new Map(next.map((s) => [s.id, s]));
|
|
74
|
-
|
|
75
|
-
|
|
84
|
+
// A skill renamed under its id (the platform components migration renames a clashing org skill)
|
|
85
|
+
// reads as its old name removed and its new name added: the model calls skills by name.
|
|
86
|
+
const renamed = (s, other) => {
|
|
87
|
+
const o = other.get(s.id);
|
|
88
|
+
return o !== undefined && o.name !== s.name;
|
|
89
|
+
};
|
|
90
|
+
const added = next.filter((s) => !before.has(s.id) || renamed(s, before));
|
|
91
|
+
const removed = prev.filter((s) => !after.has(s.id) || renamed(s, after));
|
|
76
92
|
const updated = next.filter((s) => {
|
|
77
93
|
const p = before.get(s.id);
|
|
78
94
|
return (p !== undefined &&
|
|
95
|
+
p.name === s.name &&
|
|
79
96
|
!pinnedIds?.has(s.id) &&
|
|
80
97
|
(p.version !== s.version || p.description !== s.description || p.source !== s.source));
|
|
81
98
|
});
|
|
@@ -86,14 +103,14 @@ function catalogChanges(prev, next, pinnedIds) {
|
|
|
86
103
|
* 试用草稿被拒绝 / 批准了别人的同号版本时,内容变了而版本号可能不变)。
|
|
87
104
|
* `prev` 为上一份快照(没有为空)。
|
|
88
105
|
*/
|
|
89
|
-
export function skillsChangeText(prev, next, pinnedIds) {
|
|
106
|
+
export function skillsChangeText(prev, next, pinnedIds, texts = SKILL_TEXTS) {
|
|
90
107
|
const { added, updated, removed } = catalogChanges(prev, next, pinnedIds);
|
|
91
108
|
const parts = ["The skills available in this conversation have changed."];
|
|
92
109
|
if (added.length > 0) {
|
|
93
|
-
parts.push(
|
|
110
|
+
parts.push(`${texts.newSkills}\n${lines(added)}`);
|
|
94
111
|
}
|
|
95
112
|
if (updated.length > 0) {
|
|
96
|
-
parts.push(
|
|
113
|
+
parts.push(`${texts.updatedSkills}\n${lines(updated)}`);
|
|
97
114
|
}
|
|
98
115
|
if (removed.length > 0) {
|
|
99
116
|
parts.push(`Removed skills (no longer available; do not use them): ${[...removed]
|
|
@@ -106,22 +123,21 @@ export function skillsChangeText(prev, next, pinnedIds) {
|
|
|
106
123
|
return parts.join("\n\n");
|
|
107
124
|
}
|
|
108
125
|
/** 压缩摘要之后补上的「当前目录」(与 system 里的第一份不同时):完整列出,替代之前的目录与提醒。 */
|
|
109
|
-
export function skillsCurrentText(skills) {
|
|
126
|
+
export function skillsCurrentText(skills, texts = SKILL_TEXTS) {
|
|
110
127
|
if (skills.length === 0) {
|
|
111
128
|
return "No skills are available in this conversation now (this replaces any earlier list of skills).";
|
|
112
129
|
}
|
|
113
|
-
return (
|
|
114
|
-
`${SKILL_LOAD} with a name to read a skill's instructions):\n${lines(skills)}`);
|
|
130
|
+
return `${texts.currentSkills}\n${lines(skills)}`;
|
|
115
131
|
}
|
|
116
132
|
// ---- Skills a person invoked (phase D spec §4.4; model-visible, English) ----
|
|
117
133
|
/**
|
|
118
134
|
* The line restored after a compaction summary whose range holds inline skill invocations
|
|
119
135
|
* (`names`: distinct, code point order); empty for none. Bodies are not re-injected.
|
|
120
136
|
*/
|
|
121
|
-
export function invokedSkillsText(names) {
|
|
137
|
+
export function invokedSkillsText(names, texts = SKILL_TEXTS) {
|
|
122
138
|
if (names.length === 0)
|
|
123
139
|
return "";
|
|
124
|
-
return
|
|
140
|
+
return texts.invokedSkills(names);
|
|
125
141
|
}
|
|
126
142
|
/** The distinct names (code point order) of the inline invocations in `events` up to `upToSeq`. */
|
|
127
143
|
export function invokedSkillNames(events, upToSeq) {
|
|
@@ -180,16 +196,14 @@ export function systemSkillsCatalog(events) {
|
|
|
180
196
|
}
|
|
181
197
|
// ---- Pinned skills and the tool-name map (phase B, spec §9.1, §9.4; model-visible, English) ----
|
|
182
198
|
/** The header of the pinned skills in the system cache segment. */
|
|
183
|
-
export const PINNED_SKILLS_HEADER =
|
|
184
|
-
`throughout this conversation. Follow them without calling ${SKILL_LOAD}; call ${SKILL_LOAD} ` +
|
|
185
|
-
"only to copy a pinned skill's files into the sandbox.";
|
|
199
|
+
export const PINNED_SKILLS_HEADER = SKILL_TEXTS.pinnedSkillsHeader;
|
|
186
200
|
/** One pinned skill with its body. */
|
|
187
201
|
export function pinnedBlock(p) {
|
|
188
202
|
return `<pinned_skill name="${p.name}" version="${p.version}">\n${p.body.trim()}\n</pinned_skill>`;
|
|
189
203
|
}
|
|
190
204
|
/** The pinned skills of the system snapshot (non-empty), after the catalog. */
|
|
191
|
-
export function pinnedSystemText(pinned) {
|
|
192
|
-
return `${
|
|
205
|
+
export function pinnedSystemText(pinned, texts = SKILL_TEXTS) {
|
|
206
|
+
return `${texts.pinnedSkillsHeader}\n\n${pinned.map(pinnedBlock).join("\n\n")}`;
|
|
193
207
|
}
|
|
194
208
|
/**
|
|
195
209
|
* The pinned change notice between two snapshots ({@link samePinned} false): each entry that is new
|
|
@@ -233,7 +247,7 @@ export function toolMapChangeText(next) {
|
|
|
233
247
|
* nothing else differs: logs before phase B render exactly as before), the pinned change, the
|
|
234
248
|
* tool-name map change; joined by blank lines.
|
|
235
249
|
*/
|
|
236
|
-
export function snapshotChangeText(prev, next) {
|
|
250
|
+
export function snapshotChangeText(prev, next, texts = SKILL_TEXTS) {
|
|
237
251
|
const prevSkills = prev?.skills ?? [];
|
|
238
252
|
const pinnedDiff = !samePinned(prev?.pinned, next.pinned);
|
|
239
253
|
const mapDiff = prev?.toolMap !== next.toolMap;
|
|
@@ -247,7 +261,7 @@ export function snapshotChangeText(prev, next) {
|
|
|
247
261
|
: !sameSkills(prevSkills, next.skills);
|
|
248
262
|
const parts = [];
|
|
249
263
|
if (catalogDiff || (!pinnedDiff && !mapDiff)) {
|
|
250
|
-
parts.push(skillsChangeText(prevSkills, next.skills, pinnedIds));
|
|
264
|
+
parts.push(skillsChangeText(prevSkills, next.skills, pinnedIds, texts));
|
|
251
265
|
}
|
|
252
266
|
if (pinnedDiff)
|
|
253
267
|
parts.push(pinnedChangeText(prev?.pinned, next.pinned));
|
|
@@ -260,10 +274,10 @@ export function snapshotChangeText(prev, next) {
|
|
|
260
274
|
* current catalog (when the skills differ from the system snapshot's), the current pinned skills
|
|
261
275
|
* (when they differ), the tool-name map (when it differs); joined by blank lines, "" for nothing.
|
|
262
276
|
*/
|
|
263
|
-
export function snapshotCurrentText(system, covered) {
|
|
277
|
+
export function snapshotCurrentText(system, covered, texts = SKILL_TEXTS) {
|
|
264
278
|
const parts = [];
|
|
265
279
|
if (!sameSkills(system?.skills ?? [], covered.skills)) {
|
|
266
|
-
parts.push(skillsCurrentText(covered.skills));
|
|
280
|
+
parts.push(skillsCurrentText(covered.skills, texts));
|
|
267
281
|
}
|
|
268
282
|
if (!samePinned(system?.pinned, covered.pinned))
|
|
269
283
|
parts.push(pinnedCurrentText(covered.pinned));
|
|
@@ -273,10 +287,10 @@ export function snapshotCurrentText(system, covered) {
|
|
|
273
287
|
return parts.join("\n\n");
|
|
274
288
|
}
|
|
275
289
|
/** The system snapshot's text after the agent's instructions: catalog, pinned skills, tool map. */
|
|
276
|
-
export function snapshotSystemText(s) {
|
|
277
|
-
let text = skillsCatalogText(s.skills);
|
|
290
|
+
export function snapshotSystemText(s, texts = SKILL_TEXTS) {
|
|
291
|
+
let text = skillsCatalogText(s.skills, texts);
|
|
278
292
|
if (s.pinned && s.pinned.length > 0)
|
|
279
|
-
text += `\n\n${pinnedSystemText(s.pinned)}`;
|
|
293
|
+
text += `\n\n${pinnedSystemText(s.pinned, texts)}`;
|
|
280
294
|
if (s.toolMap !== undefined)
|
|
281
295
|
text += `\n\n${s.toolMap}`;
|
|
282
296
|
return text;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { ConversationEvent, EventPayload } from "../../conversations/events.js";
|
|
2
|
+
/**
|
|
3
|
+
* Tool set changes mid-conversation (tool naming spec §9.1). The kernel resolves the tools on every
|
|
4
|
+
* step, so an extension switched on in the org, a connector set up or a sub-agent roster added
|
|
5
|
+
* changes the next request's tool list; earlier answers in the history ("I have no web search")
|
|
6
|
+
* would still contradict it. A step whose resolved set differs from the one the previous request
|
|
7
|
+
* offered logs a `tools_changed` event before its request; request building renders it at its
|
|
8
|
+
* position as a system message ({@link toolsChangedText}).
|
|
9
|
+
*/
|
|
10
|
+
export type ToolsChange = Pick<EventPayload<"tools_changed">, "added" | "removed">;
|
|
11
|
+
/**
|
|
12
|
+
* The tool set the conversation's previous model request offered, from the log alone: the last
|
|
13
|
+
* `model_call`'s `tools` and `catalog` keys (with `ToolSearch` the catalog holds the deferred
|
|
14
|
+
* tools, so the union is the whole resolved set), then any `tools_changed` logged after it (a
|
|
15
|
+
* step that logged its change and crashed before its request: the change is not logged twice).
|
|
16
|
+
* Skipped: a `model_call` without recorded tools (older logs) and a call whose tools were left out
|
|
17
|
+
* because its model has no tool support (empty, with that step's unsupported reminder): those say
|
|
18
|
+
* nothing about the resolved set. Null when no request offered a known set yet.
|
|
19
|
+
*/
|
|
20
|
+
export declare function previousToolSet(events: readonly ConversationEvent[]): Set<string> | null;
|
|
21
|
+
/**
|
|
22
|
+
* The change from the previous request's tool set to `current` (sorted names), or null: before
|
|
23
|
+
* the conversation's first request (its list is the baseline) and when nothing changed.
|
|
24
|
+
*/
|
|
25
|
+
export declare function toolSetChange(events: readonly ConversationEvent[], current: readonly string[]): ToolsChange | null;
|
|
26
|
+
/** The model-visible text of a `tools_changed` event (English). */
|
|
27
|
+
export declare function toolsChangedText(change: ToolsChange): string;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { TOOLS_UNSUPPORTED_REMINDER } from "./reminders.js";
|
|
2
|
+
/**
|
|
3
|
+
* The tool set the conversation's previous model request offered, from the log alone: the last
|
|
4
|
+
* `model_call`'s `tools` and `catalog` keys (with `ToolSearch` the catalog holds the deferred
|
|
5
|
+
* tools, so the union is the whole resolved set), then any `tools_changed` logged after it (a
|
|
6
|
+
* step that logged its change and crashed before its request: the change is not logged twice).
|
|
7
|
+
* Skipped: a `model_call` without recorded tools (older logs) and a call whose tools were left out
|
|
8
|
+
* because its model has no tool support (empty, with that step's unsupported reminder): those say
|
|
9
|
+
* nothing about the resolved set. Null when no request offered a known set yet.
|
|
10
|
+
*/
|
|
11
|
+
export function previousToolSet(events) {
|
|
12
|
+
const unsupported = new Set();
|
|
13
|
+
for (const e of events) {
|
|
14
|
+
if (e.type === "reminder" && e.payload.text === TOOLS_UNSUPPORTED_REMINDER) {
|
|
15
|
+
unsupported.add(`${e.runId ?? ""}\u0000${e.payload.step}`);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
let known = null;
|
|
19
|
+
for (const e of events) {
|
|
20
|
+
if (e.type === "model_call") {
|
|
21
|
+
const { tools, catalog } = e.payload.request;
|
|
22
|
+
if (tools === undefined)
|
|
23
|
+
continue;
|
|
24
|
+
const keys = [...tools, ...(catalog ?? [])].map((t) => t.key);
|
|
25
|
+
if (keys.length === 0 && unsupported.has(`${e.runId ?? ""}\u0000${e.payload.step}`))
|
|
26
|
+
continue;
|
|
27
|
+
known = new Set(keys);
|
|
28
|
+
}
|
|
29
|
+
else if (e.type === "tools_changed" && known !== null) {
|
|
30
|
+
for (const k of e.payload.removed)
|
|
31
|
+
known.delete(k);
|
|
32
|
+
for (const k of e.payload.added)
|
|
33
|
+
known.add(k);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return known;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* The change from the previous request's tool set to `current` (sorted names), or null: before
|
|
40
|
+
* the conversation's first request (its list is the baseline) and when nothing changed.
|
|
41
|
+
*/
|
|
42
|
+
export function toolSetChange(events, current) {
|
|
43
|
+
const before = previousToolSet(events);
|
|
44
|
+
if (before === null)
|
|
45
|
+
return null;
|
|
46
|
+
const now = new Set(current);
|
|
47
|
+
const added = [...now].filter((k) => !before.has(k)).sort();
|
|
48
|
+
const removed = [...before].filter((k) => !now.has(k)).sort();
|
|
49
|
+
return added.length === 0 && removed.length === 0 ? null : { added, removed };
|
|
50
|
+
}
|
|
51
|
+
/** The model-visible text of a `tools_changed` event (English). */
|
|
52
|
+
export function toolsChangedText(change) {
|
|
53
|
+
const parts = ["Your tools changed."];
|
|
54
|
+
if (change.added.length > 0)
|
|
55
|
+
parts.push(`Now available: ${change.added.join(", ")}.`);
|
|
56
|
+
if (change.removed.length > 0)
|
|
57
|
+
parts.push(`No longer available: ${change.removed.join(", ")}.`);
|
|
58
|
+
parts.push("Use the current tool list; it replaces anything said earlier in this conversation about which tools you have.");
|
|
59
|
+
return parts.join(" ");
|
|
60
|
+
}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import
|
|
2
|
-
import type { Redis } from "ioredis";
|
|
1
|
+
import { LockService } from "../infra/lock/lock.service.js";
|
|
3
2
|
/** 会话运行锁的默认 TTL(毫秒):持有方每 `ttlMs / 3` 续租一次。 */
|
|
4
3
|
export declare const CONVERSATION_LOCK_TTL_MS = 30000;
|
|
5
4
|
/** 本进程持有的会话运行锁。 */
|
|
6
5
|
export interface Lease {
|
|
7
6
|
readonly conversationId: string;
|
|
8
7
|
readonly runId: string;
|
|
9
|
-
/**
|
|
8
|
+
/** 续租时发现锁已不属于自己(过期后被他人取得,或续租一直失败到过期);此后不再续租。 */
|
|
10
9
|
readonly lost: boolean;
|
|
11
10
|
/** 立即续租一次;锁已不属于自己 → false(并标记 lost)。 */
|
|
12
11
|
renew(): Promise<boolean>;
|
|
@@ -18,16 +17,17 @@ export interface Lease {
|
|
|
18
17
|
onLost(cb: () => void): void;
|
|
19
18
|
}
|
|
20
19
|
/**
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
20
|
+
* A per-conversation lease on {@link LockService.hold}: key `<prefix><conversationId>`, value the
|
|
21
|
+
* holder's run id (other replicas read it with {@link holder}), renewed every TTL/3 by the lock
|
|
22
|
+
* service while held; a crashed holder's key expires within the TTL and another replica can take
|
|
23
|
+
* it. Built by {@link ConversationLock} (the run lock) and its {@link ConversationLock.scoped}
|
|
24
|
+
* views (the same lock for another purpose, e.g. the channel delivery `capk:channel-deliver:`).
|
|
25
|
+
* A loss is logged once, by the lock service (`lock lost`, with the key).
|
|
24
26
|
*/
|
|
25
|
-
export declare class
|
|
26
|
-
|
|
27
|
-
private readonly log?;
|
|
27
|
+
export declare class ConversationLeases {
|
|
28
|
+
protected readonly locks: LockService;
|
|
28
29
|
private readonly keyPrefix;
|
|
29
|
-
|
|
30
|
-
constructor(redis: Redis, log?: Pick<Logger, "warn"> | undefined, keyPrefix?: string);
|
|
30
|
+
constructor(locks: LockService, keyPrefix: string);
|
|
31
31
|
private lockKey;
|
|
32
32
|
acquire(conversationId: string, runId: string, ttlMs?: number): Promise<Lease | null>;
|
|
33
33
|
/**
|
|
@@ -38,3 +38,12 @@ export declare class ConversationLock {
|
|
|
38
38
|
/** 当前持有者的 runId;无人持有 → null。 */
|
|
39
39
|
holder(conversationId: string): Promise<string | null>;
|
|
40
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* 会话级运行锁(spec 4.3「同一会话同一时刻只跑一轮」):Redis 键 `capk:conv-run:<id>`,值为 runId,
|
|
43
|
+
* 带 TTL,由 {@link LockService} 每 TTL/3 续租。持有方崩溃时停止续租,锁在 TTL 后过期,其他副本可以取得。
|
|
44
|
+
*/
|
|
45
|
+
export declare class ConversationLock extends ConversationLeases {
|
|
46
|
+
constructor(locks: LockService);
|
|
47
|
+
/** The same per-conversation lease under another key prefix (another purpose). */
|
|
48
|
+
scoped(keyPrefix: string): ConversationLeases;
|
|
49
|
+
}
|