@padua/cli 2.0.22 → 2.0.24
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 +1 -1
- package/dist/commands/doctor/checks.d.ts +2 -2
- package/dist/commands/doctor/checks.d.ts.map +1 -1
- package/dist/commands/doctor/checks.js +31 -69
- package/dist/commands/doctor/checks.js.map +1 -1
- package/dist/commands/doctor/index.d.ts +1 -1
- package/dist/commands/doctor/index.d.ts.map +1 -1
- package/dist/commands/doctor/index.js +60 -65
- package/dist/commands/doctor/index.js.map +1 -1
- package/dist/commands/doctor/mcp-checks.d.ts +2 -2
- package/dist/commands/doctor/mcp-checks.d.ts.map +1 -1
- package/dist/commands/doctor/mcp-checks.js +13 -59
- package/dist/commands/doctor/mcp-checks.js.map +1 -1
- package/dist/commands/doctor/mcp-service-checks.d.ts +1 -1
- package/dist/commands/doctor/mcp-service-checks.d.ts.map +1 -1
- package/dist/commands/doctor/mcp-service-checks.js +6 -13
- package/dist/commands/doctor/mcp-service-checks.js.map +1 -1
- package/dist/commands/doctor/suggestions.js +3 -8
- package/dist/commands/doctor/suggestions.js.map +1 -1
- package/dist/commands/doctor/types.js +2 -5
- package/dist/commands/doctor/types.js.map +1 -1
- package/dist/commands/exec/aws.d.ts +1 -1
- package/dist/commands/exec/aws.d.ts.map +1 -1
- package/dist/commands/exec/aws.js +31 -37
- package/dist/commands/exec/aws.js.map +1 -1
- package/dist/commands/exec/index.d.ts +1 -1
- package/dist/commands/exec/index.d.ts.map +1 -1
- package/dist/commands/exec/index.js +41 -46
- package/dist/commands/exec/index.js.map +1 -1
- package/dist/commands/exec/types.js +1 -4
- package/dist/commands/exec/types.js.map +1 -1
- package/dist/commands/init/aws-config.js +7 -44
- package/dist/commands/init/aws-config.js.map +1 -1
- package/dist/commands/init/aws-profile.d.ts +2 -2
- package/dist/commands/init/aws-profile.d.ts.map +1 -1
- package/dist/commands/init/aws-profile.js +11 -54
- package/dist/commands/init/aws-profile.js.map +1 -1
- package/dist/commands/init/index.d.ts +2 -2
- package/dist/commands/init/index.d.ts.map +1 -1
- package/dist/commands/init/index.js +87 -97
- package/dist/commands/init/index.js.map +1 -1
- package/dist/commands/init/init.d.ts +1 -1
- package/dist/commands/init/init.d.ts.map +1 -1
- package/dist/commands/init/init.js +20 -65
- package/dist/commands/init/init.js.map +1 -1
- package/dist/commands/init/prerequisites.js +7 -14
- package/dist/commands/init/prerequisites.js.map +1 -1
- package/dist/commands/init/prompts.d.ts +1 -1
- package/dist/commands/init/prompts.d.ts.map +1 -1
- package/dist/commands/init/prompts.js +28 -55
- package/dist/commands/init/prompts.js.map +1 -1
- package/dist/commands/init/sso-discovery.js +22 -68
- package/dist/commands/init/sso-discovery.js.map +1 -1
- package/dist/commands/login/codeartifact.d.ts +1 -1
- package/dist/commands/login/codeartifact.d.ts.map +1 -1
- package/dist/commands/login/codeartifact.js +16 -19
- package/dist/commands/login/codeartifact.js.map +1 -1
- package/dist/commands/login/config.d.ts +1 -1
- package/dist/commands/login/config.d.ts.map +1 -1
- package/dist/commands/login/config.js +5 -42
- package/dist/commands/login/config.js.map +1 -1
- package/dist/commands/login/ecr.d.ts +1 -1
- package/dist/commands/login/ecr.d.ts.map +1 -1
- package/dist/commands/login/ecr.js +14 -17
- package/dist/commands/login/ecr.js.map +1 -1
- package/dist/commands/login/index.js +21 -27
- package/dist/commands/login/index.js.map +1 -1
- package/dist/commands/login/mcp-steps.d.ts +3 -3
- package/dist/commands/login/mcp-steps.d.ts.map +1 -1
- package/dist/commands/login/mcp-steps.js +30 -34
- package/dist/commands/login/mcp-steps.js.map +1 -1
- package/dist/commands/login/npmrc.d.ts +1 -1
- package/dist/commands/login/npmrc.d.ts.map +1 -1
- package/dist/commands/login/npmrc.js +12 -56
- package/dist/commands/login/npmrc.js.map +1 -1
- package/dist/commands/login/orchestrator.d.ts +1 -1
- package/dist/commands/login/orchestrator.d.ts.map +1 -1
- package/dist/commands/login/orchestrator.js +55 -62
- package/dist/commands/login/orchestrator.js.map +1 -1
- package/dist/commands/login/sso.d.ts +1 -1
- package/dist/commands/login/sso.d.ts.map +1 -1
- package/dist/commands/login/sso.js +17 -56
- package/dist/commands/login/sso.js.map +1 -1
- package/dist/commands/login/types.d.ts +1 -1
- package/dist/commands/login/types.d.ts.map +1 -1
- package/dist/commands/login/types.js +9 -20
- package/dist/commands/login/types.js.map +1 -1
- package/dist/commands/login/utils.js +7 -14
- package/dist/commands/login/utils.js.map +1 -1
- package/dist/commands/login/version-check.d.ts.map +1 -1
- package/dist/commands/login/version-check.js +15 -52
- package/dist/commands/login/version-check.js.map +1 -1
- package/dist/commands/profile/index.js +22 -32
- package/dist/commands/profile/index.js.map +1 -1
- package/dist/commands/status/aws-checks.d.ts +2 -2
- package/dist/commands/status/aws-checks.d.ts.map +1 -1
- package/dist/commands/status/aws-checks.js +5 -42
- package/dist/commands/status/aws-checks.js.map +1 -1
- package/dist/commands/status/checks.d.ts +3 -3
- package/dist/commands/status/checks.d.ts.map +1 -1
- package/dist/commands/status/checks.js +14 -59
- package/dist/commands/status/checks.js.map +1 -1
- package/dist/commands/status/index.d.ts +1 -1
- package/dist/commands/status/index.d.ts.map +1 -1
- package/dist/commands/status/index.js +25 -31
- package/dist/commands/status/index.js.map +1 -1
- package/dist/commands/status/mcp-checks.d.ts +2 -2
- package/dist/commands/status/mcp-checks.d.ts.map +1 -1
- package/dist/commands/status/mcp-checks.js +20 -61
- package/dist/commands/status/mcp-checks.js.map +1 -1
- package/dist/commands/status/types.js +1 -2
- package/dist/commands/status/types.js.map +1 -1
- package/dist/commands/tunnel/aws.js +21 -28
- package/dist/commands/tunnel/aws.js.map +1 -1
- package/dist/commands/tunnel/index.d.ts +1 -1
- package/dist/commands/tunnel/index.d.ts.map +1 -1
- package/dist/commands/tunnel/index.js +14 -19
- package/dist/commands/tunnel/index.js.map +1 -1
- package/dist/commands/tunnel/port.js +4 -42
- package/dist/commands/tunnel/port.js.map +1 -1
- package/dist/commands/tunnel/rds.d.ts +1 -1
- package/dist/commands/tunnel/rds.d.ts.map +1 -1
- package/dist/commands/tunnel/rds.js +42 -48
- package/dist/commands/tunnel/rds.js.map +1 -1
- package/dist/commands/tunnel/types.js +5 -10
- package/dist/commands/tunnel/types.js.map +1 -1
- package/dist/index.js +22 -21
- package/dist/index.js.map +1 -1
- package/dist/mcp/config/index.d.ts +3 -3
- package/dist/mcp/config/index.d.ts.map +1 -1
- package/dist/mcp/config/index.js +2 -13
- package/dist/mcp/config/index.js.map +1 -1
- package/dist/mcp/config/loaders.d.ts +1 -1
- package/dist/mcp/config/loaders.d.ts.map +1 -1
- package/dist/mcp/config/loaders.js +24 -30
- package/dist/mcp/config/loaders.js.map +1 -1
- package/dist/mcp/config/types.js +22 -25
- package/dist/mcp/config/types.js.map +1 -1
- package/dist/mcp/daemon/entry-logic.d.ts.map +1 -1
- package/dist/mcp/daemon/entry-logic.js +21 -22
- package/dist/mcp/daemon/entry-logic.js.map +1 -1
- package/dist/mcp/daemon/entry.js +36 -40
- package/dist/mcp/daemon/entry.js.map +1 -1
- package/dist/mcp/daemon/fork.d.ts +1 -1
- package/dist/mcp/daemon/fork.d.ts.map +1 -1
- package/dist/mcp/daemon/fork.js +44 -57
- package/dist/mcp/daemon/fork.js.map +1 -1
- package/dist/mcp/daemon/health.d.ts +1 -1
- package/dist/mcp/daemon/health.d.ts.map +1 -1
- package/dist/mcp/daemon/health.js +3 -6
- package/dist/mcp/daemon/health.js.map +1 -1
- package/dist/mcp/daemon/index.d.ts +5 -5
- package/dist/mcp/daemon/index.d.ts.map +1 -1
- package/dist/mcp/daemon/index.js +4 -21
- package/dist/mcp/daemon/index.js.map +1 -1
- package/dist/mcp/daemon/types.js +10 -13
- package/dist/mcp/daemon/types.js.map +1 -1
- package/dist/mcp/errors/index.d.ts +2 -2
- package/dist/mcp/errors/index.d.ts.map +1 -1
- package/dist/mcp/errors/index.js +1 -12
- package/dist/mcp/errors/index.js.map +1 -1
- package/dist/mcp/errors/types.js +8 -18
- package/dist/mcp/errors/types.js.map +1 -1
- package/dist/mcp/providers/atlassian/auth.d.ts +2 -2
- package/dist/mcp/providers/atlassian/auth.d.ts.map +1 -1
- package/dist/mcp/providers/atlassian/auth.js +8 -12
- package/dist/mcp/providers/atlassian/auth.js.map +1 -1
- package/dist/mcp/providers/atlassian/client.d.ts +1 -1
- package/dist/mcp/providers/atlassian/client.d.ts.map +1 -1
- package/dist/mcp/providers/atlassian/client.js +5 -8
- package/dist/mcp/providers/atlassian/client.js.map +1 -1
- package/dist/mcp/providers/atlassian/index.d.ts +5 -5
- package/dist/mcp/providers/atlassian/index.d.ts.map +1 -1
- package/dist/mcp/providers/atlassian/index.js +3 -10
- package/dist/mcp/providers/atlassian/index.js.map +1 -1
- package/dist/mcp/providers/atlassian/markdown-to-adf/index.d.ts +2 -2
- package/dist/mcp/providers/atlassian/markdown-to-adf/index.d.ts.map +1 -1
- package/dist/mcp/providers/atlassian/markdown-to-adf/index.js +7 -10
- package/dist/mcp/providers/atlassian/markdown-to-adf/index.js.map +1 -1
- package/dist/mcp/providers/atlassian/markdown-to-adf/nodes.js +19 -40
- package/dist/mcp/providers/atlassian/markdown-to-adf/nodes.js.map +1 -1
- package/dist/mcp/providers/atlassian/markdown-to-adf/parser.d.ts +1 -1
- package/dist/mcp/providers/atlassian/markdown-to-adf/parser.d.ts.map +1 -1
- package/dist/mcp/providers/atlassian/markdown-to-adf/parser.js +16 -40
- package/dist/mcp/providers/atlassian/markdown-to-adf/parser.js.map +1 -1
- package/dist/mcp/providers/atlassian/provider.d.ts +3 -3
- package/dist/mcp/providers/atlassian/provider.d.ts.map +1 -1
- package/dist/mcp/providers/atlassian/provider.js +14 -18
- package/dist/mcp/providers/atlassian/provider.js.map +1 -1
- package/dist/mcp/providers/atlassian/resources.d.ts +2 -2
- package/dist/mcp/providers/atlassian/resources.d.ts.map +1 -1
- package/dist/mcp/providers/atlassian/resources.js +1 -4
- package/dist/mcp/providers/atlassian/resources.js.map +1 -1
- package/dist/mcp/providers/atlassian/tools/confluence.d.ts +2 -2
- package/dist/mcp/providers/atlassian/tools/confluence.d.ts.map +1 -1
- package/dist/mcp/providers/atlassian/tools/confluence.js +39 -42
- package/dist/mcp/providers/atlassian/tools/confluence.js.map +1 -1
- package/dist/mcp/providers/atlassian/tools/jira.d.ts +2 -2
- package/dist/mcp/providers/atlassian/tools/jira.d.ts.map +1 -1
- package/dist/mcp/providers/atlassian/tools/jira.js +75 -77
- package/dist/mcp/providers/atlassian/tools/jira.js.map +1 -1
- package/dist/mcp/providers/gitlab/auth.d.ts +2 -2
- package/dist/mcp/providers/gitlab/auth.d.ts.map +1 -1
- package/dist/mcp/providers/gitlab/auth.js +1 -4
- package/dist/mcp/providers/gitlab/auth.js.map +1 -1
- package/dist/mcp/providers/gitlab/client.d.ts +1 -1
- package/dist/mcp/providers/gitlab/client.d.ts.map +1 -1
- package/dist/mcp/providers/gitlab/client.js +1 -4
- package/dist/mcp/providers/gitlab/client.js.map +1 -1
- package/dist/mcp/providers/gitlab/index.d.ts +4 -4
- package/dist/mcp/providers/gitlab/index.d.ts.map +1 -1
- package/dist/mcp/providers/gitlab/index.js +3 -9
- package/dist/mcp/providers/gitlab/index.js.map +1 -1
- package/dist/mcp/providers/gitlab/provider.d.ts +3 -3
- package/dist/mcp/providers/gitlab/provider.d.ts.map +1 -1
- package/dist/mcp/providers/gitlab/provider.js +15 -19
- package/dist/mcp/providers/gitlab/provider.js.map +1 -1
- package/dist/mcp/providers/gitlab/resources.d.ts +2 -2
- package/dist/mcp/providers/gitlab/resources.d.ts.map +1 -1
- package/dist/mcp/providers/gitlab/resources.js +1 -4
- package/dist/mcp/providers/gitlab/resources.js.map +1 -1
- package/dist/mcp/providers/gitlab/tools/issues.d.ts +2 -2
- package/dist/mcp/providers/gitlab/tools/issues.d.ts.map +1 -1
- package/dist/mcp/providers/gitlab/tools/issues.js +32 -35
- package/dist/mcp/providers/gitlab/tools/issues.js.map +1 -1
- package/dist/mcp/providers/gitlab/tools/merge-requests.d.ts +2 -2
- package/dist/mcp/providers/gitlab/tools/merge-requests.d.ts.map +1 -1
- package/dist/mcp/providers/gitlab/tools/merge-requests.js +48 -51
- package/dist/mcp/providers/gitlab/tools/merge-requests.js.map +1 -1
- package/dist/mcp/providers/gitlab/tools/pipelines.d.ts +2 -2
- package/dist/mcp/providers/gitlab/tools/pipelines.d.ts.map +1 -1
- package/dist/mcp/providers/gitlab/tools/pipelines.js +20 -23
- package/dist/mcp/providers/gitlab/tools/pipelines.js.map +1 -1
- package/dist/mcp/providers/gitlab/tools/repository.d.ts +2 -2
- package/dist/mcp/providers/gitlab/tools/repository.d.ts.map +1 -1
- package/dist/mcp/providers/gitlab/tools/repository.js +55 -58
- package/dist/mcp/providers/gitlab/tools/repository.js.map +1 -1
- package/dist/mcp/providers/index.d.ts +3 -3
- package/dist/mcp/providers/index.d.ts.map +1 -1
- package/dist/mcp/providers/index.js +1 -5
- package/dist/mcp/providers/index.js.map +1 -1
- package/dist/mcp/providers/registry.d.ts +1 -1
- package/dist/mcp/providers/registry.d.ts.map +1 -1
- package/dist/mcp/providers/registry.js +1 -5
- package/dist/mcp/providers/registry.js.map +1 -1
- package/dist/mcp/providers/tool-helpers.js +2 -6
- package/dist/mcp/providers/tool-helpers.js.map +1 -1
- package/dist/mcp/providers/types.js +1 -2
- package/dist/mcp/providers/types.js.map +1 -1
- package/dist/mcp/server/adapter.d.ts +2 -2
- package/dist/mcp/server/adapter.d.ts.map +1 -1
- package/dist/mcp/server/adapter.js +3 -7
- package/dist/mcp/server/adapter.js.map +1 -1
- package/dist/mcp/server/auth.js +5 -8
- package/dist/mcp/server/auth.js.map +1 -1
- package/dist/mcp/server/health.js +3 -6
- package/dist/mcp/server/health.js.map +1 -1
- package/dist/mcp/server/index.d.ts +10 -10
- package/dist/mcp/server/index.d.ts.map +1 -1
- package/dist/mcp/server/index.js +6 -26
- package/dist/mcp/server/index.js.map +1 -1
- package/dist/mcp/server/logging.js +13 -19
- package/dist/mcp/server/logging.js.map +1 -1
- package/dist/mcp/server/ratelimit.d.ts +1 -1
- package/dist/mcp/server/ratelimit.d.ts.map +1 -1
- package/dist/mcp/server/ratelimit.js +3 -6
- package/dist/mcp/server/ratelimit.js.map +1 -1
- package/dist/mcp/server/routes.js +1 -4
- package/dist/mcp/server/routes.js.map +1 -1
- package/dist/mcp/server/server.js +20 -23
- package/dist/mcp/server/server.js.map +1 -1
- package/dist/mcp/server/validation.js +13 -16
- package/dist/mcp/server/validation.js.map +1 -1
- package/dist/mcp/store/encrypt.d.ts +1 -1
- package/dist/mcp/store/encrypt.d.ts.map +1 -1
- package/dist/mcp/store/encrypt.js +9 -12
- package/dist/mcp/store/encrypt.js.map +1 -1
- package/dist/mcp/store/index.d.ts +3 -3
- package/dist/mcp/store/index.d.ts.map +1 -1
- package/dist/mcp/store/index.js +2 -7
- package/dist/mcp/store/index.js.map +1 -1
- package/dist/mcp/store/key.js +14 -18
- package/dist/mcp/store/key.js.map +1 -1
- package/dist/mcp/store/migrate.d.ts +1 -1
- package/dist/mcp/store/migrate.d.ts.map +1 -1
- package/dist/mcp/store/migrate.js +24 -35
- package/dist/mcp/store/migrate.js.map +1 -1
- package/dist/mcp/store/null-token-store.d.ts +1 -1
- package/dist/mcp/store/null-token-store.d.ts.map +1 -1
- package/dist/mcp/store/null-token-store.js +1 -5
- package/dist/mcp/store/null-token-store.js.map +1 -1
- package/dist/mcp/store/sqlite.d.ts +1 -1
- package/dist/mcp/store/sqlite.d.ts.map +1 -1
- package/dist/mcp/store/sqlite.js +18 -25
- package/dist/mcp/store/sqlite.js.map +1 -1
- package/dist/mcp/store/types.js +1 -2
- package/dist/mcp/store/types.js.map +1 -1
- package/dist/mcp/token/http-client.d.ts +1 -1
- package/dist/mcp/token/http-client.d.ts.map +1 -1
- package/dist/mcp/token/http-client.js +13 -16
- package/dist/mcp/token/http-client.js.map +1 -1
- package/dist/mcp/token/index.d.ts +4 -4
- package/dist/mcp/token/index.d.ts.map +1 -1
- package/dist/mcp/token/index.js +3 -14
- package/dist/mcp/token/index.js.map +1 -1
- package/dist/mcp/token/manager.d.ts +2 -2
- package/dist/mcp/token/manager.d.ts.map +1 -1
- package/dist/mcp/token/manager.js +16 -22
- package/dist/mcp/token/manager.js.map +1 -1
- package/dist/mcp/token/null-token-manager.d.ts +1 -1
- package/dist/mcp/token/null-token-manager.d.ts.map +1 -1
- package/dist/mcp/token/null-token-manager.js +1 -5
- package/dist/mcp/token/null-token-manager.js.map +1 -1
- package/dist/mcp/token/oauth.d.ts +1 -1
- package/dist/mcp/token/oauth.d.ts.map +1 -1
- package/dist/mcp/token/oauth.js +28 -36
- package/dist/mcp/token/oauth.js.map +1 -1
- package/dist/mcp/token/types.js +1 -2
- package/dist/mcp/token/types.js.map +1 -1
- package/package.json +2 -1
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Atlassian provider implementing the Provider interface.
|
|
4
3
|
*
|
|
@@ -6,14 +5,12 @@
|
|
|
6
5
|
* + 8 Confluence) and 4 resource templates via a deferred client pattern so
|
|
7
6
|
* that tool/resource registrations can happen before ready() resolves.
|
|
8
7
|
*/
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
const resources_1 = require("./resources");
|
|
16
|
-
const errors_1 = require("../../errors");
|
|
8
|
+
import { resolveCloudId } from './auth.js';
|
|
9
|
+
import { createAtlassianClient } from './client.js';
|
|
10
|
+
import { registerJiraTools } from './tools/jira.js';
|
|
11
|
+
import { registerConfluenceTools } from './tools/confluence.js';
|
|
12
|
+
import { registerAtlassianResources } from './resources.js';
|
|
13
|
+
import { ProviderError, ErrorCodes } from '../../errors/index.js';
|
|
17
14
|
const PROVIDER = 'atlassian';
|
|
18
15
|
// ---------------------------------------------------------------------------
|
|
19
16
|
// Deferred client factory
|
|
@@ -26,7 +23,7 @@ const PROVIDER = 'atlassian';
|
|
|
26
23
|
function createDeferredClient(ref) {
|
|
27
24
|
function ensureReady() {
|
|
28
25
|
if (!ref.client) {
|
|
29
|
-
throw new
|
|
26
|
+
throw new ProviderError('Atlassian provider not ready — call ready() before making API requests', ErrorCodes.CLOUD_ID_RESOLUTION_FAILED, PROVIDER);
|
|
30
27
|
}
|
|
31
28
|
return ref.client;
|
|
32
29
|
}
|
|
@@ -54,7 +51,7 @@ function createDeferredClient(ref) {
|
|
|
54
51
|
* Tools and resources are registered with a deferred client wrapper that
|
|
55
52
|
* forwards to the real AtlassianClient once ready() has resolved.
|
|
56
53
|
*/
|
|
57
|
-
class AtlassianProvider {
|
|
54
|
+
export class AtlassianProvider {
|
|
58
55
|
name = 'atlassian';
|
|
59
56
|
tokenManager;
|
|
60
57
|
logger;
|
|
@@ -66,12 +63,12 @@ class AtlassianProvider {
|
|
|
66
63
|
}
|
|
67
64
|
registerTools(registrar) {
|
|
68
65
|
const deferred = createDeferredClient(this.clientRef);
|
|
69
|
-
|
|
70
|
-
|
|
66
|
+
registerJiraTools(deferred, registrar);
|
|
67
|
+
registerConfluenceTools(deferred, registrar);
|
|
71
68
|
}
|
|
72
69
|
registerResources(registrar) {
|
|
73
70
|
const deferred = createDeferredClient(this.clientRef);
|
|
74
|
-
|
|
71
|
+
registerAtlassianResources(deferred, registrar);
|
|
75
72
|
}
|
|
76
73
|
/**
|
|
77
74
|
* Verify that:
|
|
@@ -83,14 +80,14 @@ class AtlassianProvider {
|
|
|
83
80
|
*/
|
|
84
81
|
async ready() {
|
|
85
82
|
const accessToken = await this.tokenManager.getAccessToken();
|
|
86
|
-
const resource = await
|
|
83
|
+
const resource = await resolveCloudId(accessToken);
|
|
87
84
|
this.cloudId = resource.id;
|
|
88
|
-
this.clientRef.client =
|
|
85
|
+
this.clientRef.client = createAtlassianClient(resource.id, this.tokenManager, { logger: this.logger });
|
|
89
86
|
try {
|
|
90
87
|
await this.clientRef.client.jiraGet('/myself');
|
|
91
88
|
}
|
|
92
89
|
catch (err) {
|
|
93
|
-
throw new
|
|
90
|
+
throw new ProviderError(`Jira API health check failed: ${err.message}`, ErrorCodes.API_UNAUTHORIZED, PROVIDER);
|
|
94
91
|
}
|
|
95
92
|
}
|
|
96
93
|
async shutdown() {
|
|
@@ -100,5 +97,4 @@ class AtlassianProvider {
|
|
|
100
97
|
return this.cloudId;
|
|
101
98
|
}
|
|
102
99
|
}
|
|
103
|
-
exports.AtlassianProvider = AtlassianProvider;
|
|
104
100
|
//# sourceMappingURL=provider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../../src/mcp/providers/atlassian/provider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../../src/mcp/providers/atlassian/provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AtlassianClient } from './client';
|
|
2
|
-
import type { ToolRegistrar } from '../types';
|
|
1
|
+
import type { AtlassianClient } from './client.js';
|
|
2
|
+
import type { ToolRegistrar } from '../types.js';
|
|
3
3
|
export declare function registerAtlassianResources(client: AtlassianClient, registrar: ToolRegistrar): void;
|
|
4
4
|
//# sourceMappingURL=resources.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../../../src/mcp/providers/atlassian/resources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../../../src/mcp/providers/atlassian/resources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAwFjD,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,aAAa,GAAG,IAAI,CAKlG"}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.registerAtlassianResources = registerAtlassianResources;
|
|
4
1
|
function toResourceResult(uri, data) {
|
|
5
2
|
return {
|
|
6
3
|
contents: [{ uri, text: JSON.stringify(data) }],
|
|
@@ -63,7 +60,7 @@ function registerConfluenceSpaceResource(client, registrar) {
|
|
|
63
60
|
// ---------------------------------------------------------------------------
|
|
64
61
|
// Public export
|
|
65
62
|
// ---------------------------------------------------------------------------
|
|
66
|
-
function registerAtlassianResources(client, registrar) {
|
|
63
|
+
export function registerAtlassianResources(client, registrar) {
|
|
67
64
|
registerJiraIssueResource(client, registrar);
|
|
68
65
|
registerJiraProjectResource(client, registrar);
|
|
69
66
|
registerConfluencePageResource(client, registrar);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resources.js","sourceRoot":"","sources":["../../../../src/mcp/providers/atlassian/resources.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resources.js","sourceRoot":"","sources":["../../../../src/mcp/providers/atlassian/resources.ts"],"names":[],"mappings":"AAKA,SAAS,gBAAgB,CAAC,GAAW,EAAE,IAAa;IAClD,OAAO;QACL,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;KAChD,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,yBAAyB;AACzB,8EAA8E;AAE9E,SAAS,yBAAyB,CAAC,MAAuB,EAAE,SAAwB;IAClF,SAAS,CAAC,gBAAgB,CACxB;QACE,WAAW,EAAE,mCAAmC;QAChD,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,qCAAqC;KACnD,EACD,KAAK,EAAE,MAA4B,EAA8B,EAAE;QACjE,MAAM,GAAG,GAAG,0BAA0B,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,UAAU,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnE,OAAO,gBAAgB,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC,CACF,CAAC;AACJ,CAAC;AAED,SAAS,2BAA2B,CAAC,MAAuB,EAAE,SAAwB;IACpF,SAAS,CAAC,gBAAgB,CACxB;QACE,WAAW,EAAE,uCAAuC;QACpD,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,yCAAyC;KACvD,EACD,KAAK,EAAE,MAA8B,EAA8B,EAAE;QACnE,MAAM,GAAG,GAAG,4BAA4B,MAAM,CAAC,UAAU,EAAE,CAAC;QAC5D,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,YAAY,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QACvE,OAAO,gBAAgB,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC,CACF,CAAC;AACJ,CAAC;AAED,SAAS,8BAA8B,CAAC,MAAuB,EAAE,SAAwB;IACvF,SAAS,CAAC,gBAAgB,CACxB;QACE,WAAW,EAAE,sCAAsC;QACnD,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,wCAAwC;KACtD,EACD,KAAK,EAAE,MAA0B,EAA8B,EAAE;QAC/D,MAAM,GAAG,GAAG,+BAA+B,MAAM,CAAC,MAAM,EAAE,CAAC;QAC3D,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,UAAU,MAAM,CAAC,MAAM,EAAE,EAAE;YACrE,aAAa,EAAE,SAAS;YACxB,iBAAiB,EAAE,MAAM;SAC1B,CAAC,CAAC;QACH,OAAO,gBAAgB,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC,CACF,CAAC;AACJ,CAAC;AAED,SAAS,+BAA+B,CAAC,MAAuB,EAAE,SAAwB;IACxF,SAAS,CAAC,gBAAgB,CACxB;QACE,WAAW,EAAE,yCAAyC;QACtD,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,2CAA2C;KACzD,EACD,KAAK,EAAE,MAA4B,EAA8B,EAAE;QACjE,MAAM,GAAG,GAAG,gCAAgC,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC9D,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,aAAa,CACzC,SAAS,EACT,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,CAC1B,CAAC;QACF,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;QACtC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,oBAAoB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC,CACF,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,gBAAgB;AAChB,8EAA8E;AAE9E,MAAM,UAAU,0BAA0B,CAAC,MAAuB,EAAE,SAAwB;IAC1F,yBAAyB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC7C,2BAA2B,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC/C,8BAA8B,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAClD,+BAA+B,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AACrD,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AtlassianClient } from '../client';
|
|
2
|
-
import type { ToolRegistrar } from '../../types';
|
|
1
|
+
import type { AtlassianClient } from '../client.js';
|
|
2
|
+
import type { ToolRegistrar } from '../../types.js';
|
|
3
3
|
export declare function registerConfluenceTools(client: AtlassianClient, registrar: ToolRegistrar): void;
|
|
4
4
|
//# sourceMappingURL=confluence.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"confluence.d.ts","sourceRoot":"","sources":["../../../../../src/mcp/providers/atlassian/tools/confluence.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"confluence.d.ts","sourceRoot":"","sources":["../../../../../src/mcp/providers/atlassian/tools/confluence.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAmPpD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,aAAa,GAAG,IAAI,CAS/F"}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.registerConfluenceTools = registerConfluenceTools;
|
|
4
|
-
const zod_1 = require("zod");
|
|
5
|
-
const tool_helpers_1 = require("../../tool-helpers");
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { toMcpResult } from '../../tool-helpers.js';
|
|
6
3
|
function buildParams(raw) {
|
|
7
4
|
const params = {};
|
|
8
5
|
for (const [key, value] of Object.entries(raw)) {
|
|
@@ -14,41 +11,41 @@ function buildParams(raw) {
|
|
|
14
11
|
// ---------------------------------------------------------------------------
|
|
15
12
|
// Schemas
|
|
16
13
|
// ---------------------------------------------------------------------------
|
|
17
|
-
const searchSchema =
|
|
18
|
-
cql:
|
|
19
|
-
limit:
|
|
20
|
-
start:
|
|
14
|
+
const searchSchema = z.object({
|
|
15
|
+
cql: z.string().min(1),
|
|
16
|
+
limit: z.number().int().min(1).max(100).optional(),
|
|
17
|
+
start: z.number().int().min(0).optional(),
|
|
21
18
|
});
|
|
22
|
-
const getPageSchema =
|
|
23
|
-
page_id:
|
|
19
|
+
const getPageSchema = z.object({
|
|
20
|
+
page_id: z.string().min(1),
|
|
24
21
|
});
|
|
25
|
-
const createPageSchema =
|
|
26
|
-
space_key:
|
|
27
|
-
title:
|
|
28
|
-
body:
|
|
29
|
-
parent_id:
|
|
22
|
+
const createPageSchema = z.object({
|
|
23
|
+
space_key: z.string().min(1),
|
|
24
|
+
title: z.string().min(1),
|
|
25
|
+
body: z.string().min(1),
|
|
26
|
+
parent_id: z.string().optional(),
|
|
30
27
|
});
|
|
31
|
-
const updatePageSchema =
|
|
32
|
-
page_id:
|
|
33
|
-
title:
|
|
34
|
-
body:
|
|
35
|
-
version_number:
|
|
28
|
+
const updatePageSchema = z.object({
|
|
29
|
+
page_id: z.string().min(1),
|
|
30
|
+
title: z.string().min(1),
|
|
31
|
+
body: z.string().min(1),
|
|
32
|
+
version_number: z.number().int().positive(),
|
|
36
33
|
});
|
|
37
|
-
const listSpacesSchema =
|
|
38
|
-
limit:
|
|
39
|
-
start:
|
|
40
|
-
type:
|
|
34
|
+
const listSpacesSchema = z.object({
|
|
35
|
+
limit: z.number().int().optional(),
|
|
36
|
+
start: z.number().int().optional(),
|
|
37
|
+
type: z.enum(['global', 'personal']).optional(),
|
|
41
38
|
});
|
|
42
|
-
const getSpaceSchema =
|
|
43
|
-
space_key:
|
|
39
|
+
const getSpaceSchema = z.object({
|
|
40
|
+
space_key: z.string().min(1),
|
|
44
41
|
});
|
|
45
|
-
const deletePageSchema =
|
|
46
|
-
page_id:
|
|
42
|
+
const deletePageSchema = z.object({
|
|
43
|
+
page_id: z.string().min(1),
|
|
47
44
|
});
|
|
48
|
-
const searchContentSchema =
|
|
49
|
-
cql:
|
|
50
|
-
limit:
|
|
51
|
-
start:
|
|
45
|
+
const searchContentSchema = z.object({
|
|
46
|
+
cql: z.string().min(1),
|
|
47
|
+
limit: z.number().int().optional(),
|
|
48
|
+
start: z.number().int().optional(),
|
|
52
49
|
});
|
|
53
50
|
// ---------------------------------------------------------------------------
|
|
54
51
|
// Helpers
|
|
@@ -78,7 +75,7 @@ function registerGetPage(client, registrar) {
|
|
|
78
75
|
'body-format': 'storage',
|
|
79
76
|
'include-version': 'true',
|
|
80
77
|
});
|
|
81
|
-
return
|
|
78
|
+
return toMcpResult(response.body);
|
|
82
79
|
});
|
|
83
80
|
}
|
|
84
81
|
function registerCreatePage(client, registrar) {
|
|
@@ -98,7 +95,7 @@ function registerCreatePage(client, registrar) {
|
|
|
98
95
|
body.parentId = args.parent_id;
|
|
99
96
|
}
|
|
100
97
|
const response = await client.confluencePost('/pages', body);
|
|
101
|
-
return
|
|
98
|
+
return toMcpResult(response.body);
|
|
102
99
|
});
|
|
103
100
|
}
|
|
104
101
|
function registerUpdatePage(client, registrar) {
|
|
@@ -115,7 +112,7 @@ function registerUpdatePage(client, registrar) {
|
|
|
115
112
|
version: { number: args.version_number, message: '' },
|
|
116
113
|
};
|
|
117
114
|
const response = await client.confluencePut(`/pages/${args.page_id}`, body);
|
|
118
|
-
return
|
|
115
|
+
return toMcpResult(response.body);
|
|
119
116
|
});
|
|
120
117
|
}
|
|
121
118
|
function registerDeletePage(client, registrar) {
|
|
@@ -125,7 +122,7 @@ function registerDeletePage(client, registrar) {
|
|
|
125
122
|
annotations: { destructiveHint: true },
|
|
126
123
|
}, async (args) => {
|
|
127
124
|
const response = await client.confluenceDelete(`/pages/${args.page_id}`);
|
|
128
|
-
return
|
|
125
|
+
return toMcpResult(response.body);
|
|
129
126
|
});
|
|
130
127
|
}
|
|
131
128
|
function registerListSpaces(client, registrar) {
|
|
@@ -136,7 +133,7 @@ function registerListSpaces(client, registrar) {
|
|
|
136
133
|
}, async (args) => {
|
|
137
134
|
const params = buildParams({ limit: args.limit, cursor: args.start ? String(args.start) : undefined, type: args.type });
|
|
138
135
|
const response = await client.confluenceGet('/spaces', params);
|
|
139
|
-
return
|
|
136
|
+
return toMcpResult(response.body);
|
|
140
137
|
});
|
|
141
138
|
}
|
|
142
139
|
function registerGetSpace(client, registrar) {
|
|
@@ -151,7 +148,7 @@ function registerGetSpace(client, registrar) {
|
|
|
151
148
|
if (!results || results.length === 0) {
|
|
152
149
|
throw new Error(`Space not found: ${args.space_key}`);
|
|
153
150
|
}
|
|
154
|
-
return
|
|
151
|
+
return toMcpResult(results[0]);
|
|
155
152
|
});
|
|
156
153
|
}
|
|
157
154
|
// ---------------------------------------------------------------------------
|
|
@@ -165,7 +162,7 @@ function registerSearch(client, registrar) {
|
|
|
165
162
|
}, async (args) => {
|
|
166
163
|
const params = buildParams({ cql: args.cql, limit: args.limit, start: args.start });
|
|
167
164
|
const response = await client.confluenceV1Get('/search', params);
|
|
168
|
-
return
|
|
165
|
+
return toMcpResult(response.body);
|
|
169
166
|
});
|
|
170
167
|
}
|
|
171
168
|
function registerSearchContent(client, registrar) {
|
|
@@ -176,13 +173,13 @@ function registerSearchContent(client, registrar) {
|
|
|
176
173
|
}, async (args) => {
|
|
177
174
|
const params = buildParams({ cql: args.cql, limit: args.limit, start: args.start });
|
|
178
175
|
const response = await client.confluenceV1Get('/content/search', params);
|
|
179
|
-
return
|
|
176
|
+
return toMcpResult(response.body);
|
|
180
177
|
});
|
|
181
178
|
}
|
|
182
179
|
// ---------------------------------------------------------------------------
|
|
183
180
|
// Public export
|
|
184
181
|
// ---------------------------------------------------------------------------
|
|
185
|
-
function registerConfluenceTools(client, registrar) {
|
|
182
|
+
export function registerConfluenceTools(client, registrar) {
|
|
186
183
|
registerSearch(client, registrar);
|
|
187
184
|
registerGetPage(client, registrar);
|
|
188
185
|
registerCreatePage(client, registrar);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"confluence.js","sourceRoot":"","sources":["../../../../../src/mcp/providers/atlassian/tools/confluence.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"confluence.js","sourceRoot":"","sources":["../../../../../src/mcp/providers/atlassian/tools/confluence.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AtlassianClient } from '../client';
|
|
2
|
-
import type { ToolRegistrar } from '../../types';
|
|
1
|
+
import type { AtlassianClient } from '../client.js';
|
|
2
|
+
import type { ToolRegistrar } from '../../types.js';
|
|
3
3
|
export declare function registerJiraTools(client: AtlassianClient, registrar: ToolRegistrar): void;
|
|
4
4
|
//# sourceMappingURL=jira.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jira.d.ts","sourceRoot":"","sources":["../../../../../src/mcp/providers/atlassian/tools/jira.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"jira.d.ts","sourceRoot":"","sources":["../../../../../src/mcp/providers/atlassian/tools/jira.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AA+UpD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,aAAa,GAAG,IAAI,CAYzF"}
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const markdown_to_adf_1 = require("../markdown-to-adf");
|
|
6
|
-
const validation_1 = require("../../../server/validation");
|
|
7
|
-
const tool_helpers_1 = require("../../tool-helpers");
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { markdownToAdf } from '../markdown-to-adf/index.js';
|
|
3
|
+
import { JiraIssueKeySchema } from '../../../server/validation.js';
|
|
4
|
+
import { toMcpResult } from '../../tool-helpers.js';
|
|
8
5
|
function buildParams(raw) {
|
|
9
6
|
const params = {};
|
|
10
7
|
for (const [key, value] of Object.entries(raw)) {
|
|
@@ -24,70 +21,71 @@ function buildBody(raw) {
|
|
|
24
21
|
// ---------------------------------------------------------------------------
|
|
25
22
|
// Schemas
|
|
26
23
|
// ---------------------------------------------------------------------------
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
24
|
+
const MARKDOWN_HINT = 'Use markdown format for rich text. Use ## for headings, **bold**, *italic*, - for lists. Do NOT use Jira wiki markup like h2. or {code}.';
|
|
25
|
+
const searchSchema = z.object({
|
|
26
|
+
jql: z.string().min(1),
|
|
27
|
+
max_results: z.number().int().min(1).max(100).optional(),
|
|
28
|
+
next_page_token: z.string().optional(),
|
|
29
|
+
fields: z.string().optional(),
|
|
32
30
|
});
|
|
33
|
-
const getIssueSchema =
|
|
34
|
-
issue_key:
|
|
35
|
-
fields:
|
|
31
|
+
const getIssueSchema = z.object({
|
|
32
|
+
issue_key: JiraIssueKeySchema,
|
|
33
|
+
fields: z.string().optional(),
|
|
36
34
|
});
|
|
37
|
-
const createIssueSchema =
|
|
38
|
-
project_key:
|
|
39
|
-
issue_type:
|
|
40
|
-
summary:
|
|
41
|
-
description:
|
|
42
|
-
labels:
|
|
43
|
-
assignee:
|
|
44
|
-
priority:
|
|
45
|
-
parent:
|
|
46
|
-
components:
|
|
47
|
-
story_points:
|
|
48
|
-
original_estimate:
|
|
49
|
-
remaining_estimate:
|
|
35
|
+
const createIssueSchema = z.object({
|
|
36
|
+
project_key: z.string().min(1),
|
|
37
|
+
issue_type: z.string().min(1),
|
|
38
|
+
summary: z.string().min(1),
|
|
39
|
+
description: z.string().describe(MARKDOWN_HINT).optional(),
|
|
40
|
+
labels: z.string().optional(),
|
|
41
|
+
assignee: z.string().optional(),
|
|
42
|
+
priority: z.string().optional(),
|
|
43
|
+
parent: z.string().optional(),
|
|
44
|
+
components: z.string().optional(),
|
|
45
|
+
story_points: z.number().optional(),
|
|
46
|
+
original_estimate: z.string().optional(),
|
|
47
|
+
remaining_estimate: z.string().optional(),
|
|
50
48
|
});
|
|
51
|
-
const updateIssueSchema =
|
|
52
|
-
issue_key:
|
|
53
|
-
summary:
|
|
54
|
-
description:
|
|
55
|
-
labels:
|
|
56
|
-
assignee:
|
|
57
|
-
priority:
|
|
58
|
-
components:
|
|
59
|
-
story_points:
|
|
60
|
-
original_estimate:
|
|
61
|
-
remaining_estimate:
|
|
49
|
+
const updateIssueSchema = z.object({
|
|
50
|
+
issue_key: JiraIssueKeySchema,
|
|
51
|
+
summary: z.string().optional(),
|
|
52
|
+
description: z.string().describe(MARKDOWN_HINT).optional(),
|
|
53
|
+
labels: z.string().optional(),
|
|
54
|
+
assignee: z.string().optional(),
|
|
55
|
+
priority: z.string().optional(),
|
|
56
|
+
components: z.string().optional(),
|
|
57
|
+
story_points: z.number().optional(),
|
|
58
|
+
original_estimate: z.string().optional(),
|
|
59
|
+
remaining_estimate: z.string().optional(),
|
|
62
60
|
});
|
|
63
|
-
const linkIssuesSchema =
|
|
64
|
-
inward_issue:
|
|
65
|
-
outward_issue:
|
|
66
|
-
link_type:
|
|
67
|
-
comment:
|
|
61
|
+
const linkIssuesSchema = z.object({
|
|
62
|
+
inward_issue: z.string().min(1),
|
|
63
|
+
outward_issue: z.string().min(1),
|
|
64
|
+
link_type: z.string().min(1),
|
|
65
|
+
comment: z.string().describe(MARKDOWN_HINT).optional(),
|
|
68
66
|
});
|
|
69
|
-
const addCommentSchema =
|
|
70
|
-
issue_key:
|
|
71
|
-
body:
|
|
67
|
+
const addCommentSchema = z.object({
|
|
68
|
+
issue_key: JiraIssueKeySchema,
|
|
69
|
+
body: z.string().min(1).describe(MARKDOWN_HINT),
|
|
72
70
|
});
|
|
73
|
-
const transitionIssueSchema =
|
|
74
|
-
issue_key:
|
|
75
|
-
transition_id:
|
|
71
|
+
const transitionIssueSchema = z.object({
|
|
72
|
+
issue_key: JiraIssueKeySchema,
|
|
73
|
+
transition_id: z.number().int().positive(),
|
|
76
74
|
});
|
|
77
|
-
const listProjectsSchema =
|
|
78
|
-
max_results:
|
|
79
|
-
start_at:
|
|
75
|
+
const listProjectsSchema = z.object({
|
|
76
|
+
max_results: z.number().int().min(1).optional(),
|
|
77
|
+
start_at: z.number().int().min(0).optional(),
|
|
80
78
|
});
|
|
81
|
-
const addWorklogSchema =
|
|
82
|
-
issue_key:
|
|
83
|
-
time_spent:
|
|
84
|
-
comment:
|
|
79
|
+
const addWorklogSchema = z.object({
|
|
80
|
+
issue_key: JiraIssueKeySchema,
|
|
81
|
+
time_spent: z.string().min(1),
|
|
82
|
+
comment: z.string().describe(MARKDOWN_HINT).optional(),
|
|
85
83
|
});
|
|
86
|
-
const getTransitionsSchema =
|
|
87
|
-
issue_key:
|
|
84
|
+
const getTransitionsSchema = z.object({
|
|
85
|
+
issue_key: JiraIssueKeySchema,
|
|
88
86
|
});
|
|
89
|
-
const getIssueTypesSchema =
|
|
90
|
-
project_key:
|
|
87
|
+
const getIssueTypesSchema = z.object({
|
|
88
|
+
project_key: z.string().min(1),
|
|
91
89
|
});
|
|
92
90
|
// ---------------------------------------------------------------------------
|
|
93
91
|
// Issue field builder helpers
|
|
@@ -97,7 +95,7 @@ function buildIssueFields(args) {
|
|
|
97
95
|
if (args.summary !== undefined)
|
|
98
96
|
fields.summary = args.summary;
|
|
99
97
|
if (args.description !== undefined)
|
|
100
|
-
fields.description =
|
|
98
|
+
fields.description = markdownToAdf(args.description);
|
|
101
99
|
if (args.labels !== undefined)
|
|
102
100
|
fields.labels = args.labels.split(',');
|
|
103
101
|
if (args.assignee !== undefined)
|
|
@@ -127,7 +125,7 @@ function registerSearch(client, registrar) {
|
|
|
127
125
|
fields: args.fields?.split(','),
|
|
128
126
|
});
|
|
129
127
|
const response = await client.jiraPost('/search/jql', body);
|
|
130
|
-
return
|
|
128
|
+
return toMcpResult(response.body);
|
|
131
129
|
});
|
|
132
130
|
}
|
|
133
131
|
function registerGetIssue(client, registrar) {
|
|
@@ -138,7 +136,7 @@ function registerGetIssue(client, registrar) {
|
|
|
138
136
|
}, async (args) => {
|
|
139
137
|
const params = buildParams({ fields: args.fields });
|
|
140
138
|
const response = await client.jiraGet(`/issue/${args.issue_key}`, params);
|
|
141
|
-
return
|
|
139
|
+
return toMcpResult(response.body);
|
|
142
140
|
});
|
|
143
141
|
}
|
|
144
142
|
function registerCreateIssue(client, registrar) {
|
|
@@ -154,7 +152,7 @@ function registerCreateIssue(client, registrar) {
|
|
|
154
152
|
...buildIssueFields(args),
|
|
155
153
|
};
|
|
156
154
|
const response = await client.jiraPost('/issue', { fields });
|
|
157
|
-
return
|
|
155
|
+
return toMcpResult(response.body);
|
|
158
156
|
});
|
|
159
157
|
}
|
|
160
158
|
function registerUpdateIssue(client, registrar) {
|
|
@@ -165,7 +163,7 @@ function registerUpdateIssue(client, registrar) {
|
|
|
165
163
|
}, async (args) => {
|
|
166
164
|
const fields = buildIssueFields(args);
|
|
167
165
|
const response = await client.jiraPut(`/issue/${args.issue_key}`, { fields });
|
|
168
|
-
return
|
|
166
|
+
return toMcpResult(response.body);
|
|
169
167
|
});
|
|
170
168
|
}
|
|
171
169
|
function registerLinkIssues(client, registrar) {
|
|
@@ -179,11 +177,11 @@ function registerLinkIssues(client, registrar) {
|
|
|
179
177
|
inwardIssue: { key: args.inward_issue },
|
|
180
178
|
outwardIssue: { key: args.outward_issue },
|
|
181
179
|
comment: args.comment !== undefined
|
|
182
|
-
? { body:
|
|
180
|
+
? { body: markdownToAdf(args.comment) }
|
|
183
181
|
: undefined,
|
|
184
182
|
});
|
|
185
183
|
const response = await client.jiraPost('/issueLink', body);
|
|
186
|
-
return
|
|
184
|
+
return toMcpResult(response.body);
|
|
187
185
|
});
|
|
188
186
|
}
|
|
189
187
|
function registerAddComment(client, registrar) {
|
|
@@ -193,9 +191,9 @@ function registerAddComment(client, registrar) {
|
|
|
193
191
|
annotations: { destructiveHint: true },
|
|
194
192
|
}, async (args) => {
|
|
195
193
|
const response = await client.jiraPost(`/issue/${args.issue_key}/comment`, {
|
|
196
|
-
body:
|
|
194
|
+
body: markdownToAdf(args.body),
|
|
197
195
|
});
|
|
198
|
-
return
|
|
196
|
+
return toMcpResult(response.body);
|
|
199
197
|
});
|
|
200
198
|
}
|
|
201
199
|
function registerTransitionIssue(client, registrar) {
|
|
@@ -207,7 +205,7 @@ function registerTransitionIssue(client, registrar) {
|
|
|
207
205
|
const response = await client.jiraPost(`/issue/${args.issue_key}/transitions`, {
|
|
208
206
|
transition: { id: String(args.transition_id) },
|
|
209
207
|
});
|
|
210
|
-
return
|
|
208
|
+
return toMcpResult(response.body);
|
|
211
209
|
});
|
|
212
210
|
}
|
|
213
211
|
function registerListProjects(client, registrar) {
|
|
@@ -218,7 +216,7 @@ function registerListProjects(client, registrar) {
|
|
|
218
216
|
}, async (args) => {
|
|
219
217
|
const params = buildParams({ maxResults: args.max_results, startAt: args.start_at });
|
|
220
218
|
const response = await client.jiraGet('/project', params);
|
|
221
|
-
return
|
|
219
|
+
return toMcpResult(response.body);
|
|
222
220
|
});
|
|
223
221
|
}
|
|
224
222
|
function registerAddWorklog(client, registrar) {
|
|
@@ -229,10 +227,10 @@ function registerAddWorklog(client, registrar) {
|
|
|
229
227
|
}, async (args) => {
|
|
230
228
|
const body = buildBody({
|
|
231
229
|
timeSpent: args.time_spent,
|
|
232
|
-
comment: args.comment !== undefined ?
|
|
230
|
+
comment: args.comment !== undefined ? markdownToAdf(args.comment) : undefined,
|
|
233
231
|
});
|
|
234
232
|
const response = await client.jiraPost(`/issue/${args.issue_key}/worklog`, body);
|
|
235
|
-
return
|
|
233
|
+
return toMcpResult(response.body);
|
|
236
234
|
});
|
|
237
235
|
}
|
|
238
236
|
function registerGetTransitions(client, registrar) {
|
|
@@ -242,7 +240,7 @@ function registerGetTransitions(client, registrar) {
|
|
|
242
240
|
annotations: { readOnlyHint: true },
|
|
243
241
|
}, async (args) => {
|
|
244
242
|
const response = await client.jiraGet(`/issue/${args.issue_key}/transitions`, {});
|
|
245
|
-
return
|
|
243
|
+
return toMcpResult(response.body);
|
|
246
244
|
});
|
|
247
245
|
}
|
|
248
246
|
function registerGetIssueTypes(client, registrar) {
|
|
@@ -252,13 +250,13 @@ function registerGetIssueTypes(client, registrar) {
|
|
|
252
250
|
annotations: { readOnlyHint: true },
|
|
253
251
|
}, async (args) => {
|
|
254
252
|
const response = await client.jiraGet(`/issue/createmeta/${args.project_key}/issuetypes`, {});
|
|
255
|
-
return
|
|
253
|
+
return toMcpResult(response.body);
|
|
256
254
|
});
|
|
257
255
|
}
|
|
258
256
|
// ---------------------------------------------------------------------------
|
|
259
257
|
// Public export
|
|
260
258
|
// ---------------------------------------------------------------------------
|
|
261
|
-
function registerJiraTools(client, registrar) {
|
|
259
|
+
export function registerJiraTools(client, registrar) {
|
|
262
260
|
registerSearch(client, registrar);
|
|
263
261
|
registerGetIssue(client, registrar);
|
|
264
262
|
registerCreateIssue(client, registrar);
|