@bevel-software/platform-core-backend 0.32.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 +7 -2
- package/dist/core/create-core-services.d.ts.map +1 -1
- package/dist/core/create-core-services.js +22 -6
- 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/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 +20 -5
- package/dist/modules/access-model/index.d.ts.map +1 -1
- package/dist/modules/access-model/index.js +18 -5
- package/dist/modules/access-model/index.js.map +1 -1
- package/dist/modules/access-model/roles-yaml-guard.d.ts +1 -1
- package/dist/modules/access-model/roles-yaml-guard.d.ts.map +1 -1
- package/dist/modules/admin/admin-access.routes.d.ts +1 -1
- package/dist/modules/admin/admin-access.routes.d.ts.map +1 -1
- package/dist/modules/admin/admin-access.routes.js +1 -1
- package/dist/modules/admin/admin-access.routes.js.map +1 -1
- package/dist/modules/admin/admin-access.service.d.ts +2 -2
- package/dist/modules/admin/admin-access.service.d.ts.map +1 -1
- package/dist/modules/admin/index.d.ts +8 -0
- package/dist/modules/admin/index.d.ts.map +1 -0
- package/dist/modules/admin/index.js +2 -0
- package/dist/modules/admin/index.js.map +1 -0
- package/dist/modules/agent-guide/agent-guide.js +1 -1
- package/dist/modules/agent-guide/agent-guide.js.map +1 -1
- package/dist/modules/agent-guide/agent-guide.tools.d.ts +3 -3
- package/dist/modules/agent-guide/agent-guide.tools.d.ts.map +1 -1
- package/dist/modules/agent-guide/agent-guide.tools.js +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-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 +1 -1
- package/dist/modules/auth/auth.service.d.ts.map +1 -1
- package/dist/modules/auth/auth.service.js +3 -3
- 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 +107 -234
- package/dist/modules/database/core-schema.d.ts.map +1 -1
- package/dist/modules/database/core-schema.js +39 -35
- package/dist/modules/database/core-schema.js.map +1 -1
- package/dist/modules/database/index.d.ts +10 -0
- package/dist/modules/database/index.d.ts.map +1 -0
- package/dist/modules/database/index.js +4 -0
- package/dist/modules/database/index.js.map +1 -0
- package/dist/modules/database/migrate.d.ts.map +1 -1
- package/dist/modules/database/migrate.js +78 -3
- package/dist/modules/database/migrate.js.map +1 -1
- package/dist/modules/declared-variables/declared-variables.routes.d.ts +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 +1 -1
- package/dist/modules/mcp/oauth/bevel-oauth-provider.d.ts.map +1 -1
- package/dist/modules/mcp/oauth/bevel-oauth-provider.js +1 -1
- 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 +5 -1
- package/dist/modules/workflow/agent-tools/change-request-summary.d.ts.map +1 -1
- package/dist/modules/workflow/agent-tools/change-request-summary.js +10 -1
- package/dist/modules/workflow/agent-tools/change-request-summary.js.map +1 -1
- package/dist/modules/workflow/agent-tools/workflow.tools.d.ts +7 -5
- package/dist/modules/workflow/agent-tools/workflow.tools.d.ts.map +1 -1
- package/dist/modules/workflow/agent-tools/workflow.tools.js +46 -68
- package/dist/modules/workflow/agent-tools/workflow.tools.js.map +1 -1
- package/dist/modules/workflow/change-request-hooks.d.ts +1 -1
- package/dist/modules/workflow/event-bus.d.ts.map +1 -1
- package/dist/modules/workflow/event-bus.js +3 -1
- package/dist/modules/workflow/event-bus.js.map +1 -1
- package/dist/modules/workflow/events-delivery.d.ts +120 -0
- package/dist/modules/workflow/events-delivery.d.ts.map +1 -0
- package/dist/modules/workflow/events-delivery.js +202 -0
- package/dist/modules/workflow/events-delivery.js.map +1 -0
- package/dist/modules/workflow/events.routes.d.ts +16 -7
- package/dist/modules/workflow/events.routes.d.ts.map +1 -1
- package/dist/modules/workflow/events.routes.js +23 -4
- package/dist/modules/workflow/events.routes.js.map +1 -1
- package/dist/modules/workflow/file-lock.service.d.ts +1 -1
- package/dist/modules/workflow/file-lock.service.d.ts.map +1 -1
- package/dist/modules/workflow/file-lock.service.js +1 -1
- package/dist/modules/workflow/file-lock.service.js.map +1 -1
- package/dist/modules/workflow/git/git.service.d.ts +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 +6 -7
- package/dist/modules/workflow/git/pull-request.service.d.ts.map +1 -1
- package/dist/modules/workflow/git/pull-request.service.js +40 -33
- package/dist/modules/workflow/git/pull-request.service.js.map +1 -1
- package/dist/modules/workflow/index.d.ts +14 -2
- package/dist/modules/workflow/index.d.ts.map +1 -1
- package/dist/modules/workflow/index.js +11 -2
- package/dist/modules/workflow/index.js.map +1 -1
- package/dist/modules/workflow/pending-commits.service.d.ts +1 -1
- package/dist/modules/workflow/pending-commits.service.d.ts.map +1 -1
- package/dist/modules/workflow/pending-commits.service.js +1 -1
- package/dist/modules/workflow/pending-commits.service.js.map +1 -1
- package/dist/modules/workflow/read-on-branch.d.ts +1 -1
- package/dist/modules/workflow/read-on-branch.d.ts.map +1 -1
- package/dist/modules/workflow/recovery-bot.d.ts +1 -1
- package/dist/modules/workflow/recovery-bot.d.ts.map +1 -1
- package/dist/modules/workflow/recovery-bot.js +1 -1
- package/dist/modules/workflow/recovery-bot.js.map +1 -1
- package/dist/modules/workflow/review-workflow/approval-lock.d.ts +1 -1
- package/dist/modules/workflow/review-workflow/approval-lock.d.ts.map +1 -1
- package/dist/modules/workflow/review-workflow/review-workflow.interface.d.ts +4 -20
- package/dist/modules/workflow/review-workflow/review-workflow.interface.d.ts.map +1 -1
- package/dist/modules/workflow/review-workflow/review-workflow.service.d.ts +4 -8
- package/dist/modules/workflow/review-workflow/review-workflow.service.d.ts.map +1 -1
- package/dist/modules/workflow/review-workflow/review-workflow.service.js +3 -138
- package/dist/modules/workflow/review-workflow/review-workflow.service.js.map +1 -1
- package/dist/modules/workflow/workflow.routes.d.ts +5 -5
- package/dist/modules/workflow/workflow.routes.d.ts.map +1 -1
- package/dist/modules/workflow/workflow.routes.js +42 -94
- package/dist/modules/workflow/workflow.routes.js.map +1 -1
- package/dist/modules/workflow/workflow.service.d.ts +40 -50
- package/dist/modules/workflow/workflow.service.d.ts.map +1 -1
- package/dist/modules/workflow/workflow.service.js +218 -154
- package/dist/modules/workflow/workflow.service.js.map +1 -1
- package/dist/modules/workspace/agent-access.gate.d.ts +3 -3
- package/dist/modules/workspace/agent-access.gate.d.ts.map +1 -1
- package/dist/modules/workspace/agent-download.builder.d.ts +1 -1
- package/dist/modules/workspace/agent-download.builder.d.ts.map +1 -1
- package/dist/modules/workspace/agent-download.builder.js +1 -1
- package/dist/modules/workspace/agent-download.builder.js.map +1 -1
- package/dist/modules/workspace/agent-upload.routes.d.ts.map +1 -1
- package/dist/modules/workspace/agent-upload.routes.js +19 -0
- package/dist/modules/workspace/agent-upload.routes.js.map +1 -1
- package/dist/modules/workspace/agent-upload.store.d.ts +11 -0
- package/dist/modules/workspace/agent-upload.store.d.ts.map +1 -1
- package/dist/modules/workspace/agent-upload.store.js +18 -0
- package/dist/modules/workspace/agent-upload.store.js.map +1 -1
- package/dist/modules/workspace/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/migrations/0020_change_request_body_is_the_description.sql +20 -0
- package/migrations/0021_data_migrations_ledger.sql +11 -0
- package/migrations/meta/0020_snapshot.json +2321 -0
- package/migrations/meta/0021_snapshot.json +2353 -0
- package/migrations/meta/_journal.json +14 -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 +32 -5
- package/src/core/lifecycle.ts +10 -0
- package/src/core/public-config.ts +10 -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 +21 -5
- package/src/modules/access-model/roles-yaml-guard.ts +1 -1
- package/src/modules/admin/admin-access.routes.ts +1 -1
- package/src/modules/admin/admin-access.service.ts +2 -2
- package/src/modules/admin/index.ts +7 -0
- package/src/modules/agent-guide/__tests__/agent-guide.test.ts +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/account-erasure.service.ts +4 -9
- package/src/modules/auth/account-switch-lock.ts +2 -2
- package/src/modules/auth/account.routes.ts +3 -3
- package/src/modules/auth/auth.service.ts +4 -4
- 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 +43 -36
- 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__/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 +2 -2
- 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__/event-bus.test.ts +14 -2
- package/src/modules/workflow/__tests__/events-delivery.test.ts +778 -0
- package/src/modules/workflow/__tests__/workflow.service.facade.test.ts +84 -21
- 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 +33 -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 +16 -2
- package/src/modules/workflow/agent-tools/workflow.tools.ts +49 -75
- package/src/modules/workflow/change-request-hooks.ts +1 -1
- package/src/modules/workflow/event-bus.ts +3 -1
- package/src/modules/workflow/events-delivery.ts +278 -0
- package/src/modules/workflow/events.routes.ts +30 -9
- package/src/modules/workflow/file-lock.service.ts +2 -2
- package/src/modules/workflow/git/__tests__/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 +34 -29
- package/src/modules/workflow/index.ts +15 -2
- package/src/modules/workflow/pending-commits.service.ts +2 -2
- package/src/modules/workflow/read-on-branch.ts +1 -1
- package/src/modules/workflow/recovery-bot.ts +2 -2
- package/src/modules/workflow/review-workflow/approval-lock.ts +1 -1
- package/src/modules/workflow/review-workflow/review-workflow.interface.ts +3 -35
- package/src/modules/workflow/review-workflow/review-workflow.service.ts +6 -165
- package/src/modules/workflow/workflow.routes.ts +46 -100
- package/src/modules/workflow/workflow.service.ts +272 -191
- package/src/modules/workspace/__tests__/agent-downloads.test.ts +2 -1
- package/src/modules/workspace/__tests__/agent-uploads.test.ts +87 -1
- package/src/modules/workspace/__tests__/escape-sequences.routes.test.ts +2 -1
- package/src/modules/workspace/__tests__/file-stat-access.test.ts +2 -1
- package/src/modules/workspace/__tests__/git-internals.security.test.ts +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/modules/workflow/__tests__/format-affected-owners.test.ts +0 -85
|
@@ -85,5 +85,15 @@ export function publicConfig(kb: KbContext, { marketplaceGitUrl, mcpUrl }: Publi
|
|
|
85
85
|
* there.
|
|
86
86
|
*/
|
|
87
87
|
catalogRevision: true as const,
|
|
88
|
+
/**
|
|
89
|
+
* This deployment serves `GET /api/agent/tool-hints`, the read-only hint
|
|
90
|
+
* of every platform tool and code-mode meta-tool (see
|
|
91
|
+
* modules/tool-registry/read-only-hints.ts). The local `hexis-mcp` bridge
|
|
92
|
+
* reads it on every `tools/list` only when this is advertised — on the
|
|
93
|
+
* same terms as the two flags above: an older deployment answers the
|
|
94
|
+
* unknown route with 401, and an OAuth bridge reads a 401 as an expired
|
|
95
|
+
* token and refreshes its sign-in on every listing.
|
|
96
|
+
*/
|
|
97
|
+
toolHints: true as const,
|
|
88
98
|
};
|
|
89
99
|
}
|
|
@@ -49,7 +49,8 @@ interface HarnessOpts {
|
|
|
49
49
|
lastClosed?: { number: number; state: 'closed' | 'merged' } | null;
|
|
50
50
|
liveRules?: string | null;
|
|
51
51
|
branchRules?: string | null;
|
|
52
|
-
|
|
52
|
+
/** What `getChangeRequestDetail` answers for every request: the body, and the access request's own facts. */
|
|
53
|
+
detail?: { body?: string; accessRequest?: { level: 'write' | 'owner'; note?: string } };
|
|
53
54
|
}
|
|
54
55
|
|
|
55
56
|
async function makeHarness(opts: HarnessOpts = {}) {
|
|
@@ -62,7 +63,7 @@ async function makeHarness(opts: HarnessOpts = {}) {
|
|
|
62
63
|
lastClosed = null,
|
|
63
64
|
liveRules = '---\n---\nwrite:\n - Ed <ed@x.io>\n',
|
|
64
65
|
branchRules = null,
|
|
65
|
-
|
|
66
|
+
detail = {},
|
|
66
67
|
} = opts;
|
|
67
68
|
|
|
68
69
|
const absent = Object.assign(new Error('ENOENT'), { code: 'ENOENT' });
|
|
@@ -92,7 +93,7 @@ async function makeHarness(opts: HarnessOpts = {}) {
|
|
|
92
93
|
}),
|
|
93
94
|
latestClosedChangeRequest: vi.fn(async () => lastClosed),
|
|
94
95
|
getChangeRequest: vi.fn(async (n: number) => ({ number: n, state: 'open' })),
|
|
95
|
-
getChangeRequestDetail: vi.fn(async () => ({ body:
|
|
96
|
+
getChangeRequestDetail: vi.fn(async () => ({ body: '', ...detail })),
|
|
96
97
|
} as unknown as IWorkflowService;
|
|
97
98
|
|
|
98
99
|
const workspaceService = {
|
|
@@ -345,13 +346,14 @@ describe('GET /workspace/:id/access/request — what the requester is told', ()
|
|
|
345
346
|
it('reports the open request, taking the level off the REQUEST rather than the branch', async () => {
|
|
346
347
|
// The branch is where the proposal lives, but a clone whose refs are
|
|
347
348
|
// seconds stale cannot read a branch cut moments ago. "Requested: Owner"
|
|
348
|
-
// is a promise about a request, so it is answered from the request
|
|
349
|
-
// the branch is deliberately unreadable and the line is still
|
|
349
|
+
// is a promise about a request, so it is answered from the request's own
|
|
350
|
+
// row — here the branch is deliberately unreadable and the line is still
|
|
351
|
+
// right.
|
|
350
352
|
const branch = joinBranchFor(RITA.email, FOLDER);
|
|
351
353
|
const h = await makeHarness({
|
|
352
354
|
openCrs: [{ number: 31, branch, state: 'open' }],
|
|
353
355
|
proposals: null,
|
|
354
|
-
|
|
356
|
+
detail: { body: 'Rita asked for Owner.', accessRequest: { level: 'owner' } },
|
|
355
357
|
});
|
|
356
358
|
server = h.server;
|
|
357
359
|
expect(await (await status(h)).json()).toEqual({ state: 'pending', level: 'owner', number: 31 });
|
|
@@ -361,7 +363,7 @@ describe('GET /workspace/:id/access/request — what the requester is told', ()
|
|
|
361
363
|
const branch = joinBranchFor(RITA.email, FOLDER);
|
|
362
364
|
const h = await makeHarness({
|
|
363
365
|
openCrs: [{ number: 31, branch, state: 'open' }],
|
|
364
|
-
|
|
366
|
+
detail: { body: 'Opened before the level was recorded.' },
|
|
365
367
|
});
|
|
366
368
|
server = h.server;
|
|
367
369
|
expect(await (await status(h)).json()).toMatchObject({ state: 'pending', level: 'write' });
|
|
@@ -410,12 +412,14 @@ describe('the editors\' side', () => {
|
|
|
410
412
|
const listUrl = (base: string) =>
|
|
411
413
|
`${base}/${LIVE_WS}/access/requests?path=${encodeURIComponent(`${KB}/${FOLDER}`)}&kind=folder`;
|
|
412
414
|
|
|
413
|
-
it(
|
|
415
|
+
it("lists the item's open requests for an editor, with the note off the request's own row", async () => {
|
|
414
416
|
const h = await makeHarness({
|
|
415
417
|
writable: [`${FOLDER}/access.md`],
|
|
416
418
|
proposals: [proposalFor('owner')],
|
|
417
|
-
|
|
418
|
-
'x\n\n
|
|
419
|
+
detail: {
|
|
420
|
+
body: 'x\n\nNote from Rita:\n\n> I maintain these pages now',
|
|
421
|
+
accessRequest: { level: 'owner', note: 'I maintain these pages now' },
|
|
422
|
+
},
|
|
419
423
|
});
|
|
420
424
|
server = h.server;
|
|
421
425
|
const body = await (await fetch(listUrl(h.base))).json();
|
|
@@ -565,19 +569,29 @@ describe('a branch left over from an answered request', () => {
|
|
|
565
569
|
// request asking for Owner.
|
|
566
570
|
const h = await makeHarness({
|
|
567
571
|
openCrs: [{ number: 31, branch: stale, state: 'open' }],
|
|
568
|
-
|
|
572
|
+
detail: { accessRequest: { level: 'owner' } },
|
|
569
573
|
});
|
|
570
574
|
server = h.server;
|
|
571
575
|
const res = await post(`${h.base}/${LIVE_WS}/access/request`, { ...folderBody, level: 'write' });
|
|
572
576
|
expect(await res.json()).toEqual({ ok: true, state: 'pending', number: 31, level: 'owner' });
|
|
573
577
|
});
|
|
574
578
|
|
|
575
|
-
it('records the level on the request itself,
|
|
579
|
+
it('records the level and the note on the request itself, never hidden in its description', async () => {
|
|
576
580
|
const h = await makeHarness();
|
|
577
581
|
server = h.server;
|
|
578
|
-
await post(`${h.base}/${LIVE_WS}/access/request`, { ...folderBody, level: 'owner' });
|
|
579
|
-
const { description } = h.opened[0] as { description: string };
|
|
580
|
-
expect(
|
|
582
|
+
await post(`${h.base}/${LIVE_WS}/access/request`, { ...folderBody, level: 'owner', note: 'For the Q3 review' });
|
|
583
|
+
const { description, accessRequest } = h.opened[0] as { description: string; accessRequest: unknown };
|
|
584
|
+
expect(accessRequest).toEqual({ level: 'owner', note: 'For the Q3 review' });
|
|
585
|
+
// The description is prose for the people who read it: no marker, no fence.
|
|
586
|
+
expect(description).not.toMatch(/<!--/);
|
|
587
|
+
expect(description).toContain('For the Q3 review');
|
|
588
|
+
});
|
|
589
|
+
|
|
590
|
+
it('records no note when none was written', async () => {
|
|
591
|
+
const h = await makeHarness();
|
|
592
|
+
server = h.server;
|
|
593
|
+
await post(`${h.base}/${LIVE_WS}/access/request`, { ...folderBody, level: 'write' });
|
|
594
|
+
expect((h.opened[0] as { accessRequest: unknown }).accessRequest).toEqual({ level: 'write' });
|
|
581
595
|
});
|
|
582
596
|
});
|
|
583
597
|
|
|
@@ -7,9 +7,9 @@ const log = logger('access');
|
|
|
7
7
|
import { isAbsence, type ITreeWalker, type WalkListener } from '../../shared/fs.contract.js';
|
|
8
8
|
import { assertOneSpecPerLine, isCommitSha, isGitTimeout, type IGitRunner } from '../../shared/git.contract.js';
|
|
9
9
|
import { hashEmail } from '../../shared/email-identity.js';
|
|
10
|
-
import { NodeGitRunner } from '../workflow/
|
|
10
|
+
import { NodeGitRunner } from '../workflow/index.js';
|
|
11
11
|
import { readRevSha } from '../kb-fs/index.js';
|
|
12
|
-
import type { WorkspaceService } from '../workspace/
|
|
12
|
+
import type { WorkspaceService } from '../workspace/index.js';
|
|
13
13
|
import type {
|
|
14
14
|
IAccessControl,
|
|
15
15
|
AccessDecision,
|
|
@@ -32,14 +32,13 @@ import {
|
|
|
32
32
|
platformRestoreDestination,
|
|
33
33
|
} from '@bevel-software/platform-shared';
|
|
34
34
|
import type { KbContext } from '../../shared/kb-context.js';
|
|
35
|
-
import { AccessConfigError, AccessUnreadableError } from '../access-model/
|
|
36
|
-
import { synthesizePluginPrincipals } from '../access-model/plugin-principals.js';
|
|
35
|
+
import { AccessConfigError, AccessUnreadableError, synthesizePluginPrincipals } from '../access-model/index.js';
|
|
37
36
|
import {
|
|
38
37
|
GROUPS_YAML,
|
|
39
38
|
SYNCED_GROUPS_YAML,
|
|
40
39
|
parseGroupsFile,
|
|
41
40
|
type GroupsIndex,
|
|
42
|
-
} from '../access-model/
|
|
41
|
+
} from '../access-model/index.js';
|
|
43
42
|
import {
|
|
44
43
|
ADMIN_CANONICAL,
|
|
45
44
|
EVERYONE_CANONICAL,
|
|
@@ -61,7 +60,7 @@ import {
|
|
|
61
60
|
type ParsedEntry,
|
|
62
61
|
type RolesIndex,
|
|
63
62
|
type Verb,
|
|
64
|
-
} from '../access-model/
|
|
63
|
+
} from '../access-model/index.js';
|
|
65
64
|
import {
|
|
66
65
|
DIRECTORY_SYNC_BOT_EMAIL,
|
|
67
66
|
DIRECTORY_SYNC_BOT_NAME,
|
|
@@ -35,10 +35,10 @@
|
|
|
35
35
|
|
|
36
36
|
import path from 'node:path';
|
|
37
37
|
|
|
38
|
-
import type { WorkspaceService } from '../workspace/
|
|
38
|
+
import type { WorkspaceService } from '../workspace/index.js';
|
|
39
39
|
import type { IAccessControl } from './access-control.interface.js';
|
|
40
40
|
import { isAbsence } from '../../shared/fs.contract.js';
|
|
41
|
-
import { isTextBytes } from '../workspace/
|
|
41
|
+
import { isTextBytes } from '../workspace/index.js';
|
|
42
42
|
import {
|
|
43
43
|
type Verb,
|
|
44
44
|
ADMIN_CANONICAL,
|
|
@@ -46,7 +46,7 @@ import {
|
|
|
46
46
|
ROLE_TOKEN_PREFIX,
|
|
47
47
|
canonicalRoleName,
|
|
48
48
|
accessFrontmatterExtensionList,
|
|
49
|
-
} from '../access-model/
|
|
49
|
+
} from '../access-model/index.js';
|
|
50
50
|
import {
|
|
51
51
|
spliceRevoke,
|
|
52
52
|
spliceGrant,
|
|
@@ -54,7 +54,7 @@ import {
|
|
|
54
54
|
AccessSpliceError,
|
|
55
55
|
type Principal,
|
|
56
56
|
type TokenMatch,
|
|
57
|
-
} from '../access-model/
|
|
57
|
+
} from '../access-model/index.js';
|
|
58
58
|
import { WorkflowDomainError } from '../../shared/domain-errors.js';
|
|
59
59
|
import {
|
|
60
60
|
canCarryFrontmatter,
|
|
@@ -610,3 +610,9 @@ export class AccessMutationService {
|
|
|
610
610
|
return new AccessMutationError(err instanceof Error ? err.message : 'mutation failed', 500);
|
|
611
611
|
}
|
|
612
612
|
}
|
|
613
|
+
|
|
614
|
+
/**
|
|
615
|
+
* What another module needs of the mutation service: to grant and to revoke.
|
|
616
|
+
* Injected by the composition root, which owns the implementation.
|
|
617
|
+
*/
|
|
618
|
+
export type IAccessMutation = Pick<AccessMutationService, 'grant' | 'revoke'>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { AuthUser, ChangeRequest } from '@bevel-software/platform-shared';
|
|
2
|
-
import type { Verb } from '../access-model/
|
|
2
|
+
import type { Verb } from '../access-model/index.js';
|
|
3
3
|
import { accessMdPathForFolder, type TargetKind } from './access-mutation.service.js';
|
|
4
4
|
|
|
5
5
|
/**
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import express from 'express';
|
|
2
|
-
import type { AuthUser } from '@bevel-software/platform-shared';
|
|
3
|
-
import type { IWorkflowService } from '@bevel-software/platform-shared';
|
|
2
|
+
import type { AuthUser, IWorkflowService } from '@bevel-software/platform-shared';
|
|
4
3
|
import { logger } from '../../shared/logging.js';
|
|
5
4
|
import type { KbContext } from '../../shared/kb-context.js';
|
|
6
5
|
import { branchForWorkspaceId } from '../../shared/workspace-id.js';
|
|
7
|
-
import type { AuthService } from '../auth/
|
|
8
|
-
import type { WorkspaceService } from '../workspace/
|
|
6
|
+
import type { AuthService } from '../auth/index.js';
|
|
7
|
+
import type { WorkspaceService } from '../workspace/index.js';
|
|
9
8
|
import type { IAccessControl } from './access-control.interface.js';
|
|
10
9
|
import {
|
|
11
10
|
AccessMutationError,
|
|
@@ -22,12 +21,8 @@ import {
|
|
|
22
21
|
type AccessRequestTarget,
|
|
23
22
|
type IAccessRequestLifecycle,
|
|
24
23
|
} from './access-requests.contract.js';
|
|
25
|
-
import {
|
|
26
|
-
|
|
27
|
-
extractRequestNote,
|
|
28
|
-
itemNameOf,
|
|
29
|
-
} from './access-requests.service.js';
|
|
30
|
-
import '../auth/auth.middleware.js'; // Express Request.userId augmentation
|
|
24
|
+
import { AccessRequestsService, itemNameOf } from './access-requests.service.js';
|
|
25
|
+
import '../auth/index.js'; // Express Request.userId augmentation
|
|
31
26
|
|
|
32
27
|
const log = logger('access.request');
|
|
33
28
|
|
|
@@ -235,16 +230,16 @@ export function createAccessRequestRoutes(deps: {
|
|
|
235
230
|
}
|
|
236
231
|
const crs = await workflow.listChangeRequests();
|
|
237
232
|
const rows = await lifecycle.list(target.path, target, crs, user);
|
|
238
|
-
// The note
|
|
239
|
-
//
|
|
240
|
-
//
|
|
241
|
-
//
|
|
233
|
+
// The note is the request's own column, read back per request.
|
|
234
|
+
// Bounded by the open requests on ONE item — a handful at most — and a
|
|
235
|
+
// detail that cannot be fetched costs the note, never the line it
|
|
236
|
+
// belongs to.
|
|
242
237
|
const withNotes = await Promise.all(
|
|
243
238
|
rows.map(async (row) => {
|
|
244
239
|
const detail = await workflow
|
|
245
240
|
.getChangeRequestDetail(row.number, { patches: false })
|
|
246
241
|
.catch(() => null);
|
|
247
|
-
const note =
|
|
242
|
+
const note = detail?.accessRequest?.note;
|
|
248
243
|
return note ? { ...row, note } : row;
|
|
249
244
|
}),
|
|
250
245
|
);
|
|
@@ -10,8 +10,8 @@ import {
|
|
|
10
10
|
} from '../../shared/domain-errors.js';
|
|
11
11
|
import { isAbsence } from '../../shared/fs.contract.js';
|
|
12
12
|
import type { KbContext } from '../../shared/kb-context.js';
|
|
13
|
-
import { spliceGrant } from '../access-model/
|
|
14
|
-
import type { WorkspaceService } from '../workspace/
|
|
13
|
+
import { spliceGrant } from '../access-model/index.js';
|
|
14
|
+
import type { WorkspaceService } from '../workspace/index.js';
|
|
15
15
|
import { logger } from '../../shared/logging.js';
|
|
16
16
|
import { AccessMutationError } from './access-mutation.service.js';
|
|
17
17
|
import {
|
|
@@ -50,7 +50,7 @@ export function itemNameOf(repoRelPath: string): string {
|
|
|
50
50
|
/**
|
|
51
51
|
* Neutralise every character a markdown renderer would read as structure.
|
|
52
52
|
*
|
|
53
|
-
* The note is somebody's free text and it
|
|
53
|
+
* The note is somebody's free text and it is quoted in a change request's
|
|
54
54
|
* description, which IS rendered. Escaping it is what makes "plain text" true:
|
|
55
55
|
* without this a note can carry a heading, a link, or an image pointing at a
|
|
56
56
|
* URL that logs whoever opens the request.
|
|
@@ -59,64 +59,6 @@ export function escapeMarkdown(text: string): string {
|
|
|
59
59
|
return text.replace(/[\\`*_{}[\]()#+\-.!|<>~]/g, (c) => `\\${c}`);
|
|
60
60
|
}
|
|
61
61
|
|
|
62
|
-
/** The exact inverse of {@link escapeMarkdown} — only our own backslashes go. */
|
|
63
|
-
function unescapeMarkdown(text: string): string {
|
|
64
|
-
return text.replace(/\\([\\`*_{}[\]()#+\-.!|<>~])/g, '$1');
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* The fence the note sits behind in a request's description.
|
|
69
|
-
*
|
|
70
|
-
* The description is the note's only home — there is no column for it — so the
|
|
71
|
-
* editors' banner has to read it back out of prose. Marking the block means
|
|
72
|
-
* that read is exact rather than a guess at which paragraph was the note, and
|
|
73
|
-
* an HTML comment is invisible in every surface that renders the description.
|
|
74
|
-
*/
|
|
75
|
-
const NOTE_OPEN = '<!--hexis:access-request-note-->';
|
|
76
|
-
const NOTE_CLOSE = '<!--/hexis:access-request-note-->';
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* The level, recorded on the change request itself.
|
|
80
|
-
*
|
|
81
|
-
* The branch says what is proposed, but only while it can be read — and a
|
|
82
|
-
* clone whose refs are a few seconds stale cannot read a branch cut moments
|
|
83
|
-
* ago. The request's own row always can. "Requested: <level>" is a promise
|
|
84
|
-
* about a request, so it is answered from the request, not from a file at a
|
|
85
|
-
* ref that may not have arrived yet.
|
|
86
|
-
*/
|
|
87
|
-
const LEVEL_MARK = /<!--hexis:access-request-level:(write|owner)-->/;
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* The requester's own words, back out of a request's description, or
|
|
91
|
-
* undefined when they wrote none. Unescaped exactly as they were escaped, so
|
|
92
|
-
* what the banner shows is what was typed.
|
|
93
|
-
*/
|
|
94
|
-
/**
|
|
95
|
-
* The level a request asks for, off its own description. Undefined for a
|
|
96
|
-
* request opened before this marker existed — those are the skill route's,
|
|
97
|
-
* and the skill route only ever asked for `write`.
|
|
98
|
-
*/
|
|
99
|
-
export function extractRequestLevel(body: string | null | undefined): RequestLevel | undefined {
|
|
100
|
-
const hit = body ? LEVEL_MARK.exec(body) : null;
|
|
101
|
-
return hit ? (hit[1] as RequestLevel) : undefined;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
export function extractRequestNote(body: string | null | undefined): string | undefined {
|
|
105
|
-
if (!body) return undefined;
|
|
106
|
-
const start = body.indexOf(NOTE_OPEN);
|
|
107
|
-
if (start < 0) return undefined;
|
|
108
|
-
const end = body.indexOf(NOTE_CLOSE, start);
|
|
109
|
-
if (end < 0) return undefined;
|
|
110
|
-
const note = body
|
|
111
|
-
.slice(start + NOTE_OPEN.length, end)
|
|
112
|
-
.split(/\r?\n/)
|
|
113
|
-
.filter((line) => line.startsWith('>'))
|
|
114
|
-
.map((line) => unescapeMarkdown(line.replace(/^>\s?/, '')))
|
|
115
|
-
.join('\n')
|
|
116
|
-
.trim();
|
|
117
|
-
return note || undefined;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
62
|
/**
|
|
121
63
|
* Asking for Can edit or Owner on ONE item, and reading back what came of it.
|
|
122
64
|
*
|
|
@@ -261,11 +203,15 @@ export class AccessRequestsService {
|
|
|
261
203
|
}
|
|
262
204
|
|
|
263
205
|
try {
|
|
206
|
+
// The level and the note are the request's own columns — what the
|
|
207
|
+
// dialog and the editors' banner read back. The description is for the
|
|
208
|
+
// people who read the request, and says the same things in prose.
|
|
264
209
|
const detail = await workflow.openChangeRequest(ws.id, user, {
|
|
265
210
|
sourceBranch: branch,
|
|
266
211
|
targetBranch: kb.defaultBranch,
|
|
267
212
|
title: `Access request: ${itemName}`,
|
|
268
213
|
description: this.describe({ user, target, level, note }),
|
|
214
|
+
accessRequest: { level, ...(note ? { note } : {}) },
|
|
269
215
|
});
|
|
270
216
|
return { number: detail.number, level };
|
|
271
217
|
} catch (err) {
|
|
@@ -331,18 +277,21 @@ export class AccessRequestsService {
|
|
|
331
277
|
}
|
|
332
278
|
|
|
333
279
|
/**
|
|
334
|
-
* The level change request `number` asks for, off
|
|
280
|
+
* The level change request `number` asks for, off the request's own row.
|
|
335
281
|
*
|
|
336
|
-
*
|
|
337
|
-
*
|
|
338
|
-
*
|
|
339
|
-
*
|
|
282
|
+
* The branch says what is proposed, but only while it can be read — and a
|
|
283
|
+
* clone whose refs are a few seconds stale cannot read a branch cut moments
|
|
284
|
+
* ago. The request's row always can. `write` when the row does not say:
|
|
285
|
+
* every request that predates the column came from the skill page's
|
|
286
|
+
* "Request write access", which asks for exactly that. A detail that cannot
|
|
287
|
+
* be fetched falls there too — the line it feeds says which level was asked
|
|
288
|
+
* for, and Can edit is the lesser claim.
|
|
340
289
|
*/
|
|
341
290
|
private async levelOf(number: number): Promise<RequestLevel> {
|
|
342
291
|
const detail = await this.deps.workflow
|
|
343
292
|
.getChangeRequestDetail(number, { patches: false })
|
|
344
293
|
.catch(() => null);
|
|
345
|
-
return
|
|
294
|
+
return detail?.accessRequest?.level ?? 'write';
|
|
346
295
|
}
|
|
347
296
|
|
|
348
297
|
/**
|
|
@@ -390,7 +339,12 @@ export class AccessRequestsService {
|
|
|
390
339
|
}
|
|
391
340
|
}
|
|
392
341
|
|
|
393
|
-
/**
|
|
342
|
+
/**
|
|
343
|
+
* The description an editor reads: who, what, where, the note, and how to
|
|
344
|
+
* answer. Prose only — the level and the note the platform reads back are
|
|
345
|
+
* the request's own columns, so nothing hidden is written here and an edit
|
|
346
|
+
* of the description loses nothing.
|
|
347
|
+
*/
|
|
394
348
|
private describe(input: {
|
|
395
349
|
user: AuthUser;
|
|
396
350
|
target: AccessRequestTarget;
|
|
@@ -400,14 +354,12 @@ export class AccessRequestsService {
|
|
|
400
354
|
const { user, target, level, note } = input;
|
|
401
355
|
const who = escapeMarkdown(user.name || user.email);
|
|
402
356
|
const lines = [
|
|
403
|
-
`<!--hexis:access-request-level:${level}-->`,
|
|
404
357
|
`${who} (${escapeMarkdown(user.email)}) asked for **${LEVEL_LABEL[level]}** on ` +
|
|
405
358
|
`${escapeMarkdown(target.path || 'the workspace')}.`,
|
|
406
359
|
];
|
|
407
360
|
if (note) {
|
|
408
|
-
lines.push('', `Note from ${who}:`, ''
|
|
361
|
+
lines.push('', `Note from ${who}:`, '');
|
|
409
362
|
for (const line of note.split(/\r?\n/)) lines.push(`> ${escapeMarkdown(line)}`);
|
|
410
|
-
lines.push(NOTE_CLOSE);
|
|
411
363
|
}
|
|
412
364
|
lines.push(
|
|
413
365
|
'',
|
|
@@ -418,3 +370,9 @@ export class AccessRequestsService {
|
|
|
418
370
|
return lines.join('\n');
|
|
419
371
|
}
|
|
420
372
|
}
|
|
373
|
+
|
|
374
|
+
/**
|
|
375
|
+
* What another module needs of the access-request service: to open one.
|
|
376
|
+
* Injected by the composition root, which owns the implementation.
|
|
377
|
+
*/
|
|
378
|
+
export type IAccessRequests = Pick<AccessRequestsService, 'open'>;
|
|
@@ -17,15 +17,13 @@ import type {
|
|
|
17
17
|
GrantPrincipal,
|
|
18
18
|
GrantSources,
|
|
19
19
|
} from './access-control.interface.js';
|
|
20
|
-
import type { WorkspaceService } from '../workspace/
|
|
20
|
+
import type { WorkspaceService } from '../workspace/index.js';
|
|
21
21
|
import type { KbContext } from '../../shared/kb-context.js';
|
|
22
22
|
import { branchForWorkspaceId } from '../../shared/workspace-id.js';
|
|
23
|
-
import type { AuthService } from '../auth/
|
|
24
|
-
import type {
|
|
25
|
-
import type { WorkflowService } from '../workflow/workflow.service.js';
|
|
26
|
-
import type { WorkflowEventBus } from '../workflow/event-bus.js';
|
|
23
|
+
import type { AuthService, IAccountSwitchGuard } from '../auth/index.js';
|
|
24
|
+
import type { WorkflowService, WorkflowEventBus } from '../workflow/index.js';
|
|
27
25
|
import { WorkflowDomainError } from '../../shared/domain-errors.js';
|
|
28
|
-
import { AccessDeniedError } from '../access-model/
|
|
26
|
+
import { AccessDeniedError } from '../access-model/index.js';
|
|
29
27
|
import {
|
|
30
28
|
AccessMutationService,
|
|
31
29
|
AccessMutationError,
|
|
@@ -43,17 +41,17 @@ import {
|
|
|
43
41
|
ROLE_TOKEN_PREFIX,
|
|
44
42
|
type PluginTokenVerb,
|
|
45
43
|
type Verb,
|
|
46
|
-
} from '../access-model/
|
|
44
|
+
} from '../access-model/index.js';
|
|
47
45
|
import { listAccessDeclarationsUnder } from './access-declarations.js';
|
|
48
46
|
import { emailsInView, holderPrincipals, labelAccountHolders, resolveAccessView } from './access-view.js';
|
|
49
47
|
import type { AccessView, LabelledAccessView } from './access-view.js';
|
|
50
48
|
import { toHttpError as sharedToHttpError, requireNonEmptyString as sharedRequireNonEmptyString } from './admin-route-helpers.js';
|
|
51
49
|
import { RolesAdminService } from './roles-admin.service.js';
|
|
52
|
-
import type { Principal } from '../access-model/
|
|
53
|
-
import type { Database } from '../database/
|
|
54
|
-
import { users } from '../database/
|
|
50
|
+
import type { Principal } from '../access-model/index.js';
|
|
51
|
+
import type { Database } from '../database/index.js';
|
|
52
|
+
import { users } from '../database/index.js';
|
|
55
53
|
import { canonicalEmail } from '../../shared/email-identity.js';
|
|
56
|
-
import '../auth/
|
|
54
|
+
import '../auth/index.js';
|
|
57
55
|
|
|
58
56
|
/** Verbs the share UI may grant. Verbs are independent — `download` is grantable on its own. */
|
|
59
57
|
const GRANTABLE_VERBS = new Set<string>(['read', 'write', 'owner', 'download']);
|
|
@@ -48,8 +48,9 @@
|
|
|
48
48
|
import path from 'node:path';
|
|
49
49
|
import { logger } from '../../shared/logging.js';
|
|
50
50
|
|
|
51
|
-
import {
|
|
52
|
-
import {
|
|
51
|
+
import { type WriteValidator, LockingFilesystem } from '../kb-fs/index.js';
|
|
52
|
+
import type { WorkflowDomainError } from '../../shared/domain-errors.js';
|
|
53
|
+
import { PushNeedsAgentResolutionError } from '../../shared/domain-errors.js';
|
|
53
54
|
import { isAbsence } from '../../shared/fs.contract.js';
|
|
54
55
|
import type { AuthUser, IWorkspaceService, IWorkflowService } from '@bevel-software/platform-shared';
|
|
55
56
|
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
* really a group; the roles admin surface flags it with a convert action.
|
|
19
19
|
*/
|
|
20
20
|
|
|
21
|
-
import { ADMIN_CANONICAL, canonicalRoleName } from '../access-model/
|
|
21
|
+
import { ADMIN_CANONICAL, canonicalRoleName } from '../access-model/index.js';
|
|
22
22
|
|
|
23
23
|
/** A capability an app surface gates on. Grow this union with the gates. */
|
|
24
24
|
export type Capability =
|
|
@@ -18,12 +18,10 @@ import path from 'node:path';
|
|
|
18
18
|
import { creatableRootDirNames, type KbLayout } from '@bevel-software/platform-shared';
|
|
19
19
|
import type { IFsProbe } from '../../shared/fs.contract.js';
|
|
20
20
|
import type { KbContext } from '../../shared/kb-context.js';
|
|
21
|
-
import type { WorkspaceService } from '../workspace/
|
|
21
|
+
import type { WorkspaceService } from '../workspace/index.js';
|
|
22
22
|
import type { IAccessControl } from './access-control.interface.js';
|
|
23
|
-
import { AccessConfigError, AccessDeniedError } from '../access-model/
|
|
24
|
-
import {
|
|
25
|
-
import { toKbRelative } from '../access-model/kb-read-filter.js';
|
|
26
|
-
import type { ChangeReadVerdict, ChangeTargetKind, IChangeReadGate } from '../access-model/change-gate.js';
|
|
23
|
+
import { AccessConfigError, AccessDeniedError, SYNCED_GROUPS_YAML, toKbRelative } from '../access-model/index.js';
|
|
24
|
+
import type { ChangeReadVerdict, ChangeTargetKind, IChangeReadGate } from '../access-model/index.js';
|
|
27
25
|
|
|
28
26
|
/**
|
|
29
27
|
* Whether `kbRel` (repo-relative) is, or lies inside, a folder directly under
|
|
@@ -34,17 +34,15 @@ const log = logger('creator-access');
|
|
|
34
34
|
|
|
35
35
|
import type { IFsProbe } from '../../shared/fs.contract.js';
|
|
36
36
|
import type { KbContext } from '../../shared/kb-context.js';
|
|
37
|
-
import type { WorkspaceService } from '../workspace/
|
|
37
|
+
import type { WorkspaceService } from '../workspace/index.js';
|
|
38
38
|
import type { IAccessControl } from './access-control.interface.js';
|
|
39
|
-
import { spliceGrant, type Principal } from '../access-model/
|
|
40
|
-
import { isAccessMdPath } from '../access-model/access-grammar.js';
|
|
41
|
-
import { toKbRelative } from '../access-model/kb-read-filter.js';
|
|
39
|
+
import { spliceGrant, type Principal, isAccessMdPath, toKbRelative } from '../access-model/index.js';
|
|
42
40
|
import {
|
|
43
41
|
creatorPrincipal,
|
|
44
42
|
type CreationGrantPlan,
|
|
45
43
|
type Creator,
|
|
46
44
|
type ICreatorAccess,
|
|
47
|
-
} from '../access-model/
|
|
45
|
+
} from '../access-model/index.js';
|
|
48
46
|
|
|
49
47
|
export class CreatorAccessService implements ICreatorAccess {
|
|
50
48
|
constructor(
|
|
@@ -3,8 +3,8 @@ import { logger } from '../../shared/logging.js';
|
|
|
3
3
|
|
|
4
4
|
const log = logger('directory-sync');
|
|
5
5
|
import type { AuthUser } from '@bevel-software/platform-shared';
|
|
6
|
-
import type { Database } from '../database/
|
|
7
|
-
import { users } from '../database/
|
|
6
|
+
import type { Database } from '../database/index.js';
|
|
7
|
+
import { users } from '../database/index.js';
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Synthetic identity for the synced-groups materializer's commits: every
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import express from 'express';
|
|
2
2
|
import type { AuthUser } from '@bevel-software/platform-shared';
|
|
3
|
-
import type { IAdminAccessService } from '../admin/
|
|
4
|
-
import { canonicalRoleName } from '../access-model/
|
|
3
|
+
import type { IAdminAccessService } from '../admin/index.js';
|
|
4
|
+
import { canonicalRoleName } from '../access-model/index.js';
|
|
5
5
|
import { sendError as sharedSendError, requireNonEmptyString as sharedRequireNonEmptyString } from './admin-route-helpers.js';
|
|
6
6
|
import type { GroupsAdminService } from './groups-admin.service.js';
|
|
7
|
-
import '../auth/
|
|
7
|
+
import '../auth/index.js'; // Express Request augmentation
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Admin surface for GROUPS — the "who you are" half of the roles/groups
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
*/
|
|
27
27
|
|
|
28
28
|
import { workspaceIdForBranch } from '../../shared/workspace-id.js';
|
|
29
|
-
import type { WorkflowEventBus } from '../workflow/
|
|
29
|
+
import type { WorkflowEventBus } from '../workflow/index.js';
|
|
30
30
|
import type { AuthUser, IWorkspaceService, IWorkflowService } from '@bevel-software/platform-shared';
|
|
31
31
|
import { WorkflowDomainError } from '../../shared/domain-errors.js';
|
|
32
32
|
import type { IAccessControl } from './access-control.interface.js';
|
|
@@ -34,11 +34,10 @@ import {
|
|
|
34
34
|
GROUP_REF_PREFIX,
|
|
35
35
|
canonicalRoleName,
|
|
36
36
|
hasAccessFrontmatterExtension,
|
|
37
|
-
} from '../access-model/
|
|
37
|
+
} from '../access-model/index.js';
|
|
38
38
|
import { loadActiveGroups, type GroupsHealth } from './access-control.service.js';
|
|
39
|
-
import { GROUPS_YAML, SYNCED_GROUPS_YAML, validateGroupsFile } from '../access-model/
|
|
39
|
+
import { GROUPS_YAML, SYNCED_GROUPS_YAML, validateGroupsFile, makeRolesYamlWriteValidator } from '../access-model/index.js';
|
|
40
40
|
import { parseRolesModel, removeGroupRefsEverywhere, renameGroupRefs, isGroupRefMember } from './roles-edit.js';
|
|
41
|
-
import { makeRolesYamlWriteValidator } from '../access-model/roles-yaml-guard.js';
|
|
42
41
|
import {
|
|
43
42
|
GroupsEditError,
|
|
44
43
|
parseGroupsModel,
|
|
@@ -20,8 +20,8 @@ import {
|
|
|
20
20
|
EMAIL_REGEX,
|
|
21
21
|
GROUP_REF_PREFIX,
|
|
22
22
|
RESERVED_ROLE_NAMES,
|
|
23
|
-
} from '../access-model/
|
|
24
|
-
import { GROUPS_YAML, parseGroupsFile, unsafeNameReason } from '../access-model/
|
|
23
|
+
} from '../access-model/index.js';
|
|
24
|
+
import { GROUPS_YAML, parseGroupsFile, unsafeNameReason } from '../access-model/index.js';
|
|
25
25
|
|
|
26
26
|
/** Bad-input failure when editing groups.yaml. */
|
|
27
27
|
export class GroupsEditError extends Error {
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What the access module offers the other modules: the contract of the access
|
|
3
|
+
* service — who may read, write and own what. The implementation is wired by
|
|
4
|
+
* the composition root.
|
|
5
|
+
*/
|
|
6
|
+
export type { IAccessControl } from './access-control.interface.js';
|
|
7
|
+
// Reached by other modules; exported here so they stop importing the files.
|
|
8
|
+
export type { AccessDecisionSource, AccessTargetKind } from './access-control.interface.js';
|
|
9
|
+
export { accessMdPathForFolder, fileCarriesAccessRules, governingFolderOf } from './access-mutation.service.js';
|
|
10
|
+
export type { AccessMutationService, IAccessMutation, TargetKind } from './access-mutation.service.js';
|
|
11
|
+
export { folderTarget, rulesFileFor } from './access-requests.contract.js';
|
|
12
|
+
export type { AccessRequestTarget, IAccessRequestLifecycle } from './access-requests.contract.js';
|
|
13
|
+
export type { AccessRequestsService, IAccessRequests } from './access-requests.service.js';
|
|
14
|
+
export { accessRoster, resolveAccessView } from './access-view.js';
|
|
15
|
+
export { sendError } from './admin-route-helpers.js';
|
|
16
|
+
export { DIRECTORY_SYNC_BOT_EMAIL } from './directory-sync-bot.js';
|
|
17
|
+
export type { UserAccessRemovalService } from './user-access-removal.service.js';
|