@crypto512/jicon-mcp 2.2.0 → 2.3.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.
Files changed (143) hide show
  1. package/.env.example +2 -2
  2. package/README.md +16 -138
  3. package/TOOL_LIST.md +361 -296
  4. package/dist/config/constants.d.ts +15 -0
  5. package/dist/config/constants.d.ts.map +1 -1
  6. package/dist/config/constants.js +19 -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 +7 -1
  10. package/dist/config/loader.js.map +1 -1
  11. package/dist/config/types.d.ts +38 -6
  12. package/dist/config/types.d.ts.map +1 -1
  13. package/dist/config/types.js +16 -0
  14. package/dist/config/types.js.map +1 -1
  15. package/dist/confluence/formatters.d.ts +20 -0
  16. package/dist/confluence/formatters.d.ts.map +1 -1
  17. package/dist/confluence/formatters.js +74 -8
  18. package/dist/confluence/formatters.js.map +1 -1
  19. package/dist/confluence/tools.d.ts +8 -7
  20. package/dist/confluence/tools.d.ts.map +1 -1
  21. package/dist/confluence/tools.js +52 -31
  22. package/dist/confluence/tools.js.map +1 -1
  23. package/dist/credentials/extractor.d.ts +1 -2
  24. package/dist/credentials/extractor.d.ts.map +1 -1
  25. package/dist/credentials/extractor.js +21 -4
  26. package/dist/credentials/extractor.js.map +1 -1
  27. package/dist/credentials/index.d.ts +3 -2
  28. package/dist/credentials/index.d.ts.map +1 -1
  29. package/dist/credentials/index.js +3 -2
  30. package/dist/credentials/index.js.map +1 -1
  31. package/dist/index.js +43 -20
  32. package/dist/index.js.map +1 -1
  33. package/dist/jira/activity-tools.d.ts +8 -11
  34. package/dist/jira/activity-tools.d.ts.map +1 -1
  35. package/dist/jira/activity-tools.js +91 -27
  36. package/dist/jira/activity-tools.js.map +1 -1
  37. package/dist/jira/client.d.ts +12 -0
  38. package/dist/jira/client.d.ts.map +1 -1
  39. package/dist/jira/client.js +35 -0
  40. package/dist/jira/client.js.map +1 -1
  41. package/dist/jira/formatters.d.ts +58 -0
  42. package/dist/jira/formatters.d.ts.map +1 -1
  43. package/dist/jira/formatters.js +80 -11
  44. package/dist/jira/formatters.js.map +1 -1
  45. package/dist/jira/tools.d.ts +30 -12
  46. package/dist/jira/tools.d.ts.map +1 -1
  47. package/dist/jira/tools.js +127 -37
  48. package/dist/jira/tools.js.map +1 -1
  49. package/dist/permissions/tool-registry.d.ts +6 -6
  50. package/dist/permissions/tool-registry.d.ts.map +1 -1
  51. package/dist/permissions/tool-registry.js +4 -3
  52. package/dist/permissions/tool-registry.js.map +1 -1
  53. package/dist/session/context.d.ts +81 -0
  54. package/dist/session/context.d.ts.map +1 -0
  55. package/dist/session/context.js +107 -0
  56. package/dist/session/context.js.map +1 -0
  57. package/dist/session/index.d.ts +12 -0
  58. package/dist/session/index.d.ts.map +1 -0
  59. package/dist/session/index.js +22 -0
  60. package/dist/session/index.js.map +1 -0
  61. package/dist/session/manager.d.ts +155 -0
  62. package/dist/session/manager.d.ts.map +1 -0
  63. package/dist/session/manager.js +285 -0
  64. package/dist/session/manager.js.map +1 -0
  65. package/dist/tempo/client.d.ts +14 -0
  66. package/dist/tempo/client.d.ts.map +1 -1
  67. package/dist/tempo/client.js +55 -0
  68. package/dist/tempo/client.js.map +1 -1
  69. package/dist/tempo/formatters.d.ts +13 -0
  70. package/dist/tempo/formatters.d.ts.map +1 -1
  71. package/dist/tempo/formatters.js +106 -20
  72. package/dist/tempo/formatters.js.map +1 -1
  73. package/dist/tempo/tools.d.ts +10 -9
  74. package/dist/tempo/tools.d.ts.map +1 -1
  75. package/dist/tempo/tools.js +188 -33
  76. package/dist/tempo/tools.js.map +1 -1
  77. package/dist/tempo/types.d.ts +20 -6
  78. package/dist/tempo/types.d.ts.map +1 -1
  79. package/dist/transport/http.d.ts +20 -3
  80. package/dist/transport/http.d.ts.map +1 -1
  81. package/dist/transport/http.js +171 -15
  82. package/dist/transport/http.js.map +1 -1
  83. package/dist/transport/types.d.ts +2 -0
  84. package/dist/transport/types.d.ts.map +1 -1
  85. package/dist/transport/types.js.map +1 -1
  86. package/dist/utils/buffer-tools.d.ts +46 -722
  87. package/dist/utils/buffer-tools.d.ts.map +1 -1
  88. package/dist/utils/buffer-tools.js +303 -158
  89. package/dist/utils/buffer-tools.js.map +1 -1
  90. package/dist/utils/content-buffer.d.ts +10 -31
  91. package/dist/utils/content-buffer.d.ts.map +1 -1
  92. package/dist/utils/content-buffer.js +12 -86
  93. package/dist/utils/content-buffer.js.map +1 -1
  94. package/dist/utils/jicon-help.d.ts +3 -3
  95. package/dist/utils/jicon-help.d.ts.map +1 -1
  96. package/dist/utils/jicon-help.js +163 -101
  97. package/dist/utils/jicon-help.js.map +1 -1
  98. package/dist/utils/plantuml/tools.d.ts.map +1 -1
  99. package/dist/utils/plantuml/tools.js +8 -7
  100. package/dist/utils/plantuml/tools.js.map +1 -1
  101. package/dist/utils/response-formatter.d.ts +12 -2
  102. package/dist/utils/response-formatter.d.ts.map +1 -1
  103. package/dist/utils/response-formatter.js +85 -13
  104. package/dist/utils/response-formatter.js.map +1 -1
  105. package/dist/utils/sandbox/formatters.d.ts +25 -0
  106. package/dist/utils/sandbox/formatters.d.ts.map +1 -0
  107. package/dist/utils/sandbox/formatters.js +690 -0
  108. package/dist/utils/sandbox/formatters.js.map +1 -0
  109. package/dist/utils/sandbox/helpers.d.ts +16 -0
  110. package/dist/utils/sandbox/helpers.d.ts.map +1 -0
  111. package/dist/utils/sandbox/helpers.js +252 -0
  112. package/dist/utils/sandbox/helpers.js.map +1 -0
  113. package/dist/utils/sandbox/index.d.ts +19 -0
  114. package/dist/utils/sandbox/index.d.ts.map +1 -0
  115. package/dist/utils/sandbox/index.js +269 -0
  116. package/dist/utils/sandbox/index.js.map +1 -0
  117. package/dist/utils/sandbox/schema.d.ts +55 -0
  118. package/dist/utils/sandbox/schema.d.ts.map +1 -0
  119. package/dist/utils/sandbox/schema.js +39 -0
  120. package/dist/utils/sandbox/schema.js.map +1 -0
  121. package/dist/utils/sandbox/types.d.ts +179 -0
  122. package/dist/utils/sandbox/types.d.ts.map +1 -0
  123. package/dist/utils/sandbox/types.js +8 -0
  124. package/dist/utils/sandbox/types.js.map +1 -0
  125. package/dist/utils/schemas/confluence.d.ts +41 -0
  126. package/dist/utils/schemas/confluence.d.ts.map +1 -0
  127. package/dist/utils/schemas/confluence.js +105 -0
  128. package/dist/utils/schemas/confluence.js.map +1 -0
  129. package/dist/utils/schemas/index.d.ts +66 -0
  130. package/dist/utils/schemas/index.d.ts.map +1 -0
  131. package/dist/utils/schemas/index.js +107 -0
  132. package/dist/utils/schemas/index.js.map +1 -0
  133. package/dist/utils/schemas/jira.d.ts +49 -0
  134. package/dist/utils/schemas/jira.d.ts.map +1 -0
  135. package/dist/utils/schemas/jira.js +151 -0
  136. package/dist/utils/schemas/jira.js.map +1 -0
  137. package/dist/utils/schemas/tempo.d.ts +29 -0
  138. package/dist/utils/schemas/tempo.d.ts.map +1 -0
  139. package/dist/utils/schemas/tempo.js +72 -0
  140. package/dist/utils/schemas/tempo.js.map +1 -0
  141. package/dist/utils/xhtml/error-locator.js +5 -5
  142. package/dist/utils/xhtml/error-locator.js.map +1 -1
  143. package/package.json +10 -9
@@ -0,0 +1,155 @@
1
+ /**
2
+ * Session Manager for MCP Server
3
+ *
4
+ * Manages session lifecycle with per-session:
5
+ * - Content buffers (isolated from other sessions)
6
+ * - API clients (with their caches)
7
+ * - Write-home validators
8
+ *
9
+ * Sessions are created on first request with credentials and automatically
10
+ * cleaned up after 30 minutes of inactivity.
11
+ */
12
+ import { ContentBuffer } from "../utils/content-buffer.js";
13
+ import type { RequestCredentials } from "../credentials/types.js";
14
+ import { JiraClient } from "../jira/client.js";
15
+ import { ConfluenceClient } from "../confluence/client.js";
16
+ import { TempoClient } from "../tempo/client.js";
17
+ import { WriteHomeValidator } from "../permissions/write-home-validator.js";
18
+ import type { ApiConfig } from "../types.js";
19
+ /**
20
+ * Per-session API clients with their caches
21
+ */
22
+ export interface SessionClients {
23
+ jira: JiraClient | null;
24
+ confluence: ConfluenceClient | null;
25
+ tempo: TempoClient | null;
26
+ }
27
+ /**
28
+ * Session data stored by the manager
29
+ */
30
+ export interface SessionData {
31
+ sessionId: string;
32
+ credentials: RequestCredentials;
33
+ buffer: ContentBuffer;
34
+ clients: SessionClients;
35
+ writeHomeValidator: WriteHomeValidator | null;
36
+ createdAt: number;
37
+ lastActivity: number;
38
+ }
39
+ /**
40
+ * Configuration for the session manager
41
+ */
42
+ export interface SessionManagerConfig {
43
+ /** Default Jira configuration (from environment) */
44
+ defaultJiraConfig: ApiConfig | null;
45
+ /** Default Confluence configuration (from environment) */
46
+ defaultConfluenceConfig: ApiConfig | null;
47
+ /** Whether write-home restriction is enabled */
48
+ writeHomeEnabled: boolean;
49
+ /** Session timeout in milliseconds (default: 30 minutes) */
50
+ sessionTimeoutMs?: number;
51
+ /** Cleanup interval in milliseconds (default: 5 minutes) */
52
+ cleanupIntervalMs?: number;
53
+ /** Maximum buffers per session (default: 50) */
54
+ maxBuffersPerSession?: number;
55
+ /** Maximum concurrent sessions (default: 1000, DoS protection) */
56
+ maxSessions?: number;
57
+ /** Callback when a session is destroyed (for transport cleanup coordination) */
58
+ onSessionDestroyed?: (sessionId: string) => void;
59
+ }
60
+ /**
61
+ * Session Manager
62
+ *
63
+ * Manages per-session state including:
64
+ * - ContentBuffer instances (isolated per session)
65
+ * - API clients with their caches
66
+ * - WriteHomeValidator instances
67
+ * - Automatic cleanup of stale sessions
68
+ */
69
+ export declare class SessionManager {
70
+ private sessions;
71
+ private cleanupInterval;
72
+ private config;
73
+ private sessionTimeoutMs;
74
+ private maxSessions;
75
+ private onSessionDestroyed?;
76
+ constructor(config: SessionManagerConfig);
77
+ /**
78
+ * Create a new session with the given credentials
79
+ * @throws Error if maximum sessions limit reached (DoS protection)
80
+ */
81
+ createSession(sessionId: string, credentials: RequestCredentials): SessionData;
82
+ /**
83
+ * Get an existing session by ID
84
+ * Updates the lastActivity timestamp on access
85
+ */
86
+ getSession(sessionId: string): SessionData | undefined;
87
+ /**
88
+ * Get or create a session
89
+ * If session exists, returns it (and updates lastActivity)
90
+ * If session doesn't exist, creates it with the given credentials
91
+ *
92
+ * If existing session has no clients but new credentials are provided,
93
+ * updates the clients in-place (preserving session/transport).
94
+ */
95
+ getOrCreateSession(sessionId: string, credentials: RequestCredentials): SessionData;
96
+ /**
97
+ * Update session clients in-place when new credentials are provided
98
+ * This preserves the session and its transport connection
99
+ */
100
+ private updateSessionClients;
101
+ /**
102
+ * Destroy a session and clean up its resources
103
+ * Also triggers onSessionDestroyed callback for transport cleanup
104
+ */
105
+ destroySession(sessionId: string): void;
106
+ /**
107
+ * Clean up sessions that have been inactive for longer than the timeout
108
+ */
109
+ private cleanupStaleSessions;
110
+ /**
111
+ * Get the number of active sessions
112
+ */
113
+ getSessionCount(): number;
114
+ /**
115
+ * Get the maximum sessions limit
116
+ */
117
+ getMaxSessions(): number;
118
+ /**
119
+ * Set the callback for when a session is destroyed
120
+ * Used by HTTP transport for coordinated transport cleanup
121
+ */
122
+ setSessionDestroyedCallback(callback: (sessionId: string) => void): void;
123
+ /**
124
+ * Shutdown the session manager
125
+ * Destroys all sessions and stops the cleanup interval
126
+ */
127
+ shutdown(): void;
128
+ /**
129
+ * Resolve Jira configuration from credentials or defaults
130
+ */
131
+ private resolveJiraConfig;
132
+ /**
133
+ * Resolve Confluence configuration from credentials or defaults
134
+ */
135
+ private resolveConfluenceConfig;
136
+ /**
137
+ * Convert service credentials to ApiConfig format
138
+ */
139
+ private toApiConfig;
140
+ }
141
+ /**
142
+ * Initialize the session manager singleton
143
+ * Must be called once during server startup
144
+ */
145
+ export declare function initializeSessionManager(config: SessionManagerConfig): SessionManager;
146
+ /**
147
+ * Get the session manager singleton
148
+ * Throws if not initialized
149
+ */
150
+ export declare function getSessionManager(): SessionManager;
151
+ /**
152
+ * Shutdown the session manager singleton
153
+ */
154
+ export declare function shutdownSessionManager(): void;
155
+ //# sourceMappingURL=manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/session/manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,285 @@
1
+ /**
2
+ * Session Manager for MCP Server
3
+ *
4
+ * Manages session lifecycle with per-session:
5
+ * - Content buffers (isolated from other sessions)
6
+ * - API clients (with their caches)
7
+ * - Write-home validators
8
+ *
9
+ * Sessions are created on first request with credentials and automatically
10
+ * cleaned up after 30 minutes of inactivity.
11
+ */
12
+ import { ContentBuffer } from "../utils/content-buffer.js";
13
+ import { JiraClient } from "../jira/client.js";
14
+ import { ConfluenceClient } from "../confluence/client.js";
15
+ import { TempoClient } from "../tempo/client.js";
16
+ import { WriteHomeValidator } from "../permissions/write-home-validator.js";
17
+ // Import defaults from config constants (single source of truth)
18
+ import { DEFAULT_SESSION_TIMEOUT_MS, DEFAULT_MAX_SESSIONS, DEFAULT_MAX_BUFFERS } from "../config/constants.js";
19
+ /** Default cleanup interval: 5 minutes */
20
+ const DEFAULT_CLEANUP_INTERVAL_MS = 5 * 60 * 1000;
21
+ /**
22
+ * Session Manager
23
+ *
24
+ * Manages per-session state including:
25
+ * - ContentBuffer instances (isolated per session)
26
+ * - API clients with their caches
27
+ * - WriteHomeValidator instances
28
+ * - Automatic cleanup of stale sessions
29
+ */
30
+ export class SessionManager {
31
+ sessions = new Map();
32
+ cleanupInterval = null;
33
+ config;
34
+ sessionTimeoutMs;
35
+ maxSessions;
36
+ onSessionDestroyed;
37
+ constructor(config) {
38
+ this.config = config;
39
+ this.sessionTimeoutMs = config.sessionTimeoutMs ?? DEFAULT_SESSION_TIMEOUT_MS;
40
+ this.maxSessions = config.maxSessions ?? DEFAULT_MAX_SESSIONS;
41
+ this.onSessionDestroyed = config.onSessionDestroyed;
42
+ // Start periodic cleanup
43
+ const cleanupMs = config.cleanupIntervalMs ?? DEFAULT_CLEANUP_INTERVAL_MS;
44
+ this.cleanupInterval = setInterval(() => this.cleanupStaleSessions(), cleanupMs);
45
+ // Ensure cleanup interval doesn't prevent process exit
46
+ if (this.cleanupInterval.unref) {
47
+ this.cleanupInterval.unref();
48
+ }
49
+ }
50
+ /**
51
+ * Create a new session with the given credentials
52
+ * @throws Error if maximum sessions limit reached (DoS protection)
53
+ */
54
+ createSession(sessionId, credentials) {
55
+ // DoS protection: limit concurrent sessions
56
+ if (this.sessions.size >= this.maxSessions) {
57
+ throw new Error(`Maximum sessions limit reached (${this.maxSessions}). ` +
58
+ "Try again later or contact administrator.");
59
+ }
60
+ const now = Date.now();
61
+ const maxBuffers = this.config.maxBuffersPerSession ?? DEFAULT_MAX_BUFFERS;
62
+ // Create per-session clients
63
+ // Use per-request credentials if available, else fall back to defaults
64
+ const jiraConfig = this.resolveJiraConfig(credentials);
65
+ const confluenceConfig = this.resolveConfluenceConfig(credentials);
66
+ const clients = {
67
+ jira: jiraConfig ? new JiraClient(jiraConfig) : null,
68
+ confluence: confluenceConfig ? new ConfluenceClient(confluenceConfig) : null,
69
+ tempo: jiraConfig ? new TempoClient(jiraConfig) : null, // Tempo uses Jira auth
70
+ };
71
+ // Create write-home validator if Confluence available and write-home mode enabled
72
+ const writeHomeValidator = clients.confluence && this.config.writeHomeEnabled
73
+ ? new WriteHomeValidator(clients.confluence)
74
+ : null;
75
+ const session = {
76
+ sessionId,
77
+ credentials,
78
+ buffer: new ContentBuffer({ maxBuffers }),
79
+ clients,
80
+ writeHomeValidator,
81
+ createdAt: now,
82
+ lastActivity: now,
83
+ };
84
+ this.sessions.set(sessionId, session);
85
+ const jiraUrl = jiraConfig?.url || "not configured";
86
+ const confluenceUrl = confluenceConfig?.url || "not configured";
87
+ console.error(`Session created: ${sessionId} (jira: ${jiraUrl}, confluence: ${confluenceUrl})`);
88
+ return session;
89
+ }
90
+ /**
91
+ * Get an existing session by ID
92
+ * Updates the lastActivity timestamp on access
93
+ */
94
+ getSession(sessionId) {
95
+ const session = this.sessions.get(sessionId);
96
+ if (session) {
97
+ session.lastActivity = Date.now();
98
+ }
99
+ return session;
100
+ }
101
+ /**
102
+ * Get or create a session
103
+ * If session exists, returns it (and updates lastActivity)
104
+ * If session doesn't exist, creates it with the given credentials
105
+ *
106
+ * If existing session has no clients but new credentials are provided,
107
+ * updates the clients in-place (preserving session/transport).
108
+ */
109
+ getOrCreateSession(sessionId, credentials) {
110
+ const existing = this.getSession(sessionId);
111
+ if (existing) {
112
+ // Check if credentials have changed and we need to update clients
113
+ const hasNewJira = credentials.jira && !existing.clients.jira;
114
+ const hasNewConfluence = credentials.confluence && !existing.clients.confluence;
115
+ if (hasNewJira || hasNewConfluence) {
116
+ // Update clients in-place (don't destroy session - that would close the transport!)
117
+ console.error(`Session ${sessionId}: credentials updated, updating clients in-place`);
118
+ this.updateSessionClients(existing, credentials);
119
+ }
120
+ return existing;
121
+ }
122
+ return this.createSession(sessionId, credentials);
123
+ }
124
+ /**
125
+ * Update session clients in-place when new credentials are provided
126
+ * This preserves the session and its transport connection
127
+ */
128
+ updateSessionClients(session, credentials) {
129
+ // Update Jira client if new credentials provided
130
+ if (credentials.jira && !session.clients.jira) {
131
+ const jiraConfig = this.toApiConfig(credentials.jira);
132
+ session.clients.jira = new JiraClient(jiraConfig);
133
+ session.clients.tempo = new TempoClient(jiraConfig); // Tempo uses Jira auth
134
+ console.error(`Session ${session.sessionId}: Jira client created (${jiraConfig.url})`);
135
+ }
136
+ // Update Confluence client if new credentials provided
137
+ if (credentials.confluence && !session.clients.confluence) {
138
+ const confluenceConfig = this.toApiConfig(credentials.confluence);
139
+ session.clients.confluence = new ConfluenceClient(confluenceConfig);
140
+ console.error(`Session ${session.sessionId}: Confluence client created (${confluenceConfig.url})`);
141
+ // Create write-home validator if write-home mode enabled
142
+ if (this.config.writeHomeEnabled && !session.writeHomeValidator) {
143
+ session.writeHomeValidator = new WriteHomeValidator(session.clients.confluence);
144
+ }
145
+ }
146
+ // Update stored credentials (merge with existing)
147
+ session.credentials = {
148
+ jira: credentials.jira || session.credentials.jira,
149
+ confluence: credentials.confluence || session.credentials.confluence,
150
+ };
151
+ }
152
+ /**
153
+ * Destroy a session and clean up its resources
154
+ * Also triggers onSessionDestroyed callback for transport cleanup
155
+ */
156
+ destroySession(sessionId) {
157
+ const session = this.sessions.get(sessionId);
158
+ if (session) {
159
+ // Clean up the buffer (stops cleanup interval, clears all buffers)
160
+ session.buffer.destroy();
161
+ this.sessions.delete(sessionId);
162
+ console.error(`Session destroyed: ${sessionId}`);
163
+ // Notify transport layer for coordinated cleanup (fix: issue #7)
164
+ if (this.onSessionDestroyed) {
165
+ try {
166
+ this.onSessionDestroyed(sessionId);
167
+ }
168
+ catch (err) {
169
+ console.error(`Error in onSessionDestroyed callback for ${sessionId}:`, err);
170
+ }
171
+ }
172
+ }
173
+ }
174
+ /**
175
+ * Clean up sessions that have been inactive for longer than the timeout
176
+ */
177
+ cleanupStaleSessions() {
178
+ const now = Date.now();
179
+ for (const [sessionId, session] of this.sessions) {
180
+ const inactiveMs = now - session.lastActivity;
181
+ if (inactiveMs > this.sessionTimeoutMs) {
182
+ const inactiveMin = Math.round(inactiveMs / 60000);
183
+ console.error(`Session timeout: ${sessionId} (inactive ${inactiveMin}min)`);
184
+ this.destroySession(sessionId);
185
+ }
186
+ }
187
+ }
188
+ /**
189
+ * Get the number of active sessions
190
+ */
191
+ getSessionCount() {
192
+ return this.sessions.size;
193
+ }
194
+ /**
195
+ * Get the maximum sessions limit
196
+ */
197
+ getMaxSessions() {
198
+ return this.maxSessions;
199
+ }
200
+ /**
201
+ * Set the callback for when a session is destroyed
202
+ * Used by HTTP transport for coordinated transport cleanup
203
+ */
204
+ setSessionDestroyedCallback(callback) {
205
+ this.onSessionDestroyed = callback;
206
+ }
207
+ /**
208
+ * Shutdown the session manager
209
+ * Destroys all sessions and stops the cleanup interval
210
+ */
211
+ shutdown() {
212
+ if (this.cleanupInterval) {
213
+ clearInterval(this.cleanupInterval);
214
+ this.cleanupInterval = null;
215
+ }
216
+ // Destroy all sessions
217
+ for (const sessionId of this.sessions.keys()) {
218
+ this.destroySession(sessionId);
219
+ }
220
+ console.error("Session manager shutdown complete");
221
+ }
222
+ /**
223
+ * Resolve Jira configuration from credentials or defaults
224
+ */
225
+ resolveJiraConfig(credentials) {
226
+ if (credentials.jira) {
227
+ return this.toApiConfig(credentials.jira);
228
+ }
229
+ return this.config.defaultJiraConfig;
230
+ }
231
+ /**
232
+ * Resolve Confluence configuration from credentials or defaults
233
+ */
234
+ resolveConfluenceConfig(credentials) {
235
+ if (credentials.confluence) {
236
+ return this.toApiConfig(credentials.confluence);
237
+ }
238
+ return this.config.defaultConfluenceConfig;
239
+ }
240
+ /**
241
+ * Convert service credentials to ApiConfig format
242
+ */
243
+ toApiConfig(creds) {
244
+ return {
245
+ url: creds.url,
246
+ token: creds.token,
247
+ // Per-request credentials use bearer auth (PAT style)
248
+ authType: "bearer",
249
+ };
250
+ }
251
+ }
252
+ // Singleton instance - initialized by the main entry point
253
+ let sessionManagerInstance = null;
254
+ /**
255
+ * Initialize the session manager singleton
256
+ * Must be called once during server startup
257
+ */
258
+ export function initializeSessionManager(config) {
259
+ if (sessionManagerInstance) {
260
+ console.error("Warning: Session manager already initialized, reinitializing...");
261
+ sessionManagerInstance.shutdown();
262
+ }
263
+ sessionManagerInstance = new SessionManager(config);
264
+ return sessionManagerInstance;
265
+ }
266
+ /**
267
+ * Get the session manager singleton
268
+ * Throws if not initialized
269
+ */
270
+ export function getSessionManager() {
271
+ if (!sessionManagerInstance) {
272
+ throw new Error("Session manager not initialized. Call initializeSessionManager() first.");
273
+ }
274
+ return sessionManagerInstance;
275
+ }
276
+ /**
277
+ * Shutdown the session manager singleton
278
+ */
279
+ export function shutdownSessionManager() {
280
+ if (sessionManagerInstance) {
281
+ sessionManagerInstance.shutdown();
282
+ sessionManagerInstance = null;
283
+ }
284
+ }
285
+ //# sourceMappingURL=manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/session/manager.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ import type { TempoWorklog, TempoWorklogInput, TempoWorklogSearchResult, TempoAc
10
10
  export declare class TempoClient {
11
11
  private http;
12
12
  private cachedCurrentUser;
13
+ private userDisplayNameCache;
13
14
  constructor(config: ApiConfig);
14
15
  private resolveIssueId;
15
16
  private resolveProjectId;
@@ -41,5 +42,18 @@ export declare class TempoClient {
41
42
  * Convenience method for tools that need just the workerKey
42
43
  */
43
44
  getMyWorkerKey(): Promise<string>;
45
+ /**
46
+ * Resolve workerKey to displayName using Jira Data Center API
47
+ * Tempo DC v4 only returns workerKey, not displayName
48
+ * Results are cached to avoid repeated API calls
49
+ * @param workerKey - The worker key from Tempo (username or JIRAUSER key)
50
+ * @returns displayName if found, or workerKey as fallback
51
+ */
52
+ resolveUserDisplayName(workerKey: string): Promise<string>;
53
+ /**
54
+ * Resolve multiple workerKeys to displayNames in parallel
55
+ * Uses persistent cache to avoid repeated API calls
56
+ */
57
+ resolveUserDisplayNames(workerKeys: string[]): Promise<Map<string, string>>;
44
58
  }
45
59
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/tempo/client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,wBAAwB,EACxB,YAAY,EACZ,SAAS,EACV,MAAM,YAAY,CAAC;AAEpB,qBAAa,WAAW;IACtB,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,iBAAiB,CAKT;gBAEJ,MAAM,EAAE,SAAS;YAKf,cAAc;YAKd,gBAAgB;IAMxB,WAAW,CACf,QAAQ,CAAC,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,wBAAwB,CAAC;IA6E9B,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAMpD,OAAO,CAAC,WAAW,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC;IAiC9D,aAAa,CACjB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,OAAO,CAAC,iBAAiB,CAAC,GACtC,OAAO,CAAC,YAAY,CAAC;IAgClB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO/C,WAAW,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAQtC,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAMrD,aAAa,CAAC,WAAW,EAAE;QAC/B,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,aAAa,EAAE,MAAM,CAAC;QACtB,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;KAC5B,GAAG,OAAO,CAAC,YAAY,CAAC;IAQnB,QAAQ,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAQhC,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAI3C,eAAe,CACnB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,wBAAwB,CAAC;IA4B9B,eAAe,CACnB,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,wBAAwB,CAAC;IAqD9B,cAAc,IAAI,OAAO,CAAC;QAC9B,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IAiBF;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;CAIxC"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/tempo/client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,wBAAwB,EACxB,YAAY,EACZ,SAAS,EACV,MAAM,YAAY,CAAC;AAEpB,qBAAa,WAAW;IACtB,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,iBAAiB,CAKT;IAEhB,OAAO,CAAC,oBAAoB,CAAkC;gBAElD,MAAM,EAAE,SAAS;YAKf,cAAc;YAKd,gBAAgB;IAMxB,WAAW,CACf,QAAQ,CAAC,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,wBAAwB,CAAC;IA6E9B,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAMpD,OAAO,CAAC,WAAW,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC;IAiC9D,aAAa,CACjB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,OAAO,CAAC,iBAAiB,CAAC,GACtC,OAAO,CAAC,YAAY,CAAC;IAgClB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO/C,WAAW,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAQtC,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAMrD,aAAa,CAAC,WAAW,EAAE;QAC/B,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,aAAa,EAAE,MAAM,CAAC;QACtB,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;KAC5B,GAAG,OAAO,CAAC,YAAY,CAAC;IAQnB,QAAQ,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAQhC,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAI3C,eAAe,CACnB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,wBAAwB,CAAC;IA4B9B,eAAe,CACnB,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,wBAAwB,CAAC;IAqD9B,cAAc,IAAI,OAAO,CAAC;QAC9B,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IAiBF;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAKvC;;;;;;OAMG;IACG,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA+BhE;;;OAGG;IACG,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAqBlF"}
@@ -9,6 +9,8 @@ import { HttpClient } from "../utils/http-client.js";
9
9
  export class TempoClient {
10
10
  http;
11
11
  cachedCurrentUser = null;
12
+ // Cache for resolved user display names (workerKey -> displayName)
13
+ userDisplayNameCache = new Map();
12
14
  constructor(config) {
13
15
  this.http = new HttpClient(config);
14
16
  }
@@ -251,5 +253,58 @@ export class TempoClient {
251
253
  const user = await this.getCurrentUser();
252
254
  return user.key;
253
255
  }
256
+ /**
257
+ * Resolve workerKey to displayName using Jira Data Center API
258
+ * Tempo DC v4 only returns workerKey, not displayName
259
+ * Results are cached to avoid repeated API calls
260
+ * @param workerKey - The worker key from Tempo (username or JIRAUSER key)
261
+ * @returns displayName if found, or workerKey as fallback
262
+ */
263
+ async resolveUserDisplayName(workerKey) {
264
+ // Check cache first
265
+ if (this.userDisplayNameCache.has(workerKey)) {
266
+ return this.userDisplayNameCache.get(workerKey);
267
+ }
268
+ let displayName = workerKey; // Default fallback
269
+ try {
270
+ // Jira DC API: try with username parameter first (most common case)
271
+ const user = await this.http.get(`/rest/api/2/user?username=${encodeURIComponent(workerKey)}`);
272
+ displayName = user.displayName || user.name || workerKey;
273
+ }
274
+ catch {
275
+ // If username lookup fails, try with key parameter (for JIRAUSER format)
276
+ try {
277
+ const user = await this.http.get(`/rest/api/2/user?key=${encodeURIComponent(workerKey)}`);
278
+ displayName = user.displayName || user.name || workerKey;
279
+ }
280
+ catch {
281
+ // User not found - use workerKey as fallback (already set)
282
+ }
283
+ }
284
+ // Cache the result
285
+ this.userDisplayNameCache.set(workerKey, displayName);
286
+ return displayName;
287
+ }
288
+ /**
289
+ * Resolve multiple workerKeys to displayNames in parallel
290
+ * Uses persistent cache to avoid repeated API calls
291
+ */
292
+ async resolveUserDisplayNames(workerKeys) {
293
+ const uniqueKeys = [...new Set(workerKeys.filter(Boolean))];
294
+ const result = new Map();
295
+ // Identify keys that need resolution (not in cache)
296
+ const uncachedKeys = uniqueKeys.filter(key => !this.userDisplayNameCache.has(key));
297
+ // Resolve uncached keys in parallel batches (5 at a time to avoid rate limiting)
298
+ const batchSize = 5;
299
+ for (let i = 0; i < uncachedKeys.length; i += batchSize) {
300
+ const batch = uncachedKeys.slice(i, i + batchSize);
301
+ await Promise.all(batch.map(key => this.resolveUserDisplayName(key)));
302
+ }
303
+ // Build result map from cache
304
+ for (const key of uniqueKeys) {
305
+ result.set(key, this.userDisplayNameCache.get(key) || key);
306
+ }
307
+ return result;
308
+ }
254
309
  }
255
310
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/tempo/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/tempo/client.ts"],"names":[],"mappings":"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"}
@@ -31,4 +31,17 @@ export declare function formatTeam(team: TempoTeam): string;
31
31
  * Format list of teams
32
32
  */
33
33
  export declare function formatTeams(teams: TempoTeam[]): string;
34
+ /**
35
+ * Extract worklog metadata for buffered responses (matches tempo_worklog schema)
36
+ * Accepts enriched worklogs with optional workerKey (from mapping)
37
+ */
38
+ export declare function formatWorklogMetadata(worklog: Record<string, unknown>): Record<string, unknown>;
39
+ /**
40
+ * Extract account metadata for buffered responses (matches tempo_account schema)
41
+ */
42
+ export declare function formatAccountMetadata(account: TempoAccount): Record<string, unknown>;
43
+ /**
44
+ * Extract team metadata for buffered responses (matches tempo_team schema)
45
+ */
46
+ export declare function formatTeamMetadata(team: TempoTeam): Record<string, unknown>;
34
47
  //# sourceMappingURL=formatters.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatters.d.ts","sourceRoot":"","sources":["../../src/tempo/formatters.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,wBAAwB,EACxB,YAAY,EACZ,SAAS,EACV,MAAM,YAAY,CAAC;AAGpB;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,wBAAwB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA6BrG;AAGD;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CA2C3D;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,wBAAwB,GAC/B,MAAM,CAyER;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAwB3D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,MAAM,CAqB/D;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAoClD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM,CAoBtD"}
1
+ {"version":3,"file":"formatters.d.ts","sourceRoot":"","sources":["../../src/tempo/formatters.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,wBAAwB,EACxB,YAAY,EACZ,SAAS,EACV,MAAM,YAAY,CAAC;AAWpB;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,wBAAwB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA6BrG;AAmBD;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAsD3D;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,wBAAwB,GAC/B,MAAM,CA0ER;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAwB3D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,MAAM,CAqB/D;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAoClD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM,CAoBtD;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAkB/F;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAUpF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAY3E"}