@bevel-software/platform-core-backend 0.31.0 → 0.33.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 +5 -0
- package/agent-guide/html-views.md +46 -10
- package/dist/core/create-core-server.d.ts.map +1 -1
- package/dist/core/create-core-server.js +29 -4
- package/dist/core/create-core-server.js.map +1 -1
- package/dist/core/create-core-services.d.ts +14 -2
- package/dist/core/create-core-services.d.ts.map +1 -1
- package/dist/core/create-core-services.js +34 -7
- package/dist/core/create-core-services.js.map +1 -1
- package/dist/core/lifecycle.d.ts +8 -0
- package/dist/core/lifecycle.d.ts.map +1 -1
- package/dist/core/lifecycle.js +4 -0
- 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 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/modules/access/access-control.service.d.ts +3 -3
- package/dist/modules/access/access-control.service.d.ts.map +1 -1
- package/dist/modules/access/access-control.service.js +4 -5
- 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 +8 -3
- package/dist/modules/access/access-mutation.service.d.ts.map +1 -1
- package/dist/modules/access/access-mutation.service.js +3 -3
- 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 +1 -1
- package/dist/modules/access/access-view.js.map +1 -1
- package/dist/modules/access/access.routes.d.ts +5 -7
- package/dist/modules/access/access.routes.d.ts.map +1 -1
- package/dist/modules/access/access.routes.js +4 -4
- 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 +2 -2
- package/dist/modules/access/groups-admin.routes.js.map +1 -1
- package/dist/modules/access/groups-admin.service.d.ts +1 -1
- package/dist/modules/access/groups-admin.service.d.ts.map +1 -1
- package/dist/modules/access/groups-admin.service.js +2 -3
- package/dist/modules/access/groups-admin.service.js.map +1 -1
- package/dist/modules/access/groups-edit.js +2 -2
- 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.js +1 -1
- package/dist/modules/access/reference-scan.js.map +1 -1
- package/dist/modules/access/roles-admin.service.d.ts +1 -1
- package/dist/modules/access/roles-admin.service.d.ts.map +1 -1
- package/dist/modules/access/roles-admin.service.js +2 -5
- 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/index.d.ts +29 -0
- package/dist/modules/access-model/index.d.ts.map +1 -0
- package/dist/modules/access-model/index.js +26 -0
- package/dist/modules/access-model/index.js.map +1 -0
- 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 +2 -4
- 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/read-preamble.d.ts +1 -1
- package/dist/modules/agent-instructions/read-preamble.d.ts.map +1 -1
- 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 +1 -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.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-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-hooks.d.ts +4 -6
- package/dist/modules/auth/account-hooks.d.ts.map +1 -1
- package/dist/modules/auth/account-hooks.js +7 -17
- package/dist/modules/auth/account-hooks.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.service.d.ts +10 -9
- package/dist/modules/auth/auth.service.d.ts.map +1 -1
- package/dist/modules/auth/auth.service.js +22 -21
- package/dist/modules/auth/auth.service.js.map +1 -1
- package/dist/modules/auth/index.d.ts +2 -0
- package/dist/modules/auth/index.d.ts.map +1 -1
- package/dist/modules/auth/oidc-auth-provider.js +1 -1
- 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 +128 -235
- package/dist/modules/database/core-schema.d.ts.map +1 -1
- package/dist/modules/database/core-schema.js +55 -36
- 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 +2 -2
- package/dist/modules/declared-variables/declared-variables.routes.d.ts.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 +3 -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 +10 -0
- package/dist/modules/kb-fs/index.d.ts.map +1 -1
- package/dist/modules/kb-fs/index.js +10 -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-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 +4 -5
- package/dist/modules/mcp/mcp-auth.middleware.d.ts.map +1 -1
- package/dist/modules/mcp/mcp-auth.middleware.js +4 -4
- package/dist/modules/mcp/mcp-auth.middleware.js.map +1 -1
- package/dist/modules/mcp/mcp.routes.d.ts +2 -4
- package/dist/modules/mcp/mcp.routes.d.ts.map +1 -1
- package/dist/modules/mcp/mcp.routes.js +2 -2
- package/dist/modules/mcp/mcp.routes.js.map +1 -1
- package/dist/modules/mcp/mcp.service.d.ts +14 -4
- package/dist/modules/mcp/mcp.service.d.ts.map +1 -1
- package/dist/modules/mcp/mcp.service.js +17 -7
- package/dist/modules/mcp/mcp.service.js.map +1 -1
- package/dist/modules/mcp/oauth/bevel-oauth-provider.d.ts +29 -1
- package/dist/modules/mcp/oauth/bevel-oauth-provider.d.ts.map +1 -1
- package/dist/modules/mcp/oauth/bevel-oauth-provider.js +167 -40
- package/dist/modules/mcp/oauth/bevel-oauth-provider.js.map +1 -1
- package/dist/modules/mcp/oauth/oauth-consent.routes.d.ts +1 -1
- package/dist/modules/mcp/oauth/oauth-consent.routes.d.ts.map +1 -1
- package/dist/modules/mcp/oauth/oauth-consent.routes.js +1 -1
- 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 +1 -0
- 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 +3 -3
- 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 +2 -2
- package/dist/modules/plugins/plugins.routes.d.ts.map +1 -1
- package/dist/modules/plugins/plugins.routes.js +3 -3
- 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 +4 -4
- package/dist/modules/secrets-vault/secrets-vault.routes.d.ts.map +1 -1
- package/dist/modules/secrets-vault/secrets-vault.routes.js +1 -1
- 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 +1 -0
- package/dist/modules/skills/index.d.ts.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.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.tools.d.ts +3 -3
- package/dist/modules/skills/skills.tools.d.ts.map +1 -1
- package/dist/modules/skills/skills.tools.js +3 -7
- 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.service.d.ts +1 -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 +1 -1
- 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/tool-auth.middleware.d.ts +2 -2
- package/dist/modules/tool-auth/tool-auth.middleware.d.ts.map +1 -1
- package/dist/modules/tool-auth/tool-auth.middleware.js +1 -1
- 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 +5 -6
- package/dist/modules/tool-helpers/tool-context.d.ts.map +1 -1
- package/dist/modules/tool-helpers/tool-context.js +2 -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 +2 -2
- package/dist/modules/tool-helpers/tool-handler.d.ts.map +1 -1
- package/dist/modules/tool-helpers/tool-handler.js +2 -2
- package/dist/modules/tool-helpers/tool-handler.js.map +1 -1
- package/dist/modules/tool-helpers/tool.contract.d.ts +2 -2
- package/dist/modules/tool-helpers/tool.contract.d.ts.map +1 -1
- package/dist/modules/tool-helpers/validate-token.d.ts +1 -2
- package/dist/modules/tool-helpers/validate-token.d.ts.map +1 -1
- package/dist/modules/tool-helpers/validate-token.js +1 -1
- package/dist/modules/tool-helpers/validate-token.js.map +1 -1
- package/dist/modules/tool-manuals/index.d.ts +5 -0
- package/dist/modules/tool-manuals/index.d.ts.map +1 -1
- package/dist/modules/tool-manuals/index.js +4 -0
- 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.routes.d.ts +5 -5
- package/dist/modules/tool-manuals/tool-manuals.routes.d.ts.map +1 -1
- package/dist/modules/tool-manuals/tool-manuals.routes.js +2 -2
- package/dist/modules/tool-manuals/tool-manuals.routes.js.map +1 -1
- package/dist/modules/tool-manuals/tool-manuals.service.d.ts +3 -3
- package/dist/modules/tool-manuals/tool-manuals.service.d.ts.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 +1 -2
- 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 +37 -2
- package/dist/modules/tool-registry/manual.routes.d.ts.map +1 -1
- package/dist/modules/tool-registry/manual.routes.js +14 -7
- 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 +8 -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 +15 -2
- package/dist/modules/workflow/agent-tools/change-request-summary.d.ts.map +1 -1
- package/dist/modules/workflow/agent-tools/change-request-summary.js +12 -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 +51 -68
- package/dist/modules/workflow/agent-tools/workflow.tools.js.map +1 -1
- package/dist/modules/workflow/change-request-hooks.d.ts +78 -0
- package/dist/modules/workflow/change-request-hooks.d.ts.map +1 -0
- package/dist/modules/workflow/change-request-hooks.js +15 -0
- package/dist/modules/workflow/change-request-hooks.js.map +1 -0
- 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 +2 -2
- package/dist/modules/workflow/git/git.service.d.ts.map +1 -1
- package/dist/modules/workflow/git/git.service.js +3 -6
- 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 +16 -7
- package/dist/modules/workflow/git/pull-request.service.d.ts.map +1 -1
- package/dist/modules/workflow/git/pull-request.service.js +49 -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 +112 -62
- package/dist/modules/workflow/workflow.service.d.ts.map +1 -1
- package/dist/modules/workflow/workflow.service.js +367 -172
- 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/bounded-matcher.d.ts +5 -11
- package/dist/modules/workspace/bounded-matcher.d.ts.map +1 -1
- package/dist/modules/workspace/bounded-matcher.js +26 -87
- package/dist/modules/workspace/bounded-matcher.js.map +1 -1
- package/dist/modules/workspace/file-readers/doc-extract.service.d.ts +54 -10
- package/dist/modules/workspace/file-readers/doc-extract.service.d.ts.map +1 -1
- package/dist/modules/workspace/file-readers/doc-extract.service.js +69 -17
- 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 +16 -0
- package/dist/modules/workspace/index.d.ts.map +1 -1
- package/dist/modules/workspace/index.js +13 -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/pattern-matcher.contract.d.ts +1 -1
- package/dist/modules/workspace/pattern-matcher.contract.d.ts.map +1 -1
- package/dist/modules/workspace/pattern-matcher.contract.js +1 -1
- package/dist/modules/workspace/pattern-matcher.contract.js.map +1 -1
- 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/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 +100 -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.routes.d.ts +7 -8
- package/dist/modules/workspace/workspace.routes.d.ts.map +1 -1
- package/dist/modules/workspace/workspace.routes.js +4 -6
- package/dist/modules/workspace/workspace.routes.js.map +1 -1
- package/dist/modules/workspace/workspace.service.d.ts +1 -1
- package/dist/modules/workspace/workspace.service.d.ts.map +1 -1
- package/dist/modules/workspace/workspace.service.js +3 -6
- 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 +45 -27
- 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/listener-seam.d.ts +34 -0
- package/dist/shared/listener-seam.d.ts.map +1 -0
- package/dist/shared/listener-seam.js +42 -0
- package/dist/shared/listener-seam.js.map +1 -0
- package/migrations/0019_oauth_token_rotated_at.sql +7 -0
- package/migrations/0020_change_request_body_is_the_description.sql +20 -0
- package/migrations/0021_data_migrations_ledger.sql +11 -0
- package/migrations/meta/0019_snapshot.json +2435 -0
- package/migrations/meta/0020_snapshot.json +2321 -0
- package/migrations/meta/0021_snapshot.json +2353 -0
- package/migrations/meta/_journal.json +21 -0
- package/package.json +3 -3
- package/src/core/__tests__/damaged-document.tools.test.ts +374 -0
- package/src/core/__tests__/public-config.test.ts +5 -0
- package/src/core/create-core-server.ts +32 -3
- package/src/core/create-core-services.ts +49 -5
- package/src/core/lifecycle.ts +10 -0
- package/src/core/public-config.ts +10 -0
- package/src/index.ts +7 -0
- package/src/modules/access/__tests__/access-requests.routes.test.ts +29 -15
- package/src/modules/access/access-control.service.ts +5 -6
- package/src/modules/access/access-declarations.ts +1 -1
- package/src/modules/access/access-mutation.service.ts +10 -4
- 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 +1 -1
- package/src/modules/access/access.routes.ts +9 -11
- 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 +3 -3
- package/src/modules/access/groups-admin.service.ts +3 -4
- package/src/modules/access/groups-edit.ts +2 -2
- package/src/modules/access/index.ts +17 -0
- package/src/modules/access/reference-scan.ts +1 -1
- package/src/modules/access/roles-admin.service.ts +3 -6
- 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 +2 -2
- package/src/modules/access/user-access-removal.service.ts +3 -6
- package/src/modules/access-model/index.ts +29 -0
- 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 +5 -0
- package/src/modules/agent-guide/agent-guide.tools.ts +4 -6
- package/src/modules/agent-guide/agent-guide.ts +1 -1
- package/src/modules/agent-guide/index.ts +1 -1
- package/src/modules/agent-instructions/read-preamble.ts +1 -1
- package/src/modules/audit/agent-audit.service.ts +3 -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.routes.ts +4 -4
- package/src/modules/auth/__tests__/account-deactivation.test.ts +38 -2
- package/src/modules/auth/account-erasure.service.ts +4 -9
- package/src/modules/auth/account-hooks.ts +13 -21
- package/src/modules/auth/account-switch-lock.ts +2 -2
- package/src/modules/auth/account.routes.ts +3 -3
- package/src/modules/auth/auth.service.ts +23 -22
- package/src/modules/auth/index.ts +3 -0
- package/src/modules/auth/oidc-auth-provider.ts +1 -1
- 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/core-schema.ts +59 -37
- package/src/modules/database/index.ts +9 -0
- package/src/modules/database/migrate.ts +79 -3
- package/src/modules/declared-variables/declared-variables.routes.ts +2 -2
- 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/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 +6 -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/index.ts +11 -0
- package/src/modules/kb-fs/locking-filesystem.ts +1 -1
- 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__/bevel-oauth-provider.pg.test.ts +279 -0
- package/src/modules/mcp/__tests__/bevel-oauth-provider.test.ts +190 -15
- 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 +6 -7
- package/src/modules/mcp/mcp.routes.ts +3 -5
- package/src/modules/mcp/mcp.service.ts +30 -13
- package/src/modules/mcp/oauth/bevel-oauth-provider.ts +216 -50
- package/src/modules/mcp/oauth/oauth-consent.routes.ts +1 -1
- 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/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 +2 -0
- 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 +4 -4
- 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 +4 -4
- 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/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 +4 -4
- 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/allowed-tools-check.ts +2 -6
- package/src/modules/skills/index.ts +2 -0
- 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.routes.ts +1 -1
- package/src/modules/skills/skills.service.ts +2 -2
- package/src/modules/skills/skills.tools.ts +5 -9
- 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.service.ts +2 -2
- package/src/modules/tool-auth/index.ts +14 -0
- package/src/modules/tool-auth/tool-auth.middleware.ts +3 -3
- package/src/modules/tool-helpers/__tests__/agent-roles-write.test.ts +2 -2
- package/src/modules/tool-helpers/__tests__/can-write.tools.test.ts +2 -2
- 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 +8 -10
- package/src/modules/tool-helpers/tool-def.ts +7 -3
- package/src/modules/tool-helpers/tool-handler.ts +2 -2
- package/src/modules/tool-helpers/tool.contract.ts +2 -2
- package/src/modules/tool-helpers/validate-token.ts +2 -3
- package/src/modules/tool-manuals/index.ts +6 -0
- 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.routes.ts +5 -5
- package/src/modules/tool-manuals/tool-manuals.service.ts +3 -3
- package/src/modules/tool-manuals/tool-manuals.tools.ts +4 -6
- package/src/modules/tool-registry/__tests__/read-only-hints.test.ts +439 -0
- 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 +14 -8
- 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 +11 -0
- package/src/modules/update-check/update-check.routes.ts +2 -2
- package/src/modules/workflow/__tests__/change-request-hooks.test.ts +62 -0
- 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.routes.open-change-request.test.ts +79 -0
- package/src/modules/workflow/__tests__/workflow.service.delete-branch.test.ts +9 -1
- package/src/modules/workflow/__tests__/workflow.service.facade.test.ts +342 -22
- 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 +43 -57
- 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 +26 -3
- package/src/modules/workflow/agent-tools/workflow.tools.ts +55 -75
- package/src/modules/workflow/change-request-hooks.ts +96 -0
- 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__/pull-request.service.getPrDetail.test.ts +24 -9
- package/src/modules/workflow/git/git.service.ts +5 -8
- package/src/modules/workflow/git/node-git-runner.ts +1 -1
- package/src/modules/workflow/git/pull-request.service.ts +44 -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 +444 -215
- 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 +2 -1
- package/src/modules/workspace/__tests__/rest-tool-arguments.test.ts +2 -1
- 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.service.ensure-remotes-fetched.test.ts +30 -0
- package/src/modules/workspace/__tests__/workspace.tools.agents-file.test.ts +2 -1
- package/src/modules/workspace/__tests__/workspace.tools.branch-errors.test.ts +2 -1
- package/src/modules/workspace/__tests__/workspace.tools.test.ts +30 -4
- 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/bounded-matcher.ts +32 -89
- package/src/modules/workspace/file-readers/README.md +9 -0
- package/src/modules/workspace/file-readers/__tests__/doc-extract.service.test.ts +165 -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 +95 -20
- 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 +17 -0
- package/src/modules/workspace/kb-repository.ts +3 -2
- package/src/modules/workspace/not-found.ts +1 -1
- package/src/modules/workspace/pattern-matcher.contract.ts +1 -1
- package/src/modules/workspace/routine-write-policy.ts +1 -1
- 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 +193 -0
- package/src/modules/workspace/workspace.routes.ts +9 -12
- package/src/modules/workspace/workspace.service.ts +4 -7
- package/src/modules/workspace/workspace.tools.ts +53 -34
- 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/listener-seam.ts +52 -0
- package/src/modules/workflow/__tests__/format-affected-owners.test.ts +0 -85
|
@@ -34,7 +34,6 @@ const TABLES = [
|
|
|
34
34
|
'users',
|
|
35
35
|
'pr_file_approvals',
|
|
36
36
|
'pr_merge_log',
|
|
37
|
-
'pr_comments',
|
|
38
37
|
'change_requests',
|
|
39
38
|
'pending_commits',
|
|
40
39
|
'file_locks',
|
|
@@ -98,8 +97,6 @@ async function plantLegacyRows(q: Query): Promise<void> {
|
|
|
98
97
|
await q(`insert into pr_merge_log (pr_number, triggered_by_email, triggered_by_name, head_sha_at_merge, merge_method, succeeded, error)
|
|
99
98
|
values (1, 'ada@example.com', 'Ada', 'abc', 'merge', true, null),
|
|
100
99
|
(1, 'bo@example.com', 'Bo', 'abc', 'merge', false, 'Bo has no push right')`);
|
|
101
|
-
await q(`insert into pr_comments (pr_number, author_email, author_name, head_sha, body)
|
|
102
|
-
values (1, 'bo@example.com', 'Bo', 'abc', 'Looks right to me')`);
|
|
103
100
|
await q(`insert into pending_commits (workspace_id, branch, path, author_email, author_name, last_error)
|
|
104
101
|
values ('w', 'main', 'a.md', 'ada@example.com', 'Ada', 'rejected for Ada')`);
|
|
105
102
|
await q(`insert into file_locks (workspace_id, branch, path, holder_user_id, holder_name, expires_at)
|
|
@@ -302,10 +299,6 @@ describe.skipIf(!ADMIN_URL)('personal data, on a real Postgres', () => {
|
|
|
302
299
|
expect(log.every((r) => r.error === null || sealed(r.error))).toBe(true);
|
|
303
300
|
expect(log.every((r) => r.triggered_by_email_bidx === keys.index(opened(r.triggered_by_email)))).toBe(true);
|
|
304
301
|
|
|
305
|
-
const [comment] = await q(`select * from pr_comments`);
|
|
306
|
-
expect([comment!.author_email, comment!.author_name, comment!.body].every(sealed)).toBe(true);
|
|
307
|
-
expect(comment!.author_email_bidx).toBe(keys.index('bo@example.com'));
|
|
308
|
-
|
|
309
302
|
const [queued] = await q(`select * from pending_commits`);
|
|
310
303
|
expect([queued!.author_email, queued!.author_name, queued!.last_error].every(sealed)).toBe(true);
|
|
311
304
|
expect(queued!.author_email_bidx).toBe(keys.index('ada@example.com'));
|
|
@@ -347,6 +340,10 @@ describe.skipIf(!ADMIN_URL)('personal data, on a real Postgres', () => {
|
|
|
347
340
|
).rejects.toThrow();
|
|
348
341
|
await expect(q(`insert into users (email, name) values ('x', 'x')`)).rejects.toThrow();
|
|
349
342
|
|
|
343
|
+
// Change-request comments are gone, storage and all (migration 0018).
|
|
344
|
+
const [comments] = await q(`select to_regclass('pr_comments')::text as t`);
|
|
345
|
+
expect(comments!.t).toBeNull();
|
|
346
|
+
|
|
350
347
|
// And the application reads it back as it was written.
|
|
351
348
|
const [read] = await db.select().from(users).where(eq(users.emailBidx, 'ADA@EXAMPLE.COM '));
|
|
352
349
|
expect(read).toMatchObject({ email: 'Ada@Example.com', name: 'Ada', avatarUrl: null });
|
|
@@ -371,7 +368,7 @@ describe.skipIf(!ADMIN_URL)('personal data, on a real Postgres', () => {
|
|
|
371
368
|
const exact = `pii:v1:${'A'.repeat(16)}:${'B'.repeat(22)}==:Q2xlYXI=`;
|
|
372
369
|
const unpadded = `pii:v1:${'A'.repeat(16)}:${'B'.repeat(22)}:Q2xlYXI=`;
|
|
373
370
|
await q(`update users set name = '${exact}' where email = 'bo@example.com'`);
|
|
374
|
-
await q(`update
|
|
371
|
+
await q(`update change_requests set title = '${unpadded}'`);
|
|
375
372
|
await q(`update file_locks set holder_name = '${exact}'`);
|
|
376
373
|
|
|
377
374
|
await runCoreMigrations(db, coreMigrationsDir());
|
|
@@ -379,9 +376,9 @@ describe.skipIf(!ADMIN_URL)('personal data, on a real Postgres', () => {
|
|
|
379
376
|
const [bo] = await q(`select name from users where email_bidx = '${keys.index('bo@example.com')}'`);
|
|
380
377
|
expect(bo!.name).not.toBe(exact);
|
|
381
378
|
expect(opened(bo!.name)).toBe(exact);
|
|
382
|
-
const [
|
|
383
|
-
expect(
|
|
384
|
-
expect(opened(
|
|
379
|
+
const [cr] = await q(`select title from change_requests`);
|
|
380
|
+
expect(cr!.title).not.toBe(unpadded);
|
|
381
|
+
expect(opened(cr!.title)).toBe(unpadded);
|
|
385
382
|
const [lock] = await q(`select holder_name from file_locks`);
|
|
386
383
|
expect(opened(lock!.holder_name)).toBe(exact);
|
|
387
384
|
// And what the application reads back is what was typed.
|
|
@@ -400,17 +397,17 @@ describe.skipIf(!ADMIN_URL)('personal data, on a real Postgres', () => {
|
|
|
400
397
|
async () => {
|
|
401
398
|
const { db, q } = await beforeTheBackfill(await scratchDatabase());
|
|
402
399
|
await plantLegacyRows(q);
|
|
403
|
-
await q(`insert into
|
|
404
|
-
select n, 'ada@example.com', 'Ada', 'abc', '
|
|
400
|
+
await q(`insert into pr_merge_log (pr_number, triggered_by_email, triggered_by_name, head_sha_at_merge, merge_method, succeeded, error)
|
|
401
|
+
select n, 'ada@example.com', 'Ada', 'abc', 'merge', false, 'refusal ' || n from generate_series(2, 1300) n`);
|
|
405
402
|
|
|
406
403
|
await runCoreMigrations(db, coreMigrationsDir());
|
|
407
404
|
|
|
408
|
-
const [left] = await q(`select count(*)::int as n from
|
|
405
|
+
const [left] = await q(`select count(*)::int as n from pr_merge_log where triggered_by_name not like 'pii:v1:%' or triggered_by_email_bidx is null`);
|
|
409
406
|
expect(left!.n).toBe(0);
|
|
410
|
-
const [all] = await q(`select count(*)::int as n from
|
|
411
|
-
expect(all!.n).toBe(
|
|
412
|
-
const [one] = await q(`select
|
|
413
|
-
expect(opened(one!.
|
|
407
|
+
const [all] = await q(`select count(*)::int as n from pr_merge_log`);
|
|
408
|
+
expect(all!.n).toBe(1301);
|
|
409
|
+
const [one] = await q(`select error from pr_merge_log where pr_number = 1300`);
|
|
410
|
+
expect(opened(one!.error)).toBe('refusal 1300');
|
|
414
411
|
},
|
|
415
412
|
TIMEOUT,
|
|
416
413
|
);
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* `externalApiKeys`) from here. `schema.ts` re-exports both, so existing
|
|
11
11
|
* imports keep working unchanged.
|
|
12
12
|
*
|
|
13
|
-
* PII columns (emails, display names, change-request
|
|
13
|
+
* PII columns (emails, display names, change-request text) are
|
|
14
14
|
* `encryptedText` — AES-256-GCM ciphertext in the database, transparently
|
|
15
15
|
* decrypted on read (see `shared/column-crypto.ts`). Because the ciphertext is
|
|
16
16
|
* randomized, equality lookups and unique constraints on those columns go
|
|
@@ -128,40 +128,6 @@ export const prMergeLog = pgTable('pr_merge_log', {
|
|
|
128
128
|
byPr: index('pr_merge_log_by_pr').on(t.prNumber),
|
|
129
129
|
}));
|
|
130
130
|
|
|
131
|
-
/**
|
|
132
|
-
* In-app PR comments. GitHub is authoritative for the diff + PR metadata;
|
|
133
|
-
* Bevel owns the review conversation. Comments never round-trip to GitHub.
|
|
134
|
-
*
|
|
135
|
-
* Shape encodes three comment kinds:
|
|
136
|
-
* • General PR comment — path null, line null
|
|
137
|
-
* • File-level comment — path set, line null
|
|
138
|
-
* • Inline (line-anchored) — path set, line set
|
|
139
|
-
*
|
|
140
|
-
* Threading: replies point at their root via `parentId`. Root comments have
|
|
141
|
-
* `parentId = null`. We use a self-FK-less column (no DB-side constraint) to
|
|
142
|
-
* keep the parent row independently deletable — the service layer tolerates
|
|
143
|
-
* orphan replies rather than cascading deletes and losing discussion context.
|
|
144
|
-
*/
|
|
145
|
-
export const prComments = pgTable('pr_comments', {
|
|
146
|
-
id: uuid('id').defaultRandom().primaryKey(),
|
|
147
|
-
prNumber: integer('pr_number').notNull(),
|
|
148
|
-
authorEmail: encryptedText('author_email').notNull(),
|
|
149
|
-
/** Blind index of `author_email` — GDPR-erasure lookup. */
|
|
150
|
-
authorEmailBidx: blindIndexText('author_email_bidx').notNull(),
|
|
151
|
-
authorName: encryptedText('author_name').notNull(),
|
|
152
|
-
path: text('path'),
|
|
153
|
-
line: integer('line'),
|
|
154
|
-
headSha: text('head_sha').notNull(),
|
|
155
|
-
// Encrypted: review conversation exists only in this DB (never on GitHub).
|
|
156
|
-
body: encryptedText('body').notNull(),
|
|
157
|
-
parentId: uuid('parent_id'),
|
|
158
|
-
createdAt: timestamp('created_at').defaultNow().notNull(),
|
|
159
|
-
updatedAt: timestamp('updated_at'),
|
|
160
|
-
}, (t) => ({
|
|
161
|
-
byPr: index('pr_comments_by_pr').on(t.prNumber),
|
|
162
|
-
byThread: index('pr_comments_by_thread').on(t.prNumber, t.path, t.line),
|
|
163
|
-
}));
|
|
164
|
-
|
|
165
131
|
/**
|
|
166
132
|
* Change requests (the app's own "pull request" model). The app used to lean on
|
|
167
133
|
* GitHub PRs via the `gh` CLI; now a change request is a plain DB row plus git
|
|
@@ -169,7 +135,7 @@ export const prComments = pgTable('pr_comments', {
|
|
|
169
135
|
* hosted) works — the remote only stores commits/branches.
|
|
170
136
|
*
|
|
171
137
|
* `number` is the human-facing id and the join key the sibling tables
|
|
172
|
-
* (`pr_file_approvals`, `
|
|
138
|
+
* (`pr_file_approvals`, `pr_merge_log`) reference in their
|
|
173
139
|
* `pr_number` column — those columns now hold THIS number, not a GitHub PR
|
|
174
140
|
* number. It's a DB-assigned identity so allocation is race-free.
|
|
175
141
|
*
|
|
@@ -187,7 +153,24 @@ export const changeRequests = pgTable('change_requests', {
|
|
|
187
153
|
// is deliberately stored unencrypted (see encryptPii), so a defaulted row
|
|
188
154
|
// and an app-written empty body hold the identical representation.
|
|
189
155
|
title: encryptedText('title').notNull(),
|
|
156
|
+
/**
|
|
157
|
+
* The request's description, and nothing else: exactly what its author (or
|
|
158
|
+
* a later edit) wrote. Hexis keeps none of its own facts in here — who must
|
|
159
|
+
* approve each file is resolved live from the access rules, and an access
|
|
160
|
+
* request's level and note have columns of their own below. Bodies written
|
|
161
|
+
* before this release carried both as prose and hidden markers; the first
|
|
162
|
+
* start on it moves them out (`moveLegacyRequestBodies` in `migrate.ts`).
|
|
163
|
+
*/
|
|
190
164
|
body: encryptedText('body').notNull().default(''),
|
|
165
|
+
/**
|
|
166
|
+
* Set on a request the access-request flow opened: the level the person
|
|
167
|
+
* asked for. Null on every other request. Read back by that flow to say
|
|
168
|
+
* "Requested: Owner" from the request itself, whose row is always readable,
|
|
169
|
+
* rather than from a branch a stale clone may not see yet.
|
|
170
|
+
*/
|
|
171
|
+
accessRequestLevel: text('access_request_level'),
|
|
172
|
+
/** The requester's note, when they wrote one. Encrypted: a person's own words. */
|
|
173
|
+
accessRequestNote: encryptedText('access_request_note'),
|
|
191
174
|
authorEmail: encryptedText('author_email').notNull(), // lowercased at insert
|
|
192
175
|
/** Blind index of `author_email` — GDPR-erasure lookup. */
|
|
193
176
|
authorEmailBidx: blindIndexText('author_email_bidx').notNull(),
|
|
@@ -242,6 +225,10 @@ export const changeRequests = pgTable('change_requests', {
|
|
|
242
225
|
'change_requests_state_check',
|
|
243
226
|
sql`${t.state} IN ('open', 'merged', 'closed')`,
|
|
244
227
|
),
|
|
228
|
+
accessRequestLevelCheck: check(
|
|
229
|
+
'change_requests_access_request_level_check',
|
|
230
|
+
sql`${t.accessRequestLevel} IS NULL OR ${t.accessRequestLevel} IN ('write', 'owner')`,
|
|
231
|
+
),
|
|
245
232
|
}));
|
|
246
233
|
|
|
247
234
|
/**
|
|
@@ -550,7 +537,10 @@ export const agentConnections = pgTable('agent_connections', {
|
|
|
550
537
|
* `api_tokens`: plaintext shown only in the token response, SHA-256 hashes
|
|
551
538
|
* stored, revoked-not-deleted so `last_used_at` keeps its audit value and a
|
|
552
539
|
* revoked token can't be re-issued. One row per pair; refresh rotation
|
|
553
|
-
*
|
|
540
|
+
* retires the old row (`rotated_at`) and inserts a new one. A retired row's
|
|
541
|
+
* access token still verifies until its own expiry, unless the row is then
|
|
542
|
+
* revoked: by a revoke, a sign-out, or its refresh token's one allowed replay
|
|
543
|
+
* within the reuse grace, which revokes it in the statement that admits it.
|
|
554
544
|
*
|
|
555
545
|
* `connection_id` names the {@link agentConnections} row the pair belongs to,
|
|
556
546
|
* so every call made with the token is attributed to that agent and revoking
|
|
@@ -569,6 +559,18 @@ export const oauthTokens = pgTable('oauth_tokens', {
|
|
|
569
559
|
expiresAt: timestamp('expires_at').notNull(),
|
|
570
560
|
refreshExpiresAt: timestamp('refresh_expires_at'),
|
|
571
561
|
revokedAt: timestamp('revoked_at'),
|
|
562
|
+
/**
|
|
563
|
+
* When a refresh of this row's refresh token minted its successor. Set by
|
|
564
|
+
* rotation and never by a revoke, so the two are told apart: a rotated
|
|
565
|
+
* row's access token still verifies until its own expiry, and its refresh
|
|
566
|
+
* token is honoured once more within the reuse grace (see
|
|
567
|
+
* `exchangeRefreshToken`), a replay that revokes the row — access token
|
|
568
|
+
* included — in the statement that admits it; a revoked row does neither.
|
|
569
|
+
* Null on a row whose refresh token has not been used, and on rows from
|
|
570
|
+
* before the column existed, which rotation then marks as it does any
|
|
571
|
+
* other.
|
|
572
|
+
*/
|
|
573
|
+
rotatedAt: timestamp('rotated_at'),
|
|
572
574
|
lastUsedAt: timestamp('last_used_at'),
|
|
573
575
|
createdAt: timestamp('created_at').defaultNow().notNull(),
|
|
574
576
|
}, (t) => ({
|
|
@@ -868,3 +870,23 @@ export const atlassianAccountLinks = pgTable('atlassian_account_links', {
|
|
|
868
870
|
}, (t) => ({
|
|
869
871
|
byUser: index('atlassian_account_links_by_user').on(t.userId),
|
|
870
872
|
}));
|
|
873
|
+
|
|
874
|
+
/**
|
|
875
|
+
* The ledger of the DATA halves of migrations: the rewrites SQL cannot do
|
|
876
|
+
* because they read sealed columns, run by the application right after the
|
|
877
|
+
* SQL history under the same lock (`migrate.ts`). One row per pass, written
|
|
878
|
+
* in the SAME transaction as the rows it rewrote, so a pass is recorded done
|
|
879
|
+
* exactly when its work is — a crash between the SQL history's own ledger
|
|
880
|
+
* and the pass leaves no row here, and the next start runs the pass. Drizzle's
|
|
881
|
+
* `__drizzle_migrations_core` ledger records only the SQL.
|
|
882
|
+
*
|
|
883
|
+
* The PII backfill of migration 0016 predates this table and keeps its own
|
|
884
|
+
* marker (the nullability of the blind-index columns it finalises).
|
|
885
|
+
*/
|
|
886
|
+
export const dataMigrations = pgTable('data_migrations', {
|
|
887
|
+
/** The pass, named after the migration whose data half it is: `0020_change_request_body_is_the_description`. */
|
|
888
|
+
name: text('name').primaryKey(),
|
|
889
|
+
appliedAt: timestamp('applied_at').defaultNow().notNull(),
|
|
890
|
+
/** What the pass did, for an operator reading the ledger: rows moved, say. */
|
|
891
|
+
note: text('note'),
|
|
892
|
+
});
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What the database module offers the other modules. A consumer outside the
|
|
3
|
+
* module imports from here, never from the files: they are the module's own
|
|
4
|
+
* layout and free to move. Export what another module needs; nothing more.
|
|
5
|
+
*/
|
|
6
|
+
export type { Database } from './connection.js';
|
|
7
|
+
export { deploymentSettings } from './core-schema.js';
|
|
8
|
+
export { pgErrorCode } from './pg-error.js';
|
|
9
|
+
export { agentConnections, agentEvents, atlassianAccountLinks, changeRequests, externalApiKeys, fileLocks, githubFacadeCodes, githubFacadeIdentity, oauthAuthCodes, oauthClients, oauthTokens, pendingCommits, pluginJoinRequests, prFileApprovals, prMergeLog, secrets, users } from './schema.js';
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { migrate } from 'drizzle-orm/node-postgres/migrator';
|
|
2
|
-
import { sql } from 'drizzle-orm';
|
|
2
|
+
import { eq, sql } from 'drizzle-orm';
|
|
3
|
+
import { parseLegacyChangeRequestBody } from '@bevel-software/platform-shared';
|
|
3
4
|
import { logger } from '../../shared/logging.js';
|
|
5
|
+
import { changeRequests, dataMigrations } from './core-schema.js';
|
|
4
6
|
|
|
5
7
|
const log = logger('database');
|
|
6
8
|
import { DEFAULT_DB_SCHEMA, dbSchemaOf, piiKeysOf, type Database } from './connection.js';
|
|
@@ -74,11 +76,87 @@ export async function runCoreMigrations(db: Database, folder: string): Promise<v
|
|
|
74
76
|
// Under the same lock, before anything reads or writes a PII column:
|
|
75
77
|
// the data half of migration 0016, which SQL cannot do (see below).
|
|
76
78
|
await runPiiEncryptionBackfill(db);
|
|
79
|
+
// And the data half of 0020, recorded in `data_migrations` by the
|
|
80
|
+
// transaction that does it: a start that crashed between the SQL
|
|
81
|
+
// history's ledger and this pass finds no row and runs it.
|
|
82
|
+
await moveLegacyRequestBodies(db);
|
|
77
83
|
},
|
|
78
84
|
{ tenantKey },
|
|
79
85
|
);
|
|
80
86
|
}
|
|
81
87
|
|
|
88
|
+
/** The `data_migrations` row of the body move: present exactly when the move has been committed. */
|
|
89
|
+
const LEGACY_REQUEST_BODIES_MOVED = '0020_change_request_body_is_the_description';
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* The data half of migration 0020, which makes a request's body nothing but
|
|
93
|
+
* its description. Bodies written before it carried three other things: an
|
|
94
|
+
* `## Affected owners` block `openChangeRequest` appended (a snapshot of the
|
|
95
|
+
* eligible approvers that nothing read back — they are resolved live, per
|
|
96
|
+
* file), an access request's level and note in hidden markers (which the
|
|
97
|
+
* access-request flow parsed back out of the prose), and identity markers
|
|
98
|
+
* from the time a service account opened requests for people. Every body is
|
|
99
|
+
* read once here, under the handle's key, the level and the note are moved
|
|
100
|
+
* onto their own columns, and the prose is written back without the rest.
|
|
101
|
+
*
|
|
102
|
+
* ONE transaction: the rows it rewrites and the `data_migrations` row that
|
|
103
|
+
* records it commit together, or not at all. So the pass runs exactly once —
|
|
104
|
+
* on the start that first finds no ledger row, which is the start that applies
|
|
105
|
+
* 0020 or, if that start died between drizzle's own ledger and this pass, the
|
|
106
|
+
* next one — and never again: a body of the new shape is already clean, and
|
|
107
|
+
* the grammar this reads is written by nothing. A start that finds the row
|
|
108
|
+
* reads nothing.
|
|
109
|
+
*
|
|
110
|
+
* What the transaction does NOT do is fence the old version: its rows are
|
|
111
|
+
* read `FOR UPDATE`, which only makes an old-version edit of an existing row
|
|
112
|
+
* wait for the move, and a request the old version opens after the move has
|
|
113
|
+
* committed is stored in the old shape and never rewritten. That is why the
|
|
114
|
+
* upgrade requires the old version to be stopped before the new one starts
|
|
115
|
+
* (UPGRADING.md, "Stop the old version before the new one starts"), as the
|
|
116
|
+
* personal-data backfill of 0016 already did; this pass adds no mechanism of
|
|
117
|
+
* its own, and a rolling update across this release is not supported.
|
|
118
|
+
*
|
|
119
|
+
* Walked row by row rather than in one UPDATE because the column is sealed:
|
|
120
|
+
* SQL can neither read the marker nor write the cleaned text. Reached only
|
|
121
|
+
* through {@link runCoreMigrations}, and observed through what it leaves:
|
|
122
|
+
* the rows and the ledger.
|
|
123
|
+
*/
|
|
124
|
+
async function moveLegacyRequestBodies(db: Database): Promise<void> {
|
|
125
|
+
await db.transaction(async (tx) => {
|
|
126
|
+
const done = await tx
|
|
127
|
+
.select({ name: dataMigrations.name })
|
|
128
|
+
.from(dataMigrations)
|
|
129
|
+
.where(eq(dataMigrations.name, LEGACY_REQUEST_BODIES_MOVED))
|
|
130
|
+
.limit(1);
|
|
131
|
+
if (done.length > 0) return;
|
|
132
|
+
|
|
133
|
+
const rows = await tx
|
|
134
|
+
.select({ id: changeRequests.id, body: changeRequests.body })
|
|
135
|
+
.from(changeRequests)
|
|
136
|
+
.orderBy(changeRequests.id)
|
|
137
|
+
.for('update');
|
|
138
|
+
let moved = 0;
|
|
139
|
+
for (const row of rows) {
|
|
140
|
+
const legacy = parseLegacyChangeRequestBody(row.body);
|
|
141
|
+
if (!legacy.changed) continue;
|
|
142
|
+
await tx
|
|
143
|
+
.update(changeRequests)
|
|
144
|
+
.set({
|
|
145
|
+
body: legacy.description,
|
|
146
|
+
...(legacy.accessRequestLevel ? { accessRequestLevel: legacy.accessRequestLevel } : {}),
|
|
147
|
+
...(legacy.accessRequestNote ? { accessRequestNote: legacy.accessRequestNote } : {}),
|
|
148
|
+
})
|
|
149
|
+
.where(eq(changeRequests.id, row.id));
|
|
150
|
+
moved += 1;
|
|
151
|
+
}
|
|
152
|
+
await tx.insert(dataMigrations).values({
|
|
153
|
+
name: LEGACY_REQUEST_BODIES_MOVED,
|
|
154
|
+
note: `${moved} of ${rows.length} change-request bodies moved to the description-only shape`,
|
|
155
|
+
});
|
|
156
|
+
log.info(`Change-request bodies: ${moved} of ${rows.length} moved to the description-only shape.`);
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
|
|
82
160
|
/**
|
|
83
161
|
* Apply the ENTERPRISE migration history from `folder`, tracked in
|
|
84
162
|
* `__drizzle_migrations_enterprise`. Run AFTER {@link runCoreMigrations} —
|
|
@@ -220,7 +298,6 @@ const PII_BACKFILL_TABLES: PiiBackfillTable[] = [
|
|
|
220
298
|
{ table: 'users', key: ['id'], encrypted: ['email', 'name', 'avatar_url'], bidx: { source: 'email', column: 'email_bidx' } },
|
|
221
299
|
{ table: 'pr_file_approvals', key: ['id'], encrypted: ['approver_email', 'approver_name'], bidx: { source: 'approver_email', column: 'approver_email_bidx' } },
|
|
222
300
|
{ table: 'pr_merge_log', key: ['id'], encrypted: ['triggered_by_email', 'triggered_by_name', 'error'], bidx: { source: 'triggered_by_email', column: 'triggered_by_email_bidx' } },
|
|
223
|
-
{ table: 'pr_comments', key: ['id'], encrypted: ['author_email', 'author_name', 'body'], bidx: { source: 'author_email', column: 'author_email_bidx' } },
|
|
224
301
|
{ table: 'change_requests', key: ['id'], encrypted: ['author_email', 'author_name', 'title', 'body', 'apply_failure_reason', 'apply_failed_by_name'], bidx: { source: 'author_email', column: 'author_email_bidx' } },
|
|
225
302
|
{ table: 'pending_commits', key: ['id'], encrypted: ['author_email', 'author_name', 'last_error'], bidx: { source: 'author_email', column: 'author_email_bidx' } },
|
|
226
303
|
{ table: 'file_locks', key: ['workspace_id', 'branch', 'path'], encrypted: ['holder_name'] },
|
|
@@ -529,7 +606,6 @@ const PII_FINALIZE_STATEMENTS = [
|
|
|
529
606
|
'CREATE UNIQUE INDEX IF NOT EXISTS "pr_file_approvals_bidx_unq" ON "pr_file_approvals" ("pr_number","path","approver_email_bidx","head_sha")',
|
|
530
607
|
'DROP INDEX IF EXISTS "pr_file_approvals_unq"',
|
|
531
608
|
'ALTER TABLE "pr_merge_log" ALTER COLUMN "triggered_by_email_bidx" SET NOT NULL',
|
|
532
|
-
'ALTER TABLE "pr_comments" ALTER COLUMN "author_email_bidx" SET NOT NULL',
|
|
533
609
|
'ALTER TABLE "change_requests" ALTER COLUMN "author_email_bidx" SET NOT NULL',
|
|
534
610
|
'ALTER TABLE "pending_commits" ALTER COLUMN "author_email_bidx" SET NOT NULL',
|
|
535
611
|
'ALTER TABLE "plugin_join_requests" ALTER COLUMN "requester_email_bidx" SET NOT NULL',
|
|
@@ -3,8 +3,8 @@ import { logger } from '../../shared/logging.js';
|
|
|
3
3
|
|
|
4
4
|
const log = logger('declared-variables');
|
|
5
5
|
import { utcpNamespacedKey } from '../../shared/utcp-namespace.js';
|
|
6
|
-
import type { IToolManualService } from '../tool-manuals/
|
|
7
|
-
import type { ISecretsVaultService } from '../secrets-vault/
|
|
6
|
+
import type { IToolManualService } from '../tool-manuals/index.js';
|
|
7
|
+
import type { ISecretsVaultService } from '../secrets-vault/index.js';
|
|
8
8
|
|
|
9
9
|
type ResolveUserEmail = (userId: string) => Promise<string | undefined>;
|
|
10
10
|
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import express from 'express';
|
|
2
2
|
import type { AuthUser, IWorkflowService } from '@bevel-software/platform-shared';
|
|
3
3
|
import type { IDiffService } from './diff.interface.js';
|
|
4
|
-
import type { AuthService } from '../auth/
|
|
5
|
-
import type { IAccessControl } from '../access/
|
|
6
|
-
import { canReadWorkspacePath, toKbRelative, resolveReadableMap } from '../access-model/
|
|
4
|
+
import type { AuthService } from '../auth/index.js';
|
|
5
|
+
import type { IAccessControl } from '../access/index.js';
|
|
6
|
+
import { canReadWorkspacePath, toKbRelative, resolveReadableMap } from '../access-model/index.js';
|
|
7
7
|
import { WorkflowDomainError, WorkflowValidationError } from '../../shared/domain-errors.js';
|
|
8
8
|
import { domainErrorBody } from '../../shared/http-errors.js';
|
|
9
|
-
import { LockingFilesystem } from '../kb-fs/
|
|
9
|
+
import { LockingFilesystem } from '../kb-fs/index.js';
|
|
10
10
|
import { branchForWorkspaceId } from '../../shared/workspace-id.js';
|
|
11
|
-
import '../auth/
|
|
11
|
+
import '../auth/index.js';
|
|
12
12
|
|
|
13
13
|
function toHttpError(
|
|
14
14
|
err: unknown,
|
|
@@ -2,8 +2,8 @@ import fs from 'node:fs/promises';
|
|
|
2
2
|
import path from 'node:path';
|
|
3
3
|
import type { FileDiffPayload, PendingChange, ReviewSession, ChangeKind } from '@bevel-software/platform-shared';
|
|
4
4
|
import type { IDiffService } from './diff.interface.js';
|
|
5
|
-
import type { WorkspaceService } from '../workspace/
|
|
6
|
-
import type { WorkspaceMutex } from '../kb-fs/
|
|
5
|
+
import type { WorkspaceService } from '../workspace/index.js';
|
|
6
|
+
import type { WorkspaceMutex } from '../kb-fs/index.js';
|
|
7
7
|
import { gitDirOf } from '../kb-fs/index.js';
|
|
8
8
|
import { isAbsence, type ITreeWalker, type TreeWalkOptions } from '../../shared/fs.contract.js';
|
|
9
9
|
import { isDiffable } from './diff.config.js';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What the diff module offers the other modules. A consumer outside the
|
|
3
|
+
* module imports from here, never from the files: they are the module's own
|
|
4
|
+
* layout and free to move. Export what another module needs; nothing more.
|
|
5
|
+
*/
|
|
6
|
+
export type { IDiffService } from './diff.interface.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { and, eq } from 'drizzle-orm';
|
|
2
|
-
import type { Database } from '../database/
|
|
3
|
-
import { atlassianAccountLinks } from '../database/
|
|
2
|
+
import type { Database } from '../database/index.js';
|
|
3
|
+
import { atlassianAccountLinks } from '../database/index.js';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Maps an outside system's account id — today an Atlassian (Forge) account —
|
|
@@ -7,8 +7,8 @@ import {
|
|
|
7
7
|
EmbedTokenError,
|
|
8
8
|
} from './embed.errors.js';
|
|
9
9
|
import { EmbedRefParseError } from './embed-link.js';
|
|
10
|
-
import { rawExtensionOf, rawMimeFor } from '../workspace/
|
|
11
|
-
import '../auth/
|
|
10
|
+
import { rawExtensionOf, rawMimeFor } from '../workspace/index.js';
|
|
11
|
+
import '../auth/index.js'; // Express Request augmentation
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* What `/api/embed/raw` answers as `Content-Type`, by extension — the types a
|
|
@@ -6,7 +6,7 @@ import { suggestionsBranchPrefixFor } from '@bevel-software/platform-shared';
|
|
|
6
6
|
import { logger } from '../../shared/logging.js';
|
|
7
7
|
import { workspaceIdForBranch } from '../../shared/workspace-id.js';
|
|
8
8
|
import type { KbContext } from '../../shared/kb-context.js';
|
|
9
|
-
import type { IAccessControl } from '../access/
|
|
9
|
+
import type { IAccessControl } from '../access/index.js';
|
|
10
10
|
import { changeRequestLink, changeRequestLinkBase } from '../workflow/index.js';
|
|
11
11
|
import type { FileReaderRegistry } from '../workspace/index.js';
|
|
12
12
|
import type { WriteValidator } from '../kb-fs/index.js';
|
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
import type { Router, RequestHandler } from 'express';
|
|
2
|
-
import type { IToolRegistry } from '../tool-registry/
|
|
3
|
-
import { ToolError } from '../tool-helpers/
|
|
4
|
-
import {
|
|
5
|
-
import type { ToolHandlerFactory } from '../tool-helpers/tool-handler.js';
|
|
6
|
-
import type { ToolContext } from '../tool-helpers/tool.contract.js';
|
|
2
|
+
import type { IToolRegistry } from '../tool-registry/index.js';
|
|
3
|
+
import { ToolError, toolDef } from '../tool-helpers/index.js';
|
|
4
|
+
import type { ToolHandlerFactory, ToolContext } from '../tool-helpers/index.js';
|
|
7
5
|
import type { KbContext } from '../../shared/kb-context.js';
|
|
8
|
-
import type { ReadForTool } from '../workspace/
|
|
6
|
+
import type { ReadForTool } from '../workspace/index.js';
|
|
9
7
|
import type { IEmbedService } from './embed.interface.js';
|
|
10
|
-
import { requireExternalSource } from '../tool-auth/
|
|
11
|
-
import { SESSION_ID_INPUT, type ToolDescriptionNotes } from '../workspace/
|
|
12
|
-
import { sessionIdInputOf } from '../workspace/workspace.tools.js';
|
|
8
|
+
import { requireExternalSource } from '../tool-auth/index.js';
|
|
9
|
+
import { SESSION_ID_INPUT, type ToolDescriptionNotes, sessionIdInputOf } from '../workspace/index.js';
|
|
13
10
|
|
|
14
11
|
/** The tool name, in one place: the app manifest keys its view by it. */
|
|
15
12
|
export const OPEN_PAGE_TOOL = 'open_page';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { logger } from '../../shared/logging.js';
|
|
2
|
-
import type { GitHubAppRepository, SettingReader } from '../settings/
|
|
2
|
+
import type { GitHubAppRepository, SettingReader } from '../settings/index.js';
|
|
3
3
|
import {
|
|
4
4
|
GitHubAppClient,
|
|
5
5
|
type GitHubAppCredentials,
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { randomBytes, timingSafeEqual } from 'node:crypto';
|
|
2
2
|
import express from 'express';
|
|
3
|
-
import type { IAdminAccessService } from '../admin/
|
|
3
|
+
import type { IAdminAccessService } from '../admin/index.js';
|
|
4
4
|
import { logger } from '../../shared/logging.js';
|
|
5
|
-
import type { DeploymentSettingsService } from '../settings/
|
|
5
|
+
import type { DeploymentSettingsService } from '../settings/index.js';
|
|
6
6
|
import { GitHubAppClient, GitHubAppError } from './github-app.client.js';
|
|
7
7
|
import { repositoriesAsSetting, type GitHubAppConnection } from './github-app.connection.js';
|
|
8
|
-
import '../auth/
|
|
8
|
+
import '../auth/index.js'; // Express Request augmentation
|
|
9
9
|
|
|
10
10
|
const log = logger('github-app');
|
|
11
11
|
|
|
@@ -7,3 +7,14 @@ export type { WriteValidator } from './locking-filesystem.js';
|
|
|
7
7
|
export { WorkspaceMutex, WorkspaceIdMutex } from './mutex.js';
|
|
8
8
|
export { readRefSha, readRevSha, type RefFileAnswer } from './ref-files.js';
|
|
9
9
|
export { gitDirOf, readGitfile } from './git-dir.js';
|
|
10
|
+
export { normalizeWorkspacePath } from './repo-path.js';
|
|
11
|
+
// Reached by other modules; exported here so they stop importing the files.
|
|
12
|
+
export { BevelIgnoreStack } from './bevel-ignore.js';
|
|
13
|
+
export { assertValidBranchName, assertValidRelativePath, isBranchAuthoredBy, isOwnSuggestionsBranch } from './branch-name.js';
|
|
14
|
+
export { ORIGIN_FETCH_REFSPEC, SAFE_IMPLICIT_FETCH_ARGS, cloneCredentialArgs, cloneCredentialConfigArgs, cloneTrackingConfigArgs, credentialHelperValue } from './clone-config.js';
|
|
15
|
+
export type { FileChangeNotifier } from './file-change-notifier.js';
|
|
16
|
+
export { GitGuardedFilesystem } from './git-guarded-filesystem.js';
|
|
17
|
+
export { LockingFilesystem, MoveLockedError, MoveRacedError } from './locking-filesystem.js';
|
|
18
|
+
export { ReadOnlyFilesystem } from './read-only-filesystem.js';
|
|
19
|
+
export { normalizeRepositoryAddress, sameRepository } from './remote-url.js';
|
|
20
|
+
export { assertInsideRepo, assertKbDirNameFree, assertRepoRootNameFree, assertRepoRootNameFreeArgs, hasControlCharacter, isInsideRepo, normalizePathArgs } from './repo-path.js';
|
|
@@ -55,7 +55,7 @@ import { DestinationTakenError, lstatOrNull, renameNoReplace, takenError } from
|
|
|
55
55
|
import { linkedAncestor } from '../../shared/no-link-below.js';
|
|
56
56
|
import { assertInsideRepo } from './repo-path.js';
|
|
57
57
|
import { GitGuardedFilesystem } from './git-guarded-filesystem.js';
|
|
58
|
-
import type { CreationGrantPlan, ICreatorAccess } from '../access-model/
|
|
58
|
+
import type { CreationGrantPlan, ICreatorAccess } from '../access-model/index.js';
|
|
59
59
|
|
|
60
60
|
/** How many times to retry a contended acquire before giving up. */
|
|
61
61
|
const ACQUIRE_RETRY_ATTEMPTS = 3;
|
|
@@ -2,12 +2,12 @@ import express from 'express';
|
|
|
2
2
|
import { logger } from '../../shared/logging.js';
|
|
3
3
|
|
|
4
4
|
const log = logger('sync');
|
|
5
|
-
import type { IAdminAccessService } from '../admin/
|
|
6
|
-
import { assertValidBranchName } from '../kb-fs/
|
|
5
|
+
import type { IAdminAccessService } from '../admin/index.js';
|
|
6
|
+
import { assertValidBranchName } from '../kb-fs/index.js';
|
|
7
7
|
import type { IKbSyncService, SyncResult } from './kb-sync.interface.js';
|
|
8
8
|
import { parseSyncPayload, type SyncPayloadSource } from './sync-payload.js';
|
|
9
9
|
import { verifySyncCredential } from './sync-auth.js';
|
|
10
|
-
import { AuthBackendError } from '../auth/
|
|
10
|
+
import { AuthBackendError } from '../auth/index.js';
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Remote sync — a git host or a pipeline tells Hexis the repository changed.
|
|
@@ -2,7 +2,7 @@ import type { BranchSyncOutcome } from '@bevel-software/platform-shared';
|
|
|
2
2
|
import { logger } from '../../shared/logging.js';
|
|
3
3
|
|
|
4
4
|
const log = logger('sync');
|
|
5
|
-
import { sanitizeError } from '../workflow/
|
|
5
|
+
import { sanitizeError } from '../workflow/index.js';
|
|
6
6
|
import type {
|
|
7
7
|
IKbSyncService,
|
|
8
8
|
LastSync,
|
|
@@ -5,7 +5,7 @@ const log = logger('marketplace');
|
|
|
5
5
|
import { spawn } from 'node:child_process';
|
|
6
6
|
import type { AuthUser } from '@bevel-software/platform-shared';
|
|
7
7
|
import type { MarketplaceRepoService } from './marketplace-repo.service.js';
|
|
8
|
-
import '../tool-auth/
|
|
8
|
+
import '../tool-auth/index.js'; // Express Request augmentation (req.externalApiKeyId)
|
|
9
9
|
|
|
10
10
|
/** How a bearer string resolves to a user — the connection-key service's shape. */
|
|
11
11
|
export interface MarketplaceKeyResolver {
|
|
@@ -2,7 +2,7 @@ import express from 'express';
|
|
|
2
2
|
import { logger } from '../../../shared/logging.js';
|
|
3
3
|
|
|
4
4
|
const log = logger('github-facade');
|
|
5
|
-
import '../../auth/
|
|
5
|
+
import '../../auth/index.js'; // Express Request.userId / userEmail augmentation
|
|
6
6
|
import {
|
|
7
7
|
GitHubFacadeUnavailableError,
|
|
8
8
|
type GitHubFacadeCredentialsService,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { and, eq, gt, isNull } from 'drizzle-orm';
|
|
2
|
-
import type { Database } from '../../database/
|
|
3
|
-
import { githubFacadeCodes } from '../../database/
|
|
2
|
+
import type { Database } from '../../database/index.js';
|
|
3
|
+
import { githubFacadeCodes } from '../../database/index.js';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* A one-time code the consent page issued, waiting for Anthropic's backend
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { generateKeyPairSync, randomBytes, randomInt } from 'node:crypto';
|
|
2
2
|
import { and, eq } from 'drizzle-orm';
|
|
3
|
-
import type { Database } from '../../database/
|
|
4
|
-
import { githubFacadeIdentity } from '../../database/
|
|
3
|
+
import type { Database } from '../../database/index.js';
|
|
4
|
+
import { githubFacadeIdentity } from '../../database/index.js';
|
|
5
5
|
import type { TokenCrypto } from '../../../shared/token-crypto.js';
|
|
6
6
|
|
|
7
7
|
/**
|
|
@@ -3,8 +3,8 @@ import { logger } from '../../../shared/logging.js';
|
|
|
3
3
|
|
|
4
4
|
const log = logger('github-facade');
|
|
5
5
|
import type { AuthUser } from '@bevel-software/platform-shared';
|
|
6
|
-
import '../../auth/
|
|
7
|
-
import '../../tool-auth/
|
|
6
|
+
import '../../auth/index.js'; // Express Request.userId / userEmail augmentation
|
|
7
|
+
import '../../tool-auth/index.js'; // Express Request augmentation (req.externalApiKeyId)
|
|
8
8
|
import type { MarketplaceRepoService } from '../marketplace-repo.service.js';
|
|
9
9
|
import type { MarketplaceKeyResolver } from '../git-http.routes.js';
|
|
10
10
|
import { GitHubFacadeRequestError, type GitHubFacade } from './github-facade.service.js';
|
|
@@ -2,8 +2,8 @@ import { createHash, randomBytes, timingSafeEqual } from 'node:crypto';
|
|
|
2
2
|
import { logger } from '../../../shared/logging.js';
|
|
3
3
|
|
|
4
4
|
const log = logger('github-facade');
|
|
5
|
-
import type { KeyKindSpec, MintedExternalApiKey } from '../../tool-auth/
|
|
6
|
-
import { signAuthRequest, type McpAuthRequestState } from '../../mcp/
|
|
5
|
+
import type { KeyKindSpec, MintedExternalApiKey } from '../../tool-auth/index.js';
|
|
6
|
+
import { signAuthRequest, type McpAuthRequestState } from '../../mcp/index.js';
|
|
7
7
|
import type { GitHubFacadeCredentialsService } from './github-facade-credentials.service.js';
|
|
8
8
|
import type { GitHubFacadeCodeStore } from './github-facade-codes.store.js';
|
|
9
9
|
import { printable } from '../../../shared/printable.js';
|