@crypto512/jicon-mcp 1.3.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +68 -85
- package/TOOL_LIST.md +704 -87
- package/dist/config/constants.d.ts +18 -7
- package/dist/config/constants.d.ts.map +1 -1
- package/dist/config/constants.js +21 -8
- package/dist/config/constants.js.map +1 -1
- package/dist/config/loader.d.ts +11 -11
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +53 -93
- package/dist/config/loader.js.map +1 -1
- package/dist/config/types.d.ts +3 -6
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +2 -4
- package/dist/config/types.js.map +1 -1
- package/dist/confluence/formatters.js +1 -1
- package/dist/confluence/formatters.js.map +1 -1
- package/dist/confluence/tools.d.ts +4 -0
- package/dist/confluence/tools.d.ts.map +1 -1
- package/dist/confluence/tools.js +180 -125
- package/dist/confluence/tools.js.map +1 -1
- package/dist/index.js +17 -26
- package/dist/index.js.map +1 -1
- package/dist/jira/formatters.d.ts +1 -0
- package/dist/jira/formatters.d.ts.map +1 -1
- package/dist/jira/formatters.js +13 -12
- package/dist/jira/formatters.js.map +1 -1
- package/dist/jira/tools.d.ts +4 -0
- package/dist/jira/tools.d.ts.map +1 -1
- package/dist/jira/tools.js +189 -50
- package/dist/jira/tools.js.map +1 -1
- package/dist/permissions/tool-registry.d.ts +2 -2
- package/dist/permissions/tool-registry.d.ts.map +1 -1
- package/dist/permissions/tool-registry.js +4 -2
- package/dist/permissions/tool-registry.js.map +1 -1
- package/dist/permissions/write-home-validator.d.ts.map +1 -1
- package/dist/permissions/write-home-validator.js +13 -3
- package/dist/permissions/write-home-validator.js.map +1 -1
- package/dist/tempo/defaults.d.ts +17 -0
- package/dist/tempo/defaults.d.ts.map +1 -0
- package/dist/tempo/defaults.js +26 -0
- package/dist/tempo/defaults.js.map +1 -0
- package/dist/tempo/tools.d.ts +5 -0
- package/dist/tempo/tools.d.ts.map +1 -1
- package/dist/tempo/tools.js +108 -34
- package/dist/tempo/tools.js.map +1 -1
- package/dist/utils/buffer-pipeline/index.d.ts +30 -0
- package/dist/utils/buffer-pipeline/index.d.ts.map +1 -0
- package/dist/utils/buffer-pipeline/index.js +317 -0
- package/dist/utils/buffer-pipeline/index.js.map +1 -0
- package/dist/utils/buffer-pipeline/output/csv.d.ts +20 -0
- package/dist/utils/buffer-pipeline/output/csv.d.ts.map +1 -0
- package/dist/utils/buffer-pipeline/output/csv.js +117 -0
- package/dist/utils/buffer-pipeline/output/csv.js.map +1 -0
- package/dist/utils/buffer-pipeline/output/json.d.ts +16 -0
- package/dist/utils/buffer-pipeline/output/json.d.ts.map +1 -0
- package/dist/utils/buffer-pipeline/output/json.js +48 -0
- package/dist/utils/buffer-pipeline/output/json.js.map +1 -0
- package/dist/utils/buffer-pipeline/output/markdown.d.ts +15 -0
- package/dist/utils/buffer-pipeline/output/markdown.d.ts.map +1 -0
- package/dist/utils/buffer-pipeline/output/markdown.js +105 -0
- package/dist/utils/buffer-pipeline/output/markdown.js.map +1 -0
- package/dist/utils/buffer-pipeline/output/xhtml-list.d.ts +16 -0
- package/dist/utils/buffer-pipeline/output/xhtml-list.d.ts.map +1 -0
- package/dist/utils/buffer-pipeline/output/xhtml-list.js +81 -0
- package/dist/utils/buffer-pipeline/output/xhtml-list.js.map +1 -0
- package/dist/utils/buffer-pipeline/output/xhtml-table.d.ts +15 -0
- package/dist/utils/buffer-pipeline/output/xhtml-table.d.ts.map +1 -0
- package/dist/utils/buffer-pipeline/output/xhtml-table.js +176 -0
- package/dist/utils/buffer-pipeline/output/xhtml-table.js.map +1 -0
- package/dist/utils/buffer-pipeline/schema.d.ts +1878 -0
- package/dist/utils/buffer-pipeline/schema.d.ts.map +1 -0
- package/dist/utils/buffer-pipeline/schema.js +168 -0
- package/dist/utils/buffer-pipeline/schema.js.map +1 -0
- package/dist/utils/buffer-pipeline/stages/filter.d.ts +32 -0
- package/dist/utils/buffer-pipeline/stages/filter.d.ts.map +1 -0
- package/dist/utils/buffer-pipeline/stages/filter.js +208 -0
- package/dist/utils/buffer-pipeline/stages/filter.js.map +1 -0
- package/dist/utils/buffer-pipeline/stages/format.d.ts +45 -0
- package/dist/utils/buffer-pipeline/stages/format.d.ts.map +1 -0
- package/dist/utils/buffer-pipeline/stages/format.js +160 -0
- package/dist/utils/buffer-pipeline/stages/format.js.map +1 -0
- package/dist/utils/buffer-pipeline/stages/group-by.d.ts +25 -0
- package/dist/utils/buffer-pipeline/stages/group-by.d.ts.map +1 -0
- package/dist/utils/buffer-pipeline/stages/group-by.js +190 -0
- package/dist/utils/buffer-pipeline/stages/group-by.js.map +1 -0
- package/dist/utils/buffer-pipeline/stages/select.d.ts +54 -0
- package/dist/utils/buffer-pipeline/stages/select.d.ts.map +1 -0
- package/dist/utils/buffer-pipeline/stages/select.js +228 -0
- package/dist/utils/buffer-pipeline/stages/select.js.map +1 -0
- package/dist/utils/buffer-pipeline/stages/sort.d.ts +20 -0
- package/dist/utils/buffer-pipeline/stages/sort.d.ts.map +1 -0
- package/dist/utils/buffer-pipeline/stages/sort.js +96 -0
- package/dist/utils/buffer-pipeline/stages/sort.js.map +1 -0
- package/dist/utils/buffer-pipeline/types.d.ts +277 -0
- package/dist/utils/buffer-pipeline/types.d.ts.map +1 -0
- package/dist/utils/buffer-pipeline/types.js +8 -0
- package/dist/utils/buffer-pipeline/types.js.map +1 -0
- package/dist/utils/buffer-tools.d.ts +749 -19
- package/dist/utils/buffer-tools.d.ts.map +1 -1
- package/dist/utils/buffer-tools.js +738 -491
- package/dist/utils/buffer-tools.js.map +1 -1
- package/dist/utils/content-buffer.d.ts +55 -4
- package/dist/utils/content-buffer.d.ts.map +1 -1
- package/dist/utils/content-buffer.js +107 -9
- package/dist/utils/content-buffer.js.map +1 -1
- package/dist/utils/jicon-help.d.ts +1 -1
- package/dist/utils/jicon-help.d.ts.map +1 -1
- package/dist/utils/jicon-help.js +253 -28
- package/dist/utils/jicon-help.js.map +1 -1
- package/dist/utils/json-structure.d.ts +121 -0
- package/dist/utils/json-structure.d.ts.map +1 -0
- package/dist/utils/json-structure.js +637 -0
- package/dist/utils/json-structure.js.map +1 -0
- package/dist/utils/plantuml/include-expander.d.ts +31 -30
- package/dist/utils/plantuml/include-expander.d.ts.map +1 -1
- package/dist/utils/plantuml/include-expander.js +167 -133
- package/dist/utils/plantuml/include-expander.js.map +1 -1
- package/dist/utils/plantuml/index.d.ts +3 -3
- package/dist/utils/plantuml/index.d.ts.map +1 -1
- package/dist/utils/plantuml/index.js +4 -4
- package/dist/utils/plantuml/index.js.map +1 -1
- package/dist/utils/plantuml/service.d.ts +13 -24
- package/dist/utils/plantuml/service.d.ts.map +1 -1
- package/dist/utils/plantuml/service.js +49 -99
- package/dist/utils/plantuml/service.js.map +1 -1
- package/dist/utils/plantuml/tools.d.ts.map +1 -1
- package/dist/utils/plantuml/tools.js +33 -72
- package/dist/utils/plantuml/tools.js.map +1 -1
- package/dist/utils/plantuml/types.d.ts +1 -35
- package/dist/utils/plantuml/types.d.ts.map +1 -1
- package/dist/utils/plantuml/types.js +1 -11
- package/dist/utils/plantuml/types.js.map +1 -1
- package/dist/utils/plantuml/validation-helper.d.ts +1 -1
- package/dist/utils/plantuml/validation-helper.js +12 -12
- package/dist/utils/plantuml/validation-helper.js.map +1 -1
- package/dist/utils/response-formatter.d.ts +61 -6
- package/dist/utils/response-formatter.d.ts.map +1 -1
- package/dist/utils/response-formatter.js +174 -91
- package/dist/utils/response-formatter.js.map +1 -1
- package/dist/utils/url-tools.d.ts.map +1 -1
- package/dist/utils/url-tools.js +22 -0
- package/dist/utils/url-tools.js.map +1 -1
- package/dist/utils/xhtml/error-locator.js +2 -2
- package/dist/utils/xhtml/error-locator.js.map +1 -1
- package/dist/utils/xhtml/index.d.ts +1 -1
- package/dist/utils/xhtml/index.d.ts.map +1 -1
- package/dist/utils/xhtml/index.js +1 -1
- package/dist/utils/xhtml/index.js.map +1 -1
- package/dist/utils/xhtml/parser.d.ts +34 -5
- package/dist/utils/xhtml/parser.d.ts.map +1 -1
- package/dist/utils/xhtml/parser.js +66 -11
- package/dist/utils/xhtml/parser.js.map +1 -1
- package/dist/utils/xhtml/plantuml.d.ts.map +1 -1
- package/dist/utils/xhtml/plantuml.js +5 -3
- package/dist/utils/xhtml/plantuml.js.map +1 -1
- package/dist/utils/xhtml/serializer.d.ts.map +1 -1
- package/dist/utils/xhtml/serializer.js +12 -15
- package/dist/utils/xhtml/serializer.js.map +1 -1
- package/package.json +12 -4
- package/crypto512-jicon-mcp-1.3.0.tgz +0 -0
|
@@ -2,91 +2,53 @@
|
|
|
2
2
|
* PlantUML Service
|
|
3
3
|
*
|
|
4
4
|
* Unified service facade for PlantUML operations.
|
|
5
|
-
*
|
|
6
|
-
* Does NOT auto-restart if container dies - requires MCP restart.
|
|
5
|
+
* Connects to an external PlantUML server configured via JICON_PLANTUML_SERVER_URL.
|
|
7
6
|
*/
|
|
8
|
-
import { startContainer, stopContainer, getContainerState } from "./docker-manager.js";
|
|
9
7
|
import { PlantUmlClient, normalizePlantUml, detectDiagramType } from "./client.js";
|
|
10
|
-
import {
|
|
11
|
-
import { DEFAULT_PLANTUML_CONFIG } from "./types.js";
|
|
8
|
+
import { convertIncludes } from "./include-expander.js";
|
|
12
9
|
/**
|
|
13
|
-
*
|
|
14
|
-
*/
|
|
15
|
-
let clientInstance = null;
|
|
16
|
-
/**
|
|
17
|
-
* Service configuration
|
|
10
|
+
* Default request timeout in ms
|
|
18
11
|
*/
|
|
19
|
-
|
|
12
|
+
const DEFAULT_REQUEST_TIMEOUT = 30000;
|
|
20
13
|
/**
|
|
21
|
-
*
|
|
14
|
+
* Cached client instance
|
|
22
15
|
*/
|
|
23
|
-
let
|
|
24
|
-
let startupFailed = false;
|
|
25
|
-
let startupError = null;
|
|
26
|
-
let containerDied = false;
|
|
27
|
-
let includeExpansionEnabled = true; // Enable !include expansion by default
|
|
16
|
+
let clientInstance = null;
|
|
28
17
|
/**
|
|
29
|
-
*
|
|
18
|
+
* Service state
|
|
30
19
|
*/
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
// Reset client to pick up new config
|
|
34
|
-
clientInstance = null;
|
|
35
|
-
// Configure include expansion
|
|
36
|
-
if (config.includeExpansion !== undefined) {
|
|
37
|
-
includeExpansionEnabled = config.includeExpansion;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
20
|
+
let serverUrl = null;
|
|
21
|
+
let serverDied = false;
|
|
40
22
|
/**
|
|
41
|
-
* Initialize PlantUML service
|
|
42
|
-
*
|
|
23
|
+
* Initialize PlantUML service with external server URL.
|
|
24
|
+
* Called at MCP startup.
|
|
43
25
|
*/
|
|
44
26
|
export async function initializePlantUml(options = {}) {
|
|
45
|
-
// Reset state
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
if (options.disabled) {
|
|
51
|
-
dockerDisabled = true;
|
|
27
|
+
// Reset state
|
|
28
|
+
serverDied = false;
|
|
29
|
+
clientInstance = null;
|
|
30
|
+
if (!options.serverUrl) {
|
|
31
|
+
serverUrl = null;
|
|
52
32
|
return { success: true, disabled: true };
|
|
53
33
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
return {
|
|
57
|
-
success: true,
|
|
58
|
-
containerId: state.containerId,
|
|
59
|
-
port: state.port,
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
catch (error) {
|
|
63
|
-
startupFailed = true;
|
|
64
|
-
startupError = error instanceof Error ? error.message : String(error);
|
|
65
|
-
return {
|
|
66
|
-
success: false,
|
|
67
|
-
error: startupError,
|
|
68
|
-
};
|
|
69
|
-
}
|
|
34
|
+
serverUrl = options.serverUrl;
|
|
35
|
+
return { success: true, serverUrl };
|
|
70
36
|
}
|
|
71
37
|
/**
|
|
72
38
|
* Check if PlantUML service can be used.
|
|
73
39
|
* Returns error message if not available, null if available.
|
|
74
40
|
*/
|
|
75
41
|
export function getUnavailableReason() {
|
|
76
|
-
if (
|
|
77
|
-
return "PlantUML is
|
|
42
|
+
if (!serverUrl) {
|
|
43
|
+
return "PlantUML is not configured. Set JICON_PLANTUML_SERVER_URL environment variable to enable.";
|
|
78
44
|
}
|
|
79
|
-
if (
|
|
80
|
-
return
|
|
81
|
-
}
|
|
82
|
-
if (containerDied) {
|
|
83
|
-
return "PlantUML container has stopped. Restart the MCP server to retry.";
|
|
45
|
+
if (serverDied) {
|
|
46
|
+
return "PlantUML server is unreachable. Check server status or restart MCP.";
|
|
84
47
|
}
|
|
85
48
|
return null;
|
|
86
49
|
}
|
|
87
50
|
/**
|
|
88
51
|
* Get or create the PlantUML client
|
|
89
|
-
* Does NOT auto-restart if container died - throws error instead
|
|
90
52
|
*/
|
|
91
53
|
async function getClient() {
|
|
92
54
|
// Check if service is unavailable
|
|
@@ -100,90 +62,78 @@ async function getClient() {
|
|
|
100
62
|
if (healthy) {
|
|
101
63
|
return clientInstance;
|
|
102
64
|
}
|
|
103
|
-
//
|
|
65
|
+
// Server unreachable, mark it and throw error
|
|
104
66
|
clientInstance = null;
|
|
105
|
-
|
|
106
|
-
throw new Error("PlantUML
|
|
67
|
+
serverDied = true;
|
|
68
|
+
throw new Error("PlantUML server is unreachable. Check server status or restart MCP.");
|
|
107
69
|
}
|
|
108
|
-
//
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
70
|
+
// Create new client
|
|
71
|
+
clientInstance = new PlantUmlClient(serverUrl, DEFAULT_REQUEST_TIMEOUT);
|
|
72
|
+
// Verify connectivity on first use
|
|
73
|
+
const healthy = await clientInstance.healthCheck();
|
|
74
|
+
if (!healthy) {
|
|
75
|
+
clientInstance = null;
|
|
76
|
+
serverDied = true;
|
|
77
|
+
throw new Error("PlantUML server is unreachable. Check server status or restart MCP.");
|
|
112
78
|
}
|
|
113
|
-
clientInstance = new PlantUmlClient(state.baseUrl, serviceConfig.requestTimeout);
|
|
114
79
|
return clientInstance;
|
|
115
80
|
}
|
|
116
81
|
/**
|
|
117
82
|
* Validate PlantUML syntax
|
|
118
|
-
*
|
|
83
|
+
* Converts !include URLs to stdlib syntax for validation but returns original code
|
|
119
84
|
*/
|
|
120
85
|
export async function validate(code) {
|
|
121
86
|
const client = await getClient();
|
|
122
|
-
//
|
|
123
|
-
const codeToValidate =
|
|
124
|
-
? await expandIncludes(code)
|
|
125
|
-
: code;
|
|
87
|
+
// Convert includes to stdlib syntax (so C4/AWS/Azure macros work)
|
|
88
|
+
const codeToValidate = convertIncludes(code);
|
|
126
89
|
const result = await client.validate(codeToValidate);
|
|
127
|
-
// Return ORIGINAL code as normalizedCode
|
|
90
|
+
// Return ORIGINAL code as normalizedCode
|
|
128
91
|
result.normalizedCode = normalizePlantUml(code);
|
|
129
92
|
return result;
|
|
130
93
|
}
|
|
131
94
|
/**
|
|
132
95
|
* Render PlantUML diagram to specified format
|
|
133
|
-
*
|
|
96
|
+
* Converts !include URLs to stdlib syntax before rendering
|
|
134
97
|
*/
|
|
135
98
|
export async function render(code, format) {
|
|
136
99
|
const client = await getClient();
|
|
137
|
-
//
|
|
138
|
-
const codeToRender =
|
|
139
|
-
? await expandIncludes(code)
|
|
140
|
-
: code;
|
|
100
|
+
// Convert includes to stdlib syntax for rendering
|
|
101
|
+
const codeToRender = convertIncludes(code);
|
|
141
102
|
return client.render(codeToRender, format);
|
|
142
103
|
}
|
|
143
104
|
/**
|
|
144
|
-
* Check if PlantUML service is available
|
|
105
|
+
* Check if PlantUML service is available
|
|
145
106
|
*/
|
|
146
107
|
export function isAvailable() {
|
|
147
|
-
if (
|
|
108
|
+
if (!serverUrl || serverDied) {
|
|
148
109
|
return false;
|
|
149
110
|
}
|
|
150
|
-
|
|
151
|
-
return state?.ready ?? false;
|
|
111
|
+
return true;
|
|
152
112
|
}
|
|
153
113
|
/**
|
|
154
114
|
* Get current service status with detailed state info
|
|
155
115
|
*/
|
|
156
116
|
export function getStatus() {
|
|
157
|
-
if (
|
|
117
|
+
if (!serverUrl) {
|
|
158
118
|
return { available: false, disabled: true };
|
|
159
119
|
}
|
|
160
|
-
if (
|
|
161
|
-
return { available: false,
|
|
162
|
-
}
|
|
163
|
-
if (containerDied) {
|
|
164
|
-
return { available: false, containerDied: true };
|
|
165
|
-
}
|
|
166
|
-
const state = getContainerState();
|
|
167
|
-
if (!state?.ready) {
|
|
168
|
-
return { available: false };
|
|
120
|
+
if (serverDied) {
|
|
121
|
+
return { available: false, serverDied: true };
|
|
169
122
|
}
|
|
170
123
|
return {
|
|
171
124
|
available: true,
|
|
172
|
-
|
|
173
|
-
port: state.port,
|
|
174
|
-
baseUrl: state.baseUrl,
|
|
125
|
+
serverUrl,
|
|
175
126
|
};
|
|
176
127
|
}
|
|
177
128
|
/**
|
|
178
|
-
* Shutdown the PlantUML service (
|
|
129
|
+
* Shutdown the PlantUML service (cleanup client)
|
|
179
130
|
*/
|
|
180
131
|
export async function shutdown() {
|
|
181
132
|
clientInstance = null;
|
|
182
|
-
await stopContainer();
|
|
183
133
|
}
|
|
184
134
|
/**
|
|
185
135
|
* Re-export utility functions for convenience
|
|
186
136
|
*/
|
|
187
137
|
export { normalizePlantUml, detectDiagramType };
|
|
188
|
-
export {
|
|
138
|
+
export { convertPlantUmlIncludesInXhtml } from "./include-expander.js";
|
|
189
139
|
//# sourceMappingURL=service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/utils/plantuml/service.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/utils/plantuml/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/utils/plantuml/tools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/utils/plantuml/tools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAKzE,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,YAAY,CAAC;AA2CpB;;GAEG;AACH,wBAAgB,mBAAmB;;;;;;;;;;;;;wBAMP;YACpB,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,QAAQ,CAAC,EAAE,MAAM,CAAC;SACnB,KAAG,OAAO,CAAC,cAAc,CAAC;;;;;;;;;;;;;;;;;;;;wBAqHL;YACpB,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,MAAM,CAAC,EAAE,YAAY,CAAC;YACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;SACnB,KAAG,OAAO,CAAC,cAAc,CAAC;;;;;uBA6FR,OAAO,CAAC,cAAc,CAAC;;EAkC/C;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,sEAIjB,CAAC"}
|
|
@@ -7,6 +7,7 @@ import { z } from "zod";
|
|
|
7
7
|
import { formatSuccess, formatError } from "../response-formatter.js";
|
|
8
8
|
import { contentBuffer } from "../content-buffer.js";
|
|
9
9
|
import { validate, render, getStatus, getUnavailableReason } from "./service.js";
|
|
10
|
+
import { IncludeConversionError } from "./include-expander.js";
|
|
10
11
|
import { PlantUmlValidateInputSchema, PlantUmlRenderInputSchema, } from "./types.js";
|
|
11
12
|
/**
|
|
12
13
|
* Maximum inline content size before buffering (16KB)
|
|
@@ -24,7 +25,7 @@ function resolveCode(args) {
|
|
|
24
25
|
if (!info) {
|
|
25
26
|
throw new Error(`Buffer not found: ${args.bufferId}`);
|
|
26
27
|
}
|
|
27
|
-
const chunk = contentBuffer.getChunk(args.bufferId, 0, info.
|
|
28
|
+
const chunk = contentBuffer.getChunk(args.bufferId, 0, info.bufferSizeBytes);
|
|
28
29
|
if (!chunk) {
|
|
29
30
|
throw new Error(`Failed to read buffer: ${args.bufferId}`);
|
|
30
31
|
}
|
|
@@ -50,21 +51,8 @@ function injectMaxWidth(code, maxWidth) {
|
|
|
50
51
|
export function createPlantUmlTools() {
|
|
51
52
|
return {
|
|
52
53
|
plantuml_validate: {
|
|
53
|
-
description: `Validate PlantUML diagram syntax
|
|
54
|
-
|
|
55
|
-
IMPORTANT: Call help(topic="plantuml") FIRST to learn Confluence PlantUML requirements.
|
|
56
|
-
|
|
57
|
-
Returns:
|
|
58
|
-
- valid: Whether the diagram syntax is correct
|
|
59
|
-
- diagramType: Detected type (sequence, class, activity, component, state, c4, etc.)
|
|
60
|
-
- errors: Line-level error details if invalid
|
|
61
|
-
|
|
62
|
-
Validate ONE diagram at a time. Do not pass full document content.
|
|
63
|
-
|
|
64
|
-
Example:
|
|
65
|
-
plantuml_validate(code="@startuml\\nA -> B: message\\n@enduml")
|
|
66
|
-
|
|
67
|
-
Workflow: help(topic="plantuml") → validate → buffer_edit with plantuml parameter`,
|
|
54
|
+
description: `Validate PlantUML diagram syntax. Returns valid, diagramType, errors.
|
|
55
|
+
Validate ONE diagram at a time. Call help(topic="plantuml") for Confluence requirements.`,
|
|
68
56
|
inputSchema: PlantUmlValidateInputSchema,
|
|
69
57
|
handler: async (args) => {
|
|
70
58
|
// Check if PlantUML is available
|
|
@@ -148,41 +136,27 @@ Workflow: help(topic="plantuml") → validate → buffer_edit with plantuml para
|
|
|
148
136
|
});
|
|
149
137
|
}
|
|
150
138
|
catch (error) {
|
|
151
|
-
// Check if it's
|
|
152
|
-
|
|
153
|
-
if (message.includes("Docker") ||
|
|
154
|
-
message.includes("container") ||
|
|
155
|
-
message.includes("ENOENT")) {
|
|
139
|
+
// Check if it's an include conversion error
|
|
140
|
+
if (error instanceof IncludeConversionError) {
|
|
156
141
|
return formatError({
|
|
157
142
|
error: true,
|
|
158
|
-
message:
|
|
159
|
-
statusCode:
|
|
143
|
+
message: error.message,
|
|
144
|
+
statusCode: 400,
|
|
160
145
|
details: {
|
|
161
|
-
|
|
162
|
-
|
|
146
|
+
url: error.url,
|
|
147
|
+
suggestion: error.suggestion,
|
|
148
|
+
hint: "Replace the HTTP URL with the suggested stdlib syntax",
|
|
163
149
|
},
|
|
164
150
|
});
|
|
165
151
|
}
|
|
152
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
166
153
|
return formatError(error instanceof Error ? error : new Error(message));
|
|
167
154
|
}
|
|
168
155
|
},
|
|
169
156
|
},
|
|
170
157
|
plantuml_render: {
|
|
171
|
-
description: `Render PlantUML diagram
|
|
172
|
-
|
|
173
|
-
TIP: Call help(topic="plantuml") for Confluence-specific PlantUML syntax.
|
|
174
|
-
|
|
175
|
-
Formats:
|
|
176
|
-
- ascii: Text preview in terminal (use maxWidth=80 for readability)
|
|
177
|
-
- svg: Vector graphics (default)
|
|
178
|
-
- png: Image file (base64, use buffer_save_to_file to save)
|
|
179
|
-
- eps: Print-quality vector
|
|
180
|
-
|
|
181
|
-
Use ascii format to preview diagrams before inserting into Confluence.
|
|
182
|
-
|
|
183
|
-
Example:
|
|
184
|
-
plantuml_render(code="@startuml\\nA -> B\\n@enduml", format="ascii")
|
|
185
|
-
plantuml_render(code="...", format="ascii", maxWidth=80)`,
|
|
158
|
+
description: `Render PlantUML diagram. Formats: ascii (preview), svg (default), png (base64), eps.
|
|
159
|
+
Use ascii with maxWidth=80 to preview before inserting into Confluence.`,
|
|
186
160
|
inputSchema: PlantUmlRenderInputSchema,
|
|
187
161
|
handler: async (args) => {
|
|
188
162
|
// Check if PlantUML is available
|
|
@@ -212,9 +186,7 @@ Example:
|
|
|
212
186
|
format: result.format,
|
|
213
187
|
contentType: result.contentType,
|
|
214
188
|
});
|
|
215
|
-
const hint =
|
|
216
|
-
? "Use buffer_save_to_file to save to disk, or buffer_get_chunk to retrieve base64"
|
|
217
|
-
: "Use buffer_get_chunk to retrieve content";
|
|
189
|
+
const hint = "Use buffer_get_chunk to retrieve content";
|
|
218
190
|
return formatSuccess({
|
|
219
191
|
format: result.format,
|
|
220
192
|
contentType: result.contentType,
|
|
@@ -232,30 +204,29 @@ Example:
|
|
|
232
204
|
});
|
|
233
205
|
}
|
|
234
206
|
catch (error) {
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
if (message.includes("syntax error") || message.includes("Syntax Error")) {
|
|
207
|
+
// Check if it's an include conversion error
|
|
208
|
+
if (error instanceof IncludeConversionError) {
|
|
238
209
|
return formatError({
|
|
239
210
|
error: true,
|
|
240
|
-
message:
|
|
211
|
+
message: error.message,
|
|
241
212
|
statusCode: 400,
|
|
242
213
|
details: {
|
|
243
|
-
|
|
244
|
-
|
|
214
|
+
url: error.url,
|
|
215
|
+
suggestion: error.suggestion,
|
|
216
|
+
hint: "Replace the HTTP URL with the suggested stdlib syntax",
|
|
245
217
|
},
|
|
246
218
|
});
|
|
247
219
|
}
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
message.includes("ENOENT")) {
|
|
220
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
221
|
+
// Check for syntax errors in the response
|
|
222
|
+
if (message.includes("syntax error") || message.includes("Syntax Error")) {
|
|
252
223
|
return formatError({
|
|
253
224
|
error: true,
|
|
254
|
-
message: "PlantUML
|
|
255
|
-
statusCode:
|
|
225
|
+
message: "PlantUML syntax error - diagram cannot be rendered",
|
|
226
|
+
statusCode: 400,
|
|
256
227
|
details: {
|
|
257
228
|
originalError: message,
|
|
258
|
-
hint: "
|
|
229
|
+
hint: "Use plantuml_validate to check syntax first",
|
|
259
230
|
},
|
|
260
231
|
});
|
|
261
232
|
}
|
|
@@ -274,31 +245,21 @@ Returns availability status and detailed state information.`,
|
|
|
274
245
|
return formatSuccess({
|
|
275
246
|
available: false,
|
|
276
247
|
disabled: true,
|
|
277
|
-
message: "PlantUML is
|
|
278
|
-
});
|
|
279
|
-
}
|
|
280
|
-
if (status.startupFailed) {
|
|
281
|
-
return formatSuccess({
|
|
282
|
-
available: false,
|
|
283
|
-
startupFailed: true,
|
|
284
|
-
error: status.error,
|
|
285
|
-
message: "PlantUML failed to start. Check Docker configuration.",
|
|
248
|
+
message: "PlantUML is not configured. Set JICON_PLANTUML_SERVER_URL to enable.",
|
|
286
249
|
});
|
|
287
250
|
}
|
|
288
|
-
if (status.
|
|
251
|
+
if (status.serverDied) {
|
|
289
252
|
return formatSuccess({
|
|
290
253
|
available: false,
|
|
291
|
-
|
|
292
|
-
message: "PlantUML
|
|
254
|
+
serverDied: true,
|
|
255
|
+
message: "PlantUML server is unreachable. Check server status or restart MCP.",
|
|
293
256
|
});
|
|
294
257
|
}
|
|
295
258
|
if (status.available) {
|
|
296
259
|
return formatSuccess({
|
|
297
260
|
available: true,
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
baseUrl: status.baseUrl,
|
|
301
|
-
message: "PlantUML service is running",
|
|
261
|
+
serverUrl: status.serverUrl,
|
|
262
|
+
message: "PlantUML service is available",
|
|
302
263
|
});
|
|
303
264
|
}
|
|
304
265
|
return formatSuccess({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/utils/plantuml/tools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACjF,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,GAE1B,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,MAAM,eAAe,GAAG,EAAE,GAAG,IAAI,CAAC;AAElC;;GAEG;AACH,SAAS,WAAW,CAAC,IAA0C;IAC7D,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACxD,CAAC;QACD,MAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/utils/plantuml/tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* PlantUML Types
|
|
3
3
|
*
|
|
4
|
-
* Type definitions for the PlantUML
|
|
4
|
+
* Type definitions for the PlantUML validation and rendering service.
|
|
5
5
|
*/
|
|
6
6
|
import { z } from "zod";
|
|
7
7
|
/**
|
|
@@ -54,40 +54,6 @@ export interface PlantUmlRenderResult {
|
|
|
54
54
|
/** Size in bytes */
|
|
55
55
|
size: number;
|
|
56
56
|
}
|
|
57
|
-
/**
|
|
58
|
-
* Docker container state
|
|
59
|
-
*/
|
|
60
|
-
export interface ContainerState {
|
|
61
|
-
/** Container ID */
|
|
62
|
-
containerId: string;
|
|
63
|
-
/** Container name */
|
|
64
|
-
containerName: string;
|
|
65
|
-
/** Host port mapped to container's 8080 */
|
|
66
|
-
port: number;
|
|
67
|
-
/** Base URL for PlantUML server */
|
|
68
|
-
baseUrl: string;
|
|
69
|
-
/** Whether container is ready to accept requests */
|
|
70
|
-
ready: boolean;
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* PlantUML service configuration
|
|
74
|
-
*/
|
|
75
|
-
export interface PlantUmlConfig {
|
|
76
|
-
/** Docker image to use (default: plantuml/plantuml-server:latest) */
|
|
77
|
-
image?: string;
|
|
78
|
-
/** Timeout for container startup in ms (default: 30000) */
|
|
79
|
-
startupTimeout?: number;
|
|
80
|
-
/** Timeout for requests in ms (default: 30000) */
|
|
81
|
-
requestTimeout?: number;
|
|
82
|
-
/** Port range start for dynamic allocation (default: 49152) */
|
|
83
|
-
portRangeStart?: number;
|
|
84
|
-
/** Port range end for dynamic allocation (default: 65535) */
|
|
85
|
-
portRangeEnd?: number;
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Default configuration values
|
|
89
|
-
*/
|
|
90
|
-
export declare const DEFAULT_PLANTUML_CONFIG: Required<PlantUmlConfig>;
|
|
91
57
|
/**
|
|
92
58
|
* Semantic positions for PlantUML insertion in Confluence documents
|
|
93
59
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/utils/plantuml/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,eAAO,MAAM,kBAAkB,2CAAyC,CAAC;AACzE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;GAEG;AACH,MAAM,MAAM,WAAW,GACnB,UAAU,GACV,OAAO,GACP,UAAU,GACV,WAAW,GACX,OAAO,GACP,SAAS,GACT,QAAQ,GACR,YAAY,GACZ,QAAQ,GACR,SAAS,GACT,OAAO,GACP,KAAK,GACL,MAAM,GACN,MAAM,GACN,IAAI,GACJ,SAAS,CAAC;AAEd;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,0CAA0C;IAC1C,KAAK,EAAE,OAAO,CAAC;IACf,qDAAqD;IACrD,cAAc,EAAE,MAAM,CAAC;IACvB,4BAA4B;IAC5B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,mCAAmC;IACnC,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,2BAA2B;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wBAAwB;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/utils/plantuml/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,eAAO,MAAM,kBAAkB,2CAAyC,CAAC;AACzE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;GAEG;AACH,MAAM,MAAM,WAAW,GACnB,UAAU,GACV,OAAO,GACP,UAAU,GACV,WAAW,GACX,OAAO,GACP,SAAS,GACT,QAAQ,GACR,YAAY,GACZ,QAAQ,GACR,SAAS,GACT,OAAO,GACP,KAAK,GACL,MAAM,GACN,MAAM,GACN,IAAI,GACJ,SAAS,CAAC;AAEd;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,0CAA0C;IAC1C,KAAK,EAAE,OAAO,CAAC;IACf,qDAAqD;IACrD,cAAc,EAAE,MAAM,CAAC;IACvB,4BAA4B;IAC5B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,mCAAmC;IACnC,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,2BAA2B;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wBAAwB;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB,mFAMjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE;;;GAGG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;EAStC,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;EAoBpC,CAAC"}
|
|
@@ -1,23 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* PlantUML Types
|
|
3
3
|
*
|
|
4
|
-
* Type definitions for the PlantUML
|
|
4
|
+
* Type definitions for the PlantUML validation and rendering service.
|
|
5
5
|
*/
|
|
6
6
|
import { z } from "zod";
|
|
7
7
|
/**
|
|
8
8
|
* Supported output formats for PlantUML rendering
|
|
9
9
|
*/
|
|
10
10
|
export const RenderFormatSchema = z.enum(["ascii", "png", "svg", "eps"]);
|
|
11
|
-
/**
|
|
12
|
-
* Default configuration values
|
|
13
|
-
*/
|
|
14
|
-
export const DEFAULT_PLANTUML_CONFIG = {
|
|
15
|
-
image: "plantuml/plantuml-server:latest",
|
|
16
|
-
startupTimeout: 30000,
|
|
17
|
-
requestTimeout: 30000,
|
|
18
|
-
portRangeStart: 49152,
|
|
19
|
-
portRangeEnd: 65535,
|
|
20
|
-
};
|
|
21
11
|
/**
|
|
22
12
|
* Semantic positions for PlantUML insertion in Confluence documents
|
|
23
13
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/utils/plantuml/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/utils/plantuml/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AAoEzE;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,IAAI,CAAC;IAC3C,aAAa;IACb,eAAe;IACf,gBAAgB;IAChB,KAAK;IACL,WAAW;CACZ,CAAC,CAAC;AAGH;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,mDAAmD,CAAC;IAChE,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,0DAA0D,CAAC;CACxE,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,mDAAmD,CAAC;IAChE,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,0DAA0D,CAAC;IACvE,MAAM,EAAE,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAChD,gDAAgD,CACjD;IACD,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,GAAG,CAAC,EAAE,CAAC;SACP,GAAG,CAAC,GAAG,CAAC;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,mGAAmG,CACpG;CACJ,CAAC,CAAC"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Consolidates the repeated validation logic from buffer-tools.ts
|
|
5
5
|
* into a single reusable function.
|
|
6
6
|
*
|
|
7
|
-
* Requires
|
|
7
|
+
* Requires external PlantUML server - returns error if unavailable.
|
|
8
8
|
*/
|
|
9
9
|
import type { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
|
|
10
10
|
/**
|