@bevel-software/platform-core-backend 0.33.0 → 0.35.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 +146 -289
- package/agent-guide/conventions.md +23 -25
- package/agent-guide/directory-structure.md +72 -120
- package/agent-guide/drafts-and-change-requests.md +92 -0
- package/agent-guide/for-git-users.md +47 -0
- package/agent-guide/glossary.md +36 -0
- package/agent-guide/how-agents-find-things.md +49 -0
- package/agent-guide/html-views.md +239 -8
- package/agent-guide/new-knowledge-base.md +9 -8
- package/agent-guide/skills.md +67 -42
- package/agent-guide/start-here.md +65 -0
- package/agent-guide/tool-manuals.md +133 -155
- package/agent-guide/tools.md +67 -0
- package/agent-guide/where-a-new-file-goes.md +45 -28
- package/dist/core/catalog-revision.d.ts +12 -1
- package/dist/core/catalog-revision.d.ts.map +1 -1
- package/dist/core/catalog-revision.js +23 -3
- package/dist/core/catalog-revision.js.map +1 -1
- package/dist/core/core-ports.d.ts +41 -0
- package/dist/core/core-ports.d.ts.map +1 -1
- package/dist/core/core-ports.js.map +1 -1
- package/dist/core/create-core-server.d.ts.map +1 -1
- package/dist/core/create-core-server.js +15 -8
- package/dist/core/create-core-server.js.map +1 -1
- package/dist/core/create-core-services.d.ts +22 -5
- package/dist/core/create-core-services.d.ts.map +1 -1
- package/dist/core/create-core-services.js +44 -16
- package/dist/core/create-core-services.js.map +1 -1
- package/dist/core/lifecycle.d.ts +16 -0
- package/dist/core/lifecycle.d.ts.map +1 -1
- package/dist/core/lifecycle.js +12 -2
- package/dist/core/lifecycle.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/modules/access/access-control.interface.d.ts +39 -9
- package/dist/modules/access/access-control.interface.d.ts.map +1 -1
- package/dist/modules/access/access-control.service.d.ts +15 -3
- package/dist/modules/access/access-control.service.d.ts.map +1 -1
- package/dist/modules/access/access-control.service.js +239 -75
- package/dist/modules/access/access-control.service.js.map +1 -1
- package/dist/modules/access/access-mutation.service.d.ts +22 -24
- package/dist/modules/access/access-mutation.service.d.ts.map +1 -1
- package/dist/modules/access/access-mutation.service.js +48 -51
- package/dist/modules/access/access-mutation.service.js.map +1 -1
- package/dist/modules/access/access-view.d.ts.map +1 -1
- package/dist/modules/access/access-view.js +12 -11
- package/dist/modules/access/access-view.js.map +1 -1
- package/dist/modules/access/access.routes.d.ts +3 -0
- package/dist/modules/access/access.routes.d.ts.map +1 -1
- package/dist/modules/access/access.routes.js +58 -33
- package/dist/modules/access/access.routes.js.map +1 -1
- package/dist/modules/access/groups-admin.routes.d.ts.map +1 -1
- package/dist/modules/access/groups-admin.routes.js +4 -2
- package/dist/modules/access/groups-admin.routes.js.map +1 -1
- package/dist/modules/access/groups-admin.service.d.ts +44 -13
- package/dist/modules/access/groups-admin.service.d.ts.map +1 -1
- package/dist/modules/access/groups-admin.service.js +80 -38
- package/dist/modules/access/groups-admin.service.js.map +1 -1
- package/dist/modules/access/groups-edit.d.ts +1 -1
- package/dist/modules/access/groups-edit.d.ts.map +1 -1
- package/dist/modules/access/groups-edit.js +1 -1
- package/dist/modules/access/groups-edit.js.map +1 -1
- package/dist/modules/access/index.d.ts +1 -1
- package/dist/modules/access/index.d.ts.map +1 -1
- package/dist/modules/access/reference-scan.d.ts +116 -24
- package/dist/modules/access/reference-scan.d.ts.map +1 -1
- package/dist/modules/access/reference-scan.js +305 -44
- package/dist/modules/access/reference-scan.js.map +1 -1
- package/dist/modules/access/roles-admin.service.d.ts +17 -8
- package/dist/modules/access/roles-admin.service.d.ts.map +1 -1
- package/dist/modules/access/roles-admin.service.js +32 -23
- package/dist/modules/access/roles-admin.service.js.map +1 -1
- package/dist/modules/access-model/access-grammar.d.ts +35 -10
- package/dist/modules/access-model/access-grammar.d.ts.map +1 -1
- package/dist/modules/access-model/access-grammar.js +60 -20
- package/dist/modules/access-model/access-grammar.js.map +1 -1
- package/dist/modules/access-model/access-splice.d.ts +22 -18
- package/dist/modules/access-model/access-splice.d.ts.map +1 -1
- package/dist/modules/access-model/access-splice.js +20 -14
- package/dist/modules/access-model/access-splice.js.map +1 -1
- package/dist/modules/access-model/group-files.d.ts +1 -0
- package/dist/modules/access-model/group-files.d.ts.map +1 -1
- package/dist/modules/access-model/group-files.js +5 -1
- package/dist/modules/access-model/group-files.js.map +1 -1
- package/dist/modules/agent-guide/agent-guide.d.ts +47 -7
- package/dist/modules/agent-guide/agent-guide.d.ts.map +1 -1
- package/dist/modules/agent-guide/agent-guide.js +103 -13
- package/dist/modules/agent-guide/agent-guide.js.map +1 -1
- package/dist/modules/agent-guide/agent-guide.tools.d.ts +6 -2
- package/dist/modules/agent-guide/agent-guide.tools.d.ts.map +1 -1
- package/dist/modules/agent-guide/agent-guide.tools.js +46 -22
- package/dist/modules/agent-guide/agent-guide.tools.js.map +1 -1
- package/dist/modules/agent-guide/guide-budget.d.ts +48 -0
- package/dist/modules/agent-guide/guide-budget.d.ts.map +1 -0
- package/dist/modules/agent-guide/guide-budget.js +67 -0
- package/dist/modules/agent-guide/guide-budget.js.map +1 -0
- package/dist/modules/agent-guide/index.d.ts +2 -1
- package/dist/modules/agent-guide/index.d.ts.map +1 -1
- package/dist/modules/agent-guide/index.js +2 -1
- package/dist/modules/agent-guide/index.js.map +1 -1
- package/dist/modules/agent-instructions/compose.d.ts +3 -1
- package/dist/modules/agent-instructions/compose.d.ts.map +1 -1
- package/dist/modules/agent-instructions/compose.js +7 -1
- package/dist/modules/agent-instructions/compose.js.map +1 -1
- package/dist/modules/agent-instructions/shared-file-rules.d.ts +5 -1
- package/dist/modules/agent-instructions/shared-file-rules.d.ts.map +1 -1
- package/dist/modules/agent-instructions/shared-file-rules.js +26 -9
- package/dist/modules/agent-instructions/shared-file-rules.js.map +1 -1
- package/dist/modules/agent-scope/agent-scope.contract.d.ts +67 -0
- package/dist/modules/agent-scope/agent-scope.contract.d.ts.map +1 -0
- package/dist/modules/agent-scope/agent-scope.contract.js +27 -0
- package/dist/modules/agent-scope/agent-scope.contract.js.map +1 -0
- package/dist/modules/agent-scope/connection-scope.d.ts +111 -0
- package/dist/modules/agent-scope/connection-scope.d.ts.map +1 -0
- package/dist/modules/agent-scope/connection-scope.js +165 -0
- package/dist/modules/agent-scope/connection-scope.js.map +1 -0
- package/dist/modules/agent-scope/index.d.ts +3 -0
- package/dist/modules/agent-scope/index.d.ts.map +1 -0
- package/dist/modules/agent-scope/index.js +3 -0
- package/dist/modules/agent-scope/index.js.map +1 -0
- package/dist/modules/audit/agent-audit.service.d.ts.map +1 -1
- package/dist/modules/audit/agent-audit.service.js +2 -0
- package/dist/modules/audit/agent-audit.service.js.map +1 -1
- package/dist/modules/audit/audit.contract.d.ts +6 -0
- package/dist/modules/audit/audit.contract.d.ts.map +1 -1
- package/dist/modules/audit/audit.contract.js.map +1 -1
- package/dist/modules/auth/account-admission.d.ts +12 -0
- package/dist/modules/auth/account-admission.d.ts.map +1 -1
- package/dist/modules/auth/account-admission.js +15 -0
- package/dist/modules/auth/account-admission.js.map +1 -1
- package/dist/modules/auth/auth.middleware.d.ts +27 -1
- package/dist/modules/auth/auth.middleware.d.ts.map +1 -1
- package/dist/modules/auth/auth.middleware.js +42 -4
- package/dist/modules/auth/auth.middleware.js.map +1 -1
- package/dist/modules/auth/auth.routes.d.ts +13 -9
- package/dist/modules/auth/auth.routes.d.ts.map +1 -1
- package/dist/modules/auth/auth.routes.js +35 -29
- package/dist/modules/auth/auth.routes.js.map +1 -1
- package/dist/modules/auth/auth.service.d.ts +55 -6
- package/dist/modules/auth/auth.service.d.ts.map +1 -1
- package/dist/modules/auth/auth.service.js +128 -34
- package/dist/modules/auth/auth.service.js.map +1 -1
- package/dist/modules/auth/index.d.ts +1 -1
- package/dist/modules/auth/index.d.ts.map +1 -1
- package/dist/modules/auth/index.js +1 -1
- package/dist/modules/auth/index.js.map +1 -1
- package/dist/modules/auth/oidc-auth-provider.d.ts.map +1 -1
- package/dist/modules/auth/oidc-auth-provider.js +2 -9
- package/dist/modules/auth/oidc-auth-provider.js.map +1 -1
- package/dist/modules/code-mode/code-mode.tool.js +2 -2
- package/dist/modules/code-mode/code-mode.tool.js.map +1 -1
- package/dist/modules/connection-probe/connection-probe.service.d.ts +0 -12
- package/dist/modules/connection-probe/connection-probe.service.d.ts.map +1 -1
- package/dist/modules/connection-probe/connection-probe.service.js +1 -38
- package/dist/modules/connection-probe/connection-probe.service.js.map +1 -1
- package/dist/modules/database/core-schema.d.ts +68 -0
- package/dist/modules/database/core-schema.d.ts.map +1 -1
- package/dist/modules/database/core-schema.js +33 -0
- package/dist/modules/database/core-schema.js.map +1 -1
- package/dist/modules/declared-variables/declared-variables.routes.d.ts +8 -1
- package/dist/modules/declared-variables/declared-variables.routes.d.ts.map +1 -1
- package/dist/modules/declared-variables/declared-variables.routes.js +13 -2
- package/dist/modules/declared-variables/declared-variables.routes.js.map +1 -1
- package/dist/modules/embed/embed.tools.d.ts.map +1 -1
- package/dist/modules/embed/embed.tools.js +5 -0
- package/dist/modules/embed/embed.tools.js.map +1 -1
- package/dist/modules/kb-fs/index.d.ts +2 -0
- package/dist/modules/kb-fs/index.d.ts.map +1 -1
- package/dist/modules/kb-fs/index.js +1 -0
- package/dist/modules/kb-fs/index.js.map +1 -1
- package/dist/modules/kb-fs/locking-filesystem.d.ts.map +1 -1
- package/dist/modules/kb-fs/locking-filesystem.js +7 -1
- package/dist/modules/kb-fs/locking-filesystem.js.map +1 -1
- package/dist/modules/kb-fs/repo-path.d.ts +26 -6
- package/dist/modules/kb-fs/repo-path.d.ts.map +1 -1
- package/dist/modules/kb-fs/repo-path.js +22 -7
- package/dist/modules/kb-fs/repo-path.js.map +1 -1
- package/dist/modules/kb-fs/tmp-ref.d.ts +36 -0
- package/dist/modules/kb-fs/tmp-ref.d.ts.map +1 -0
- package/dist/modules/kb-fs/tmp-ref.js +76 -0
- package/dist/modules/kb-fs/tmp-ref.js.map +1 -0
- package/dist/modules/mcp/mcp-auth.middleware.d.ts +7 -0
- package/dist/modules/mcp/mcp-auth.middleware.d.ts.map +1 -1
- package/dist/modules/mcp/mcp-auth.middleware.js +14 -1
- package/dist/modules/mcp/mcp-auth.middleware.js.map +1 -1
- package/dist/modules/mcp/mcp.routes.d.ts +7 -1
- package/dist/modules/mcp/mcp.routes.d.ts.map +1 -1
- package/dist/modules/mcp/mcp.routes.js +39 -4
- package/dist/modules/mcp/mcp.routes.js.map +1 -1
- package/dist/modules/mcp/mcp.service.d.ts +11 -0
- package/dist/modules/mcp/mcp.service.d.ts.map +1 -1
- package/dist/modules/mcp/mcp.service.js +74 -48
- package/dist/modules/mcp/mcp.service.js.map +1 -1
- package/dist/modules/mcp/oauth/bevel-oauth-provider.d.ts +24 -1
- package/dist/modules/mcp/oauth/bevel-oauth-provider.d.ts.map +1 -1
- package/dist/modules/mcp/oauth/bevel-oauth-provider.js +45 -10
- package/dist/modules/mcp/oauth/bevel-oauth-provider.js.map +1 -1
- package/dist/modules/mcp/oauth/oauth-consent.routes.d.ts +9 -0
- package/dist/modules/mcp/oauth/oauth-consent.routes.d.ts.map +1 -1
- package/dist/modules/mcp/oauth/oauth-consent.routes.js +34 -1
- package/dist/modules/mcp/oauth/oauth-consent.routes.js.map +1 -1
- package/dist/modules/plugins/index.d.ts +1 -1
- package/dist/modules/plugins/index.d.ts.map +1 -1
- package/dist/modules/plugins/index.js.map +1 -1
- package/dist/modules/plugins/plugin-links.d.ts +18 -2
- package/dist/modules/plugins/plugin-links.d.ts.map +1 -1
- package/dist/modules/plugins/plugin-links.js.map +1 -1
- package/dist/modules/plugins/plugins.routes.d.ts +5 -1
- package/dist/modules/plugins/plugins.routes.d.ts.map +1 -1
- package/dist/modules/plugins/plugins.routes.js +32 -5
- package/dist/modules/plugins/plugins.routes.js.map +1 -1
- package/dist/modules/secrets-vault/db-secrets-vault.service.d.ts +11 -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 +159 -24
- package/dist/modules/secrets-vault/db-secrets-vault.service.js.map +1 -1
- package/dist/modules/secrets-vault/index.d.ts +1 -1
- package/dist/modules/secrets-vault/index.d.ts.map +1 -1
- package/dist/modules/secrets-vault/index.js +1 -1
- package/dist/modules/secrets-vault/index.js.map +1 -1
- package/dist/modules/secrets-vault/secrets-vault.contract.d.ts +53 -11
- package/dist/modules/secrets-vault/secrets-vault.contract.d.ts.map +1 -1
- package/dist/modules/secrets-vault/secrets-vault.contract.js +27 -0
- package/dist/modules/secrets-vault/secrets-vault.contract.js.map +1 -1
- package/dist/modules/secrets-vault/secrets-vault.routes.d.ts +9 -0
- package/dist/modules/secrets-vault/secrets-vault.routes.d.ts.map +1 -1
- package/dist/modules/secrets-vault/secrets-vault.routes.js +100 -42
- package/dist/modules/secrets-vault/secrets-vault.routes.js.map +1 -1
- package/dist/modules/settings/oidc-check.d.ts.map +1 -1
- package/dist/modules/settings/oidc-check.js +5 -17
- package/dist/modules/settings/oidc-check.js.map +1 -1
- package/dist/modules/skills/index.d.ts +3 -3
- package/dist/modules/skills/index.d.ts.map +1 -1
- package/dist/modules/skills/index.js +0 -2
- package/dist/modules/skills/index.js.map +1 -1
- package/dist/modules/skills/skills.contract.d.ts +16 -0
- package/dist/modules/skills/skills.contract.d.ts.map +1 -1
- package/dist/modules/skills/skills.service.d.ts.map +1 -1
- package/dist/modules/skills/skills.service.js +6 -1
- package/dist/modules/skills/skills.service.js.map +1 -1
- package/dist/modules/skills/skills.tools.d.ts.map +1 -1
- package/dist/modules/skills/skills.tools.js +25 -13
- package/dist/modules/skills/skills.tools.js.map +1 -1
- package/dist/modules/tool-auth/external-api-key.interface.d.ts +11 -0
- package/dist/modules/tool-auth/external-api-key.interface.d.ts.map +1 -1
- package/dist/modules/tool-auth/external-api-key.interface.js.map +1 -1
- package/dist/modules/tool-auth/external-api-key.service.d.ts +1 -0
- package/dist/modules/tool-auth/external-api-key.service.d.ts.map +1 -1
- package/dist/modules/tool-auth/external-api-key.service.js +4 -1
- package/dist/modules/tool-auth/external-api-key.service.js.map +1 -1
- package/dist/modules/tool-auth/index.d.ts +1 -1
- package/dist/modules/tool-auth/index.d.ts.map +1 -1
- package/dist/modules/tool-auth/internal-token.service.d.ts +9 -0
- package/dist/modules/tool-auth/internal-token.service.d.ts.map +1 -1
- package/dist/modules/tool-auth/internal-token.service.js +1 -0
- package/dist/modules/tool-auth/internal-token.service.js.map +1 -1
- package/dist/modules/tool-auth/tool-auth.middleware.d.ts +27 -3
- package/dist/modules/tool-auth/tool-auth.middleware.d.ts.map +1 -1
- package/dist/modules/tool-auth/tool-auth.middleware.js +32 -6
- package/dist/modules/tool-auth/tool-auth.middleware.js.map +1 -1
- package/dist/modules/tool-helpers/tool-context.d.ts +7 -0
- package/dist/modules/tool-helpers/tool-context.d.ts.map +1 -1
- package/dist/modules/tool-helpers/tool-context.js +3 -0
- package/dist/modules/tool-helpers/tool-context.js.map +1 -1
- package/dist/modules/tool-helpers/tool-def.js +1 -1
- package/dist/modules/tool-helpers/tool-def.js.map +1 -1
- package/dist/modules/tool-helpers/tool-handler.d.ts +15 -0
- package/dist/modules/tool-helpers/tool-handler.d.ts.map +1 -1
- package/dist/modules/tool-helpers/tool-handler.js +19 -0
- package/dist/modules/tool-helpers/tool-handler.js.map +1 -1
- package/dist/modules/tool-helpers/tool.contract.d.ts +10 -0
- package/dist/modules/tool-helpers/tool.contract.d.ts.map +1 -1
- package/dist/modules/tool-helpers/tool.contract.js.map +1 -1
- package/dist/modules/tool-helpers/validate-token.d.ts +3 -1
- 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 +3 -3
- package/dist/modules/tool-manuals/index.d.ts.map +1 -1
- package/dist/modules/tool-manuals/index.js +0 -2
- package/dist/modules/tool-manuals/index.js.map +1 -1
- package/dist/modules/tool-manuals/mcp-json-discovery.d.ts +7 -1
- package/dist/modules/tool-manuals/mcp-json-discovery.d.ts.map +1 -1
- package/dist/modules/tool-manuals/mcp-json-discovery.js +69 -38
- package/dist/modules/tool-manuals/mcp-json-discovery.js.map +1 -1
- package/dist/modules/tool-manuals/tool-manuals.contract.d.ts +46 -6
- package/dist/modules/tool-manuals/tool-manuals.contract.d.ts.map +1 -1
- package/dist/modules/tool-manuals/tool-manuals.routes.d.ts +7 -1
- package/dist/modules/tool-manuals/tool-manuals.routes.d.ts.map +1 -1
- package/dist/modules/tool-manuals/tool-manuals.routes.js +41 -4
- package/dist/modules/tool-manuals/tool-manuals.routes.js.map +1 -1
- package/dist/modules/tool-manuals/tool-manuals.service.d.ts +24 -13
- package/dist/modules/tool-manuals/tool-manuals.service.d.ts.map +1 -1
- package/dist/modules/tool-manuals/tool-manuals.service.js +138 -59
- package/dist/modules/tool-manuals/tool-manuals.service.js.map +1 -1
- package/dist/modules/tool-manuals/tool-manuals.tools.d.ts +8 -2
- package/dist/modules/tool-manuals/tool-manuals.tools.d.ts.map +1 -1
- package/dist/modules/tool-manuals/tool-manuals.tools.js +56 -20
- package/dist/modules/tool-manuals/tool-manuals.tools.js.map +1 -1
- package/dist/modules/tool-registry/manual.routes.d.ts +8 -1
- package/dist/modules/tool-registry/manual.routes.d.ts.map +1 -1
- package/dist/modules/tool-registry/manual.routes.js +27 -7
- package/dist/modules/tool-registry/manual.routes.js.map +1 -1
- package/dist/modules/tool-registry/tool.contract.d.ts +7 -0
- package/dist/modules/tool-registry/tool.contract.d.ts.map +1 -1
- package/dist/modules/tool-registry/tool.contract.js.map +1 -1
- package/dist/modules/workflow/agent-tools/workflow.tools.d.ts.map +1 -1
- package/dist/modules/workflow/agent-tools/workflow.tools.js +36 -27
- package/dist/modules/workflow/agent-tools/workflow.tools.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 +20 -35
- package/dist/modules/workflow/git/git.service.js.map +1 -1
- package/dist/modules/workflow/workflow.service.d.ts +2 -1
- package/dist/modules/workflow/workflow.service.d.ts.map +1 -1
- package/dist/modules/workflow/workflow.service.js +3 -0
- package/dist/modules/workflow/workflow.service.js.map +1 -1
- package/dist/modules/workspace/agent-access.gate.d.ts +1 -1
- package/dist/modules/workspace/agent-access.gate.d.ts.map +1 -1
- package/dist/modules/workspace/agent-access.gate.js +1 -1
- package/dist/modules/workspace/agent-access.gate.js.map +1 -1
- package/dist/modules/workspace/file-readers/doc-extract.service.d.ts +28 -4
- package/dist/modules/workspace/file-readers/doc-extract.service.d.ts.map +1 -1
- package/dist/modules/workspace/file-readers/doc-extract.service.js +61 -40
- package/dist/modules/workspace/file-readers/doc-extract.service.js.map +1 -1
- package/dist/modules/workspace/index.d.ts +8 -0
- package/dist/modules/workspace/index.d.ts.map +1 -1
- package/dist/modules/workspace/index.js +8 -0
- package/dist/modules/workspace/index.js.map +1 -1
- package/dist/modules/workspace/nul-scan.d.ts +19 -0
- package/dist/modules/workspace/nul-scan.d.ts.map +1 -0
- package/dist/modules/workspace/nul-scan.js +55 -0
- package/dist/modules/workspace/nul-scan.js.map +1 -0
- package/dist/modules/workspace/pattern-matcher.contract.d.ts +110 -27
- package/dist/modules/workspace/pattern-matcher.contract.d.ts.map +1 -1
- package/dist/modules/workspace/pattern-matcher.contract.js +30 -13
- package/dist/modules/workspace/pattern-matcher.contract.js.map +1 -1
- package/dist/modules/workspace/ripgrep-search.d.ts +54 -0
- package/dist/modules/workspace/ripgrep-search.d.ts.map +1 -0
- package/dist/modules/workspace/ripgrep-search.js +657 -0
- package/dist/modules/workspace/ripgrep-search.js.map +1 -0
- package/dist/modules/workspace/ripgrep-version.d.ts +15 -0
- package/dist/modules/workspace/ripgrep-version.d.ts.map +1 -0
- package/dist/modules/workspace/ripgrep-version.js +31 -0
- package/dist/modules/workspace/ripgrep-version.js.map +1 -0
- package/dist/modules/workspace/startup/beside-checkout.d.ts +8 -5
- package/dist/modules/workspace/startup/beside-checkout.d.ts.map +1 -1
- package/dist/modules/workspace/startup/beside-checkout.js +14 -5
- package/dist/modules/workspace/startup/beside-checkout.js.map +1 -1
- package/dist/modules/workspace/worker-pool.d.ts +3 -4
- package/dist/modules/workspace/worker-pool.d.ts.map +1 -1
- package/dist/modules/workspace/worker-pool.js.map +1 -1
- package/dist/modules/workspace/workspace-tmp.d.ts +146 -0
- package/dist/modules/workspace/workspace-tmp.d.ts.map +1 -0
- package/dist/modules/workspace/workspace-tmp.js +435 -0
- package/dist/modules/workspace/workspace-tmp.js.map +1 -0
- package/dist/modules/workspace/workspace.routes.d.ts.map +1 -1
- package/dist/modules/workspace/workspace.routes.js +5 -26
- package/dist/modules/workspace/workspace.routes.js.map +1 -1
- package/dist/modules/workspace/workspace.service.d.ts +47 -6
- package/dist/modules/workspace/workspace.service.d.ts.map +1 -1
- package/dist/modules/workspace/workspace.service.js +86 -6
- package/dist/modules/workspace/workspace.service.js.map +1 -1
- package/dist/modules/workspace/workspace.tools.d.ts +3 -2
- package/dist/modules/workspace/workspace.tools.d.ts.map +1 -1
- package/dist/modules/workspace/workspace.tools.js +531 -137
- package/dist/modules/workspace/workspace.tools.js.map +1 -1
- package/dist/shared/oauth-token-error.d.ts +23 -0
- package/dist/shared/oauth-token-error.d.ts.map +1 -0
- package/dist/shared/oauth-token-error.js +47 -0
- package/dist/shared/oauth-token-error.js.map +1 -0
- package/dist/shared/path-order.d.ts +28 -8
- package/dist/shared/path-order.d.ts.map +1 -1
- package/dist/shared/path-order.js +37 -8
- package/dist/shared/path-order.js.map +1 -1
- package/dist/shared/read-capped.d.ts +19 -0
- package/dist/shared/read-capped.d.ts.map +1 -0
- package/dist/shared/read-capped.js +45 -0
- package/dist/shared/read-capped.js.map +1 -0
- package/migrations/0022_session_version.sql +6 -0
- package/migrations/0023_agent_path.sql +3 -0
- package/migrations/meta/0022_snapshot.json +2360 -0
- package/migrations/meta/0023_snapshot.json +2378 -0
- package/migrations/meta/_journal.json +14 -0
- package/package.json +4 -3
- package/src/__tests__/hexis-catalog.ts +144 -0
- package/src/__tests__/pg-scratch.test.ts +69 -0
- package/src/__tests__/pg-scratch.ts +31 -0
- package/src/__tests__/real-disk.ts +21 -0
- package/src/__tests__/slow-ripgrep.ts +65 -0
- package/src/__tests__/tokens.ts +19 -0
- package/src/__tests__/tool-manuals.ts +32 -0
- package/src/__tests__/tool-wiring.ts +25 -0
- package/src/core/__tests__/boot-without-ripgrep.test.ts +34 -0
- package/src/core/__tests__/catalog-revision.test.ts +89 -0
- package/src/core/__tests__/damaged-document.tools.test.ts +2 -2
- package/src/core/__tests__/gated-boot.test.ts +8 -1
- package/src/core/__tests__/lifecycle.test.ts +46 -13
- package/src/core/__tests__/oauth-sign-in-real-file.test.ts +179 -0
- package/src/core/catalog-revision.ts +24 -2
- package/src/core/core-ports.ts +42 -0
- package/src/core/create-core-server.ts +14 -1
- package/src/core/create-core-services.ts +62 -15
- package/src/core/lifecycle.ts +26 -2
- package/src/index.ts +1 -1
- package/src/modules/access/__tests__/access-control.admin-root-floor.test.ts +12 -0
- package/src/modules/access/__tests__/access-control.colliding-name-cases.test.ts +113 -0
- package/src/modules/access/__tests__/access-control.frontmatter-head.test.ts +117 -0
- package/src/modules/access/__tests__/access-control.group-named-admin.test.ts +122 -0
- package/src/modules/access/__tests__/access-control.preview-relocation.test.ts +50 -0
- package/src/modules/access/__tests__/access-declarations.test.ts +19 -0
- package/src/modules/access/__tests__/access-groups.test.ts +55 -22
- package/src/modules/access/__tests__/access-mutation.service.test.ts +85 -59
- package/src/modules/access/__tests__/access-restrict-here.test.ts +7 -5
- package/src/modules/access/__tests__/access.routes.admins.test.ts +1 -0
- package/src/modules/access/__tests__/access.routes.batch.test.ts +2 -0
- package/src/modules/access/__tests__/access.routes.folder-governs.test.ts +2 -0
- package/src/modules/access/__tests__/access.routes.group-grant.test.ts +50 -14
- package/src/modules/access/__tests__/access.routes.overrides.test.ts +2 -1
- package/src/modules/access/__tests__/access.routes.proposal-branch.test.ts +1 -0
- package/src/modules/access/__tests__/access.routes.prospective.test.ts +52 -10
- package/src/modules/access/__tests__/access.routes.revoke.test.ts +18 -13
- package/src/modules/access/__tests__/access.routes.unknown-email.test.ts +2 -0
- package/src/modules/access/__tests__/grant-sources.test.ts +20 -15
- package/src/modules/access/__tests__/groups-admin.routes.test.ts +61 -0
- package/src/modules/access/__tests__/groups-admin.service.test.ts +211 -18
- package/src/modules/access/__tests__/holder-changes.test.ts +127 -0
- package/src/modules/access/__tests__/reference-scan.test.ts +366 -14
- package/src/modules/access/__tests__/roles-admin.security.test.ts +1 -1
- package/src/modules/access/__tests__/roles-admin.service.test.ts +43 -22
- package/src/modules/access/__tests__/roles-capabilities.test.ts +6 -2
- package/src/modules/access/__tests__/roles.routes.test.ts +1 -1
- package/src/modules/access/access-control.interface.ts +43 -10
- package/src/modules/access/access-control.service.ts +250 -72
- package/src/modules/access/access-mutation.service.ts +48 -53
- package/src/modules/access/access-view.ts +12 -10
- package/src/modules/access/access.routes.ts +66 -37
- package/src/modules/access/groups-admin.routes.ts +4 -2
- package/src/modules/access/groups-admin.service.ts +114 -44
- package/src/modules/access/groups-edit.ts +1 -1
- package/src/modules/access/index.ts +1 -1
- package/src/modules/access/reference-scan.ts +319 -46
- package/src/modules/access/roles-admin.service.ts +43 -26
- package/src/modules/access/synced-groups-writer.ts +1 -1
- package/src/modules/access-model/__tests__/access-grammar.test.ts +38 -1
- package/src/modules/access-model/__tests__/access-splice.test.ts +50 -8
- package/src/modules/access-model/access-grammar.ts +65 -20
- package/src/modules/access-model/access-splice.ts +31 -23
- package/src/modules/access-model/group-files.ts +5 -0
- package/src/modules/agent-guide/__tests__/agent-guide.test.ts +110 -25
- package/src/modules/agent-guide/__tests__/agent-guide.tools.test.ts +38 -11
- package/src/modules/agent-guide/__tests__/guide-budget.test.ts +95 -0
- package/src/modules/agent-guide/__tests__/guide-eval.test.ts +182 -0
- package/src/modules/agent-guide/__tests__/guide-matches-code.test.ts +263 -0
- package/src/modules/agent-guide/__tests__/tool-surface.json +514 -0
- package/src/modules/agent-guide/__tests__/tool-surface.test.ts +75 -0
- package/src/modules/agent-guide/agent-guide.tools.ts +51 -22
- package/src/modules/agent-guide/agent-guide.ts +120 -13
- package/src/modules/agent-guide/guide-budget.ts +73 -0
- package/src/modules/agent-guide/index.ts +12 -0
- package/src/modules/agent-instructions/__tests__/shared-file-rules.test.ts +5 -4
- package/src/modules/agent-instructions/compose.ts +7 -1
- package/src/modules/agent-instructions/shared-file-rules.ts +27 -9
- package/src/modules/agent-scope/__tests__/agent-surfaces.connect-as.test.ts +421 -0
- package/src/modules/agent-scope/__tests__/connection-scope.test.ts +46 -0
- package/src/modules/agent-scope/__tests__/in-memory-kb.ts +148 -0
- package/src/modules/agent-scope/agent-scope.contract.ts +83 -0
- package/src/modules/agent-scope/connection-scope.ts +199 -0
- package/src/modules/agent-scope/index.ts +15 -0
- package/src/modules/audit/agent-audit.service.ts +2 -0
- package/src/modules/audit/audit.contract.ts +6 -0
- package/src/modules/auth/__tests__/auth.middleware.test.ts +30 -2
- package/src/modules/auth/__tests__/auth.routes.test.ts +71 -5
- package/src/modules/auth/__tests__/auth.service.test.ts +90 -9
- package/src/modules/auth/__tests__/password-change-sessions.pg.test.ts +269 -0
- package/src/modules/auth/account-admission.ts +19 -0
- package/src/modules/auth/auth.middleware.ts +45 -4
- package/src/modules/auth/auth.routes.ts +46 -29
- package/src/modules/auth/auth.service.ts +135 -34
- package/src/modules/auth/index.ts +2 -0
- package/src/modules/auth/oidc-auth-provider.ts +2 -9
- package/src/modules/code-mode/code-mode.tool.ts +2 -2
- package/src/modules/connection-probe/__tests__/connection-probe.service.test.ts +5 -24
- package/src/modules/connection-probe/connection-probe.service.ts +1 -34
- package/src/modules/database/__tests__/session-version-migration.pg.test.ts +133 -0
- package/src/modules/database/core-schema.ts +33 -0
- package/src/modules/declared-variables/__tests__/declared-variables.route.test.ts +44 -1
- package/src/modules/declared-variables/declared-variables.routes.ts +12 -1
- package/src/modules/embed/__tests__/embed.tools.test.ts +12 -0
- package/src/modules/embed/embed.tools.ts +5 -0
- package/src/modules/kb-fs/__tests__/locking-filesystem.test.ts +25 -0
- package/src/modules/kb-fs/__tests__/repo-path.test.ts +53 -8
- package/src/modules/kb-fs/index.ts +2 -0
- package/src/modules/kb-fs/locking-filesystem.ts +7 -1
- package/src/modules/kb-fs/repo-path.ts +33 -7
- package/src/modules/kb-fs/tmp-ref.ts +81 -0
- package/src/modules/mcp/__tests__/connect-as.pg.test.ts +137 -0
- package/src/modules/mcp/__tests__/mcp-auth.middleware.test.ts +29 -5
- package/src/modules/mcp/__tests__/mcp-routes-harness.ts +8 -0
- package/src/modules/mcp/__tests__/mcp.connect-as.test.ts +195 -0
- package/src/modules/mcp/__tests__/mcp.routes.connect-as.test.ts +192 -0
- package/src/modules/mcp/__tests__/oauth-consent.connect-as.test.ts +146 -0
- package/src/modules/mcp/mcp-auth.middleware.ts +19 -2
- package/src/modules/mcp/mcp.routes.ts +39 -3
- package/src/modules/mcp/mcp.service.ts +112 -52
- package/src/modules/mcp/oauth/bevel-oauth-provider.ts +46 -8
- package/src/modules/mcp/oauth/oauth-consent.routes.ts +41 -1
- package/src/modules/plugins/__tests__/plugins.tools.test.ts +38 -2
- package/src/modules/plugins/index.ts +1 -1
- package/src/modules/plugins/plugin-links.ts +19 -2
- package/src/modules/plugins/plugins.routes.ts +35 -4
- package/src/modules/secrets-vault/__tests__/connect-pending.route.test.ts +113 -0
- package/src/modules/secrets-vault/__tests__/db-secrets-vault.oauth.test.ts +430 -3
- package/src/modules/secrets-vault/__tests__/oauth-live-declaration.route.test.ts +218 -0
- package/src/modules/secrets-vault/__tests__/oauth-return-to.route.test.ts +39 -6
- package/src/modules/secrets-vault/db-secrets-vault.service.ts +170 -27
- package/src/modules/secrets-vault/index.ts +1 -1
- package/src/modules/secrets-vault/secrets-vault.contract.ts +61 -11
- package/src/modules/secrets-vault/secrets-vault.routes.ts +114 -42
- package/src/modules/settings/oidc-check.ts +5 -18
- package/src/modules/skills/__tests__/skills.service.test.ts +34 -0
- package/src/modules/skills/index.ts +7 -2
- package/src/modules/skills/skills.contract.ts +17 -0
- package/src/modules/skills/skills.service.ts +5 -1
- package/src/modules/skills/skills.tools.ts +45 -14
- package/src/modules/tool-auth/__tests__/external-api-key.service.test.ts +4 -0
- package/src/modules/tool-auth/external-api-key.interface.ts +11 -1
- package/src/modules/tool-auth/external-api-key.service.ts +5 -2
- package/src/modules/tool-auth/index.ts +1 -1
- package/src/modules/tool-auth/internal-token.service.ts +10 -0
- package/src/modules/tool-auth/tool-auth.middleware.ts +45 -3
- package/src/modules/tool-helpers/__tests__/agent-roles-write.test.ts +19 -11
- package/src/modules/tool-helpers/__tests__/can-write.tools.test.ts +3 -1
- package/src/modules/tool-helpers/__tests__/route-tool-schemas.catalog.test.ts +38 -0
- package/src/modules/tool-helpers/tool-context.ts +10 -0
- package/src/modules/tool-helpers/tool-def.ts +1 -1
- package/src/modules/tool-helpers/tool-handler.ts +34 -0
- package/src/modules/tool-helpers/tool.contract.ts +10 -0
- package/src/modules/tool-helpers/validate-token.ts +4 -2
- package/src/modules/tool-manuals/__tests__/tool-manuals.archive.route.test.ts +80 -4
- package/src/modules/tool-manuals/__tests__/tool-manuals.mcp-oauth.test.ts +197 -11
- package/src/modules/tool-manuals/__tests__/tool-manuals.service.test.ts +42 -0
- package/src/modules/tool-manuals/__tests__/tool-manuals.tools.test.ts +99 -8
- package/src/modules/tool-manuals/index.ts +6 -2
- package/src/modules/tool-manuals/mcp-json-discovery.ts +73 -34
- package/src/modules/tool-manuals/tool-manuals.contract.ts +40 -6
- package/src/modules/tool-manuals/tool-manuals.routes.ts +40 -3
- package/src/modules/tool-manuals/tool-manuals.service.ts +169 -61
- package/src/modules/tool-manuals/tool-manuals.tools.ts +81 -25
- package/src/modules/tool-registry/__tests__/tool-description-length.test.ts +6 -113
- package/src/modules/tool-registry/manual.routes.ts +26 -5
- package/src/modules/tool-registry/tool.contract.ts +7 -0
- package/src/modules/workflow/__tests__/workflow.service.facade.test.ts +1 -1
- package/src/modules/workflow/__tests__/workflow.service.sync.test.ts +1 -1
- package/src/modules/workflow/agent-tools/__tests__/workflow.tools.test.ts +54 -3
- package/src/modules/workflow/agent-tools/workflow.tools.ts +36 -27
- package/src/modules/workflow/git/__tests__/git.service.list-branches.test.ts +130 -3
- package/src/modules/workflow/git/git.service.ts +29 -48
- package/src/modules/workflow/workflow.service.ts +5 -0
- package/src/modules/workspace/__tests__/git-internals.security.test.ts +2 -2
- package/src/modules/workspace/__tests__/holds-nul.test.ts +66 -0
- package/src/modules/workspace/__tests__/rest-tool-arguments.test.ts +3 -3
- package/src/modules/workspace/__tests__/ripgrep-search.test.ts +570 -0
- package/src/modules/workspace/__tests__/ripgrep-version.test.ts +29 -0
- package/src/modules/workspace/__tests__/workspace-tmp.tools.test.ts +928 -0
- package/src/modules/workspace/__tests__/workspace.routes.read-gate.test.ts +17 -37
- package/src/modules/workspace/__tests__/workspace.service.read-filter.test.ts +20 -8
- package/src/modules/workspace/__tests__/workspace.tools.agents-file.test.ts +10 -12
- package/src/modules/workspace/__tests__/workspace.tools.branch-errors.test.ts +22 -10
- package/src/modules/workspace/__tests__/workspace.tools.test.ts +549 -162
- package/src/modules/workspace/agent-access.gate.ts +1 -1
- package/src/modules/workspace/file-readers/__tests__/doc-extract.service.test.ts +10 -0
- package/src/modules/workspace/file-readers/doc-extract.service.ts +71 -38
- package/src/modules/workspace/index.ts +20 -0
- package/src/modules/workspace/nul-scan.ts +50 -0
- package/src/modules/workspace/pattern-matcher.contract.ts +123 -32
- package/src/modules/workspace/ripgrep-search.ts +715 -0
- package/src/modules/workspace/ripgrep-version.ts +35 -0
- package/src/modules/workspace/startup/__tests__/beside-checkout.test.ts +11 -0
- package/src/modules/workspace/startup/beside-checkout.ts +13 -5
- package/src/modules/workspace/worker-pool.ts +3 -4
- package/src/modules/workspace/workspace-tmp.ts +457 -0
- package/src/modules/workspace/workspace.routes.ts +6 -27
- package/src/modules/workspace/workspace.service.ts +92 -15
- package/src/modules/workspace/workspace.tools.ts +574 -176
- package/src/shared/__tests__/read-capped.test.ts +68 -0
- package/src/shared/oauth-token-error.ts +46 -0
- package/src/shared/path-order.ts +37 -8
- package/src/shared/read-capped.ts +40 -0
- package/starter-packs/engineering/Plugins/engineering-starter/access.md +1 -1
- package/starter-packs/general/Plugins/general-starter/access.md +1 -1
- package/starter-packs/operations/Plugins/operations-starter/access.md +1 -1
- package/starter-packs/sales/Plugins/sales-starter/access.md +1 -1
- package/starter-packs/support/Plugins/support-starter/access.md +1 -1
- package/agent-guide/finding-things.md +0 -7
- package/agent-guide/introduction.md +0 -27
- package/dist/modules/workspace/bounded-matcher.d.ts +0 -73
- package/dist/modules/workspace/bounded-matcher.d.ts.map +0 -1
- package/dist/modules/workspace/bounded-matcher.js +0 -200
- package/dist/modules/workspace/bounded-matcher.js.map +0 -1
- package/src/modules/workspace/__tests__/bounded-matcher.test.ts +0 -213
- package/src/modules/workspace/bounded-matcher.ts +0 -271
|
@@ -1,114 +1,95 @@
|
|
|
1
1
|
## Tool Manuals (`{{pluginsDir}}/<Plugin>/software.bevel.hexis/tools/*.tool`)
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
tool that calls another service takes them flat — so every tool description
|
|
16
|
-
opens with one generated line showing how that tool is called, e.g.
|
|
17
|
-
`Call: KNOWLEDGE_BASE.read_file({ body: { branch: "...", path: "..." } })` or
|
|
18
|
-
`Call: SERPER.search({ query: "..." })`. Copy that line and fill it in, inside
|
|
19
|
-
`call_tool_chain` or directly. Arguments that do not match a tool's input
|
|
20
|
-
schema are refused before anything is sent, and the refusal lists what is
|
|
21
|
-
wrong and gives the tool's whole interface.
|
|
22
|
-
|
|
23
|
-
A `.tool` file is JSON or YAML. Its `type` decides how tools are discovered:
|
|
24
|
-
|
|
25
|
-
- **`inline`** — the tools are embedded in the file (no network round-trip to list them).
|
|
26
|
-
- **`http`** — `url` points to an endpoint that returns a UTCP manual.
|
|
27
|
-
|
|
28
|
-
(`type: mcp` is the LEGACY spelling of an MCP server as a `.tool`. The boot
|
|
29
|
-
migration converts such files into `mcp.json` entries; do not write new ones.)
|
|
30
|
-
|
|
31
|
-
**The tool is the frontmatter.** A `.tool` is one `---` YAML block holding *everything* — its `id`, its access verbs (`read:`/`write:`/`owner:`/`download:`), and its config (`type`/`url`/`variables`/…) — all in the same object. Anything after the closing `---` is free-form notes the parser ignores (like a `SKILL.md` body):
|
|
3
|
+
A `.tool` file is a **tool manual**: it lets agents call a service's HTTP API.
|
|
4
|
+
It lives in a plugin's `software.bevel.hexis/tools/` folder, beside the skills
|
|
5
|
+
that use it. `.tool` files are for `http` and `inline` manuals only: an MCP
|
|
6
|
+
server belongs in the plugin's `mcp.json` (see `directory-structure`). Who may
|
|
7
|
+
use and who manages a tool is in `tools`.
|
|
8
|
+
|
|
9
|
+
**The tool is the frontmatter.** A `.tool` is one `---` YAML block holding
|
|
10
|
+
everything: its `id`, its access verbs (`read`/`write`/`owner`/`download`,
|
|
11
|
+
which override the folder's `access.md` for this file) and its config
|
|
12
|
+
(`type`, `url`, `variables`, …). Anything after the closing `---` is notes the
|
|
13
|
+
parser ignores. A file without the fence is the older form: the whole file is
|
|
14
|
+
the object, so a bare JSON `.tool` still works.
|
|
32
15
|
|
|
33
16
|
```yaml
|
|
34
17
|
---
|
|
35
18
|
id: my_tool
|
|
36
19
|
write:
|
|
37
|
-
- Product Team
|
|
38
|
-
owner:
|
|
39
|
-
- Jane Doe <jane@x.com>
|
|
20
|
+
- group/Product Team
|
|
40
21
|
type: http
|
|
41
22
|
url: https://api.example.com/utcp
|
|
42
23
|
---
|
|
43
24
|
```
|
|
44
25
|
|
|
45
|
-
|
|
26
|
+
`type` decides how the tools are found: **`inline`** embeds them in the file,
|
|
27
|
+
**`http`** points `url` at an endpoint that returns a UTCP manual.
|
|
28
|
+
(`type: mcp` is an older way to declare an MCP server; startup moves such files
|
|
29
|
+
into `mcp.json` where it can. Do not write new ones.)
|
|
46
30
|
|
|
47
|
-
**`id`
|
|
31
|
+
**`id` is the manual's identity**: the namespace its secrets bind to and its
|
|
32
|
+
address. Use lowercase `snake_case`. Without an `id`, the `name`, then the file
|
|
33
|
+
name, is used. It must be unique among all `.tool` files and `mcp.json` server
|
|
34
|
+
names, and names differing only in `-` and `_` collide: the second is refused
|
|
35
|
+
(an `mcp.json` server wins over a `.tool`), not renamed, and `list_tool_setup`
|
|
36
|
+
names it under `invalid`. The same service in two plugins needs two ids
|
|
37
|
+
(`serper_everyone`, `serper_finance`), each with its own secrets and access.
|
|
48
38
|
|
|
49
|
-
|
|
39
|
+
### Secrets: `${VAR}` and `variables`
|
|
50
40
|
|
|
51
|
-
|
|
41
|
+
Wherever a manual needs a credential, write a placeholder such as
|
|
42
|
+
`${API_KEY}`. At call time it is filled from the platform's Secrets Vault,
|
|
43
|
+
under a key made from the manual's id and the variable's name, so a secret
|
|
44
|
+
belongs to one manual. The app's Secrets page shows the exact key; do not spell
|
|
45
|
+
it by hand.
|
|
52
46
|
|
|
53
|
-
|
|
47
|
+
Declare who provides each variable in an optional `variables` list of
|
|
48
|
+
`{ name, scope, label? }`:
|
|
54
49
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
It serves everything the hosted endpoint serves **plus** the local-only tools, because it runs on the machine where they exist. Remote tools still execute on the server, so their shared keys and OAuth sign-ins keep working untouched; a local-only tool's own `${VAR}`s are fetched by `hexis-mcp` from this workspace's Secrets Vault with the connection key, and from the environment of whatever launched the command (your MCP client's config) for any the vault does not hold. Reading the `.tool` and wiring the server into your client by hand still works and is the fallback when the command is unavailable.
|
|
60
|
-
|
|
61
|
-
### Referencing secrets — `${VAR}` and the `variables` block
|
|
62
|
-
|
|
63
|
-
Anywhere a `.tool` needs a credential (an API key, a token) write a placeholder like `${API_KEY}`. At call time it is filled from the **Secrets Vault** under a key derived from the manual's resolved id (the same `id` → `name` → file-name resolution described above) and the variable's name: for a plain id the key is `<id>_<VAR>` — a manual whose id is `weather` referencing `${API_KEY}` reads the secret `weather_API_KEY` — while an id that contains `_` or punctuation is namespaced with every such character turned into `_` and then doubled (`serper_everyone` + `API_KEY` → `serper__everyone_API_KEY`). `list_tool_setup` and the Secrets page show the exact key each manual reads, so read it there rather than spelling it by hand. A secret is therefore bound to exactly one manual; another manual cannot read it.
|
|
50
|
+
- **`scope: admin`** (the default): set once by a writer of the file and shared
|
|
51
|
+
by everyone who uses the tool. Prefer it.
|
|
52
|
+
- **`scope: user`**: each person sets their own.
|
|
64
53
|
|
|
65
|
-
|
|
54
|
+
`name` matches `[A-Za-z0-9_]+`. A `${VAR}` you do not declare is `admin` and
|
|
55
|
+
still shows in the app, so the list is needed only for `user` scope, a label,
|
|
56
|
+
or a sign-in. Values are entered in the app, never in the file. A malformed
|
|
57
|
+
entry makes the whole file fail to load (it then shows under `invalid`).
|
|
66
58
|
|
|
67
|
-
-
|
|
68
|
-
- **`scope: user`** — set by **each end user** for themselves (their own value, never shared).
|
|
59
|
+
### Sign-ins: the `oauth` block
|
|
69
60
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
A `user`-scoped variable can be filled by **signing in** instead of by a typed value: add an `oauth` block and each member authorizes with the provider; the token then rides in whatever header references `${VAR}`. The block carries PUBLIC config only:
|
|
61
|
+
A `user` variable can be filled by signing in instead of typing a value: add
|
|
62
|
+
an `oauth` block, and the token rides in whatever header uses `${VAR}`. The
|
|
63
|
+
block carries public settings only:
|
|
75
64
|
|
|
76
65
|
| field | | |
|
|
77
66
|
|---|---|---|
|
|
78
|
-
| `clientId` | required | the OAuth app's client id
|
|
79
|
-
| `authorizationUrl`, `tokenUrl` |
|
|
80
|
-
| `scopes` | optional | `string[]`, requested at sign-in
|
|
81
|
-
| `pkce` | optional, default
|
|
82
|
-
| `resource` | optional | RFC 8707 resource indicator
|
|
83
|
-
| `authParams` | optional | extra
|
|
84
|
-
|
|
85
|
-
**Never** a `clientSecret
|
|
86
|
-
|
|
87
|
-
For an `mcp.json` server the declaration
|
|
67
|
+
| `clientId` | required | the OAuth app's client id; its owner registers the app with the redirect URI `<backend>/api/secrets/oauth/callback` |
|
|
68
|
+
| `authorizationUrl`, `tokenUrl` | required in a `.tool`; optional on an `mcp.json` server | an MCP server's are discovered from its own OAuth metadata, so give them only when that discovery fails. Both or neither |
|
|
69
|
+
| `scopes` | optional | `string[]`, requested at sign-in |
|
|
70
|
+
| `pkce` | optional, default on | only `false` means anything |
|
|
71
|
+
| `resource` | optional | the RFC 8707 resource indicator; discovered on an `mcp.json` server |
|
|
72
|
+
| `authParams` | optional | extra fixed parameters, such as Google's `access_type: offline` |
|
|
73
|
+
|
|
74
|
+
**Never** a `clientSecret`: a `.tool` with one fails to load, and an `mcp.json`
|
|
75
|
+
server whose entry has one is dropped. The secret is pasted once on the tool's
|
|
76
|
+
page. For an `mcp.json` server, the declaration goes in `plugin.json`, beside
|
|
77
|
+
the header that uses it:
|
|
88
78
|
|
|
89
79
|
```json
|
|
90
|
-
{
|
|
91
|
-
"
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
"headers": { "Authorization": "Bearer ${HUBSPOT_TOKEN}" },
|
|
96
|
-
"variables": [
|
|
97
|
-
{ "name": "HUBSPOT_TOKEN", "scope": "user", "label": "HubSpot sign-in",
|
|
98
|
-
"oauth": { "clientId": "<the app's client id>" } }
|
|
99
|
-
]
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
}
|
|
80
|
+
{ "extensions": { "software.bevel.hexis": { "mcpServers": { "hubspot": {
|
|
81
|
+
"headers": { "Authorization": "Bearer ${HUBSPOT_TOKEN}" },
|
|
82
|
+
"variables": [{ "name": "HUBSPOT_TOKEN", "scope": "user", "label": "HubSpot sign-in",
|
|
83
|
+
"oauth": { "clientId": "<the app's client id>" } }]
|
|
84
|
+
} } } } }
|
|
105
85
|
```
|
|
106
86
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
### Calling a Google API as a service account: `auth_type: google_service_account`
|
|
87
|
+
### Google APIs as a service account
|
|
110
88
|
|
|
111
|
-
Some Google APIs (
|
|
89
|
+
Some Google APIs (Ads, Tag Manager, BigQuery, Sheets) are called as one shared
|
|
90
|
+
service account, with a short-lived token minted from its key. Name the key in
|
|
91
|
+
an `auth` block on an inline tool's `tool_call_template` (with
|
|
92
|
+
`call_template_type: http`), and the platform mints, caches and sends the token:
|
|
112
93
|
|
|
113
94
|
```yaml
|
|
114
95
|
---
|
|
@@ -134,94 +115,91 @@ tools:
|
|
|
134
115
|
---
|
|
135
116
|
```
|
|
136
117
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
The token always comes from Google's own token endpoint; a `token_uri` inside the key is ignored. Give the service account access in the Google product itself (for example add its email as a user of the Google Ads account or the Tag Manager container), or that product refuses every call with an error of its own. When Google refuses the key itself (a revoked key, a scope the account may not have, a subject without delegation), the error names the service account and Google's reason, never the key.
|
|
144
|
-
|
|
145
|
-
The block works in one place: an inline tool's `tool_call_template` with `call_template_type: http`. Anywhere else (an `sse`, `streamable_http` or `mcp` template, or a `type: http` / `type: mcp` tool that discovers its tools from a `url`) no token would be sent, so the `.tool` is refused and `list_tool_setup` names it under `invalid`, saying where the block was found. It works the same for a `remote: false` tool run by the local `hexis-mcp` server, which mints the token on the machine it runs on.
|
|
146
|
-
|
|
147
|
-
A service account is one shared identity. To have each person call Google as themselves instead, do not use this block: declare a sign-in variable (`oauth`, above) and send it as `Authorization: Bearer ${VAR}`.
|
|
118
|
+
`credentials` is always a `${VAR}` holding the key JSON (whole, or base64);
|
|
119
|
+
`scopes` is required; `subject` (optional) is a user to act as, for a service
|
|
120
|
+
account with domain-wide delegation. The block anywhere else is refused and
|
|
121
|
+
named under `invalid`. Give the service account access in the Google product
|
|
122
|
+
itself. To have each person call Google as themselves, use a sign-in
|
|
123
|
+
(`oauth`) instead.
|
|
148
124
|
|
|
149
125
|
### Examples
|
|
150
126
|
|
|
151
|
-
An `http` manual
|
|
127
|
+
An `http` manual with a shared and a personal key:
|
|
152
128
|
|
|
153
129
|
```yaml
|
|
154
|
-
|
|
130
|
+
---
|
|
131
|
+
id: weather
|
|
155
132
|
type: http
|
|
156
133
|
url: https://api.weather.example/utcp
|
|
157
134
|
headers:
|
|
158
135
|
Authorization: Bearer ${ORG_KEY}
|
|
159
136
|
X-User-Key: ${USER_KEY}
|
|
160
137
|
variables:
|
|
161
|
-
- { name: ORG_KEY, scope: admin, label: "Org-wide weather
|
|
162
|
-
- { name: USER_KEY, scope: user, label: "Your personal weather
|
|
138
|
+
- { name: ORG_KEY, scope: admin, label: "Org-wide weather key" }
|
|
139
|
+
- { name: USER_KEY, scope: user, label: "Your personal weather key" }
|
|
140
|
+
---
|
|
163
141
|
```
|
|
164
142
|
|
|
165
143
|
An `inline` manual with one tool:
|
|
166
144
|
|
|
167
|
-
```
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
}
|
|
185
|
-
]
|
|
186
|
-
}
|
|
145
|
+
```yaml
|
|
146
|
+
---
|
|
147
|
+
id: billing
|
|
148
|
+
type: inline
|
|
149
|
+
variables:
|
|
150
|
+
- { name: BILLING_KEY, scope: admin }
|
|
151
|
+
tools:
|
|
152
|
+
- name: create_invoice
|
|
153
|
+
description: Create an invoice.
|
|
154
|
+
inputs: { type: object, properties: {} }
|
|
155
|
+
outputs: { type: object, properties: {} }
|
|
156
|
+
tool_call_template:
|
|
157
|
+
call_template_type: http
|
|
158
|
+
http_method: POST
|
|
159
|
+
url: https://api.billing.example/invoices
|
|
160
|
+
headers: { Authorization: "Bearer ${BILLING_KEY}" }
|
|
161
|
+
---
|
|
187
162
|
```
|
|
188
163
|
|
|
189
164
|
### Adding a third-party tool
|
|
190
165
|
|
|
191
|
-
When asked to add
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
**
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
3.
|
|
226
|
-
|
|
227
|
-
|
|
166
|
+
When asked to add a product as a tool ("add Notion", "wire up Linear"), never
|
|
167
|
+
invent an endpoint or write a placeholder URL:
|
|
168
|
+
|
|
169
|
+
1. **Find the real endpoint in the vendor's own docs**, preferring their
|
|
170
|
+
official remote MCP server, else their REST API. Confirm the URL, transport
|
|
171
|
+
and auth with a web search, not from memory; without web access, ask the
|
|
172
|
+
person.
|
|
173
|
+
2. **Pick the home.** An MCP server is an entry in the plugin's `mcp.json`
|
|
174
|
+
(`type: "streamable-http"` and the `https://` URL, never `ws://`). A REST
|
|
175
|
+
API is a `.tool` with `type: http`, or `type: inline` when you write each
|
|
176
|
+
call by hand.
|
|
177
|
+
3. **An OAuth-protected MCP server usually needs only its `mcp.json` entry.**
|
|
178
|
+
The app probes it, registers itself and offers a sign-in on the Connect page
|
|
179
|
+
(`oauth-auto`). An `Authorization` header or an `oauth` variable turns that
|
|
180
|
+
discovery off, so add neither. Some providers do not support it
|
|
181
|
+
(`oauth-manual`, such as HubSpot or Google): write the entry; once it is
|
|
182
|
+
live, `list_tool_setup` answers `setup.kind` and `setup.reason` for it.
|
|
183
|
+
4. **For a key, use `variables`**, never a key in the file:
|
|
184
|
+
`Authorization: Bearer ${NOTION_TOKEN}` and a `variables` entry with its
|
|
185
|
+
scope.
|
|
186
|
+
5. **Mark tools that only work on the person's machine**: `local: true` on an
|
|
187
|
+
MCP server's `plugin.json` entry, `remote: false` on a `.tool`.
|
|
188
|
+
|
|
189
|
+
All of it lands on a draft first, and goes live once merged (see `tools`).
|
|
190
|
+
|
|
191
|
+
**Walking an admin through `oauth-manual`:**
|
|
192
|
+
|
|
193
|
+
1. Register an OAuth app with the provider, with the redirect URI that
|
|
194
|
+
`setup.reason` gives.
|
|
195
|
+
2. Ask for the app's **client id** (public, fine in the chat) and write the
|
|
196
|
+
declaration: for an `mcp.json` server, the `variables` entry with
|
|
197
|
+
`oauth: { clientId }` and the `Authorization: Bearer ${VAR}` header in its
|
|
198
|
+
`plugin.json` entry; for a `.tool`, the same with `authorizationUrl` and
|
|
199
|
+
`tokenUrl`. A person can do the same under "Edit server" on the tool's page.
|
|
200
|
+
3. Once the declaration is on `{{defaultBranch}}` (a draft's entry shows in
|
|
201
|
+
`onBranchOnly` with no `setup`), run `list_tool_setup`: `setup.reason` must
|
|
202
|
+
be gone. If the endpoints could not be discovered, add `authorizationUrl`
|
|
203
|
+
and `tokenUrl` from the provider's docs.
|
|
204
|
+
4. The admin pastes the **client secret** into the tool's page, never into
|
|
205
|
+
the file or the chat. Then everyone signs in on the Connect page.
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
## Tools: when they are available, and what they need
|
|
2
|
+
|
|
3
|
+
**A tool becomes usable in three steps, in this order:**
|
|
4
|
+
|
|
5
|
+
1. **It is on `{{defaultBranch}}`.** Tools are served from the default branch
|
|
6
|
+
only. An `mcp.json` entry or `.tool` file written on a draft is not listed,
|
|
7
|
+
not callable and has no sign-in on the Connect page until it is merged. Check
|
|
8
|
+
a draft with `list_tool_setup({ body: { branch: "<draft>" } })`:
|
|
9
|
+
`onBranchOnly` names the new tools waiting there (a change to a tool that is
|
|
10
|
+
already live is not listed). Tell the person it goes live once the change
|
|
11
|
+
request is merged.
|
|
12
|
+
2. **Each person sets it up.** Where the tool needs a personal secret or a
|
|
13
|
+
sign-in, each person sets theirs on the Connect page. A shared secret is set
|
|
14
|
+
once, on the tool's page in the app, by someone who may edit the tool.
|
|
15
|
+
3. **The client lists the tools again.** The hosted endpoint reads the live
|
|
16
|
+
catalog on every request but cannot tell a client it changed: most clients
|
|
17
|
+
list again on their own, and one that keeps the list it got when it
|
|
18
|
+
connected must reconnect. The local `hexis-mcp` server checks the catalog
|
|
19
|
+
when its connection is used and tells the client; an idle connection catches
|
|
20
|
+
up at its next use.
|
|
21
|
+
|
|
22
|
+
**A client connected with a connection key** (an automation, or an assistant
|
|
23
|
+
platform set up with a key) is served only the tools whose personal secrets
|
|
24
|
+
that key's person has already set. Set them first, then reconnect.
|
|
25
|
+
|
|
26
|
+
**When a tool is not working, call `list_tool_setup`**, then explain the
|
|
27
|
+
remaining steps rather than guessing: its `note` names what is left, the
|
|
28
|
+
person's own sign-in and the reconnect included. For each tool you can read:
|
|
29
|
+
|
|
30
|
+
- `setup.kind`, for an MCP server: `open` (no sign-in), `oauth-auto` (the
|
|
31
|
+
platform registered itself with the service; people sign in on the Connect
|
|
32
|
+
page) or `oauth-manual` (the sign-in needs an OAuth app its owner registers;
|
|
33
|
+
see `tool-manuals`). `setup.reason` is there only while something blocks the
|
|
34
|
+
sign-in, and says what to do. `setup` is null for a tool that is not an MCP
|
|
35
|
+
server, or a server that sends its own `Authorization` header, runs locally,
|
|
36
|
+
or could not be probed.
|
|
37
|
+
- Per variable: `scope` (`admin` = shared, `user` = personal),
|
|
38
|
+
`adminConfigured` (the shared value, or the owner's sign-in setup, is done),
|
|
39
|
+
`userConfigured` and `authorized` (your own value or sign-in).
|
|
40
|
+
- `canWrite`: whether you may edit the file that declares the tool, which is
|
|
41
|
+
what lets someone set its shared secrets.
|
|
42
|
+
|
|
43
|
+
`invalid` lists the `.tool` files that were refused, and why. If a tool
|
|
44
|
+
disappears, check the person's read access to the file that declares it, then
|
|
45
|
+
`invalid`. An `mcp.json` server dropped for a bad declaration shows only in the
|
|
46
|
+
server's log: ask an admin.
|
|
47
|
+
|
|
48
|
+
**Who manages a tool** is whoever may write the file that declares it: the
|
|
49
|
+
`.tool` file itself (its own `write`/`owner` entries or its folder's
|
|
50
|
+
`access.md`), or, for an MCP server, the plugin's `access.md`. Not a platform
|
|
51
|
+
role. To hand a tool to someone, grant them `write` there.
|
|
52
|
+
|
|
53
|
+
**Agents never handle secret values.** Never ask for an API key, token or
|
|
54
|
+
client secret in the conversation; there is no tool to set one. Point the
|
|
55
|
+
person at the right place: shared values and OAuth client secrets are pasted on
|
|
56
|
+
the tool's page in the app by someone who may edit the tool; personal values
|
|
57
|
+
and sign-ins are entered on the Connect page by each person.
|
|
58
|
+
|
|
59
|
+
**Tools that only run on the person's machine** (a `.tool` with
|
|
60
|
+
`remote: false`, an MCP server with `local: true` or `type: "stdio"`) are not
|
|
61
|
+
on the hosted endpoint: `list_local_tools` names them. To use them, run the
|
|
62
|
+
knowledge base as a local MCP server, which serves everything the hosted one
|
|
63
|
+
does plus these:
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
npx @bevel-software/hexis-mcp --url <workspace-url> --key <connection-key>
|
|
67
|
+
```
|
|
@@ -1,36 +1,53 @@
|
|
|
1
1
|
## Where a new file goes
|
|
2
2
|
|
|
3
|
-
Decide by what the file IS, not by which folder you
|
|
4
|
-
Write access is not evidence that a file belongs somewhere.
|
|
3
|
+
Decide by what the file IS, not by which folder you happen to be able to write
|
|
4
|
+
to. Write access is not evidence that a file belongs somewhere.
|
|
5
5
|
|
|
6
6
|
- **A document goes under `{{knowledgeBaseDir}}/`.** Knowledge, notes,
|
|
7
|
-
reports, tickets, specifications, plans, meeting minutes
|
|
8
|
-
to be read by a person
|
|
9
|
-
|
|
10
|
-
home for that kind of file. That is what the root is for, and its shape
|
|
11
|
-
inside is yours to choose.
|
|
7
|
+
reports, tickets, specifications, plans, meeting minutes: anything written
|
|
8
|
+
to be read by a person, unless a section of this guide names a more specific
|
|
9
|
+
home for that kind of file. Its shape inside is yours to choose.
|
|
12
10
|
- **A shared skill goes under `{{skillsDir}}/`**, or under
|
|
13
11
|
`{{pluginsDir}}/<Plugin>/skills/<skill>/SKILL.md` when it belongs to one
|
|
14
12
|
plugin alone. A person's private skill goes in their personal plugin
|
|
15
13
|
(`my_plugin`).
|
|
16
|
-
- **Tool manuals, MCP
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
- **A plugin folder never holds a document.**
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
14
|
+
- **Tool manuals, MCP servers and manifests go inside a plugin:** `.tool`
|
|
15
|
+
manuals under `{{pluginsDir}}/<Plugin>/software.bevel.hexis/tools/`, servers
|
|
16
|
+
in its `mcp.json`, `plugin.json` at its root.
|
|
17
|
+
- **A plugin folder never holds a document.** A ticket or a report written
|
|
18
|
+
there is filed where nobody looks for it, under rules written for tools.
|
|
19
|
+
- **A personal plugin holds only its owner's skills and tools**
|
|
20
|
+
(`{{pluginsDir}}/personal-<id>/`), with each skill's own files (references,
|
|
21
|
+
scripts, assets) in that skill's folder, and never a note or any other
|
|
22
|
+
document. When the user wants knowledge kept private, ask where under
|
|
23
|
+
`{{knowledgeBaseDir}}/` it should go, and say that a folder there can be
|
|
24
|
+
restricted so only they can read it. If they insist on
|
|
25
|
+
the personal plugin, decline and say why: only they would ever find it, and
|
|
26
|
+
never where the organisation looks for knowledge. Then offer a place under
|
|
27
|
+
`{{knowledgeBaseDir}}/` again.
|
|
28
|
+
- **When the place does not exist, or nothing fits, ask.** If the user names a
|
|
29
|
+
folder that is not there, or the file is of a kind this knowledge base has no
|
|
30
|
+
home for, say so and ask. A wrong guess is found much later than a question.
|
|
31
|
+
|
|
32
|
+
### A team's first project
|
|
33
|
+
|
|
34
|
+
When a team starts out, propose one folder per project with one place for each
|
|
35
|
+
question, agree it with the person, and fill one page as an example before
|
|
36
|
+
anyone builds more:
|
|
37
|
+
|
|
38
|
+
```text
|
|
39
|
+
{{knowledgeBaseDir}}/<Team>/<Project>/
|
|
40
|
+
├── README.md what the project is, who owns it, links to the pages below
|
|
41
|
+
├── Requirements.md what it should do, and for whom
|
|
42
|
+
├── Status.md where it stands: decisions, open questions, next steps, dated
|
|
43
|
+
├── Design.md how it is built
|
|
44
|
+
└── Delivery.md who delivers what, by when
|
|
45
|
+
{{skillsDir}}/<Team>/<skill>/SKILL.md the team's shared skills
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
One question, one place: a decision goes in `Status.md`, not in a new page
|
|
49
|
+
beside it. A page that outgrows one screen becomes a folder of its own, with a
|
|
50
|
+
`README.md` linking its parts. Give the team's folder an `access.md` when not
|
|
51
|
+
everyone should read or change it (see `for-git-users` for an example). Search
|
|
52
|
+
first: when another team already covers a subject, link to its page rather
|
|
53
|
+
than start a rival.
|
|
@@ -2,6 +2,7 @@ import express, { type RequestHandler } from 'express';
|
|
|
2
2
|
import type { ISkillService, SkillSummary } from '../modules/skills/skills.contract.js';
|
|
3
3
|
import type { IToolManualService } from '../modules/tool-manuals/tool-manuals.contract.js';
|
|
4
4
|
import '../modules/tool-auth/tool-auth.middleware.js';
|
|
5
|
+
import { type IAgentScopeResolver } from '../modules/agent-scope/index.js';
|
|
5
6
|
/**
|
|
6
7
|
* The revision of a caller's catalog: a hex digest over the two lists.
|
|
7
8
|
*
|
|
@@ -27,7 +28,15 @@ export declare function catalogRevision(manuals: readonly string[], skills: read
|
|
|
27
28
|
views?: readonly {
|
|
28
29
|
uri: string;
|
|
29
30
|
text: string;
|
|
30
|
-
}[]
|
|
31
|
+
}[],
|
|
32
|
+
/**
|
|
33
|
+
* The connection's agent configuration — its path and the digest of its bytes, or
|
|
34
|
+
* why it cannot be used (`ConnectionScope.fingerprint`) — so an edit of
|
|
35
|
+
* the file is a new revision even when it changes nothing listed (a new
|
|
36
|
+
* skill entry that names nothing yet still moves it). Absent for
|
|
37
|
+
* Everything, whose revision is exactly what it was before agents existed.
|
|
38
|
+
*/
|
|
39
|
+
agent?: string | null): string;
|
|
31
40
|
/**
|
|
32
41
|
* `GET /agent/catalog-revision` — the caller's catalog fingerprint, plus the
|
|
33
42
|
* two counts behind it so an operator reading a log can tell a shrinking
|
|
@@ -42,6 +51,8 @@ export declare function createCatalogRevisionRoutes(deps: {
|
|
|
42
51
|
toolManuals: Pick<IToolManualService, 'catalogFingerprints'>;
|
|
43
52
|
skills: Pick<ISkillService, 'listSkills'>;
|
|
44
53
|
manualAuth: RequestHandler;
|
|
54
|
+
/** Resolves the scope of a connection made as an agent configuration (`modules/agent-scope`). */
|
|
55
|
+
agentScope?: Pick<IAgentScopeResolver, 'resolve'>;
|
|
45
56
|
/** Connection-key/internal-token user id → email, for the per-caller ACL. */
|
|
46
57
|
resolveUserEmail: (userId: string) => Promise<string | undefined>;
|
|
47
58
|
/** The MCP App views served; absent on a deployment that serves none. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog-revision.d.ts","sourceRoot":"","sources":["../../src/core/catalog-revision.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,EAAE,EAAgB,KAAK,cAAc,EAAE,MAAM,SAAS,CAAC;AAErE,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACxF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AAC3F,OAAO,8CAA8C,CAAC;
|
|
1
|
+
{"version":3,"file":"catalog-revision.d.ts","sourceRoot":"","sources":["../../src/core/catalog-revision.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,EAAE,EAAgB,KAAK,cAAc,EAAE,MAAM,SAAS,CAAC;AAErE,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACxF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AAC3F,OAAO,8CAA8C,CAAC;AACtD,OAAO,EAA0B,KAAK,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAqCnG;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,MAAM,EAAE,SAAS,YAAY,EAAE;AAC/B;;;;GAIG;AACH,KAAK,GAAE,SAAS;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAO;AACpD;;;;;;GAMG;AACH,KAAK,GAAE,MAAM,GAAG,IAAW,GAC1B,MAAM,CAUR;AAED;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE;IAChD,WAAW,EAAE,IAAI,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,CAAC;IAC7D,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IAC1C,UAAU,EAAE,cAAc,CAAC;IAC3B,iGAAiG;IACjG,UAAU,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC;IAClD,6EAA6E;IAC7E,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAClE,yEAAyE;IACzE,OAAO,CAAC,EAAE;QAAE,QAAQ,IAAI,OAAO,CAAC;YAAE,SAAS,EAAE,SAAS;gBAAE,GAAG,EAAE,MAAM,CAAC;gBAAC,IAAI,EAAE,MAAM,CAAA;aAAE,EAAE,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;CAC5F,GAAG,OAAO,CAAC,MAAM,CAsCjB"}
|