@elliotding/ai-agent-mcp 0.1.26 → 0.1.27
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/api/cached-client.d.ts +48 -0
- package/dist/api/cached-client.d.ts.map +1 -0
- package/dist/api/cached-client.js +126 -0
- package/dist/api/cached-client.js.map +1 -0
- package/dist/api/client.d.ts +281 -0
- package/dist/api/client.d.ts.map +1 -0
- package/dist/api/client.js +371 -0
- package/dist/api/client.js.map +1 -0
- package/dist/auth/index.d.ts +8 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +26 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/middleware.d.ts +36 -0
- package/dist/auth/middleware.d.ts.map +1 -0
- package/dist/auth/middleware.js +194 -0
- package/dist/auth/middleware.js.map +1 -0
- package/dist/auth/permissions.d.ts +60 -0
- package/dist/auth/permissions.d.ts.map +1 -0
- package/dist/auth/permissions.js +262 -0
- package/dist/auth/permissions.js.map +1 -0
- package/dist/auth/token-validator.d.ts +52 -0
- package/dist/auth/token-validator.d.ts.map +1 -0
- package/dist/auth/token-validator.js +215 -0
- package/dist/auth/token-validator.js.map +1 -0
- package/dist/cache/cache-manager.d.ts +49 -0
- package/dist/cache/cache-manager.d.ts.map +1 -0
- package/dist/cache/cache-manager.js +191 -0
- package/dist/cache/cache-manager.js.map +1 -0
- package/dist/cache/index.d.ts +6 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +12 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/cache/redis-client.d.ts +45 -0
- package/dist/cache/redis-client.d.ts.map +1 -0
- package/dist/cache/redis-client.js +210 -0
- package/dist/cache/redis-client.js.map +1 -0
- package/dist/config/constants.d.ts +28 -0
- package/dist/config/constants.d.ts.map +1 -0
- package/dist/config/constants.js +31 -0
- package/dist/config/constants.js.map +1 -0
- package/dist/config/index.d.ts +71 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +190 -0
- package/dist/config/index.js.map +1 -0
- package/dist/filesystem/manager.d.ts +45 -0
- package/dist/filesystem/manager.d.ts.map +1 -0
- package/dist/filesystem/manager.js +246 -0
- package/dist/filesystem/manager.js.map +1 -0
- package/dist/git/multi-source-manager.d.ts +78 -0
- package/dist/git/multi-source-manager.d.ts.map +1 -0
- package/dist/git/multi-source-manager.js +577 -0
- package/dist/git/multi-source-manager.js.map +1 -0
- package/dist/git/operations.d.ts +27 -0
- package/dist/git/operations.d.ts.map +1 -0
- package/dist/git/operations.js +83 -0
- package/dist/git/operations.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +122 -0
- package/dist/index.js.map +1 -0
- package/dist/monitoring/health.d.ts +35 -0
- package/dist/monitoring/health.d.ts.map +1 -0
- package/dist/monitoring/health.js +105 -0
- package/dist/monitoring/health.js.map +1 -0
- package/dist/prompts/cache.d.ts +69 -0
- package/dist/prompts/cache.d.ts.map +1 -0
- package/dist/prompts/cache.js +163 -0
- package/dist/prompts/cache.js.map +1 -0
- package/dist/prompts/generator.d.ts +49 -0
- package/dist/prompts/generator.d.ts.map +1 -0
- package/dist/prompts/generator.js +160 -0
- package/dist/prompts/generator.js.map +1 -0
- package/dist/prompts/index.d.ts +13 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +24 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/prompts/manager.d.ts +207 -0
- package/dist/prompts/manager.d.ts.map +1 -0
- package/dist/prompts/manager.js +566 -0
- package/dist/prompts/manager.js.map +1 -0
- package/dist/resources/index.d.ts +6 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +10 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/resources/loader.d.ts +88 -0
- package/dist/resources/loader.d.ts.map +1 -0
- package/dist/resources/loader.js +492 -0
- package/dist/resources/loader.js.map +1 -0
- package/dist/server/http.d.ts +57 -0
- package/dist/server/http.d.ts.map +1 -0
- package/dist/server/http.js +435 -0
- package/dist/server/http.js.map +1 -0
- package/dist/server.d.ts +13 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +201 -0
- package/dist/server.js.map +1 -0
- package/dist/session/manager.d.ts +91 -0
- package/dist/session/manager.d.ts.map +1 -0
- package/dist/session/manager.js +251 -0
- package/dist/session/manager.js.map +1 -0
- package/dist/telemetry/index.d.ts +3 -0
- package/dist/telemetry/index.d.ts.map +1 -0
- package/dist/telemetry/index.js +7 -0
- package/dist/telemetry/index.js.map +1 -0
- package/dist/telemetry/manager.d.ts +151 -0
- package/dist/telemetry/manager.d.ts.map +1 -0
- package/dist/telemetry/manager.js +367 -0
- package/dist/telemetry/manager.js.map +1 -0
- package/dist/tools/index.d.ts +13 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +29 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/manage-subscription.d.ts +47 -0
- package/dist/tools/manage-subscription.d.ts.map +1 -0
- package/dist/tools/manage-subscription.js +317 -0
- package/dist/tools/manage-subscription.js.map +1 -0
- package/dist/tools/registry.d.ts +40 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +85 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tools/resolve-prompt-content.d.ts +35 -0
- package/dist/tools/resolve-prompt-content.d.ts.map +1 -0
- package/dist/tools/resolve-prompt-content.js +99 -0
- package/dist/tools/resolve-prompt-content.js.map +1 -0
- package/dist/tools/search-resources.d.ts +35 -0
- package/dist/tools/search-resources.d.ts.map +1 -0
- package/dist/tools/search-resources.js +159 -0
- package/dist/tools/search-resources.js.map +1 -0
- package/dist/tools/sync-resources.d.ts +54 -0
- package/dist/tools/sync-resources.d.ts.map +1 -0
- package/dist/tools/sync-resources.js +735 -0
- package/dist/tools/sync-resources.js.map +1 -0
- package/dist/tools/track-usage.d.ts +63 -0
- package/dist/tools/track-usage.d.ts.map +1 -0
- package/dist/tools/track-usage.js +90 -0
- package/dist/tools/track-usage.js.map +1 -0
- package/dist/tools/uninstall-resource.d.ts +30 -0
- package/dist/tools/uninstall-resource.d.ts.map +1 -0
- package/dist/tools/uninstall-resource.js +174 -0
- package/dist/tools/uninstall-resource.js.map +1 -0
- package/dist/tools/upload-resource.d.ts +81 -0
- package/dist/tools/upload-resource.d.ts.map +1 -0
- package/dist/tools/upload-resource.js +393 -0
- package/dist/tools/upload-resource.js.map +1 -0
- package/dist/transport/sse.d.ts +29 -0
- package/dist/transport/sse.d.ts.map +1 -0
- package/dist/transport/sse.js +271 -0
- package/dist/transport/sse.js.map +1 -0
- package/dist/types/errors.d.ts +60 -0
- package/dist/types/errors.d.ts.map +1 -0
- package/dist/types/errors.js +112 -0
- package/dist/types/errors.js.map +1 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +23 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/mcp.d.ts +50 -0
- package/dist/types/mcp.d.ts.map +1 -0
- package/dist/types/mcp.js +6 -0
- package/dist/types/mcp.js.map +1 -0
- package/dist/types/resources.d.ts +109 -0
- package/dist/types/resources.d.ts.map +1 -0
- package/dist/types/resources.js +7 -0
- package/dist/types/resources.js.map +1 -0
- package/dist/types/tools.d.ts +253 -0
- package/dist/types/tools.d.ts.map +1 -0
- package/dist/types/tools.js +6 -0
- package/dist/types/tools.js.map +1 -0
- package/dist/utils/cursor-paths.d.ts +84 -0
- package/dist/utils/cursor-paths.d.ts.map +1 -0
- package/dist/utils/cursor-paths.js +166 -0
- package/dist/utils/cursor-paths.js.map +1 -0
- package/dist/utils/log-cleaner.d.ts +18 -0
- package/dist/utils/log-cleaner.d.ts.map +1 -0
- package/dist/utils/log-cleaner.js +112 -0
- package/dist/utils/log-cleaner.js.map +1 -0
- package/dist/utils/logger.d.ts +59 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +292 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/validation.d.ts +58 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +214 -0
- package/dist/utils/validation.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cached API Client
|
|
3
|
+
* Wraps API Client with caching layer
|
|
4
|
+
*/
|
|
5
|
+
import { AxiosRequestConfig } from 'axios';
|
|
6
|
+
declare class CachedAPIClient {
|
|
7
|
+
private cache;
|
|
8
|
+
private readonly cacheNamespace;
|
|
9
|
+
constructor();
|
|
10
|
+
/**
|
|
11
|
+
* Initialize cache connection
|
|
12
|
+
*/
|
|
13
|
+
connect(): Promise<void>;
|
|
14
|
+
/**
|
|
15
|
+
* Generate cache key from URL and config
|
|
16
|
+
*/
|
|
17
|
+
private generateCacheKey;
|
|
18
|
+
/**
|
|
19
|
+
* GET request with caching
|
|
20
|
+
*/
|
|
21
|
+
get<T>(url: string, options?: {
|
|
22
|
+
config?: AxiosRequestConfig;
|
|
23
|
+
skipCache?: boolean;
|
|
24
|
+
}): Promise<T>;
|
|
25
|
+
/**
|
|
26
|
+
* POST request (no caching for mutations)
|
|
27
|
+
*/
|
|
28
|
+
post<T>(url: string, data?: unknown, config?: AxiosRequestConfig): Promise<T>;
|
|
29
|
+
/**
|
|
30
|
+
* PUT request (no caching for mutations)
|
|
31
|
+
*/
|
|
32
|
+
put<T>(url: string, data?: unknown, config?: AxiosRequestConfig): Promise<T>;
|
|
33
|
+
/**
|
|
34
|
+
* DELETE request (no caching for mutations)
|
|
35
|
+
*/
|
|
36
|
+
delete<T>(url: string, config?: AxiosRequestConfig): Promise<T>;
|
|
37
|
+
/**
|
|
38
|
+
* Clear all API cache
|
|
39
|
+
*/
|
|
40
|
+
clearCache(): Promise<void>;
|
|
41
|
+
/**
|
|
42
|
+
* Get cache statistics
|
|
43
|
+
*/
|
|
44
|
+
getCacheStats(): import("../cache").CacheStats | null;
|
|
45
|
+
}
|
|
46
|
+
export declare const cachedAPIClient: CachedAPIClient;
|
|
47
|
+
export {};
|
|
48
|
+
//# sourceMappingURL=cached-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cached-client.d.ts","sourceRoot":"","sources":["../../src/api/cached-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAE3C,cAAM,eAAe;IACnB,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;;IAWxC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAM9B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAQxB;;OAEG;IACG,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,kBAAkB,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,CAAC;IAyBrG;;OAEG;IACG,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC;IAcnF;;OAEG;IACG,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC;IAalF;;OAEG;IACG,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC;IAarE;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjC;;OAEG;IACH,aAAa;CAMd;AAGD,eAAO,MAAM,eAAe,iBAAwB,CAAC"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Cached API Client
|
|
4
|
+
* Wraps API Client with caching layer
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.cachedAPIClient = void 0;
|
|
8
|
+
const cache_1 = require("../cache");
|
|
9
|
+
const client_1 = require("./client");
|
|
10
|
+
const config_1 = require("../config");
|
|
11
|
+
const logger_1 = require("../utils/logger");
|
|
12
|
+
class CachedAPIClient {
|
|
13
|
+
cache = null;
|
|
14
|
+
cacheNamespace = 'api';
|
|
15
|
+
constructor() {
|
|
16
|
+
if (config_1.config.cache.enabled) {
|
|
17
|
+
this.cache = cache_1.CacheManager.getInstance({ namespace: this.cacheNamespace });
|
|
18
|
+
logger_1.logger.info('Cached API client initialized with caching enabled');
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
logger_1.logger.info('Cached API client initialized without caching');
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Initialize cache connection
|
|
26
|
+
*/
|
|
27
|
+
async connect() {
|
|
28
|
+
if (this.cache) {
|
|
29
|
+
await this.cache.connect();
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Generate cache key from URL and config
|
|
34
|
+
*/
|
|
35
|
+
generateCacheKey(method, url, data) {
|
|
36
|
+
const parts = [method.toUpperCase(), url];
|
|
37
|
+
if (data) {
|
|
38
|
+
parts.push(JSON.stringify(data));
|
|
39
|
+
}
|
|
40
|
+
return parts.join(':');
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* GET request with caching
|
|
44
|
+
*/
|
|
45
|
+
async get(url, options) {
|
|
46
|
+
const cacheKey = this.generateCacheKey('GET', url);
|
|
47
|
+
// Try cache first (if enabled and not skipped)
|
|
48
|
+
if (this.cache && !options?.skipCache) {
|
|
49
|
+
const cached = await this.cache.get(cacheKey);
|
|
50
|
+
if (cached !== null) {
|
|
51
|
+
logger_1.logger.debug({ url, cacheKey }, 'API cache hit');
|
|
52
|
+
return cached;
|
|
53
|
+
}
|
|
54
|
+
logger_1.logger.debug({ url, cacheKey }, 'API cache miss');
|
|
55
|
+
}
|
|
56
|
+
// Fetch from API
|
|
57
|
+
const result = await client_1.apiClient.get(url, options?.config);
|
|
58
|
+
// Store in cache (if enabled)
|
|
59
|
+
if (this.cache && !options?.skipCache) {
|
|
60
|
+
await this.cache.set(cacheKey, result);
|
|
61
|
+
logger_1.logger.debug({ url, cacheKey }, 'API response cached');
|
|
62
|
+
}
|
|
63
|
+
return result;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* POST request (no caching for mutations)
|
|
67
|
+
*/
|
|
68
|
+
async post(url, data, config) {
|
|
69
|
+
const result = await client_1.apiClient.post(url, data, config);
|
|
70
|
+
// Invalidate related cache entries
|
|
71
|
+
if (this.cache) {
|
|
72
|
+
// Clear GET cache for the same URL
|
|
73
|
+
const getCacheKey = this.generateCacheKey('GET', url);
|
|
74
|
+
await this.cache.del(getCacheKey);
|
|
75
|
+
logger_1.logger.debug({ url }, 'Cache invalidated after POST');
|
|
76
|
+
}
|
|
77
|
+
return result;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* PUT request (no caching for mutations)
|
|
81
|
+
*/
|
|
82
|
+
async put(url, data, config) {
|
|
83
|
+
const result = await client_1.apiClient.put(url, data, config);
|
|
84
|
+
// Invalidate related cache entries
|
|
85
|
+
if (this.cache) {
|
|
86
|
+
const getCacheKey = this.generateCacheKey('GET', url);
|
|
87
|
+
await this.cache.del(getCacheKey);
|
|
88
|
+
logger_1.logger.debug({ url }, 'Cache invalidated after PUT');
|
|
89
|
+
}
|
|
90
|
+
return result;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* DELETE request (no caching for mutations)
|
|
94
|
+
*/
|
|
95
|
+
async delete(url, config) {
|
|
96
|
+
const result = await client_1.apiClient.delete(url, config);
|
|
97
|
+
// Invalidate related cache entries
|
|
98
|
+
if (this.cache) {
|
|
99
|
+
const getCacheKey = this.generateCacheKey('GET', url);
|
|
100
|
+
await this.cache.del(getCacheKey);
|
|
101
|
+
logger_1.logger.debug({ url }, 'Cache invalidated after DELETE');
|
|
102
|
+
}
|
|
103
|
+
return result;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Clear all API cache
|
|
107
|
+
*/
|
|
108
|
+
async clearCache() {
|
|
109
|
+
if (this.cache) {
|
|
110
|
+
await this.cache.clear();
|
|
111
|
+
logger_1.logger.info('API cache cleared');
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Get cache statistics
|
|
116
|
+
*/
|
|
117
|
+
getCacheStats() {
|
|
118
|
+
if (this.cache) {
|
|
119
|
+
return this.cache.getStats();
|
|
120
|
+
}
|
|
121
|
+
return null;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
// Singleton instance
|
|
125
|
+
exports.cachedAPIClient = new CachedAPIClient();
|
|
126
|
+
//# sourceMappingURL=cached-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cached-client.js","sourceRoot":"","sources":["../../src/api/cached-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* REST API Client
|
|
3
|
+
* HTTP client for CSP Resource Server
|
|
4
|
+
*/
|
|
5
|
+
import { AxiosRequestConfig } from 'axios';
|
|
6
|
+
declare class APIClient {
|
|
7
|
+
private client;
|
|
8
|
+
private readonly maxRetries;
|
|
9
|
+
private readonly retryDelay;
|
|
10
|
+
constructor();
|
|
11
|
+
/**
|
|
12
|
+
* Build an AxiosRequestConfig that carries a per-request user token.
|
|
13
|
+
* Pass the result as the `config` argument to get/post/put/delete or merge it
|
|
14
|
+
* into any existing request config so that the caller's token overrides the
|
|
15
|
+
* server-level fallback set in the interceptor.
|
|
16
|
+
*
|
|
17
|
+
* Usage:
|
|
18
|
+
* await apiClient.get('/some/path', apiClient.authConfig(userToken));
|
|
19
|
+
* await apiClient.post('/some/path', body, apiClient.authConfig(userToken));
|
|
20
|
+
*/
|
|
21
|
+
authConfig(token: string | undefined, extra?: AxiosRequestConfig): AxiosRequestConfig;
|
|
22
|
+
/**
|
|
23
|
+
* Sanitize headers to hide sensitive information
|
|
24
|
+
*/
|
|
25
|
+
private sanitizeHeaders;
|
|
26
|
+
/**
|
|
27
|
+
* Execute request with retry logic
|
|
28
|
+
*/
|
|
29
|
+
private executeWithRetry;
|
|
30
|
+
/**
|
|
31
|
+
* GET request
|
|
32
|
+
*/
|
|
33
|
+
get<T>(url: string, config?: AxiosRequestConfig): Promise<T>;
|
|
34
|
+
/**
|
|
35
|
+
* POST request
|
|
36
|
+
*/
|
|
37
|
+
post<T>(url: string, data?: unknown, config?: AxiosRequestConfig): Promise<T>;
|
|
38
|
+
/**
|
|
39
|
+
* PUT request
|
|
40
|
+
*/
|
|
41
|
+
put<T>(url: string, data?: unknown, config?: AxiosRequestConfig): Promise<T>;
|
|
42
|
+
/**
|
|
43
|
+
* DELETE request
|
|
44
|
+
*/
|
|
45
|
+
delete<T>(url: string, config?: AxiosRequestConfig): Promise<T>;
|
|
46
|
+
/**
|
|
47
|
+
* Get subscription list
|
|
48
|
+
*
|
|
49
|
+
* @param params Query parameters for filtering subscriptions.
|
|
50
|
+
* @param userToken Per-request token from the caller's mcp.json configuration.
|
|
51
|
+
* When provided it overrides the server-level fallback token.
|
|
52
|
+
*/
|
|
53
|
+
getSubscriptions(params?: {
|
|
54
|
+
scope?: 'general' | 'team' | 'user' | 'all';
|
|
55
|
+
types?: string[];
|
|
56
|
+
detail?: boolean;
|
|
57
|
+
}, userToken?: string): Promise<{
|
|
58
|
+
total: number;
|
|
59
|
+
subscriptions: Array<{
|
|
60
|
+
id: string;
|
|
61
|
+
name: string;
|
|
62
|
+
type: string;
|
|
63
|
+
team: string;
|
|
64
|
+
subscribed_at: string;
|
|
65
|
+
auto_sync: boolean;
|
|
66
|
+
resource: {
|
|
67
|
+
version: string;
|
|
68
|
+
hash: string;
|
|
69
|
+
download_url: string;
|
|
70
|
+
};
|
|
71
|
+
}>;
|
|
72
|
+
}>;
|
|
73
|
+
/**
|
|
74
|
+
* Subscribe to resource
|
|
75
|
+
*
|
|
76
|
+
* @param userToken Per-request token from the caller's mcp.json configuration.
|
|
77
|
+
*/
|
|
78
|
+
subscribe(resourceIds: string[], autoSync?: boolean, scope?: 'general' | 'team' | 'user', userToken?: string): Promise<{
|
|
79
|
+
success: boolean;
|
|
80
|
+
subscriptions: Array<{
|
|
81
|
+
id: string;
|
|
82
|
+
name: string;
|
|
83
|
+
type: string;
|
|
84
|
+
subscribed_at: string;
|
|
85
|
+
}>;
|
|
86
|
+
}>;
|
|
87
|
+
/**
|
|
88
|
+
* Unsubscribe from resource
|
|
89
|
+
*
|
|
90
|
+
* @param userToken Per-request token from the caller's mcp.json configuration.
|
|
91
|
+
*/
|
|
92
|
+
unsubscribe(resourceIds: string | string[], userToken?: string): Promise<void>;
|
|
93
|
+
/**
|
|
94
|
+
* Search resources
|
|
95
|
+
*
|
|
96
|
+
* @param userToken Per-request token from the caller's mcp.json configuration.
|
|
97
|
+
*/
|
|
98
|
+
searchResources(params: {
|
|
99
|
+
keyword: string;
|
|
100
|
+
team?: string;
|
|
101
|
+
type?: string;
|
|
102
|
+
detail?: boolean;
|
|
103
|
+
page?: number;
|
|
104
|
+
page_size?: number;
|
|
105
|
+
}, userToken?: string): Promise<{
|
|
106
|
+
total: number;
|
|
107
|
+
page?: number;
|
|
108
|
+
page_size?: number;
|
|
109
|
+
results: Array<{
|
|
110
|
+
id: string;
|
|
111
|
+
name: string;
|
|
112
|
+
type: string;
|
|
113
|
+
team: string;
|
|
114
|
+
version: string;
|
|
115
|
+
description: string;
|
|
116
|
+
score: number;
|
|
117
|
+
is_subscribed: boolean;
|
|
118
|
+
metadata?: {
|
|
119
|
+
module: string;
|
|
120
|
+
tags: string[];
|
|
121
|
+
author: string;
|
|
122
|
+
created_at: string;
|
|
123
|
+
updated_at: string;
|
|
124
|
+
downloads: number;
|
|
125
|
+
};
|
|
126
|
+
}>;
|
|
127
|
+
}>;
|
|
128
|
+
/**
|
|
129
|
+
* Download resource — returns all files for the resource.
|
|
130
|
+
*
|
|
131
|
+
* GET /csp/api/resources/download/{id}
|
|
132
|
+
* Response: { data: { resource_id, name, type, version, hash, files: [{path, content}] } }
|
|
133
|
+
*
|
|
134
|
+
* files[].path is the relative path within the resource directory.
|
|
135
|
+
* Single-file resources (command, rule) have exactly one element.
|
|
136
|
+
* Multi-file resources (skill, mcp) have all their files included.
|
|
137
|
+
*
|
|
138
|
+
* @param userToken Per-request token from the caller's mcp.json configuration.
|
|
139
|
+
*/
|
|
140
|
+
downloadResource(resourceId: string, userToken?: string): Promise<{
|
|
141
|
+
resource_id: string;
|
|
142
|
+
name: string;
|
|
143
|
+
type: string;
|
|
144
|
+
version: string;
|
|
145
|
+
hash: string;
|
|
146
|
+
files: Array<{
|
|
147
|
+
path: string;
|
|
148
|
+
content: string;
|
|
149
|
+
}>;
|
|
150
|
+
}>;
|
|
151
|
+
/**
|
|
152
|
+
* Get resource detail
|
|
153
|
+
*
|
|
154
|
+
* @param userToken Per-request token from the caller's mcp.json configuration.
|
|
155
|
+
*/
|
|
156
|
+
getResourceDetail(resourceId: string, userToken?: string): Promise<{
|
|
157
|
+
id: string;
|
|
158
|
+
name: string;
|
|
159
|
+
type: string;
|
|
160
|
+
team: string;
|
|
161
|
+
version: string;
|
|
162
|
+
description: string;
|
|
163
|
+
metadata: {
|
|
164
|
+
module: string;
|
|
165
|
+
tags: string[];
|
|
166
|
+
author: string;
|
|
167
|
+
created_at: string;
|
|
168
|
+
updated_at: string;
|
|
169
|
+
downloads: number;
|
|
170
|
+
file_size: number;
|
|
171
|
+
hash: string;
|
|
172
|
+
};
|
|
173
|
+
download_url: string;
|
|
174
|
+
}>;
|
|
175
|
+
/**
|
|
176
|
+
* Stage resource files for upload (Step 1 of two-step upload flow).
|
|
177
|
+
*
|
|
178
|
+
* POST /csp/api/resources/upload
|
|
179
|
+
* Body: { type, name, files: [{ path, content }] }
|
|
180
|
+
* Response: { upload_id, status, expires_at, preview_url }
|
|
181
|
+
*
|
|
182
|
+
* The server validates path traversal, total size (< 10 MB), and name conflicts.
|
|
183
|
+
* All file types are supported — mcp packages may include .py, .js, package.json, etc.
|
|
184
|
+
*
|
|
185
|
+
* @param userToken Per-request token from the caller's mcp.json configuration.
|
|
186
|
+
*/
|
|
187
|
+
uploadResourceFiles(params: {
|
|
188
|
+
type: string;
|
|
189
|
+
name: string;
|
|
190
|
+
files: Array<{
|
|
191
|
+
path: string;
|
|
192
|
+
content: string;
|
|
193
|
+
}>;
|
|
194
|
+
target_source?: string;
|
|
195
|
+
force?: boolean;
|
|
196
|
+
}, userToken?: string): Promise<{
|
|
197
|
+
upload_id: string;
|
|
198
|
+
status: string;
|
|
199
|
+
expires_at: string;
|
|
200
|
+
preview_url?: string;
|
|
201
|
+
}>;
|
|
202
|
+
/**
|
|
203
|
+
* Finalize staged upload — triggers Git commit (Step 2 of two-step upload flow).
|
|
204
|
+
*
|
|
205
|
+
* POST /csp/api/resources/finalize
|
|
206
|
+
* Body: { upload_id, commit_message }
|
|
207
|
+
* Response: { resource_id, version, url, commit_hash, download_url }
|
|
208
|
+
*
|
|
209
|
+
* @param userToken Per-request token from the caller's mcp.json configuration.
|
|
210
|
+
*/
|
|
211
|
+
finalizeResourceUpload(uploadId: string, commitMessage: string, userToken?: string): Promise<{
|
|
212
|
+
resource_id: string;
|
|
213
|
+
version?: string;
|
|
214
|
+
url?: string;
|
|
215
|
+
commit_hash?: string;
|
|
216
|
+
download_url?: string;
|
|
217
|
+
}>;
|
|
218
|
+
/**
|
|
219
|
+
* Report AI resource usage telemetry to the server.
|
|
220
|
+
*
|
|
221
|
+
* POST /csp/api/resources/telemetry
|
|
222
|
+
* Body: { client_version, reported_at, events[], subscribed_rules[], configured_mcps[] }
|
|
223
|
+
*
|
|
224
|
+
* Called by TelemetryManager.flush() every ~10 seconds and on reconnect.
|
|
225
|
+
* Throws on non-2xx so the caller can apply retry logic.
|
|
226
|
+
*
|
|
227
|
+
* jira_id in each event entry is optional — it is only present when the user
|
|
228
|
+
* explicitly passed a Jira ID during the Prompt invocation.
|
|
229
|
+
*
|
|
230
|
+
* @param payload Telemetry report payload built by TelemetryManager
|
|
231
|
+
* @param userToken Per-request Bearer token from the caller's mcp.json configuration
|
|
232
|
+
*/
|
|
233
|
+
reportTelemetry(payload: {
|
|
234
|
+
client_version: string;
|
|
235
|
+
reported_at: string;
|
|
236
|
+
events: Array<{
|
|
237
|
+
resource_id: string;
|
|
238
|
+
resource_type: string;
|
|
239
|
+
resource_name: string;
|
|
240
|
+
invocation_count: number;
|
|
241
|
+
first_invoked_at: string;
|
|
242
|
+
last_invoked_at: string;
|
|
243
|
+
/** Optional Jira Issue ID (e.g. "PROJ-12345"). Absent when not provided. */
|
|
244
|
+
jira_id?: string;
|
|
245
|
+
}>;
|
|
246
|
+
subscribed_rules: Array<{
|
|
247
|
+
resource_id: string;
|
|
248
|
+
resource_name: string;
|
|
249
|
+
subscribed_at: string;
|
|
250
|
+
}>;
|
|
251
|
+
configured_mcps: Array<{
|
|
252
|
+
resource_id: string;
|
|
253
|
+
resource_name: string;
|
|
254
|
+
configured_at: string;
|
|
255
|
+
}>;
|
|
256
|
+
}, userToken: string): Promise<void>;
|
|
257
|
+
/**
|
|
258
|
+
* @deprecated Use uploadResourceFiles() + finalizeResourceUpload() instead.
|
|
259
|
+
*/
|
|
260
|
+
uploadResource(params: {
|
|
261
|
+
name: string;
|
|
262
|
+
type: string;
|
|
263
|
+
team: string;
|
|
264
|
+
description?: string;
|
|
265
|
+
tags?: string[];
|
|
266
|
+
}): Promise<{
|
|
267
|
+
upload_id: string;
|
|
268
|
+
upload_url: string;
|
|
269
|
+
expires_at: string;
|
|
270
|
+
}>;
|
|
271
|
+
/**
|
|
272
|
+
* @deprecated Use finalizeResourceUpload() instead.
|
|
273
|
+
*/
|
|
274
|
+
finalizeUpload(uploadId: string, hash: string): Promise<{
|
|
275
|
+
resource_id: string;
|
|
276
|
+
status: string;
|
|
277
|
+
}>;
|
|
278
|
+
}
|
|
279
|
+
export declare const apiClient: APIClient;
|
|
280
|
+
export {};
|
|
281
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
|