@nitrostack/core 1.0.0 → 1.0.2
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/LICENSE +1 -1
- package/README.md +74 -40
- package/dist/auth/quick-setup.js +12 -12
- package/dist/auth/quick-setup.js.map +1 -1
- package/dist/core/app-decorator.d.ts.map +1 -1
- package/dist/core/app-decorator.js +19 -2
- package/dist/core/app-decorator.js.map +1 -1
- package/dist/core/builders.d.ts.map +1 -1
- package/dist/core/builders.js +24 -1
- package/dist/core/builders.js.map +1 -1
- package/dist/core/decorators/cache.decorator.d.ts.map +1 -1
- package/dist/core/decorators/cache.decorator.js +13 -2
- package/dist/core/decorators/cache.decorator.js.map +1 -1
- package/dist/core/decorators.d.ts +35 -1
- package/dist/core/decorators.d.ts.map +1 -1
- package/dist/core/decorators.js.map +1 -1
- package/dist/core/events/event.decorator.d.ts.map +1 -1
- package/dist/core/events/event.decorator.js +1 -3
- package/dist/core/events/event.decorator.js.map +1 -1
- package/dist/core/index.d.ts +21 -4
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +19 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/oauth-module.d.ts +35 -0
- package/dist/core/oauth-module.d.ts.map +1 -1
- package/dist/core/oauth-module.js +81 -11
- package/dist/core/oauth-module.js.map +1 -1
- package/dist/core/prompt.d.ts +7 -2
- package/dist/core/prompt.d.ts.map +1 -1
- package/dist/core/prompt.js +11 -2
- package/dist/core/prompt.js.map +1 -1
- package/dist/core/resource.d.ts +83 -12
- package/dist/core/resource.d.ts.map +1 -1
- package/dist/core/resource.js +131 -20
- package/dist/core/resource.js.map +1 -1
- package/dist/core/server.d.ts +48 -1
- package/dist/core/server.d.ts.map +1 -1
- package/dist/core/server.js +411 -11
- package/dist/core/server.js.map +1 -1
- package/dist/core/task.d.ts +280 -0
- package/dist/core/task.d.ts.map +1 -0
- package/dist/core/task.js +414 -0
- package/dist/core/task.js.map +1 -0
- package/dist/core/tool.d.ts +36 -1
- package/dist/core/tool.d.ts.map +1 -1
- package/dist/core/tool.js +71 -24
- package/dist/core/tool.js.map +1 -1
- package/dist/core/transports/discovery-http-server.d.ts +16 -2
- package/dist/core/transports/discovery-http-server.d.ts.map +1 -1
- package/dist/core/transports/discovery-http-server.js +75 -7
- package/dist/core/transports/discovery-http-server.js.map +1 -1
- package/dist/core/types.d.ts +137 -0
- package/dist/core/types.d.ts.map +1 -1
- package/package.json +5 -5
package/dist/core/resource.js
CHANGED
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export class Resource {
|
|
5
5
|
definition;
|
|
6
|
-
|
|
6
|
+
caches = new Map();
|
|
7
|
+
subscribers = new Set();
|
|
7
8
|
constructor(definition) {
|
|
8
9
|
this.definition = definition;
|
|
9
10
|
}
|
|
@@ -19,6 +20,12 @@ export class Resource {
|
|
|
19
20
|
get name() {
|
|
20
21
|
return this.definition.name;
|
|
21
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* Get resource title (display name)
|
|
25
|
+
*/
|
|
26
|
+
get title() {
|
|
27
|
+
return this.definition.title;
|
|
28
|
+
}
|
|
22
29
|
/**
|
|
23
30
|
* Get resource description
|
|
24
31
|
*/
|
|
@@ -31,54 +38,152 @@ export class Resource {
|
|
|
31
38
|
get mimeType() {
|
|
32
39
|
return this.definition.mimeType;
|
|
33
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* Get resource size in bytes
|
|
43
|
+
*/
|
|
44
|
+
get size() {
|
|
45
|
+
return this.definition.size;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Get resource annotations
|
|
49
|
+
*/
|
|
50
|
+
get annotations() {
|
|
51
|
+
return this.definition.annotations;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Add a subscriber to this resource
|
|
55
|
+
*/
|
|
56
|
+
subscribe(subscriberId) {
|
|
57
|
+
this.subscribers.add(subscriberId);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Remove a subscriber from this resource
|
|
61
|
+
*/
|
|
62
|
+
unsubscribe(subscriberId) {
|
|
63
|
+
this.subscribers.delete(subscriberId);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Get all subscriber IDs
|
|
67
|
+
*/
|
|
68
|
+
getSubscribers() {
|
|
69
|
+
return Array.from(this.subscribers);
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Check if there are any subscribers
|
|
73
|
+
*/
|
|
74
|
+
hasSubscribers() {
|
|
75
|
+
return this.subscribers.size > 0;
|
|
76
|
+
}
|
|
34
77
|
/**
|
|
35
78
|
* Fetch the resource content
|
|
79
|
+
* @param context - Execution context
|
|
80
|
+
* @param uri - Optional specific URI to fetch (defaults to resource.uri)
|
|
36
81
|
*/
|
|
37
|
-
async fetch(context) {
|
|
82
|
+
async fetch(context, uri) {
|
|
83
|
+
const targetUri = uri || this.uri;
|
|
38
84
|
const cacheable = this.definition.metadata?.cacheable;
|
|
39
85
|
const cacheMaxAge = this.definition.metadata?.cacheMaxAge || 60000; // 1 minute default
|
|
40
|
-
// Check cache
|
|
41
|
-
|
|
42
|
-
|
|
86
|
+
// Check cache for this specific URI
|
|
87
|
+
const existingCache = this.caches.get(targetUri);
|
|
88
|
+
if (cacheable && existingCache) {
|
|
89
|
+
const age = Date.now() - existingCache.timestamp;
|
|
43
90
|
if (age < cacheMaxAge) {
|
|
44
|
-
context.logger.debug(`Serving cached resource: ${
|
|
45
|
-
return
|
|
91
|
+
context.logger.debug(`Serving cached resource: ${targetUri}`);
|
|
92
|
+
return existingCache.content;
|
|
46
93
|
}
|
|
47
94
|
}
|
|
48
|
-
context.logger.info(`Fetching resource: ${
|
|
95
|
+
context.logger.info(`Fetching resource: ${targetUri}`);
|
|
49
96
|
try {
|
|
50
|
-
const content = await this.definition.handler(
|
|
51
|
-
// Update cache
|
|
97
|
+
const content = await this.definition.handler(targetUri, context);
|
|
98
|
+
// Update cache for this specific URI
|
|
52
99
|
if (cacheable) {
|
|
53
|
-
this.
|
|
100
|
+
this.caches.set(targetUri, {
|
|
54
101
|
content,
|
|
55
102
|
timestamp: Date.now(),
|
|
56
|
-
};
|
|
103
|
+
});
|
|
57
104
|
}
|
|
58
|
-
context.logger.info(`Resource fetched successfully: ${
|
|
105
|
+
context.logger.info(`Resource fetched successfully: ${targetUri}`);
|
|
59
106
|
return content;
|
|
60
107
|
}
|
|
61
108
|
catch (error) {
|
|
62
|
-
context.logger.error(`Error fetching resource: ${
|
|
109
|
+
context.logger.error(`Error fetching resource: ${targetUri}`, { error: error instanceof Error ? error.message : String(error) });
|
|
63
110
|
throw error;
|
|
64
111
|
}
|
|
65
112
|
}
|
|
66
113
|
/**
|
|
67
|
-
* Clear cached content
|
|
114
|
+
* Clear cached content for all URIs or a specific one
|
|
68
115
|
*/
|
|
69
|
-
clearCache() {
|
|
70
|
-
|
|
116
|
+
clearCache(uri) {
|
|
117
|
+
if (uri) {
|
|
118
|
+
this.caches.delete(uri);
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
this.caches.clear();
|
|
122
|
+
}
|
|
71
123
|
}
|
|
72
124
|
/**
|
|
73
|
-
* MCP Resource metadata structure
|
|
125
|
+
* MCP Resource metadata structure (full spec compliance)
|
|
74
126
|
*/
|
|
75
127
|
toMcpResource() {
|
|
76
|
-
|
|
128
|
+
const resource = {
|
|
77
129
|
uri: this.uri,
|
|
78
130
|
name: this.name,
|
|
79
131
|
description: this.description,
|
|
80
|
-
mimeType: this.mimeType,
|
|
81
132
|
};
|
|
133
|
+
if (this.title)
|
|
134
|
+
resource.title = this.title;
|
|
135
|
+
if (this.mimeType)
|
|
136
|
+
resource.mimeType = this.mimeType;
|
|
137
|
+
if (this.size !== undefined)
|
|
138
|
+
resource.size = this.size;
|
|
139
|
+
if (this.annotations)
|
|
140
|
+
resource.annotations = this.annotations;
|
|
141
|
+
return resource;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Resource Template class for parameterized resources (RFC 6570)
|
|
146
|
+
*/
|
|
147
|
+
export class ResourceTemplate {
|
|
148
|
+
definition;
|
|
149
|
+
constructor(definition) {
|
|
150
|
+
this.definition = definition;
|
|
151
|
+
}
|
|
152
|
+
get uriTemplate() {
|
|
153
|
+
return this.definition.uriTemplate;
|
|
154
|
+
}
|
|
155
|
+
get name() {
|
|
156
|
+
return this.definition.name;
|
|
157
|
+
}
|
|
158
|
+
get title() {
|
|
159
|
+
return this.definition.title;
|
|
160
|
+
}
|
|
161
|
+
get description() {
|
|
162
|
+
return this.definition.description;
|
|
163
|
+
}
|
|
164
|
+
get mimeType() {
|
|
165
|
+
return this.definition.mimeType;
|
|
166
|
+
}
|
|
167
|
+
get annotations() {
|
|
168
|
+
return this.definition.annotations;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Convert to MCP protocol format
|
|
172
|
+
*/
|
|
173
|
+
toMcpResourceTemplate() {
|
|
174
|
+
const template = {
|
|
175
|
+
uriTemplate: this.uriTemplate,
|
|
176
|
+
name: this.name,
|
|
177
|
+
};
|
|
178
|
+
if (this.title)
|
|
179
|
+
template.title = this.title;
|
|
180
|
+
if (this.description)
|
|
181
|
+
template.description = this.description;
|
|
182
|
+
if (this.mimeType)
|
|
183
|
+
template.mimeType = this.mimeType;
|
|
184
|
+
if (this.annotations)
|
|
185
|
+
template.annotations = this.annotations;
|
|
186
|
+
return template;
|
|
82
187
|
}
|
|
83
188
|
}
|
|
84
189
|
/**
|
|
@@ -87,4 +192,10 @@ export class Resource {
|
|
|
87
192
|
export function createResource(definition) {
|
|
88
193
|
return new Resource(definition);
|
|
89
194
|
}
|
|
195
|
+
/**
|
|
196
|
+
* Helper function to create a resource template
|
|
197
|
+
*/
|
|
198
|
+
export function createResourceTemplate(definition) {
|
|
199
|
+
return new ResourceTemplate(definition);
|
|
200
|
+
}
|
|
90
201
|
//# sourceMappingURL=resource.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource.js","sourceRoot":"","sources":["../../src/core/resource.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resource.js","sourceRoot":"","sources":["../../src/core/resource.ts"],"names":[],"mappings":"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"}
|
package/dist/core/server.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { Tool } from './tool.js';
|
|
2
|
-
import { Resource } from './resource.js';
|
|
2
|
+
import { Resource, ResourceTemplate } from './resource.js';
|
|
3
3
|
import { Prompt } from './prompt.js';
|
|
4
4
|
import { McpServerConfig, ServerStats, ClassConstructor } from './types.js';
|
|
5
|
+
import { TaskManager } from './task.js';
|
|
5
6
|
/**
|
|
6
7
|
* HTTP Transport interface
|
|
7
8
|
*/
|
|
@@ -46,6 +47,8 @@ export declare class NitroStackServer {
|
|
|
46
47
|
private mcpServer;
|
|
47
48
|
private tools;
|
|
48
49
|
private resources;
|
|
50
|
+
private resourceTemplates;
|
|
51
|
+
private templateResources;
|
|
49
52
|
private prompts;
|
|
50
53
|
private modules;
|
|
51
54
|
private config;
|
|
@@ -56,6 +59,8 @@ export declare class NitroStackServer {
|
|
|
56
59
|
private _transportType?;
|
|
57
60
|
/** HTTP transport instance (when using http or dual mode) */
|
|
58
61
|
private _httpTransport?;
|
|
62
|
+
/** Task manager for MCP Tasks support */
|
|
63
|
+
private taskManager;
|
|
59
64
|
constructor(config?: McpServerConfig);
|
|
60
65
|
/**
|
|
61
66
|
* Add a tool to the server
|
|
@@ -73,6 +78,26 @@ export declare class NitroStackServer {
|
|
|
73
78
|
* Add a prompt to the server
|
|
74
79
|
*/
|
|
75
80
|
prompt(prompt: Prompt): this;
|
|
81
|
+
/**
|
|
82
|
+
* Add a resource template to the server
|
|
83
|
+
*/
|
|
84
|
+
resourceTemplate(template: ResourceTemplate): this;
|
|
85
|
+
/**
|
|
86
|
+
* Notify clients that the list of resources has changed
|
|
87
|
+
*/
|
|
88
|
+
notifyResourcesListChanged(): void;
|
|
89
|
+
/**
|
|
90
|
+
* Notify clients that the list of prompts has changed
|
|
91
|
+
*/
|
|
92
|
+
notifyPromptsListChanged(): void;
|
|
93
|
+
/**
|
|
94
|
+
* Notify clients that the list of tools has changed
|
|
95
|
+
*/
|
|
96
|
+
notifyToolsListChanged(): void;
|
|
97
|
+
/**
|
|
98
|
+
* Notify subscribers that a resource has been updated
|
|
99
|
+
*/
|
|
100
|
+
notifyResourceUpdated(uri: string): void;
|
|
76
101
|
/**
|
|
77
102
|
* Register a module with all its controllers
|
|
78
103
|
* Automatically extracts and registers all tools, resources, and prompts
|
|
@@ -112,6 +137,28 @@ export declare class NitroStackServer {
|
|
|
112
137
|
* @param transportOptions - Transport-specific options
|
|
113
138
|
*/
|
|
114
139
|
private startWithTransport;
|
|
140
|
+
/**
|
|
141
|
+
* Execute a tool asynchronously as a task.
|
|
142
|
+
* Called from the tools/call handler when task-augmented.
|
|
143
|
+
* Updates task status and stores the result for tasks/result.
|
|
144
|
+
*/
|
|
145
|
+
private runTaskAsync;
|
|
146
|
+
/**
|
|
147
|
+
* Register a custom JSON-RPC handler for task-related methods.
|
|
148
|
+
* The MCP SDK's setRequestHandler only works with pre-defined schemas,
|
|
149
|
+
* so we hook into the transport-level message handling.
|
|
150
|
+
*/
|
|
151
|
+
private registerCustomHandler;
|
|
152
|
+
/** Custom JSON-RPC handlers (for task methods not covered by MCP SDK schemas) */
|
|
153
|
+
private _customHandlers;
|
|
154
|
+
/**
|
|
155
|
+
* Send a notifications/tasks/status notification to the client.
|
|
156
|
+
*/
|
|
157
|
+
private sendTaskStatusNotification;
|
|
158
|
+
/**
|
|
159
|
+
* Get the TaskManager instance (useful for advanced use cases)
|
|
160
|
+
*/
|
|
161
|
+
getTaskManager(): TaskManager;
|
|
115
162
|
/**
|
|
116
163
|
* Stop the server
|
|
117
164
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/core/server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/core/server.ts"],"names":[],"mappings":"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"}
|