@crypto512/jicon-mcp 2.3.0 → 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.
- package/PROMPT.md +10 -28
- package/README.md +35 -7
- package/TOOL_LIST.md +206 -136
- package/dist/config/constants.d.ts +17 -4
- package/dist/config/constants.d.ts.map +1 -1
- package/dist/config/constants.js +20 -5
- package/dist/config/constants.js.map +1 -1
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +6 -2
- package/dist/config/loader.js.map +1 -1
- package/dist/config/types.d.ts +19 -8
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +10 -8
- package/dist/config/types.js.map +1 -1
- package/dist/confluence/client.d.ts.map +1 -1
- package/dist/confluence/client.js +7 -2
- package/dist/confluence/client.js.map +1 -1
- package/dist/confluence/tools.d.ts +8 -13
- package/dist/confluence/tools.d.ts.map +1 -1
- package/dist/confluence/tools.js +19 -37
- package/dist/confluence/tools.js.map +1 -1
- package/dist/credentials/extractor.d.ts +14 -3
- package/dist/credentials/extractor.d.ts.map +1 -1
- package/dist/credentials/extractor.js +83 -13
- package/dist/credentials/extractor.js.map +1 -1
- package/dist/credentials/index.d.ts +1 -1
- package/dist/credentials/index.d.ts.map +1 -1
- package/dist/credentials/index.js.map +1 -1
- package/dist/credentials/types.d.ts +22 -0
- package/dist/credentials/types.d.ts.map +1 -1
- package/dist/credentials/types.js.map +1 -1
- package/dist/index.js +196 -184
- package/dist/index.js.map +1 -1
- package/dist/jira/activity-tools.d.ts +0 -4
- package/dist/jira/activity-tools.d.ts.map +1 -1
- package/dist/jira/activity-tools.js +42 -65
- package/dist/jira/activity-tools.js.map +1 -1
- package/dist/jira/client.d.ts +12 -0
- package/dist/jira/client.d.ts.map +1 -1
- package/dist/jira/client.js +30 -6
- package/dist/jira/client.js.map +1 -1
- package/dist/jira/formatters.d.ts +4 -1
- package/dist/jira/formatters.d.ts.map +1 -1
- package/dist/jira/formatters.js +9 -6
- package/dist/jira/formatters.js.map +1 -1
- package/dist/jira/tools.d.ts +48 -14
- package/dist/jira/tools.d.ts.map +1 -1
- package/dist/jira/tools.js +174 -101
- package/dist/jira/tools.js.map +1 -1
- package/dist/permissions/filter.d.ts.map +1 -1
- package/dist/permissions/filter.js +8 -4
- package/dist/permissions/filter.js.map +1 -1
- package/dist/permissions/tool-registry.d.ts +15 -13
- package/dist/permissions/tool-registry.d.ts.map +1 -1
- package/dist/permissions/tool-registry.js +16 -8
- package/dist/permissions/tool-registry.js.map +1 -1
- package/dist/session/context.d.ts +3 -3
- package/dist/session/context.d.ts.map +1 -1
- package/dist/session/manager.d.ts +58 -27
- package/dist/session/manager.d.ts.map +1 -1
- package/dist/session/manager.js +177 -79
- package/dist/session/manager.js.map +1 -1
- package/dist/tempo/client.d.ts.map +1 -1
- package/dist/tempo/client.js +3 -1
- package/dist/tempo/client.js.map +1 -1
- package/dist/tempo/tools.d.ts +4 -4
- package/dist/tempo/tools.d.ts.map +1 -1
- package/dist/tempo/tools.js +15 -0
- package/dist/tempo/tools.js.map +1 -1
- package/dist/transport/http.d.ts +17 -18
- package/dist/transport/http.d.ts.map +1 -1
- package/dist/transport/http.js +135 -120
- package/dist/transport/http.js.map +1 -1
- package/dist/transport/index.d.ts +7 -2
- package/dist/transport/index.d.ts.map +1 -1
- package/dist/transport/index.js +10 -4
- package/dist/transport/index.js.map +1 -1
- package/dist/transport/types.d.ts +0 -2
- package/dist/transport/types.d.ts.map +1 -1
- package/dist/transport/types.js.map +1 -1
- package/dist/utils/buffer-tools.d.ts +2 -2
- package/dist/utils/buffer-tools.d.ts.map +1 -1
- package/dist/utils/buffer-tools.js +41 -19
- package/dist/utils/buffer-tools.js.map +1 -1
- package/dist/utils/http-client.d.ts.map +1 -1
- package/dist/utils/http-client.js +99 -2
- package/dist/utils/http-client.js.map +1 -1
- package/dist/utils/jicon-help.d.ts +1 -1
- package/dist/utils/jicon-help.d.ts.map +1 -1
- package/dist/utils/jicon-help.js +126 -336
- package/dist/utils/jicon-help.js.map +1 -1
- package/dist/utils/logger.d.ts +43 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +102 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/plantuml/tools.js +2 -2
- package/dist/utils/plantuml/tools.js.map +1 -1
- package/dist/utils/response-formatter.d.ts +8 -0
- package/dist/utils/response-formatter.d.ts.map +1 -1
- package/dist/utils/response-formatter.js +65 -7
- package/dist/utils/response-formatter.js.map +1 -1
- package/dist/utils/schemas/confluence.js +11 -11
- package/dist/utils/schemas/confluence.js.map +1 -1
- package/dist/utils/schemas/index.d.ts +11 -0
- package/dist/utils/schemas/index.d.ts.map +1 -1
- package/dist/utils/schemas/index.js.map +1 -1
- package/dist/utils/schemas/jira.d.ts +1 -1
- package/dist/utils/schemas/jira.d.ts.map +1 -1
- package/dist/utils/schemas/jira.js +37 -35
- package/dist/utils/schemas/jira.js.map +1 -1
- package/dist/utils/schemas/tempo.js +13 -13
- package/dist/utils/schemas/tempo.js.map +1 -1
- package/dist/utils/whoami-tools.d.ts +17 -0
- package/dist/utils/whoami-tools.d.ts.map +1 -0
- package/dist/utils/whoami-tools.js +90 -0
- package/dist/utils/whoami-tools.js.map +1 -0
- package/package.json +3 -3
- package/dist/credentials/client-factory.d.ts +0 -64
- package/dist/credentials/client-factory.d.ts.map +0 -1
- package/dist/credentials/client-factory.js +0 -110
- package/dist/credentials/client-factory.js.map +0 -1
- package/dist/credentials/context.d.ts +0 -25
- package/dist/credentials/context.d.ts.map +0 -1
- package/dist/credentials/context.js +0 -35
- package/dist/credentials/context.js.map +0 -1
- package/dist/utils/buffer-pipeline/index.d.ts +0 -30
- package/dist/utils/buffer-pipeline/index.d.ts.map +0 -1
- package/dist/utils/buffer-pipeline/index.js +0 -317
- package/dist/utils/buffer-pipeline/index.js.map +0 -1
- package/dist/utils/buffer-pipeline/output/csv.d.ts +0 -20
- package/dist/utils/buffer-pipeline/output/csv.d.ts.map +0 -1
- package/dist/utils/buffer-pipeline/output/csv.js +0 -117
- package/dist/utils/buffer-pipeline/output/csv.js.map +0 -1
- package/dist/utils/buffer-pipeline/output/json.d.ts +0 -16
- package/dist/utils/buffer-pipeline/output/json.d.ts.map +0 -1
- package/dist/utils/buffer-pipeline/output/json.js +0 -48
- package/dist/utils/buffer-pipeline/output/json.js.map +0 -1
- package/dist/utils/buffer-pipeline/output/markdown.d.ts +0 -15
- package/dist/utils/buffer-pipeline/output/markdown.d.ts.map +0 -1
- package/dist/utils/buffer-pipeline/output/markdown.js +0 -105
- package/dist/utils/buffer-pipeline/output/markdown.js.map +0 -1
- package/dist/utils/buffer-pipeline/output/xhtml-list.d.ts +0 -16
- package/dist/utils/buffer-pipeline/output/xhtml-list.d.ts.map +0 -1
- package/dist/utils/buffer-pipeline/output/xhtml-list.js +0 -81
- package/dist/utils/buffer-pipeline/output/xhtml-list.js.map +0 -1
- package/dist/utils/buffer-pipeline/output/xhtml-table.d.ts +0 -15
- package/dist/utils/buffer-pipeline/output/xhtml-table.d.ts.map +0 -1
- package/dist/utils/buffer-pipeline/output/xhtml-table.js +0 -176
- package/dist/utils/buffer-pipeline/output/xhtml-table.js.map +0 -1
- package/dist/utils/buffer-pipeline/schema.d.ts +0 -1878
- package/dist/utils/buffer-pipeline/schema.d.ts.map +0 -1
- package/dist/utils/buffer-pipeline/schema.js +0 -168
- package/dist/utils/buffer-pipeline/schema.js.map +0 -1
- package/dist/utils/buffer-pipeline/stages/filter.d.ts +0 -32
- package/dist/utils/buffer-pipeline/stages/filter.d.ts.map +0 -1
- package/dist/utils/buffer-pipeline/stages/filter.js +0 -208
- package/dist/utils/buffer-pipeline/stages/filter.js.map +0 -1
- package/dist/utils/buffer-pipeline/stages/format.d.ts +0 -45
- package/dist/utils/buffer-pipeline/stages/format.d.ts.map +0 -1
- package/dist/utils/buffer-pipeline/stages/format.js +0 -160
- package/dist/utils/buffer-pipeline/stages/format.js.map +0 -1
- package/dist/utils/buffer-pipeline/stages/group-by.d.ts +0 -25
- package/dist/utils/buffer-pipeline/stages/group-by.d.ts.map +0 -1
- package/dist/utils/buffer-pipeline/stages/group-by.js +0 -190
- package/dist/utils/buffer-pipeline/stages/group-by.js.map +0 -1
- package/dist/utils/buffer-pipeline/stages/select.d.ts +0 -54
- package/dist/utils/buffer-pipeline/stages/select.d.ts.map +0 -1
- package/dist/utils/buffer-pipeline/stages/select.js +0 -228
- package/dist/utils/buffer-pipeline/stages/select.js.map +0 -1
- package/dist/utils/buffer-pipeline/stages/sort.d.ts +0 -20
- package/dist/utils/buffer-pipeline/stages/sort.d.ts.map +0 -1
- package/dist/utils/buffer-pipeline/stages/sort.js +0 -96
- package/dist/utils/buffer-pipeline/stages/sort.js.map +0 -1
- package/dist/utils/buffer-pipeline/types.d.ts +0 -277
- package/dist/utils/buffer-pipeline/types.d.ts.map +0 -1
- package/dist/utils/buffer-pipeline/types.js +0 -8
- package/dist/utils/buffer-pipeline/types.js.map +0 -1
- package/dist/utils/plantuml/docker-manager.d.ts +0 -37
- package/dist/utils/plantuml/docker-manager.d.ts.map +0 -1
- package/dist/utils/plantuml/docker-manager.js +0 -284
- package/dist/utils/plantuml/docker-manager.js.map +0 -1
package/dist/session/manager.js
CHANGED
|
@@ -7,17 +7,15 @@
|
|
|
7
7
|
* - Write-home validators
|
|
8
8
|
*
|
|
9
9
|
* Sessions are created on first request with credentials and automatically
|
|
10
|
-
* cleaned up after
|
|
10
|
+
* cleaned up after 1 hour of inactivity.
|
|
11
11
|
*/
|
|
12
12
|
import { ContentBuffer } from "../utils/content-buffer.js";
|
|
13
13
|
import { JiraClient } from "../jira/client.js";
|
|
14
14
|
import { ConfluenceClient } from "../confluence/client.js";
|
|
15
15
|
import { TempoClient } from "../tempo/client.js";
|
|
16
16
|
import { WriteHomeValidator } from "../permissions/write-home-validator.js";
|
|
17
|
-
|
|
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;
|
|
17
|
+
import { log, error as logError } from "../utils/logger.js";
|
|
18
|
+
import { DEFAULT_SESSION_TIMEOUT_MS, DEFAULT_MAX_SESSIONS, DEFAULT_MAX_BUFFERS, } from "../config/constants.js";
|
|
21
19
|
/**
|
|
22
20
|
* Session Manager
|
|
23
21
|
*
|
|
@@ -25,26 +23,50 @@ const DEFAULT_CLEANUP_INTERVAL_MS = 5 * 60 * 1000;
|
|
|
25
23
|
* - ContentBuffer instances (isolated per session)
|
|
26
24
|
* - API clients with their caches
|
|
27
25
|
* - WriteHomeValidator instances
|
|
28
|
-
*
|
|
26
|
+
*
|
|
27
|
+
* Sessions are cleaned up after a configurable timeout of inactivity (default: 1 hour).
|
|
28
|
+
* The timeout is reset on actual tool calls.
|
|
29
29
|
*/
|
|
30
30
|
export class SessionManager {
|
|
31
31
|
sessions = new Map();
|
|
32
|
-
cleanupInterval = null;
|
|
33
32
|
config;
|
|
34
|
-
sessionTimeoutMs;
|
|
35
33
|
maxSessions;
|
|
34
|
+
sessionTimeoutMs;
|
|
35
|
+
cleanupInterval = null;
|
|
36
36
|
onSessionDestroyed;
|
|
37
37
|
constructor(config) {
|
|
38
38
|
this.config = config;
|
|
39
|
-
this.sessionTimeoutMs = config.sessionTimeoutMs ?? DEFAULT_SESSION_TIMEOUT_MS;
|
|
40
39
|
this.maxSessions = config.maxSessions ?? DEFAULT_MAX_SESSIONS;
|
|
40
|
+
this.sessionTimeoutMs = config.sessionTimeoutMs ?? DEFAULT_SESSION_TIMEOUT_MS;
|
|
41
41
|
this.onSessionDestroyed = config.onSessionDestroyed;
|
|
42
|
-
// Start
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
42
|
+
// Start cleanup interval (check every minute for timed-out sessions)
|
|
43
|
+
this.startCleanupInterval();
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Start the session cleanup interval
|
|
47
|
+
* Checks every minute for sessions that have exceeded the timeout
|
|
48
|
+
*/
|
|
49
|
+
startCleanupInterval() {
|
|
50
|
+
// Check every minute for timed-out sessions
|
|
51
|
+
this.cleanupInterval = setInterval(() => {
|
|
52
|
+
this.cleanupTimedOutSessions();
|
|
53
|
+
}, 60 * 1000);
|
|
54
|
+
// Don't prevent process exit
|
|
55
|
+
this.cleanupInterval.unref();
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Clean up sessions that have exceeded the inactivity timeout
|
|
59
|
+
*/
|
|
60
|
+
cleanupTimedOutSessions() {
|
|
61
|
+
const now = Date.now();
|
|
62
|
+
const timeoutMs = this.sessionTimeoutMs;
|
|
63
|
+
for (const [sessionId, session] of this.sessions) {
|
|
64
|
+
const idleMs = now - session.lastActivity;
|
|
65
|
+
if (idleMs > timeoutMs) {
|
|
66
|
+
const idleMinutes = Math.round(idleMs / 60000);
|
|
67
|
+
log(`Session timeout: ${sessionId} (inactive ${idleMinutes}min)`);
|
|
68
|
+
this.destroySession(sessionId);
|
|
69
|
+
}
|
|
48
70
|
}
|
|
49
71
|
}
|
|
50
72
|
/**
|
|
@@ -84,7 +106,7 @@ export class SessionManager {
|
|
|
84
106
|
this.sessions.set(sessionId, session);
|
|
85
107
|
const jiraUrl = jiraConfig?.url || "not configured";
|
|
86
108
|
const confluenceUrl = confluenceConfig?.url || "not configured";
|
|
87
|
-
|
|
109
|
+
log(`Session created: ${sessionId} (jira: ${jiraUrl}, confluence: ${confluenceUrl})`);
|
|
88
110
|
return session;
|
|
89
111
|
}
|
|
90
112
|
/**
|
|
@@ -103,50 +125,80 @@ export class SessionManager {
|
|
|
103
125
|
* If session exists, returns it (and updates lastActivity)
|
|
104
126
|
* If session doesn't exist, creates it with the given credentials
|
|
105
127
|
*
|
|
106
|
-
* If existing session has
|
|
107
|
-
*
|
|
128
|
+
* If existing session has different credentials than the request,
|
|
129
|
+
* recreates the affected clients to use the new credentials.
|
|
130
|
+
* This ensures per-request credential isolation in multi-user scenarios.
|
|
108
131
|
*/
|
|
109
132
|
getOrCreateSession(sessionId, credentials) {
|
|
110
133
|
const existing = this.getSession(sessionId);
|
|
111
134
|
if (existing) {
|
|
112
|
-
// Check if credentials have changed and we need to update clients
|
|
113
|
-
const
|
|
114
|
-
|
|
115
|
-
|
|
135
|
+
// Check if credentials have changed and we need to update/create clients
|
|
136
|
+
const jiraTokenChanged = !!(credentials.jira?.token &&
|
|
137
|
+
credentials.jira.token !== existing.credentials.jira?.token);
|
|
138
|
+
const confluenceTokenChanged = !!(credentials.confluence?.token &&
|
|
139
|
+
credentials.confluence.token !== existing.credentials.confluence?.token);
|
|
140
|
+
const hasNewJira = !!(credentials.jira && !existing.clients.jira);
|
|
141
|
+
const hasNewConfluence = !!(credentials.confluence && !existing.clients.confluence);
|
|
142
|
+
if (jiraTokenChanged || confluenceTokenChanged || hasNewJira || hasNewConfluence) {
|
|
116
143
|
// Update clients in-place (don't destroy session - that would close the transport!)
|
|
117
|
-
|
|
118
|
-
|
|
144
|
+
const changes = [];
|
|
145
|
+
if (jiraTokenChanged)
|
|
146
|
+
changes.push("jira token");
|
|
147
|
+
if (confluenceTokenChanged)
|
|
148
|
+
changes.push("confluence token");
|
|
149
|
+
if (hasNewJira)
|
|
150
|
+
changes.push("new jira");
|
|
151
|
+
if (hasNewConfluence)
|
|
152
|
+
changes.push("new confluence");
|
|
153
|
+
log(`Session ${sessionId}: credentials changed (${changes.join(", ")}), updating clients`);
|
|
154
|
+
this.updateSessionClients(existing, credentials, { jiraTokenChanged, confluenceTokenChanged });
|
|
119
155
|
}
|
|
120
156
|
return existing;
|
|
121
157
|
}
|
|
122
158
|
return this.createSession(sessionId, credentials);
|
|
123
159
|
}
|
|
124
160
|
/**
|
|
125
|
-
* Update session clients in-place when
|
|
126
|
-
* This preserves the session and its transport connection
|
|
161
|
+
* Update session clients in-place when credentials change
|
|
162
|
+
* This preserves the session and its transport connection while updating API clients
|
|
163
|
+
*
|
|
164
|
+
* @param session - The existing session to update
|
|
165
|
+
* @param credentials - New credentials from the request
|
|
166
|
+
* @param options - Flags indicating which credentials changed
|
|
127
167
|
*/
|
|
128
|
-
updateSessionClients(session, credentials) {
|
|
129
|
-
// Update Jira client if
|
|
130
|
-
if (
|
|
131
|
-
const jiraConfig = this.
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
168
|
+
updateSessionClients(session, credentials, options = {}) {
|
|
169
|
+
// Update Jira client if token changed OR if we don't have one yet
|
|
170
|
+
if (options.jiraTokenChanged || !session.clients.jira) {
|
|
171
|
+
const jiraConfig = this.resolveJiraConfig(credentials);
|
|
172
|
+
if (jiraConfig) {
|
|
173
|
+
session.clients.jira = new JiraClient(jiraConfig);
|
|
174
|
+
session.clients.tempo = new TempoClient(jiraConfig); // Tempo uses Jira auth
|
|
175
|
+
const action = options.jiraTokenChanged ? "recreated" : "created";
|
|
176
|
+
log(`Session ${session.sessionId}: Jira client ${action} (${jiraConfig.url})`);
|
|
177
|
+
}
|
|
135
178
|
}
|
|
136
|
-
// Update Confluence client if
|
|
137
|
-
if (
|
|
138
|
-
const confluenceConfig = this.
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
179
|
+
// Update Confluence client if token changed OR if we don't have one yet
|
|
180
|
+
if (options.confluenceTokenChanged || !session.clients.confluence) {
|
|
181
|
+
const confluenceConfig = this.resolveConfluenceConfig(credentials);
|
|
182
|
+
if (confluenceConfig) {
|
|
183
|
+
session.clients.confluence = new ConfluenceClient(confluenceConfig);
|
|
184
|
+
const action = options.confluenceTokenChanged ? "recreated" : "created";
|
|
185
|
+
log(`Session ${session.sessionId}: Confluence client ${action} (${confluenceConfig.url})`);
|
|
186
|
+
// Create/update write-home validator if write-home mode enabled
|
|
187
|
+
if (this.config.writeHomeEnabled) {
|
|
188
|
+
session.writeHomeValidator = new WriteHomeValidator(session.clients.confluence);
|
|
189
|
+
}
|
|
144
190
|
}
|
|
145
191
|
}
|
|
146
|
-
// Update stored credentials (
|
|
192
|
+
// Update stored credentials (per-request overrides existing)
|
|
147
193
|
session.credentials = {
|
|
148
|
-
jira:
|
|
149
|
-
|
|
194
|
+
jira: {
|
|
195
|
+
...session.credentials.jira,
|
|
196
|
+
...credentials.jira,
|
|
197
|
+
},
|
|
198
|
+
confluence: {
|
|
199
|
+
...session.credentials.confluence,
|
|
200
|
+
...credentials.confluence,
|
|
201
|
+
},
|
|
150
202
|
};
|
|
151
203
|
}
|
|
152
204
|
/**
|
|
@@ -159,32 +211,18 @@ export class SessionManager {
|
|
|
159
211
|
// Clean up the buffer (stops cleanup interval, clears all buffers)
|
|
160
212
|
session.buffer.destroy();
|
|
161
213
|
this.sessions.delete(sessionId);
|
|
162
|
-
|
|
214
|
+
log(`Session destroyed: ${sessionId}`);
|
|
163
215
|
// Notify transport layer for coordinated cleanup (fix: issue #7)
|
|
164
216
|
if (this.onSessionDestroyed) {
|
|
165
217
|
try {
|
|
166
218
|
this.onSessionDestroyed(sessionId);
|
|
167
219
|
}
|
|
168
220
|
catch (err) {
|
|
169
|
-
|
|
221
|
+
logError(`Error in onSessionDestroyed callback for ${sessionId}`, err);
|
|
170
222
|
}
|
|
171
223
|
}
|
|
172
224
|
}
|
|
173
225
|
}
|
|
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
226
|
/**
|
|
189
227
|
* Get the number of active sessions
|
|
190
228
|
*/
|
|
@@ -197,6 +235,26 @@ export class SessionManager {
|
|
|
197
235
|
getMaxSessions() {
|
|
198
236
|
return this.maxSessions;
|
|
199
237
|
}
|
|
238
|
+
/**
|
|
239
|
+
* Check if a session exists without updating its activity timestamp
|
|
240
|
+
*/
|
|
241
|
+
hasSession(sessionId) {
|
|
242
|
+
return this.sessions.has(sessionId);
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Update session activity timestamp without returning full session data
|
|
246
|
+
* Used to extend session lifetime when real activity occurs (tool calls)
|
|
247
|
+
*
|
|
248
|
+
* @returns true if session was found, false otherwise
|
|
249
|
+
*/
|
|
250
|
+
touchSession(sessionId) {
|
|
251
|
+
const session = this.sessions.get(sessionId);
|
|
252
|
+
if (session) {
|
|
253
|
+
session.lastActivity = Date.now();
|
|
254
|
+
return true;
|
|
255
|
+
}
|
|
256
|
+
return false;
|
|
257
|
+
}
|
|
200
258
|
/**
|
|
201
259
|
* Set the callback for when a session is destroyed
|
|
202
260
|
* Used by HTTP transport for coordinated transport cleanup
|
|
@@ -209,6 +267,7 @@ export class SessionManager {
|
|
|
209
267
|
* Destroys all sessions and stops the cleanup interval
|
|
210
268
|
*/
|
|
211
269
|
shutdown() {
|
|
270
|
+
// Stop cleanup interval
|
|
212
271
|
if (this.cleanupInterval) {
|
|
213
272
|
clearInterval(this.cleanupInterval);
|
|
214
273
|
this.cleanupInterval = null;
|
|
@@ -217,35 +276,74 @@ export class SessionManager {
|
|
|
217
276
|
for (const sessionId of this.sessions.keys()) {
|
|
218
277
|
this.destroySession(sessionId);
|
|
219
278
|
}
|
|
220
|
-
|
|
279
|
+
log("Session manager shutdown complete");
|
|
221
280
|
}
|
|
222
281
|
/**
|
|
223
|
-
*
|
|
282
|
+
* Get the session timeout in milliseconds
|
|
224
283
|
*/
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
return this.toApiConfig(credentials.jira);
|
|
228
|
-
}
|
|
229
|
-
return this.config.defaultJiraConfig;
|
|
284
|
+
getSessionTimeoutMs() {
|
|
285
|
+
return this.sessionTimeoutMs;
|
|
230
286
|
}
|
|
231
287
|
/**
|
|
232
|
-
* Resolve
|
|
288
|
+
* Resolve Jira configuration by merging partial per-request credentials with defaults
|
|
289
|
+
*
|
|
290
|
+
* Priority: per-request > environment defaults
|
|
291
|
+
* - URL from header OR URL from env
|
|
292
|
+
* - Token from header OR token from env
|
|
293
|
+
* - Both must be present for a valid config
|
|
233
294
|
*/
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
295
|
+
resolveJiraConfig(credentials) {
|
|
296
|
+
const defaultConfig = this.config.defaultJiraConfig;
|
|
297
|
+
const perRequest = credentials.jira;
|
|
298
|
+
// No per-request and no default → null
|
|
299
|
+
if (!perRequest && !defaultConfig) {
|
|
300
|
+
return null;
|
|
301
|
+
}
|
|
302
|
+
// Merge: per-request values override defaults
|
|
303
|
+
const url = perRequest?.url || defaultConfig?.url;
|
|
304
|
+
const token = perRequest?.token || defaultConfig?.token;
|
|
305
|
+
// Need both URL and token to make API calls
|
|
306
|
+
if (!url || !token) {
|
|
307
|
+
return null;
|
|
237
308
|
}
|
|
238
|
-
return
|
|
309
|
+
return {
|
|
310
|
+
url,
|
|
311
|
+
token,
|
|
312
|
+
// Use bearer auth if token came from per-request header, otherwise preserve default authType
|
|
313
|
+
authType: perRequest?.token ? "bearer" : defaultConfig?.authType,
|
|
314
|
+
// Preserve username from defaults for basic auth scenarios
|
|
315
|
+
username: perRequest?.token ? undefined : defaultConfig?.username,
|
|
316
|
+
};
|
|
239
317
|
}
|
|
240
318
|
/**
|
|
241
|
-
*
|
|
319
|
+
* Resolve Confluence configuration by merging partial per-request credentials with defaults
|
|
320
|
+
*
|
|
321
|
+
* Priority: per-request > environment defaults
|
|
322
|
+
* - URL from header OR URL from env
|
|
323
|
+
* - Token from header OR token from env
|
|
324
|
+
* - Both must be present for a valid config
|
|
242
325
|
*/
|
|
243
|
-
|
|
326
|
+
resolveConfluenceConfig(credentials) {
|
|
327
|
+
const defaultConfig = this.config.defaultConfluenceConfig;
|
|
328
|
+
const perRequest = credentials.confluence;
|
|
329
|
+
// No per-request and no default → null
|
|
330
|
+
if (!perRequest && !defaultConfig) {
|
|
331
|
+
return null;
|
|
332
|
+
}
|
|
333
|
+
// Merge: per-request values override defaults
|
|
334
|
+
const url = perRequest?.url || defaultConfig?.url;
|
|
335
|
+
const token = perRequest?.token || defaultConfig?.token;
|
|
336
|
+
// Need both URL and token to make API calls
|
|
337
|
+
if (!url || !token) {
|
|
338
|
+
return null;
|
|
339
|
+
}
|
|
244
340
|
return {
|
|
245
|
-
url
|
|
246
|
-
token
|
|
247
|
-
//
|
|
248
|
-
authType: "bearer",
|
|
341
|
+
url,
|
|
342
|
+
token,
|
|
343
|
+
// Use bearer auth if token came from per-request header, otherwise preserve default authType
|
|
344
|
+
authType: perRequest?.token ? "bearer" : defaultConfig?.authType,
|
|
345
|
+
// Preserve username from defaults for basic auth scenarios
|
|
346
|
+
username: perRequest?.token ? undefined : defaultConfig?.username,
|
|
249
347
|
};
|
|
250
348
|
}
|
|
251
349
|
}
|
|
@@ -257,7 +355,7 @@ let sessionManagerInstance = null;
|
|
|
257
355
|
*/
|
|
258
356
|
export function initializeSessionManager(config) {
|
|
259
357
|
if (sessionManagerInstance) {
|
|
260
|
-
|
|
358
|
+
log("Warning: Session manager already initialized, reinitializing...");
|
|
261
359
|
sessionManagerInstance.shutdown();
|
|
262
360
|
}
|
|
263
361
|
sessionManagerInstance = new SessionManager(config);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/session/manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/session/manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/tempo/client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/tempo/client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,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;IAgChE;;;OAGG;IACG,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAqBlF"}
|
package/dist/tempo/client.js
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* This client automatically converts user-friendly keys to numeric IDs.
|
|
7
7
|
*/
|
|
8
8
|
import { HttpClient } from "../utils/http-client.js";
|
|
9
|
+
import { debug } from "../utils/logger.js";
|
|
9
10
|
export class TempoClient {
|
|
10
11
|
http;
|
|
11
12
|
cachedCurrentUser = null;
|
|
@@ -278,7 +279,8 @@ export class TempoClient {
|
|
|
278
279
|
displayName = user.displayName || user.name || workerKey;
|
|
279
280
|
}
|
|
280
281
|
catch {
|
|
281
|
-
// User not found - use workerKey as fallback
|
|
282
|
+
// User not found - use workerKey as fallback
|
|
283
|
+
debug(`User lookup failed for workerKey: ${workerKey}, using as-is`);
|
|
282
284
|
}
|
|
283
285
|
}
|
|
284
286
|
// Cache the result
|
package/dist/tempo/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/tempo/client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/tempo/client.ts"],"names":[],"mappings":"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"}
|
package/dist/tempo/tools.d.ts
CHANGED
|
@@ -71,15 +71,15 @@ export declare function createTempoTools(): {
|
|
|
71
71
|
remainingEstimateHours: z.ZodOptional<z.ZodNumber>;
|
|
72
72
|
}, "strip", z.ZodTypeAny, {
|
|
73
73
|
issueKey: string;
|
|
74
|
-
hours: number;
|
|
75
74
|
date: string;
|
|
75
|
+
hours: number;
|
|
76
76
|
description?: string | undefined;
|
|
77
77
|
startTime?: string | undefined;
|
|
78
78
|
remainingEstimateHours?: number | undefined;
|
|
79
79
|
}, {
|
|
80
80
|
issueKey: string;
|
|
81
|
-
hours: number;
|
|
82
81
|
date: string;
|
|
82
|
+
hours: number;
|
|
83
83
|
description?: string | undefined;
|
|
84
84
|
startTime?: string | undefined;
|
|
85
85
|
remainingEstimateHours?: number | undefined;
|
|
@@ -104,15 +104,15 @@ export declare function createTempoTools(): {
|
|
|
104
104
|
}, "strip", z.ZodTypeAny, {
|
|
105
105
|
worklogId: number;
|
|
106
106
|
description?: string | undefined;
|
|
107
|
+
date?: string | undefined;
|
|
107
108
|
autoRetry?: boolean | undefined;
|
|
108
109
|
hours?: number | undefined;
|
|
109
|
-
date?: string | undefined;
|
|
110
110
|
}, {
|
|
111
111
|
worklogId: number;
|
|
112
112
|
description?: string | undefined;
|
|
113
|
+
date?: string | undefined;
|
|
113
114
|
autoRetry?: boolean | undefined;
|
|
114
115
|
hours?: number | undefined;
|
|
115
|
-
date?: string | undefined;
|
|
116
116
|
}>;
|
|
117
117
|
handler: (args: {
|
|
118
118
|
worklogId: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/tempo/tools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAoBxB,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACpG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAkB9C;;;;;GAKG;AACH,wBAAgB,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/tempo/tools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAoBxB,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACpG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAkB9C;;;;;GAKG;AACH,wBAAgB,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;wBA8CJ;YACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,UAAU,CAAC,EAAE,MAAM,CAAC;YACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,EAAE,CAAC,EAAE,OAAO,CAAC;SACd,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;wBA4ED;YAAE,SAAS,EAAE,MAAM,CAAA;SAAE,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;wBAgE3C;YACpB,QAAQ,EAAE,MAAM,CAAC;YACjB,KAAK,EAAE,MAAM,CAAC;YACd,IAAI,EAAE,MAAM,CAAC;YACb,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,sBAAsB,CAAC,EAAE,MAAM,CAAC;SACjC,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;wBAiED;YACpB,SAAS,EAAE,MAAM,CAAC;YAClB,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,SAAS,CAAC,EAAE,OAAO,CAAC;SACrB,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;wBAkHD;YAAE,SAAS,EAAE,MAAM,CAAA;SAAE,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;uBA6B9C,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;wBA2BhB;YAAE,UAAU,EAAE,MAAM,CAAA;SAAE,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;uBA+B/C,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;wBA2BhB;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;wBAmCxC;YACpB,MAAM,EAAE,MAAM,CAAC;YACf,QAAQ,EAAE,MAAM,CAAC;YACjB,MAAM,EAAE,MAAM,CAAC;SAChB,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;uBAuDJ,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;wBA+BhB;YACpB,OAAO,EAAE,MAAM,CAAC;YAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,MAAM,CAAC,EAAE,MAAM,CAAC;SACjB,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;wBA0GD;YACpB,KAAK,EAAE,MAAM,CAAC;YACd,UAAU,CAAC,EAAE,MAAM,CAAC;YACpB,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;YAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;SAChB,KAAG,OAAO,CAAC,UAAU,CAAC;;EAuI5B"}
|
package/dist/tempo/tools.js
CHANGED
|
@@ -51,7 +51,10 @@ RETURNS: bufferId with worklogs array (issue, hours, description, author with di
|
|
|
51
51
|
NEXT: buffer_transform (for time reports), workload_sum (for totals), tempo_update_worklog (to modify)
|
|
52
52
|
|
|
53
53
|
TIP: Use me=true for your own worklogs (auto-resolves workerKey).
|
|
54
|
+
TIP: To find workerKey from a person's name, use jira_search_users(query="name") first.
|
|
54
55
|
WARNING: No workerKey/me = returns ALL worklogs (slow!).
|
|
56
|
+
PREFER THIS over JQL date filters when the question is "what did user X work on during period Y?"
|
|
57
|
+
— JQL created/updated filters miss issues created outside the period but worked on during it.
|
|
55
58
|
|
|
56
59
|
Example: tempo_get_worklogs(dateFrom="2025-12-01", dateTo="2025-12-31", me=true)`,
|
|
57
60
|
inputSchema: z.object({
|
|
@@ -739,6 +742,18 @@ Example: tempo_get_top_worklogs(since="this_month", projectKey="MESH", groupBy="
|
|
|
739
742
|
});
|
|
740
743
|
}
|
|
741
744
|
catch (error) {
|
|
745
|
+
// Add helpful hint for date parsing errors
|
|
746
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
747
|
+
if (errorMessage.includes("date") || errorMessage.includes("since") || errorMessage.includes("Invalid")) {
|
|
748
|
+
return formatError({
|
|
749
|
+
error: true,
|
|
750
|
+
message: errorMessage,
|
|
751
|
+
statusCode: 400,
|
|
752
|
+
details: {
|
|
753
|
+
tip: 'Use date_resolve(since="expression") to preview date expressions like "last_week", "this_month", "7d".',
|
|
754
|
+
},
|
|
755
|
+
});
|
|
756
|
+
}
|
|
742
757
|
return formatError(isApiError(error) ? error : new Error(String(error)));
|
|
743
758
|
}
|
|
744
759
|
},
|