@nitrostack/core 1.0.14 → 1.0.16
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/dist/auth/cimd.d.ts +90 -0
- package/dist/auth/cimd.d.ts.map +1 -0
- package/dist/auth/cimd.js +344 -0
- package/dist/auth/cimd.js.map +1 -0
- package/dist/auth/client.d.ts +21 -0
- package/dist/auth/client.d.ts.map +1 -1
- package/dist/auth/client.js +48 -0
- package/dist/auth/client.js.map +1 -1
- package/dist/auth/index.d.ts +2 -1
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +3 -1
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/middleware.d.ts.map +1 -1
- package/dist/auth/middleware.js +15 -3
- package/dist/auth/middleware.js.map +1 -1
- package/dist/auth/server-metadata.d.ts +5 -0
- package/dist/auth/server-metadata.d.ts.map +1 -1
- package/dist/auth/server-metadata.js +7 -1
- package/dist/auth/server-metadata.js.map +1 -1
- package/dist/auth/token-store.d.ts +12 -1
- package/dist/auth/token-store.d.ts.map +1 -1
- package/dist/auth/token-store.js +23 -1
- package/dist/auth/token-store.js.map +1 -1
- package/dist/auth/token-validation.d.ts +1 -1
- package/dist/auth/token-validation.d.ts.map +1 -1
- package/dist/auth/token-validation.js +20 -6
- package/dist/auth/token-validation.js.map +1 -1
- package/dist/auth/types.d.ts +17 -0
- package/dist/auth/types.d.ts.map +1 -1
- package/dist/core/app-decorator.d.ts +10 -0
- package/dist/core/app-decorator.d.ts.map +1 -1
- package/dist/core/app-decorator.js +25 -11
- package/dist/core/app-decorator.js.map +1 -1
- package/dist/core/builders.d.ts.map +1 -1
- package/dist/core/builders.js +5 -0
- package/dist/core/builders.js.map +1 -1
- package/dist/core/errors.d.ts +6 -0
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +9 -0
- package/dist/core/errors.js.map +1 -1
- package/dist/core/guards/oauth.guard.d.ts +13 -6
- package/dist/core/guards/oauth.guard.d.ts.map +1 -1
- package/dist/core/guards/oauth.guard.js +90 -1
- package/dist/core/guards/oauth.guard.js.map +1 -1
- package/dist/core/index.d.ts +7 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +7 -0
- package/dist/core/index.js.map +1 -1
- package/dist/core/oauth-module.d.ts +5 -0
- package/dist/core/oauth-module.d.ts.map +1 -1
- package/dist/core/oauth-module.js +15 -6
- package/dist/core/oauth-module.js.map +1 -1
- package/dist/core/protocol/adapter.d.ts +97 -0
- package/dist/core/protocol/adapter.d.ts.map +1 -0
- package/dist/core/protocol/adapter.js +21 -0
- package/dist/core/protocol/adapter.js.map +1 -0
- package/dist/core/protocol/features/cache-hints.d.ts +64 -0
- package/dist/core/protocol/features/cache-hints.d.ts.map +1 -0
- package/dist/core/protocol/features/cache-hints.js +56 -0
- package/dist/core/protocol/features/cache-hints.js.map +1 -0
- package/dist/core/protocol/features/errors.d.ts +34 -0
- package/dist/core/protocol/features/errors.d.ts.map +1 -0
- package/dist/core/protocol/features/errors.js +48 -0
- package/dist/core/protocol/features/errors.js.map +1 -0
- package/dist/core/protocol/features/extensions.d.ts +39 -0
- package/dist/core/protocol/features/extensions.d.ts.map +1 -0
- package/dist/core/protocol/features/extensions.js +42 -0
- package/dist/core/protocol/features/extensions.js.map +1 -0
- package/dist/core/protocol/features/mrtr.d.ts +75 -0
- package/dist/core/protocol/features/mrtr.d.ts.map +1 -0
- package/dist/core/protocol/features/mrtr.js +66 -0
- package/dist/core/protocol/features/mrtr.js.map +1 -0
- package/dist/core/protocol/features/schema.d.ts +39 -0
- package/dist/core/protocol/features/schema.d.ts.map +1 -0
- package/dist/core/protocol/features/schema.js +96 -0
- package/dist/core/protocol/features/schema.js.map +1 -0
- package/dist/core/protocol/features/trace-context.d.ts +31 -0
- package/dist/core/protocol/features/trace-context.d.ts.map +1 -0
- package/dist/core/protocol/features/trace-context.js +45 -0
- package/dist/core/protocol/features/trace-context.js.map +1 -0
- package/dist/core/protocol/modern-v2.adapter.d.ts +92 -0
- package/dist/core/protocol/modern-v2.adapter.d.ts.map +1 -0
- package/dist/core/protocol/modern-v2.adapter.js +939 -0
- package/dist/core/protocol/modern-v2.adapter.js.map +1 -0
- package/dist/core/protocol/version.d.ts +72 -0
- package/dist/core/protocol/version.d.ts.map +1 -0
- package/dist/core/protocol/version.js +99 -0
- package/dist/core/protocol/version.js.map +1 -0
- package/dist/core/resource.d.ts +15 -0
- package/dist/core/resource.d.ts.map +1 -1
- package/dist/core/resource.js +13 -0
- package/dist/core/resource.js.map +1 -1
- package/dist/core/server.d.ts +50 -6
- package/dist/core/server.d.ts.map +1 -1
- package/dist/core/server.js +326 -90
- package/dist/core/server.js.map +1 -1
- package/dist/core/task.d.ts +126 -40
- package/dist/core/task.d.ts.map +1 -1
- package/dist/core/task.js +166 -56
- package/dist/core/task.js.map +1 -1
- package/dist/core/tool.d.ts +20 -0
- package/dist/core/tool.d.ts.map +1 -1
- package/dist/core/tool.js +16 -2
- package/dist/core/tool.js.map +1 -1
- package/dist/core/transports/streamable-http.d.ts +35 -1
- package/dist/core/transports/streamable-http.d.ts.map +1 -1
- package/dist/core/transports/streamable-http.js +77 -12
- package/dist/core/transports/streamable-http.js.map +1 -1
- package/dist/core/types.d.ts +86 -0
- package/dist/core/types.d.ts.map +1 -1
- package/package.json +5 -2
package/dist/core/task.js
CHANGED
|
@@ -9,34 +9,56 @@ export const TERMINAL_STATUSES = ['completed', 'failed', 'cancelled'];
|
|
|
9
9
|
export function isTerminalStatus(status) {
|
|
10
10
|
return TERMINAL_STATUSES.includes(status);
|
|
11
11
|
}
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
/**
|
|
13
|
+
* In-memory implementation of TaskStore.
|
|
14
|
+
*/
|
|
15
|
+
export class InMemoryTaskStore {
|
|
16
|
+
tasks = new Map();
|
|
17
|
+
get(taskId) {
|
|
18
|
+
return this.tasks.get(taskId);
|
|
19
|
+
}
|
|
20
|
+
set(taskId, entry) {
|
|
21
|
+
this.tasks.set(taskId, entry);
|
|
22
|
+
}
|
|
23
|
+
delete(taskId) {
|
|
24
|
+
return this.tasks.delete(taskId);
|
|
25
|
+
}
|
|
26
|
+
has(taskId) {
|
|
27
|
+
return this.tasks.has(taskId);
|
|
28
|
+
}
|
|
29
|
+
list() {
|
|
30
|
+
return Array.from(this.tasks.values());
|
|
31
|
+
}
|
|
32
|
+
cleanupExpired(now) {
|
|
33
|
+
let count = 0;
|
|
34
|
+
for (const [taskId, entry] of this.tasks.entries()) {
|
|
35
|
+
if (entry.data.ttl === null)
|
|
36
|
+
continue;
|
|
37
|
+
if (!isTerminalStatus(entry.data.status))
|
|
38
|
+
continue;
|
|
39
|
+
const terminalTime = new Date(entry.data.lastUpdatedAt).getTime();
|
|
40
|
+
if (now - terminalTime > entry.data.ttl) {
|
|
41
|
+
this.tasks.delete(taskId);
|
|
42
|
+
count++;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return count;
|
|
46
|
+
}
|
|
47
|
+
destroy() {
|
|
48
|
+
this.tasks.clear();
|
|
49
|
+
}
|
|
50
|
+
}
|
|
15
51
|
/**
|
|
16
52
|
* TaskManager handles the full lifecycle of MCP tasks.
|
|
17
53
|
*
|
|
18
54
|
* It provides:
|
|
19
|
-
* -
|
|
55
|
+
* - Pluggable task storage (in-memory or distributed) with TTL cleanup
|
|
20
56
|
* - Task creation, status updates, and result retrieval
|
|
21
57
|
* - Cancellation support
|
|
22
58
|
* - Status change notifications via callbacks
|
|
23
|
-
*
|
|
24
|
-
* @example
|
|
25
|
-
* ```typescript
|
|
26
|
-
* const taskManager = new TaskManager({ logger, defaultTtl: 60000 });
|
|
27
|
-
*
|
|
28
|
-
* // Create a task for a long-running operation
|
|
29
|
-
* const task = taskManager.createTask({ ttl: 120000 });
|
|
30
|
-
*
|
|
31
|
-
* // Update status as work progresses
|
|
32
|
-
* taskManager.updateStatus(task.taskId, 'working', 'Processing step 2 of 5');
|
|
33
|
-
*
|
|
34
|
-
* // Complete with result
|
|
35
|
-
* taskManager.completeTask(task.taskId, { data: 'result' });
|
|
36
|
-
* ```
|
|
37
59
|
*/
|
|
38
60
|
export class TaskManager {
|
|
39
|
-
|
|
61
|
+
store;
|
|
40
62
|
logger;
|
|
41
63
|
defaultTtl;
|
|
42
64
|
defaultPollInterval;
|
|
@@ -44,19 +66,27 @@ export class TaskManager {
|
|
|
44
66
|
onStatusChange;
|
|
45
67
|
constructor(options) {
|
|
46
68
|
this.logger = options.logger;
|
|
69
|
+
this.store = options.store ?? new InMemoryTaskStore();
|
|
47
70
|
this.defaultTtl = options.defaultTtl ?? 300000; // 5 minutes
|
|
48
71
|
this.defaultPollInterval = options.defaultPollInterval ?? 2000;
|
|
49
72
|
this.onStatusChange = options.onStatusChange;
|
|
50
73
|
// Start periodic cleanup of expired tasks
|
|
51
74
|
this.cleanupInterval = setInterval(() => this.cleanupExpiredTasks(), 30000);
|
|
52
75
|
}
|
|
76
|
+
/** Access the underlying TaskStore */
|
|
77
|
+
getStore() {
|
|
78
|
+
return this.store;
|
|
79
|
+
}
|
|
53
80
|
/**
|
|
54
81
|
* Create a new task
|
|
55
82
|
*/
|
|
56
|
-
createTask(params, toolName) {
|
|
83
|
+
createTask(params, toolName, accessContext) {
|
|
57
84
|
const taskId = uuidv4();
|
|
58
85
|
const now = new Date().toISOString();
|
|
59
86
|
const ttl = params?.ttl ?? this.defaultTtl;
|
|
87
|
+
const ownerId = accessContext?.userId || params?.ownerId;
|
|
88
|
+
const tenantId = accessContext?.tenantId || params?.tenantId;
|
|
89
|
+
const sessionId = accessContext?.sessionId || params?.sessionId;
|
|
60
90
|
let resolveCompletion;
|
|
61
91
|
const completionPromise = new Promise((resolve) => {
|
|
62
92
|
resolveCompletion = resolve;
|
|
@@ -68,6 +98,9 @@ export class TaskManager {
|
|
|
68
98
|
lastUpdatedAt: now,
|
|
69
99
|
ttl,
|
|
70
100
|
pollInterval: this.defaultPollInterval,
|
|
101
|
+
...(ownerId ? { ownerId } : {}),
|
|
102
|
+
...(tenantId ? { tenantId } : {}),
|
|
103
|
+
...(sessionId ? { sessionId } : {}),
|
|
71
104
|
};
|
|
72
105
|
const entry = {
|
|
73
106
|
data,
|
|
@@ -75,25 +108,48 @@ export class TaskManager {
|
|
|
75
108
|
completionPromise,
|
|
76
109
|
resolveCompletion: resolveCompletion,
|
|
77
110
|
toolName,
|
|
111
|
+
ownerId,
|
|
112
|
+
tenantId,
|
|
113
|
+
sessionId,
|
|
78
114
|
};
|
|
79
|
-
this.
|
|
80
|
-
this.logger.info(`Task created: ${taskId}`, { toolName });
|
|
115
|
+
this.store.set(taskId, entry);
|
|
116
|
+
this.logger.info(`Task created: ${taskId}`, { toolName, ownerId, tenantId, sessionId });
|
|
81
117
|
return { ...data };
|
|
82
118
|
}
|
|
119
|
+
/**
|
|
120
|
+
* Verify caller authorization against task owner/tenant/session metadata
|
|
121
|
+
* @throws TaskNotFoundError if access is denied (to avoid disclosing task existence across tenants)
|
|
122
|
+
*/
|
|
123
|
+
checkTaskAccess(entry, context) {
|
|
124
|
+
if (!context)
|
|
125
|
+
return; // Unrestricted internal context
|
|
126
|
+
// Tenant isolation: if task has a tenantId and context has a tenantId, they must match
|
|
127
|
+
if (entry.tenantId && context.tenantId && entry.tenantId !== context.tenantId) {
|
|
128
|
+
throw new TaskNotFoundError(entry.data.taskId);
|
|
129
|
+
}
|
|
130
|
+
// Owner/User isolation: if task has an ownerId and context has a userId, they must match
|
|
131
|
+
if (entry.ownerId && context.userId && entry.ownerId !== context.userId) {
|
|
132
|
+
throw new TaskNotFoundError(entry.data.taskId);
|
|
133
|
+
}
|
|
134
|
+
// Session isolation: if task has a sessionId and context has a sessionId, they must match
|
|
135
|
+
if (entry.sessionId && context.sessionId && entry.sessionId !== context.sessionId) {
|
|
136
|
+
throw new TaskNotFoundError(entry.data.taskId);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
83
139
|
/**
|
|
84
140
|
* Get task data by ID
|
|
85
|
-
* @throws Error if task not found
|
|
141
|
+
* @throws Error if task not found or access denied
|
|
86
142
|
*/
|
|
87
|
-
getTask(taskId) {
|
|
88
|
-
const entry = this.getEntry(taskId);
|
|
143
|
+
getTask(taskId, context) {
|
|
144
|
+
const entry = this.getEntry(taskId, context);
|
|
89
145
|
return { ...entry.data };
|
|
90
146
|
}
|
|
91
147
|
/**
|
|
92
148
|
* Update task status
|
|
93
|
-
* @throws Error if transition is invalid
|
|
149
|
+
* @throws Error if transition is invalid or access denied
|
|
94
150
|
*/
|
|
95
|
-
updateStatus(taskId, status, statusMessage) {
|
|
96
|
-
const entry = this.getEntry(taskId);
|
|
151
|
+
updateStatus(taskId, status, statusMessage, context) {
|
|
152
|
+
const entry = this.getEntry(taskId, context);
|
|
97
153
|
// Validate transition
|
|
98
154
|
this.validateTransition(entry.data.status, status);
|
|
99
155
|
entry.data.status = status;
|
|
@@ -115,44 +171,44 @@ export class TaskManager {
|
|
|
115
171
|
/**
|
|
116
172
|
* Complete a task with a successful result
|
|
117
173
|
*/
|
|
118
|
-
completeTask(taskId, result, statusMessage) {
|
|
119
|
-
const entry = this.getEntry(taskId);
|
|
174
|
+
completeTask(taskId, result, statusMessage, context) {
|
|
175
|
+
const entry = this.getEntry(taskId, context);
|
|
120
176
|
entry.result = result;
|
|
121
|
-
return this.updateStatus(taskId, 'completed', statusMessage ?? 'Task completed successfully');
|
|
177
|
+
return this.updateStatus(taskId, 'completed', statusMessage ?? 'Task completed successfully', context);
|
|
122
178
|
}
|
|
123
179
|
/**
|
|
124
180
|
* Fail a task with an error
|
|
125
181
|
*/
|
|
126
|
-
failTask(taskId, error, statusMessage) {
|
|
127
|
-
const entry = this.getEntry(taskId);
|
|
182
|
+
failTask(taskId, error, statusMessage, context) {
|
|
183
|
+
const entry = this.getEntry(taskId, context);
|
|
128
184
|
entry.error = error;
|
|
129
|
-
return this.updateStatus(taskId, 'failed', statusMessage ?? `Task failed: ${error.message}
|
|
185
|
+
return this.updateStatus(taskId, 'failed', statusMessage ?? `Task failed: ${error.message}`, context);
|
|
130
186
|
}
|
|
131
187
|
/**
|
|
132
188
|
* Cancel a task
|
|
133
|
-
* @throws Error if task is already in a terminal state
|
|
189
|
+
* @throws Error if task is already in a terminal state or access denied
|
|
134
190
|
*/
|
|
135
|
-
cancelTask(taskId) {
|
|
136
|
-
const entry = this.getEntry(taskId);
|
|
191
|
+
cancelTask(taskId, context) {
|
|
192
|
+
const entry = this.getEntry(taskId, context);
|
|
137
193
|
if (isTerminalStatus(entry.data.status)) {
|
|
138
194
|
throw new TaskAlreadyTerminalError(taskId, entry.data.status);
|
|
139
195
|
}
|
|
140
196
|
// Signal cancellation
|
|
141
197
|
entry.abortController.abort();
|
|
142
|
-
return this.updateStatus(taskId, 'cancelled', 'The task was cancelled by request.');
|
|
198
|
+
return this.updateStatus(taskId, 'cancelled', 'The task was cancelled by request.', context);
|
|
143
199
|
}
|
|
144
200
|
/**
|
|
145
201
|
* Get the result of a completed task.
|
|
146
202
|
* If the task is still working, this blocks until it reaches a terminal state.
|
|
147
203
|
*/
|
|
148
|
-
async getResult(taskId) {
|
|
149
|
-
const entry = this.getEntry(taskId);
|
|
204
|
+
async getResult(taskId, context) {
|
|
205
|
+
const entry = this.getEntry(taskId, context);
|
|
150
206
|
// If not terminal, wait for completion
|
|
151
207
|
if (!isTerminalStatus(entry.data.status)) {
|
|
152
208
|
await entry.completionPromise;
|
|
153
209
|
}
|
|
154
210
|
// Re-fetch after awaiting (status may have changed)
|
|
155
|
-
const current = this.getEntry(taskId);
|
|
211
|
+
const current = this.getEntry(taskId, context);
|
|
156
212
|
if (current.error) {
|
|
157
213
|
return { error: current.error };
|
|
158
214
|
}
|
|
@@ -161,15 +217,26 @@ export class TaskManager {
|
|
|
161
217
|
/**
|
|
162
218
|
* Get the AbortSignal for a task (useful for cancellation-aware handlers)
|
|
163
219
|
*/
|
|
164
|
-
getAbortSignal(taskId) {
|
|
165
|
-
const entry = this.getEntry(taskId);
|
|
220
|
+
getAbortSignal(taskId, context) {
|
|
221
|
+
const entry = this.getEntry(taskId, context);
|
|
166
222
|
return entry.abortController.signal;
|
|
167
223
|
}
|
|
168
224
|
/**
|
|
169
|
-
* List all tasks with optional cursor-based pagination
|
|
225
|
+
* List all tasks with optional cursor-based pagination and tenant/user filtering
|
|
170
226
|
*/
|
|
171
|
-
listTasks(cursor, limit = 50) {
|
|
172
|
-
const allTasks =
|
|
227
|
+
listTasks(cursor, limit = 50, context) {
|
|
228
|
+
const allTasks = this.store.list()
|
|
229
|
+
.filter(entry => {
|
|
230
|
+
if (!context)
|
|
231
|
+
return true;
|
|
232
|
+
if (entry.tenantId && context.tenantId && entry.tenantId !== context.tenantId)
|
|
233
|
+
return false;
|
|
234
|
+
if (entry.ownerId && context.userId && entry.ownerId !== context.userId)
|
|
235
|
+
return false;
|
|
236
|
+
if (entry.sessionId && context.sessionId && entry.sessionId !== context.sessionId)
|
|
237
|
+
return false;
|
|
238
|
+
return true;
|
|
239
|
+
})
|
|
173
240
|
.map(e => ({ ...e.data }))
|
|
174
241
|
.sort((a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime());
|
|
175
242
|
let startIndex = 0;
|
|
@@ -189,32 +256,55 @@ export class TaskManager {
|
|
|
189
256
|
/**
|
|
190
257
|
* Check if a task exists
|
|
191
258
|
*/
|
|
192
|
-
hasTask(taskId) {
|
|
193
|
-
|
|
259
|
+
hasTask(taskId, context) {
|
|
260
|
+
const entry = this.store.get(taskId);
|
|
261
|
+
if (!entry)
|
|
262
|
+
return false;
|
|
263
|
+
if (!context)
|
|
264
|
+
return true;
|
|
265
|
+
if (entry.tenantId && context.tenantId && entry.tenantId !== context.tenantId)
|
|
266
|
+
return false;
|
|
267
|
+
if (entry.ownerId && context.userId && entry.ownerId !== context.userId)
|
|
268
|
+
return false;
|
|
269
|
+
if (entry.sessionId && context.sessionId && entry.sessionId !== context.sessionId)
|
|
270
|
+
return false;
|
|
271
|
+
return true;
|
|
194
272
|
}
|
|
195
273
|
/**
|
|
196
274
|
* Cleanup expired tasks
|
|
275
|
+
* Only terminal tasks (completed, failed, cancelled) are evicted after their TTL expires.
|
|
276
|
+
* Active tasks (working, input_required) are never evicted while execution is ongoing.
|
|
197
277
|
*/
|
|
198
278
|
cleanupExpiredTasks() {
|
|
199
279
|
const now = Date.now();
|
|
200
|
-
|
|
280
|
+
if (typeof this.store.cleanupExpired === 'function') {
|
|
281
|
+
this.store.cleanupExpired(now);
|
|
282
|
+
return;
|
|
283
|
+
}
|
|
284
|
+
for (const entry of this.store.list()) {
|
|
201
285
|
if (entry.data.ttl === null)
|
|
202
|
-
continue;
|
|
203
|
-
|
|
204
|
-
if (
|
|
205
|
-
|
|
206
|
-
|
|
286
|
+
continue;
|
|
287
|
+
// Active tasks in working or input_required status must not be evicted
|
|
288
|
+
if (!isTerminalStatus(entry.data.status)) {
|
|
289
|
+
continue;
|
|
290
|
+
}
|
|
291
|
+
// Measure TTL from the terminal completion time (lastUpdatedAt), not createdAt
|
|
292
|
+
const terminalTime = new Date(entry.data.lastUpdatedAt).getTime();
|
|
293
|
+
if (now - terminalTime > entry.data.ttl) {
|
|
294
|
+
this.store.delete(entry.data.taskId);
|
|
295
|
+
this.logger.debug(`Expired terminal task cleaned up: ${entry.data.taskId}`);
|
|
207
296
|
}
|
|
208
297
|
}
|
|
209
298
|
}
|
|
210
299
|
/**
|
|
211
300
|
* Get internal entry or throw
|
|
212
301
|
*/
|
|
213
|
-
getEntry(taskId) {
|
|
214
|
-
const entry = this.
|
|
302
|
+
getEntry(taskId, context) {
|
|
303
|
+
const entry = this.store.get(taskId);
|
|
215
304
|
if (!entry) {
|
|
216
305
|
throw new TaskNotFoundError(taskId);
|
|
217
306
|
}
|
|
307
|
+
this.checkTaskAccess(entry, context);
|
|
218
308
|
return entry;
|
|
219
309
|
}
|
|
220
310
|
/**
|
|
@@ -248,6 +338,9 @@ export class TaskManager {
|
|
|
248
338
|
clearInterval(this.cleanupInterval);
|
|
249
339
|
this.cleanupInterval = undefined;
|
|
250
340
|
}
|
|
341
|
+
if (typeof this.store.destroy === 'function') {
|
|
342
|
+
this.store.destroy();
|
|
343
|
+
}
|
|
251
344
|
}
|
|
252
345
|
}
|
|
253
346
|
// ============================================================================
|
|
@@ -328,6 +421,23 @@ export class TaskContext {
|
|
|
328
421
|
throw new TaskCancelledError(this._taskId);
|
|
329
422
|
}
|
|
330
423
|
}
|
|
424
|
+
/**
|
|
425
|
+
* Push an intermediate task update (MCP 2026-07-28 `tasks/update`).
|
|
426
|
+
*
|
|
427
|
+
* On the modern path this records progress that the client observes via
|
|
428
|
+
* `tasks/get`; the optional `data` is attached to the status message.
|
|
429
|
+
* Behaves like `updateProgress` on the legacy path so handlers are written
|
|
430
|
+
* once.
|
|
431
|
+
*/
|
|
432
|
+
update(message, data) {
|
|
433
|
+
const suffix = data !== undefined ? ` ${JSON.stringify(data)}` : '';
|
|
434
|
+
try {
|
|
435
|
+
this.taskManager.updateStatus(this._taskId, 'working', `${message}${suffix}`);
|
|
436
|
+
}
|
|
437
|
+
catch {
|
|
438
|
+
// Task may have been cancelled/cleaned up — ignore
|
|
439
|
+
}
|
|
440
|
+
}
|
|
331
441
|
/**
|
|
332
442
|
* Get the current task data
|
|
333
443
|
*/
|
package/dist/core/task.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task.js","sourceRoot":"","sources":["../../src/core/task.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"task.js","sourceRoot":"","sources":["../../src/core/task.ts"],"names":[],"mappings":"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"}
|
package/dist/core/tool.d.ts
CHANGED
|
@@ -81,6 +81,19 @@ export interface ToolOptions<TInput = unknown, TOutput = unknown> {
|
|
|
81
81
|
* Tool visibility (MCP Apps mode).
|
|
82
82
|
*/
|
|
83
83
|
visibility?: 'visible' | 'hidden';
|
|
84
|
+
/**
|
|
85
|
+
* SEP-2549 cache hint emitted on the 2026-07-28 `tools/list` result.
|
|
86
|
+
* Ignored on the legacy path.
|
|
87
|
+
*/
|
|
88
|
+
cacheHint?: {
|
|
89
|
+
ttlMs?: number;
|
|
90
|
+
cacheScope?: 'public' | 'private';
|
|
91
|
+
};
|
|
92
|
+
/**
|
|
93
|
+
* Cache lifetime in seconds, typically propagated from `@Cache({ ttl })`.
|
|
94
|
+
* Used as a fallback cache hint on the 2026-07-28 path.
|
|
95
|
+
*/
|
|
96
|
+
cacheTtlSeconds?: number;
|
|
84
97
|
}
|
|
85
98
|
export declare class Tool<TInput = unknown, TOutput = unknown> {
|
|
86
99
|
name: string;
|
|
@@ -99,6 +112,13 @@ export declare class Tool<TInput = unknown, TOutput = unknown> {
|
|
|
99
112
|
isInitial?: boolean;
|
|
100
113
|
/** Task support level for this tool */
|
|
101
114
|
taskSupport: TaskSupportLevel;
|
|
115
|
+
/** SEP-2549 cache hint (2026-07-28 path only). */
|
|
116
|
+
cacheHint?: {
|
|
117
|
+
ttlMs?: number;
|
|
118
|
+
cacheScope?: 'public' | 'private';
|
|
119
|
+
};
|
|
120
|
+
/** Cache lifetime in seconds (fallback cache hint source). */
|
|
121
|
+
cacheTtlSeconds?: number;
|
|
102
122
|
private handler;
|
|
103
123
|
private guards;
|
|
104
124
|
private middlewares;
|
package/dist/core/tool.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../src/core/tool.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../src/core/tool.ts"],"names":[],"mappings":"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"}
|
package/dist/core/tool.js
CHANGED
|
@@ -16,6 +16,10 @@ export class Tool {
|
|
|
16
16
|
isInitial;
|
|
17
17
|
/** Task support level for this tool */
|
|
18
18
|
taskSupport;
|
|
19
|
+
/** SEP-2549 cache hint (2026-07-28 path only). */
|
|
20
|
+
cacheHint;
|
|
21
|
+
/** Cache lifetime in seconds (fallback cache hint source). */
|
|
22
|
+
cacheTtlSeconds;
|
|
19
23
|
handler;
|
|
20
24
|
guards;
|
|
21
25
|
middlewares;
|
|
@@ -43,6 +47,8 @@ export class Tool {
|
|
|
43
47
|
this.isInitial = options.isInitial;
|
|
44
48
|
this.taskSupport = options.taskSupport ?? 'forbidden';
|
|
45
49
|
this.visibility = options.visibility || 'visible';
|
|
50
|
+
this.cacheHint = options.cacheHint;
|
|
51
|
+
this.cacheTtlSeconds = options.cacheTtlSeconds;
|
|
46
52
|
}
|
|
47
53
|
/**
|
|
48
54
|
* Execute the tool with full pipeline:
|
|
@@ -160,10 +166,12 @@ export class Tool {
|
|
|
160
166
|
try {
|
|
161
167
|
const zodToJsonSchemaModule = await import('zod-to-json-schema');
|
|
162
168
|
const zodToJsonSchema = zodToJsonSchemaModule.zodToJsonSchema || zodToJsonSchemaModule.default;
|
|
163
|
-
|
|
169
|
+
const json = zodToJsonSchema(schema, {
|
|
164
170
|
$refStrategy: 'none',
|
|
165
171
|
target: 'jsonSchema7',
|
|
166
172
|
});
|
|
173
|
+
json.additionalProperties = true;
|
|
174
|
+
return json;
|
|
167
175
|
}
|
|
168
176
|
catch (_error) {
|
|
169
177
|
// Silently fall back to permissive schema — console output is
|
|
@@ -171,7 +179,11 @@ export class Tool {
|
|
|
171
179
|
return { type: 'object', properties: {}, additionalProperties: true };
|
|
172
180
|
}
|
|
173
181
|
}
|
|
174
|
-
|
|
182
|
+
const json = { ...schema };
|
|
183
|
+
if (json.type === 'object' && json.additionalProperties === undefined) {
|
|
184
|
+
json.additionalProperties = true;
|
|
185
|
+
}
|
|
186
|
+
return json;
|
|
175
187
|
}
|
|
176
188
|
/**
|
|
177
189
|
* Convert to MCP tool format
|
|
@@ -183,6 +195,7 @@ export class Tool {
|
|
|
183
195
|
if (!jsonSchema.type) {
|
|
184
196
|
jsonSchema = { ...jsonSchema, type: 'object' };
|
|
185
197
|
}
|
|
198
|
+
jsonSchema.additionalProperties = true;
|
|
186
199
|
// Convert output schema if present and ensure type: "object"
|
|
187
200
|
let outputJsonSchema;
|
|
188
201
|
if (this.outputSchema) {
|
|
@@ -195,6 +208,7 @@ export class Tool {
|
|
|
195
208
|
const finalSchema = {
|
|
196
209
|
...restSchema,
|
|
197
210
|
type: 'object',
|
|
211
|
+
additionalProperties: true,
|
|
198
212
|
};
|
|
199
213
|
const mcpTool = {
|
|
200
214
|
name: this.name,
|
package/dist/core/tool.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../../src/core/tool.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../../src/core/tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,12 +16,29 @@
|
|
|
16
16
|
import { Express, Request, Response } from 'express';
|
|
17
17
|
import type { Server as McpServer } from '@modelcontextprotocol/sdk/server/index.js';
|
|
18
18
|
import { Tool as McpTool } from '@modelcontextprotocol/sdk/types.js';
|
|
19
|
+
/**
|
|
20
|
+
* Mutable per-session context shared between the transport and the MCP server
|
|
21
|
+
* instance handling that session. The transport refreshes it on each HTTP
|
|
22
|
+
* request; MCP request handlers read it when building the tool
|
|
23
|
+
* ExecutionContext, which is how the HTTP Authorization header reaches
|
|
24
|
+
* OAuth-aware guards.
|
|
25
|
+
*/
|
|
26
|
+
export interface SessionContext {
|
|
27
|
+
/** Raw HTTP Authorization header from the most recent request on this session. */
|
|
28
|
+
authHeader?: string;
|
|
29
|
+
/** Active session ID */
|
|
30
|
+
sessionId?: string;
|
|
31
|
+
/** Authenticated user ID */
|
|
32
|
+
userId?: string;
|
|
33
|
+
/** Authenticated tenant ID */
|
|
34
|
+
tenantId?: string;
|
|
35
|
+
}
|
|
19
36
|
/**
|
|
20
37
|
* Factory that builds a fully-configured MCP server instance.
|
|
21
38
|
* Each Streamable HTTP session gets its own server, since an SDK server can
|
|
22
39
|
* only be connected to a single transport at a time.
|
|
23
40
|
*/
|
|
24
|
-
export type McpServerFactory = () => McpServer;
|
|
41
|
+
export type McpServerFactory = (sessionContext?: SessionContext) => McpServer;
|
|
25
42
|
/** Handles legacy HTTP+SSE clients that open GET without a Streamable HTTP session id (e.g. Cursor). */
|
|
26
43
|
export type LegacySseHandler = (req: Request, res: Response) => Promise<void>;
|
|
27
44
|
export interface StreamableHttpTransportOptions {
|
|
@@ -81,6 +98,14 @@ export declare class StreamableHttpTransport {
|
|
|
81
98
|
private _routesRegistered;
|
|
82
99
|
private mcpServerFactory?;
|
|
83
100
|
private legacySseHandler?;
|
|
101
|
+
/**
|
|
102
|
+
* When set, the MCP endpoint (POST/GET/DELETE) is delegated to this handler
|
|
103
|
+
* instead of the legacy per-session SDK path. Used by the modern
|
|
104
|
+
* (2026-07-28) protocol adapter, which serves stateless requests itself.
|
|
105
|
+
*/
|
|
106
|
+
private modernHandler?;
|
|
107
|
+
/** Protocol revision advertised on the health endpoint and startup logs. */
|
|
108
|
+
private protocolVersionLabel;
|
|
84
109
|
private mcpSessions;
|
|
85
110
|
private pendingSessions;
|
|
86
111
|
private sessionCleanupInterval?;
|
|
@@ -97,6 +122,15 @@ export declare class StreamableHttpTransport {
|
|
|
97
122
|
* Streamable HTTP clients always begin with POST initialize instead.
|
|
98
123
|
*/
|
|
99
124
|
setLegacySseHandler(handler: LegacySseHandler): void;
|
|
125
|
+
/**
|
|
126
|
+
* Delegate the MCP endpoint to a modern (2026-07-28) stateless handler
|
|
127
|
+
* instead of the legacy per-session SDK path. Must be called before `start()`.
|
|
128
|
+
*/
|
|
129
|
+
setModernHandler(handler: (req: Request, res: Response) => void): void;
|
|
130
|
+
/**
|
|
131
|
+
* Set the protocol revision label used on `/mcp/health` and startup logs.
|
|
132
|
+
*/
|
|
133
|
+
setProtocolVersionLabel(label: string): void;
|
|
100
134
|
/**
|
|
101
135
|
* Load logo image as base64 for embedding in documentation page
|
|
102
136
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streamable-http.d.ts","sourceRoot":"","sources":["../../../src/core/transports/streamable-http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAgB,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAG9D,OAAO,KAAK,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,2CAA2C,CAAC;AACrF,OAAO,EAAE,IAAI,IAAI,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAMrE;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,
|
|
1
|
+
{"version":3,"file":"streamable-http.d.ts","sourceRoot":"","sources":["../../../src/core/transports/streamable-http.ts"],"names":[],"mappings":"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"}
|