@crypto512/jicon-mcp 2.1.1 → 2.2.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 +288 -1
- package/TOOL_LIST.md +390 -87
- package/dist/config/constants.d.ts +12 -0
- package/dist/config/constants.d.ts.map +1 -1
- package/dist/config/constants.js +13 -0
- package/dist/config/constants.js.map +1 -1
- package/dist/config/loader.d.ts +8 -0
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +27 -1
- package/dist/config/loader.js.map +1 -1
- package/dist/config/types.d.ts +93 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +26 -0
- package/dist/config/types.js.map +1 -1
- package/dist/confluence/tools.d.ts +8 -1
- package/dist/confluence/tools.d.ts.map +1 -1
- package/dist/confluence/tools.js +61 -51
- package/dist/confluence/tools.js.map +1 -1
- package/dist/credentials/client-factory.d.ts +64 -0
- package/dist/credentials/client-factory.d.ts.map +1 -0
- package/dist/credentials/client-factory.js +110 -0
- package/dist/credentials/client-factory.js.map +1 -0
- package/dist/credentials/context.d.ts +25 -0
- package/dist/credentials/context.d.ts.map +1 -0
- package/dist/credentials/context.js +35 -0
- package/dist/credentials/context.js.map +1 -0
- package/dist/credentials/extractor.d.ts +21 -0
- package/dist/credentials/extractor.d.ts.map +1 -0
- package/dist/credentials/extractor.js +46 -0
- package/dist/credentials/extractor.js.map +1 -0
- package/dist/credentials/index.d.ts +9 -0
- package/dist/credentials/index.d.ts.map +1 -0
- package/dist/credentials/index.js +8 -0
- package/dist/credentials/index.js.map +1 -0
- package/dist/credentials/types.d.ts +21 -0
- package/dist/credentials/types.d.ts.map +1 -0
- package/dist/credentials/types.js +13 -0
- package/dist/credentials/types.js.map +1 -0
- package/dist/index.js +98 -75
- package/dist/index.js.map +1 -1
- package/dist/jira/activity-tools.d.ts +54 -1
- package/dist/jira/activity-tools.d.ts.map +1 -1
- package/dist/jira/activity-tools.js +737 -79
- package/dist/jira/activity-tools.js.map +1 -1
- package/dist/jira/client.d.ts +34 -2
- package/dist/jira/client.d.ts.map +1 -1
- package/dist/jira/client.js +119 -63
- package/dist/jira/client.js.map +1 -1
- package/dist/jira/tools.d.ts +58 -1
- package/dist/jira/tools.d.ts.map +1 -1
- package/dist/jira/tools.js +226 -27
- package/dist/jira/tools.js.map +1 -1
- package/dist/jira/types.d.ts +22 -0
- package/dist/jira/types.d.ts.map +1 -1
- package/dist/permissions/tool-registry.d.ts +10 -10
- package/dist/permissions/tool-registry.d.ts.map +1 -1
- package/dist/permissions/tool-registry.js +8 -4
- package/dist/permissions/tool-registry.js.map +1 -1
- package/dist/tempo/tools.d.ts +33 -1
- package/dist/tempo/tools.d.ts.map +1 -1
- package/dist/tempo/tools.js +141 -17
- package/dist/tempo/tools.js.map +1 -1
- package/dist/transport/http.d.ts +18 -0
- package/dist/transport/http.d.ts.map +1 -0
- package/dist/transport/http.js +66 -0
- package/dist/transport/http.js.map +1 -0
- package/dist/transport/index.d.ts +17 -0
- package/dist/transport/index.d.ts.map +1 -0
- package/dist/transport/index.js +32 -0
- package/dist/transport/index.js.map +1 -0
- package/dist/transport/types.d.ts +15 -0
- package/dist/transport/types.d.ts.map +1 -0
- package/dist/transport/types.js +12 -0
- package/dist/transport/types.js.map +1 -0
- package/dist/types.d.ts +10 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +0 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/buffer-pipeline/index.js +2 -2
- package/dist/utils/buffer-pipeline/index.js.map +1 -1
- package/dist/utils/buffer-pipeline/schema.d.ts +99 -99
- package/dist/utils/buffer-pipeline/schema.d.ts.map +1 -1
- package/dist/utils/buffer-tools.d.ts +91 -83
- package/dist/utils/buffer-tools.d.ts.map +1 -1
- package/dist/utils/buffer-tools.js +312 -139
- package/dist/utils/buffer-tools.js.map +1 -1
- package/dist/utils/jicon-help.d.ts +3 -3
- package/dist/utils/jicon-help.d.ts.map +1 -1
- package/dist/utils/jicon-help.js +141 -10
- package/dist/utils/jicon-help.js.map +1 -1
- package/dist/utils/json-structure.d.ts +11 -0
- package/dist/utils/json-structure.d.ts.map +1 -1
- package/dist/utils/json-structure.js +61 -0
- package/dist/utils/json-structure.js.map +1 -1
- package/dist/utils/plantuml/tools.d.ts +4 -4
- package/dist/utils/plantuml/tools.d.ts.map +1 -1
- package/dist/utils/plantuml/tools.js +29 -8
- package/dist/utils/plantuml/tools.js.map +1 -1
- package/dist/utils/plantuml/types.d.ts +4 -4
- package/dist/utils/response-formatter.d.ts.map +1 -1
- package/dist/utils/response-formatter.js +8 -4
- package/dist/utils/response-formatter.js.map +1 -1
- package/package.json +5 -2
package/dist/index.js
CHANGED
|
@@ -3,11 +3,7 @@
|
|
|
3
3
|
* Jira, Confluence, and Tempo MCP Server
|
|
4
4
|
*/
|
|
5
5
|
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
6
|
-
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
7
6
|
import { CallToolRequestSchema, ListToolsRequestSchema, ListPromptsRequestSchema, GetPromptRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
|
|
8
|
-
import { JiraClient } from "./jira/client.js";
|
|
9
|
-
import { ConfluenceClient } from "./confluence/client.js";
|
|
10
|
-
import { TempoClient } from "./tempo/client.js";
|
|
11
7
|
import { createJiraTools } from "./jira/tools.js";
|
|
12
8
|
import { createActivityTools } from "./jira/activity-tools.js";
|
|
13
9
|
import { createConfluenceTools } from "./confluence/tools.js";
|
|
@@ -19,6 +15,8 @@ import { createJiconHelpTools, WORKFLOW_GUIDE } from "./utils/jicon-help.js";
|
|
|
19
15
|
import { createDateTools } from "./utils/date-tools.js";
|
|
20
16
|
import { createPlantUmlTools, shutdown as shutdownPlantUml, initializePlantUml } from "./utils/plantuml/index.js";
|
|
21
17
|
import { ConfigLoader } from "./config/loader.js";
|
|
18
|
+
import { createTransport } from "./transport/index.js";
|
|
19
|
+
import { ClientFactory, extractCredentials, runWithCredentials } from "./credentials/index.js";
|
|
22
20
|
import { PermissionFilter } from "./permissions/filter.js";
|
|
23
21
|
import { WriteHomeValidator } from "./permissions/write-home-validator.js";
|
|
24
22
|
import { getMaxOutputSize } from "./utils/response-formatter.js";
|
|
@@ -29,24 +27,22 @@ const permissionFilter = new PermissionFilter(config.permissions);
|
|
|
29
27
|
// Convert to ApiConfig format
|
|
30
28
|
const JIRA_CONFIG = ConfigLoader.toApiConfig(config.jira);
|
|
31
29
|
const CONFLUENCE_CONFIG = ConfigLoader.toApiConfig(config.confluence);
|
|
32
|
-
// Initialize
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
// Tempo uses the same Jira configuration and authentication (v4 API)
|
|
38
|
-
const tempoClient = JIRA_CONFIG ? new TempoClient(JIRA_CONFIG) : null;
|
|
30
|
+
// Initialize client factory for per-request credential support
|
|
31
|
+
const clientFactory = new ClientFactory({
|
|
32
|
+
defaultJiraConfig: JIRA_CONFIG,
|
|
33
|
+
defaultConfluenceConfig: CONFLUENCE_CONFIG,
|
|
34
|
+
});
|
|
39
35
|
// Initialize write-home validator if Confluence is configured and write-home is enabled
|
|
40
|
-
|
|
41
|
-
|
|
36
|
+
// Note: Uses default client for validation since write-home is a server-level setting
|
|
37
|
+
const writeHomeValidator = CONFLUENCE_CONFIG && permissionFilter.isWriteHomeEnabled()
|
|
38
|
+
? new WriteHomeValidator(clientFactory.getDefaultClients().confluence)
|
|
42
39
|
: null;
|
|
43
|
-
// Create tools
|
|
44
|
-
|
|
45
|
-
const
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
const tempoTools = tempoClient ? createTempoTools(tempoClient) : {};
|
|
40
|
+
// Create tools with client getter functions
|
|
41
|
+
// This allows per-request credentials via AsyncLocalStorage
|
|
42
|
+
const jiraTools = createJiraTools(() => clientFactory.getJiraClient());
|
|
43
|
+
const jiraActivityTools = createActivityTools(() => clientFactory.getJiraClient());
|
|
44
|
+
const confluenceTools = createConfluenceTools(() => clientFactory.getConfluenceClient());
|
|
45
|
+
const tempoTools = createTempoTools(() => clientFactory.getTempoClient());
|
|
50
46
|
const bufferTools = createBufferTools();
|
|
51
47
|
const workloadTools = createWorkloadTools();
|
|
52
48
|
const urlTools = createUrlTools({
|
|
@@ -57,9 +53,10 @@ const jiconHelpTools = createJiconHelpTools();
|
|
|
57
53
|
const dateTools = createDateTools();
|
|
58
54
|
// Conditionally register PlantUML tools (only when server URL is configured)
|
|
59
55
|
const plantUmlTools = config.plantUmlServerUrl ? createPlantUmlTools() : {};
|
|
60
|
-
// Build tool registry, conditionally excluding XHTML-only buffer tools when Confluence is not configured
|
|
56
|
+
// Build tool registry, conditionally excluding XHTML-only buffer tools when Confluence is not configured by default
|
|
57
|
+
// (Per-request credentials can still enable Confluence)
|
|
61
58
|
const xhtmlOnlyTools = ["buffer_get_structure", "buffer_get_element", "buffer_validate_xhtml"];
|
|
62
|
-
const filteredBufferTools =
|
|
59
|
+
const filteredBufferTools = CONFLUENCE_CONFIG
|
|
63
60
|
? bufferTools
|
|
64
61
|
: Object.fromEntries(Object.entries(bufferTools).filter(([name]) => !xhtmlOnlyTools.includes(name)));
|
|
65
62
|
const allTools = { ...jiraTools, ...jiraActivityTools, ...confluenceTools, ...tempoTools, ...filteredBufferTools, ...workloadTools, ...urlTools, ...jiconHelpTools, ...dateTools, ...plantUmlTools };
|
|
@@ -90,7 +87,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
|
90
87
|
return { tools };
|
|
91
88
|
});
|
|
92
89
|
// Handle call_tool request
|
|
93
|
-
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
90
|
+
server.setRequestHandler(CallToolRequestSchema, async (request, extra) => {
|
|
94
91
|
const toolName = request.params.name;
|
|
95
92
|
const tool = allTools[toolName];
|
|
96
93
|
if (!tool) {
|
|
@@ -122,55 +119,60 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
122
119
|
isError: true,
|
|
123
120
|
};
|
|
124
121
|
}
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
122
|
+
// Extract per-request credentials from HTTP headers (if available)
|
|
123
|
+
const credentials = extractCredentials(extra.requestInfo?.headers);
|
|
124
|
+
// Run tool handler with credentials in AsyncLocalStorage context
|
|
125
|
+
return runWithCredentials(credentials, async () => {
|
|
126
|
+
try {
|
|
127
|
+
// Validate and parse arguments
|
|
128
|
+
const parsedArgs = tool.inputSchema.parse(request.params.arguments || {});
|
|
129
|
+
// Write-home validation for Confluence tools
|
|
130
|
+
if (writeHomeValidator && writeHomeValidator.requiresValidation(toolName)) {
|
|
131
|
+
const validation = await writeHomeValidator.validate(toolName, parsedArgs);
|
|
132
|
+
if (!validation.allowed) {
|
|
133
|
+
return {
|
|
134
|
+
content: [
|
|
135
|
+
{
|
|
136
|
+
type: "text",
|
|
137
|
+
text: JSON.stringify({
|
|
138
|
+
error: true,
|
|
139
|
+
message: validation.reason,
|
|
140
|
+
writeHomeRestriction: true,
|
|
141
|
+
userSpaceKey: validation.userSpaceKey,
|
|
142
|
+
targetSpaceKey: validation.targetSpaceKey,
|
|
143
|
+
}),
|
|
144
|
+
},
|
|
145
|
+
],
|
|
146
|
+
isError: true,
|
|
147
|
+
};
|
|
148
|
+
}
|
|
147
149
|
}
|
|
150
|
+
// Execute tool handler
|
|
151
|
+
const result = await tool.handler(parsedArgs);
|
|
152
|
+
return result;
|
|
148
153
|
}
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
isError: true,
|
|
172
|
-
};
|
|
173
|
-
}
|
|
154
|
+
catch (error) {
|
|
155
|
+
// Only include stack traces in development mode for security
|
|
156
|
+
const isDevelopment = process.env.NODE_ENV === "development";
|
|
157
|
+
return {
|
|
158
|
+
content: [
|
|
159
|
+
{
|
|
160
|
+
type: "text",
|
|
161
|
+
text: JSON.stringify({
|
|
162
|
+
error: true,
|
|
163
|
+
message: error instanceof Error ? error.message : String(error),
|
|
164
|
+
details: error instanceof Error && isDevelopment
|
|
165
|
+
? { stack: error.stack, name: error.name }
|
|
166
|
+
: error instanceof Error
|
|
167
|
+
? { name: error.name }
|
|
168
|
+
: undefined,
|
|
169
|
+
}),
|
|
170
|
+
},
|
|
171
|
+
],
|
|
172
|
+
isError: true,
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
});
|
|
174
176
|
});
|
|
175
177
|
// Handle list_prompts request
|
|
176
178
|
server.setRequestHandler(ListPromptsRequestSchema, async () => {
|
|
@@ -203,8 +205,9 @@ server.setRequestHandler(GetPromptRequestSchema, async (request) => {
|
|
|
203
205
|
});
|
|
204
206
|
// Start server
|
|
205
207
|
async function main() {
|
|
206
|
-
// Check if at least one service is configured
|
|
207
|
-
|
|
208
|
+
// Check if at least one service is configured (either via env vars or HTTP mode for per-request credentials)
|
|
209
|
+
const isHttpMode = config.transport.mode === "http";
|
|
210
|
+
if (!JIRA_CONFIG && !CONFLUENCE_CONFIG && !isHttpMode) {
|
|
208
211
|
console.error("Error: No services configured!");
|
|
209
212
|
console.error("Please configure at least one service using environment variables:");
|
|
210
213
|
console.error("\n Jira:");
|
|
@@ -215,6 +218,8 @@ async function main() {
|
|
|
215
218
|
console.error(" CONFLUENCE_URL");
|
|
216
219
|
console.error(" CONFLUENCE_USERNAME (optional for PAT)");
|
|
217
220
|
console.error(" CONFLUENCE_API_TOKEN");
|
|
221
|
+
console.error("\n Or use HTTP mode with per-request credentials:");
|
|
222
|
+
console.error(" JICON_TRANSPORT=http");
|
|
218
223
|
process.exit(1);
|
|
219
224
|
}
|
|
220
225
|
// Log configured services
|
|
@@ -223,9 +228,18 @@ async function main() {
|
|
|
223
228
|
console.error(`✓ Jira configured: ${JIRA_CONFIG.url}`);
|
|
224
229
|
console.error(`✓ Tempo configured: ${JIRA_CONFIG.url} (v4 API, using Jira auth)`);
|
|
225
230
|
}
|
|
231
|
+
else if (isHttpMode) {
|
|
232
|
+
console.error(`- Jira: not configured (use X-Jira-Url/X-Jira-Token headers)`);
|
|
233
|
+
}
|
|
226
234
|
if (CONFLUENCE_CONFIG) {
|
|
227
235
|
console.error(`✓ Confluence configured: ${CONFLUENCE_CONFIG.url}`);
|
|
228
236
|
}
|
|
237
|
+
else if (isHttpMode) {
|
|
238
|
+
console.error(`- Confluence: not configured (use X-Confluence-Url/X-Confluence-Token headers)`);
|
|
239
|
+
}
|
|
240
|
+
if (isHttpMode) {
|
|
241
|
+
console.error(`✓ Per-request credentials: enabled (HTTP transport)`);
|
|
242
|
+
}
|
|
229
243
|
console.error(`✓ Buffer tools enabled (for content pagination)`);
|
|
230
244
|
console.error(`✓ Workload tools enabled (for time calculations)`);
|
|
231
245
|
console.error(`✓ URL tools enabled (for full URL construction)`);
|
|
@@ -251,14 +265,23 @@ async function main() {
|
|
|
251
265
|
if (writeHomeValidator) {
|
|
252
266
|
console.error(`✓ Write-home restriction: enabled (Confluence writes restricted to personal space)`);
|
|
253
267
|
}
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
268
|
+
// Create and start transport based on configuration
|
|
269
|
+
const transport = createTransport(server, config.transport);
|
|
270
|
+
currentTransport = transport;
|
|
271
|
+
await transport.start();
|
|
272
|
+
if (transport.mode === "http") {
|
|
273
|
+
console.error(`Jicon MCP Server running on HTTP (${config.transport.http.host}:${config.transport.http.port})`);
|
|
274
|
+
}
|
|
257
275
|
}
|
|
276
|
+
// Track current transport for graceful shutdown
|
|
277
|
+
let currentTransport = null;
|
|
258
278
|
// Handle graceful shutdown
|
|
259
279
|
async function shutdown() {
|
|
260
280
|
console.error("Shutting down Jicon MCP Server...");
|
|
261
281
|
await shutdownPlantUml();
|
|
282
|
+
if (currentTransport) {
|
|
283
|
+
await currentTransport.close();
|
|
284
|
+
}
|
|
262
285
|
process.exit(0);
|
|
263
286
|
}
|
|
264
287
|
process.on("SIGINT", shutdown);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EACL,qBAAqB,EAErB,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,QAAQ,IAAI,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAClH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAwB,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC/F,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAajE,qBAAqB;AACrB,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC;AAEnC,sDAAsD;AACtD,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAElE,8BAA8B;AAC9B,MAAM,WAAW,GAAG,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC1D,MAAM,iBAAiB,GAAG,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAEtE,+DAA+D;AAC/D,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC;IACtC,iBAAiB,EAAE,WAAW;IAC9B,uBAAuB,EAAE,iBAAiB;CAC3C,CAAC,CAAC;AAEH,wFAAwF;AACxF,sFAAsF;AACtF,MAAM,kBAAkB,GACtB,iBAAiB,IAAI,gBAAgB,CAAC,kBAAkB,EAAE;IACxD,CAAC,CAAC,IAAI,kBAAkB,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC,UAAW,CAAC;IACvE,CAAC,CAAC,IAAI,CAAC;AAEX,4CAA4C;AAC5C,4DAA4D;AAC5D,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC,CAAC;AACvE,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC,CAAC;AACnF,MAAM,eAAe,GAAG,qBAAqB,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,mBAAmB,EAAE,CAAC,CAAC;AACzF,MAAM,UAAU,GAAG,gBAAgB,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC,CAAC;AAC1E,MAAM,WAAW,GAAG,iBAAiB,EAAE,CAAC;AACxC,MAAM,aAAa,GAAG,mBAAmB,EAAE,CAAC;AAC5C,MAAM,QAAQ,GAAG,cAAc,CAAC;IAC9B,OAAO,EAAE,WAAW,EAAE,GAAG;IACzB,aAAa,EAAE,iBAAiB,EAAE,GAAG;CACtC,CAAC,CAAC;AACH,MAAM,cAAc,GAAG,oBAAoB,EAAE,CAAC;AAC9C,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;AAEpC,6EAA6E;AAC7E,MAAM,aAAa,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAE5E,oHAAoH;AACpH,wDAAwD;AACxD,MAAM,cAAc,GAAG,CAAC,sBAAsB,EAAE,oBAAoB,EAAE,uBAAuB,CAAC,CAAC;AAC/F,MAAM,mBAAmB,GAAG,iBAAiB;IAC3C,CAAC,CAAC,WAAW;IACb,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAEvG,MAAM,QAAQ,GAAiB,EAAE,GAAG,SAAS,EAAE,GAAG,iBAAiB,EAAE,GAAG,eAAe,EAAE,GAAG,UAAU,EAAE,GAAG,mBAAmB,EAAE,GAAG,aAAa,EAAE,GAAG,QAAQ,EAAE,GAAG,cAAc,EAAE,GAAG,SAAS,EAAE,GAAG,aAAa,EAAE,CAAC;AAEnN,oBAAoB;AACpB,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB;IACE,IAAI,EAAE,kBAAkB;IACxB,OAAO,EAAE,OAAO;CACjB,EACD;IACE,YAAY,EAAE;QACZ,KAAK,EAAE,EAAE;QACT,OAAO,EAAE,EAAE;KACZ;CACF,CACF,CAAC;AAEF,4BAA4B;AAC5B,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;IAC1D,oCAAoC;IACpC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;SACnC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;SACxD,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACtB,IAAI;QACJ,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK;YAClC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,MAAM,CAClD,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,EAAE,CACtD;SACF;KACF,CAAC,CAAC,CAAC;IAEN,OAAO,EAAE,KAAK,EAAE,CAAC;AACnB,CAAC,CAAC,CAAC;AAEH,2BAA2B;AAC3B,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;IACvE,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;IACrC,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAEhC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,KAAK,EAAE,IAAI;wBACX,OAAO,EAAE,iBAAiB,QAAQ,EAAE;qBACrC,CAAC;iBACH;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,oCAAoC;IACpC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9C,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,KAAK,EAAE,IAAI;wBACX,OAAO,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,QAAQ,CAAC;qBACrD,CAAC;iBACH;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,mEAAmE;IACnE,MAAM,WAAW,GAAG,kBAAkB,CAAC,KAAK,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAEnE,iEAAiE;IACjE,OAAO,kBAAkB,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE;QAChD,IAAI,CAAC;YACH,+BAA+B;YAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;YAE1E,6CAA6C;YAC7C,IAAI,kBAAkB,IAAI,kBAAkB,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC1E,MAAM,UAAU,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;gBAE3E,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;oBACxB,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAe;gCACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oCACnB,KAAK,EAAE,IAAI;oCACX,OAAO,EAAE,UAAU,CAAC,MAAM;oCAC1B,oBAAoB,EAAE,IAAI;oCAC1B,YAAY,EAAE,UAAU,CAAC,YAAY;oCACrC,cAAc,EAAE,UAAU,CAAC,cAAc;iCAC1C,CAAC;6BACH;yBACF;wBACD,OAAO,EAAE,IAAI;qBACd,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,uBAAuB;YACvB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAE9C,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,6DAA6D;YAC7D,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,CAAC;YAE7D,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,KAAK,EAAE,IAAI;4BACX,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;4BAC/D,OAAO,EACL,KAAK,YAAY,KAAK,IAAI,aAAa;gCACrC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE;gCAC1C,CAAC,CAAC,KAAK,YAAY,KAAK;oCACtB,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE;oCACtB,CAAC,CAAC,SAAS;yBAClB,CAAC;qBACH;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,8BAA8B;AAC9B,MAAM,CAAC,iBAAiB,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;IAC5D,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,iBAAiB;gBACvB,WAAW,EACT,2HAA2H;aAC9H;SACF;KACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,4BAA4B;AAC5B,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IACjE,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;IAEvC,IAAI,UAAU,KAAK,iBAAiB,EAAE,CAAC;QACrC,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,cAAc;qBACrB;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,mBAAmB,UAAU,EAAE,CAAC,CAAC;AACnD,CAAC,CAAC,CAAC;AAEH,eAAe;AACf,KAAK,UAAU,IAAI;IACjB,6GAA6G;IAC7G,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,KAAK,MAAM,CAAC;IACpD,IAAI,CAAC,WAAW,IAAI,CAAC,iBAAiB,IAAI,CAAC,UAAU,EAAE,CAAC;QACtD,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAChD,OAAO,CAAC,KAAK,CAAC,oEAAoE,CAAC,CAAC;QACpF,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAC/B,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;QACvD,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACrC,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAClC,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACrC,OAAO,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;QAC7D,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC3C,OAAO,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACrE,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,0BAA0B;IAC1B,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC9C,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,sBAAsB,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC;QACvD,OAAO,CAAC,KAAK,CAAC,uBAAuB,WAAW,CAAC,GAAG,4BAA4B,CAAC,CAAC;IACpF,CAAC;SAAM,IAAI,UAAU,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAChF,CAAC;IACD,IAAI,iBAAiB,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,4BAA4B,iBAAiB,CAAC,GAAG,EAAE,CAAC,CAAC;IACrE,CAAC;SAAM,IAAI,UAAU,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,gFAAgF,CAAC,CAAC;IAClG,CAAC;IACD,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACjE,OAAO,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;IAClE,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACjE,OAAO,CAAC,KAAK,CAAC,qFAAqF,CAAC,CAAC;IACrG,OAAO,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;IAEjF,+CAA+C;IAC/C,MAAM,cAAc,GAAG,MAAM,kBAAkB,CAAC;QAC9C,SAAS,EAAE,MAAM,CAAC,iBAAiB;KACpC,CAAC,CAAC;IAEH,IAAI,cAAc,CAAC,QAAQ,EAAE,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,qEAAqE,CAAC,CAAC;IACvF,CAAC;SAAM,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;QAClC,OAAO,CAAC,KAAK,CAAC,0BAA0B,cAAc,CAAC,SAAS,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,uEAAuE,CAAC,CAAC;IACvF,OAAO,CAAC,KAAK,CAAC,sBAAsB,gBAAgB,EAAE,2BAA2B,CAAC,CAAC;IAEnF,sBAAsB;IACtB,MAAM,YAAY,GAAG,gBAAgB,CAAC,eAAe,EAAE,CAAC;IACxD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,EAAE,CAAC;IAC5C,OAAO,CAAC,KAAK,CAAC,sBAAsB,QAAQ,EAAE,CAAC,CAAC;IAChD,OAAO,CAAC,KAAK,CAAC,oBAAoB,YAAY,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IACzF,IAAI,kBAAkB,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,oFAAoF,CAAC,CAAC;IACtG,CAAC;IAED,oDAAoD;IACpD,MAAM,SAAS,GAAG,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IAC5D,gBAAgB,GAAG,SAAS,CAAC;IAC7B,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;IAExB,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,qCAAqC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;IAClH,CAAC;AACH,CAAC;AAED,gDAAgD;AAChD,IAAI,gBAAgB,GAA2B,IAAI,CAAC;AAEpD,2BAA2B;AAC3B,KAAK,UAAU,QAAQ;IACrB,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACnD,MAAM,gBAAgB,EAAE,CAAC;IACzB,IAAI,gBAAgB,EAAE,CAAC;QACrB,MAAM,gBAAgB,CAAC,KAAK,EAAE,CAAC;IACjC,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AAEhC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -11,7 +11,14 @@
|
|
|
11
11
|
import { z } from "zod";
|
|
12
12
|
import { JiraClient } from "./client.js";
|
|
13
13
|
import type { ToolResult } from "../types.js";
|
|
14
|
-
|
|
14
|
+
/**
|
|
15
|
+
* Type for a function that returns the Jira client for the current request
|
|
16
|
+
*/
|
|
17
|
+
export type JiraClientGetter = () => JiraClient | null;
|
|
18
|
+
/**
|
|
19
|
+
* Create activity tools with a client getter function
|
|
20
|
+
*/
|
|
21
|
+
export declare function createActivityTools(getClient: JiraClientGetter): {
|
|
15
22
|
jira_get_activity_digest: {
|
|
16
23
|
description: string;
|
|
17
24
|
inputSchema: z.ZodObject<{
|
|
@@ -156,5 +163,51 @@ export declare function createActivityTools(client: JiraClient): {
|
|
|
156
163
|
maxComments?: number;
|
|
157
164
|
}) => Promise<ToolResult>;
|
|
158
165
|
};
|
|
166
|
+
jira_epic_summary: {
|
|
167
|
+
description: string;
|
|
168
|
+
inputSchema: z.ZodObject<{
|
|
169
|
+
issueKey: z.ZodString;
|
|
170
|
+
includeLinks: z.ZodOptional<z.ZodBoolean>;
|
|
171
|
+
maxDepth: z.ZodOptional<z.ZodNumber>;
|
|
172
|
+
}, "strip", z.ZodTypeAny, {
|
|
173
|
+
issueKey: string;
|
|
174
|
+
includeLinks?: boolean | undefined;
|
|
175
|
+
maxDepth?: number | undefined;
|
|
176
|
+
}, {
|
|
177
|
+
issueKey: string;
|
|
178
|
+
includeLinks?: boolean | undefined;
|
|
179
|
+
maxDepth?: number | undefined;
|
|
180
|
+
}>;
|
|
181
|
+
handler: (args: {
|
|
182
|
+
issueKey: string;
|
|
183
|
+
includeLinks?: boolean;
|
|
184
|
+
maxDepth?: number;
|
|
185
|
+
}) => Promise<ToolResult>;
|
|
186
|
+
};
|
|
187
|
+
jira_analyze_sprint: {
|
|
188
|
+
description: string;
|
|
189
|
+
inputSchema: z.ZodObject<{
|
|
190
|
+
sprintId: z.ZodNumber;
|
|
191
|
+
includeComments: z.ZodOptional<z.ZodBoolean>;
|
|
192
|
+
commentDays: z.ZodOptional<z.ZodNumber>;
|
|
193
|
+
includeRisks: z.ZodOptional<z.ZodBoolean>;
|
|
194
|
+
}, "strip", z.ZodTypeAny, {
|
|
195
|
+
sprintId: number;
|
|
196
|
+
includeComments?: boolean | undefined;
|
|
197
|
+
commentDays?: number | undefined;
|
|
198
|
+
includeRisks?: boolean | undefined;
|
|
199
|
+
}, {
|
|
200
|
+
sprintId: number;
|
|
201
|
+
includeComments?: boolean | undefined;
|
|
202
|
+
commentDays?: number | undefined;
|
|
203
|
+
includeRisks?: boolean | undefined;
|
|
204
|
+
}>;
|
|
205
|
+
handler: (args: {
|
|
206
|
+
sprintId: number;
|
|
207
|
+
includeComments?: boolean;
|
|
208
|
+
commentDays?: number;
|
|
209
|
+
includeRisks?: boolean;
|
|
210
|
+
}) => Promise<ToolResult>;
|
|
211
|
+
};
|
|
159
212
|
};
|
|
160
213
|
//# sourceMappingURL=activity-tools.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activity-tools.d.ts","sourceRoot":"","sources":["../../src/jira/activity-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAqG9C,wBAAgB,mBAAmB,CAAC,
|
|
1
|
+
{"version":3,"file":"activity-tools.d.ts","sourceRoot":"","sources":["../../src/jira/activity-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAqG9C;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,UAAU,GAAG,IAAI,CAAC;AAEvD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAyCnC;YACpB,UAAU,CAAC,EAAE,MAAM,CAAC;YACpB,GAAG,CAAC,EAAE,MAAM,CAAC;YACb,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;YACrB,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,eAAe,CAAC,EAAE,OAAO,CAAC;YAC1B,oBAAoB,CAAC,EAAE,OAAO,CAAC;YAC/B,sBAAsB,CAAC,EAAE,OAAO,CAAC;YACjC,sBAAsB,CAAC,EAAE,OAAO,CAAC;YACjC,aAAa,CAAC,EAAE,MAAM,CAAC;YACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;SAC3B,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAyRD;YACpB,UAAU,CAAC,EAAE,MAAM,CAAC;YACpB,GAAG,CAAC,EAAE,MAAM,CAAC;YACb,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;YACrB,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,cAAc,CAAC,EAAE,OAAO,CAAC;SAC1B,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;wBA+JD;YACpB,UAAU,CAAC,EAAE,MAAM,CAAC;YACpB,GAAG,CAAC,EAAE,MAAM,CAAC;YACb,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;YACrB,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;YAClB,UAAU,CAAC,EAAE,MAAM,CAAC;SACrB,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;wBAoKD;YACpB,QAAQ,EAAE,MAAM,CAAC;YACjB,eAAe,CAAC,EAAE,OAAO,CAAC;YAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,WAAW,CAAC,EAAE,MAAM,CAAC;SACtB,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;wBA4hBD;YACpB,QAAQ,EAAE,MAAM,CAAC;YACjB,YAAY,CAAC,EAAE,OAAO,CAAC;YACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;SACnB,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;wBAkRD;YACpB,QAAQ,EAAE,MAAM,CAAC;YACjB,eAAe,CAAC,EAAE,OAAO,CAAC;YAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,YAAY,CAAC,EAAE,OAAO,CAAC;SACxB,KAAG,OAAO,CAAC,UAAU,CAAC;;EAoW5B"}
|