@crypto512/jicon-mcp 2.2.1 → 2.3.19

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.
Files changed (228) hide show
  1. package/PROMPT.md +10 -28
  2. package/README.md +39 -6
  3. package/TOOL_LIST.md +542 -407
  4. package/dist/config/constants.d.ts +28 -0
  5. package/dist/config/constants.d.ts.map +1 -1
  6. package/dist/config/constants.js +34 -0
  7. package/dist/config/constants.js.map +1 -1
  8. package/dist/config/loader.d.ts.map +1 -1
  9. package/dist/config/loader.js +12 -2
  10. package/dist/config/loader.js.map +1 -1
  11. package/dist/config/types.d.ts +49 -6
  12. package/dist/config/types.d.ts.map +1 -1
  13. package/dist/config/types.js +18 -0
  14. package/dist/config/types.js.map +1 -1
  15. package/dist/confluence/client.d.ts.map +1 -1
  16. package/dist/confluence/client.js +7 -2
  17. package/dist/confluence/client.js.map +1 -1
  18. package/dist/confluence/formatters.d.ts +20 -0
  19. package/dist/confluence/formatters.d.ts.map +1 -1
  20. package/dist/confluence/formatters.js +74 -8
  21. package/dist/confluence/formatters.js.map +1 -1
  22. package/dist/confluence/tools.d.ts +16 -20
  23. package/dist/confluence/tools.d.ts.map +1 -1
  24. package/dist/confluence/tools.js +71 -68
  25. package/dist/confluence/tools.js.map +1 -1
  26. package/dist/credentials/extractor.d.ts +15 -5
  27. package/dist/credentials/extractor.d.ts.map +1 -1
  28. package/dist/credentials/extractor.js +99 -12
  29. package/dist/credentials/extractor.js.map +1 -1
  30. package/dist/credentials/index.d.ts +4 -3
  31. package/dist/credentials/index.d.ts.map +1 -1
  32. package/dist/credentials/index.js +3 -2
  33. package/dist/credentials/index.js.map +1 -1
  34. package/dist/credentials/types.d.ts +22 -0
  35. package/dist/credentials/types.d.ts.map +1 -1
  36. package/dist/credentials/types.js.map +1 -1
  37. package/dist/index.js +211 -176
  38. package/dist/index.js.map +1 -1
  39. package/dist/jira/activity-tools.d.ts +8 -15
  40. package/dist/jira/activity-tools.d.ts.map +1 -1
  41. package/dist/jira/activity-tools.js +131 -90
  42. package/dist/jira/activity-tools.js.map +1 -1
  43. package/dist/jira/client.d.ts +24 -0
  44. package/dist/jira/client.d.ts.map +1 -1
  45. package/dist/jira/client.js +65 -6
  46. package/dist/jira/client.js.map +1 -1
  47. package/dist/jira/formatters.d.ts +61 -0
  48. package/dist/jira/formatters.d.ts.map +1 -1
  49. package/dist/jira/formatters.js +83 -11
  50. package/dist/jira/formatters.js.map +1 -1
  51. package/dist/jira/tools.d.ts +78 -26
  52. package/dist/jira/tools.d.ts.map +1 -1
  53. package/dist/jira/tools.js +293 -130
  54. package/dist/jira/tools.js.map +1 -1
  55. package/dist/permissions/filter.d.ts.map +1 -1
  56. package/dist/permissions/filter.js +8 -4
  57. package/dist/permissions/filter.js.map +1 -1
  58. package/dist/permissions/tool-registry.d.ts +15 -13
  59. package/dist/permissions/tool-registry.d.ts.map +1 -1
  60. package/dist/permissions/tool-registry.js +19 -10
  61. package/dist/permissions/tool-registry.js.map +1 -1
  62. package/dist/session/context.d.ts +81 -0
  63. package/dist/session/context.d.ts.map +1 -0
  64. package/dist/session/context.js +107 -0
  65. package/dist/session/context.js.map +1 -0
  66. package/dist/session/index.d.ts +12 -0
  67. package/dist/session/index.d.ts.map +1 -0
  68. package/dist/session/index.js +22 -0
  69. package/dist/session/index.js.map +1 -0
  70. package/dist/session/manager.d.ts +186 -0
  71. package/dist/session/manager.d.ts.map +1 -0
  72. package/dist/session/manager.js +383 -0
  73. package/dist/session/manager.js.map +1 -0
  74. package/dist/tempo/client.d.ts +14 -0
  75. package/dist/tempo/client.d.ts.map +1 -1
  76. package/dist/tempo/client.js +57 -0
  77. package/dist/tempo/client.js.map +1 -1
  78. package/dist/tempo/formatters.d.ts +13 -0
  79. package/dist/tempo/formatters.d.ts.map +1 -1
  80. package/dist/tempo/formatters.js +106 -20
  81. package/dist/tempo/formatters.js.map +1 -1
  82. package/dist/tempo/tools.d.ts +14 -13
  83. package/dist/tempo/tools.d.ts.map +1 -1
  84. package/dist/tempo/tools.js +203 -33
  85. package/dist/tempo/tools.js.map +1 -1
  86. package/dist/tempo/types.d.ts +20 -6
  87. package/dist/tempo/types.d.ts.map +1 -1
  88. package/dist/transport/http.d.ts +21 -5
  89. package/dist/transport/http.d.ts.map +1 -1
  90. package/dist/transport/http.js +193 -22
  91. package/dist/transport/http.js.map +1 -1
  92. package/dist/transport/index.d.ts +7 -2
  93. package/dist/transport/index.d.ts.map +1 -1
  94. package/dist/transport/index.js +10 -4
  95. package/dist/transport/index.js.map +1 -1
  96. package/dist/utils/buffer-tools.d.ts +48 -724
  97. package/dist/utils/buffer-tools.d.ts.map +1 -1
  98. package/dist/utils/buffer-tools.js +337 -170
  99. package/dist/utils/buffer-tools.js.map +1 -1
  100. package/dist/utils/content-buffer.d.ts +10 -31
  101. package/dist/utils/content-buffer.d.ts.map +1 -1
  102. package/dist/utils/content-buffer.js +12 -86
  103. package/dist/utils/content-buffer.js.map +1 -1
  104. package/dist/utils/http-client.d.ts.map +1 -1
  105. package/dist/utils/http-client.js +99 -2
  106. package/dist/utils/http-client.js.map +1 -1
  107. package/dist/utils/jicon-help.d.ts +3 -3
  108. package/dist/utils/jicon-help.d.ts.map +1 -1
  109. package/dist/utils/jicon-help.js +164 -312
  110. package/dist/utils/jicon-help.js.map +1 -1
  111. package/dist/utils/logger.d.ts +43 -0
  112. package/dist/utils/logger.d.ts.map +1 -0
  113. package/dist/utils/logger.js +102 -0
  114. package/dist/utils/logger.js.map +1 -0
  115. package/dist/utils/plantuml/tools.d.ts.map +1 -1
  116. package/dist/utils/plantuml/tools.js +10 -9
  117. package/dist/utils/plantuml/tools.js.map +1 -1
  118. package/dist/utils/response-formatter.d.ts +20 -2
  119. package/dist/utils/response-formatter.d.ts.map +1 -1
  120. package/dist/utils/response-formatter.js +147 -17
  121. package/dist/utils/response-formatter.js.map +1 -1
  122. package/dist/utils/sandbox/formatters.d.ts +25 -0
  123. package/dist/utils/sandbox/formatters.d.ts.map +1 -0
  124. package/dist/utils/sandbox/formatters.js +690 -0
  125. package/dist/utils/sandbox/formatters.js.map +1 -0
  126. package/dist/utils/sandbox/helpers.d.ts +16 -0
  127. package/dist/utils/sandbox/helpers.d.ts.map +1 -0
  128. package/dist/utils/sandbox/helpers.js +252 -0
  129. package/dist/utils/sandbox/helpers.js.map +1 -0
  130. package/dist/utils/sandbox/index.d.ts +19 -0
  131. package/dist/utils/sandbox/index.d.ts.map +1 -0
  132. package/dist/utils/sandbox/index.js +269 -0
  133. package/dist/utils/sandbox/index.js.map +1 -0
  134. package/dist/utils/sandbox/schema.d.ts +55 -0
  135. package/dist/utils/sandbox/schema.d.ts.map +1 -0
  136. package/dist/utils/sandbox/schema.js +39 -0
  137. package/dist/utils/sandbox/schema.js.map +1 -0
  138. package/dist/utils/sandbox/types.d.ts +179 -0
  139. package/dist/utils/sandbox/types.d.ts.map +1 -0
  140. package/dist/utils/sandbox/types.js +8 -0
  141. package/dist/utils/sandbox/types.js.map +1 -0
  142. package/dist/utils/schemas/confluence.d.ts +41 -0
  143. package/dist/utils/schemas/confluence.d.ts.map +1 -0
  144. package/dist/utils/schemas/confluence.js +105 -0
  145. package/dist/utils/schemas/confluence.js.map +1 -0
  146. package/dist/utils/schemas/index.d.ts +77 -0
  147. package/dist/utils/schemas/index.d.ts.map +1 -0
  148. package/dist/utils/schemas/index.js +107 -0
  149. package/dist/utils/schemas/index.js.map +1 -0
  150. package/dist/utils/schemas/jira.d.ts +49 -0
  151. package/dist/utils/schemas/jira.d.ts.map +1 -0
  152. package/dist/utils/schemas/jira.js +153 -0
  153. package/dist/utils/schemas/jira.js.map +1 -0
  154. package/dist/utils/schemas/tempo.d.ts +29 -0
  155. package/dist/utils/schemas/tempo.d.ts.map +1 -0
  156. package/dist/utils/schemas/tempo.js +72 -0
  157. package/dist/utils/schemas/tempo.js.map +1 -0
  158. package/dist/utils/whoami-tools.d.ts +17 -0
  159. package/dist/utils/whoami-tools.d.ts.map +1 -0
  160. package/dist/utils/whoami-tools.js +90 -0
  161. package/dist/utils/whoami-tools.js.map +1 -0
  162. package/dist/utils/xhtml/error-locator.js +5 -5
  163. package/dist/utils/xhtml/error-locator.js.map +1 -1
  164. package/package.json +10 -9
  165. package/dist/credentials/client-factory.d.ts +0 -64
  166. package/dist/credentials/client-factory.d.ts.map +0 -1
  167. package/dist/credentials/client-factory.js +0 -110
  168. package/dist/credentials/client-factory.js.map +0 -1
  169. package/dist/credentials/context.d.ts +0 -25
  170. package/dist/credentials/context.d.ts.map +0 -1
  171. package/dist/credentials/context.js +0 -35
  172. package/dist/credentials/context.js.map +0 -1
  173. package/dist/utils/buffer-pipeline/index.d.ts +0 -30
  174. package/dist/utils/buffer-pipeline/index.d.ts.map +0 -1
  175. package/dist/utils/buffer-pipeline/index.js +0 -317
  176. package/dist/utils/buffer-pipeline/index.js.map +0 -1
  177. package/dist/utils/buffer-pipeline/output/csv.d.ts +0 -20
  178. package/dist/utils/buffer-pipeline/output/csv.d.ts.map +0 -1
  179. package/dist/utils/buffer-pipeline/output/csv.js +0 -117
  180. package/dist/utils/buffer-pipeline/output/csv.js.map +0 -1
  181. package/dist/utils/buffer-pipeline/output/json.d.ts +0 -16
  182. package/dist/utils/buffer-pipeline/output/json.d.ts.map +0 -1
  183. package/dist/utils/buffer-pipeline/output/json.js +0 -48
  184. package/dist/utils/buffer-pipeline/output/json.js.map +0 -1
  185. package/dist/utils/buffer-pipeline/output/markdown.d.ts +0 -15
  186. package/dist/utils/buffer-pipeline/output/markdown.d.ts.map +0 -1
  187. package/dist/utils/buffer-pipeline/output/markdown.js +0 -105
  188. package/dist/utils/buffer-pipeline/output/markdown.js.map +0 -1
  189. package/dist/utils/buffer-pipeline/output/xhtml-list.d.ts +0 -16
  190. package/dist/utils/buffer-pipeline/output/xhtml-list.d.ts.map +0 -1
  191. package/dist/utils/buffer-pipeline/output/xhtml-list.js +0 -81
  192. package/dist/utils/buffer-pipeline/output/xhtml-list.js.map +0 -1
  193. package/dist/utils/buffer-pipeline/output/xhtml-table.d.ts +0 -15
  194. package/dist/utils/buffer-pipeline/output/xhtml-table.d.ts.map +0 -1
  195. package/dist/utils/buffer-pipeline/output/xhtml-table.js +0 -176
  196. package/dist/utils/buffer-pipeline/output/xhtml-table.js.map +0 -1
  197. package/dist/utils/buffer-pipeline/schema.d.ts +0 -1878
  198. package/dist/utils/buffer-pipeline/schema.d.ts.map +0 -1
  199. package/dist/utils/buffer-pipeline/schema.js +0 -168
  200. package/dist/utils/buffer-pipeline/schema.js.map +0 -1
  201. package/dist/utils/buffer-pipeline/stages/filter.d.ts +0 -32
  202. package/dist/utils/buffer-pipeline/stages/filter.d.ts.map +0 -1
  203. package/dist/utils/buffer-pipeline/stages/filter.js +0 -208
  204. package/dist/utils/buffer-pipeline/stages/filter.js.map +0 -1
  205. package/dist/utils/buffer-pipeline/stages/format.d.ts +0 -45
  206. package/dist/utils/buffer-pipeline/stages/format.d.ts.map +0 -1
  207. package/dist/utils/buffer-pipeline/stages/format.js +0 -160
  208. package/dist/utils/buffer-pipeline/stages/format.js.map +0 -1
  209. package/dist/utils/buffer-pipeline/stages/group-by.d.ts +0 -25
  210. package/dist/utils/buffer-pipeline/stages/group-by.d.ts.map +0 -1
  211. package/dist/utils/buffer-pipeline/stages/group-by.js +0 -190
  212. package/dist/utils/buffer-pipeline/stages/group-by.js.map +0 -1
  213. package/dist/utils/buffer-pipeline/stages/select.d.ts +0 -54
  214. package/dist/utils/buffer-pipeline/stages/select.d.ts.map +0 -1
  215. package/dist/utils/buffer-pipeline/stages/select.js +0 -228
  216. package/dist/utils/buffer-pipeline/stages/select.js.map +0 -1
  217. package/dist/utils/buffer-pipeline/stages/sort.d.ts +0 -20
  218. package/dist/utils/buffer-pipeline/stages/sort.d.ts.map +0 -1
  219. package/dist/utils/buffer-pipeline/stages/sort.js +0 -96
  220. package/dist/utils/buffer-pipeline/stages/sort.js.map +0 -1
  221. package/dist/utils/buffer-pipeline/types.d.ts +0 -277
  222. package/dist/utils/buffer-pipeline/types.d.ts.map +0 -1
  223. package/dist/utils/buffer-pipeline/types.js +0 -8
  224. package/dist/utils/buffer-pipeline/types.js.map +0 -1
  225. package/dist/utils/plantuml/docker-manager.d.ts +0 -37
  226. package/dist/utils/plantuml/docker-manager.d.ts.map +0 -1
  227. package/dist/utils/plantuml/docker-manager.js +0 -284
  228. package/dist/utils/plantuml/docker-manager.js.map +0 -1
package/dist/index.js CHANGED
@@ -14,12 +14,14 @@ import { createUrlTools } from "./utils/url-tools.js";
14
14
  import { createJiconHelpTools, WORKFLOW_GUIDE } from "./utils/jicon-help.js";
15
15
  import { createDateTools } from "./utils/date-tools.js";
16
16
  import { createPlantUmlTools, shutdown as shutdownPlantUml, initializePlantUml } from "./utils/plantuml/index.js";
17
+ import { createWhoamiTools } from "./utils/whoami-tools.js";
17
18
  import { ConfigLoader } from "./config/loader.js";
18
19
  import { createTransport } from "./transport/index.js";
19
- import { ClientFactory, extractCredentials, runWithCredentials } from "./credentials/index.js";
20
+ import { initializeSessionManager, shutdownSessionManager, getSessionManager, runWithSession, getSessionWriteHomeValidator, } from "./session/index.js";
21
+ import { extractCredentials } from "./credentials/index.js";
20
22
  import { PermissionFilter } from "./permissions/filter.js";
21
- import { WriteHomeValidator } from "./permissions/write-home-validator.js";
22
23
  import { getMaxOutputSize } from "./utils/response-formatter.js";
24
+ import { log, error as logError } from "./utils/logger.js";
23
25
  // Load configuration
24
26
  const config = ConfigLoader.load();
25
27
  // Initialize permission filter (default: full access)
@@ -27,22 +29,20 @@ const permissionFilter = new PermissionFilter(config.permissions);
27
29
  // Convert to ApiConfig format
28
30
  const JIRA_CONFIG = ConfigLoader.toApiConfig(config.jira);
29
31
  const CONFLUENCE_CONFIG = ConfigLoader.toApiConfig(config.confluence);
30
- // Initialize client factory for per-request credential support
31
- const clientFactory = new ClientFactory({
32
+ // Initialize session manager with default configs
33
+ // Per-session clients will be created with per-request credentials or fall back to defaults
34
+ initializeSessionManager({
32
35
  defaultJiraConfig: JIRA_CONFIG,
33
36
  defaultConfluenceConfig: CONFLUENCE_CONFIG,
37
+ writeHomeEnabled: permissionFilter.isWriteHomeEnabled(),
38
+ maxBuffersPerSession: config.session.maxBuffers,
34
39
  });
35
- // Initialize write-home validator if Confluence is configured and write-home is enabled
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)
39
- : null;
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());
40
+ // Create tools using session-scoped clients
41
+ // Tools automatically get the correct client from the session context
42
+ const jiraTools = createJiraTools();
43
+ const jiraActivityTools = createActivityTools();
44
+ const confluenceTools = createConfluenceTools();
45
+ const tempoTools = createTempoTools();
46
46
  const bufferTools = createBufferTools();
47
47
  const workloadTools = createWorkloadTools();
48
48
  const urlTools = createUrlTools({
@@ -51,6 +51,7 @@ const urlTools = createUrlTools({
51
51
  });
52
52
  const jiconHelpTools = createJiconHelpTools();
53
53
  const dateTools = createDateTools();
54
+ const whoamiTools = createWhoamiTools();
54
55
  // Conditionally register PlantUML tools (only when server URL is configured)
55
56
  const plantUmlTools = config.plantUmlServerUrl ? createPlantUmlTools() : {};
56
57
  // Build tool registry, conditionally excluding XHTML-only buffer tools when Confluence is not configured by default
@@ -59,226 +60,260 @@ const xhtmlOnlyTools = ["buffer_get_structure", "buffer_get_element", "buffer_va
59
60
  const filteredBufferTools = CONFLUENCE_CONFIG
60
61
  ? bufferTools
61
62
  : Object.fromEntries(Object.entries(bufferTools).filter(([name]) => !xhtmlOnlyTools.includes(name)));
62
- const allTools = { ...jiraTools, ...jiraActivityTools, ...confluenceTools, ...tempoTools, ...filteredBufferTools, ...workloadTools, ...urlTools, ...jiconHelpTools, ...dateTools, ...plantUmlTools };
63
- // Create MCP server
64
- const server = new Server({
65
- name: "jicon-mcp-server",
66
- version: "0.1.0",
67
- }, {
68
- capabilities: {
69
- tools: {},
70
- prompts: {},
71
- },
72
- });
73
- // Handle list_tools request
74
- server.setRequestHandler(ListToolsRequestSchema, async () => {
75
- // Filter tools based on permissions
76
- const tools = Object.entries(allTools)
77
- .filter(([name]) => permissionFilter.isToolAllowed(name))
78
- .map(([name, tool]) => ({
79
- name,
80
- description: tool.description,
81
- inputSchema: {
82
- type: "object",
83
- properties: tool.inputSchema.shape,
84
- required: Object.keys(tool.inputSchema.shape).filter((key) => !tool.inputSchema.shape[key]?.isOptional?.()),
63
+ const allTools = { ...jiraTools, ...jiraActivityTools, ...confluenceTools, ...tempoTools, ...filteredBufferTools, ...workloadTools, ...urlTools, ...jiconHelpTools, ...dateTools, ...whoamiTools, ...plantUmlTools };
64
+ /**
65
+ * Factory function to create a new MCP Server instance with all handlers registered.
66
+ * For HTTP mode: called once per session (each session gets its own Server)
67
+ * For stdio mode: called once at startup
68
+ */
69
+ function createServer() {
70
+ const server = new Server({
71
+ name: "jicon-mcp-server",
72
+ version: "0.1.0",
73
+ }, {
74
+ capabilities: {
75
+ tools: {},
76
+ prompts: {},
85
77
  },
86
- }));
87
- return { tools };
88
- });
89
- // Handle call_tool request
90
- server.setRequestHandler(CallToolRequestSchema, async (request, extra) => {
91
- const toolName = request.params.name;
92
- const tool = allTools[toolName];
93
- if (!tool) {
94
- return {
95
- content: [
96
- {
97
- type: "text",
98
- text: JSON.stringify({
99
- error: true,
100
- message: `Unknown tool: ${toolName}`,
101
- }),
102
- },
103
- ],
104
- isError: true,
105
- };
106
- }
107
- // Check permission before executing
108
- if (!permissionFilter.isToolAllowed(toolName)) {
109
- return {
110
- content: [
111
- {
112
- type: "text",
113
- text: JSON.stringify({
114
- error: true,
115
- message: permissionFilter.getDenialMessage(toolName),
116
- }),
117
- },
118
- ],
119
- isError: true,
120
- };
121
- }
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
- }
149
- }
150
- // Execute tool handler
151
- const result = await tool.handler(parsedArgs);
152
- return result;
78
+ });
79
+ // Handle list_tools request
80
+ server.setRequestHandler(ListToolsRequestSchema, async () => {
81
+ // Filter tools based on permissions
82
+ const tools = Object.entries(allTools)
83
+ .filter(([name]) => permissionFilter.isToolAllowed(name))
84
+ .map(([name, tool]) => ({
85
+ name,
86
+ description: tool.description,
87
+ inputSchema: {
88
+ type: "object",
89
+ properties: tool.inputSchema.shape,
90
+ required: Object.keys(tool.inputSchema.shape).filter((key) => !tool.inputSchema.shape[key]?.isOptional?.()),
91
+ },
92
+ }));
93
+ return { tools };
94
+ });
95
+ // Handle call_tool request
96
+ server.setRequestHandler(CallToolRequestSchema, async (request, extra) => {
97
+ const toolName = request.params.name;
98
+ const tool = allTools[toolName];
99
+ if (!tool) {
100
+ return {
101
+ content: [
102
+ {
103
+ type: "text",
104
+ text: JSON.stringify({
105
+ error: true,
106
+ message: `Unknown tool: ${toolName}`,
107
+ }),
108
+ },
109
+ ],
110
+ isError: true,
111
+ };
153
112
  }
154
- catch (error) {
155
- // Only include stack traces in development mode for security
156
- const isDevelopment = process.env.NODE_ENV === "development";
113
+ // Check permission before executing
114
+ if (!permissionFilter.isToolAllowed(toolName)) {
157
115
  return {
158
116
  content: [
159
117
  {
160
118
  type: "text",
161
119
  text: JSON.stringify({
162
120
  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,
121
+ message: permissionFilter.getDenialMessage(toolName),
169
122
  }),
170
123
  },
171
124
  ],
172
125
  isError: true,
173
126
  };
174
127
  }
128
+ // Extract per-request credentials from HTTP headers (if available)
129
+ const credentials = extractCredentials(extra.requestInfo?.headers);
130
+ // Get or create session from request context
131
+ // For HTTP: sessionId comes from mcp-session-id header (handled by HTTP transport)
132
+ // For stdio: use a default session
133
+ const sessionId = extra.requestInfo?.headers?.["mcp-session-id"] || "stdio-default";
134
+ const session = getSessionManager().getOrCreateSession(sessionId, credentials);
135
+ // Run tool handler within session context
136
+ return runWithSession({
137
+ sessionId,
138
+ credentials,
139
+ buffer: session.buffer,
140
+ jiraClient: session.clients.jira,
141
+ confluenceClient: session.clients.confluence,
142
+ tempoClient: session.clients.tempo,
143
+ writeHomeValidator: session.writeHomeValidator,
144
+ }, async () => {
145
+ try {
146
+ // Strip explicit null values — some LLMs send null for optional params
147
+ // instead of omitting them, which Zod's .optional() rejects
148
+ const rawArgs = request.params.arguments || {};
149
+ const cleanedArgs = {};
150
+ for (const [key, value] of Object.entries(rawArgs)) {
151
+ if (value !== null) {
152
+ cleanedArgs[key] = value;
153
+ }
154
+ }
155
+ // Validate and parse arguments
156
+ const parsedArgs = tool.inputSchema.parse(cleanedArgs);
157
+ // Write-home validation for Confluence tools (use session's validator)
158
+ const writeHomeValidator = getSessionWriteHomeValidator();
159
+ if (writeHomeValidator && writeHomeValidator.requiresValidation(toolName)) {
160
+ const validation = await writeHomeValidator.validate(toolName, parsedArgs);
161
+ if (!validation.allowed) {
162
+ return {
163
+ content: [
164
+ {
165
+ type: "text",
166
+ text: JSON.stringify({
167
+ error: true,
168
+ message: validation.reason,
169
+ writeHomeRestriction: true,
170
+ userSpaceKey: validation.userSpaceKey,
171
+ targetSpaceKey: validation.targetSpaceKey,
172
+ }),
173
+ },
174
+ ],
175
+ isError: true,
176
+ };
177
+ }
178
+ }
179
+ // Execute tool handler
180
+ const result = await tool.handler(parsedArgs);
181
+ return result;
182
+ }
183
+ catch (error) {
184
+ // Only include stack traces in development mode for security
185
+ const isDevelopment = process.env.NODE_ENV === "development";
186
+ return {
187
+ content: [
188
+ {
189
+ type: "text",
190
+ text: JSON.stringify({
191
+ error: true,
192
+ message: error instanceof Error ? error.message : String(error),
193
+ details: error instanceof Error && isDevelopment
194
+ ? { stack: error.stack, name: error.name }
195
+ : error instanceof Error
196
+ ? { name: error.name }
197
+ : undefined,
198
+ }),
199
+ },
200
+ ],
201
+ isError: true,
202
+ };
203
+ }
204
+ });
175
205
  });
176
- });
177
- // Handle list_prompts request
178
- server.setRequestHandler(ListPromptsRequestSchema, async () => {
179
- return {
180
- prompts: [
181
- {
182
- name: "jicon-workflows",
183
- description: "Jicon MCP Server workflow guide - essential patterns for Jira, Confluence, and Tempo. READ THIS FIRST before using tools.",
184
- },
185
- ],
186
- };
187
- });
188
- // Handle get_prompt request
189
- server.setRequestHandler(GetPromptRequestSchema, async (request) => {
190
- const promptName = request.params.name;
191
- if (promptName === "jicon-workflows") {
206
+ // Handle list_prompts request
207
+ server.setRequestHandler(ListPromptsRequestSchema, async () => {
192
208
  return {
193
- messages: [
209
+ prompts: [
194
210
  {
195
- role: "user",
196
- content: {
197
- type: "text",
198
- text: WORKFLOW_GUIDE,
199
- },
211
+ name: "jicon-workflows",
212
+ description: "Jicon MCP Server workflow guide - essential patterns for Jira, Confluence, and Tempo. READ THIS FIRST before using tools.",
200
213
  },
201
214
  ],
202
215
  };
203
- }
204
- throw new Error(`Unknown prompt: ${promptName}`);
205
- });
216
+ });
217
+ // Handle get_prompt request
218
+ server.setRequestHandler(GetPromptRequestSchema, async (request) => {
219
+ const promptName = request.params.name;
220
+ if (promptName === "jicon-workflows") {
221
+ return {
222
+ messages: [
223
+ {
224
+ role: "user",
225
+ content: {
226
+ type: "text",
227
+ text: WORKFLOW_GUIDE,
228
+ },
229
+ },
230
+ ],
231
+ };
232
+ }
233
+ throw new Error(`Unknown prompt: ${promptName}`);
234
+ });
235
+ return server;
236
+ }
206
237
  // Start server
207
238
  async function main() {
208
239
  // Check if at least one service is configured (either via env vars or HTTP mode for per-request credentials)
209
240
  const isHttpMode = config.transport.mode === "http";
210
241
  if (!JIRA_CONFIG && !CONFLUENCE_CONFIG && !isHttpMode) {
211
- console.error("Error: No services configured!");
212
- console.error("Please configure at least one service using environment variables:");
213
- console.error("\n Jira:");
214
- console.error(" JIRA_URL");
215
- console.error(" JIRA_USERNAME (optional for PAT)");
216
- console.error(" JIRA_API_TOKEN");
217
- console.error("\n Confluence:");
218
- console.error(" CONFLUENCE_URL");
219
- console.error(" CONFLUENCE_USERNAME (optional for PAT)");
220
- console.error(" CONFLUENCE_API_TOKEN");
221
- console.error("\n Or use HTTP mode with per-request credentials:");
222
- console.error(" JICON_TRANSPORT=http");
242
+ logError("No services configured!");
243
+ log("Please configure at least one service using environment variables:");
244
+ log("\n Jira:");
245
+ log(" JIRA_URL");
246
+ log(" JIRA_USERNAME (optional for PAT)");
247
+ log(" JIRA_API_TOKEN");
248
+ log("\n Confluence:");
249
+ log(" CONFLUENCE_URL");
250
+ log(" CONFLUENCE_USERNAME (optional for PAT)");
251
+ log(" CONFLUENCE_API_TOKEN");
252
+ log("\n Or use HTTP mode with per-request credentials:");
253
+ log(" JICON_TRANSPORT=http");
223
254
  process.exit(1);
224
255
  }
225
256
  // Log configured services
226
- console.error("Jicon MCP Server starting...");
257
+ log("Jicon MCP Server starting...");
227
258
  if (JIRA_CONFIG) {
228
- console.error(`✓ Jira configured: ${JIRA_CONFIG.url}`);
229
- console.error(`✓ Tempo configured: ${JIRA_CONFIG.url} (v4 API, using Jira auth)`);
259
+ log(`✓ Jira configured: ${JIRA_CONFIG.url}`);
260
+ log(`✓ Tempo configured: ${JIRA_CONFIG.url} (v4 API, using Jira auth)`);
230
261
  }
231
262
  else if (isHttpMode) {
232
- console.error(`- Jira: not configured (use X-Jira-Url/X-Jira-Token headers)`);
263
+ log(`- Jira: not configured (use X-Jira-Url/X-Jira-Token headers)`);
233
264
  }
234
265
  if (CONFLUENCE_CONFIG) {
235
- console.error(`✓ Confluence configured: ${CONFLUENCE_CONFIG.url}`);
266
+ log(`✓ Confluence configured: ${CONFLUENCE_CONFIG.url}`);
236
267
  }
237
268
  else if (isHttpMode) {
238
- console.error(`- Confluence: not configured (use X-Confluence-Url/X-Confluence-Token headers)`);
269
+ log(`- Confluence: not configured (use X-Confluence-Url/X-Confluence-Token headers)`);
239
270
  }
240
271
  if (isHttpMode) {
241
- console.error(`✓ Per-request credentials: enabled (HTTP transport)`);
272
+ log(`✓ Per-request credentials: enabled (HTTP transport)`);
242
273
  }
243
- console.error(`✓ Buffer tools enabled (for content pagination)`);
244
- console.error(`✓ Workload tools enabled (for time calculations)`);
245
- console.error(`✓ URL tools enabled (for full URL construction)`);
246
- console.error(`✓ Jicon help enabled (unified help system with topics: jql, cql, storage, plantuml)`);
247
- console.error(`✓ Date tools enabled (date_resolve for time range calculations)`);
274
+ log(`✓ Buffer tools enabled (for content pagination)`);
275
+ log(`✓ Workload tools enabled (for time calculations)`);
276
+ log(`✓ URL tools enabled (for full URL construction)`);
277
+ log(`✓ Jicon help enabled (unified help system with topics: jql, cql, storage, plantuml)`);
278
+ log(`✓ Date tools enabled (date_resolve for time range calculations)`);
248
279
  // Initialize PlantUML with external server URL
249
280
  const plantUmlResult = await initializePlantUml({
250
281
  serverUrl: config.plantUmlServerUrl,
251
282
  });
252
283
  if (plantUmlResult.disabled) {
253
- console.error(`- PlantUML not configured (set JICON_PLANTUML_SERVER_URL to enable)`);
284
+ log(`- PlantUML not configured (set JICON_PLANTUML_SERVER_URL to enable)`);
254
285
  }
255
286
  else if (plantUmlResult.success) {
256
- console.error(`✓ PlantUML configured: ${plantUmlResult.serverUrl}`);
287
+ log(`✓ PlantUML configured: ${plantUmlResult.serverUrl}`);
257
288
  }
258
- console.error(`✓ Prompts enabled: "jicon-workflows" (workflow guide at server level)`);
259
- console.error(`✓ Max output size: ${getMaxOutputSize()} chars (JICON_MAX_OUTPUT)`);
289
+ log(`✓ Prompts enabled: "jicon-workflows" (workflow guide at server level)`);
290
+ log(`✓ Max output size: ${getMaxOutputSize()} chars (JICON_MAX_OUTPUT)`);
260
291
  // Log permission info
261
292
  const allowedTools = permissionFilter.getAllowedTools();
262
293
  const permMode = permissionFilter.getMode();
263
- console.error(`✓ Permission mode: ${permMode}`);
264
- console.error(`✓ Allowed tools: ${allowedTools.length}/${Object.keys(allTools).length}`);
265
- if (writeHomeValidator) {
266
- console.error(`✓ Write-home restriction: enabled (Confluence writes restricted to personal space)`);
294
+ log(`✓ Permission mode: ${permMode}`);
295
+ log(`✓ Allowed tools: ${allowedTools.length}/${Object.keys(allTools).length}`);
296
+ if (permissionFilter.isWriteHomeEnabled()) {
297
+ log(`✓ Write-home restriction: enabled (Confluence writes restricted to personal space)`);
267
298
  }
299
+ log(`✓ Session management: enabled (per-session buffers and clients)`);
268
300
  // Create and start transport based on configuration
269
- const transport = createTransport(server, config.transport);
301
+ // Pass server factory for HTTP mode (per-session Server instances)
302
+ // or single server for stdio mode
303
+ const transport = createTransport(createServer, config.transport);
270
304
  currentTransport = transport;
271
305
  await transport.start();
272
306
  if (transport.mode === "http") {
273
- console.error(`Jicon MCP Server running on HTTP (${config.transport.http.host}:${config.transport.http.port})`);
307
+ log(`Jicon MCP Server running on HTTP (${config.transport.http.host}:${config.transport.http.port})`);
274
308
  }
275
309
  }
276
310
  // Track current transport for graceful shutdown
277
311
  let currentTransport = null;
278
312
  // Handle graceful shutdown
279
313
  async function shutdown() {
280
- console.error("Shutting down Jicon MCP Server...");
314
+ log("Shutting down Jicon MCP Server...");
281
315
  await shutdownPlantUml();
316
+ shutdownSessionManager(); // Clean up all sessions
282
317
  if (currentTransport) {
283
318
  await currentTransport.close();
284
319
  }
@@ -286,8 +321,8 @@ async function shutdown() {
286
321
  }
287
322
  process.on("SIGINT", shutdown);
288
323
  process.on("SIGTERM", shutdown);
289
- main().catch((error) => {
290
- console.error("Fatal error:", error);
324
+ main().catch((err) => {
325
+ logError("Fatal error", err);
291
326
  process.exit(1);
292
327
  });
293
328
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -7,18 +7,19 @@
7
7
  * - "Any blockers in recent discussions?"
8
8
  * - "Summarize team activity this month"
9
9
  * - "Analyze Epic PROJ-123 for progress and velocity"
10
+ *
11
+ * All tool handlers use session-scoped clients via getSessionJiraClient()
12
+ * which provides per-session caching and credential isolation.
10
13
  */
11
14
  import { z } from "zod";
12
- import { JiraClient } from "./client.js";
13
15
  import type { ToolResult } from "../types.js";
14
16
  /**
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
17
+ * Create activity tools using session-scoped clients
18
+ *
19
+ * Tools automatically use the JiraClient from the current session context,
20
+ * which provides per-session caching and credential isolation.
20
21
  */
21
- export declare function createActivityTools(getClient: JiraClientGetter): {
22
+ export declare function createActivityTools(): {
22
23
  jira_get_activity_digest: {
23
24
  description: string;
24
25
  inputSchema: z.ZodObject<{
@@ -31,7 +32,6 @@ export declare function createActivityTools(getClient: JiraClientGetter): {
31
32
  includePriorityChanges: z.ZodOptional<z.ZodBoolean>;
32
33
  includeAssigneeChanges: z.ZodOptional<z.ZodBoolean>;
33
34
  maxActivities: z.ZodOptional<z.ZodNumber>;
34
- commentMaxLength: z.ZodOptional<z.ZodNumber>;
35
35
  }, "strip", z.ZodTypeAny, {
36
36
  jql?: string | undefined;
37
37
  projectKey?: string | undefined;
@@ -42,7 +42,6 @@ export declare function createActivityTools(getClient: JiraClientGetter): {
42
42
  includePriorityChanges?: boolean | undefined;
43
43
  includeAssigneeChanges?: boolean | undefined;
44
44
  maxActivities?: number | undefined;
45
- commentMaxLength?: number | undefined;
46
45
  }, {
47
46
  jql?: string | undefined;
48
47
  projectKey?: string | undefined;
@@ -53,7 +52,6 @@ export declare function createActivityTools(getClient: JiraClientGetter): {
53
52
  includePriorityChanges?: boolean | undefined;
54
53
  includeAssigneeChanges?: boolean | undefined;
55
54
  maxActivities?: number | undefined;
56
- commentMaxLength?: number | undefined;
57
55
  }>;
58
56
  handler: (args: {
59
57
  projectKey?: string;
@@ -65,7 +63,6 @@ export declare function createActivityTools(getClient: JiraClientGetter): {
65
63
  includePriorityChanges?: boolean;
66
64
  includeAssigneeChanges?: boolean;
67
65
  maxActivities?: number;
68
- commentMaxLength?: number;
69
66
  }) => Promise<ToolResult>;
70
67
  };
71
68
  jira_get_recent_comments: {
@@ -77,7 +74,6 @@ export declare function createActivityTools(getClient: JiraClientGetter): {
77
74
  since: z.ZodOptional<z.ZodString>;
78
75
  authorKey: z.ZodOptional<z.ZodString>;
79
76
  maxComments: z.ZodOptional<z.ZodNumber>;
80
- includeContext: z.ZodOptional<z.ZodBoolean>;
81
77
  }, "strip", z.ZodTypeAny, {
82
78
  jql?: string | undefined;
83
79
  projectKey?: string | undefined;
@@ -85,7 +81,6 @@ export declare function createActivityTools(getClient: JiraClientGetter): {
85
81
  since?: string | undefined;
86
82
  authorKey?: string | undefined;
87
83
  maxComments?: number | undefined;
88
- includeContext?: boolean | undefined;
89
84
  }, {
90
85
  jql?: string | undefined;
91
86
  projectKey?: string | undefined;
@@ -93,7 +88,6 @@ export declare function createActivityTools(getClient: JiraClientGetter): {
93
88
  since?: string | undefined;
94
89
  authorKey?: string | undefined;
95
90
  maxComments?: number | undefined;
96
- includeContext?: boolean | undefined;
97
91
  }>;
98
92
  handler: (args: {
99
93
  projectKey?: string;
@@ -102,7 +96,6 @@ export declare function createActivityTools(getClient: JiraClientGetter): {
102
96
  since?: string;
103
97
  authorKey?: string;
104
98
  maxComments?: number;
105
- includeContext?: boolean;
106
99
  }) => Promise<ToolResult>;
107
100
  };
108
101
  jira_get_changelog: {
@@ -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;;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"}
1
+ {"version":3,"file":"activity-tools.d.ts","sourceRoot":"","sources":["../../src/jira/activity-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAgK9C;;;;;GAKG;AACH,wBAAgB,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAwCP;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;SACxB,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;SACtB,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;wBA4HD;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"}