@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.
Files changed (185) hide show
  1. package/dist/api/cached-client.d.ts +48 -0
  2. package/dist/api/cached-client.d.ts.map +1 -0
  3. package/dist/api/cached-client.js +126 -0
  4. package/dist/api/cached-client.js.map +1 -0
  5. package/dist/api/client.d.ts +281 -0
  6. package/dist/api/client.d.ts.map +1 -0
  7. package/dist/api/client.js +371 -0
  8. package/dist/api/client.js.map +1 -0
  9. package/dist/auth/index.d.ts +8 -0
  10. package/dist/auth/index.d.ts.map +1 -0
  11. package/dist/auth/index.js +26 -0
  12. package/dist/auth/index.js.map +1 -0
  13. package/dist/auth/middleware.d.ts +36 -0
  14. package/dist/auth/middleware.d.ts.map +1 -0
  15. package/dist/auth/middleware.js +194 -0
  16. package/dist/auth/middleware.js.map +1 -0
  17. package/dist/auth/permissions.d.ts +60 -0
  18. package/dist/auth/permissions.d.ts.map +1 -0
  19. package/dist/auth/permissions.js +262 -0
  20. package/dist/auth/permissions.js.map +1 -0
  21. package/dist/auth/token-validator.d.ts +52 -0
  22. package/dist/auth/token-validator.d.ts.map +1 -0
  23. package/dist/auth/token-validator.js +215 -0
  24. package/dist/auth/token-validator.js.map +1 -0
  25. package/dist/cache/cache-manager.d.ts +49 -0
  26. package/dist/cache/cache-manager.d.ts.map +1 -0
  27. package/dist/cache/cache-manager.js +191 -0
  28. package/dist/cache/cache-manager.js.map +1 -0
  29. package/dist/cache/index.d.ts +6 -0
  30. package/dist/cache/index.d.ts.map +1 -0
  31. package/dist/cache/index.js +12 -0
  32. package/dist/cache/index.js.map +1 -0
  33. package/dist/cache/redis-client.d.ts +45 -0
  34. package/dist/cache/redis-client.d.ts.map +1 -0
  35. package/dist/cache/redis-client.js +210 -0
  36. package/dist/cache/redis-client.js.map +1 -0
  37. package/dist/config/constants.d.ts +28 -0
  38. package/dist/config/constants.d.ts.map +1 -0
  39. package/dist/config/constants.js +31 -0
  40. package/dist/config/constants.js.map +1 -0
  41. package/dist/config/index.d.ts +71 -0
  42. package/dist/config/index.d.ts.map +1 -0
  43. package/dist/config/index.js +190 -0
  44. package/dist/config/index.js.map +1 -0
  45. package/dist/filesystem/manager.d.ts +45 -0
  46. package/dist/filesystem/manager.d.ts.map +1 -0
  47. package/dist/filesystem/manager.js +246 -0
  48. package/dist/filesystem/manager.js.map +1 -0
  49. package/dist/git/multi-source-manager.d.ts +78 -0
  50. package/dist/git/multi-source-manager.d.ts.map +1 -0
  51. package/dist/git/multi-source-manager.js +577 -0
  52. package/dist/git/multi-source-manager.js.map +1 -0
  53. package/dist/git/operations.d.ts +27 -0
  54. package/dist/git/operations.d.ts.map +1 -0
  55. package/dist/git/operations.js +83 -0
  56. package/dist/git/operations.js.map +1 -0
  57. package/dist/index.d.ts +6 -0
  58. package/dist/index.d.ts.map +1 -0
  59. package/dist/index.js +122 -0
  60. package/dist/index.js.map +1 -0
  61. package/dist/monitoring/health.d.ts +35 -0
  62. package/dist/monitoring/health.d.ts.map +1 -0
  63. package/dist/monitoring/health.js +105 -0
  64. package/dist/monitoring/health.js.map +1 -0
  65. package/dist/prompts/cache.d.ts +69 -0
  66. package/dist/prompts/cache.d.ts.map +1 -0
  67. package/dist/prompts/cache.js +163 -0
  68. package/dist/prompts/cache.js.map +1 -0
  69. package/dist/prompts/generator.d.ts +49 -0
  70. package/dist/prompts/generator.d.ts.map +1 -0
  71. package/dist/prompts/generator.js +160 -0
  72. package/dist/prompts/generator.js.map +1 -0
  73. package/dist/prompts/index.d.ts +13 -0
  74. package/dist/prompts/index.d.ts.map +1 -0
  75. package/dist/prompts/index.js +24 -0
  76. package/dist/prompts/index.js.map +1 -0
  77. package/dist/prompts/manager.d.ts +207 -0
  78. package/dist/prompts/manager.d.ts.map +1 -0
  79. package/dist/prompts/manager.js +566 -0
  80. package/dist/prompts/manager.js.map +1 -0
  81. package/dist/resources/index.d.ts +6 -0
  82. package/dist/resources/index.d.ts.map +1 -0
  83. package/dist/resources/index.js +10 -0
  84. package/dist/resources/index.js.map +1 -0
  85. package/dist/resources/loader.d.ts +88 -0
  86. package/dist/resources/loader.d.ts.map +1 -0
  87. package/dist/resources/loader.js +492 -0
  88. package/dist/resources/loader.js.map +1 -0
  89. package/dist/server/http.d.ts +57 -0
  90. package/dist/server/http.d.ts.map +1 -0
  91. package/dist/server/http.js +435 -0
  92. package/dist/server/http.js.map +1 -0
  93. package/dist/server.d.ts +13 -0
  94. package/dist/server.d.ts.map +1 -0
  95. package/dist/server.js +201 -0
  96. package/dist/server.js.map +1 -0
  97. package/dist/session/manager.d.ts +91 -0
  98. package/dist/session/manager.d.ts.map +1 -0
  99. package/dist/session/manager.js +251 -0
  100. package/dist/session/manager.js.map +1 -0
  101. package/dist/telemetry/index.d.ts +3 -0
  102. package/dist/telemetry/index.d.ts.map +1 -0
  103. package/dist/telemetry/index.js +7 -0
  104. package/dist/telemetry/index.js.map +1 -0
  105. package/dist/telemetry/manager.d.ts +151 -0
  106. package/dist/telemetry/manager.d.ts.map +1 -0
  107. package/dist/telemetry/manager.js +367 -0
  108. package/dist/telemetry/manager.js.map +1 -0
  109. package/dist/tools/index.d.ts +13 -0
  110. package/dist/tools/index.d.ts.map +1 -0
  111. package/dist/tools/index.js +29 -0
  112. package/dist/tools/index.js.map +1 -0
  113. package/dist/tools/manage-subscription.d.ts +47 -0
  114. package/dist/tools/manage-subscription.d.ts.map +1 -0
  115. package/dist/tools/manage-subscription.js +317 -0
  116. package/dist/tools/manage-subscription.js.map +1 -0
  117. package/dist/tools/registry.d.ts +40 -0
  118. package/dist/tools/registry.d.ts.map +1 -0
  119. package/dist/tools/registry.js +85 -0
  120. package/dist/tools/registry.js.map +1 -0
  121. package/dist/tools/resolve-prompt-content.d.ts +35 -0
  122. package/dist/tools/resolve-prompt-content.d.ts.map +1 -0
  123. package/dist/tools/resolve-prompt-content.js +99 -0
  124. package/dist/tools/resolve-prompt-content.js.map +1 -0
  125. package/dist/tools/search-resources.d.ts +35 -0
  126. package/dist/tools/search-resources.d.ts.map +1 -0
  127. package/dist/tools/search-resources.js +159 -0
  128. package/dist/tools/search-resources.js.map +1 -0
  129. package/dist/tools/sync-resources.d.ts +54 -0
  130. package/dist/tools/sync-resources.d.ts.map +1 -0
  131. package/dist/tools/sync-resources.js +735 -0
  132. package/dist/tools/sync-resources.js.map +1 -0
  133. package/dist/tools/track-usage.d.ts +63 -0
  134. package/dist/tools/track-usage.d.ts.map +1 -0
  135. package/dist/tools/track-usage.js +90 -0
  136. package/dist/tools/track-usage.js.map +1 -0
  137. package/dist/tools/uninstall-resource.d.ts +30 -0
  138. package/dist/tools/uninstall-resource.d.ts.map +1 -0
  139. package/dist/tools/uninstall-resource.js +174 -0
  140. package/dist/tools/uninstall-resource.js.map +1 -0
  141. package/dist/tools/upload-resource.d.ts +81 -0
  142. package/dist/tools/upload-resource.d.ts.map +1 -0
  143. package/dist/tools/upload-resource.js +393 -0
  144. package/dist/tools/upload-resource.js.map +1 -0
  145. package/dist/transport/sse.d.ts +29 -0
  146. package/dist/transport/sse.d.ts.map +1 -0
  147. package/dist/transport/sse.js +271 -0
  148. package/dist/transport/sse.js.map +1 -0
  149. package/dist/types/errors.d.ts +60 -0
  150. package/dist/types/errors.d.ts.map +1 -0
  151. package/dist/types/errors.js +112 -0
  152. package/dist/types/errors.js.map +1 -0
  153. package/dist/types/index.d.ts +7 -0
  154. package/dist/types/index.d.ts.map +1 -0
  155. package/dist/types/index.js +23 -0
  156. package/dist/types/index.js.map +1 -0
  157. package/dist/types/mcp.d.ts +50 -0
  158. package/dist/types/mcp.d.ts.map +1 -0
  159. package/dist/types/mcp.js +6 -0
  160. package/dist/types/mcp.js.map +1 -0
  161. package/dist/types/resources.d.ts +109 -0
  162. package/dist/types/resources.d.ts.map +1 -0
  163. package/dist/types/resources.js +7 -0
  164. package/dist/types/resources.js.map +1 -0
  165. package/dist/types/tools.d.ts +253 -0
  166. package/dist/types/tools.d.ts.map +1 -0
  167. package/dist/types/tools.js +6 -0
  168. package/dist/types/tools.js.map +1 -0
  169. package/dist/utils/cursor-paths.d.ts +84 -0
  170. package/dist/utils/cursor-paths.d.ts.map +1 -0
  171. package/dist/utils/cursor-paths.js +166 -0
  172. package/dist/utils/cursor-paths.js.map +1 -0
  173. package/dist/utils/log-cleaner.d.ts +18 -0
  174. package/dist/utils/log-cleaner.d.ts.map +1 -0
  175. package/dist/utils/log-cleaner.js +112 -0
  176. package/dist/utils/log-cleaner.js.map +1 -0
  177. package/dist/utils/logger.d.ts +59 -0
  178. package/dist/utils/logger.d.ts.map +1 -0
  179. package/dist/utils/logger.js +292 -0
  180. package/dist/utils/logger.js.map +1 -0
  181. package/dist/utils/validation.d.ts +58 -0
  182. package/dist/utils/validation.d.ts.map +1 -0
  183. package/dist/utils/validation.js +214 -0
  184. package/dist/utils/validation.js.map +1 -0
  185. 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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"}