opalserve 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.
Files changed (158) hide show
  1. package/.env.example +19 -0
  2. package/AGENTS.md +23 -0
  3. package/README.md +109 -0
  4. package/config/servers.example.yaml +67 -0
  5. package/config/servers.yaml +2 -0
  6. package/dist/cli/discover.d.ts +3 -0
  7. package/dist/cli/discover.d.ts.map +1 -0
  8. package/dist/cli/discover.js +160 -0
  9. package/dist/cli/discover.js.map +1 -0
  10. package/dist/cli/index.d.ts +3 -0
  11. package/dist/cli/index.d.ts.map +1 -0
  12. package/dist/cli/index.js +32 -0
  13. package/dist/cli/index.js.map +1 -0
  14. package/dist/connectors/base.d.ts +49 -0
  15. package/dist/connectors/base.d.ts.map +1 -0
  16. package/dist/connectors/base.js +45 -0
  17. package/dist/connectors/base.js.map +1 -0
  18. package/dist/connectors/custom.d.ts +19 -0
  19. package/dist/connectors/custom.d.ts.map +1 -0
  20. package/dist/connectors/custom.js +129 -0
  21. package/dist/connectors/custom.js.map +1 -0
  22. package/dist/connectors/github.d.ts +18 -0
  23. package/dist/connectors/github.d.ts.map +1 -0
  24. package/dist/connectors/github.js +188 -0
  25. package/dist/connectors/github.js.map +1 -0
  26. package/dist/connectors/google-drive.d.ts +18 -0
  27. package/dist/connectors/google-drive.d.ts.map +1 -0
  28. package/dist/connectors/google-drive.js +209 -0
  29. package/dist/connectors/google-drive.js.map +1 -0
  30. package/dist/connectors/index.d.ts +11 -0
  31. package/dist/connectors/index.d.ts.map +1 -0
  32. package/dist/connectors/index.js +76 -0
  33. package/dist/connectors/index.js.map +1 -0
  34. package/dist/connectors/postgres.d.ts +18 -0
  35. package/dist/connectors/postgres.d.ts.map +1 -0
  36. package/dist/connectors/postgres.js +140 -0
  37. package/dist/connectors/postgres.js.map +1 -0
  38. package/dist/connectors/slack.d.ts +18 -0
  39. package/dist/connectors/slack.d.ts.map +1 -0
  40. package/dist/connectors/slack.js +181 -0
  41. package/dist/connectors/slack.js.map +1 -0
  42. package/dist/core/auth.d.ts +26 -0
  43. package/dist/core/auth.d.ts.map +1 -0
  44. package/dist/core/auth.js +81 -0
  45. package/dist/core/auth.js.map +1 -0
  46. package/dist/core/registry.d.ts +33 -0
  47. package/dist/core/registry.d.ts.map +1 -0
  48. package/dist/core/registry.js +237 -0
  49. package/dist/core/registry.js.map +1 -0
  50. package/dist/core/tokenizer.d.ts +16 -0
  51. package/dist/core/tokenizer.d.ts.map +1 -0
  52. package/dist/core/tokenizer.js +29 -0
  53. package/dist/core/tokenizer.js.map +1 -0
  54. package/dist/governance/audit.d.ts +27 -0
  55. package/dist/governance/audit.d.ts.map +1 -0
  56. package/dist/governance/audit.js +149 -0
  57. package/dist/governance/audit.js.map +1 -0
  58. package/dist/governance/index.d.ts +5 -0
  59. package/dist/governance/index.d.ts.map +1 -0
  60. package/dist/governance/index.js +5 -0
  61. package/dist/governance/index.js.map +1 -0
  62. package/dist/governance/policy.d.ts +20 -0
  63. package/dist/governance/policy.d.ts.map +1 -0
  64. package/dist/governance/policy.js +162 -0
  65. package/dist/governance/policy.js.map +1 -0
  66. package/dist/governance/rate-limiter.d.ts +20 -0
  67. package/dist/governance/rate-limiter.d.ts.map +1 -0
  68. package/dist/governance/rate-limiter.js +73 -0
  69. package/dist/governance/rate-limiter.js.map +1 -0
  70. package/dist/governance/types.d.ts +246 -0
  71. package/dist/governance/types.d.ts.map +1 -0
  72. package/dist/governance/types.js +72 -0
  73. package/dist/governance/types.js.map +1 -0
  74. package/dist/identity/access-control.d.ts +15 -0
  75. package/dist/identity/access-control.d.ts.map +1 -0
  76. package/dist/identity/access-control.js +81 -0
  77. package/dist/identity/access-control.js.map +1 -0
  78. package/dist/identity/index.d.ts +4 -0
  79. package/dist/identity/index.d.ts.map +1 -0
  80. package/dist/identity/index.js +4 -0
  81. package/dist/identity/index.js.map +1 -0
  82. package/dist/identity/manager.d.ts +29 -0
  83. package/dist/identity/manager.d.ts.map +1 -0
  84. package/dist/identity/manager.js +167 -0
  85. package/dist/identity/manager.js.map +1 -0
  86. package/dist/identity/types.d.ts +237 -0
  87. package/dist/identity/types.d.ts.map +1 -0
  88. package/dist/identity/types.js +80 -0
  89. package/dist/identity/types.js.map +1 -0
  90. package/dist/index.d.ts +13 -0
  91. package/dist/index.d.ts.map +1 -0
  92. package/dist/index.js +10 -0
  93. package/dist/index.js.map +1 -0
  94. package/dist/registry/server.d.ts +14 -0
  95. package/dist/registry/server.d.ts.map +1 -0
  96. package/dist/registry/server.js +173 -0
  97. package/dist/registry/server.js.map +1 -0
  98. package/dist/types/index.d.ts +639 -0
  99. package/dist/types/index.d.ts.map +1 -0
  100. package/dist/types/index.js +76 -0
  101. package/dist/types/index.js.map +1 -0
  102. package/dist/utils/config.d.ts +29 -0
  103. package/dist/utils/config.d.ts.map +1 -0
  104. package/dist/utils/config.js +47 -0
  105. package/dist/utils/config.js.map +1 -0
  106. package/dist/utils/index.d.ts +7 -0
  107. package/dist/utils/index.d.ts.map +1 -0
  108. package/dist/utils/index.js +44 -0
  109. package/dist/utils/index.js.map +1 -0
  110. package/dist/workflow/engine.d.ts +18 -0
  111. package/dist/workflow/engine.d.ts.map +1 -0
  112. package/dist/workflow/engine.js +155 -0
  113. package/dist/workflow/engine.js.map +1 -0
  114. package/dist/workflow/index.d.ts +4 -0
  115. package/dist/workflow/index.d.ts.map +1 -0
  116. package/dist/workflow/index.js +4 -0
  117. package/dist/workflow/index.js.map +1 -0
  118. package/dist/workflow/templates.d.ts +4 -0
  119. package/dist/workflow/templates.d.ts.map +1 -0
  120. package/dist/workflow/templates.js +218 -0
  121. package/dist/workflow/templates.js.map +1 -0
  122. package/dist/workflow/types.d.ts +255 -0
  123. package/dist/workflow/types.d.ts.map +1 -0
  124. package/dist/workflow/types.js +48 -0
  125. package/dist/workflow/types.js.map +1 -0
  126. package/eslint.config.js +25 -0
  127. package/package.json +78 -0
  128. package/src/cli/discover.ts +223 -0
  129. package/src/cli/index.ts +40 -0
  130. package/src/connectors/base.ts +75 -0
  131. package/src/connectors/custom.ts +139 -0
  132. package/src/connectors/github.ts +195 -0
  133. package/src/connectors/google-drive.ts +217 -0
  134. package/src/connectors/index.ts +86 -0
  135. package/src/connectors/postgres.ts +148 -0
  136. package/src/connectors/slack.ts +188 -0
  137. package/src/core/auth.ts +109 -0
  138. package/src/core/registry.ts +301 -0
  139. package/src/core/tokenizer.ts +40 -0
  140. package/src/governance/audit.ts +182 -0
  141. package/src/governance/index.ts +4 -0
  142. package/src/governance/policy.ts +187 -0
  143. package/src/governance/rate-limiter.ts +95 -0
  144. package/src/governance/types.ts +100 -0
  145. package/src/identity/access-control.ts +119 -0
  146. package/src/identity/index.ts +3 -0
  147. package/src/identity/manager.ts +207 -0
  148. package/src/identity/types.ts +91 -0
  149. package/src/index.ts +16 -0
  150. package/src/registry/server.ts +195 -0
  151. package/src/types/index.ts +128 -0
  152. package/src/utils/config.ts +78 -0
  153. package/src/utils/index.ts +47 -0
  154. package/src/workflow/engine.ts +187 -0
  155. package/src/workflow/index.ts +3 -0
  156. package/src/workflow/templates.ts +220 -0
  157. package/src/workflow/types.ts +89 -0
  158. package/tsconfig.json +25 -0
@@ -0,0 +1,639 @@
1
+ import { z } from 'zod';
2
+ export declare const ToolSchema: z.ZodObject<{
3
+ id: z.ZodString;
4
+ name: z.ZodString;
5
+ description: z.ZodString;
6
+ serverId: z.ZodString;
7
+ serverName: z.ZodString;
8
+ inputSchema: z.ZodRecord<z.ZodString, z.ZodAny>;
9
+ outputSchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
10
+ tags: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
11
+ capabilities: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
12
+ authRequirements: z.ZodDefault<z.ZodObject<{
13
+ required: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
14
+ optional: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
15
+ }, "strip", z.ZodTypeAny, {
16
+ required: string[];
17
+ optional: string[];
18
+ }, {
19
+ required?: string[] | undefined;
20
+ optional?: string[] | undefined;
21
+ }>>;
22
+ rateLimits: z.ZodOptional<z.ZodObject<{
23
+ requestsPerMinute: z.ZodOptional<z.ZodNumber>;
24
+ requestsPerHour: z.ZodOptional<z.ZodNumber>;
25
+ }, "strip", z.ZodTypeAny, {
26
+ requestsPerMinute?: number | undefined;
27
+ requestsPerHour?: number | undefined;
28
+ }, {
29
+ requestsPerMinute?: number | undefined;
30
+ requestsPerHour?: number | undefined;
31
+ }>>;
32
+ contextRequirements: z.ZodDefault<z.ZodObject<{
33
+ minTokens: z.ZodDefault<z.ZodNumber>;
34
+ maxTokens: z.ZodDefault<z.ZodNumber>;
35
+ }, "strip", z.ZodTypeAny, {
36
+ minTokens: number;
37
+ maxTokens: number;
38
+ }, {
39
+ minTokens?: number | undefined;
40
+ maxTokens?: number | undefined;
41
+ }>>;
42
+ metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodAny>>;
43
+ createdAt: z.ZodString;
44
+ updatedAt: z.ZodString;
45
+ }, "strip", z.ZodTypeAny, {
46
+ id: string;
47
+ name: string;
48
+ description: string;
49
+ serverId: string;
50
+ serverName: string;
51
+ inputSchema: Record<string, any>;
52
+ tags: string[];
53
+ capabilities: string[];
54
+ authRequirements: {
55
+ required: string[];
56
+ optional: string[];
57
+ };
58
+ contextRequirements: {
59
+ minTokens: number;
60
+ maxTokens: number;
61
+ };
62
+ metadata: Record<string, any>;
63
+ createdAt: string;
64
+ updatedAt: string;
65
+ outputSchema?: Record<string, any> | undefined;
66
+ rateLimits?: {
67
+ requestsPerMinute?: number | undefined;
68
+ requestsPerHour?: number | undefined;
69
+ } | undefined;
70
+ }, {
71
+ id: string;
72
+ name: string;
73
+ description: string;
74
+ serverId: string;
75
+ serverName: string;
76
+ inputSchema: Record<string, any>;
77
+ createdAt: string;
78
+ updatedAt: string;
79
+ outputSchema?: Record<string, any> | undefined;
80
+ tags?: string[] | undefined;
81
+ capabilities?: string[] | undefined;
82
+ authRequirements?: {
83
+ required?: string[] | undefined;
84
+ optional?: string[] | undefined;
85
+ } | undefined;
86
+ rateLimits?: {
87
+ requestsPerMinute?: number | undefined;
88
+ requestsPerHour?: number | undefined;
89
+ } | undefined;
90
+ contextRequirements?: {
91
+ minTokens?: number | undefined;
92
+ maxTokens?: number | undefined;
93
+ } | undefined;
94
+ metadata?: Record<string, any> | undefined;
95
+ }>;
96
+ export type Tool = z.infer<typeof ToolSchema>;
97
+ export declare const ServerSchema: z.ZodObject<{
98
+ id: z.ZodString;
99
+ name: z.ZodString;
100
+ type: z.ZodEnum<["github", "slack", "postgres", "google-drive", "custom", "http"]>;
101
+ status: z.ZodEnum<["active", "inactive", "error", "connecting"]>;
102
+ endpoint: z.ZodOptional<z.ZodString>;
103
+ localCommand: z.ZodOptional<z.ZodString>;
104
+ description: z.ZodString;
105
+ version: z.ZodDefault<z.ZodString>;
106
+ capabilities: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
107
+ tags: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
108
+ health: z.ZodDefault<z.ZodObject<{
109
+ status: z.ZodEnum<["healthy", "degraded", "unhealthy"]>;
110
+ lastChecked: z.ZodString;
111
+ responseTimeMs: z.ZodOptional<z.ZodNumber>;
112
+ errorCount: z.ZodDefault<z.ZodNumber>;
113
+ }, "strip", z.ZodTypeAny, {
114
+ status: "healthy" | "degraded" | "unhealthy";
115
+ lastChecked: string;
116
+ errorCount: number;
117
+ responseTimeMs?: number | undefined;
118
+ }, {
119
+ status: "healthy" | "degraded" | "unhealthy";
120
+ lastChecked: string;
121
+ responseTimeMs?: number | undefined;
122
+ errorCount?: number | undefined;
123
+ }>>;
124
+ auth: z.ZodDefault<z.ZodObject<{
125
+ type: z.ZodEnum<["none", "api-key", "oauth", "jwt", "basic"]>;
126
+ configured: z.ZodDefault<z.ZodBoolean>;
127
+ }, "strip", z.ZodTypeAny, {
128
+ type: "none" | "api-key" | "oauth" | "jwt" | "basic";
129
+ configured: boolean;
130
+ }, {
131
+ type: "none" | "api-key" | "oauth" | "jwt" | "basic";
132
+ configured?: boolean | undefined;
133
+ }>>;
134
+ metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodAny>>;
135
+ registeredAt: z.ZodString;
136
+ lastSeen: z.ZodString;
137
+ }, "strip", z.ZodTypeAny, {
138
+ id: string;
139
+ name: string;
140
+ description: string;
141
+ status: "active" | "inactive" | "error" | "connecting";
142
+ type: "custom" | "github" | "slack" | "postgres" | "google-drive" | "http";
143
+ tags: string[];
144
+ capabilities: string[];
145
+ metadata: Record<string, any>;
146
+ version: string;
147
+ health: {
148
+ status: "healthy" | "degraded" | "unhealthy";
149
+ lastChecked: string;
150
+ errorCount: number;
151
+ responseTimeMs?: number | undefined;
152
+ };
153
+ auth: {
154
+ type: "none" | "api-key" | "oauth" | "jwt" | "basic";
155
+ configured: boolean;
156
+ };
157
+ registeredAt: string;
158
+ lastSeen: string;
159
+ endpoint?: string | undefined;
160
+ localCommand?: string | undefined;
161
+ }, {
162
+ id: string;
163
+ name: string;
164
+ description: string;
165
+ status: "active" | "inactive" | "error" | "connecting";
166
+ type: "custom" | "github" | "slack" | "postgres" | "google-drive" | "http";
167
+ registeredAt: string;
168
+ lastSeen: string;
169
+ tags?: string[] | undefined;
170
+ capabilities?: string[] | undefined;
171
+ metadata?: Record<string, any> | undefined;
172
+ endpoint?: string | undefined;
173
+ localCommand?: string | undefined;
174
+ version?: string | undefined;
175
+ health?: {
176
+ status: "healthy" | "degraded" | "unhealthy";
177
+ lastChecked: string;
178
+ responseTimeMs?: number | undefined;
179
+ errorCount?: number | undefined;
180
+ } | undefined;
181
+ auth?: {
182
+ type: "none" | "api-key" | "oauth" | "jwt" | "basic";
183
+ configured?: boolean | undefined;
184
+ } | undefined;
185
+ }>;
186
+ export type Server = z.infer<typeof ServerSchema>;
187
+ export declare const DiscoveryQuerySchema: z.ZodObject<{
188
+ query: z.ZodOptional<z.ZodString>;
189
+ capabilities: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
190
+ tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
191
+ limit: z.ZodDefault<z.ZodNumber>;
192
+ offset: z.ZodDefault<z.ZodNumber>;
193
+ contextBudget: z.ZodDefault<z.ZodNumber>;
194
+ includeServers: z.ZodDefault<z.ZodBoolean>;
195
+ }, "strip", z.ZodTypeAny, {
196
+ limit: number;
197
+ offset: number;
198
+ contextBudget: number;
199
+ includeServers: boolean;
200
+ tags?: string[] | undefined;
201
+ capabilities?: string[] | undefined;
202
+ query?: string | undefined;
203
+ }, {
204
+ tags?: string[] | undefined;
205
+ capabilities?: string[] | undefined;
206
+ query?: string | undefined;
207
+ limit?: number | undefined;
208
+ offset?: number | undefined;
209
+ contextBudget?: number | undefined;
210
+ includeServers?: boolean | undefined;
211
+ }>;
212
+ export type DiscoveryQuery = z.infer<typeof DiscoveryQuerySchema>;
213
+ export declare const DiscoveryResultSchema: z.ZodObject<{
214
+ tools: z.ZodArray<z.ZodObject<{
215
+ tool: z.ZodObject<{
216
+ id: z.ZodString;
217
+ name: z.ZodString;
218
+ description: z.ZodString;
219
+ serverId: z.ZodString;
220
+ serverName: z.ZodString;
221
+ inputSchema: z.ZodRecord<z.ZodString, z.ZodAny>;
222
+ outputSchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
223
+ tags: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
224
+ capabilities: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
225
+ authRequirements: z.ZodDefault<z.ZodObject<{
226
+ required: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
227
+ optional: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
228
+ }, "strip", z.ZodTypeAny, {
229
+ required: string[];
230
+ optional: string[];
231
+ }, {
232
+ required?: string[] | undefined;
233
+ optional?: string[] | undefined;
234
+ }>>;
235
+ rateLimits: z.ZodOptional<z.ZodObject<{
236
+ requestsPerMinute: z.ZodOptional<z.ZodNumber>;
237
+ requestsPerHour: z.ZodOptional<z.ZodNumber>;
238
+ }, "strip", z.ZodTypeAny, {
239
+ requestsPerMinute?: number | undefined;
240
+ requestsPerHour?: number | undefined;
241
+ }, {
242
+ requestsPerMinute?: number | undefined;
243
+ requestsPerHour?: number | undefined;
244
+ }>>;
245
+ contextRequirements: z.ZodDefault<z.ZodObject<{
246
+ minTokens: z.ZodDefault<z.ZodNumber>;
247
+ maxTokens: z.ZodDefault<z.ZodNumber>;
248
+ }, "strip", z.ZodTypeAny, {
249
+ minTokens: number;
250
+ maxTokens: number;
251
+ }, {
252
+ minTokens?: number | undefined;
253
+ maxTokens?: number | undefined;
254
+ }>>;
255
+ metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodAny>>;
256
+ createdAt: z.ZodString;
257
+ updatedAt: z.ZodString;
258
+ }, "strip", z.ZodTypeAny, {
259
+ id: string;
260
+ name: string;
261
+ description: string;
262
+ serverId: string;
263
+ serverName: string;
264
+ inputSchema: Record<string, any>;
265
+ tags: string[];
266
+ capabilities: string[];
267
+ authRequirements: {
268
+ required: string[];
269
+ optional: string[];
270
+ };
271
+ contextRequirements: {
272
+ minTokens: number;
273
+ maxTokens: number;
274
+ };
275
+ metadata: Record<string, any>;
276
+ createdAt: string;
277
+ updatedAt: string;
278
+ outputSchema?: Record<string, any> | undefined;
279
+ rateLimits?: {
280
+ requestsPerMinute?: number | undefined;
281
+ requestsPerHour?: number | undefined;
282
+ } | undefined;
283
+ }, {
284
+ id: string;
285
+ name: string;
286
+ description: string;
287
+ serverId: string;
288
+ serverName: string;
289
+ inputSchema: Record<string, any>;
290
+ createdAt: string;
291
+ updatedAt: string;
292
+ outputSchema?: Record<string, any> | undefined;
293
+ tags?: string[] | undefined;
294
+ capabilities?: string[] | undefined;
295
+ authRequirements?: {
296
+ required?: string[] | undefined;
297
+ optional?: string[] | undefined;
298
+ } | undefined;
299
+ rateLimits?: {
300
+ requestsPerMinute?: number | undefined;
301
+ requestsPerHour?: number | undefined;
302
+ } | undefined;
303
+ contextRequirements?: {
304
+ minTokens?: number | undefined;
305
+ maxTokens?: number | undefined;
306
+ } | undefined;
307
+ metadata?: Record<string, any> | undefined;
308
+ }>;
309
+ relevanceScore: z.ZodNumber;
310
+ matchReasons: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
311
+ tokenEstimate: z.ZodNumber;
312
+ }, "strip", z.ZodTypeAny, {
313
+ tool: {
314
+ id: string;
315
+ name: string;
316
+ description: string;
317
+ serverId: string;
318
+ serverName: string;
319
+ inputSchema: Record<string, any>;
320
+ tags: string[];
321
+ capabilities: string[];
322
+ authRequirements: {
323
+ required: string[];
324
+ optional: string[];
325
+ };
326
+ contextRequirements: {
327
+ minTokens: number;
328
+ maxTokens: number;
329
+ };
330
+ metadata: Record<string, any>;
331
+ createdAt: string;
332
+ updatedAt: string;
333
+ outputSchema?: Record<string, any> | undefined;
334
+ rateLimits?: {
335
+ requestsPerMinute?: number | undefined;
336
+ requestsPerHour?: number | undefined;
337
+ } | undefined;
338
+ };
339
+ relevanceScore: number;
340
+ matchReasons: string[];
341
+ tokenEstimate: number;
342
+ }, {
343
+ tool: {
344
+ id: string;
345
+ name: string;
346
+ description: string;
347
+ serverId: string;
348
+ serverName: string;
349
+ inputSchema: Record<string, any>;
350
+ createdAt: string;
351
+ updatedAt: string;
352
+ outputSchema?: Record<string, any> | undefined;
353
+ tags?: string[] | undefined;
354
+ capabilities?: string[] | undefined;
355
+ authRequirements?: {
356
+ required?: string[] | undefined;
357
+ optional?: string[] | undefined;
358
+ } | undefined;
359
+ rateLimits?: {
360
+ requestsPerMinute?: number | undefined;
361
+ requestsPerHour?: number | undefined;
362
+ } | undefined;
363
+ contextRequirements?: {
364
+ minTokens?: number | undefined;
365
+ maxTokens?: number | undefined;
366
+ } | undefined;
367
+ metadata?: Record<string, any> | undefined;
368
+ };
369
+ relevanceScore: number;
370
+ tokenEstimate: number;
371
+ matchReasons?: string[] | undefined;
372
+ }>, "many">;
373
+ servers: z.ZodArray<z.ZodObject<{
374
+ id: z.ZodString;
375
+ name: z.ZodString;
376
+ type: z.ZodEnum<["github", "slack", "postgres", "google-drive", "custom", "http"]>;
377
+ status: z.ZodEnum<["active", "inactive", "error", "connecting"]>;
378
+ endpoint: z.ZodOptional<z.ZodString>;
379
+ localCommand: z.ZodOptional<z.ZodString>;
380
+ description: z.ZodString;
381
+ version: z.ZodDefault<z.ZodString>;
382
+ capabilities: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
383
+ tags: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
384
+ health: z.ZodDefault<z.ZodObject<{
385
+ status: z.ZodEnum<["healthy", "degraded", "unhealthy"]>;
386
+ lastChecked: z.ZodString;
387
+ responseTimeMs: z.ZodOptional<z.ZodNumber>;
388
+ errorCount: z.ZodDefault<z.ZodNumber>;
389
+ }, "strip", z.ZodTypeAny, {
390
+ status: "healthy" | "degraded" | "unhealthy";
391
+ lastChecked: string;
392
+ errorCount: number;
393
+ responseTimeMs?: number | undefined;
394
+ }, {
395
+ status: "healthy" | "degraded" | "unhealthy";
396
+ lastChecked: string;
397
+ responseTimeMs?: number | undefined;
398
+ errorCount?: number | undefined;
399
+ }>>;
400
+ auth: z.ZodDefault<z.ZodObject<{
401
+ type: z.ZodEnum<["none", "api-key", "oauth", "jwt", "basic"]>;
402
+ configured: z.ZodDefault<z.ZodBoolean>;
403
+ }, "strip", z.ZodTypeAny, {
404
+ type: "none" | "api-key" | "oauth" | "jwt" | "basic";
405
+ configured: boolean;
406
+ }, {
407
+ type: "none" | "api-key" | "oauth" | "jwt" | "basic";
408
+ configured?: boolean | undefined;
409
+ }>>;
410
+ metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodAny>>;
411
+ registeredAt: z.ZodString;
412
+ lastSeen: z.ZodString;
413
+ }, "strip", z.ZodTypeAny, {
414
+ id: string;
415
+ name: string;
416
+ description: string;
417
+ status: "active" | "inactive" | "error" | "connecting";
418
+ type: "custom" | "github" | "slack" | "postgres" | "google-drive" | "http";
419
+ tags: string[];
420
+ capabilities: string[];
421
+ metadata: Record<string, any>;
422
+ version: string;
423
+ health: {
424
+ status: "healthy" | "degraded" | "unhealthy";
425
+ lastChecked: string;
426
+ errorCount: number;
427
+ responseTimeMs?: number | undefined;
428
+ };
429
+ auth: {
430
+ type: "none" | "api-key" | "oauth" | "jwt" | "basic";
431
+ configured: boolean;
432
+ };
433
+ registeredAt: string;
434
+ lastSeen: string;
435
+ endpoint?: string | undefined;
436
+ localCommand?: string | undefined;
437
+ }, {
438
+ id: string;
439
+ name: string;
440
+ description: string;
441
+ status: "active" | "inactive" | "error" | "connecting";
442
+ type: "custom" | "github" | "slack" | "postgres" | "google-drive" | "http";
443
+ registeredAt: string;
444
+ lastSeen: string;
445
+ tags?: string[] | undefined;
446
+ capabilities?: string[] | undefined;
447
+ metadata?: Record<string, any> | undefined;
448
+ endpoint?: string | undefined;
449
+ localCommand?: string | undefined;
450
+ version?: string | undefined;
451
+ health?: {
452
+ status: "healthy" | "degraded" | "unhealthy";
453
+ lastChecked: string;
454
+ responseTimeMs?: number | undefined;
455
+ errorCount?: number | undefined;
456
+ } | undefined;
457
+ auth?: {
458
+ type: "none" | "api-key" | "oauth" | "jwt" | "basic";
459
+ configured?: boolean | undefined;
460
+ } | undefined;
461
+ }>, "many">;
462
+ totalMatches: z.ZodNumber;
463
+ contextUsed: z.ZodNumber;
464
+ contextBudget: z.ZodNumber;
465
+ suggestions: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
466
+ queryInterpretation: z.ZodString;
467
+ }, "strip", z.ZodTypeAny, {
468
+ contextBudget: number;
469
+ tools: {
470
+ tool: {
471
+ id: string;
472
+ name: string;
473
+ description: string;
474
+ serverId: string;
475
+ serverName: string;
476
+ inputSchema: Record<string, any>;
477
+ tags: string[];
478
+ capabilities: string[];
479
+ authRequirements: {
480
+ required: string[];
481
+ optional: string[];
482
+ };
483
+ contextRequirements: {
484
+ minTokens: number;
485
+ maxTokens: number;
486
+ };
487
+ metadata: Record<string, any>;
488
+ createdAt: string;
489
+ updatedAt: string;
490
+ outputSchema?: Record<string, any> | undefined;
491
+ rateLimits?: {
492
+ requestsPerMinute?: number | undefined;
493
+ requestsPerHour?: number | undefined;
494
+ } | undefined;
495
+ };
496
+ relevanceScore: number;
497
+ matchReasons: string[];
498
+ tokenEstimate: number;
499
+ }[];
500
+ servers: {
501
+ id: string;
502
+ name: string;
503
+ description: string;
504
+ status: "active" | "inactive" | "error" | "connecting";
505
+ type: "custom" | "github" | "slack" | "postgres" | "google-drive" | "http";
506
+ tags: string[];
507
+ capabilities: string[];
508
+ metadata: Record<string, any>;
509
+ version: string;
510
+ health: {
511
+ status: "healthy" | "degraded" | "unhealthy";
512
+ lastChecked: string;
513
+ errorCount: number;
514
+ responseTimeMs?: number | undefined;
515
+ };
516
+ auth: {
517
+ type: "none" | "api-key" | "oauth" | "jwt" | "basic";
518
+ configured: boolean;
519
+ };
520
+ registeredAt: string;
521
+ lastSeen: string;
522
+ endpoint?: string | undefined;
523
+ localCommand?: string | undefined;
524
+ }[];
525
+ totalMatches: number;
526
+ contextUsed: number;
527
+ suggestions: string[];
528
+ queryInterpretation: string;
529
+ }, {
530
+ contextBudget: number;
531
+ tools: {
532
+ tool: {
533
+ id: string;
534
+ name: string;
535
+ description: string;
536
+ serverId: string;
537
+ serverName: string;
538
+ inputSchema: Record<string, any>;
539
+ createdAt: string;
540
+ updatedAt: string;
541
+ outputSchema?: Record<string, any> | undefined;
542
+ tags?: string[] | undefined;
543
+ capabilities?: string[] | undefined;
544
+ authRequirements?: {
545
+ required?: string[] | undefined;
546
+ optional?: string[] | undefined;
547
+ } | undefined;
548
+ rateLimits?: {
549
+ requestsPerMinute?: number | undefined;
550
+ requestsPerHour?: number | undefined;
551
+ } | undefined;
552
+ contextRequirements?: {
553
+ minTokens?: number | undefined;
554
+ maxTokens?: number | undefined;
555
+ } | undefined;
556
+ metadata?: Record<string, any> | undefined;
557
+ };
558
+ relevanceScore: number;
559
+ tokenEstimate: number;
560
+ matchReasons?: string[] | undefined;
561
+ }[];
562
+ servers: {
563
+ id: string;
564
+ name: string;
565
+ description: string;
566
+ status: "active" | "inactive" | "error" | "connecting";
567
+ type: "custom" | "github" | "slack" | "postgres" | "google-drive" | "http";
568
+ registeredAt: string;
569
+ lastSeen: string;
570
+ tags?: string[] | undefined;
571
+ capabilities?: string[] | undefined;
572
+ metadata?: Record<string, any> | undefined;
573
+ endpoint?: string | undefined;
574
+ localCommand?: string | undefined;
575
+ version?: string | undefined;
576
+ health?: {
577
+ status: "healthy" | "degraded" | "unhealthy";
578
+ lastChecked: string;
579
+ responseTimeMs?: number | undefined;
580
+ errorCount?: number | undefined;
581
+ } | undefined;
582
+ auth?: {
583
+ type: "none" | "api-key" | "oauth" | "jwt" | "basic";
584
+ configured?: boolean | undefined;
585
+ } | undefined;
586
+ }[];
587
+ totalMatches: number;
588
+ contextUsed: number;
589
+ queryInterpretation: string;
590
+ suggestions?: string[] | undefined;
591
+ }>;
592
+ export type DiscoveryResult = z.infer<typeof DiscoveryResultSchema>;
593
+ export interface MCPServer {
594
+ id: string;
595
+ name: string;
596
+ type: string;
597
+ getTools(): Tool[];
598
+ connect(): Promise<void>;
599
+ disconnect(): Promise<void>;
600
+ healthCheck(): Promise<{
601
+ healthy: boolean;
602
+ latencyMs?: number;
603
+ }>;
604
+ }
605
+ export interface ConnectorConfig {
606
+ serverId: string;
607
+ endpoint?: string;
608
+ auth?: {
609
+ type: 'none' | 'api-key' | 'oauth' | 'jwt' | 'basic';
610
+ credentials?: Record<string, string>;
611
+ };
612
+ options?: Record<string, unknown>;
613
+ }
614
+ export interface RegistryConfig {
615
+ port: number;
616
+ host: string;
617
+ jwtSecret: string;
618
+ apiKey?: string;
619
+ maxToolsPerResponse: number;
620
+ contextTokenBudget: number;
621
+ enableAuth: boolean;
622
+ }
623
+ export interface ToolDefinition {
624
+ name: string;
625
+ description: string;
626
+ inputSchema: Record<string, unknown>;
627
+ tags?: string[];
628
+ capabilities?: string[];
629
+ authRequirements?: {
630
+ required?: string[];
631
+ optional?: string[];
632
+ };
633
+ contextRequirements?: {
634
+ minTokens?: number;
635
+ maxTokens?: number;
636
+ };
637
+ metadata?: Record<string, unknown>;
638
+ }
639
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}