@bevel-software/platform-core-backend 0.32.0 → 0.34.0
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/agent-guide/access-control.md +24 -8
- package/agent-guide/html-views.md +277 -15
- package/agent-guide/tool-manuals.md +1 -1
- package/dist/core/catalog-revision.d.ts +12 -1
- package/dist/core/catalog-revision.d.ts.map +1 -1
- package/dist/core/catalog-revision.js +23 -3
- package/dist/core/catalog-revision.js.map +1 -1
- package/dist/core/core-ports.d.ts +41 -0
- package/dist/core/core-ports.d.ts.map +1 -1
- package/dist/core/core-ports.js.map +1 -1
- package/dist/core/create-core-server.d.ts.map +1 -1
- package/dist/core/create-core-server.js +42 -10
- package/dist/core/create-core-server.js.map +1 -1
- package/dist/core/create-core-services.d.ts +22 -6
- package/dist/core/create-core-services.d.ts.map +1 -1
- package/dist/core/create-core-services.js +58 -17
- package/dist/core/create-core-services.js.map +1 -1
- package/dist/core/lifecycle.d.ts +24 -0
- package/dist/core/lifecycle.d.ts.map +1 -1
- package/dist/core/lifecycle.js +16 -2
- package/dist/core/lifecycle.js.map +1 -1
- package/dist/core/public-config.d.ts +10 -0
- package/dist/core/public-config.d.ts.map +1 -1
- package/dist/core/public-config.js +10 -0
- package/dist/core/public-config.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/modules/access/access-control.interface.d.ts +17 -9
- package/dist/modules/access/access-control.interface.d.ts.map +1 -1
- package/dist/modules/access/access-control.service.d.ts +13 -3
- package/dist/modules/access/access-control.service.d.ts.map +1 -1
- package/dist/modules/access/access-control.service.js +165 -77
- package/dist/modules/access/access-control.service.js.map +1 -1
- package/dist/modules/access/access-declarations.d.ts +1 -1
- package/dist/modules/access/access-declarations.d.ts.map +1 -1
- package/dist/modules/access/access-declarations.js +1 -1
- package/dist/modules/access/access-declarations.js.map +1 -1
- package/dist/modules/access/access-mutation.service.d.ts +28 -25
- package/dist/modules/access/access-mutation.service.d.ts.map +1 -1
- package/dist/modules/access/access-mutation.service.js +50 -53
- package/dist/modules/access/access-mutation.service.js.map +1 -1
- package/dist/modules/access/access-requests.contract.d.ts +1 -1
- package/dist/modules/access/access-requests.contract.d.ts.map +1 -1
- package/dist/modules/access/access-requests.routes.d.ts +3 -3
- package/dist/modules/access/access-requests.routes.d.ts.map +1 -1
- package/dist/modules/access/access-requests.routes.js +7 -7
- package/dist/modules/access/access-requests.routes.js.map +1 -1
- package/dist/modules/access/access-requests.service.d.ts +21 -20
- package/dist/modules/access/access-requests.service.d.ts.map +1 -1
- package/dist/modules/access/access-requests.service.js +22 -68
- package/dist/modules/access/access-requests.service.js.map +1 -1
- package/dist/modules/access/access-view.d.ts +1 -1
- package/dist/modules/access/access-view.d.ts.map +1 -1
- package/dist/modules/access/access-view.js +12 -11
- package/dist/modules/access/access-view.js.map +1 -1
- package/dist/modules/access/access.routes.d.ts +8 -7
- package/dist/modules/access/access.routes.d.ts.map +1 -1
- package/dist/modules/access/access.routes.js +38 -32
- package/dist/modules/access/access.routes.js.map +1 -1
- package/dist/modules/access/admin-locked-commit.d.ts +2 -2
- package/dist/modules/access/admin-locked-commit.d.ts.map +1 -1
- package/dist/modules/access/admin-locked-commit.js +1 -1
- package/dist/modules/access/admin-locked-commit.js.map +1 -1
- package/dist/modules/access/capability-registry.js +1 -1
- package/dist/modules/access/capability-registry.js.map +1 -1
- package/dist/modules/access/change-read-gate.d.ts +2 -2
- package/dist/modules/access/change-read-gate.d.ts.map +1 -1
- package/dist/modules/access/change-read-gate.js +1 -3
- package/dist/modules/access/change-read-gate.js.map +1 -1
- package/dist/modules/access/creator-access.d.ts +2 -2
- package/dist/modules/access/creator-access.d.ts.map +1 -1
- package/dist/modules/access/creator-access.js +2 -4
- package/dist/modules/access/creator-access.js.map +1 -1
- package/dist/modules/access/directory-sync-bot.d.ts +1 -1
- package/dist/modules/access/directory-sync-bot.d.ts.map +1 -1
- package/dist/modules/access/directory-sync-bot.js +1 -1
- package/dist/modules/access/directory-sync-bot.js.map +1 -1
- package/dist/modules/access/groups-admin.routes.d.ts +2 -2
- package/dist/modules/access/groups-admin.routes.d.ts.map +1 -1
- package/dist/modules/access/groups-admin.routes.js +6 -4
- package/dist/modules/access/groups-admin.routes.js.map +1 -1
- package/dist/modules/access/groups-admin.service.d.ts +45 -14
- package/dist/modules/access/groups-admin.service.d.ts.map +1 -1
- package/dist/modules/access/groups-admin.service.js +80 -39
- package/dist/modules/access/groups-admin.service.js.map +1 -1
- package/dist/modules/access/groups-edit.d.ts +1 -1
- package/dist/modules/access/groups-edit.d.ts.map +1 -1
- package/dist/modules/access/groups-edit.js +3 -3
- package/dist/modules/access/groups-edit.js.map +1 -1
- package/dist/modules/access/index.d.ts +17 -0
- package/dist/modules/access/index.d.ts.map +1 -0
- package/dist/modules/access/index.js +6 -0
- package/dist/modules/access/index.js.map +1 -0
- package/dist/modules/access/reference-scan.d.ts +116 -24
- package/dist/modules/access/reference-scan.d.ts.map +1 -1
- package/dist/modules/access/reference-scan.js +305 -44
- package/dist/modules/access/reference-scan.js.map +1 -1
- package/dist/modules/access/roles-admin.service.d.ts +18 -9
- package/dist/modules/access/roles-admin.service.d.ts.map +1 -1
- package/dist/modules/access/roles-admin.service.js +32 -26
- package/dist/modules/access/roles-admin.service.js.map +1 -1
- package/dist/modules/access/roles-edit.js +1 -1
- package/dist/modules/access/roles-edit.js.map +1 -1
- package/dist/modules/access/synced-groups-committer.d.ts +2 -2
- package/dist/modules/access/synced-groups-committer.d.ts.map +1 -1
- package/dist/modules/access/synced-groups-committer.js +2 -2
- package/dist/modules/access/synced-groups-committer.js.map +1 -1
- package/dist/modules/access/synced-groups-writer.js +2 -2
- package/dist/modules/access/synced-groups-writer.js.map +1 -1
- package/dist/modules/access/user-access-removal.service.d.ts +1 -1
- package/dist/modules/access/user-access-removal.service.d.ts.map +1 -1
- package/dist/modules/access/user-access-removal.service.js +2 -5
- package/dist/modules/access/user-access-removal.service.js.map +1 -1
- package/dist/modules/access-model/access-grammar.d.ts +35 -10
- package/dist/modules/access-model/access-grammar.d.ts.map +1 -1
- package/dist/modules/access-model/access-grammar.js +60 -20
- package/dist/modules/access-model/access-grammar.js.map +1 -1
- package/dist/modules/access-model/access-splice.d.ts +22 -18
- package/dist/modules/access-model/access-splice.d.ts.map +1 -1
- package/dist/modules/access-model/access-splice.js +20 -14
- package/dist/modules/access-model/access-splice.js.map +1 -1
- package/dist/modules/access-model/group-files.d.ts +1 -0
- package/dist/modules/access-model/group-files.d.ts.map +1 -1
- package/dist/modules/access-model/group-files.js +5 -1
- package/dist/modules/access-model/group-files.js.map +1 -1
- package/dist/modules/access-model/index.d.ts +20 -5
- package/dist/modules/access-model/index.d.ts.map +1 -1
- package/dist/modules/access-model/index.js +18 -5
- package/dist/modules/access-model/index.js.map +1 -1
- package/dist/modules/access-model/roles-yaml-guard.d.ts +1 -1
- package/dist/modules/access-model/roles-yaml-guard.d.ts.map +1 -1
- package/dist/modules/admin/admin-access.routes.d.ts +1 -1
- package/dist/modules/admin/admin-access.routes.d.ts.map +1 -1
- package/dist/modules/admin/admin-access.routes.js +1 -1
- package/dist/modules/admin/admin-access.routes.js.map +1 -1
- package/dist/modules/admin/admin-access.service.d.ts +2 -2
- package/dist/modules/admin/admin-access.service.d.ts.map +1 -1
- package/dist/modules/admin/index.d.ts +8 -0
- package/dist/modules/admin/index.d.ts.map +1 -0
- package/dist/modules/admin/index.js +2 -0
- package/dist/modules/admin/index.js.map +1 -0
- package/dist/modules/agent-guide/agent-guide.js +1 -1
- package/dist/modules/agent-guide/agent-guide.js.map +1 -1
- package/dist/modules/agent-guide/agent-guide.tools.d.ts +3 -3
- package/dist/modules/agent-guide/agent-guide.tools.d.ts.map +1 -1
- package/dist/modules/agent-guide/agent-guide.tools.js +15 -7
- package/dist/modules/agent-guide/agent-guide.tools.js.map +1 -1
- package/dist/modules/agent-guide/index.d.ts +1 -1
- package/dist/modules/agent-guide/index.d.ts.map +1 -1
- package/dist/modules/agent-guide/index.js +1 -1
- package/dist/modules/agent-guide/index.js.map +1 -1
- package/dist/modules/agent-instructions/compose.d.ts +3 -1
- package/dist/modules/agent-instructions/compose.d.ts.map +1 -1
- package/dist/modules/agent-instructions/compose.js +3 -1
- package/dist/modules/agent-instructions/compose.js.map +1 -1
- package/dist/modules/agent-instructions/read-preamble.d.ts +1 -1
- package/dist/modules/agent-instructions/read-preamble.d.ts.map +1 -1
- package/dist/modules/agent-instructions/shared-file-rules.d.ts +5 -1
- package/dist/modules/agent-instructions/shared-file-rules.d.ts.map +1 -1
- package/dist/modules/agent-instructions/shared-file-rules.js +16 -1
- package/dist/modules/agent-instructions/shared-file-rules.js.map +1 -1
- package/dist/modules/agent-scope/agent-scope.contract.d.ts +67 -0
- package/dist/modules/agent-scope/agent-scope.contract.d.ts.map +1 -0
- package/dist/modules/agent-scope/agent-scope.contract.js +27 -0
- package/dist/modules/agent-scope/agent-scope.contract.js.map +1 -0
- package/dist/modules/agent-scope/connection-scope.d.ts +111 -0
- package/dist/modules/agent-scope/connection-scope.d.ts.map +1 -0
- package/dist/modules/agent-scope/connection-scope.js +165 -0
- package/dist/modules/agent-scope/connection-scope.js.map +1 -0
- package/dist/modules/agent-scope/index.d.ts +3 -0
- package/dist/modules/agent-scope/index.d.ts.map +1 -0
- package/dist/modules/agent-scope/index.js +3 -0
- package/dist/modules/agent-scope/index.js.map +1 -0
- package/dist/modules/audit/agent-audit.service.d.ts +2 -2
- package/dist/modules/audit/agent-audit.service.d.ts.map +1 -1
- package/dist/modules/audit/agent-audit.service.js +3 -1
- package/dist/modules/audit/agent-audit.service.js.map +1 -1
- package/dist/modules/audit/agent-connection.routes.d.ts +1 -1
- package/dist/modules/audit/agent-connection.routes.d.ts.map +1 -1
- package/dist/modules/audit/agent-connection.routes.js +1 -1
- package/dist/modules/audit/agent-connection.routes.js.map +1 -1
- package/dist/modules/audit/agent-rest-audit.middleware.d.ts +1 -1
- package/dist/modules/audit/agent-rest-audit.middleware.d.ts.map +1 -1
- package/dist/modules/audit/agent-rest-audit.middleware.js +1 -1
- package/dist/modules/audit/agent-rest-audit.middleware.js.map +1 -1
- package/dist/modules/audit/audit.contract.d.ts +6 -0
- package/dist/modules/audit/audit.contract.d.ts.map +1 -1
- package/dist/modules/audit/audit.contract.js.map +1 -1
- package/dist/modules/audit/audit.routes.d.ts +3 -3
- package/dist/modules/audit/audit.routes.d.ts.map +1 -1
- package/dist/modules/audit/audit.routes.js +2 -2
- package/dist/modules/audit/audit.routes.js.map +1 -1
- package/dist/modules/auth/account-admission.d.ts +12 -0
- package/dist/modules/auth/account-admission.d.ts.map +1 -1
- package/dist/modules/auth/account-admission.js +15 -0
- package/dist/modules/auth/account-admission.js.map +1 -1
- package/dist/modules/auth/account-erasure.service.d.ts +3 -3
- package/dist/modules/auth/account-erasure.service.d.ts.map +1 -1
- package/dist/modules/auth/account-erasure.service.js +1 -5
- package/dist/modules/auth/account-erasure.service.js.map +1 -1
- package/dist/modules/auth/account-switch-lock.d.ts +1 -1
- package/dist/modules/auth/account-switch-lock.d.ts.map +1 -1
- package/dist/modules/auth/account-switch-lock.js +1 -1
- package/dist/modules/auth/account-switch-lock.js.map +1 -1
- package/dist/modules/auth/account.routes.d.ts +2 -2
- package/dist/modules/auth/account.routes.d.ts.map +1 -1
- package/dist/modules/auth/account.routes.js +1 -1
- package/dist/modules/auth/account.routes.js.map +1 -1
- package/dist/modules/auth/auth.middleware.d.ts +27 -1
- package/dist/modules/auth/auth.middleware.d.ts.map +1 -1
- package/dist/modules/auth/auth.middleware.js +42 -4
- package/dist/modules/auth/auth.middleware.js.map +1 -1
- package/dist/modules/auth/auth.routes.d.ts +13 -9
- package/dist/modules/auth/auth.routes.d.ts.map +1 -1
- package/dist/modules/auth/auth.routes.js +35 -29
- package/dist/modules/auth/auth.routes.js.map +1 -1
- package/dist/modules/auth/auth.service.d.ts +56 -7
- package/dist/modules/auth/auth.service.d.ts.map +1 -1
- package/dist/modules/auth/auth.service.js +131 -37
- package/dist/modules/auth/auth.service.js.map +1 -1
- package/dist/modules/auth/index.d.ts +3 -1
- package/dist/modules/auth/index.d.ts.map +1 -1
- package/dist/modules/auth/index.js +1 -1
- package/dist/modules/auth/index.js.map +1 -1
- package/dist/modules/auth/oidc-auth-provider.d.ts.map +1 -1
- package/dist/modules/auth/oidc-auth-provider.js +3 -10
- package/dist/modules/auth/oidc-auth-provider.js.map +1 -1
- package/dist/modules/code-mode/code-mode.tool.d.ts +1 -1
- package/dist/modules/code-mode/code-mode.tool.d.ts.map +1 -1
- package/dist/modules/connection-probe/connection-probe.service.d.ts +2 -2
- package/dist/modules/connection-probe/connection-probe.service.d.ts.map +1 -1
- package/dist/modules/connection-probe/connection-probe.service.js +1 -4
- package/dist/modules/connection-probe/connection-probe.service.js.map +1 -1
- package/dist/modules/database/core-schema.d.ts +175 -234
- package/dist/modules/database/core-schema.d.ts.map +1 -1
- package/dist/modules/database/core-schema.js +72 -35
- package/dist/modules/database/core-schema.js.map +1 -1
- package/dist/modules/database/index.d.ts +10 -0
- package/dist/modules/database/index.d.ts.map +1 -0
- package/dist/modules/database/index.js +4 -0
- package/dist/modules/database/index.js.map +1 -0
- package/dist/modules/database/migrate.d.ts.map +1 -1
- package/dist/modules/database/migrate.js +78 -3
- package/dist/modules/database/migrate.js.map +1 -1
- package/dist/modules/declared-variables/declared-variables.routes.d.ts +10 -3
- package/dist/modules/declared-variables/declared-variables.routes.d.ts.map +1 -1
- package/dist/modules/declared-variables/declared-variables.routes.js +13 -2
- package/dist/modules/declared-variables/declared-variables.routes.js.map +1 -1
- package/dist/modules/diff/diff.routes.d.ts +3 -3
- package/dist/modules/diff/diff.routes.d.ts.map +1 -1
- package/dist/modules/diff/diff.routes.js +3 -3
- package/dist/modules/diff/diff.routes.js.map +1 -1
- package/dist/modules/diff/diff.service.d.ts +2 -2
- package/dist/modules/diff/diff.service.d.ts.map +1 -1
- package/dist/modules/diff/index.d.ts +7 -0
- package/dist/modules/diff/index.d.ts.map +1 -0
- package/dist/modules/diff/index.js +2 -0
- package/dist/modules/diff/index.js.map +1 -0
- package/dist/modules/embed/account-link.service.d.ts +1 -1
- package/dist/modules/embed/account-link.service.d.ts.map +1 -1
- package/dist/modules/embed/account-link.service.js +1 -1
- package/dist/modules/embed/account-link.service.js.map +1 -1
- package/dist/modules/embed/embed.routes.d.ts +1 -1
- package/dist/modules/embed/embed.routes.d.ts.map +1 -1
- package/dist/modules/embed/embed.routes.js +2 -2
- package/dist/modules/embed/embed.routes.js.map +1 -1
- package/dist/modules/embed/embed.service.d.ts +1 -1
- package/dist/modules/embed/embed.service.d.ts.map +1 -1
- package/dist/modules/embed/embed.tools.d.ts +4 -4
- package/dist/modules/embed/embed.tools.d.ts.map +1 -1
- package/dist/modules/embed/embed.tools.js +8 -5
- package/dist/modules/embed/embed.tools.js.map +1 -1
- package/dist/modules/github-app/github-app.connection.d.ts +1 -1
- package/dist/modules/github-app/github-app.connection.d.ts.map +1 -1
- package/dist/modules/github-app/github-app.routes.d.ts +3 -3
- package/dist/modules/github-app/github-app.routes.d.ts.map +1 -1
- package/dist/modules/github-app/github-app.routes.js +1 -1
- package/dist/modules/github-app/github-app.routes.js.map +1 -1
- package/dist/modules/kb-fs/index.d.ts +12 -0
- package/dist/modules/kb-fs/index.d.ts.map +1 -1
- package/dist/modules/kb-fs/index.js +11 -0
- package/dist/modules/kb-fs/index.js.map +1 -1
- package/dist/modules/kb-fs/locking-filesystem.d.ts +1 -1
- package/dist/modules/kb-fs/locking-filesystem.d.ts.map +1 -1
- package/dist/modules/kb-fs/locking-filesystem.js +7 -1
- package/dist/modules/kb-fs/locking-filesystem.js.map +1 -1
- package/dist/modules/kb-fs/repo-path.d.ts +26 -6
- package/dist/modules/kb-fs/repo-path.d.ts.map +1 -1
- package/dist/modules/kb-fs/repo-path.js +22 -7
- package/dist/modules/kb-fs/repo-path.js.map +1 -1
- package/dist/modules/kb-fs/tmp-ref.d.ts +36 -0
- package/dist/modules/kb-fs/tmp-ref.d.ts.map +1 -0
- package/dist/modules/kb-fs/tmp-ref.js +76 -0
- package/dist/modules/kb-fs/tmp-ref.js.map +1 -0
- package/dist/modules/kb-sync/kb-sync.routes.d.ts +1 -1
- package/dist/modules/kb-sync/kb-sync.routes.d.ts.map +1 -1
- package/dist/modules/kb-sync/kb-sync.routes.js +2 -2
- package/dist/modules/kb-sync/kb-sync.routes.js.map +1 -1
- package/dist/modules/kb-sync/kb-sync.service.js +1 -1
- package/dist/modules/kb-sync/kb-sync.service.js.map +1 -1
- package/dist/modules/kb-sync/sync-auth.js +1 -1
- package/dist/modules/kb-sync/sync-auth.js.map +1 -1
- package/dist/modules/kb-sync/sync-payload.js +1 -1
- package/dist/modules/kb-sync/sync-payload.js.map +1 -1
- package/dist/modules/marketplace/git-http.routes.d.ts +1 -1
- package/dist/modules/marketplace/git-http.routes.d.ts.map +1 -1
- package/dist/modules/marketplace/git-http.routes.js +1 -1
- package/dist/modules/marketplace/git-http.routes.js.map +1 -1
- package/dist/modules/marketplace/github-facade/github-facade-admin.routes.d.ts +1 -1
- package/dist/modules/marketplace/github-facade/github-facade-admin.routes.d.ts.map +1 -1
- package/dist/modules/marketplace/github-facade/github-facade-admin.routes.js +1 -1
- package/dist/modules/marketplace/github-facade/github-facade-admin.routes.js.map +1 -1
- package/dist/modules/marketplace/github-facade/github-facade-codes.store.d.ts +1 -1
- package/dist/modules/marketplace/github-facade/github-facade-codes.store.d.ts.map +1 -1
- package/dist/modules/marketplace/github-facade/github-facade-codes.store.js +1 -1
- package/dist/modules/marketplace/github-facade/github-facade-codes.store.js.map +1 -1
- package/dist/modules/marketplace/github-facade/github-facade-credentials.service.d.ts +1 -1
- package/dist/modules/marketplace/github-facade/github-facade-credentials.service.d.ts.map +1 -1
- package/dist/modules/marketplace/github-facade/github-facade-credentials.service.js +1 -1
- package/dist/modules/marketplace/github-facade/github-facade-credentials.service.js.map +1 -1
- package/dist/modules/marketplace/github-facade/github-facade.routes.d.ts +2 -2
- package/dist/modules/marketplace/github-facade/github-facade.routes.d.ts.map +1 -1
- package/dist/modules/marketplace/github-facade/github-facade.routes.js +2 -2
- package/dist/modules/marketplace/github-facade/github-facade.routes.js.map +1 -1
- package/dist/modules/marketplace/github-facade/github-facade.service.d.ts +2 -2
- package/dist/modules/marketplace/github-facade/github-facade.service.d.ts.map +1 -1
- package/dist/modules/marketplace/github-facade/github-facade.service.js +1 -1
- package/dist/modules/marketplace/github-facade/github-facade.service.js.map +1 -1
- package/dist/modules/marketplace/marketplace-repo.service.d.ts +1 -1
- package/dist/modules/marketplace/marketplace-repo.service.d.ts.map +1 -1
- package/dist/modules/marketplace/marketplace-repo.service.js +1 -1
- package/dist/modules/mcp/index.d.ts +8 -0
- package/dist/modules/mcp/index.d.ts.map +1 -0
- package/dist/modules/mcp/index.js +7 -0
- package/dist/modules/mcp/index.js.map +1 -0
- package/dist/modules/mcp/mcp-auth.middleware.d.ts +11 -5
- package/dist/modules/mcp/mcp-auth.middleware.d.ts.map +1 -1
- package/dist/modules/mcp/mcp-auth.middleware.js +18 -5
- package/dist/modules/mcp/mcp-auth.middleware.js.map +1 -1
- package/dist/modules/mcp/mcp.routes.d.ts +9 -5
- package/dist/modules/mcp/mcp.routes.d.ts.map +1 -1
- package/dist/modules/mcp/mcp.routes.js +41 -6
- package/dist/modules/mcp/mcp.routes.js.map +1 -1
- package/dist/modules/mcp/mcp.service.d.ts +25 -4
- package/dist/modules/mcp/mcp.service.d.ts.map +1 -1
- package/dist/modules/mcp/mcp.service.js +84 -19
- package/dist/modules/mcp/mcp.service.js.map +1 -1
- package/dist/modules/mcp/oauth/bevel-oauth-provider.d.ts +25 -2
- package/dist/modules/mcp/oauth/bevel-oauth-provider.d.ts.map +1 -1
- package/dist/modules/mcp/oauth/bevel-oauth-provider.js +46 -11
- package/dist/modules/mcp/oauth/bevel-oauth-provider.js.map +1 -1
- package/dist/modules/mcp/oauth/oauth-consent.routes.d.ts +10 -1
- package/dist/modules/mcp/oauth/oauth-consent.routes.d.ts.map +1 -1
- package/dist/modules/mcp/oauth/oauth-consent.routes.js +35 -2
- package/dist/modules/mcp/oauth/oauth-consent.routes.js.map +1 -1
- package/dist/modules/onboarding/onboarding.routes.d.ts +1 -1
- package/dist/modules/onboarding/onboarding.routes.d.ts.map +1 -1
- package/dist/modules/onboarding/onboarding.routes.js +1 -1
- package/dist/modules/onboarding/onboarding.routes.js.map +1 -1
- package/dist/modules/onboarding/starter-pack.service.d.ts +4 -5
- package/dist/modules/onboarding/starter-pack.service.d.ts.map +1 -1
- package/dist/modules/onboarding/starter-pack.service.js +2 -2
- package/dist/modules/onboarding/starter-pack.service.js.map +1 -1
- package/dist/modules/plugins/compile/compile-marketplace.d.ts +1 -1
- package/dist/modules/plugins/compile/compile-marketplace.d.ts.map +1 -1
- package/dist/modules/plugins/compile/compile-marketplace.js +1 -1
- package/dist/modules/plugins/compile/compile-marketplace.js.map +1 -1
- package/dist/modules/plugins/compile/marketplace-compiler.service.d.ts +3 -3
- package/dist/modules/plugins/compile/marketplace-compiler.service.d.ts.map +1 -1
- package/dist/modules/plugins/discovery/bundle-dialect/registry.d.ts +1 -1
- package/dist/modules/plugins/discovery/bundle-dialect/registry.d.ts.map +1 -1
- package/dist/modules/plugins/discovery/bundle-dialect/registry.js +1 -1
- package/dist/modules/plugins/discovery/bundle-dialect/registry.js.map +1 -1
- package/dist/modules/plugins/index.d.ts +2 -1
- package/dist/modules/plugins/index.d.ts.map +1 -1
- package/dist/modules/plugins/index.js +2 -0
- package/dist/modules/plugins/index.js.map +1 -1
- package/dist/modules/plugins/join-proposals.d.ts +2 -2
- package/dist/modules/plugins/join-proposals.d.ts.map +1 -1
- package/dist/modules/plugins/join-proposals.js +1 -1
- package/dist/modules/plugins/join-proposals.js.map +1 -1
- package/dist/modules/plugins/join-request-jobs.service.d.ts +1 -1
- package/dist/modules/plugins/join-request-jobs.service.d.ts.map +1 -1
- package/dist/modules/plugins/join-request-jobs.service.js +2 -2
- package/dist/modules/plugins/join-request-jobs.service.js.map +1 -1
- package/dist/modules/plugins/join-request-records.store.d.ts +1 -1
- package/dist/modules/plugins/join-request-records.store.d.ts.map +1 -1
- package/dist/modules/plugins/join-request-records.store.js +1 -1
- package/dist/modules/plugins/join-request-records.store.js.map +1 -1
- package/dist/modules/plugins/join-requests.service.d.ts +3 -3
- package/dist/modules/plugins/join-requests.service.d.ts.map +1 -1
- package/dist/modules/plugins/join-requests.service.js +1 -1
- package/dist/modules/plugins/join-requests.service.js.map +1 -1
- package/dist/modules/plugins/plugin-links.d.ts +21 -5
- package/dist/modules/plugins/plugin-links.d.ts.map +1 -1
- package/dist/modules/plugins/plugin-links.js +1 -1
- package/dist/modules/plugins/plugin-links.js.map +1 -1
- package/dist/modules/plugins/plugin-links.service.d.ts +8 -5
- package/dist/modules/plugins/plugin-links.service.d.ts.map +1 -1
- package/dist/modules/plugins/plugin-links.service.js +8 -6
- package/dist/modules/plugins/plugin-links.service.js.map +1 -1
- package/dist/modules/plugins/plugin-provision.service.d.ts +2 -2
- package/dist/modules/plugins/plugin-provision.service.d.ts.map +1 -1
- package/dist/modules/plugins/plugin-provision.service.js +2 -3
- package/dist/modules/plugins/plugin-provision.service.js.map +1 -1
- package/dist/modules/plugins/plugin-rename.service.d.ts +2 -2
- package/dist/modules/plugins/plugin-rename.service.d.ts.map +1 -1
- package/dist/modules/plugins/plugin-rename.service.js +1 -1
- package/dist/modules/plugins/plugin-rename.service.js.map +1 -1
- package/dist/modules/plugins/plugins.contract.d.ts +1 -1
- package/dist/modules/plugins/plugins.contract.d.ts.map +1 -1
- package/dist/modules/plugins/plugins.routes.d.ts +7 -3
- package/dist/modules/plugins/plugins.routes.d.ts.map +1 -1
- package/dist/modules/plugins/plugins.routes.js +35 -8
- package/dist/modules/plugins/plugins.routes.js.map +1 -1
- package/dist/modules/plugins/plugins.service.d.ts +4 -4
- package/dist/modules/plugins/plugins.service.d.ts.map +1 -1
- package/dist/modules/plugins/plugins.service.js +1 -1
- package/dist/modules/plugins/plugins.service.js.map +1 -1
- package/dist/modules/plugins/plugins.tools.d.ts +1 -1
- package/dist/modules/plugins/plugins.tools.d.ts.map +1 -1
- package/dist/modules/plugins/plugins.tools.js +3 -3
- package/dist/modules/plugins/plugins.tools.js.map +1 -1
- package/dist/modules/plugins/teams.routes.d.ts +3 -3
- package/dist/modules/plugins/teams.routes.d.ts.map +1 -1
- package/dist/modules/secrets-vault/db-secrets-vault.service.d.ts +1 -1
- package/dist/modules/secrets-vault/db-secrets-vault.service.d.ts.map +1 -1
- package/dist/modules/secrets-vault/db-secrets-vault.service.js +1 -1
- package/dist/modules/secrets-vault/db-secrets-vault.service.js.map +1 -1
- package/dist/modules/secrets-vault/index.d.ts +1 -0
- package/dist/modules/secrets-vault/index.d.ts.map +1 -1
- package/dist/modules/secrets-vault/index.js +2 -0
- package/dist/modules/secrets-vault/index.js.map +1 -1
- package/dist/modules/secrets-vault/secrets-vault.routes.d.ts +13 -4
- package/dist/modules/secrets-vault/secrets-vault.routes.d.ts.map +1 -1
- package/dist/modules/secrets-vault/secrets-vault.routes.js +16 -4
- package/dist/modules/secrets-vault/secrets-vault.routes.js.map +1 -1
- package/dist/modules/settings/connection-check.js +1 -1
- package/dist/modules/settings/connection-check.js.map +1 -1
- package/dist/modules/settings/deployment-settings.service.d.ts +7 -1
- package/dist/modules/settings/deployment-settings.service.d.ts.map +1 -1
- package/dist/modules/settings/deployment-settings.service.js +45 -3
- package/dist/modules/settings/deployment-settings.service.js.map +1 -1
- package/dist/modules/settings/git-root-folders.js +1 -1
- package/dist/modules/settings/git-root-folders.js.map +1 -1
- package/dist/modules/settings/index.d.ts +13 -0
- package/dist/modules/settings/index.d.ts.map +1 -0
- package/dist/modules/settings/index.js +3 -0
- package/dist/modules/settings/index.js.map +1 -0
- package/dist/modules/settings/setup.routes.d.ts +3 -3
- package/dist/modules/settings/setup.routes.d.ts.map +1 -1
- package/dist/modules/settings/setup.routes.js +2 -2
- package/dist/modules/settings/setup.routes.js.map +1 -1
- package/dist/modules/skills/allowed-tools-check.d.ts +2 -2
- package/dist/modules/skills/allowed-tools-check.d.ts.map +1 -1
- package/dist/modules/skills/allowed-tools-check.js +1 -1
- package/dist/modules/skills/allowed-tools-check.js.map +1 -1
- package/dist/modules/skills/index.d.ts +4 -3
- package/dist/modules/skills/index.d.ts.map +1 -1
- package/dist/modules/skills/index.js +0 -2
- package/dist/modules/skills/index.js.map +1 -1
- package/dist/modules/skills/pending-skills.service.d.ts +3 -3
- package/dist/modules/skills/pending-skills.service.d.ts.map +1 -1
- package/dist/modules/skills/pending-skills.service.js.map +1 -1
- package/dist/modules/skills/skill-access-requests.routes.d.ts +5 -5
- package/dist/modules/skills/skill-access-requests.routes.d.ts.map +1 -1
- package/dist/modules/skills/skill-access-requests.routes.js +6 -13
- package/dist/modules/skills/skill-access-requests.routes.js.map +1 -1
- package/dist/modules/skills/skills.contract.d.ts +16 -0
- package/dist/modules/skills/skills.contract.d.ts.map +1 -1
- package/dist/modules/skills/skills.routes.d.ts +1 -1
- package/dist/modules/skills/skills.routes.d.ts.map +1 -1
- package/dist/modules/skills/skills.routes.js +1 -1
- package/dist/modules/skills/skills.routes.js.map +1 -1
- package/dist/modules/skills/skills.service.d.ts +2 -2
- package/dist/modules/skills/skills.service.d.ts.map +1 -1
- package/dist/modules/skills/skills.service.js +6 -1
- package/dist/modules/skills/skills.service.js.map +1 -1
- package/dist/modules/skills/skills.tools.d.ts +3 -3
- package/dist/modules/skills/skills.tools.d.ts.map +1 -1
- package/dist/modules/skills/skills.tools.js +27 -19
- package/dist/modules/skills/skills.tools.js.map +1 -1
- package/dist/modules/tool-auth/connection-key-rejection.js +1 -1
- package/dist/modules/tool-auth/connection-key-rejection.js.map +1 -1
- package/dist/modules/tool-auth/connection-keys-admin.routes.d.ts +2 -2
- package/dist/modules/tool-auth/connection-keys-admin.routes.d.ts.map +1 -1
- package/dist/modules/tool-auth/connection-keys-admin.routes.js +1 -1
- package/dist/modules/tool-auth/connection-keys-admin.routes.js.map +1 -1
- package/dist/modules/tool-auth/external-api-key.interface.d.ts +11 -0
- package/dist/modules/tool-auth/external-api-key.interface.d.ts.map +1 -1
- package/dist/modules/tool-auth/external-api-key.interface.js.map +1 -1
- package/dist/modules/tool-auth/external-api-key.service.d.ts +2 -1
- package/dist/modules/tool-auth/external-api-key.service.d.ts.map +1 -1
- package/dist/modules/tool-auth/external-api-key.service.js +5 -2
- package/dist/modules/tool-auth/external-api-key.service.js.map +1 -1
- package/dist/modules/tool-auth/index.d.ts +15 -0
- package/dist/modules/tool-auth/index.d.ts.map +1 -0
- package/dist/modules/tool-auth/index.js +11 -0
- package/dist/modules/tool-auth/index.js.map +1 -0
- package/dist/modules/tool-auth/internal-token.service.d.ts +9 -0
- package/dist/modules/tool-auth/internal-token.service.d.ts.map +1 -1
- package/dist/modules/tool-auth/internal-token.service.js +1 -0
- package/dist/modules/tool-auth/internal-token.service.js.map +1 -1
- package/dist/modules/tool-auth/tool-auth.middleware.d.ts +29 -5
- package/dist/modules/tool-auth/tool-auth.middleware.d.ts.map +1 -1
- package/dist/modules/tool-auth/tool-auth.middleware.js +33 -7
- package/dist/modules/tool-auth/tool-auth.middleware.js.map +1 -1
- package/dist/modules/tool-helpers/default-branch-write.d.ts +1 -1
- package/dist/modules/tool-helpers/default-branch-write.d.ts.map +1 -1
- package/dist/modules/tool-helpers/index.d.ts +4 -1
- package/dist/modules/tool-helpers/index.d.ts.map +1 -1
- package/dist/modules/tool-helpers/index.js +3 -0
- package/dist/modules/tool-helpers/index.js.map +1 -1
- package/dist/modules/tool-helpers/route-argument-check.js +1 -1
- package/dist/modules/tool-helpers/route-argument-check.js.map +1 -1
- package/dist/modules/tool-helpers/route-tool-schemas.d.ts +1 -1
- package/dist/modules/tool-helpers/route-tool-schemas.d.ts.map +1 -1
- package/dist/modules/tool-helpers/tool-context.d.ts +12 -6
- package/dist/modules/tool-helpers/tool-context.d.ts.map +1 -1
- package/dist/modules/tool-helpers/tool-context.js +5 -3
- package/dist/modules/tool-helpers/tool-context.js.map +1 -1
- package/dist/modules/tool-helpers/tool-def.d.ts +4 -2
- package/dist/modules/tool-helpers/tool-def.d.ts.map +1 -1
- package/dist/modules/tool-helpers/tool-def.js +3 -1
- package/dist/modules/tool-helpers/tool-def.js.map +1 -1
- package/dist/modules/tool-helpers/tool-handler.d.ts +17 -2
- package/dist/modules/tool-helpers/tool-handler.d.ts.map +1 -1
- package/dist/modules/tool-helpers/tool-handler.js +21 -2
- package/dist/modules/tool-helpers/tool-handler.js.map +1 -1
- package/dist/modules/tool-helpers/tool.contract.d.ts +12 -2
- package/dist/modules/tool-helpers/tool.contract.d.ts.map +1 -1
- package/dist/modules/tool-helpers/tool.contract.js.map +1 -1
- package/dist/modules/tool-helpers/validate-token.d.ts +3 -2
- package/dist/modules/tool-helpers/validate-token.d.ts.map +1 -1
- package/dist/modules/tool-helpers/validate-token.js +2 -2
- package/dist/modules/tool-helpers/validate-token.js.map +1 -1
- package/dist/modules/tool-manuals/index.d.ts +8 -3
- package/dist/modules/tool-manuals/index.d.ts.map +1 -1
- package/dist/modules/tool-manuals/index.js +4 -2
- package/dist/modules/tool-manuals/index.js.map +1 -1
- package/dist/modules/tool-manuals/mcp-server-edit.service.d.ts +2 -2
- package/dist/modules/tool-manuals/mcp-server-edit.service.d.ts.map +1 -1
- package/dist/modules/tool-manuals/pending-tools.service.d.ts +2 -2
- package/dist/modules/tool-manuals/pending-tools.service.d.ts.map +1 -1
- package/dist/modules/tool-manuals/tool-delete.service.d.ts +5 -6
- package/dist/modules/tool-manuals/tool-delete.service.d.ts.map +1 -1
- package/dist/modules/tool-manuals/tool-delete.service.js.map +1 -1
- package/dist/modules/tool-manuals/tool-manuals.contract.d.ts +19 -6
- package/dist/modules/tool-manuals/tool-manuals.contract.d.ts.map +1 -1
- package/dist/modules/tool-manuals/tool-manuals.routes.d.ts +12 -6
- package/dist/modules/tool-manuals/tool-manuals.routes.d.ts.map +1 -1
- package/dist/modules/tool-manuals/tool-manuals.routes.js +43 -6
- package/dist/modules/tool-manuals/tool-manuals.routes.js.map +1 -1
- package/dist/modules/tool-manuals/tool-manuals.service.d.ts +16 -9
- package/dist/modules/tool-manuals/tool-manuals.service.d.ts.map +1 -1
- package/dist/modules/tool-manuals/tool-manuals.service.js +23 -15
- package/dist/modules/tool-manuals/tool-manuals.service.js.map +1 -1
- package/dist/modules/tool-manuals/tool-manuals.tools.d.ts +3 -3
- package/dist/modules/tool-manuals/tool-manuals.tools.d.ts.map +1 -1
- package/dist/modules/tool-manuals/tool-manuals.tools.js +26 -12
- package/dist/modules/tool-manuals/tool-manuals.tools.js.map +1 -1
- package/dist/modules/tool-registry/description-length.js +2 -2
- package/dist/modules/tool-registry/description-length.js.map +1 -1
- package/dist/modules/tool-registry/index.d.ts +8 -0
- package/dist/modules/tool-registry/index.d.ts.map +1 -0
- package/dist/modules/tool-registry/index.js +8 -0
- package/dist/modules/tool-registry/index.js.map +1 -0
- package/dist/modules/tool-registry/manual.routes.d.ts +44 -2
- package/dist/modules/tool-registry/manual.routes.d.ts.map +1 -1
- package/dist/modules/tool-registry/manual.routes.js +38 -11
- package/dist/modules/tool-registry/manual.routes.js.map +1 -1
- package/dist/modules/tool-registry/read-only-hints.contract.d.ts +52 -0
- package/dist/modules/tool-registry/read-only-hints.contract.d.ts.map +1 -0
- package/dist/modules/tool-registry/read-only-hints.contract.js +2 -0
- package/dist/modules/tool-registry/read-only-hints.contract.js.map +1 -0
- package/dist/modules/tool-registry/read-only-hints.d.ts +89 -0
- package/dist/modules/tool-registry/read-only-hints.d.ts.map +1 -0
- package/dist/modules/tool-registry/read-only-hints.js +212 -0
- package/dist/modules/tool-registry/read-only-hints.js.map +1 -0
- package/dist/modules/tool-registry/tool.contract.d.ts +15 -0
- package/dist/modules/tool-registry/tool.contract.d.ts.map +1 -1
- package/dist/modules/tool-registry/tool.contract.js +10 -1
- package/dist/modules/tool-registry/tool.contract.js.map +1 -1
- package/dist/modules/update-check/update-check.routes.d.ts +2 -2
- package/dist/modules/update-check/update-check.routes.d.ts.map +1 -1
- package/dist/modules/update-check/update-check.routes.js +1 -1
- package/dist/modules/update-check/update-check.routes.js.map +1 -1
- package/dist/modules/workflow/agent-tools/change-request-read-shape.d.ts +9 -104
- package/dist/modules/workflow/agent-tools/change-request-read-shape.d.ts.map +1 -1
- package/dist/modules/workflow/agent-tools/change-request-read-shape.js +8 -118
- package/dist/modules/workflow/agent-tools/change-request-read-shape.js.map +1 -1
- package/dist/modules/workflow/agent-tools/change-request-read.tools.d.ts +16 -17
- package/dist/modules/workflow/agent-tools/change-request-read.tools.d.ts.map +1 -1
- package/dist/modules/workflow/agent-tools/change-request-read.tools.js +19 -86
- package/dist/modules/workflow/agent-tools/change-request-read.tools.js.map +1 -1
- package/dist/modules/workflow/agent-tools/change-request-summary.d.ts +5 -1
- package/dist/modules/workflow/agent-tools/change-request-summary.d.ts.map +1 -1
- package/dist/modules/workflow/agent-tools/change-request-summary.js +10 -1
- package/dist/modules/workflow/agent-tools/change-request-summary.js.map +1 -1
- package/dist/modules/workflow/agent-tools/workflow.tools.d.ts +7 -5
- package/dist/modules/workflow/agent-tools/workflow.tools.d.ts.map +1 -1
- package/dist/modules/workflow/agent-tools/workflow.tools.js +60 -77
- package/dist/modules/workflow/agent-tools/workflow.tools.js.map +1 -1
- package/dist/modules/workflow/change-request-hooks.d.ts +1 -1
- package/dist/modules/workflow/event-bus.d.ts.map +1 -1
- package/dist/modules/workflow/event-bus.js +3 -1
- package/dist/modules/workflow/event-bus.js.map +1 -1
- package/dist/modules/workflow/events-delivery.d.ts +120 -0
- package/dist/modules/workflow/events-delivery.d.ts.map +1 -0
- package/dist/modules/workflow/events-delivery.js +202 -0
- package/dist/modules/workflow/events-delivery.js.map +1 -0
- package/dist/modules/workflow/events.routes.d.ts +16 -7
- package/dist/modules/workflow/events.routes.d.ts.map +1 -1
- package/dist/modules/workflow/events.routes.js +23 -4
- package/dist/modules/workflow/events.routes.js.map +1 -1
- package/dist/modules/workflow/file-lock.service.d.ts +1 -1
- package/dist/modules/workflow/file-lock.service.d.ts.map +1 -1
- package/dist/modules/workflow/file-lock.service.js +1 -1
- package/dist/modules/workflow/file-lock.service.js.map +1 -1
- package/dist/modules/workflow/git/git.service.d.ts +4 -4
- package/dist/modules/workflow/git/git.service.d.ts.map +1 -1
- package/dist/modules/workflow/git/git.service.js +23 -41
- package/dist/modules/workflow/git/git.service.js.map +1 -1
- package/dist/modules/workflow/git/node-git-runner.js +1 -1
- package/dist/modules/workflow/git/node-git-runner.js.map +1 -1
- package/dist/modules/workflow/git/pull-request.service.d.ts +6 -7
- package/dist/modules/workflow/git/pull-request.service.d.ts.map +1 -1
- package/dist/modules/workflow/git/pull-request.service.js +40 -33
- package/dist/modules/workflow/git/pull-request.service.js.map +1 -1
- package/dist/modules/workflow/index.d.ts +14 -2
- package/dist/modules/workflow/index.d.ts.map +1 -1
- package/dist/modules/workflow/index.js +11 -2
- package/dist/modules/workflow/index.js.map +1 -1
- package/dist/modules/workflow/pending-commits.service.d.ts +1 -1
- package/dist/modules/workflow/pending-commits.service.d.ts.map +1 -1
- package/dist/modules/workflow/pending-commits.service.js +1 -1
- package/dist/modules/workflow/pending-commits.service.js.map +1 -1
- package/dist/modules/workflow/read-on-branch.d.ts +1 -1
- package/dist/modules/workflow/read-on-branch.d.ts.map +1 -1
- package/dist/modules/workflow/recovery-bot.d.ts +1 -1
- package/dist/modules/workflow/recovery-bot.d.ts.map +1 -1
- package/dist/modules/workflow/recovery-bot.js +1 -1
- package/dist/modules/workflow/recovery-bot.js.map +1 -1
- package/dist/modules/workflow/review-workflow/approval-lock.d.ts +1 -1
- package/dist/modules/workflow/review-workflow/approval-lock.d.ts.map +1 -1
- package/dist/modules/workflow/review-workflow/review-workflow.interface.d.ts +4 -20
- package/dist/modules/workflow/review-workflow/review-workflow.interface.d.ts.map +1 -1
- package/dist/modules/workflow/review-workflow/review-workflow.service.d.ts +4 -8
- package/dist/modules/workflow/review-workflow/review-workflow.service.d.ts.map +1 -1
- package/dist/modules/workflow/review-workflow/review-workflow.service.js +3 -138
- package/dist/modules/workflow/review-workflow/review-workflow.service.js.map +1 -1
- package/dist/modules/workflow/workflow.routes.d.ts +5 -5
- package/dist/modules/workflow/workflow.routes.d.ts.map +1 -1
- package/dist/modules/workflow/workflow.routes.js +42 -94
- package/dist/modules/workflow/workflow.routes.js.map +1 -1
- package/dist/modules/workflow/workflow.service.d.ts +41 -50
- package/dist/modules/workflow/workflow.service.d.ts.map +1 -1
- package/dist/modules/workflow/workflow.service.js +221 -154
- package/dist/modules/workflow/workflow.service.js.map +1 -1
- package/dist/modules/workspace/agent-access.gate.d.ts +3 -3
- package/dist/modules/workspace/agent-access.gate.d.ts.map +1 -1
- package/dist/modules/workspace/agent-download.builder.d.ts +1 -1
- package/dist/modules/workspace/agent-download.builder.d.ts.map +1 -1
- package/dist/modules/workspace/agent-download.builder.js +1 -1
- package/dist/modules/workspace/agent-download.builder.js.map +1 -1
- package/dist/modules/workspace/agent-upload.routes.d.ts.map +1 -1
- package/dist/modules/workspace/agent-upload.routes.js +19 -0
- package/dist/modules/workspace/agent-upload.routes.js.map +1 -1
- package/dist/modules/workspace/agent-upload.store.d.ts +11 -0
- package/dist/modules/workspace/agent-upload.store.d.ts.map +1 -1
- package/dist/modules/workspace/agent-upload.store.js +18 -0
- package/dist/modules/workspace/agent-upload.store.js.map +1 -1
- package/dist/modules/workspace/file-readers/doc-extract.service.d.ts +82 -14
- package/dist/modules/workspace/file-readers/doc-extract.service.d.ts.map +1 -1
- package/dist/modules/workspace/file-readers/doc-extract.service.js +109 -36
- package/dist/modules/workspace/file-readers/doc-extract.service.js.map +1 -1
- package/dist/modules/workspace/file-readers/doc-extract.types.d.ts +9 -2
- package/dist/modules/workspace/file-readers/doc-extract.types.d.ts.map +1 -1
- package/dist/modules/workspace/file-readers/doc-extract.types.js.map +1 -1
- package/dist/modules/workspace/file-readers/document-extractor.contract.d.ts +41 -0
- package/dist/modules/workspace/file-readers/document-extractor.contract.d.ts.map +1 -0
- package/dist/modules/workspace/file-readers/document-extractor.contract.js +5 -0
- package/dist/modules/workspace/file-readers/document-extractor.contract.js.map +1 -0
- package/dist/modules/workspace/file-readers/document-extractors.d.ts +9 -0
- package/dist/modules/workspace/file-readers/document-extractors.d.ts.map +1 -0
- package/dist/modules/workspace/file-readers/document-extractors.js +26 -0
- package/dist/modules/workspace/file-readers/document-extractors.js.map +1 -0
- package/dist/modules/workspace/file-readers/document-formats.d.ts +12 -0
- package/dist/modules/workspace/file-readers/document-formats.d.ts.map +1 -0
- package/dist/modules/workspace/file-readers/document-formats.js +11 -0
- package/dist/modules/workspace/file-readers/document-formats.js.map +1 -0
- package/dist/modules/workspace/file-readers/document-reader.d.ts +21 -17
- package/dist/modules/workspace/file-readers/document-reader.d.ts.map +1 -1
- package/dist/modules/workspace/file-readers/document-reader.js +38 -34
- package/dist/modules/workspace/file-readers/document-reader.js.map +1 -1
- package/dist/modules/workspace/file-readers/extract-in-worker.d.ts +60 -0
- package/dist/modules/workspace/file-readers/extract-in-worker.d.ts.map +1 -0
- package/dist/modules/workspace/file-readers/extract-in-worker.js +140 -0
- package/dist/modules/workspace/file-readers/extract-in-worker.js.map +1 -0
- package/dist/modules/workspace/file-readers/extract-pdf.d.ts +2 -0
- package/dist/modules/workspace/file-readers/extract-pdf.d.ts.map +1 -1
- package/dist/modules/workspace/file-readers/extract-pdf.js +20 -3
- package/dist/modules/workspace/file-readers/extract-pdf.js.map +1 -1
- package/dist/modules/workspace/file-readers/extract.worker.d.ts +2 -0
- package/dist/modules/workspace/file-readers/extract.worker.d.ts.map +1 -0
- package/dist/modules/workspace/file-readers/extract.worker.js +5 -0
- package/dist/modules/workspace/file-readers/extract.worker.js.map +1 -0
- package/dist/modules/workspace/file-readers/extraction-cache.d.ts +21 -5
- package/dist/modules/workspace/file-readers/extraction-cache.d.ts.map +1 -1
- package/dist/modules/workspace/file-readers/extraction-cache.js +24 -10
- package/dist/modules/workspace/file-readers/extraction-cache.js.map +1 -1
- package/dist/modules/workspace/file-readers/extraction-worker.d.ts +42 -0
- package/dist/modules/workspace/file-readers/extraction-worker.d.ts.map +1 -0
- package/dist/modules/workspace/file-readers/extraction-worker.js +69 -0
- package/dist/modules/workspace/file-readers/extraction-worker.js.map +1 -0
- package/dist/modules/workspace/file-readers/file-reader.d.ts +13 -4
- package/dist/modules/workspace/file-readers/file-reader.d.ts.map +1 -1
- package/dist/modules/workspace/file-readers/file-reader.js.map +1 -1
- package/dist/modules/workspace/file-readers/file-reader.registry.d.ts +3 -2
- package/dist/modules/workspace/file-readers/file-reader.registry.d.ts.map +1 -1
- package/dist/modules/workspace/file-readers/file-reader.registry.js +6 -20
- package/dist/modules/workspace/file-readers/file-reader.registry.js.map +1 -1
- package/dist/modules/workspace/first-run.js +1 -1
- package/dist/modules/workspace/first-run.js.map +1 -1
- package/dist/modules/workspace/git-internals.middleware.d.ts +1 -1
- package/dist/modules/workspace/git-internals.middleware.d.ts.map +1 -1
- package/dist/modules/workspace/git-internals.middleware.js +1 -1
- package/dist/modules/workspace/git-internals.middleware.js.map +1 -1
- package/dist/modules/workspace/index.d.ts +24 -0
- package/dist/modules/workspace/index.d.ts.map +1 -1
- package/dist/modules/workspace/index.js +21 -0
- package/dist/modules/workspace/index.js.map +1 -1
- package/dist/modules/workspace/kb-repository.d.ts.map +1 -1
- package/dist/modules/workspace/kb-repository.js +1 -1
- package/dist/modules/workspace/kb-repository.js.map +1 -1
- package/dist/modules/workspace/not-found.d.ts +1 -1
- package/dist/modules/workspace/not-found.d.ts.map +1 -1
- package/dist/modules/workspace/not-found.js +1 -1
- package/dist/modules/workspace/not-found.js.map +1 -1
- package/dist/modules/workspace/nul-scan.d.ts +19 -0
- package/dist/modules/workspace/nul-scan.d.ts.map +1 -0
- package/dist/modules/workspace/nul-scan.js +55 -0
- package/dist/modules/workspace/nul-scan.js.map +1 -0
- package/dist/modules/workspace/pattern-matcher.contract.d.ts +111 -28
- package/dist/modules/workspace/pattern-matcher.contract.d.ts.map +1 -1
- package/dist/modules/workspace/pattern-matcher.contract.js +31 -14
- package/dist/modules/workspace/pattern-matcher.contract.js.map +1 -1
- package/dist/modules/workspace/ripgrep-search.d.ts +54 -0
- package/dist/modules/workspace/ripgrep-search.d.ts.map +1 -0
- package/dist/modules/workspace/ripgrep-search.js +657 -0
- package/dist/modules/workspace/ripgrep-search.js.map +1 -0
- package/dist/modules/workspace/ripgrep-version.d.ts +15 -0
- package/dist/modules/workspace/ripgrep-version.d.ts.map +1 -0
- package/dist/modules/workspace/ripgrep-version.js +31 -0
- package/dist/modules/workspace/ripgrep-version.js.map +1 -0
- package/dist/modules/workspace/routine-write-policy.js +1 -1
- package/dist/modules/workspace/routine-write-policy.js.map +1 -1
- package/dist/modules/workspace/startup/beside-checkout.d.ts +8 -5
- package/dist/modules/workspace/startup/beside-checkout.d.ts.map +1 -1
- package/dist/modules/workspace/startup/beside-checkout.js +14 -5
- package/dist/modules/workspace/startup/beside-checkout.js.map +1 -1
- package/dist/modules/workspace/startup/kb-git.js +1 -1
- package/dist/modules/workspace/startup/kb-git.js.map +1 -1
- package/dist/modules/workspace/startup/kb-startup-runner.d.ts.map +1 -1
- package/dist/modules/workspace/startup/kb-startup-runner.js +1 -2
- package/dist/modules/workspace/startup/kb-startup-runner.js.map +1 -1
- package/dist/modules/workspace/startup/steps/groups-to-plugins.step.js +2 -2
- package/dist/modules/workspace/startup/steps/groups-to-plugins.step.js.map +1 -1
- package/dist/modules/workspace/startup/steps/personal-spaces.step.js +2 -2
- package/dist/modules/workspace/startup/steps/personal-spaces.step.js.map +1 -1
- package/dist/modules/workspace/startup/steps/plugin-layout.js +1 -1
- package/dist/modules/workspace/startup/steps/plugin-layout.js.map +1 -1
- package/dist/modules/workspace/startup/steps/roles-yaml.step.js +1 -1
- package/dist/modules/workspace/startup/steps/roles-yaml.step.js.map +1 -1
- package/dist/modules/workspace/startup/steps/seed-tree.js +2 -2
- package/dist/modules/workspace/startup/steps/seed-tree.js.map +1 -1
- package/dist/modules/workspace/startup/steps/template-files.step.d.ts +1 -1
- package/dist/modules/workspace/startup/steps/template-files.step.d.ts.map +1 -1
- package/dist/modules/workspace/startup/steps/template-files.step.js +2 -2
- package/dist/modules/workspace/startup/steps/template-files.step.js.map +1 -1
- package/dist/modules/workspace/startup/steps/template-source.js +2 -2
- package/dist/modules/workspace/startup/steps/template-source.js.map +1 -1
- package/dist/modules/workspace/worker-pool.d.ts +99 -0
- package/dist/modules/workspace/worker-pool.d.ts.map +1 -0
- package/dist/modules/workspace/worker-pool.js +156 -0
- package/dist/modules/workspace/worker-pool.js.map +1 -0
- package/dist/modules/workspace/workspace-tmp.d.ts +146 -0
- package/dist/modules/workspace/workspace-tmp.d.ts.map +1 -0
- package/dist/modules/workspace/workspace-tmp.js +435 -0
- package/dist/modules/workspace/workspace-tmp.js.map +1 -0
- package/dist/modules/workspace/workspace.routes.d.ts +7 -8
- package/dist/modules/workspace/workspace.routes.d.ts.map +1 -1
- package/dist/modules/workspace/workspace.routes.js +9 -32
- package/dist/modules/workspace/workspace.routes.js.map +1 -1
- package/dist/modules/workspace/workspace.service.d.ts +48 -7
- package/dist/modules/workspace/workspace.service.d.ts.map +1 -1
- package/dist/modules/workspace/workspace.service.js +89 -12
- package/dist/modules/workspace/workspace.service.js.map +1 -1
- package/dist/modules/workspace/workspace.tools.d.ts +7 -7
- package/dist/modules/workspace/workspace.tools.d.ts.map +1 -1
- package/dist/modules/workspace/workspace.tools.js +502 -140
- package/dist/modules/workspace/workspace.tools.js.map +1 -1
- package/dist/modules/workspace/write-denial.d.ts +4 -4
- package/dist/modules/workspace/write-denial.d.ts.map +1 -1
- package/dist/modules/workspace/write-denial.js +2 -3
- package/dist/modules/workspace/write-denial.js.map +1 -1
- package/dist/modules/write-access/index.d.ts +8 -0
- package/dist/modules/write-access/index.d.ts.map +1 -0
- package/dist/modules/write-access/index.js +7 -0
- package/dist/modules/write-access/index.js.map +1 -0
- package/dist/shared/path-order.d.ts +28 -8
- package/dist/shared/path-order.d.ts.map +1 -1
- package/dist/shared/path-order.js +37 -8
- package/dist/shared/path-order.js.map +1 -1
- package/migrations/0020_change_request_body_is_the_description.sql +20 -0
- package/migrations/0021_data_migrations_ledger.sql +11 -0
- package/migrations/0022_session_version.sql +6 -0
- package/migrations/0023_agent_path.sql +3 -0
- package/migrations/meta/0020_snapshot.json +2321 -0
- package/migrations/meta/0021_snapshot.json +2353 -0
- package/migrations/meta/0022_snapshot.json +2360 -0
- package/migrations/meta/0023_snapshot.json +2378 -0
- package/migrations/meta/_journal.json +28 -0
- package/package.json +3 -3
- package/src/__tests__/pg-scratch.test.ts +69 -0
- package/src/__tests__/pg-scratch.ts +31 -0
- package/src/__tests__/slow-ripgrep.ts +65 -0
- package/src/core/__tests__/boot-without-ripgrep.test.ts +34 -0
- package/src/core/__tests__/catalog-revision.test.ts +89 -0
- package/src/core/__tests__/damaged-document.tools.test.ts +374 -0
- package/src/core/__tests__/gated-boot.test.ts +8 -1
- package/src/core/__tests__/lifecycle.test.ts +46 -13
- package/src/core/__tests__/public-config.test.ts +5 -0
- package/src/core/catalog-revision.ts +24 -2
- package/src/core/core-ports.ts +42 -0
- package/src/core/create-core-server.ts +45 -3
- package/src/core/create-core-services.ts +81 -17
- package/src/core/lifecycle.ts +36 -2
- package/src/core/public-config.ts +10 -0
- package/src/index.ts +1 -1
- package/src/modules/access/__tests__/access-control.admin-root-floor.test.ts +12 -0
- package/src/modules/access/__tests__/access-control.colliding-name-cases.test.ts +113 -0
- package/src/modules/access/__tests__/access-control.frontmatter-head.test.ts +117 -0
- package/src/modules/access/__tests__/access-control.group-named-admin.test.ts +122 -0
- package/src/modules/access/__tests__/access-control.preview-relocation.test.ts +50 -0
- package/src/modules/access/__tests__/access-declarations.test.ts +19 -0
- package/src/modules/access/__tests__/access-groups.test.ts +55 -22
- package/src/modules/access/__tests__/access-mutation.service.test.ts +85 -59
- package/src/modules/access/__tests__/access-requests.routes.test.ts +29 -15
- package/src/modules/access/__tests__/access-restrict-here.test.ts +7 -5
- package/src/modules/access/__tests__/access.routes.admins.test.ts +1 -0
- package/src/modules/access/__tests__/access.routes.batch.test.ts +2 -0
- package/src/modules/access/__tests__/access.routes.folder-governs.test.ts +2 -0
- package/src/modules/access/__tests__/access.routes.group-grant.test.ts +50 -14
- package/src/modules/access/__tests__/access.routes.overrides.test.ts +2 -1
- package/src/modules/access/__tests__/access.routes.proposal-branch.test.ts +1 -0
- package/src/modules/access/__tests__/access.routes.prospective.test.ts +2 -0
- package/src/modules/access/__tests__/access.routes.revoke.test.ts +18 -13
- package/src/modules/access/__tests__/access.routes.unknown-email.test.ts +2 -0
- package/src/modules/access/__tests__/grant-sources.test.ts +20 -15
- package/src/modules/access/__tests__/groups-admin.routes.test.ts +61 -0
- package/src/modules/access/__tests__/groups-admin.service.test.ts +211 -18
- package/src/modules/access/__tests__/reference-scan.test.ts +366 -14
- package/src/modules/access/__tests__/roles-admin.security.test.ts +1 -1
- package/src/modules/access/__tests__/roles-admin.service.test.ts +43 -22
- package/src/modules/access/__tests__/roles-capabilities.test.ts +6 -2
- package/src/modules/access/__tests__/roles.routes.test.ts +1 -1
- package/src/modules/access/access-control.interface.ts +17 -10
- package/src/modules/access/access-control.service.ts +161 -76
- package/src/modules/access/access-declarations.ts +1 -1
- package/src/modules/access/access-mutation.service.ts +58 -57
- package/src/modules/access/access-requests.contract.ts +1 -1
- package/src/modules/access/access-requests.routes.ts +10 -15
- package/src/modules/access/access-requests.service.ts +29 -71
- package/src/modules/access/access-view.ts +13 -11
- package/src/modules/access/access.routes.ts +51 -43
- package/src/modules/access/admin-locked-commit.ts +3 -2
- package/src/modules/access/capability-registry.ts +1 -1
- package/src/modules/access/change-read-gate.ts +3 -5
- package/src/modules/access/creator-access.ts +3 -5
- package/src/modules/access/directory-sync-bot.ts +2 -2
- package/src/modules/access/groups-admin.routes.ts +7 -5
- package/src/modules/access/groups-admin.service.ts +116 -47
- package/src/modules/access/groups-edit.ts +3 -3
- package/src/modules/access/index.ts +17 -0
- package/src/modules/access/reference-scan.ts +320 -47
- package/src/modules/access/roles-admin.service.ts +45 -31
- package/src/modules/access/roles-edit.ts +1 -1
- package/src/modules/access/synced-groups-committer.ts +4 -4
- package/src/modules/access/synced-groups-writer.ts +3 -3
- package/src/modules/access/user-access-removal.service.ts +3 -6
- package/src/modules/access-model/__tests__/access-grammar.test.ts +38 -1
- package/src/modules/access-model/__tests__/access-splice.test.ts +50 -8
- package/src/modules/access-model/access-grammar.ts +65 -20
- package/src/modules/access-model/access-splice.ts +31 -23
- package/src/modules/access-model/group-files.ts +5 -0
- package/src/modules/access-model/index.ts +21 -5
- package/src/modules/access-model/roles-yaml-guard.ts +1 -1
- package/src/modules/admin/admin-access.routes.ts +1 -1
- package/src/modules/admin/admin-access.service.ts +2 -2
- package/src/modules/admin/index.ts +7 -0
- package/src/modules/agent-guide/__tests__/agent-guide.test.ts +36 -0
- package/src/modules/agent-guide/agent-guide.tools.ts +17 -8
- package/src/modules/agent-guide/agent-guide.ts +1 -1
- package/src/modules/agent-guide/index.ts +1 -1
- package/src/modules/agent-instructions/__tests__/shared-file-rules.test.ts +1 -0
- package/src/modules/agent-instructions/compose.ts +3 -1
- package/src/modules/agent-instructions/read-preamble.ts +1 -1
- package/src/modules/agent-instructions/shared-file-rules.ts +17 -1
- package/src/modules/agent-scope/__tests__/agent-surfaces.connect-as.test.ts +421 -0
- package/src/modules/agent-scope/__tests__/connection-scope.test.ts +46 -0
- package/src/modules/agent-scope/__tests__/in-memory-kb.ts +148 -0
- package/src/modules/agent-scope/agent-scope.contract.ts +83 -0
- package/src/modules/agent-scope/connection-scope.ts +199 -0
- package/src/modules/agent-scope/index.ts +15 -0
- package/src/modules/audit/agent-audit.service.ts +5 -3
- package/src/modules/audit/agent-connection.routes.ts +1 -1
- package/src/modules/audit/agent-rest-audit.middleware.ts +1 -1
- package/src/modules/audit/audit.contract.ts +6 -0
- package/src/modules/audit/audit.routes.ts +4 -4
- package/src/modules/auth/__tests__/auth.middleware.test.ts +30 -2
- package/src/modules/auth/__tests__/auth.routes.test.ts +71 -5
- package/src/modules/auth/__tests__/auth.service.test.ts +90 -9
- package/src/modules/auth/__tests__/password-change-sessions.pg.test.ts +269 -0
- package/src/modules/auth/account-admission.ts +19 -0
- package/src/modules/auth/account-erasure.service.ts +4 -9
- package/src/modules/auth/account-switch-lock.ts +2 -2
- package/src/modules/auth/account.routes.ts +3 -3
- package/src/modules/auth/auth.middleware.ts +45 -4
- package/src/modules/auth/auth.routes.ts +46 -29
- package/src/modules/auth/auth.service.ts +139 -38
- package/src/modules/auth/index.ts +5 -0
- package/src/modules/auth/oidc-auth-provider.ts +3 -10
- package/src/modules/code-mode/code-mode.tool.ts +1 -1
- package/src/modules/connection-probe/connection-probe.service.ts +3 -6
- package/src/modules/database/__tests__/legacy-change-request-body.test.ts +118 -0
- package/src/modules/database/__tests__/legacy-request-bodies.pg.test.ts +258 -0
- package/src/modules/database/__tests__/pii-backfill.pg.test.ts +15 -18
- package/src/modules/database/__tests__/session-version-migration.pg.test.ts +133 -0
- package/src/modules/database/core-schema.ts +76 -36
- package/src/modules/database/index.ts +9 -0
- package/src/modules/database/migrate.ts +79 -3
- package/src/modules/declared-variables/__tests__/declared-variables.route.test.ts +44 -1
- package/src/modules/declared-variables/declared-variables.routes.ts +14 -3
- package/src/modules/diff/diff.routes.ts +5 -5
- package/src/modules/diff/diff.service.ts +2 -2
- package/src/modules/diff/index.ts +6 -0
- package/src/modules/embed/__tests__/embed.tools.test.ts +12 -0
- package/src/modules/embed/account-link.service.ts +2 -2
- package/src/modules/embed/embed.routes.ts +2 -2
- package/src/modules/embed/embed.service.ts +1 -1
- package/src/modules/embed/embed.tools.ts +11 -9
- package/src/modules/github-app/github-app.connection.ts +1 -1
- package/src/modules/github-app/github-app.routes.ts +3 -3
- package/src/modules/kb-fs/__tests__/locking-filesystem.test.ts +25 -0
- package/src/modules/kb-fs/__tests__/repo-path.test.ts +53 -8
- package/src/modules/kb-fs/index.ts +13 -0
- package/src/modules/kb-fs/locking-filesystem.ts +8 -2
- package/src/modules/kb-fs/repo-path.ts +33 -7
- package/src/modules/kb-fs/tmp-ref.ts +81 -0
- package/src/modules/kb-sync/kb-sync.routes.ts +3 -3
- package/src/modules/kb-sync/kb-sync.service.ts +1 -1
- package/src/modules/kb-sync/sync-auth.ts +1 -1
- package/src/modules/kb-sync/sync-payload.ts +1 -1
- package/src/modules/marketplace/git-http.routes.ts +1 -1
- package/src/modules/marketplace/github-facade/github-facade-admin.routes.ts +1 -1
- package/src/modules/marketplace/github-facade/github-facade-codes.store.ts +2 -2
- package/src/modules/marketplace/github-facade/github-facade-credentials.service.ts +2 -2
- package/src/modules/marketplace/github-facade/github-facade.routes.ts +2 -2
- package/src/modules/marketplace/github-facade/github-facade.service.ts +2 -2
- package/src/modules/marketplace/marketplace-repo.service.ts +2 -2
- package/src/modules/mcp/__tests__/connect-as.pg.test.ts +137 -0
- package/src/modules/mcp/__tests__/mcp-auth.middleware.test.ts +29 -5
- package/src/modules/mcp/__tests__/mcp-routes-harness.ts +8 -0
- package/src/modules/mcp/__tests__/mcp.connect-as.test.ts +195 -0
- package/src/modules/mcp/__tests__/mcp.routes.connect-as.test.ts +192 -0
- package/src/modules/mcp/__tests__/oauth-consent.connect-as.test.ts +146 -0
- package/src/modules/mcp/__tests__/read-only-hint.e2e.test.ts +213 -0
- package/src/modules/mcp/index.ts +7 -0
- package/src/modules/mcp/mcp-auth.middleware.ts +25 -9
- package/src/modules/mcp/mcp.routes.ts +42 -8
- package/src/modules/mcp/mcp.service.ts +136 -29
- package/src/modules/mcp/oauth/bevel-oauth-provider.ts +48 -10
- package/src/modules/mcp/oauth/oauth-consent.routes.ts +42 -2
- package/src/modules/onboarding/onboarding.routes.ts +1 -1
- package/src/modules/onboarding/starter-pack.service.ts +5 -6
- package/src/modules/plugins/__tests__/bundle-dialect.e2e.test.ts +2 -1
- package/src/modules/plugins/__tests__/plugin-links.service.test.ts +2 -1
- package/src/modules/plugins/__tests__/plugins.tools.test.ts +38 -2
- package/src/modules/plugins/compile/compile-marketplace.ts +2 -2
- package/src/modules/plugins/compile/marketplace-compiler.service.ts +3 -3
- package/src/modules/plugins/discovery/bundle-dialect/registry.ts +1 -1
- package/src/modules/plugins/index.ts +3 -1
- package/src/modules/plugins/join-proposals.ts +2 -2
- package/src/modules/plugins/join-request-jobs.service.ts +3 -3
- package/src/modules/plugins/join-request-records.store.ts +2 -2
- package/src/modules/plugins/join-requests.service.ts +4 -4
- package/src/modules/plugins/plugin-links.service.ts +10 -11
- package/src/modules/plugins/plugin-links.ts +23 -6
- package/src/modules/plugins/plugin-provision.service.ts +4 -5
- package/src/modules/plugins/plugin-rename.service.ts +3 -3
- package/src/modules/plugins/plugins.contract.ts +1 -1
- package/src/modules/plugins/plugins.routes.ts +39 -8
- package/src/modules/plugins/plugins.service.ts +5 -5
- package/src/modules/plugins/plugins.tools.ts +4 -4
- package/src/modules/plugins/teams.routes.ts +3 -3
- package/src/modules/secrets-vault/__tests__/connect-pending.route.test.ts +113 -0
- package/src/modules/secrets-vault/db-secrets-vault.service.ts +2 -2
- package/src/modules/secrets-vault/index.ts +2 -0
- package/src/modules/secrets-vault/secrets-vault.routes.ts +27 -7
- package/src/modules/settings/__tests__/deployment-settings.service.test.ts +88 -1
- package/src/modules/settings/connection-check.ts +1 -1
- package/src/modules/settings/deployment-settings.service.ts +44 -4
- package/src/modules/settings/git-root-folders.ts +1 -1
- package/src/modules/settings/index.ts +12 -0
- package/src/modules/settings/setup.routes.ts +5 -4
- package/src/modules/skills/__tests__/allowed-tools-warn.tools.test.ts +2 -2
- package/src/modules/skills/__tests__/skill-access-requests.routes.test.ts +6 -3
- package/src/modules/skills/__tests__/skills.service.test.ts +34 -0
- package/src/modules/skills/allowed-tools-check.ts +2 -6
- package/src/modules/skills/index.ts +9 -2
- package/src/modules/skills/pending-skills.service.ts +3 -4
- package/src/modules/skills/skill-access-requests.routes.ts +10 -17
- package/src/modules/skills/skills.contract.ts +17 -0
- package/src/modules/skills/skills.routes.ts +1 -1
- package/src/modules/skills/skills.service.ts +7 -3
- package/src/modules/skills/skills.tools.ts +49 -22
- package/src/modules/tool-auth/__tests__/external-api-key.service.test.ts +4 -0
- package/src/modules/tool-auth/connection-key-rejection.ts +1 -1
- package/src/modules/tool-auth/connection-keys-admin.routes.ts +2 -2
- package/src/modules/tool-auth/external-api-key.interface.ts +11 -1
- package/src/modules/tool-auth/external-api-key.service.ts +7 -4
- package/src/modules/tool-auth/index.ts +14 -0
- package/src/modules/tool-auth/internal-token.service.ts +10 -0
- package/src/modules/tool-auth/tool-auth.middleware.ts +48 -6
- package/src/modules/tool-helpers/__tests__/agent-roles-write.test.ts +2 -2
- package/src/modules/tool-helpers/__tests__/can-write.tools.test.ts +5 -3
- package/src/modules/tool-helpers/__tests__/phase4-tools.test.ts +2 -2
- package/src/modules/tool-helpers/default-branch-write.ts +1 -1
- package/src/modules/tool-helpers/index.ts +5 -1
- package/src/modules/tool-helpers/route-argument-check.ts +1 -1
- package/src/modules/tool-helpers/route-tool-schemas.ts +1 -1
- package/src/modules/tool-helpers/tool-context.ts +18 -10
- package/src/modules/tool-helpers/tool-def.ts +7 -3
- package/src/modules/tool-helpers/tool-handler.ts +36 -2
- package/src/modules/tool-helpers/tool.contract.ts +12 -2
- package/src/modules/tool-helpers/validate-token.ts +5 -4
- package/src/modules/tool-manuals/__tests__/tool-manuals.archive.route.test.ts +80 -4
- package/src/modules/tool-manuals/__tests__/tool-manuals.service.test.ts +42 -0
- package/src/modules/tool-manuals/__tests__/tool-manuals.tools.test.ts +3 -3
- package/src/modules/tool-manuals/index.ts +12 -2
- package/src/modules/tool-manuals/mcp-server-edit.service.ts +2 -2
- package/src/modules/tool-manuals/pending-tools.service.ts +2 -2
- package/src/modules/tool-manuals/tool-delete.service.ts +5 -6
- package/src/modules/tool-manuals/tool-manuals.contract.ts +18 -6
- package/src/modules/tool-manuals/tool-manuals.routes.ts +45 -8
- package/src/modules/tool-manuals/tool-manuals.service.ts +34 -18
- package/src/modules/tool-manuals/tool-manuals.tools.ts +32 -17
- package/src/modules/tool-registry/__tests__/read-only-hints.test.ts +439 -0
- package/src/modules/tool-registry/__tests__/tool-description-length.test.ts +2 -2
- package/src/modules/tool-registry/__tests__/tool-registry.test.ts +9 -2
- package/src/modules/tool-registry/description-length.ts +2 -2
- package/src/modules/tool-registry/index.ts +22 -0
- package/src/modules/tool-registry/manual.routes.ts +38 -11
- package/src/modules/tool-registry/read-only-hints.contract.ts +54 -0
- package/src/modules/tool-registry/read-only-hints.ts +225 -0
- package/src/modules/tool-registry/tool.contract.ts +18 -0
- package/src/modules/update-check/update-check.routes.ts +2 -2
- package/src/modules/workflow/__tests__/event-bus.test.ts +14 -2
- package/src/modules/workflow/__tests__/events-delivery.test.ts +778 -0
- package/src/modules/workflow/__tests__/workflow.service.facade.test.ts +85 -22
- package/src/modules/workflow/__tests__/workflow.service.sync.test.ts +1 -1
- package/src/modules/workflow/__tests__/workflow.service.update-change-request.pg.test.ts +120 -0
- package/src/modules/workflow/__tests__/workflow.service.update-change-request.test.ts +346 -0
- package/src/modules/workflow/agent-tools/__tests__/change-request-read-shape.test.ts +32 -209
- package/src/modules/workflow/agent-tools/__tests__/change-request-read.tools.test.ts +16 -245
- package/src/modules/workflow/agent-tools/__tests__/update-change-request.parity.test.ts +306 -0
- package/src/modules/workflow/agent-tools/__tests__/workflow.tools.test.ts +87 -60
- package/src/modules/workflow/agent-tools/change-request-read-shape.ts +18 -153
- package/src/modules/workflow/agent-tools/change-request-read.tools.ts +24 -96
- package/src/modules/workflow/agent-tools/change-request-summary.ts +16 -2
- package/src/modules/workflow/agent-tools/workflow.tools.ts +63 -84
- package/src/modules/workflow/change-request-hooks.ts +1 -1
- package/src/modules/workflow/event-bus.ts +3 -1
- package/src/modules/workflow/events-delivery.ts +278 -0
- package/src/modules/workflow/events.routes.ts +30 -9
- package/src/modules/workflow/file-lock.service.ts +2 -2
- package/src/modules/workflow/git/__tests__/git.service.list-branches.test.ts +130 -3
- package/src/modules/workflow/git/__tests__/pull-request.service.getPrDetail.test.ts +24 -9
- package/src/modules/workflow/git/git.service.ts +34 -56
- package/src/modules/workflow/git/node-git-runner.ts +1 -1
- package/src/modules/workflow/git/pull-request.service.ts +34 -29
- package/src/modules/workflow/index.ts +15 -2
- package/src/modules/workflow/pending-commits.service.ts +2 -2
- package/src/modules/workflow/read-on-branch.ts +1 -1
- package/src/modules/workflow/recovery-bot.ts +2 -2
- package/src/modules/workflow/review-workflow/approval-lock.ts +1 -1
- package/src/modules/workflow/review-workflow/review-workflow.interface.ts +3 -35
- package/src/modules/workflow/review-workflow/review-workflow.service.ts +6 -165
- package/src/modules/workflow/workflow.routes.ts +46 -100
- package/src/modules/workflow/workflow.service.ts +277 -191
- package/src/modules/workspace/__tests__/agent-downloads.test.ts +2 -1
- package/src/modules/workspace/__tests__/agent-uploads.test.ts +87 -1
- package/src/modules/workspace/__tests__/escape-sequences.routes.test.ts +2 -1
- package/src/modules/workspace/__tests__/file-stat-access.test.ts +2 -1
- package/src/modules/workspace/__tests__/git-internals.security.test.ts +4 -3
- package/src/modules/workspace/__tests__/holds-nul.test.ts +66 -0
- package/src/modules/workspace/__tests__/rest-tool-arguments.test.ts +5 -4
- package/src/modules/workspace/__tests__/ripgrep-search.test.ts +570 -0
- package/src/modules/workspace/__tests__/ripgrep-version.test.ts +29 -0
- package/src/modules/workspace/__tests__/worker-pool.test.ts +118 -0
- package/src/modules/workspace/__tests__/workspace-paths-inside-the-repo.test.ts +3 -2
- package/src/modules/workspace/__tests__/workspace-tmp.tools.test.ts +928 -0
- package/src/modules/workspace/__tests__/workspace.routes.read-gate.test.ts +17 -37
- package/src/modules/workspace/__tests__/workspace.service.ensure-remotes-fetched.test.ts +30 -0
- package/src/modules/workspace/__tests__/workspace.service.read-filter.test.ts +20 -8
- package/src/modules/workspace/__tests__/workspace.tools.agents-file.test.ts +4 -3
- package/src/modules/workspace/__tests__/workspace.tools.branch-errors.test.ts +24 -11
- package/src/modules/workspace/__tests__/workspace.tools.test.ts +423 -117
- package/src/modules/workspace/agent-access.gate.ts +3 -3
- package/src/modules/workspace/agent-download.builder.ts +1 -1
- package/src/modules/workspace/agent-upload.routes.ts +19 -0
- package/src/modules/workspace/agent-upload.store.ts +18 -0
- package/src/modules/workspace/file-readers/README.md +9 -0
- package/src/modules/workspace/file-readers/__tests__/doc-extract.service.test.ts +175 -0
- package/src/modules/workspace/file-readers/__tests__/doc-extract.test.ts +21 -16
- package/src/modules/workspace/file-readers/__tests__/extract-in-worker.test.ts +229 -0
- package/src/modules/workspace/file-readers/__tests__/file-reader.registry.test.ts +2 -1
- package/src/modules/workspace/file-readers/__tests__/fixtures/damaged-pdf.ts +34 -0
- package/src/modules/workspace/file-readers/__tests__/fixtures/misbehaving-extract.worker.ts +57 -0
- package/src/modules/workspace/file-readers/__tests__/fixtures/pdf-in-trouble.worker.ts +20 -0
- package/src/modules/workspace/file-readers/__tests__/fixtures/unloadable-extract.worker.ts +2 -0
- package/src/modules/workspace/file-readers/doc-extract.service.ts +144 -36
- package/src/modules/workspace/file-readers/doc-extract.types.ts +13 -3
- package/src/modules/workspace/file-readers/document-extractor.contract.ts +42 -0
- package/src/modules/workspace/file-readers/document-extractors.ts +28 -0
- package/src/modules/workspace/file-readers/document-formats.ts +13 -0
- package/src/modules/workspace/file-readers/document-reader.ts +40 -36
- package/src/modules/workspace/file-readers/extract-in-worker.ts +183 -0
- package/src/modules/workspace/file-readers/extract-pdf.ts +23 -4
- package/src/modules/workspace/file-readers/extract.worker.ts +5 -0
- package/src/modules/workspace/file-readers/extraction-cache.ts +33 -12
- package/src/modules/workspace/file-readers/extraction-worker.ts +86 -0
- package/src/modules/workspace/file-readers/file-reader.registry.ts +6 -20
- package/src/modules/workspace/file-readers/file-reader.ts +14 -4
- package/src/modules/workspace/first-run.ts +1 -1
- package/src/modules/workspace/git-internals.middleware.ts +1 -1
- package/src/modules/workspace/index.ts +37 -0
- package/src/modules/workspace/kb-repository.ts +3 -2
- package/src/modules/workspace/not-found.ts +1 -1
- package/src/modules/workspace/nul-scan.ts +50 -0
- package/src/modules/workspace/pattern-matcher.contract.ts +124 -33
- package/src/modules/workspace/ripgrep-search.ts +715 -0
- package/src/modules/workspace/ripgrep-version.ts +35 -0
- package/src/modules/workspace/routine-write-policy.ts +1 -1
- package/src/modules/workspace/startup/__tests__/beside-checkout.test.ts +11 -0
- package/src/modules/workspace/startup/beside-checkout.ts +13 -5
- package/src/modules/workspace/startup/kb-git.ts +1 -1
- package/src/modules/workspace/startup/kb-startup-runner.ts +1 -2
- package/src/modules/workspace/startup/steps/groups-to-plugins.step.ts +3 -3
- package/src/modules/workspace/startup/steps/personal-spaces.step.ts +2 -2
- package/src/modules/workspace/startup/steps/plugin-layout.ts +1 -1
- package/src/modules/workspace/startup/steps/roles-yaml.step.ts +1 -1
- package/src/modules/workspace/startup/steps/seed-tree.ts +2 -2
- package/src/modules/workspace/startup/steps/template-files.step.ts +2 -2
- package/src/modules/workspace/startup/steps/template-source.ts +2 -2
- package/src/modules/workspace/worker-pool.ts +192 -0
- package/src/modules/workspace/workspace-tmp.ts +457 -0
- package/src/modules/workspace/workspace.routes.ts +15 -39
- package/src/modules/workspace/workspace.service.ts +96 -22
- package/src/modules/workspace/workspace.tools.ts +550 -186
- package/src/modules/workspace/write-denial.ts +4 -5
- package/src/modules/write-access/index.ts +7 -0
- package/src/shared/__tests__/module-boundaries.lint.test.ts +301 -0
- package/src/shared/path-order.ts +37 -8
- package/starter-packs/engineering/Plugins/engineering-starter/access.md +1 -1
- package/starter-packs/general/Plugins/general-starter/access.md +1 -1
- package/starter-packs/operations/Plugins/operations-starter/access.md +1 -1
- package/starter-packs/sales/Plugins/sales-starter/access.md +1 -1
- package/starter-packs/support/Plugins/support-starter/access.md +1 -1
- package/dist/modules/workspace/bounded-matcher.d.ts +0 -79
- package/dist/modules/workspace/bounded-matcher.d.ts.map +0 -1
- package/dist/modules/workspace/bounded-matcher.js +0 -261
- package/dist/modules/workspace/bounded-matcher.js.map +0 -1
- package/src/modules/workflow/__tests__/format-affected-owners.test.ts +0 -85
- package/src/modules/workspace/__tests__/bounded-matcher.test.ts +0 -213
- package/src/modules/workspace/bounded-matcher.ts +0 -328
|
@@ -3,6 +3,7 @@ import cors from 'cors';
|
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import type { Router, RequestHandler } from 'express';
|
|
5
5
|
import { createAuthRoutes } from '../modules/auth/auth.routes.js';
|
|
6
|
+
import { authCookieSecure } from '../modules/auth/auth.middleware.js';
|
|
6
7
|
import { createWorkspaceRoutes } from '../modules/workspace/workspace.routes.js';
|
|
7
8
|
import {
|
|
8
9
|
createAgentUploadRoutes,
|
|
@@ -13,13 +14,18 @@ import { createGitInternalsRouteGuard } from '../modules/workspace/git-internals
|
|
|
13
14
|
import { startCore } from './lifecycle.js';
|
|
14
15
|
import { createDiffRoutes } from '../modules/diff/diff.routes.js';
|
|
15
16
|
import { createWorkflowRoutes } from '../modules/workflow/workflow.routes.js';
|
|
16
|
-
import { createEventsRoutes } from '../modules/workflow/
|
|
17
|
+
import { createEventAccess, createEventsRoutes, EventDelivery } from '../modules/workflow/index.js';
|
|
17
18
|
import { createAccessRoutes } from '../modules/access/access.routes.js';
|
|
18
19
|
import { createAccessRequestRoutes } from '../modules/access/access-requests.routes.js';
|
|
20
|
+
import { AccessRequestsService } from '../modules/access/access-requests.service.js';
|
|
19
21
|
import { createMcpRoutes } from '../modules/mcp/mcp.routes.js';
|
|
20
22
|
import { createOAuthConsentRoutes } from '../modules/mcp/oauth/oauth-consent.routes.js';
|
|
21
23
|
import { mcpAuthRouter } from '@modelcontextprotocol/sdk/server/auth/router.js';
|
|
22
24
|
import { createManualRoutes } from '../modules/tool-registry/manual.routes.js';
|
|
25
|
+
import {
|
|
26
|
+
createToolHintsAgentRoutes,
|
|
27
|
+
createToolHintsRoutes,
|
|
28
|
+
} from '../modules/tool-registry/read-only-hints.js';
|
|
23
29
|
import { createCatalogRevisionRoutes } from './catalog-revision.js';
|
|
24
30
|
import {
|
|
25
31
|
createToolManualsAgentRoutes,
|
|
@@ -359,6 +365,9 @@ export async function createCoreServer(
|
|
|
359
365
|
core.authMiddleware,
|
|
360
366
|
core.authProviders,
|
|
361
367
|
core.config.loginPasswordEnabled,
|
|
368
|
+
// The cookie's Secure flag follows the scheme the deployment is reached
|
|
369
|
+
// on, as the SSO providers' does: one rule for every sign-in path.
|
|
370
|
+
{ cookieSecure: authCookieSecure(core.config.publicBackendUrl) },
|
|
362
371
|
),
|
|
363
372
|
);
|
|
364
373
|
|
|
@@ -378,6 +387,7 @@ export async function createCoreServer(
|
|
|
378
387
|
core.internalTokenService,
|
|
379
388
|
core.mcpOAuthProvider,
|
|
380
389
|
core.mcpResourceMetadataUrl,
|
|
390
|
+
core.agentScopeService,
|
|
381
391
|
));
|
|
382
392
|
|
|
383
393
|
// Remote sync — `POST /api/sync`, called by a git host's webhook or a
|
|
@@ -418,6 +428,7 @@ export async function createCoreServer(
|
|
|
418
428
|
toolManualService: core.toolManualService,
|
|
419
429
|
accessControl: core.accessControl,
|
|
420
430
|
connectionProbe: core.connectionProbeService,
|
|
431
|
+
agents: core.agentScopeService,
|
|
421
432
|
stateSecret: core.config.jwtSecret,
|
|
422
433
|
publicBackendUrl: core.config.publicBackendUrl,
|
|
423
434
|
publicFrontendUrl: core.config.publicFrontendUrl,
|
|
@@ -539,11 +550,17 @@ export async function createCoreServer(
|
|
|
539
550
|
agentAccessGate,
|
|
540
551
|
core,
|
|
541
552
|
});
|
|
553
|
+
// What MCP clients are told about each platform tool's effect: read by the
|
|
554
|
+
// agent manual (the hosted endpoint) and by `/agent/tool-hints` (hexis-mcp).
|
|
555
|
+
const { readOnlyHints } = core;
|
|
542
556
|
toolsRouter.use(createManualRoutes(
|
|
543
557
|
core.toolRegistry,
|
|
544
558
|
core.manualAuthMiddleware,
|
|
545
559
|
async (userId) => (await core.authService.getUserById(userId))?.email,
|
|
560
|
+
readOnlyHints,
|
|
561
|
+
core.agentScopeService,
|
|
546
562
|
));
|
|
563
|
+
toolsRouter.use(createToolHintsAgentRoutes(readOnlyHints, core.manualAuthMiddleware));
|
|
547
564
|
// The aggregated manual list (KB + the caller's accessible `.tool`s) + inline
|
|
548
565
|
// `.tool` sub-manuals. Mounted on the tools router so they share `manualAuth`
|
|
549
566
|
// and sit before the JWT `/api` mounts.
|
|
@@ -558,6 +575,7 @@ export async function createCoreServer(
|
|
|
558
575
|
disk: core.disk,
|
|
559
576
|
pluginIndex: core.pluginIndexService,
|
|
560
577
|
},
|
|
578
|
+
core.agentScopeService,
|
|
561
579
|
));
|
|
562
580
|
// What every connected agent is told at session start, as the hosted proxy
|
|
563
581
|
// composes it: read by the local `hexis-mcp` bridge at startup and by the
|
|
@@ -572,6 +590,7 @@ export async function createCoreServer(
|
|
|
572
590
|
skills: core.skillService,
|
|
573
591
|
manualAuth: core.manualAuthMiddleware,
|
|
574
592
|
resolveUserEmail: async (userId) => (await core.authService.getUserById(userId))?.email,
|
|
593
|
+
agentScope: core.agentScopeService,
|
|
575
594
|
// The views move the revision too: a release that changes a view and no
|
|
576
595
|
// manual would otherwise leave a running local server on the old one.
|
|
577
596
|
mcpApps: core.mcpAppService,
|
|
@@ -586,6 +605,7 @@ export async function createCoreServer(
|
|
|
586
605
|
core.secretsVaultService,
|
|
587
606
|
core.manualAuthMiddleware,
|
|
588
607
|
async (userId) => (await core.authService.getUserById(userId))?.email,
|
|
608
|
+
core.agentScopeService,
|
|
589
609
|
));
|
|
590
610
|
app.use('/api', toolsRouter);
|
|
591
611
|
|
|
@@ -628,6 +648,7 @@ export async function createCoreServer(
|
|
|
628
648
|
createPluginCreationRoutes(
|
|
629
649
|
core.pluginProvisionService,
|
|
630
650
|
async (req) => (req.userId ? ((await core.authService.getUserById(req.userId)) ?? null) : null),
|
|
651
|
+
core.agentScopeService,
|
|
631
652
|
),
|
|
632
653
|
);
|
|
633
654
|
|
|
@@ -666,7 +687,19 @@ export async function createCoreServer(
|
|
|
666
687
|
// cookie — the cookie path is what makes EventSource work, since the
|
|
667
688
|
// browser API can't set headers). Mounted as its own app.use so it
|
|
668
689
|
// doesn't share an outer middleware chain with the JSON routes above.
|
|
669
|
-
|
|
690
|
+
// Every event passes the delivery rule on its way to a session: the file
|
|
691
|
+
// routes' read verdict, read in the server's own checkouts — for an
|
|
692
|
+
// approval, the target branch's; a target with no checkout at its ref.
|
|
693
|
+
const eventDelivery = new EventDelivery(createEventAccess({
|
|
694
|
+
accessControl: core.accessControl,
|
|
695
|
+
kbDirName: core.kbDirName,
|
|
696
|
+
getChangeRequest: (number) => core.workflowService.getChangeRequest(number),
|
|
697
|
+
workspaces: {
|
|
698
|
+
hasWorkspace: (workspaceId) => core.workspaceService.hasBootstrappedWorkspace(workspaceId),
|
|
699
|
+
anyWorkspaceId: async () => (await core.workspaceService.findAnyWorkspaceId()) ?? core.kb.defaultWorkspaceId(),
|
|
700
|
+
},
|
|
701
|
+
}));
|
|
702
|
+
app.use('/api', createEventsRoutes(core.eventBus, core.authMiddleware, eventDelivery));
|
|
670
703
|
app.use('/api', core.authMiddleware, createDiffRoutes(
|
|
671
704
|
core.diffService,
|
|
672
705
|
core.authService,
|
|
@@ -683,6 +716,7 @@ export async function createCoreServer(
|
|
|
683
716
|
core.eventBus,
|
|
684
717
|
core.db,
|
|
685
718
|
core.kb,
|
|
719
|
+
core.disk,
|
|
686
720
|
[core.config.adminEmail],
|
|
687
721
|
));
|
|
688
722
|
// Asking for Can edit or Owner on an item from its Manage access dialog, and
|
|
@@ -711,7 +745,12 @@ export async function createCoreServer(
|
|
|
711
745
|
skillService: core.skillService,
|
|
712
746
|
accessControl: core.accessControl,
|
|
713
747
|
workflow: core.workflowService,
|
|
714
|
-
|
|
748
|
+
requests: new AccessRequestsService({
|
|
749
|
+
workflow: core.workflowService,
|
|
750
|
+
workspaceService: core.workspaceService,
|
|
751
|
+
lifecycle: core.joinRequestsService,
|
|
752
|
+
kb: core.kb,
|
|
753
|
+
}),
|
|
715
754
|
joinRequests: core.joinRequestsService,
|
|
716
755
|
kb: core.kb,
|
|
717
756
|
resolveUser: async (req) =>
|
|
@@ -747,6 +786,8 @@ export async function createCoreServer(
|
|
|
747
786
|
// Admin-status resolver (CORE — see the note in admin-access.routes.ts;
|
|
748
787
|
// the full admin router is an enterprise `ext.authed` extension).
|
|
749
788
|
app.use('/api', core.authMiddleware, createAdminAccessRoutes(core.adminAccess));
|
|
789
|
+
// The Tools page's read-only toggles: anyone signed in reads, admins write.
|
|
790
|
+
app.use('/api', core.authMiddleware, createToolHintsRoutes(readOnlyHints, core.adminAccess));
|
|
750
791
|
// Groups admin (manual-mode CRUD; typed refusals in IdP mode) —
|
|
751
792
|
// admin-gated inside.
|
|
752
793
|
app.use('/api', core.authMiddleware, createGroupsAdminRoutes({
|
|
@@ -875,6 +916,7 @@ export async function createCoreServer(
|
|
|
875
916
|
clientNameFor: (st) => core.githubFacade.clientNameFor(st),
|
|
876
917
|
completeConsent: (userId, st) => core.githubFacade.completeConsent(userId, st),
|
|
877
918
|
},
|
|
919
|
+
agents: core.agentScopeService,
|
|
878
920
|
}));
|
|
879
921
|
|
|
880
922
|
// What an Owner pastes into Claude's admin settings to register this
|
|
@@ -34,6 +34,8 @@ import { TemplateFilesStep } from '../modules/workspace/startup/steps/template-f
|
|
|
34
34
|
import { RolesYamlStep } from '../modules/workspace/startup/steps/roles-yaml.step.js';
|
|
35
35
|
import { buildSeedTree } from '../modules/workspace/startup/steps/seed-tree.js';
|
|
36
36
|
import { DeploymentSettingsService, retireMergedBranchesOn } from '../modules/settings/deployment-settings.service.js';
|
|
37
|
+
import { ToolReadOnlyHints } from '../modules/tool-registry/read-only-hints.js';
|
|
38
|
+
import type { IToolReadOnlyHints } from '../modules/tool-registry/read-only-hints.contract.js';
|
|
37
39
|
import { KbSyncService } from '../modules/kb-sync/kb-sync.service.js';
|
|
38
40
|
import { NodeFs } from '../modules/kb-fs/node-fs.js';
|
|
39
41
|
import { assertKbDirNameFree } from '../modules/kb-fs/repo-path.js';
|
|
@@ -61,27 +63,38 @@ function parseDomainList(raw: string): string[] {
|
|
|
61
63
|
.filter((d) => d.length > 0);
|
|
62
64
|
}
|
|
63
65
|
import { SpillStore } from '../modules/workspace/spill-store.js';
|
|
66
|
+
import { TmpSweeper } from '../modules/workspace/workspace-tmp.js';
|
|
64
67
|
import { AgentUploadStore, assertUploadsRootOutsideWorkspaces } from '../modules/workspace/agent-upload.store.js';
|
|
65
68
|
import { AgentDownloadStore, type IAgentDownloadStore } from '../modules/workspace/agent-download.store.js';
|
|
66
69
|
import { createDownloadFetcherIdentifier } from '../modules/workspace/agent-download.routes.js';
|
|
67
|
-
import { WorkerPatternMatcher } from '../modules/workspace/bounded-matcher.js';
|
|
68
|
-
import type { IPatternMatcher } from '../modules/workspace/pattern-matcher.contract.js';
|
|
69
70
|
import type { Request } from 'express';
|
|
70
|
-
import {
|
|
71
|
+
import {
|
|
72
|
+
assertRipgrep,
|
|
73
|
+
DocExtractService,
|
|
74
|
+
RipgrepPatternMatcher,
|
|
75
|
+
WorkerDocumentExtractor,
|
|
76
|
+
type IDocumentExtractor,
|
|
77
|
+
type IPatternMatcher,
|
|
78
|
+
} from '../modules/workspace/index.js';
|
|
71
79
|
import { UuidSessionSink, type ISessionSink } from '../modules/workspace/session-sink.js';
|
|
72
80
|
import { AuthService } from '../modules/auth/auth.service.js';
|
|
73
81
|
import { AccountHooks, type IAccountHooks } from '../modules/auth/account-hooks.js';
|
|
74
82
|
import { AccountErasureService } from '../modules/auth/account-erasure.service.js';
|
|
75
83
|
import { OidcAuthProvider, oidcSettingsFrom } from '../modules/auth/oidc-auth-provider.js';
|
|
76
|
-
import { createAuthMiddleware, readAuthCookie } from '../modules/auth/auth.middleware.js';
|
|
84
|
+
import { authCookieSecure, createAuthMiddleware, readAuthCookie } from '../modules/auth/auth.middleware.js';
|
|
77
85
|
import { AccessControlService, loadActiveGroups } from '../modules/access/access-control.service.js';
|
|
86
|
+
import { AccessMutationService } from '../modules/access/access-mutation.service.js';
|
|
78
87
|
import { CreatorAccessService } from '../modules/access/creator-access.js';
|
|
79
88
|
import { ChangeReadGate } from '../modules/access/change-read-gate.js';
|
|
80
89
|
import { GroupsAdminService } from '../modules/access/groups-admin.service.js';
|
|
81
90
|
import { UserAccessRemovalService } from '../modules/access/user-access-removal.service.js';
|
|
82
|
-
import { makeRolesYamlWriteValidator } from '../modules/access-model/
|
|
83
|
-
|
|
84
|
-
|
|
91
|
+
import { makeRolesYamlWriteValidator } from '../modules/access-model/index.js';
|
|
92
|
+
// The implementations, from their files: the module entries offer them as
|
|
93
|
+
// types only, so nothing that imports an entry loads a service.
|
|
94
|
+
import { SkillService } from '../modules/skills/skills.service.js';
|
|
95
|
+
import { PendingSkillsService } from '../modules/skills/pending-skills.service.js';
|
|
96
|
+
import { ToolManualService } from '../modules/tool-manuals/tool-manuals.service.js';
|
|
97
|
+
import { PendingToolsService } from '../modules/tool-manuals/pending-tools.service.js';
|
|
85
98
|
import { McpServerEditService } from '../modules/tool-manuals/mcp-server-edit.service.js';
|
|
86
99
|
import { ToolDeleteService } from '../modules/tool-manuals/tool-delete.service.js';
|
|
87
100
|
import {
|
|
@@ -98,6 +111,7 @@ import {
|
|
|
98
111
|
MarketplaceCompilerService,
|
|
99
112
|
KbPluginSource,
|
|
100
113
|
} from '../modules/plugins/index.js';
|
|
114
|
+
import { noAgentConfigurations, type IAgentScopeResolver } from '../modules/agent-scope/index.js';
|
|
101
115
|
import { MarketplaceRepoService } from '../modules/marketplace/index.js';
|
|
102
116
|
import {
|
|
103
117
|
GitHubFacadeCredentialsService,
|
|
@@ -122,7 +136,7 @@ import { assertGitVersion } from '../modules/workflow/git/git-version.js';
|
|
|
122
136
|
import { DiffService } from '../modules/diff/diff.service.js';
|
|
123
137
|
import { ReviewWorkflowService } from '../modules/workflow/review-workflow/review-workflow.service.js';
|
|
124
138
|
import { FileLockService } from '../modules/workflow/file-lock.service.js';
|
|
125
|
-
import { WorkflowEventBus } from '../modules/workflow/
|
|
139
|
+
import { WorkflowEventBus } from '../modules/workflow/index.js';
|
|
126
140
|
import { FileChangeNotifier } from '../modules/kb-fs/file-change-notifier.js';
|
|
127
141
|
import { StarterPackService } from '../modules/onboarding/starter-pack.service.js';
|
|
128
142
|
import { WorkflowService } from '../modules/workflow/workflow.service.js';
|
|
@@ -248,7 +262,9 @@ export interface CoreServices {
|
|
|
248
262
|
agentUploadStore: AgentUploadStore;
|
|
249
263
|
/** The bytes `request_file_download` captured, held until their one-time link is fetched or expires. */
|
|
250
264
|
agentDownloadStore: IAgentDownloadStore;
|
|
251
|
-
/**
|
|
265
|
+
/** Sweeps every workspace's `tmp/` folder of entries older than seven days, hourly; started and stopped with the graph. */
|
|
266
|
+
tmpSweeper: TmpSweeper;
|
|
267
|
+
/** Runs a caller's `grep` pattern in ripgrep under a budget; its running searches end when the graph stops. */
|
|
252
268
|
patternMatcher: IPatternMatcher;
|
|
253
269
|
/**
|
|
254
270
|
* Every user a download fetch identifies itself as, by its bearer and its
|
|
@@ -256,6 +272,8 @@ export interface CoreServices {
|
|
|
256
272
|
* download route can refuse a link presented by someone it was not issued to.
|
|
257
273
|
*/
|
|
258
274
|
agentDownloadFetcher: (req: Request) => Promise<string[]>;
|
|
275
|
+
/** Runs every document extraction off the request thread under a budget; its workers end when the graph stops. */
|
|
276
|
+
documentExtractor: IDocumentExtractor;
|
|
259
277
|
docExtractService: DocExtractService;
|
|
260
278
|
accessControl: AccessControlService;
|
|
261
279
|
creatorAccess: CreatorAccessService;
|
|
@@ -300,6 +318,12 @@ export interface CoreServices {
|
|
|
300
318
|
pluginJoinRequestJobs: PluginJoinRequestJobs;
|
|
301
319
|
/** Which plugins hold which skills (inline or linked) — see `PluginLinkIndex`. */
|
|
302
320
|
pluginLinkIndex: PluginLinkIndex;
|
|
321
|
+
/**
|
|
322
|
+
* Connecting as an agent configuration: the choices offered at consent and key
|
|
323
|
+
* mint, and the scope every agent surface narrows a connection to — see
|
|
324
|
+
* `modules/agent-scope`.
|
|
325
|
+
*/
|
|
326
|
+
agentScopeService: IAgentScopeResolver;
|
|
303
327
|
/** Link / unlink / repair shared skills into plugins. */
|
|
304
328
|
pluginLinksService: PluginLinksService;
|
|
305
329
|
pluginRenameService: PluginRenameService;
|
|
@@ -399,6 +423,8 @@ export interface CoreServices {
|
|
|
399
423
|
/** The Audit log: what every connected agent and key called, and the revoke of an agent's grant. */
|
|
400
424
|
agentAuditService: AgentAuditService;
|
|
401
425
|
toolRegistry: ToolRegistry;
|
|
426
|
+
/** Each platform tool's and meta-tool's read-only hint, and an admin's overrides of them. */
|
|
427
|
+
readOnlyHints: IToolReadOnlyHints;
|
|
402
428
|
toolAuthMiddleware: ReturnType<typeof createToolAuthMiddleware>;
|
|
403
429
|
manualAuthMiddleware: ReturnType<typeof createManualAuthMiddleware>;
|
|
404
430
|
toolHandlerFactory: ReturnType<typeof createToolHandlerFactory>;
|
|
@@ -421,6 +447,9 @@ export async function createCoreServices(
|
|
|
421
447
|
// (see `git-version.ts`): every clone, fetch and refresh below depends on it,
|
|
422
448
|
// so an unsupported binary is better surfaced here than at the first merge.
|
|
423
449
|
await assertGitVersion();
|
|
450
|
+
// The same for ripgrep, which the grep tool searches with and has no
|
|
451
|
+
// fallback for (see `ripgrep-version.ts`).
|
|
452
|
+
await assertRipgrep();
|
|
424
453
|
// What tells this knowledge base's locks, migration ledger and secrets
|
|
425
454
|
// loader apart from another's in the same process and database. Empty for
|
|
426
455
|
// the default schema, so a single-tenant deployment keeps the lock ids and
|
|
@@ -756,6 +785,10 @@ export async function createCoreServices(
|
|
|
756
785
|
// Shared, workspace-independent store for oversized `call_tool_chain` results,
|
|
757
786
|
// read back via `read_file`. Sibling of `workspacesRoot`, never committed.
|
|
758
787
|
const spillStore = new SpillStore(config.spillRoot);
|
|
788
|
+
// What the chat, the SharePoint reader and tool chains stage in a
|
|
789
|
+
// workspace's `tmp/` folder lives seven days past its last change; the file
|
|
790
|
+
// tools read it through the `__tmp__/` ref meanwhile (see workspace-tmp.ts).
|
|
791
|
+
const tmpSweeper = new TmpSweeper((signal) => workspaceService.sweepTmp(undefined, undefined, signal));
|
|
759
792
|
// The upload route an agent lands files by, so their content never passes
|
|
760
793
|
// through the model. Bytes live BESIDE the workspaces root (never inside
|
|
761
794
|
// one) until the apply commits them or the token expires — checked here
|
|
@@ -784,16 +817,16 @@ export async function createCoreServices(
|
|
|
784
817
|
'captured download bytes wait there for their one-time links, so a root inside a workspace would let the ' +
|
|
785
818
|
'file tools read them. Point AGENT_UPLOADS_ROOT at a directory whose parent is outside WORKSPACES_ROOT.',
|
|
786
819
|
});
|
|
787
|
-
const patternMatcher = new
|
|
820
|
+
const patternMatcher = new RipgrepPatternMatcher();
|
|
788
821
|
const agentDownloadStore = new AgentDownloadStore({
|
|
789
822
|
root: agentDownloadsRoot,
|
|
790
823
|
publicBaseUrl: config.publicBackendUrl,
|
|
791
824
|
// `<tenant>-down_`: recognisable by shape beside the upload token.
|
|
792
825
|
tokenPrefix: config.uploadTokenPrefix.replace(/up_$/, 'down_'),
|
|
793
826
|
});
|
|
794
|
-
//
|
|
795
|
-
//
|
|
796
|
-
const
|
|
827
|
+
// The worker threads every office/PDF/email extraction runs in, under a
|
|
828
|
+
// 10 s budget per file (see `WorkerDocumentExtractor`).
|
|
829
|
+
const documentExtractor = new WorkerDocumentExtractor();
|
|
797
830
|
// The deployment owner counts as Admin for the two hardcoded `write`
|
|
798
831
|
// rescues (`roles.yaml` and any `access.md`) — the SAME list
|
|
799
832
|
// `AdminAccessService` below is given, so the admin surfaces and the write
|
|
@@ -840,6 +873,17 @@ export async function createCoreServices(
|
|
|
840
873
|
// The link index resolves manifests against the released catalog, and the
|
|
841
874
|
// plugin index counts through it (inline + linked), so it comes first.
|
|
842
875
|
const pluginLinkIndex = new PluginLinkIndex(workspaceService, skillService, accessControl, kb, pluginSource);
|
|
876
|
+
// What "Connect as" offers and what a connection made as an agent loads:
|
|
877
|
+
// the distribution's resolver (`CorePorts.agentScope`), made HERE with the
|
|
878
|
+
// core services it reads through — its configurations behind the person's
|
|
879
|
+
// read gate, `plugins:` expanded through the link index above — or core's
|
|
880
|
+
// default, which offers no agent and loads nothing for a path it cannot
|
|
881
|
+
// read. Made once, before anything consults it: the tool-context resolver
|
|
882
|
+
// below captures it, as the routes the server mounts do, so there is one
|
|
883
|
+
// resolver in effect and no later assignment to miss. Core owns the
|
|
884
|
+
// mechanism and no configuration (see `modules/agent-scope`).
|
|
885
|
+
const agentScopeService: IAgentScopeResolver =
|
|
886
|
+
ports.agentScope?.({ workspaceService, accessControl, kb, disk, pluginLinkIndex }) ?? noAgentConfigurations();
|
|
843
887
|
const pluginIndexService = new PluginIndexService(
|
|
844
888
|
workspaceService,
|
|
845
889
|
accessControl,
|
|
@@ -952,6 +996,14 @@ export async function createCoreServices(
|
|
|
952
996
|
// browser sessions. Single instance per Node process — survives across
|
|
953
997
|
// requests, doesn't survive restarts (clients reconnect + resync).
|
|
954
998
|
const eventBus = new WorkflowEventBus();
|
|
999
|
+
// Office-document/PDF/email text extraction for `read_file`/`grep`, cached
|
|
1000
|
+
// by content hash beside the workspaces root (see `DocExtractionCache`),
|
|
1001
|
+
// failures included. A fresh failure is told to the people looking at the
|
|
1002
|
+
// file: the events route delivers it only to sessions that may read it.
|
|
1003
|
+
const docExtractService = new DocExtractService(config.docExtractCacheRoot, documentExtractor, {
|
|
1004
|
+
onUnreadable: ({ workspaceId, path, reason }) =>
|
|
1005
|
+
eventBus.emit({ kind: 'document-unreadable', workspaceId, path, reason }),
|
|
1006
|
+
});
|
|
955
1007
|
// In-process post-commit hook (distinct from the SSE bus): fires once per
|
|
956
1008
|
// committed change (batched paths) so catalogs refresh instantly and the
|
|
957
1009
|
// id-repair keeps the id namespace collision-free. Subscribers are registered
|
|
@@ -1038,6 +1090,7 @@ export async function createCoreServices(
|
|
|
1038
1090
|
workspaceService,
|
|
1039
1091
|
workflowService,
|
|
1040
1092
|
accessControl,
|
|
1093
|
+
new AccessMutationService(workspaceService, accessControl, kb.kbDirName),
|
|
1041
1094
|
skillService,
|
|
1042
1095
|
pluginLinkIndex,
|
|
1043
1096
|
kb,
|
|
@@ -1386,6 +1439,8 @@ export async function createCoreServices(
|
|
|
1386
1439
|
// the setup save applies lands without a restart.
|
|
1387
1440
|
kbLayout: () => kb.layout,
|
|
1388
1441
|
secretsScope,
|
|
1442
|
+
// Read at listing time, by when the hints below exist.
|
|
1443
|
+
readOnlyOverrides: () => readOnlyHints.overrides(),
|
|
1389
1444
|
},
|
|
1390
1445
|
// Pre-dispatch per-user credential check: the vault answers "has this caller
|
|
1391
1446
|
// set it?" and the manual catalog answers "which user-scoped vars does this
|
|
@@ -1454,6 +1509,9 @@ export async function createCoreServices(
|
|
|
1454
1509
|
// `internalTokenService` minted above (shared with the agent factories) is
|
|
1455
1510
|
// the same one the tool-auth middleware verifies internal tokens against.
|
|
1456
1511
|
const toolRegistry = new ToolRegistry();
|
|
1512
|
+
// What MCP clients are told about each platform tool's effect: its write
|
|
1513
|
+
// declaration, or an admin's override from the Tools page.
|
|
1514
|
+
const readOnlyHints = new ToolReadOnlyHints(toolRegistry, settings);
|
|
1457
1515
|
const resolveToolContext = createToolContextResolver({
|
|
1458
1516
|
authService,
|
|
1459
1517
|
workspaceService,
|
|
@@ -1462,6 +1520,7 @@ export async function createCoreServices(
|
|
|
1462
1520
|
kbDirName: kbDirName,
|
|
1463
1521
|
creatorAccess,
|
|
1464
1522
|
loadActiveGroups,
|
|
1523
|
+
agentScope: agentScopeService,
|
|
1465
1524
|
});
|
|
1466
1525
|
const writeAccess = ports.writeAccess ?? alwaysWritable;
|
|
1467
1526
|
// The branch every tool call runs on is resolved by the handler, before the
|
|
@@ -1471,8 +1530,8 @@ export async function createCoreServices(
|
|
|
1471
1530
|
defaultBranch: () => kb.defaultBranch,
|
|
1472
1531
|
isMissing: (branch) => workspaceService.isBranchMissing(branch),
|
|
1473
1532
|
});
|
|
1474
|
-
const toolAuthMiddleware = createToolAuthMiddleware(externalApiKeyService, internalTokenService, authService);
|
|
1475
|
-
const verifyToolToken = createTokenVerifier(externalApiKeyService, internalTokenService, authService);
|
|
1533
|
+
const toolAuthMiddleware = createToolAuthMiddleware(externalApiKeyService, internalTokenService, authService, mcpOAuthProvider);
|
|
1534
|
+
const verifyToolToken = createTokenVerifier(externalApiKeyService, internalTokenService, authService, mcpOAuthProvider);
|
|
1476
1535
|
// Every credential kind this server issues — connection keys, internal
|
|
1477
1536
|
// tokens and app sessions (bearer or cookie) — so a fetch carrying another
|
|
1478
1537
|
// user's identity of ANY kind is refused the link.
|
|
@@ -1483,7 +1542,7 @@ export async function createCoreServices(
|
|
|
1483
1542
|
// Read-only manual endpoints accept the above PLUS a browser JWT, so a
|
|
1484
1543
|
// logged-in user can browse the catalog with their session. Execution routes
|
|
1485
1544
|
// keep `toolAuthMiddleware` (no JWT), so a session can read but not invoke.
|
|
1486
|
-
const manualAuthMiddleware = createManualAuthMiddleware(externalApiKeyService, internalTokenService, authService);
|
|
1545
|
+
const manualAuthMiddleware = createManualAuthMiddleware(externalApiKeyService, internalTokenService, authService, mcpOAuthProvider);
|
|
1487
1546
|
|
|
1488
1547
|
// Recovery-bot identity: a synthetic `recovery-bot@bevel.local` user
|
|
1489
1548
|
// backing (a) the recovery agent's commit authorship and (b) the
|
|
@@ -1550,7 +1609,7 @@ export async function createCoreServices(
|
|
|
1550
1609
|
settings: () => oidcSettingsFrom(settings),
|
|
1551
1610
|
publicBackendUrl: config.publicBackendUrl,
|
|
1552
1611
|
publicFrontendUrl: config.publicFrontendUrl,
|
|
1553
|
-
cookieSecure: config.publicBackendUrl
|
|
1612
|
+
cookieSecure: authCookieSecure(config.publicBackendUrl),
|
|
1554
1613
|
// A real sign-in proves the values that sign-in used. Recorded against
|
|
1555
1614
|
// those — under their own key — so it says nothing about any saved
|
|
1556
1615
|
// since, and cannot overwrite what was recorded about them.
|
|
@@ -1594,6 +1653,7 @@ export async function createCoreServices(
|
|
|
1594
1653
|
workspaceService,
|
|
1595
1654
|
workflowService,
|
|
1596
1655
|
accessControl,
|
|
1656
|
+
disk,
|
|
1597
1657
|
kbDirName,
|
|
1598
1658
|
() => kb.defaultBranch,
|
|
1599
1659
|
eventBus,
|
|
@@ -1648,8 +1708,10 @@ export async function createCoreServices(
|
|
|
1648
1708
|
spillStore,
|
|
1649
1709
|
agentUploadStore,
|
|
1650
1710
|
agentDownloadStore,
|
|
1711
|
+
tmpSweeper,
|
|
1651
1712
|
patternMatcher,
|
|
1652
1713
|
agentDownloadFetcher,
|
|
1714
|
+
documentExtractor,
|
|
1653
1715
|
docExtractService,
|
|
1654
1716
|
accessControl,
|
|
1655
1717
|
creatorAccess,
|
|
@@ -1668,6 +1730,7 @@ export async function createCoreServices(
|
|
|
1668
1730
|
joinRequestsService,
|
|
1669
1731
|
pluginJoinRequestJobs,
|
|
1670
1732
|
pluginLinkIndex,
|
|
1733
|
+
agentScopeService,
|
|
1671
1734
|
pluginLinksService,
|
|
1672
1735
|
pluginRenameService,
|
|
1673
1736
|
marketplaceCompiler,
|
|
@@ -1708,6 +1771,7 @@ export async function createCoreServices(
|
|
|
1708
1771
|
mcpResourceMetadataUrl,
|
|
1709
1772
|
agentAuditService,
|
|
1710
1773
|
toolRegistry,
|
|
1774
|
+
readOnlyHints,
|
|
1711
1775
|
toolAuthMiddleware,
|
|
1712
1776
|
manualAuthMiddleware,
|
|
1713
1777
|
toolHandlerFactory,
|
package/src/core/lifecycle.ts
CHANGED
|
@@ -6,6 +6,7 @@ import { noteBesideCheckout } from '../modules/workspace/startup/beside-checkout
|
|
|
6
6
|
import { unregisterBevelSecretsVariableLoader } from '../modules/secrets-vault/secrets-variable-loader.js';
|
|
7
7
|
import type { WorkflowService } from '../modules/workflow/workflow.service.js';
|
|
8
8
|
import type { PluginJoinRequestJobs } from '../modules/plugins/join-request-jobs.service.js';
|
|
9
|
+
import type { TmpSweeper } from '../modules/workspace/workspace-tmp.js';
|
|
9
10
|
import { printable } from '../shared/printable.js';
|
|
10
11
|
import { logger } from '../shared/logging.js';
|
|
11
12
|
|
|
@@ -293,6 +294,8 @@ export interface BootableCore {
|
|
|
293
294
|
kbStartupRunner: Pick<KbStartupRunner, 'runAll' | 'retryUntilMaintained'>;
|
|
294
295
|
workflowService: Pick<WorkflowService, 'closeChangeRequestsWithDeletedBranches' | 'tidyAfterSweep'>;
|
|
295
296
|
pluginJoinRequestJobs: Pick<PluginJoinRequestJobs, 'startSweeping'>;
|
|
297
|
+
/** The periodic sweep of every workspace's `tmp/` folder, started here and stopped by {@link stopCore}. */
|
|
298
|
+
tmpSweeper: Pick<TmpSweeper, 'startSweeping'>;
|
|
296
299
|
/**
|
|
297
300
|
* The startup phase's retry, when the boot survived an unreachable remote
|
|
298
301
|
* and is asking again on a timer; null otherwise. Set by {@link startCore},
|
|
@@ -336,6 +339,13 @@ export async function startCore<C extends BootableCore>(
|
|
|
336
339
|
});
|
|
337
340
|
}
|
|
338
341
|
|
|
342
|
+
// The seven-day sweep of every workspace's `tmp/` folder (see
|
|
343
|
+
// `workspace-tmp.ts`), now and hourly. Needs nothing the startup phase
|
|
344
|
+
// provides — it reads the workspaces root and nothing else — so it is not
|
|
345
|
+
// held behind it, and a remote that is down does not leave staged files to
|
|
346
|
+
// pile up. Stopped by `stopCore`.
|
|
347
|
+
core.tmpSweeper.startSweeping();
|
|
348
|
+
|
|
339
349
|
// The KB startup phase — AFTER the distribution's onBoot, because a FATAL
|
|
340
350
|
// template finding raised there must stop the boot before anything seeds
|
|
341
351
|
// from that template; the runner then brings every branch up to this build
|
|
@@ -448,12 +458,28 @@ export interface CoreStopDeps {
|
|
|
448
458
|
agentUploadStore?: { stopSweeping(): void; drainSweep(): Promise<void> };
|
|
449
459
|
/** The agent download store, whose sweep deletes captured bytes nobody fetched — stopped for the same reason. */
|
|
450
460
|
agentDownloadStore?: { stopSweeping(): void; drainSweep(): Promise<void> };
|
|
461
|
+
/**
|
|
462
|
+
* The sweep of the workspaces' `tmp/` folders: stopped with this graph, so
|
|
463
|
+
* an evicted tenant's graph leaves no timer behind, and its sweep in flight
|
|
464
|
+
* cancelled (it removes nothing more) and then awaited within the stop's
|
|
465
|
+
* deadline, so the next graph over the same root does not meet it still
|
|
466
|
+
* walking there — unless one filesystem call outlasts that deadline, after
|
|
467
|
+
* which the cancelled sweep still removes nothing. Optional: a caller that
|
|
468
|
+
* has not built one passes nothing.
|
|
469
|
+
*/
|
|
470
|
+
tmpSweeper?: { stopSweeping(): void; drainSweep(): Promise<void> };
|
|
451
471
|
/**
|
|
452
472
|
* The grep pattern matcher, whose worker threads are this graph's own: ended
|
|
453
473
|
* here so a graph a tenant host evicts leaves no worker behind. Optional: a
|
|
454
474
|
* caller that has not built one passes nothing.
|
|
455
475
|
*/
|
|
456
476
|
patternMatcher?: { close(): Promise<void> };
|
|
477
|
+
/**
|
|
478
|
+
* The document extractor, whose worker threads are this graph's own for the
|
|
479
|
+
* same reason: ended here, so no extraction worker outlives its graph.
|
|
480
|
+
* Optional like the matcher.
|
|
481
|
+
*/
|
|
482
|
+
documentExtractor?: { close(): Promise<void> };
|
|
457
483
|
/**
|
|
458
484
|
* The workflow service, for the tidy-up it runs after each sweep (closing
|
|
459
485
|
* empty requests, removing leftover branches): detached from whatever
|
|
@@ -549,6 +575,7 @@ async function releaseCore(deps: CoreStopDeps, remaining: () => number, log: (m:
|
|
|
549
575
|
// running to stop deleting.
|
|
550
576
|
deps.agentUploadStore?.stopSweeping();
|
|
551
577
|
deps.agentDownloadStore?.stopSweeping();
|
|
578
|
+
deps.tmpSweeper?.stopSweeping();
|
|
552
579
|
// A startup phase still asking for an unreachable remote stops asking:
|
|
553
580
|
// synchronous, and nothing after it must be able to clone into a
|
|
554
581
|
// workspaces folder that is about to belong to nobody.
|
|
@@ -581,15 +608,22 @@ async function releaseCore(deps: CoreStopDeps, remaining: () => number, log: (m:
|
|
|
581
608
|
if (deps.agentDownloadStore) {
|
|
582
609
|
await bounded(deps.agentDownloadStore.drainSweep(), remaining(), 'finishing the download sweep', log);
|
|
583
610
|
}
|
|
611
|
+
if (deps.tmpSweeper) {
|
|
612
|
+
await bounded(deps.tmpSweeper.drainSweep(), remaining(), "finishing the workspaces' tmp sweep", log);
|
|
613
|
+
}
|
|
584
614
|
// The tidy-up in flight fetches and deletes branches through the pool and
|
|
585
615
|
// the default branch's checkout: awaited, so the next graph for this
|
|
586
616
|
// tenant cannot find a branch deletion still running under it.
|
|
587
617
|
if (deps.workflowService) {
|
|
588
618
|
await bounded(deps.workflowService.drainTidy(), remaining(), 'finishing the branch tidy-up', log);
|
|
589
619
|
}
|
|
590
|
-
// Its
|
|
620
|
+
// Its ripgrep runs end with the graph; a search still running is answered busy or stopped.
|
|
591
621
|
if (deps.patternMatcher) {
|
|
592
|
-
await bounded(deps.patternMatcher.close(), remaining(), 'ending the
|
|
622
|
+
await bounded(deps.patternMatcher.close(), remaining(), 'ending the running searches', log);
|
|
623
|
+
}
|
|
624
|
+
// Likewise: an extraction still running is answered busy, and nothing about its file is remembered.
|
|
625
|
+
if (deps.documentExtractor) {
|
|
626
|
+
await bounded(deps.documentExtractor.close(), remaining(), 'ending the extraction workers', log);
|
|
593
627
|
}
|
|
594
628
|
await bounded(deps.commitWorker.stop(), remaining(), 'stopping the commit worker', log);
|
|
595
629
|
if (deps.secretsScope !== undefined) unregisterBevelSecretsVariableLoader(deps.secretsScope);
|
|
@@ -85,5 +85,15 @@ export function publicConfig(kb: KbContext, { marketplaceGitUrl, mcpUrl }: Publi
|
|
|
85
85
|
* there.
|
|
86
86
|
*/
|
|
87
87
|
catalogRevision: true as const,
|
|
88
|
+
/**
|
|
89
|
+
* This deployment serves `GET /api/agent/tool-hints`, the read-only hint
|
|
90
|
+
* of every platform tool and code-mode meta-tool (see
|
|
91
|
+
* modules/tool-registry/read-only-hints.ts). The local `hexis-mcp` bridge
|
|
92
|
+
* reads it on every `tools/list` only when this is advertised — on the
|
|
93
|
+
* same terms as the two flags above: an older deployment answers the
|
|
94
|
+
* unknown route with 401, and an OAuth bridge reads a 401 as an expired
|
|
95
|
+
* token and refreshes its sign-in on every listing.
|
|
96
|
+
*/
|
|
97
|
+
toolHints: true as const,
|
|
88
98
|
};
|
|
89
99
|
}
|
package/src/index.ts
CHANGED
|
@@ -26,7 +26,7 @@ export {
|
|
|
26
26
|
type ServerExtensions,
|
|
27
27
|
type ToolSurfaceCtx,
|
|
28
28
|
} from './core/create-core-server.js';
|
|
29
|
-
export { noopRecoveryAgent, type CorePorts } from './core/core-ports.js';
|
|
29
|
+
export { noopRecoveryAgent, type AgentScopeCollaborators, type CorePorts } from './core/core-ports.js';
|
|
30
30
|
// Logging: the contract, the slot a shell installs its sink into, and the
|
|
31
31
|
// tagged-logger lookup every module logs through. See shared/logging.ts.
|
|
32
32
|
export { setLogger, logger, createConsoleLogger } from './shared/logging.js';
|
|
@@ -242,6 +242,17 @@ describe('Admin write floor at the repository root', () => {
|
|
|
242
242
|
expect(await fs.readFile(path.join(repo, 'access.md'), 'utf-8')).toContain('write:\n - Admin');
|
|
243
243
|
});
|
|
244
244
|
|
|
245
|
+
it('lets the root drop a GROUP named Admin — group/Admin is never the role', async () => {
|
|
246
|
+
await write(repo, 'access.md', '---\n---\nwrite:\n - Admin\n - group/Admin\n');
|
|
247
|
+
const group = { kind: 'role' as const, role: 'group/Admin' };
|
|
248
|
+
await expect(mutation.revoke(WS, 'folder', '', group, ADMIN, 'write')).resolves.toMatchObject({
|
|
249
|
+
changed: true,
|
|
250
|
+
});
|
|
251
|
+
const after = await fs.readFile(path.join(repo, 'access.md'), 'utf-8');
|
|
252
|
+
expect(after).not.toContain('group/Admin');
|
|
253
|
+
expect(after).toContain('write:\n - Admin'); // the role's line is untouched
|
|
254
|
+
});
|
|
255
|
+
|
|
245
256
|
it('refuses deny-here on a PERSON who is an admin at the root, with the reason, and writes nothing', async () => {
|
|
246
257
|
const before = await fs.readFile(path.join(repo, 'access.md'), 'utf-8');
|
|
247
258
|
for (const email of [ADMIN, OWNER]) {
|
|
@@ -310,6 +321,7 @@ describe('Admin write floor at the repository root', () => {
|
|
|
310
321
|
{ emit: () => {} } as unknown as WorkflowEventBus,
|
|
311
322
|
usersDbDouble(),
|
|
312
323
|
testKbContext({ kbDirName: KB }),
|
|
324
|
+
new NodeFs(),
|
|
313
325
|
),
|
|
314
326
|
);
|
|
315
327
|
server = await new Promise<Server>((resolve) => {
|