@structured-world/gitlab-mcp 6.62.1 → 7.0.1
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/README.md +22 -1
- package/README.md.in +21 -0
- package/dist/generated/prisma/client.js.map +1 -1
- package/dist/generated/prisma/internal/class.js +2 -2
- package/dist/generated/prisma/internal/class.js.map +1 -1
- package/dist/generated/prisma/internal/prismaNamespace.js +2 -2
- package/dist/generated/prisma/models/AuthCodeFlowState.d.ts +1 -2
- package/dist/generated/prisma/models/AuthorizationCode.d.ts +1 -2
- package/dist/generated/prisma/models/DeviceFlowState.d.ts +1 -2
- package/dist/generated/prisma/models/McpSessionMapping.d.ts +1 -2
- package/dist/generated/prisma/models/OAuthSession.d.ts +1 -2
- package/dist/src/cli/docker/container-runtime.d.ts +1 -1
- package/dist/src/cli/docker/container-runtime.js +14 -14
- package/dist/src/cli/docker/docker-command.d.ts +1 -1
- package/dist/src/cli/docker/docker-command.js +113 -113
- package/dist/src/cli/docker/docker-command.js.map +1 -1
- package/dist/src/cli/docker/docker-utils.d.ts +3 -3
- package/dist/src/cli/docker/docker-utils.js +74 -74
- package/dist/src/cli/docker/docker-utils.js.map +1 -1
- package/dist/src/cli/docker/index.d.ts +4 -4
- package/dist/src/cli/docker/types.d.ts +3 -3
- package/dist/src/cli/docker/types.js +5 -5
- package/dist/src/cli/init/browser.js +2 -2
- package/dist/src/cli/init/config-generator.d.ts +2 -2
- package/dist/src/cli/init/config-generator.js +22 -22
- package/dist/src/cli/init/connection.d.ts +1 -1
- package/dist/src/cli/init/connection.js +27 -27
- package/dist/src/cli/init/connection.js.map +1 -1
- package/dist/src/cli/init/index.d.ts +4 -4
- package/dist/src/cli/init/types.d.ts +3 -3
- package/dist/src/cli/init/types.js +36 -36
- package/dist/src/cli/init/wizard.js +80 -80
- package/dist/src/cli/init/wizard.js.map +1 -1
- package/dist/src/cli/inject-tool-refs.js +47 -47
- package/dist/src/cli/inject-tool-refs.js.map +1 -1
- package/dist/src/cli/install/backup.d.ts +1 -1
- package/dist/src/cli/install/backup.js +3 -3
- package/dist/src/cli/install/detector.d.ts +2 -2
- package/dist/src/cli/install/detector.js +18 -18
- package/dist/src/cli/install/detector.js.map +1 -1
- package/dist/src/cli/install/index.d.ts +5 -5
- package/dist/src/cli/install/install-command.d.ts +2 -2
- package/dist/src/cli/install/install-command.js +68 -68
- package/dist/src/cli/install/install-command.js.map +1 -1
- package/dist/src/cli/install/installers.d.ts +2 -2
- package/dist/src/cli/install/installers.js +55 -55
- package/dist/src/cli/install/installers.js.map +1 -1
- package/dist/src/cli/install/types.d.ts +4 -4
- package/dist/src/cli/install/types.js +48 -48
- package/dist/src/cli/instances/index.d.ts +2 -2
- package/dist/src/cli/instances/instances-command.d.ts +1 -1
- package/dist/src/cli/instances/instances-command.js +70 -66
- package/dist/src/cli/instances/instances-command.js.map +1 -1
- package/dist/src/cli/list-tools.js +396 -396
- package/dist/src/cli/list-tools.js.map +1 -1
- package/dist/src/cli/setup/discovery.d.ts +1 -1
- package/dist/src/cli/setup/discovery.js +10 -10
- package/dist/src/cli/setup/discovery.js.map +1 -1
- package/dist/src/cli/setup/flows/configure-existing.d.ts +1 -1
- package/dist/src/cli/setup/flows/configure-existing.js +57 -57
- package/dist/src/cli/setup/flows/configure-existing.js.map +1 -1
- package/dist/src/cli/setup/flows/local-setup.d.ts +1 -1
- package/dist/src/cli/setup/flows/local-setup.js +51 -51
- package/dist/src/cli/setup/flows/local-setup.js.map +1 -1
- package/dist/src/cli/setup/flows/server-setup.d.ts +1 -1
- package/dist/src/cli/setup/flows/server-setup.js +50 -50
- package/dist/src/cli/setup/flows/server-setup.js.map +1 -1
- package/dist/src/cli/setup/flows/tool-selection.d.ts +1 -1
- package/dist/src/cli/setup/flows/tool-selection.js +94 -94
- package/dist/src/cli/setup/flows/tool-selection.js.map +1 -1
- package/dist/src/cli/setup/index.d.ts +4 -4
- package/dist/src/cli/setup/presets.d.ts +1 -1
- package/dist/src/cli/setup/presets.js +157 -157
- package/dist/src/cli/setup/presets.js.map +1 -1
- package/dist/src/cli/setup/types.d.ts +7 -7
- package/dist/src/cli/setup/wizard.d.ts +1 -1
- package/dist/src/cli/setup/wizard.js +25 -25
- package/dist/src/cli/utils/index.d.ts +1 -1
- package/dist/src/cli/utils/path-utils.js +3 -3
- package/dist/src/cli-utils.d.ts +2 -2
- package/dist/src/cli-utils.js +46 -46
- package/dist/src/config/index.d.ts +4 -4
- package/dist/src/config/instances-loader.d.ts +3 -3
- package/dist/src/config/instances-loader.js +53 -53
- package/dist/src/config/instances-loader.js.map +1 -1
- package/dist/src/config/instances-schema.d.ts +1 -1
- package/dist/src/config/instances-schema.js +33 -33
- package/dist/src/config/instances-schema.js.map +1 -1
- package/dist/src/config.d.ts +11 -4
- package/dist/src/config.js +112 -111
- package/dist/src/config.js.map +1 -1
- package/dist/src/dashboard/handler.d.ts +2 -2
- package/dist/src/dashboard/handler.js +7 -7
- package/dist/src/dashboard/html-template.d.ts +1 -1
- package/dist/src/dashboard/html-template.js +44 -44
- package/dist/src/dashboard/html-template.js.map +1 -1
- package/dist/src/dashboard/index.d.ts +4 -4
- package/dist/src/dashboard/metrics.d.ts +3 -3
- package/dist/src/dashboard/metrics.js +42 -42
- package/dist/src/discovery/auto.d.ts +3 -3
- package/dist/src/discovery/auto.js +28 -28
- package/dist/src/discovery/git-remote.d.ts +2 -2
- package/dist/src/discovery/git-remote.js +18 -18
- package/dist/src/discovery/index.d.ts +3 -3
- package/dist/src/discovery/profile-matcher.d.ts +2 -2
- package/dist/src/discovery/profile-matcher.js +8 -8
- package/dist/src/discovery/profile-matcher.js.map +1 -1
- package/dist/src/entities/context/context-manager.d.ts +3 -3
- package/dist/src/entities/context/context-manager.js +34 -34
- package/dist/src/entities/context/context-manager.js.map +1 -1
- package/dist/src/entities/context/handlers.d.ts +2 -2
- package/dist/src/entities/context/handlers.js +8 -8
- package/dist/src/entities/context/index.d.ts +8 -8
- package/dist/src/entities/context/index.js +1 -1
- package/dist/src/entities/context/registry.d.ts +1 -1
- package/dist/src/entities/context/registry.js +4 -4
- package/dist/src/entities/context/schema.d.ts +1 -1
- package/dist/src/entities/context/schema.js +19 -19
- package/dist/src/entities/context/types.d.ts +9 -9
- package/dist/src/entities/context/whoami.d.ts +1 -1
- package/dist/src/entities/context/whoami.js +31 -31
- package/dist/src/entities/context/whoami.js.map +1 -1
- package/dist/src/entities/core/index.d.ts +5 -5
- package/dist/src/entities/core/index.js +1 -1
- package/dist/src/entities/core/registry.d.ts +1 -1
- package/dist/src/entities/core/registry.js +194 -194
- package/dist/src/entities/core/registry.js.map +1 -1
- package/dist/src/entities/core/schema-readonly.d.ts +1 -1
- package/dist/src/entities/core/schema-readonly.js +117 -117
- package/dist/src/entities/core/schema.d.ts +1 -1
- package/dist/src/entities/core/schema.js +67 -67
- package/dist/src/entities/files/index.d.ts +5 -5
- package/dist/src/entities/files/index.js +1 -1
- package/dist/src/entities/files/registry.d.ts +1 -1
- package/dist/src/entities/files/registry.js +45 -45
- package/dist/src/entities/files/registry.js.map +1 -1
- package/dist/src/entities/files/schema-readonly.d.ts +1 -1
- package/dist/src/entities/files/schema-readonly.js +13 -13
- package/dist/src/entities/files/schema.d.ts +1 -1
- package/dist/src/entities/files/schema.js +29 -29
- package/dist/src/entities/index.d.ts +17 -17
- package/dist/src/entities/integrations/index.d.ts +4 -4
- package/dist/src/entities/integrations/registry.d.ts +1 -1
- package/dist/src/entities/integrations/registry.js +17 -17
- package/dist/src/entities/integrations/registry.js.map +1 -1
- package/dist/src/entities/integrations/schema-readonly.d.ts +1 -1
- package/dist/src/entities/integrations/schema-readonly.js +5 -5
- package/dist/src/entities/integrations/schema.d.ts +1 -1
- package/dist/src/entities/integrations/schema.js +69 -69
- package/dist/src/entities/iterations/index.d.ts +2 -2
- package/dist/src/entities/iterations/registry.d.ts +1 -1
- package/dist/src/entities/iterations/registry.js +13 -13
- package/dist/src/entities/iterations/registry.js.map +1 -1
- package/dist/src/entities/iterations/schema-readonly.d.ts +1 -1
- package/dist/src/entities/iterations/schema-readonly.js +9 -9
- package/dist/src/entities/labels/index.d.ts +5 -5
- package/dist/src/entities/labels/index.js +1 -1
- package/dist/src/entities/labels/registry.d.ts +1 -1
- package/dist/src/entities/labels/registry.js +19 -19
- package/dist/src/entities/labels/registry.js.map +1 -1
- package/dist/src/entities/labels/schema-readonly.d.ts +1 -1
- package/dist/src/entities/labels/schema-readonly.js +8 -8
- package/dist/src/entities/labels/schema.d.ts +1 -1
- package/dist/src/entities/labels/schema.js +11 -11
- package/dist/src/entities/members/index.d.ts +3 -3
- package/dist/src/entities/members/registry.d.ts +1 -1
- package/dist/src/entities/members/registry.js +26 -26
- package/dist/src/entities/members/registry.js.map +1 -1
- package/dist/src/entities/members/schema-readonly.d.ts +1 -1
- package/dist/src/entities/members/schema-readonly.js +32 -32
- package/dist/src/entities/members/schema-readonly.js.map +1 -1
- package/dist/src/entities/members/schema.d.ts +1 -1
- package/dist/src/entities/members/schema.js +28 -28
- package/dist/src/entities/milestones/index.d.ts +5 -5
- package/dist/src/entities/milestones/index.js +1 -1
- package/dist/src/entities/milestones/registry.d.ts +1 -1
- package/dist/src/entities/milestones/registry.js +25 -25
- package/dist/src/entities/milestones/registry.js.map +1 -1
- package/dist/src/entities/milestones/schema-readonly.d.ts +2 -2
- package/dist/src/entities/milestones/schema-readonly.js +15 -15
- package/dist/src/entities/milestones/schema.d.ts +1 -1
- package/dist/src/entities/milestones/schema.js +16 -16
- package/dist/src/entities/milestones/schema.js.map +1 -1
- package/dist/src/entities/mrs/index.d.ts +5 -5
- package/dist/src/entities/mrs/index.js +1 -1
- package/dist/src/entities/mrs/registry.d.ts +1 -1
- package/dist/src/entities/mrs/registry.js +102 -102
- package/dist/src/entities/mrs/registry.js.map +1 -1
- package/dist/src/entities/mrs/schema-readonly.d.ts +1 -1
- package/dist/src/entities/mrs/schema-readonly.js +126 -126
- package/dist/src/entities/mrs/schema-readonly.js.map +1 -1
- package/dist/src/entities/mrs/schema.d.ts +1 -1
- package/dist/src/entities/mrs/schema.js +111 -111
- package/dist/src/entities/mrs/schema.js.map +1 -1
- package/dist/src/entities/pipelines/index.d.ts +5 -5
- package/dist/src/entities/pipelines/index.js +1 -1
- package/dist/src/entities/pipelines/registry.d.ts +1 -1
- package/dist/src/entities/pipelines/registry.js +45 -45
- package/dist/src/entities/pipelines/registry.js.map +1 -1
- package/dist/src/entities/pipelines/schema-readonly.d.ts +2 -2
- package/dist/src/entities/pipelines/schema-readonly.js +73 -73
- package/dist/src/entities/pipelines/schema.d.ts +1 -1
- package/dist/src/entities/pipelines/schema.js +21 -21
- package/dist/src/entities/refs/index.d.ts +3 -3
- package/dist/src/entities/refs/registry.d.ts +1 -1
- package/dist/src/entities/refs/registry.js +31 -31
- package/dist/src/entities/refs/registry.js.map +1 -1
- package/dist/src/entities/refs/schema-readonly.d.ts +1 -1
- package/dist/src/entities/refs/schema-readonly.js +21 -21
- package/dist/src/entities/refs/schema.d.ts +1 -1
- package/dist/src/entities/refs/schema.js +56 -56
- package/dist/src/entities/releases/index.d.ts +3 -3
- package/dist/src/entities/releases/registry.d.ts +1 -1
- package/dist/src/entities/releases/registry.js +21 -21
- package/dist/src/entities/releases/registry.js.map +1 -1
- package/dist/src/entities/releases/schema-readonly.d.ts +1 -1
- package/dist/src/entities/releases/schema-readonly.js +13 -13
- package/dist/src/entities/releases/schema.d.ts +1 -1
- package/dist/src/entities/releases/schema.js +21 -21
- package/dist/src/entities/search/index.d.ts +2 -2
- package/dist/src/entities/search/registry.d.ts +1 -1
- package/dist/src/entities/search/registry.js +13 -13
- package/dist/src/entities/search/schema-readonly.d.ts +1 -1
- package/dist/src/entities/search/schema-readonly.js +23 -23
- package/dist/src/entities/shared.d.ts +1 -1
- package/dist/src/entities/shared.js +5 -5
- package/dist/src/entities/snippets/index.d.ts +5 -5
- package/dist/src/entities/snippets/index.js +1 -1
- package/dist/src/entities/snippets/registry.d.ts +1 -1
- package/dist/src/entities/snippets/registry.js +24 -24
- package/dist/src/entities/snippets/registry.js.map +1 -1
- package/dist/src/entities/snippets/schema-readonly.d.ts +1 -1
- package/dist/src/entities/snippets/schema-readonly.js +11 -11
- package/dist/src/entities/snippets/schema.d.ts +1 -1
- package/dist/src/entities/snippets/schema.js +27 -27
- package/dist/src/entities/snippets/schema.js.map +1 -1
- package/dist/src/entities/utils.d.ts +2 -2
- package/dist/src/entities/utils.js +8 -8
- package/dist/src/entities/utils.js.map +1 -1
- package/dist/src/entities/variables/index.d.ts +5 -5
- package/dist/src/entities/variables/index.js +1 -1
- package/dist/src/entities/variables/registry.d.ts +1 -1
- package/dist/src/entities/variables/registry.js +22 -22
- package/dist/src/entities/variables/registry.js.map +1 -1
- package/dist/src/entities/variables/schema-readonly.d.ts +1 -1
- package/dist/src/entities/variables/schema-readonly.js +6 -6
- package/dist/src/entities/variables/schema.d.ts +1 -1
- package/dist/src/entities/variables/schema.js +21 -21
- package/dist/src/entities/variables/schema.js.map +1 -1
- package/dist/src/entities/webhooks/index.d.ts +4 -4
- package/dist/src/entities/webhooks/registry.d.ts +1 -1
- package/dist/src/entities/webhooks/registry.js +29 -29
- package/dist/src/entities/webhooks/registry.js.map +1 -1
- package/dist/src/entities/webhooks/schema-readonly.d.ts +1 -1
- package/dist/src/entities/webhooks/schema-readonly.js +9 -9
- package/dist/src/entities/webhooks/schema.d.ts +1 -1
- package/dist/src/entities/webhooks/schema.js +59 -59
- package/dist/src/entities/wiki/index.d.ts +5 -5
- package/dist/src/entities/wiki/index.js +1 -1
- package/dist/src/entities/wiki/registry.d.ts +1 -1
- package/dist/src/entities/wiki/registry.js +19 -19
- package/dist/src/entities/wiki/registry.js.map +1 -1
- package/dist/src/entities/wiki/schema-readonly.d.ts +1 -1
- package/dist/src/entities/wiki/schema-readonly.js +6 -6
- package/dist/src/entities/wiki/schema.d.ts +1 -1
- package/dist/src/entities/wiki/schema.js +12 -12
- package/dist/src/entities/workitems/index.d.ts +5 -5
- package/dist/src/entities/workitems/index.js +1 -1
- package/dist/src/entities/workitems/registry.d.ts +1 -1
- package/dist/src/entities/workitems/registry.js +101 -101
- package/dist/src/entities/workitems/registry.js.map +1 -1
- package/dist/src/entities/workitems/schema-readonly.d.ts +1 -1
- package/dist/src/entities/workitems/schema-readonly.js +27 -27
- package/dist/src/entities/workitems/schema-readonly.js.map +1 -1
- package/dist/src/entities/workitems/schema.d.ts +1 -1
- package/dist/src/entities/workitems/schema.js +58 -58
- package/dist/src/graphql/DynamicWorkItemsQuery.d.ts +2 -2
- package/dist/src/graphql/DynamicWorkItemsQuery.js +47 -47
- package/dist/src/graphql/DynamicWorkItemsQuery.js.map +1 -1
- package/dist/src/graphql/client.d.ts +1 -1
- package/dist/src/graphql/client.js +4 -4
- package/dist/src/graphql/client.js.map +1 -1
- package/dist/src/graphql/index.d.ts +2 -2
- package/dist/src/graphql/workItems.d.ts +38 -38
- package/dist/src/graphql/workItems.js +30 -30
- package/dist/src/handlers.d.ts +2 -1
- package/dist/src/handlers.js +258 -86
- package/dist/src/handlers.js.map +1 -1
- package/dist/src/http-client.js +3 -3
- package/dist/src/logger.js +25 -25
- package/dist/src/logging/access-log.d.ts +2 -2
- package/dist/src/logging/access-log.js +25 -25
- package/dist/src/logging/connection-tracker.d.ts +1 -1
- package/dist/src/logging/connection-tracker.js +3 -3
- package/dist/src/logging/index.d.ts +5 -5
- package/dist/src/logging/request-tracker.d.ts +3 -3
- package/dist/src/logging/request-tracker.js +4 -4
- package/dist/src/logging/types.d.ts +3 -3
- package/dist/src/logging/types.js +1 -1
- package/dist/src/logging/types.js.map +1 -1
- package/dist/src/main.js +28 -28
- package/dist/src/middleware/index.d.ts +3 -2
- package/dist/src/middleware/index.js +3 -1
- package/dist/src/middleware/index.js.map +1 -1
- package/dist/src/middleware/oauth-auth.d.ts +1 -1
- package/dist/src/middleware/oauth-auth.js +17 -17
- package/dist/src/middleware/rate-limiter.d.ts +1 -1
- package/dist/src/middleware/rate-limiter.js +32 -32
- package/dist/src/middleware/response-write-timeout.d.ts +2 -0
- package/dist/src/middleware/response-write-timeout.js +62 -0
- package/dist/src/middleware/response-write-timeout.js.map +1 -0
- package/dist/src/oauth/config.d.ts +1 -1
- package/dist/src/oauth/config.js +18 -18
- package/dist/src/oauth/config.js.map +1 -1
- package/dist/src/oauth/endpoints/authorize.d.ts +1 -1
- package/dist/src/oauth/endpoints/authorize.js +32 -32
- package/dist/src/oauth/endpoints/callback.d.ts +1 -1
- package/dist/src/oauth/endpoints/callback.js +26 -26
- package/dist/src/oauth/endpoints/index.d.ts +5 -5
- package/dist/src/oauth/endpoints/metadata.d.ts +1 -1
- package/dist/src/oauth/endpoints/metadata.js +12 -12
- package/dist/src/oauth/endpoints/register.d.ts +1 -1
- package/dist/src/oauth/endpoints/register.js +9 -9
- package/dist/src/oauth/endpoints/token.d.ts +1 -1
- package/dist/src/oauth/endpoints/token.js +28 -28
- package/dist/src/oauth/gitlab-device-flow.d.ts +2 -2
- package/dist/src/oauth/gitlab-device-flow.js +73 -68
- package/dist/src/oauth/gitlab-device-flow.js.map +1 -1
- package/dist/src/oauth/index.d.ts +10 -10
- package/dist/src/oauth/session-store.d.ts +2 -2
- package/dist/src/oauth/session-store.js +40 -40
- package/dist/src/oauth/session-store.js.map +1 -1
- package/dist/src/oauth/storage/factory.d.ts +2 -2
- package/dist/src/oauth/storage/factory.js +16 -16
- package/dist/src/oauth/storage/file.d.ts +2 -2
- package/dist/src/oauth/storage/file.js +22 -22
- package/dist/src/oauth/storage/file.js.map +1 -1
- package/dist/src/oauth/storage/index.d.ts +5 -5
- package/dist/src/oauth/storage/memory.d.ts +2 -2
- package/dist/src/oauth/storage/memory.js +18 -18
- package/dist/src/oauth/storage/memory.js.map +1 -1
- package/dist/src/oauth/storage/postgresql.d.ts +2 -2
- package/dist/src/oauth/storage/postgresql.js +11 -11
- package/dist/src/oauth/storage/postgresql.js.map +1 -1
- package/dist/src/oauth/storage/types.d.ts +3 -3
- package/dist/src/oauth/token-context.d.ts +1 -1
- package/dist/src/oauth/token-context.js +1 -1
- package/dist/src/oauth/token-utils.d.ts +1 -1
- package/dist/src/oauth/token-utils.js +20 -20
- package/dist/src/oauth/types.d.ts +3 -3
- package/dist/src/profiles/applicator.d.ts +1 -1
- package/dist/src/profiles/applicator.js +48 -48
- package/dist/src/profiles/index.d.ts +5 -5
- package/dist/src/profiles/loader.d.ts +3 -3
- package/dist/src/profiles/loader.js +25 -25
- package/dist/src/profiles/loader.js.map +1 -1
- package/dist/src/profiles/project-loader.d.ts +1 -1
- package/dist/src/profiles/project-loader.js +23 -23
- package/dist/src/profiles/project-loader.js.map +1 -1
- package/dist/src/profiles/scope-enforcer.d.ts +2 -2
- package/dist/src/profiles/scope-enforcer.js +25 -25
- package/dist/src/profiles/scope-enforcer.js.map +1 -1
- package/dist/src/profiles/types.d.ts +2 -2
- package/dist/src/profiles/types.js +50 -48
- package/dist/src/profiles/types.js.map +1 -1
- package/dist/src/registry-manager.d.ts +19 -11
- package/dist/src/registry-manager.js +257 -172
- package/dist/src/registry-manager.js.map +1 -1
- package/dist/src/server.js +165 -149
- package/dist/src/server.js.map +1 -1
- package/dist/src/services/ConnectionManager.d.ts +33 -24
- package/dist/src/services/ConnectionManager.js +304 -179
- package/dist/src/services/ConnectionManager.js.map +1 -1
- package/dist/src/services/GitLabVersionDetector.d.ts +2 -2
- package/dist/src/services/GitLabVersionDetector.js +45 -45
- package/dist/src/services/GitLabVersionDetector.js.map +1 -1
- package/dist/src/services/HealthMonitor.d.ts +42 -0
- package/dist/src/services/HealthMonitor.js +544 -0
- package/dist/src/services/HealthMonitor.js.map +1 -0
- package/dist/src/services/InstanceConnectionPool.d.ts +2 -2
- package/dist/src/services/InstanceConnectionPool.js +13 -13
- package/dist/src/services/InstanceConnectionPool.js.map +1 -1
- package/dist/src/services/InstanceRateLimiter.js +6 -6
- package/dist/src/services/InstanceRateLimiter.js.map +1 -1
- package/dist/src/services/InstanceRegistry.d.ts +4 -5
- package/dist/src/services/InstanceRegistry.js +29 -41
- package/dist/src/services/InstanceRegistry.js.map +1 -1
- package/dist/src/services/NamespaceTierDetector.d.ts +2 -2
- package/dist/src/services/NamespaceTierDetector.js +30 -30
- package/dist/src/services/NamespaceTierDetector.js.map +1 -1
- package/dist/src/services/SchemaIntrospector.d.ts +2 -1
- package/dist/src/services/SchemaIntrospector.js +45 -42
- package/dist/src/services/SchemaIntrospector.js.map +1 -1
- package/dist/src/services/TokenScopeDetector.d.ts +4 -4
- package/dist/src/services/TokenScopeDetector.js +133 -110
- package/dist/src/services/TokenScopeDetector.js.map +1 -1
- package/dist/src/services/ToolAvailability.d.ts +15 -11
- package/dist/src/services/ToolAvailability.js +150 -130
- package/dist/src/services/ToolAvailability.js.map +1 -1
- package/dist/src/services/WidgetAvailability.d.ts +5 -5
- package/dist/src/services/WidgetAvailability.js +40 -39
- package/dist/src/services/WidgetAvailability.js.map +1 -1
- package/dist/src/session-manager.d.ts +3 -2
- package/dist/src/session-manager.js +17 -14
- package/dist/src/session-manager.js.map +1 -1
- package/dist/src/types.js +4 -4
- package/dist/src/utils/description-utils.js +4 -4
- package/dist/src/utils/description-utils.js.map +1 -1
- package/dist/src/utils/error-handler.d.ts +19 -10
- package/dist/src/utils/error-handler.js +272 -187
- package/dist/src/utils/error-handler.js.map +1 -1
- package/dist/src/utils/fetch.d.ts +7 -0
- package/dist/src/utils/fetch.js +136 -122
- package/dist/src/utils/fetch.js.map +1 -1
- package/dist/src/utils/gitlab-api.d.ts +1 -1
- package/dist/src/utils/gitlab-api.js +29 -26
- package/dist/src/utils/gitlab-api.js.map +1 -1
- package/dist/src/utils/idConversion.js +47 -47
- package/dist/src/utils/idConversion.js.map +1 -1
- package/dist/src/utils/namespace.d.ts +2 -2
- package/dist/src/utils/namespace.js +15 -15
- package/dist/src/utils/projectIdentifier.js +4 -4
- package/dist/src/utils/request-logger.d.ts +4 -4
- package/dist/src/utils/request-logger.js +5 -5
- package/dist/src/utils/schema-utils.js +24 -24
- package/dist/src/utils/schema-utils.js.map +1 -1
- package/dist/src/utils/smart-user-search.d.ts +1 -1
- package/dist/src/utils/smart-user-search.js +10 -10
- package/dist/src/utils/url.d.ts +1 -0
- package/dist/src/utils/url.js +38 -0
- package/dist/src/utils/url.js.map +1 -0
- package/dist/src/utils/version.js +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +22 -31
- package/dist/structured-world-gitlab-mcp-6.62.1.tgz +0 -0
package/dist/src/logger.js
CHANGED
|
@@ -8,44 +8,44 @@ exports.logError = logError;
|
|
|
8
8
|
exports.logDebug = logDebug;
|
|
9
9
|
const pino_1 = require("pino");
|
|
10
10
|
function truncateId(id) {
|
|
11
|
-
if (typeof id !==
|
|
11
|
+
if (typeof id !== 'string')
|
|
12
12
|
return String(id);
|
|
13
13
|
if (id.length <= 10)
|
|
14
14
|
return id;
|
|
15
|
-
return id.substring(0, 4) +
|
|
15
|
+
return id.substring(0, 4) + '..' + id.slice(-4);
|
|
16
16
|
}
|
|
17
|
-
const isTestEnv = process.env.NODE_ENV ===
|
|
18
|
-
exports.LOG_JSON = process.env.LOG_JSON ===
|
|
19
|
-
exports.LOG_FORMAT = process.env.LOG_FORMAT ??
|
|
17
|
+
const isTestEnv = process.env.NODE_ENV === 'test' || process.env.JEST_WORKER_ID !== undefined;
|
|
18
|
+
exports.LOG_JSON = process.env.LOG_JSON === 'true';
|
|
19
|
+
exports.LOG_FORMAT = process.env.LOG_FORMAT ?? '%msg';
|
|
20
20
|
function convertToPinoFormat(format) {
|
|
21
21
|
return format
|
|
22
|
-
.replace(/%time/g,
|
|
23
|
-
.replace(/%level/g,
|
|
24
|
-
.replace(/%name/g,
|
|
25
|
-
.replace(/%msg/g,
|
|
22
|
+
.replace(/%time/g, '{time}')
|
|
23
|
+
.replace(/%level/g, '{levelLabel}')
|
|
24
|
+
.replace(/%name/g, '{name}')
|
|
25
|
+
.replace(/%msg/g, '{msg}');
|
|
26
26
|
}
|
|
27
27
|
function getIgnoredFields(format) {
|
|
28
|
-
const ignored = [
|
|
29
|
-
if (!format.includes(
|
|
30
|
-
ignored.push(
|
|
31
|
-
if (!format.includes(
|
|
32
|
-
ignored.push(
|
|
33
|
-
if (!format.includes(
|
|
34
|
-
ignored.push(
|
|
35
|
-
return ignored.join(
|
|
28
|
+
const ignored = ['pid', 'hostname'];
|
|
29
|
+
if (!format.includes('%time'))
|
|
30
|
+
ignored.push('time');
|
|
31
|
+
if (!format.includes('%level'))
|
|
32
|
+
ignored.push('level');
|
|
33
|
+
if (!format.includes('%name'))
|
|
34
|
+
ignored.push('name');
|
|
35
|
+
return ignored.join(',');
|
|
36
36
|
}
|
|
37
37
|
function buildPrettyOptions(format) {
|
|
38
38
|
const baseOptions = {
|
|
39
39
|
destination: 2,
|
|
40
40
|
};
|
|
41
|
-
const hasTime = format.includes(
|
|
41
|
+
const hasTime = format.includes('%time');
|
|
42
42
|
const pinoFormat = convertToPinoFormat(format);
|
|
43
43
|
const ignored = getIgnoredFields(format);
|
|
44
|
-
const isMinimal = format.trim() ===
|
|
44
|
+
const isMinimal = format.trim() === '%msg';
|
|
45
45
|
return {
|
|
46
46
|
...baseOptions,
|
|
47
47
|
colorize: !isMinimal,
|
|
48
|
-
translateTime: hasTime ?
|
|
48
|
+
translateTime: hasTime ? 'HH:MM:ss.l' : false,
|
|
49
49
|
ignore: ignored,
|
|
50
50
|
messageFormat: pinoFormat,
|
|
51
51
|
hideObject: true,
|
|
@@ -54,18 +54,18 @@ function buildPrettyOptions(format) {
|
|
|
54
54
|
const createLogger = (name) => {
|
|
55
55
|
const options = {
|
|
56
56
|
name,
|
|
57
|
-
level: process.env.LOG_LEVEL ??
|
|
57
|
+
level: process.env.LOG_LEVEL ?? 'info',
|
|
58
58
|
};
|
|
59
59
|
if (!isTestEnv && !exports.LOG_JSON) {
|
|
60
60
|
options.transport = {
|
|
61
|
-
target:
|
|
61
|
+
target: 'pino-pretty',
|
|
62
62
|
options: buildPrettyOptions(exports.LOG_FORMAT),
|
|
63
63
|
};
|
|
64
64
|
}
|
|
65
65
|
return (0, pino_1.pino)(options);
|
|
66
66
|
};
|
|
67
67
|
exports.createLogger = createLogger;
|
|
68
|
-
exports.logger = (0, exports.createLogger)(
|
|
68
|
+
exports.logger = (0, exports.createLogger)('gitlab-mcp');
|
|
69
69
|
function formatDataPairs(data) {
|
|
70
70
|
return Object.entries(data)
|
|
71
71
|
.map(([k, v]) => {
|
|
@@ -75,12 +75,12 @@ function formatDataPairs(data) {
|
|
|
75
75
|
if (v === null || v === undefined) {
|
|
76
76
|
return `${k}=${String(v)}`;
|
|
77
77
|
}
|
|
78
|
-
if (typeof v ===
|
|
78
|
+
if (typeof v === 'object') {
|
|
79
79
|
return `${k}=${JSON.stringify(v)}`;
|
|
80
80
|
}
|
|
81
81
|
return `${k}=${String(v)}`;
|
|
82
82
|
})
|
|
83
|
-
.join(
|
|
83
|
+
.join(' ');
|
|
84
84
|
}
|
|
85
85
|
function logInfo(message, data) {
|
|
86
86
|
if (exports.LOG_JSON) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { RequestStack, ConnectionStats, AccessLogEntry, ConnectionCloseEntry, ConnectionCloseReason } from
|
|
1
|
+
import type { RequestStack, ConnectionStats, AccessLogEntry, ConnectionCloseEntry, ConnectionCloseReason } from './types.js';
|
|
2
2
|
export declare function truncateSessionId(sessionId?: string): string;
|
|
3
3
|
export declare function formatDuration(ms: number): string;
|
|
4
|
-
export declare function formatGitLabStatus(status?: number |
|
|
4
|
+
export declare function formatGitLabStatus(status?: number | 'timeout' | 'error'): string;
|
|
5
5
|
export declare function formatDetails(details: Record<string, string | number | boolean>): string;
|
|
6
6
|
export declare function createAccessLogEntry(stack: RequestStack): AccessLogEntry;
|
|
7
7
|
export declare function formatAccessLog(entry: AccessLogEntry): string;
|
|
@@ -12,7 +12,7 @@ exports.formatConnectionClose = formatConnectionClose;
|
|
|
12
12
|
const logger_js_1 = require("../logger.js");
|
|
13
13
|
function truncateSessionId(sessionId) {
|
|
14
14
|
if (!sessionId)
|
|
15
|
-
return
|
|
15
|
+
return '-';
|
|
16
16
|
return (0, logger_js_1.truncateId)(sessionId);
|
|
17
17
|
}
|
|
18
18
|
function formatDuration(ms) {
|
|
@@ -31,20 +31,20 @@ function formatDuration(ms) {
|
|
|
31
31
|
}
|
|
32
32
|
function formatGitLabStatus(status) {
|
|
33
33
|
if (status === undefined)
|
|
34
|
-
return
|
|
35
|
-
if (status ===
|
|
36
|
-
return
|
|
37
|
-
if (status ===
|
|
38
|
-
return
|
|
34
|
+
return '-';
|
|
35
|
+
if (status === 'timeout')
|
|
36
|
+
return 'GL:timeout';
|
|
37
|
+
if (status === 'error')
|
|
38
|
+
return 'GL:error';
|
|
39
39
|
return `GL:${status}`;
|
|
40
40
|
}
|
|
41
41
|
function escapeLogValue(value) {
|
|
42
42
|
return value
|
|
43
|
-
.replace(/\\/g,
|
|
43
|
+
.replace(/\\/g, '\\\\')
|
|
44
44
|
.replace(/"/g, '\\"')
|
|
45
|
-
.replace(/\n/g,
|
|
46
|
-
.replace(/\r/g,
|
|
47
|
-
.replace(/\t/g,
|
|
45
|
+
.replace(/\n/g, '\\n')
|
|
46
|
+
.replace(/\r/g, '\\r')
|
|
47
|
+
.replace(/\t/g, '\\t');
|
|
48
48
|
}
|
|
49
49
|
function needsQuoting(value) {
|
|
50
50
|
return /[\s"\\]/.test(value) || /[\n\r\t]/.test(value);
|
|
@@ -52,7 +52,7 @@ function needsQuoting(value) {
|
|
|
52
52
|
function formatDetails(details) {
|
|
53
53
|
const entries = Object.entries(details);
|
|
54
54
|
if (entries.length === 0)
|
|
55
|
-
return
|
|
55
|
+
return '';
|
|
56
56
|
return entries
|
|
57
57
|
.map(([key, value]) => {
|
|
58
58
|
const strValue = String(value);
|
|
@@ -61,7 +61,7 @@ function formatDetails(details) {
|
|
|
61
61
|
}
|
|
62
62
|
return `${key}=${strValue}`;
|
|
63
63
|
})
|
|
64
|
-
.join(
|
|
64
|
+
.join(' ');
|
|
65
65
|
}
|
|
66
66
|
function createAccessLogEntry(stack) {
|
|
67
67
|
const now = Date.now();
|
|
@@ -70,16 +70,16 @@ function createAccessLogEntry(stack) {
|
|
|
70
70
|
timestamp: new Date(now).toISOString(),
|
|
71
71
|
clientIp: stack.clientIp,
|
|
72
72
|
session: truncateSessionId(stack.sessionId),
|
|
73
|
-
ctx: stack.context ??
|
|
74
|
-
ro: stack.readOnly ?
|
|
73
|
+
ctx: stack.context ?? '-',
|
|
74
|
+
ro: stack.readOnly ? 'RO' : '-',
|
|
75
75
|
method: stack.method,
|
|
76
76
|
path: stack.path,
|
|
77
77
|
status: stack.status ?? 0,
|
|
78
78
|
durationMs,
|
|
79
|
-
tool: stack.tool ??
|
|
80
|
-
action: stack.action ??
|
|
79
|
+
tool: stack.tool ?? '-',
|
|
80
|
+
action: stack.action ?? '-',
|
|
81
81
|
gitlabStatus: formatGitLabStatus(stack.gitlabStatus),
|
|
82
|
-
gitlabDurationMs: stack.gitlabDuration !== undefined ? `${stack.gitlabDuration}ms` :
|
|
82
|
+
gitlabDurationMs: stack.gitlabDuration !== undefined ? `${stack.gitlabDuration}ms` : '-',
|
|
83
83
|
details: formatDetails(stack.details),
|
|
84
84
|
};
|
|
85
85
|
}
|
|
@@ -93,16 +93,16 @@ function formatAccessLog(entry) {
|
|
|
93
93
|
entry.path,
|
|
94
94
|
String(entry.status),
|
|
95
95
|
`${entry.durationMs}ms`,
|
|
96
|
-
|
|
96
|
+
'|',
|
|
97
97
|
entry.tool,
|
|
98
98
|
entry.action,
|
|
99
|
-
|
|
99
|
+
'|',
|
|
100
100
|
entry.gitlabStatus,
|
|
101
101
|
entry.gitlabDurationMs,
|
|
102
|
-
|
|
103
|
-
entry.details ||
|
|
102
|
+
'|',
|
|
103
|
+
entry.details || '-',
|
|
104
104
|
];
|
|
105
|
-
return parts.join(
|
|
105
|
+
return parts.join(' ');
|
|
106
106
|
}
|
|
107
107
|
function createConnectionCloseEntry(stats, reason) {
|
|
108
108
|
const now = Date.now();
|
|
@@ -122,12 +122,12 @@ function createConnectionCloseEntry(stats, reason) {
|
|
|
122
122
|
function formatConnectionClose(entry) {
|
|
123
123
|
const parts = [
|
|
124
124
|
`[${entry.timestamp}]`,
|
|
125
|
-
|
|
125
|
+
'CONN_CLOSE',
|
|
126
126
|
entry.clientIp,
|
|
127
127
|
entry.session,
|
|
128
128
|
entry.duration,
|
|
129
129
|
entry.reason,
|
|
130
|
-
|
|
130
|
+
'|',
|
|
131
131
|
`reqs=${entry.requests}`,
|
|
132
132
|
`tools=${entry.tools}`,
|
|
133
133
|
`errs=${entry.errors}`,
|
|
@@ -135,7 +135,7 @@ function formatConnectionClose(entry) {
|
|
|
135
135
|
if (entry.lastError) {
|
|
136
136
|
parts.push(`last_err="${escapeLogValue(entry.lastError)}"`);
|
|
137
137
|
}
|
|
138
|
-
return parts.join(
|
|
138
|
+
return parts.join(' ');
|
|
139
139
|
}
|
|
140
140
|
class AccessLogFormatter {
|
|
141
141
|
formatRequest(stack) {
|
|
@@ -29,7 +29,7 @@ class ConnectionTracker {
|
|
|
29
29
|
errorCount: 0,
|
|
30
30
|
};
|
|
31
31
|
this.connections.set(sessionId, stats);
|
|
32
|
-
(0, logger_js_1.logDebug)(
|
|
32
|
+
(0, logger_js_1.logDebug)('Connection opened for tracking', { sessionId, clientIp });
|
|
33
33
|
}
|
|
34
34
|
getStats(sessionId) {
|
|
35
35
|
return this.connections.get(sessionId);
|
|
@@ -57,7 +57,7 @@ class ConnectionTracker {
|
|
|
57
57
|
const stats = this.connections.get(sessionId);
|
|
58
58
|
if (!stats) {
|
|
59
59
|
if (this.enabled) {
|
|
60
|
-
(0, logger_js_1.logDebug)(
|
|
60
|
+
(0, logger_js_1.logDebug)('Connection not found on close', { sessionId });
|
|
61
61
|
}
|
|
62
62
|
return undefined;
|
|
63
63
|
}
|
|
@@ -84,7 +84,7 @@ class ConnectionTracker {
|
|
|
84
84
|
getAllSessionIds() {
|
|
85
85
|
return Array.from(this.connections.keys());
|
|
86
86
|
}
|
|
87
|
-
closeAllConnections(reason =
|
|
87
|
+
closeAllConnections(reason = 'server_shutdown') {
|
|
88
88
|
const sessionIds = this.getAllSessionIds();
|
|
89
89
|
for (const sessionId of sessionIds) {
|
|
90
90
|
this.closeConnection(sessionId, reason);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export type { RequestStack, ConnectionStats, AccessLogEntry, ConnectionCloseEntry, ConnectionCloseReason, LogFormat, } from
|
|
2
|
-
export { DEFAULT_LOG_FORMAT } from
|
|
3
|
-
export { AccessLogFormatter, truncateSessionId, formatDuration, formatGitLabStatus, formatDetails, formatAccessLog, formatConnectionClose, createAccessLogEntry, createConnectionCloseEntry, } from
|
|
4
|
-
export { RequestTracker, getRequestTracker, resetRequestTracker, getCurrentRequestId, runWithRequestContext, runWithRequestContextAsync, type RequestContext, } from
|
|
5
|
-
export { ConnectionTracker, getConnectionTracker, resetConnectionTracker, } from
|
|
1
|
+
export type { RequestStack, ConnectionStats, AccessLogEntry, ConnectionCloseEntry, ConnectionCloseReason, LogFormat, } from './types.js';
|
|
2
|
+
export { DEFAULT_LOG_FORMAT } from './types.js';
|
|
3
|
+
export { AccessLogFormatter, truncateSessionId, formatDuration, formatGitLabStatus, formatDetails, formatAccessLog, formatConnectionClose, createAccessLogEntry, createConnectionCloseEntry, } from './access-log.js';
|
|
4
|
+
export { RequestTracker, getRequestTracker, resetRequestTracker, getCurrentRequestId, runWithRequestContext, runWithRequestContextAsync, type RequestContext, } from './request-tracker.js';
|
|
5
|
+
export { ConnectionTracker, getConnectionTracker, resetConnectionTracker, } from './connection-tracker.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { RequestStack } from
|
|
1
|
+
import type { RequestStack } from './types.js';
|
|
2
2
|
export interface RequestContext {
|
|
3
3
|
requestId: string;
|
|
4
4
|
}
|
|
@@ -14,7 +14,7 @@ export declare class RequestTracker {
|
|
|
14
14
|
openStack(requestId: string, clientIp: string, method: string, path: string, sessionId?: string): void;
|
|
15
15
|
getStack(requestId: string): RequestStack | undefined;
|
|
16
16
|
setTool(requestId: string, tool: string, action?: string): void;
|
|
17
|
-
setGitLabResponse(requestId: string, status: number |
|
|
17
|
+
setGitLabResponse(requestId: string, status: number | 'timeout' | 'error', durationMs?: number): void;
|
|
18
18
|
addDetail(requestId: string, key: string, value: string | number | boolean): void;
|
|
19
19
|
addDetails(requestId: string, details: Record<string, string | number | boolean>): void;
|
|
20
20
|
setError(requestId: string, error: string): void;
|
|
@@ -27,7 +27,7 @@ export declare class RequestTracker {
|
|
|
27
27
|
getOpenStackCount(): number;
|
|
28
28
|
clear(): void;
|
|
29
29
|
setToolForCurrentRequest(tool: string, action?: string): void;
|
|
30
|
-
setGitLabResponseForCurrentRequest(status: number |
|
|
30
|
+
setGitLabResponseForCurrentRequest(status: number | 'timeout' | 'error', durationMs?: number): void;
|
|
31
31
|
addDetailForCurrentRequest(key: string, value: string | number | boolean): void;
|
|
32
32
|
addDetailsForCurrentRequest(details: Record<string, string | number | boolean>): void;
|
|
33
33
|
setErrorForCurrentRequest(error: string): void;
|
|
@@ -43,7 +43,7 @@ class RequestTracker {
|
|
|
43
43
|
details: {},
|
|
44
44
|
};
|
|
45
45
|
this.stacks.set(requestId, stack);
|
|
46
|
-
(0, logger_js_1.logDebug)(
|
|
46
|
+
(0, logger_js_1.logDebug)('Request stack opened', { requestId, clientIp, method, path });
|
|
47
47
|
}
|
|
48
48
|
getStack(requestId) {
|
|
49
49
|
return this.stacks.get(requestId);
|
|
@@ -56,7 +56,7 @@ class RequestTracker {
|
|
|
56
56
|
if (action) {
|
|
57
57
|
stack.action = action;
|
|
58
58
|
}
|
|
59
|
-
(0, logger_js_1.logDebug)(
|
|
59
|
+
(0, logger_js_1.logDebug)('Tool set on request stack', { requestId, tool, action });
|
|
60
60
|
}
|
|
61
61
|
setGitLabResponse(requestId, status, durationMs) {
|
|
62
62
|
const stack = this.stacks.get(requestId);
|
|
@@ -66,7 +66,7 @@ class RequestTracker {
|
|
|
66
66
|
if (durationMs !== undefined) {
|
|
67
67
|
stack.gitlabDuration = durationMs;
|
|
68
68
|
}
|
|
69
|
-
(0, logger_js_1.logDebug)(
|
|
69
|
+
(0, logger_js_1.logDebug)('GitLab response set on request stack', {
|
|
70
70
|
requestId,
|
|
71
71
|
gitlabStatus: status,
|
|
72
72
|
gitlabDuration: durationMs,
|
|
@@ -112,7 +112,7 @@ class RequestTracker {
|
|
|
112
112
|
closeStack(requestId, status) {
|
|
113
113
|
const stack = this.stacks.get(requestId);
|
|
114
114
|
if (!stack) {
|
|
115
|
-
(0, logger_js_1.logDebug)(
|
|
115
|
+
(0, logger_js_1.logDebug)('Request stack not found on close', { requestId });
|
|
116
116
|
return undefined;
|
|
117
117
|
}
|
|
118
118
|
this.stacks.delete(requestId);
|
|
@@ -8,13 +8,13 @@ export interface RequestStack {
|
|
|
8
8
|
path: string;
|
|
9
9
|
tool?: string;
|
|
10
10
|
action?: string;
|
|
11
|
-
gitlabStatus?: number |
|
|
11
|
+
gitlabStatus?: number | 'timeout' | 'error';
|
|
12
12
|
gitlabDuration?: number;
|
|
13
13
|
details: Record<string, string | number | boolean>;
|
|
14
14
|
status?: number;
|
|
15
15
|
error?: string;
|
|
16
16
|
}
|
|
17
|
-
export type ConnectionCloseReason =
|
|
17
|
+
export type ConnectionCloseReason = 'client_disconnect' | 'idle_timeout' | 'server_shutdown' | 'transport_error' | 'auth_expired' | 'session_closed' | 'destroyed' | 'normal_close' | 'heartbeat_failed' | 'write_timeout' | `peer_reset:${string}`;
|
|
18
18
|
export interface ConnectionStats {
|
|
19
19
|
connectedAt: number;
|
|
20
20
|
clientIp: string;
|
|
@@ -51,5 +51,5 @@ export interface ConnectionCloseEntry {
|
|
|
51
51
|
errors: number;
|
|
52
52
|
lastError?: string;
|
|
53
53
|
}
|
|
54
|
-
export type LogFormat =
|
|
54
|
+
export type LogFormat = 'condensed' | 'verbose';
|
|
55
55
|
export declare const DEFAULT_LOG_FORMAT: LogFormat;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/logging/types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/logging/types.ts"],"names":[],"mappings":";;;AAgMa,QAAA,kBAAkB,GAAc,WAAW,CAAC"}
|
package/dist/src/main.js
CHANGED
|
@@ -44,30 +44,30 @@ const namespace_1 = require("./utils/namespace");
|
|
|
44
44
|
async function main() {
|
|
45
45
|
const cliArgs = (0, cli_utils_1.parseCliArgs)();
|
|
46
46
|
if (cliArgs.setup) {
|
|
47
|
-
const { runSetupWizard } = await Promise.resolve().then(() => __importStar(require(
|
|
47
|
+
const { runSetupWizard } = await Promise.resolve().then(() => __importStar(require('./cli/setup')));
|
|
48
48
|
const result = await runSetupWizard({ mode: cliArgs.setupMode });
|
|
49
49
|
process.exit(result.success ? 0 : 1);
|
|
50
50
|
}
|
|
51
51
|
if (cliArgs.init) {
|
|
52
|
-
const { runSetupWizard } = await Promise.resolve().then(() => __importStar(require(
|
|
53
|
-
const result = await runSetupWizard({ mode:
|
|
52
|
+
const { runSetupWizard } = await Promise.resolve().then(() => __importStar(require('./cli/setup')));
|
|
53
|
+
const result = await runSetupWizard({ mode: 'local' });
|
|
54
54
|
process.exit(result.success ? 0 : 1);
|
|
55
55
|
}
|
|
56
56
|
if (cliArgs.install) {
|
|
57
|
-
const { runInstallCommand, parseInstallFlags, buildServerConfigFromEnv } = await Promise.resolve().then(() => __importStar(require(
|
|
57
|
+
const { runInstallCommand, parseInstallFlags, buildServerConfigFromEnv } = await Promise.resolve().then(() => __importStar(require('./cli/install')));
|
|
58
58
|
const flags = parseInstallFlags(cliArgs.installArgs);
|
|
59
59
|
const serverConfig = buildServerConfigFromEnv();
|
|
60
60
|
await runInstallCommand(serverConfig, flags);
|
|
61
61
|
process.exit(0);
|
|
62
62
|
}
|
|
63
63
|
if (cliArgs.docker) {
|
|
64
|
-
if (cliArgs.dockerArgs[0] ===
|
|
65
|
-
const { runSetupWizard } = await Promise.resolve().then(() => __importStar(require(
|
|
66
|
-
const result = await runSetupWizard({ mode:
|
|
64
|
+
if (cliArgs.dockerArgs[0] === 'init') {
|
|
65
|
+
const { runSetupWizard } = await Promise.resolve().then(() => __importStar(require('./cli/setup')));
|
|
66
|
+
const result = await runSetupWizard({ mode: 'server' });
|
|
67
67
|
process.exit(result.success ? 0 : 1);
|
|
68
68
|
return;
|
|
69
69
|
}
|
|
70
|
-
const { runDockerCommand } = await Promise.resolve().then(() => __importStar(require(
|
|
70
|
+
const { runDockerCommand } = await Promise.resolve().then(() => __importStar(require('./cli/docker')));
|
|
71
71
|
await runDockerCommand(cliArgs.dockerArgs);
|
|
72
72
|
process.exit(0);
|
|
73
73
|
}
|
|
@@ -79,7 +79,7 @@ async function main() {
|
|
|
79
79
|
}
|
|
80
80
|
catch (error) {
|
|
81
81
|
const message = error instanceof Error ? error.message : String(error);
|
|
82
|
-
(0, logger_1.logError)(
|
|
82
|
+
(0, logger_1.logError)('Failed to load project config', { error: message });
|
|
83
83
|
process.exit(1);
|
|
84
84
|
}
|
|
85
85
|
}
|
|
@@ -97,19 +97,19 @@ async function main() {
|
|
|
97
97
|
console.log((0, discovery_1.formatDiscoveryResult)(autoDiscoveryResult));
|
|
98
98
|
process.exit(0);
|
|
99
99
|
}
|
|
100
|
-
(0, logger_1.logInfo)(
|
|
100
|
+
(0, logger_1.logInfo)('Auto-discovery detected GitLab configuration', {
|
|
101
101
|
host: autoDiscoveryResult.host,
|
|
102
102
|
project: autoDiscoveryResult.projectPath,
|
|
103
103
|
profile: autoDiscoveryResult.matchedProfile?.profileName,
|
|
104
104
|
});
|
|
105
105
|
}
|
|
106
106
|
else {
|
|
107
|
-
(0, logger_1.logWarn)(
|
|
107
|
+
(0, logger_1.logWarn)('Auto-discovery failed: not in a git repository or no remote found');
|
|
108
108
|
}
|
|
109
109
|
}
|
|
110
110
|
catch (error) {
|
|
111
111
|
const message = error instanceof Error ? error.message : String(error);
|
|
112
|
-
(0, logger_1.logError)(
|
|
112
|
+
(0, logger_1.logError)('Auto-discovery failed', { error: message });
|
|
113
113
|
process.exit(1);
|
|
114
114
|
}
|
|
115
115
|
}
|
|
@@ -117,18 +117,18 @@ async function main() {
|
|
|
117
117
|
try {
|
|
118
118
|
const result = await (0, profiles_1.tryApplyProfileFromEnv)(cliArgs.profileName);
|
|
119
119
|
if (result) {
|
|
120
|
-
if (
|
|
121
|
-
(0, logger_1.logInfo)(
|
|
120
|
+
if ('profileName' in result) {
|
|
121
|
+
(0, logger_1.logInfo)('Using CLI-specified profile', {
|
|
122
122
|
profile: result.profileName,
|
|
123
123
|
host: result.host,
|
|
124
124
|
});
|
|
125
125
|
}
|
|
126
126
|
else {
|
|
127
|
-
(0, logger_1.logInfo)(
|
|
127
|
+
(0, logger_1.logInfo)('Using CLI-specified preset', { preset: result.presetName });
|
|
128
128
|
}
|
|
129
129
|
if (autoDiscoveryResult?.matchedProfile &&
|
|
130
130
|
autoDiscoveryResult.matchedProfile.profileName !== cliArgs.profileName) {
|
|
131
|
-
(0, logger_1.logWarn)(
|
|
131
|
+
(0, logger_1.logWarn)('Auto-discovered profile ignored: --profile takes precedence', {
|
|
132
132
|
cliProfile: cliArgs.profileName,
|
|
133
133
|
autoProfile: autoDiscoveryResult.matchedProfile.profileName,
|
|
134
134
|
});
|
|
@@ -137,15 +137,15 @@ async function main() {
|
|
|
137
137
|
}
|
|
138
138
|
catch (error) {
|
|
139
139
|
const message = error instanceof Error ? error.message : String(error);
|
|
140
|
-
(0, logger_1.logError)(
|
|
140
|
+
(0, logger_1.logError)('Failed to load profile', { error: message });
|
|
141
141
|
process.exit(1);
|
|
142
142
|
}
|
|
143
143
|
}
|
|
144
144
|
else if (autoDiscoveryResult?.matchedProfile) {
|
|
145
145
|
try {
|
|
146
146
|
const result = await (0, profiles_1.tryApplyProfileFromEnv)(autoDiscoveryResult.matchedProfile.profileName);
|
|
147
|
-
if (result &&
|
|
148
|
-
(0, logger_1.logInfo)(
|
|
147
|
+
if (result && 'profileName' in result) {
|
|
148
|
+
(0, logger_1.logInfo)('Using auto-discovered profile', {
|
|
149
149
|
profile: result.profileName,
|
|
150
150
|
host: result.host,
|
|
151
151
|
});
|
|
@@ -153,27 +153,27 @@ async function main() {
|
|
|
153
153
|
}
|
|
154
154
|
catch (error) {
|
|
155
155
|
const message = error instanceof Error ? error.message : String(error);
|
|
156
|
-
(0, logger_1.logWarn)(
|
|
156
|
+
(0, logger_1.logWarn)('Failed to apply auto-discovered profile', { error: message });
|
|
157
157
|
}
|
|
158
158
|
}
|
|
159
159
|
else {
|
|
160
160
|
try {
|
|
161
161
|
const result = await (0, profiles_1.tryApplyProfileFromEnv)();
|
|
162
162
|
if (result) {
|
|
163
|
-
if (
|
|
164
|
-
(0, logger_1.logInfo)(
|
|
163
|
+
if ('profileName' in result) {
|
|
164
|
+
(0, logger_1.logInfo)('Using configuration profile', {
|
|
165
165
|
profile: result.profileName,
|
|
166
166
|
host: result.host,
|
|
167
167
|
});
|
|
168
168
|
}
|
|
169
169
|
else {
|
|
170
|
-
(0, logger_1.logInfo)(
|
|
170
|
+
(0, logger_1.logInfo)('Using configuration preset', { preset: result.presetName });
|
|
171
171
|
}
|
|
172
172
|
}
|
|
173
173
|
}
|
|
174
174
|
catch (error) {
|
|
175
175
|
const message = error instanceof Error ? error.message : String(error);
|
|
176
|
-
(0, logger_1.logError)(
|
|
176
|
+
(0, logger_1.logError)('Failed to load profile', { error: message });
|
|
177
177
|
process.exit(1);
|
|
178
178
|
}
|
|
179
179
|
}
|
|
@@ -182,7 +182,7 @@ async function main() {
|
|
|
182
182
|
const projectConfig = await (0, profiles_1.findProjectConfig)(process.cwd());
|
|
183
183
|
if (projectConfig) {
|
|
184
184
|
const summary = (0, profiles_1.getProjectConfigSummary)(projectConfig);
|
|
185
|
-
(0, logger_1.logInfo)(
|
|
185
|
+
(0, logger_1.logInfo)('Loaded project configuration (restrictions applied)', {
|
|
186
186
|
path: projectConfig.configPath,
|
|
187
187
|
preset: summary.presetSummary,
|
|
188
188
|
profile: summary.profileSummary,
|
|
@@ -191,7 +191,7 @@ async function main() {
|
|
|
191
191
|
}
|
|
192
192
|
catch (error) {
|
|
193
193
|
const message = error instanceof Error ? error.message : String(error);
|
|
194
|
-
(0, logger_1.logWarn)(
|
|
194
|
+
(0, logger_1.logWarn)('Failed to load project config, continuing without it', { error: message });
|
|
195
195
|
}
|
|
196
196
|
}
|
|
197
197
|
if (autoDiscoveryResult) {
|
|
@@ -200,7 +200,7 @@ async function main() {
|
|
|
200
200
|
if (namespace) {
|
|
201
201
|
process.env.GITLAB_DEFAULT_NAMESPACE ??= namespace;
|
|
202
202
|
}
|
|
203
|
-
(0, logger_1.logDebug)(
|
|
203
|
+
(0, logger_1.logDebug)('Default context set from auto-discovery', {
|
|
204
204
|
defaultProject: process.env.GITLAB_DEFAULT_PROJECT,
|
|
205
205
|
defaultNamespace: process.env.GITLAB_DEFAULT_NAMESPACE,
|
|
206
206
|
});
|
|
@@ -212,7 +212,7 @@ main().catch((error) => {
|
|
|
212
212
|
console.error(error.guidance);
|
|
213
213
|
}
|
|
214
214
|
else {
|
|
215
|
-
(0, logger_1.logError)(
|
|
215
|
+
(0, logger_1.logError)('Failed to start GitLab MCP Server', { error: String(error) });
|
|
216
216
|
}
|
|
217
217
|
process.exit(1);
|
|
218
218
|
});
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
export { oauthAuthMiddleware, createOAuthMiddleware, optionalOAuthMiddleware } from
|
|
2
|
-
export { rateLimiterMiddleware, stopCleanup as stopRateLimitCleanup, getRateLimitStats, } from
|
|
1
|
+
export { oauthAuthMiddleware, createOAuthMiddleware, optionalOAuthMiddleware } from './oauth-auth';
|
|
2
|
+
export { rateLimiterMiddleware, stopCleanup as stopRateLimitCleanup, getRateLimitStats, } from './rate-limiter';
|
|
3
|
+
export { responseWriteTimeoutMiddleware } from './response-write-timeout';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getRateLimitStats = exports.stopRateLimitCleanup = exports.rateLimiterMiddleware = exports.optionalOAuthMiddleware = exports.createOAuthMiddleware = exports.oauthAuthMiddleware = void 0;
|
|
3
|
+
exports.responseWriteTimeoutMiddleware = exports.getRateLimitStats = exports.stopRateLimitCleanup = exports.rateLimiterMiddleware = exports.optionalOAuthMiddleware = exports.createOAuthMiddleware = exports.oauthAuthMiddleware = void 0;
|
|
4
4
|
var oauth_auth_1 = require("./oauth-auth");
|
|
5
5
|
Object.defineProperty(exports, "oauthAuthMiddleware", { enumerable: true, get: function () { return oauth_auth_1.oauthAuthMiddleware; } });
|
|
6
6
|
Object.defineProperty(exports, "createOAuthMiddleware", { enumerable: true, get: function () { return oauth_auth_1.createOAuthMiddleware; } });
|
|
@@ -9,4 +9,6 @@ var rate_limiter_1 = require("./rate-limiter");
|
|
|
9
9
|
Object.defineProperty(exports, "rateLimiterMiddleware", { enumerable: true, get: function () { return rate_limiter_1.rateLimiterMiddleware; } });
|
|
10
10
|
Object.defineProperty(exports, "stopRateLimitCleanup", { enumerable: true, get: function () { return rate_limiter_1.stopCleanup; } });
|
|
11
11
|
Object.defineProperty(exports, "getRateLimitStats", { enumerable: true, get: function () { return rate_limiter_1.getRateLimitStats; } });
|
|
12
|
+
var response_write_timeout_1 = require("./response-write-timeout");
|
|
13
|
+
Object.defineProperty(exports, "responseWriteTimeoutMiddleware", { enumerable: true, get: function () { return response_write_timeout_1.responseWriteTimeoutMiddleware; } });
|
|
12
14
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/middleware/index.ts"],"names":[],"mappings":";;;AAMA,2CAAmG;AAA1F,iHAAA,mBAAmB,OAAA;AAAE,mHAAA,qBAAqB,OAAA;AAAE,qHAAA,uBAAuB,OAAA;AAC5E,+CAIwB;AAHtB,qHAAA,qBAAqB,OAAA;AACrB,oHAAA,WAAW,OAAwB;AACnC,iHAAA,iBAAiB,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/middleware/index.ts"],"names":[],"mappings":";;;AAMA,2CAAmG;AAA1F,iHAAA,mBAAmB,OAAA;AAAE,mHAAA,qBAAqB,OAAA;AAAE,qHAAA,uBAAuB,OAAA;AAC5E,+CAIwB;AAHtB,qHAAA,qBAAqB,OAAA;AACrB,oHAAA,WAAW,OAAwB;AACnC,iHAAA,iBAAiB,OAAA;AAEnB,mEAA0E;AAAjE,wIAAA,8BAA8B,OAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Request, Response, NextFunction } from
|
|
1
|
+
import { Request, Response, NextFunction } from 'express';
|
|
2
2
|
export declare function oauthAuthMiddleware(req: Request, res: Response, next: NextFunction): Promise<void>;
|
|
3
3
|
export declare function createOAuthMiddleware(): typeof oauthAuthMiddleware;
|
|
4
4
|
export declare function optionalOAuthMiddleware(req: Request, res: Response, next: NextFunction): Promise<void>;
|