@elliotding/ai-agent-mcp 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +213 -0
- package/dist/api/client.d.ts.map +1 -0
- package/dist/api/client.js +326 -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 +256 -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 +217 -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 +54 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +168 -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 +62 -0
- package/dist/git/multi-source-manager.d.ts.map +1 -0
- package/dist/git/multi-source-manager.js +293 -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 +109 -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/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 +87 -0
- package/dist/resources/loader.d.ts.map +1 -0
- package/dist/resources/loader.js +452 -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 +336 -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 +157 -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/tools/index.d.ts +11 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +27 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/manage-subscription.d.ts +43 -0
- package/dist/tools/manage-subscription.d.ts.map +1 -0
- package/dist/tools/manage-subscription.js +268 -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/search-resources.d.ts +31 -0
- package/dist/tools/search-resources.d.ts.map +1 -0
- package/dist/tools/search-resources.js +154 -0
- package/dist/tools/search-resources.js.map +1 -0
- package/dist/tools/sync-resources.d.ts +41 -0
- package/dist/tools/sync-resources.d.ts.map +1 -0
- package/dist/tools/sync-resources.js +606 -0
- package/dist/tools/sync-resources.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 +259 -0
- package/dist/tools/uninstall-resource.js.map +1 -0
- package/dist/tools/upload-resource.d.ts +77 -0
- package/dist/tools/upload-resource.d.ts.map +1 -0
- package/dist/tools/upload-resource.js +252 -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 +147 -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 +49 -0
- package/dist/utils/cursor-paths.d.ts.map +1 -0
- package/dist/utils/cursor-paths.js +116 -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 +58 -0
- package/src/api/cached-client.ts +144 -0
- package/src/api/client.ts +578 -0
- package/src/auth/index.ts +11 -0
- package/src/auth/middleware.ts +244 -0
- package/src/auth/permissions.ts +317 -0
- package/src/auth/token-validator.ts +294 -0
- package/src/cache/cache-manager.ts +243 -0
- package/src/cache/index.ts +6 -0
- package/src/cache/redis-client.ts +249 -0
- package/src/config/constants.ts +33 -0
- package/src/config/index.ts +228 -0
- package/src/filesystem/manager.ts +235 -0
- package/src/git/multi-source-manager.ts +333 -0
- package/src/git/operations.ts +93 -0
- package/src/index.ts +139 -0
- package/src/monitoring/health.ts +132 -0
- package/src/resources/index.ts +13 -0
- package/src/resources/loader.ts +530 -0
- package/src/server/http.ts +427 -0
- package/src/server.ts +191 -0
- package/src/session/manager.ts +296 -0
- package/src/tools/index.ts +11 -0
- package/src/tools/manage-subscription.ts +332 -0
- package/src/tools/registry.ts +97 -0
- package/src/tools/search-resources.ts +177 -0
- package/src/tools/sync-resources.ts +662 -0
- package/src/tools/uninstall-resource.ts +248 -0
- package/src/tools/upload-resource.ts +258 -0
- package/src/transport/sse.ts +308 -0
- package/src/types/errors.ts +146 -0
- package/src/types/index.ts +7 -0
- package/src/types/mcp.ts +61 -0
- package/src/types/resources.ts +141 -0
- package/src/types/tools.ts +175 -0
- package/src/utils/cursor-paths.ts +83 -0
- package/src/utils/log-cleaner.ts +92 -0
- package/src/utils/logger.ts +333 -0
- package/src/utils/validation.ts +262 -0
|
@@ -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,213 @@
|
|
|
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
|
+
* Sanitize headers to hide sensitive information
|
|
13
|
+
*/
|
|
14
|
+
private sanitizeHeaders;
|
|
15
|
+
/**
|
|
16
|
+
* Execute request with retry logic
|
|
17
|
+
*/
|
|
18
|
+
private executeWithRetry;
|
|
19
|
+
/**
|
|
20
|
+
* GET request
|
|
21
|
+
*/
|
|
22
|
+
get<T>(url: string, config?: AxiosRequestConfig): Promise<T>;
|
|
23
|
+
/**
|
|
24
|
+
* POST request
|
|
25
|
+
*/
|
|
26
|
+
post<T>(url: string, data?: unknown, config?: AxiosRequestConfig): Promise<T>;
|
|
27
|
+
/**
|
|
28
|
+
* PUT request
|
|
29
|
+
*/
|
|
30
|
+
put<T>(url: string, data?: unknown, config?: AxiosRequestConfig): Promise<T>;
|
|
31
|
+
/**
|
|
32
|
+
* DELETE request
|
|
33
|
+
*/
|
|
34
|
+
delete<T>(url: string, config?: AxiosRequestConfig): Promise<T>;
|
|
35
|
+
/**
|
|
36
|
+
* Get subscription list
|
|
37
|
+
*/
|
|
38
|
+
getSubscriptions(params?: {
|
|
39
|
+
scope?: 'general' | 'team' | 'user' | 'all';
|
|
40
|
+
types?: string[];
|
|
41
|
+
detail?: boolean;
|
|
42
|
+
}): Promise<{
|
|
43
|
+
total: number;
|
|
44
|
+
subscriptions: Array<{
|
|
45
|
+
id: string;
|
|
46
|
+
name: string;
|
|
47
|
+
type: string;
|
|
48
|
+
team: string;
|
|
49
|
+
subscribed_at: string;
|
|
50
|
+
auto_sync: boolean;
|
|
51
|
+
resource: {
|
|
52
|
+
version: string;
|
|
53
|
+
hash: string;
|
|
54
|
+
download_url: string;
|
|
55
|
+
};
|
|
56
|
+
}>;
|
|
57
|
+
}>;
|
|
58
|
+
/**
|
|
59
|
+
* Subscribe to resource
|
|
60
|
+
*/
|
|
61
|
+
subscribe(resourceIds: string[], autoSync?: boolean, scope?: 'general' | 'team' | 'user'): Promise<{
|
|
62
|
+
success: boolean;
|
|
63
|
+
subscriptions: Array<{
|
|
64
|
+
id: string;
|
|
65
|
+
name: string;
|
|
66
|
+
type: string;
|
|
67
|
+
subscribed_at: string;
|
|
68
|
+
}>;
|
|
69
|
+
}>;
|
|
70
|
+
/**
|
|
71
|
+
* Unsubscribe from resource
|
|
72
|
+
*/
|
|
73
|
+
unsubscribe(resourceIds: string | string[]): Promise<void>;
|
|
74
|
+
/**
|
|
75
|
+
* Search resources
|
|
76
|
+
*/
|
|
77
|
+
searchResources(params: {
|
|
78
|
+
keyword: string;
|
|
79
|
+
team?: string;
|
|
80
|
+
type?: string;
|
|
81
|
+
detail?: boolean;
|
|
82
|
+
page?: number;
|
|
83
|
+
page_size?: number;
|
|
84
|
+
}): Promise<{
|
|
85
|
+
total: number;
|
|
86
|
+
page?: number;
|
|
87
|
+
page_size?: number;
|
|
88
|
+
results: Array<{
|
|
89
|
+
id: string;
|
|
90
|
+
name: string;
|
|
91
|
+
type: string;
|
|
92
|
+
team: string;
|
|
93
|
+
version: string;
|
|
94
|
+
description: string;
|
|
95
|
+
score: number;
|
|
96
|
+
is_subscribed: boolean;
|
|
97
|
+
metadata?: {
|
|
98
|
+
module: string;
|
|
99
|
+
tags: string[];
|
|
100
|
+
author: string;
|
|
101
|
+
created_at: string;
|
|
102
|
+
updated_at: string;
|
|
103
|
+
downloads: number;
|
|
104
|
+
};
|
|
105
|
+
}>;
|
|
106
|
+
}>;
|
|
107
|
+
/**
|
|
108
|
+
* Download resource — returns all files for the resource.
|
|
109
|
+
*
|
|
110
|
+
* GET /csp/api/resources/download/{id}
|
|
111
|
+
* Response: { data: { resource_id, name, type, version, hash, files: [{path, content}] } }
|
|
112
|
+
*
|
|
113
|
+
* files[].path is the relative path within the resource directory.
|
|
114
|
+
* Single-file resources (command, rule) have exactly one element.
|
|
115
|
+
* Multi-file resources (skill, mcp) have all their files included.
|
|
116
|
+
*/
|
|
117
|
+
downloadResource(resourceId: string): Promise<{
|
|
118
|
+
resource_id: string;
|
|
119
|
+
name: string;
|
|
120
|
+
type: string;
|
|
121
|
+
version: string;
|
|
122
|
+
hash: string;
|
|
123
|
+
files: Array<{
|
|
124
|
+
path: string;
|
|
125
|
+
content: string;
|
|
126
|
+
}>;
|
|
127
|
+
}>;
|
|
128
|
+
/**
|
|
129
|
+
* Get resource detail
|
|
130
|
+
*/
|
|
131
|
+
getResourceDetail(resourceId: string): Promise<{
|
|
132
|
+
id: string;
|
|
133
|
+
name: string;
|
|
134
|
+
type: string;
|
|
135
|
+
team: string;
|
|
136
|
+
version: string;
|
|
137
|
+
description: string;
|
|
138
|
+
metadata: {
|
|
139
|
+
module: string;
|
|
140
|
+
tags: string[];
|
|
141
|
+
author: string;
|
|
142
|
+
created_at: string;
|
|
143
|
+
updated_at: string;
|
|
144
|
+
downloads: number;
|
|
145
|
+
file_size: number;
|
|
146
|
+
hash: string;
|
|
147
|
+
};
|
|
148
|
+
download_url: string;
|
|
149
|
+
}>;
|
|
150
|
+
/**
|
|
151
|
+
* Stage resource files for upload (Step 1 of two-step upload flow).
|
|
152
|
+
*
|
|
153
|
+
* POST /csp/api/resources/upload
|
|
154
|
+
* Body: { type, name, files: [{ path, content }] }
|
|
155
|
+
* Response: { upload_id, status, expires_at, preview_url }
|
|
156
|
+
*
|
|
157
|
+
* The server validates path traversal, total size (< 10 MB), and name conflicts.
|
|
158
|
+
* All file types are supported — mcp packages may include .py, .js, package.json, etc.
|
|
159
|
+
*/
|
|
160
|
+
uploadResourceFiles(params: {
|
|
161
|
+
type: string;
|
|
162
|
+
name: string;
|
|
163
|
+
files: Array<{
|
|
164
|
+
path: string;
|
|
165
|
+
content: string;
|
|
166
|
+
}>;
|
|
167
|
+
target_source?: string;
|
|
168
|
+
force?: boolean;
|
|
169
|
+
}): Promise<{
|
|
170
|
+
upload_id: string;
|
|
171
|
+
status: string;
|
|
172
|
+
expires_at: string;
|
|
173
|
+
preview_url?: string;
|
|
174
|
+
}>;
|
|
175
|
+
/**
|
|
176
|
+
* Finalize staged upload — triggers Git commit (Step 2 of two-step upload flow).
|
|
177
|
+
*
|
|
178
|
+
* POST /csp/api/resources/finalize
|
|
179
|
+
* Body: { upload_id, commit_message }
|
|
180
|
+
* Response: { resource_id, version, url, commit_hash, download_url }
|
|
181
|
+
*/
|
|
182
|
+
finalizeResourceUpload(uploadId: string, commitMessage: string): Promise<{
|
|
183
|
+
resource_id: string;
|
|
184
|
+
version?: string;
|
|
185
|
+
url?: string;
|
|
186
|
+
commit_hash?: string;
|
|
187
|
+
download_url?: string;
|
|
188
|
+
}>;
|
|
189
|
+
/**
|
|
190
|
+
* @deprecated Use uploadResourceFiles() + finalizeResourceUpload() instead.
|
|
191
|
+
*/
|
|
192
|
+
uploadResource(params: {
|
|
193
|
+
name: string;
|
|
194
|
+
type: string;
|
|
195
|
+
team: string;
|
|
196
|
+
description?: string;
|
|
197
|
+
tags?: string[];
|
|
198
|
+
}): Promise<{
|
|
199
|
+
upload_id: string;
|
|
200
|
+
upload_url: string;
|
|
201
|
+
expires_at: string;
|
|
202
|
+
}>;
|
|
203
|
+
/**
|
|
204
|
+
* @deprecated Use finalizeResourceUpload() instead.
|
|
205
|
+
*/
|
|
206
|
+
finalizeUpload(uploadId: string, hash: string): Promise<{
|
|
207
|
+
resource_id: string;
|
|
208
|
+
status: string;
|
|
209
|
+
}>;
|
|
210
|
+
}
|
|
211
|
+
export declare const apiClient: APIClient;
|
|
212
|
+
export {};
|
|
213
|
+
//# 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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"}
|