toolhome 0.5.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 (214) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +295 -0
  3. package/README.zh.md +281 -0
  4. package/dist/server/app.d.ts +16 -0
  5. package/dist/server/app.d.ts.map +1 -0
  6. package/dist/server/app.js +166 -0
  7. package/dist/server/app.js.map +1 -0
  8. package/dist/server/cli/main.d.ts +3 -0
  9. package/dist/server/cli/main.d.ts.map +1 -0
  10. package/dist/server/cli/main.js +587 -0
  11. package/dist/server/cli/main.js.map +1 -0
  12. package/dist/server/cli-plane/allow-list.d.ts +18 -0
  13. package/dist/server/cli-plane/allow-list.d.ts.map +1 -0
  14. package/dist/server/cli-plane/allow-list.js +28 -0
  15. package/dist/server/cli-plane/allow-list.js.map +1 -0
  16. package/dist/server/cli-plane/cli-service.d.ts +41 -0
  17. package/dist/server/cli-plane/cli-service.d.ts.map +1 -0
  18. package/dist/server/cli-plane/cli-service.js +282 -0
  19. package/dist/server/cli-plane/cli-service.js.map +1 -0
  20. package/dist/server/cli-plane/frames.d.ts +26 -0
  21. package/dist/server/cli-plane/frames.d.ts.map +1 -0
  22. package/dist/server/cli-plane/frames.js +12 -0
  23. package/dist/server/cli-plane/frames.js.map +1 -0
  24. package/dist/server/cli-plane/models.d.ts +174 -0
  25. package/dist/server/cli-plane/models.d.ts.map +1 -0
  26. package/dist/server/cli-plane/models.js +169 -0
  27. package/dist/server/cli-plane/models.js.map +1 -0
  28. package/dist/server/cli-plane/routes.d.ts +32 -0
  29. package/dist/server/cli-plane/routes.d.ts.map +1 -0
  30. package/dist/server/cli-plane/routes.js +94 -0
  31. package/dist/server/cli-plane/routes.js.map +1 -0
  32. package/dist/server/cli-plane/runner.d.ts +41 -0
  33. package/dist/server/cli-plane/runner.d.ts.map +1 -0
  34. package/dist/server/cli-plane/runner.js +163 -0
  35. package/dist/server/cli-plane/runner.js.map +1 -0
  36. package/dist/server/cli-plane/status.d.ts +12 -0
  37. package/dist/server/cli-plane/status.d.ts.map +1 -0
  38. package/dist/server/cli-plane/status.js +24 -0
  39. package/dist/server/cli-plane/status.js.map +1 -0
  40. package/dist/server/config/harness-import.d.ts +44 -0
  41. package/dist/server/config/harness-import.d.ts.map +1 -0
  42. package/dist/server/config/harness-import.js +166 -0
  43. package/dist/server/config/harness-import.js.map +1 -0
  44. package/dist/server/config.d.ts +20 -0
  45. package/dist/server/config.d.ts.map +1 -0
  46. package/dist/server/config.js +80 -0
  47. package/dist/server/config.js.map +1 -0
  48. package/dist/server/control/client.d.ts +24 -0
  49. package/dist/server/control/client.d.ts.map +1 -0
  50. package/dist/server/control/client.js +115 -0
  51. package/dist/server/control/client.js.map +1 -0
  52. package/dist/server/control/control-api.d.ts +39 -0
  53. package/dist/server/control/control-api.d.ts.map +1 -0
  54. package/dist/server/control/control-api.js +291 -0
  55. package/dist/server/control/control-api.js.map +1 -0
  56. package/dist/server/control/control-service.d.ts +713 -0
  57. package/dist/server/control/control-service.d.ts.map +1 -0
  58. package/dist/server/control/control-service.js +693 -0
  59. package/dist/server/control/control-service.js.map +1 -0
  60. package/dist/server/control/openapi.d.ts +2 -0
  61. package/dist/server/control/openapi.d.ts.map +1 -0
  62. package/dist/server/control/openapi.js +370 -0
  63. package/dist/server/control/openapi.js.map +1 -0
  64. package/dist/server/data-plane/data-plane.d.ts +20 -0
  65. package/dist/server/data-plane/data-plane.d.ts.map +1 -0
  66. package/dist/server/data-plane/data-plane.js +335 -0
  67. package/dist/server/data-plane/data-plane.js.map +1 -0
  68. package/dist/server/data-plane/gateway-server.d.ts +13 -0
  69. package/dist/server/data-plane/gateway-server.d.ts.map +1 -0
  70. package/dist/server/data-plane/gateway-server.js +796 -0
  71. package/dist/server/data-plane/gateway-server.js.map +1 -0
  72. package/dist/server/data-plane/legacy-session.d.ts +18 -0
  73. package/dist/server/data-plane/legacy-session.d.ts.map +1 -0
  74. package/dist/server/data-plane/legacy-session.js +137 -0
  75. package/dist/server/data-plane/legacy-session.js.map +1 -0
  76. package/dist/server/data-plane/projection.d.ts +18 -0
  77. package/dist/server/data-plane/projection.d.ts.map +1 -0
  78. package/dist/server/data-plane/projection.js +44 -0
  79. package/dist/server/data-plane/projection.js.map +1 -0
  80. package/dist/server/data-plane/registry.d.ts +31 -0
  81. package/dist/server/data-plane/registry.d.ts.map +1 -0
  82. package/dist/server/data-plane/registry.js +129 -0
  83. package/dist/server/data-plane/registry.js.map +1 -0
  84. package/dist/server/data-plane/task-extension.d.ts +7 -0
  85. package/dist/server/data-plane/task-extension.d.ts.map +1 -0
  86. package/dist/server/data-plane/task-extension.js +33 -0
  87. package/dist/server/data-plane/task-extension.js.map +1 -0
  88. package/dist/server/data-plane/virtualization.d.ts +35 -0
  89. package/dist/server/data-plane/virtualization.d.ts.map +1 -0
  90. package/dist/server/data-plane/virtualization.js +228 -0
  91. package/dist/server/data-plane/virtualization.js.map +1 -0
  92. package/dist/server/domain/errors.d.ts +9 -0
  93. package/dist/server/domain/errors.d.ts.map +1 -0
  94. package/dist/server/domain/errors.js +19 -0
  95. package/dist/server/domain/errors.js.map +1 -0
  96. package/dist/server/domain/models.d.ts +720 -0
  97. package/dist/server/domain/models.d.ts.map +1 -0
  98. package/dist/server/domain/models.js +327 -0
  99. package/dist/server/domain/models.js.map +1 -0
  100. package/dist/server/main.d.ts +2 -0
  101. package/dist/server/main.d.ts.map +1 -0
  102. package/dist/server/main.js +37 -0
  103. package/dist/server/main.js.map +1 -0
  104. package/dist/server/manage/management-mcp.d.ts +27 -0
  105. package/dist/server/manage/management-mcp.d.ts.map +1 -0
  106. package/dist/server/manage/management-mcp.js +431 -0
  107. package/dist/server/manage/management-mcp.js.map +1 -0
  108. package/dist/server/market/catalog.d.ts +111 -0
  109. package/dist/server/market/catalog.d.ts.map +1 -0
  110. package/dist/server/market/catalog.js +784 -0
  111. package/dist/server/market/catalog.js.map +1 -0
  112. package/dist/server/market/installers.d.ts +64 -0
  113. package/dist/server/market/installers.d.ts.map +1 -0
  114. package/dist/server/market/installers.js +181 -0
  115. package/dist/server/market/installers.js.map +1 -0
  116. package/dist/server/market/market-service.d.ts +146 -0
  117. package/dist/server/market/market-service.d.ts.map +1 -0
  118. package/dist/server/market/market-service.js +930 -0
  119. package/dist/server/market/market-service.js.map +1 -0
  120. package/dist/server/observability/call-recorder.d.ts +22 -0
  121. package/dist/server/observability/call-recorder.d.ts.map +1 -0
  122. package/dist/server/observability/call-recorder.js +99 -0
  123. package/dist/server/observability/call-recorder.js.map +1 -0
  124. package/dist/server/observability/logger.d.ts +16 -0
  125. package/dist/server/observability/logger.d.ts.map +1 -0
  126. package/dist/server/observability/logger.js +25 -0
  127. package/dist/server/observability/logger.js.map +1 -0
  128. package/dist/server/security/api-keys.d.ts +15 -0
  129. package/dist/server/security/api-keys.d.ts.map +1 -0
  130. package/dist/server/security/api-keys.js +35 -0
  131. package/dist/server/security/api-keys.js.map +1 -0
  132. package/dist/server/security/auth-service.d.ts +26 -0
  133. package/dist/server/security/auth-service.d.ts.map +1 -0
  134. package/dist/server/security/auth-service.js +76 -0
  135. package/dist/server/security/auth-service.js.map +1 -0
  136. package/dist/server/security/control-session.d.ts +9 -0
  137. package/dist/server/security/control-session.d.ts.map +1 -0
  138. package/dist/server/security/control-session.js +51 -0
  139. package/dist/server/security/control-session.js.map +1 -0
  140. package/dist/server/security/credential-materializer.d.ts +20 -0
  141. package/dist/server/security/credential-materializer.d.ts.map +1 -0
  142. package/dist/server/security/credential-materializer.js +82 -0
  143. package/dist/server/security/credential-materializer.js.map +1 -0
  144. package/dist/server/security/cursor-codec.d.ts +13 -0
  145. package/dist/server/security/cursor-codec.d.ts.map +1 -0
  146. package/dist/server/security/cursor-codec.js +43 -0
  147. package/dist/server/security/cursor-codec.js.map +1 -0
  148. package/dist/server/security/oauth-routes.d.ts +21 -0
  149. package/dist/server/security/oauth-routes.d.ts.map +1 -0
  150. package/dist/server/security/oauth-routes.js +100 -0
  151. package/dist/server/security/oauth-routes.js.map +1 -0
  152. package/dist/server/security/oauth-server.d.ts +16 -0
  153. package/dist/server/security/oauth-server.d.ts.map +1 -0
  154. package/dist/server/security/oauth-server.js +544 -0
  155. package/dist/server/security/oauth-server.js.map +1 -0
  156. package/dist/server/security/secret-box.d.ts +7 -0
  157. package/dist/server/security/secret-box.d.ts.map +1 -0
  158. package/dist/server/security/secret-box.js +27 -0
  159. package/dist/server/security/secret-box.js.map +1 -0
  160. package/dist/server/security/secure-action.d.ts +21 -0
  161. package/dist/server/security/secure-action.d.ts.map +1 -0
  162. package/dist/server/security/secure-action.js +69 -0
  163. package/dist/server/security/secure-action.js.map +1 -0
  164. package/dist/server/storage/sqlite-store.d.ts +70 -0
  165. package/dist/server/storage/sqlite-store.d.ts.map +1 -0
  166. package/dist/server/storage/sqlite-store.js +1522 -0
  167. package/dist/server/storage/sqlite-store.js.map +1 -0
  168. package/dist/server/storage/store.d.ts +82 -0
  169. package/dist/server/storage/store.d.ts.map +1 -0
  170. package/dist/server/storage/store.js +2 -0
  171. package/dist/server/storage/store.js.map +1 -0
  172. package/dist/server/upstream/adapter.d.ts +52 -0
  173. package/dist/server/upstream/adapter.d.ts.map +1 -0
  174. package/dist/server/upstream/adapter.js +807 -0
  175. package/dist/server/upstream/adapter.js.map +1 -0
  176. package/dist/server/upstream/credential-resolver.d.ts +14 -0
  177. package/dist/server/upstream/credential-resolver.d.ts.map +1 -0
  178. package/dist/server/upstream/credential-resolver.js +56 -0
  179. package/dist/server/upstream/credential-resolver.js.map +1 -0
  180. package/dist/server/upstream/extension-transport.d.ts +17 -0
  181. package/dist/server/upstream/extension-transport.d.ts.map +1 -0
  182. package/dist/server/upstream/extension-transport.js +207 -0
  183. package/dist/server/upstream/extension-transport.js.map +1 -0
  184. package/dist/server/upstream/manager.d.ts +23 -0
  185. package/dist/server/upstream/manager.d.ts.map +1 -0
  186. package/dist/server/upstream/manager.js +324 -0
  187. package/dist/server/upstream/manager.js.map +1 -0
  188. package/dist/server/upstream/oauth-provider.d.ts +38 -0
  189. package/dist/server/upstream/oauth-provider.d.ts.map +1 -0
  190. package/dist/server/upstream/oauth-provider.js +225 -0
  191. package/dist/server/upstream/oauth-provider.js.map +1 -0
  192. package/dist/server/upstream/oauth-refresh.d.ts +65 -0
  193. package/dist/server/upstream/oauth-refresh.d.ts.map +1 -0
  194. package/dist/server/upstream/oauth-refresh.js +240 -0
  195. package/dist/server/upstream/oauth-refresh.js.map +1 -0
  196. package/dist/server/upstream/oauth-routes.d.ts +17 -0
  197. package/dist/server/upstream/oauth-routes.d.ts.map +1 -0
  198. package/dist/server/upstream/oauth-routes.js +87 -0
  199. package/dist/server/upstream/oauth-routes.js.map +1 -0
  200. package/dist/server/upstream/oauth-service.d.ts +143 -0
  201. package/dist/server/upstream/oauth-service.d.ts.map +1 -0
  202. package/dist/server/upstream/oauth-service.js +217 -0
  203. package/dist/server/upstream/oauth-service.js.map +1 -0
  204. package/dist/server/upstream/stable-json.d.ts +3 -0
  205. package/dist/server/upstream/stable-json.d.ts.map +1 -0
  206. package/dist/server/upstream/stable-json.js +17 -0
  207. package/dist/server/upstream/stable-json.js.map +1 -0
  208. package/package.json +69 -0
  209. package/skills/toolhome/SKILL.md +238 -0
  210. package/skills/toolhome/references/cli-reference.md +242 -0
  211. package/skills/toolhome/references/deployment.md +113 -0
  212. package/skills/toolhome/references/market-guide.md +128 -0
  213. package/skills/toolhome/references/oauth-guide.md +96 -0
  214. package/skills/toolhome/references/troubleshooting.md +133 -0
@@ -0,0 +1,713 @@
1
+ import { type ApiKeyKind } from '../domain/models.js';
2
+ import type { AuthService } from '../security/auth-service.js';
3
+ import type { Store } from '../storage/store.js';
4
+ import type { UpstreamManager } from '../upstream/manager.js';
5
+ import type { UpstreamOAuthService } from '../upstream/oauth-service.js';
6
+ export declare class ControlService {
7
+ #private;
8
+ constructor(store: Store, upstreams: UpstreamManager, auth: AuthService, publicUrl: URL, onServerRemoved: (slug: string) => Promise<void>, onRegistryChanged: () => void, upstreamOAuth: UpstreamOAuthService);
9
+ listServers(): {
10
+ id: string;
11
+ slug: string;
12
+ name: string;
13
+ kind: "home" | "remote";
14
+ transport: {
15
+ type: "streamable-http";
16
+ url: string;
17
+ protocolMode: "auto" | "legacy" | "modern";
18
+ allowSseFallback: boolean;
19
+ headers: Record<string, string>;
20
+ } | {
21
+ type: "stdio";
22
+ command: string;
23
+ args: string[];
24
+ cwd?: string | undefined;
25
+ env: Record<string, string>;
26
+ protocolMode: "auto" | "legacy" | "modern";
27
+ };
28
+ credentialId: string | null;
29
+ enabled: boolean;
30
+ settings: {
31
+ connectTimeoutMs: number;
32
+ requestTimeoutMs: number;
33
+ maxTotalTimeoutMs: number;
34
+ maxConcurrency: number;
35
+ restart: "always" | "never" | "on-failure";
36
+ urlClientId?: boolean | undefined;
37
+ };
38
+ createdAt: string;
39
+ updatedAt: string;
40
+ runtime: {
41
+ serverId: string;
42
+ status: "auth-required" | "connecting" | "degraded" | "disabled" | "ready" | "start-failed" | "unknown" | "unreachable";
43
+ protocolVersion: string | null;
44
+ protocolEra: "legacy" | "modern" | null;
45
+ processId: number | null;
46
+ restartCount: number;
47
+ lastSuccessAt: string | null;
48
+ lastError: string | null;
49
+ updatedAt: string;
50
+ } | null;
51
+ }[];
52
+ createServer(value: unknown): Promise<{
53
+ id: string;
54
+ slug: string;
55
+ name: string;
56
+ kind: "home" | "remote";
57
+ transport: {
58
+ type: "streamable-http";
59
+ url: string;
60
+ protocolMode: "auto" | "legacy" | "modern";
61
+ allowSseFallback: boolean;
62
+ headers: Record<string, string>;
63
+ } | {
64
+ type: "stdio";
65
+ command: string;
66
+ args: string[];
67
+ cwd?: string | undefined;
68
+ env: Record<string, string>;
69
+ protocolMode: "auto" | "legacy" | "modern";
70
+ };
71
+ credentialId: string | null;
72
+ enabled: boolean;
73
+ settings: {
74
+ connectTimeoutMs: number;
75
+ requestTimeoutMs: number;
76
+ maxTotalTimeoutMs: number;
77
+ maxConcurrency: number;
78
+ restart: "always" | "never" | "on-failure";
79
+ urlClientId?: boolean | undefined;
80
+ };
81
+ createdAt: string;
82
+ updatedAt: string;
83
+ }>;
84
+ getServer(id: string): {
85
+ id: string;
86
+ slug: string;
87
+ name: string;
88
+ kind: "home" | "remote";
89
+ transport: {
90
+ type: "streamable-http";
91
+ url: string;
92
+ protocolMode: "auto" | "legacy" | "modern";
93
+ allowSseFallback: boolean;
94
+ headers: Record<string, string>;
95
+ } | {
96
+ type: "stdio";
97
+ command: string;
98
+ args: string[];
99
+ cwd?: string | undefined;
100
+ env: Record<string, string>;
101
+ protocolMode: "auto" | "legacy" | "modern";
102
+ };
103
+ credentialId: string | null;
104
+ enabled: boolean;
105
+ settings: {
106
+ connectTimeoutMs: number;
107
+ requestTimeoutMs: number;
108
+ maxTotalTimeoutMs: number;
109
+ maxConcurrency: number;
110
+ restart: "always" | "never" | "on-failure";
111
+ urlClientId?: boolean | undefined;
112
+ };
113
+ createdAt: string;
114
+ updatedAt: string;
115
+ runtime: {
116
+ serverId: string;
117
+ status: "auth-required" | "connecting" | "degraded" | "disabled" | "ready" | "start-failed" | "unknown" | "unreachable";
118
+ protocolVersion: string | null;
119
+ protocolEra: "legacy" | "modern" | null;
120
+ processId: number | null;
121
+ restartCount: number;
122
+ lastSuccessAt: string | null;
123
+ lastError: string | null;
124
+ updatedAt: string;
125
+ } | null;
126
+ };
127
+ updateServer(id: string, value: unknown): Promise<{
128
+ id: string;
129
+ slug: string;
130
+ name: string;
131
+ kind: "home" | "remote";
132
+ transport: {
133
+ type: "streamable-http";
134
+ url: string;
135
+ protocolMode: "auto" | "legacy" | "modern";
136
+ allowSseFallback: boolean;
137
+ headers: Record<string, string>;
138
+ } | {
139
+ type: "stdio";
140
+ command: string;
141
+ args: string[];
142
+ cwd?: string | undefined;
143
+ env: Record<string, string>;
144
+ protocolMode: "auto" | "legacy" | "modern";
145
+ };
146
+ credentialId: string | null;
147
+ enabled: boolean;
148
+ settings: {
149
+ connectTimeoutMs: number;
150
+ requestTimeoutMs: number;
151
+ maxTotalTimeoutMs: number;
152
+ maxConcurrency: number;
153
+ restart: "always" | "never" | "on-failure";
154
+ urlClientId?: boolean | undefined;
155
+ };
156
+ createdAt: string;
157
+ updatedAt: string;
158
+ }>;
159
+ deleteServer(id: string): Promise<void>;
160
+ enableServer(id: string): Promise<{
161
+ server: {
162
+ id: string;
163
+ slug: string;
164
+ name: string;
165
+ kind: "home" | "remote";
166
+ transport: {
167
+ type: "streamable-http";
168
+ url: string;
169
+ protocolMode: "auto" | "legacy" | "modern";
170
+ allowSseFallback: boolean;
171
+ headers: Record<string, string>;
172
+ } | {
173
+ type: "stdio";
174
+ command: string;
175
+ args: string[];
176
+ cwd?: string | undefined;
177
+ env: Record<string, string>;
178
+ protocolMode: "auto" | "legacy" | "modern";
179
+ };
180
+ credentialId: string | null;
181
+ enabled: boolean;
182
+ settings: {
183
+ connectTimeoutMs: number;
184
+ requestTimeoutMs: number;
185
+ maxTotalTimeoutMs: number;
186
+ maxConcurrency: number;
187
+ restart: "always" | "never" | "on-failure";
188
+ urlClientId?: boolean | undefined;
189
+ };
190
+ createdAt: string;
191
+ updatedAt: string;
192
+ };
193
+ snapshot: import("../domain/models.js").CapabilitySnapshot;
194
+ }>;
195
+ disableServer(id: string): Promise<{
196
+ id: string;
197
+ slug: string;
198
+ name: string;
199
+ kind: "home" | "remote";
200
+ transport: {
201
+ type: "streamable-http";
202
+ url: string;
203
+ protocolMode: "auto" | "legacy" | "modern";
204
+ allowSseFallback: boolean;
205
+ headers: Record<string, string>;
206
+ } | {
207
+ type: "stdio";
208
+ command: string;
209
+ args: string[];
210
+ cwd?: string | undefined;
211
+ env: Record<string, string>;
212
+ protocolMode: "auto" | "legacy" | "modern";
213
+ };
214
+ credentialId: string | null;
215
+ enabled: boolean;
216
+ settings: {
217
+ connectTimeoutMs: number;
218
+ requestTimeoutMs: number;
219
+ maxTotalTimeoutMs: number;
220
+ maxConcurrency: number;
221
+ restart: "always" | "never" | "on-failure";
222
+ urlClientId?: boolean | undefined;
223
+ };
224
+ createdAt: string;
225
+ updatedAt: string;
226
+ }>;
227
+ testServer(id: string): Promise<import("../domain/models.js").CapabilitySnapshot>;
228
+ refreshServer(id: string): Promise<import("../domain/models.js").CapabilitySnapshot>;
229
+ restartServer(id: string): Promise<import("../domain/models.js").CapabilitySnapshot>;
230
+ serverCapabilities(id: string): import("../domain/models.js").CapabilitySnapshot;
231
+ serverStatus(id: string): {
232
+ server: {
233
+ id: string;
234
+ slug: string;
235
+ name: string;
236
+ kind: "home" | "remote";
237
+ transport: {
238
+ type: "streamable-http";
239
+ url: string;
240
+ protocolMode: "auto" | "legacy" | "modern";
241
+ allowSseFallback: boolean;
242
+ headers: Record<string, string>;
243
+ } | {
244
+ type: "stdio";
245
+ command: string;
246
+ args: string[];
247
+ cwd?: string | undefined;
248
+ env: Record<string, string>;
249
+ protocolMode: "auto" | "legacy" | "modern";
250
+ };
251
+ credentialId: string | null;
252
+ enabled: boolean;
253
+ settings: {
254
+ connectTimeoutMs: number;
255
+ requestTimeoutMs: number;
256
+ maxTotalTimeoutMs: number;
257
+ maxConcurrency: number;
258
+ restart: "always" | "never" | "on-failure";
259
+ urlClientId?: boolean | undefined;
260
+ };
261
+ createdAt: string;
262
+ updatedAt: string;
263
+ runtime: {
264
+ serverId: string;
265
+ status: "auth-required" | "connecting" | "degraded" | "disabled" | "ready" | "start-failed" | "unknown" | "unreachable";
266
+ protocolVersion: string | null;
267
+ protocolEra: "legacy" | "modern" | null;
268
+ processId: number | null;
269
+ restartCount: number;
270
+ lastSuccessAt: string | null;
271
+ lastError: string | null;
272
+ updatedAt: string;
273
+ } | null;
274
+ };
275
+ runtime: {
276
+ serverId: string;
277
+ status: "auth-required" | "connecting" | "degraded" | "disabled" | "ready" | "start-failed" | "unknown" | "unreachable";
278
+ protocolVersion: string | null;
279
+ protocolEra: "legacy" | "modern" | null;
280
+ processId: number | null;
281
+ restartCount: number;
282
+ lastSuccessAt: string | null;
283
+ lastError: string | null;
284
+ updatedAt: string;
285
+ } | null;
286
+ snapshot: import("../domain/models.js").CapabilitySnapshot | null;
287
+ };
288
+ serverLogs(id: string, limit?: number): import("../domain/models.js").EventRecord[];
289
+ serverEndpoint(id: string): {
290
+ aggregateUrl: string;
291
+ individualUrl: string;
292
+ authorization: {
293
+ type: string;
294
+ credential: string;
295
+ };
296
+ };
297
+ aggregateEndpoint(): {
298
+ url: string;
299
+ authorization: {
300
+ type: string;
301
+ credential: string;
302
+ };
303
+ };
304
+ listCredentials(): {
305
+ id: string;
306
+ name: string;
307
+ type: "api-key" | "bearer" | "env" | "headers" | "oauth";
308
+ status: "expired" | "invalid" | "pending" | "ready";
309
+ expiresAt: string | null;
310
+ createdAt: string;
311
+ updatedAt: string;
312
+ }[];
313
+ createCredential(value: unknown): {
314
+ id: string;
315
+ name: string;
316
+ type: "api-key" | "bearer" | "env" | "headers" | "oauth";
317
+ status: "expired" | "invalid" | "pending" | "ready";
318
+ expiresAt: string | null;
319
+ createdAt: string;
320
+ updatedAt: string;
321
+ };
322
+ getCredential(id: string): {
323
+ id: string;
324
+ name: string;
325
+ type: "api-key" | "bearer" | "env" | "headers" | "oauth";
326
+ status: "expired" | "invalid" | "pending" | "ready";
327
+ expiresAt: string | null;
328
+ createdAt: string;
329
+ updatedAt: string;
330
+ };
331
+ updateCredential(id: string, value: unknown): Promise<{
332
+ id: string;
333
+ name: string;
334
+ type: "api-key" | "bearer" | "env" | "headers" | "oauth";
335
+ status: "expired" | "invalid" | "pending" | "ready";
336
+ expiresAt: string | null;
337
+ createdAt: string;
338
+ updatedAt: string;
339
+ }>;
340
+ deleteCredential(id: string): Promise<void>;
341
+ testCredential(id: string): Promise<{
342
+ credential: {
343
+ id: string;
344
+ name: string;
345
+ type: "api-key" | "bearer" | "env" | "headers" | "oauth";
346
+ status: "expired" | "invalid" | "pending" | "ready";
347
+ expiresAt: string | null;
348
+ createdAt: string;
349
+ updatedAt: string;
350
+ };
351
+ valid: boolean;
352
+ requiresAuthorization: boolean;
353
+ verifiedAgainstUpstream: boolean;
354
+ servers: ({
355
+ id: string;
356
+ slug: string;
357
+ ok: boolean;
358
+ } | {
359
+ id: string;
360
+ slug: string;
361
+ ok: boolean;
362
+ error: string;
363
+ })[];
364
+ }>;
365
+ authorizeCredential(id: string, value: unknown): Promise<{
366
+ status: string;
367
+ credential: {
368
+ id: string;
369
+ name: string;
370
+ type: "api-key" | "bearer" | "env" | "headers" | "oauth";
371
+ status: "expired" | "invalid" | "pending" | "ready";
372
+ expiresAt: string | null;
373
+ createdAt: string;
374
+ updatedAt: string;
375
+ } | null;
376
+ serverId: string;
377
+ connection: {
378
+ refreshed: boolean;
379
+ reason: string;
380
+ } | {
381
+ reason?: undefined;
382
+ refreshed: boolean;
383
+ };
384
+ authorizationUrl?: undefined;
385
+ callbackUrl?: undefined;
386
+ } | {
387
+ connection?: undefined;
388
+ status: string;
389
+ credential: {
390
+ id: string;
391
+ name: string;
392
+ type: "api-key" | "bearer" | "env" | "headers" | "oauth";
393
+ status: "expired" | "invalid" | "pending" | "ready";
394
+ expiresAt: string | null;
395
+ createdAt: string;
396
+ updatedAt: string;
397
+ } | null;
398
+ serverId: string;
399
+ authorizationUrl: string;
400
+ callbackUrl: string;
401
+ }>;
402
+ revokeCredential(id: string): Promise<{
403
+ revoked: boolean;
404
+ remoteRevocationSupported: boolean;
405
+ remoteRevoked: boolean;
406
+ attempts: {
407
+ tokenType: 'refresh_token' | 'access_token';
408
+ ok: boolean;
409
+ status?: number;
410
+ }[];
411
+ credential: {
412
+ id: string;
413
+ name: string;
414
+ type: "api-key" | "bearer" | "env" | "headers" | "oauth";
415
+ status: "expired" | "invalid" | "pending" | "ready";
416
+ expiresAt: string | null;
417
+ createdAt: string;
418
+ updatedAt: string;
419
+ } | null;
420
+ }>;
421
+ listKeys(kind: ApiKeyKind): {
422
+ id: string;
423
+ kind: "access" | "control";
424
+ name: string;
425
+ prefix: string;
426
+ scope: "admin" | "agent" | null;
427
+ createdAt: string;
428
+ lastUsedAt: string | null;
429
+ revokedAt: string | null;
430
+ }[];
431
+ createKey(kind: ApiKeyKind, name: string, scope?: 'admin' | 'agent'): import("../security/auth-service.js").IssuedApiKey;
432
+ revokeKey(kind: ApiKeyKind, id: string): void;
433
+ overview(): {
434
+ servers: {
435
+ total: number;
436
+ enabled: number;
437
+ remote: number;
438
+ home: number;
439
+ ready: number;
440
+ unhealthy: number;
441
+ };
442
+ clis: {
443
+ total: number;
444
+ enabled: number;
445
+ };
446
+ credentials: number;
447
+ accessKeys: number;
448
+ controlKeys: number;
449
+ ok: boolean;
450
+ endpoints: {
451
+ aggregate: string;
452
+ individual: {
453
+ [k: string]: string;
454
+ };
455
+ };
456
+ };
457
+ diagnostics(): {
458
+ ok: boolean;
459
+ database: string;
460
+ servers: {
461
+ id: string;
462
+ slug: string;
463
+ enabled: boolean;
464
+ status: "auth-required" | "connecting" | "degraded" | "disabled" | "ready" | "start-failed" | "unknown" | "unreachable";
465
+ hasSnapshot: boolean;
466
+ }[];
467
+ clis: {
468
+ id: string;
469
+ slug: string;
470
+ enabled: boolean;
471
+ status: string;
472
+ }[];
473
+ };
474
+ exportConfig(includeSecrets?: boolean): {
475
+ version: number;
476
+ secretsIncluded: boolean;
477
+ exportedAt: string;
478
+ credentials: {
479
+ ref: string;
480
+ name: string;
481
+ type: "api-key" | "bearer" | "env" | "headers" | "oauth";
482
+ payload?: {
483
+ type: "bearer";
484
+ token: string;
485
+ } | {
486
+ type: "api-key";
487
+ headerName: string;
488
+ value: string;
489
+ } | {
490
+ type: "headers";
491
+ headers: Record<string, string>;
492
+ } | {
493
+ type: "env";
494
+ variables: Record<string, string>;
495
+ } | {
496
+ type: "oauth";
497
+ accessToken?: string | undefined;
498
+ refreshToken?: string | undefined;
499
+ idToken?: string | undefined;
500
+ tokenType: string;
501
+ expiresAt?: string | undefined;
502
+ expiresIn?: number | undefined;
503
+ clientId?: string | undefined;
504
+ clientSecret?: string | undefined;
505
+ scope?: string | undefined;
506
+ issuer?: string | undefined;
507
+ resourceUrl?: string | undefined;
508
+ authorizationServerUrl?: string | undefined;
509
+ authorizationUrl?: string | undefined;
510
+ pendingExpiresAt?: string | undefined;
511
+ state?: string | undefined;
512
+ codeVerifier?: string | undefined;
513
+ clientInformation?: import("@modelcontextprotocol/server").StoredOAuthClientInformation | undefined;
514
+ discoveryState?: import("@modelcontextprotocol/client").OAuthDiscoveryState | undefined;
515
+ } | undefined;
516
+ }[];
517
+ servers: {
518
+ slug: string;
519
+ name: string;
520
+ kind: "home" | "remote";
521
+ transport: {
522
+ type: "streamable-http";
523
+ url: string;
524
+ protocolMode: "auto" | "legacy" | "modern";
525
+ allowSseFallback: boolean;
526
+ headers: Record<string, string>;
527
+ } | {
528
+ type: "stdio";
529
+ command: string;
530
+ args: string[];
531
+ cwd?: string | undefined;
532
+ env: Record<string, string>;
533
+ protocolMode: "auto" | "legacy" | "modern";
534
+ };
535
+ credentialRef: string | null;
536
+ enabled: boolean;
537
+ settings: {
538
+ connectTimeoutMs: number;
539
+ requestTimeoutMs: number;
540
+ maxTotalTimeoutMs: number;
541
+ maxConcurrency: number;
542
+ restart: "always" | "never" | "on-failure";
543
+ urlClientId?: boolean | undefined;
544
+ };
545
+ }[];
546
+ };
547
+ importConfig(value: unknown): {
548
+ credentials: {
549
+ id: string;
550
+ name: string;
551
+ type: "api-key" | "bearer" | "env" | "headers" | "oauth";
552
+ status: "expired" | "invalid" | "pending" | "ready";
553
+ expiresAt: string | null;
554
+ createdAt: string;
555
+ updatedAt: string;
556
+ }[];
557
+ servers: {
558
+ id: string;
559
+ slug: string;
560
+ name: string;
561
+ kind: "home" | "remote";
562
+ transport: {
563
+ type: "streamable-http";
564
+ url: string;
565
+ protocolMode: "auto" | "legacy" | "modern";
566
+ allowSseFallback: boolean;
567
+ headers: Record<string, string>;
568
+ } | {
569
+ type: "stdio";
570
+ command: string;
571
+ args: string[];
572
+ cwd?: string | undefined;
573
+ env: Record<string, string>;
574
+ protocolMode: "auto" | "legacy" | "modern";
575
+ };
576
+ credentialId: string | null;
577
+ enabled: boolean;
578
+ settings: {
579
+ connectTimeoutMs: number;
580
+ requestTimeoutMs: number;
581
+ maxTotalTimeoutMs: number;
582
+ maxConcurrency: number;
583
+ restart: "always" | "never" | "on-failure";
584
+ urlClientId?: boolean | undefined;
585
+ };
586
+ createdAt: string;
587
+ updatedAt: string;
588
+ }[];
589
+ };
590
+ importHarnessConfig(value: unknown, preview?: boolean, mode?: 'create' | 'upsert'): Promise<{
591
+ preview: boolean;
592
+ entries: ({
593
+ name: string;
594
+ slug: string;
595
+ kind: 'remote' | 'home';
596
+ transportSummary: string;
597
+ credential: {
598
+ name: string;
599
+ type: string;
600
+ fields: {
601
+ name: string;
602
+ masked: boolean;
603
+ }[];
604
+ } | null;
605
+ warnings: string[];
606
+ status: string;
607
+ changes: string[];
608
+ } | {
609
+ name: string;
610
+ slug: string;
611
+ kind: 'remote' | 'home';
612
+ transportSummary: string;
613
+ credential: {
614
+ name: string;
615
+ type: string;
616
+ fields: {
617
+ name: string;
618
+ masked: boolean;
619
+ }[];
620
+ } | null;
621
+ warnings: string[];
622
+ status: string;
623
+ changes: string[];
624
+ message: string;
625
+ })[];
626
+ } | {
627
+ preview: boolean;
628
+ entries: ({
629
+ name: string;
630
+ slug: string;
631
+ status: string;
632
+ message: string;
633
+ warnings: string[];
634
+ serverId?: undefined;
635
+ credentialId?: undefined;
636
+ } | {
637
+ message?: undefined;
638
+ name: string;
639
+ slug: string;
640
+ status: string;
641
+ warnings: string[];
642
+ serverId?: undefined;
643
+ credentialId?: undefined;
644
+ } | {
645
+ message?: undefined;
646
+ name: string;
647
+ slug: string;
648
+ status: string;
649
+ serverId: string;
650
+ credentialId: string | null;
651
+ warnings: string[];
652
+ } | {
653
+ name: string;
654
+ slug: string;
655
+ status: string;
656
+ serverId: string;
657
+ changes: string[];
658
+ warnings: string[];
659
+ })[];
660
+ }>;
661
+ getProjection(serverId: string): {
662
+ serverId: string;
663
+ defaultVisibility: "hidden" | "visible";
664
+ overrides: {
665
+ [k: string]: "hidden" | "inherit" | "visible";
666
+ };
667
+ tools: {
668
+ name: string;
669
+ description: string;
670
+ visible: boolean;
671
+ }[];
672
+ };
673
+ setProjection(serverId: string, value: unknown): {
674
+ serverId: string;
675
+ defaultVisibility: "hidden" | "visible";
676
+ overrides: {
677
+ [k: string]: "hidden" | "inherit" | "visible";
678
+ };
679
+ tools: {
680
+ name: string;
681
+ description: string;
682
+ visible: boolean;
683
+ }[];
684
+ };
685
+ listCalls(value: Record<string, unknown>): {
686
+ items: {
687
+ id: string;
688
+ endpointType: "aggregate" | "cli" | "individual" | "management";
689
+ principalKind: "access_key" | "cli" | "control_key" | "oauth_client";
690
+ principalId: string;
691
+ serverId: string | null;
692
+ exposedToolName: string;
693
+ upstreamToolName: string;
694
+ status: "cancelled" | "protocol_error" | "rejected" | "success" | "timeout" | "tool_error";
695
+ errorType: string | null;
696
+ startedAt: string;
697
+ completedAt: string;
698
+ durationMs: number;
699
+ }[];
700
+ total: number;
701
+ };
702
+ callStats(value: Record<string, unknown>): import("../domain/models.js").ToolCallStats;
703
+ callSeries(value: Record<string, unknown>): {
704
+ bucketSeconds: number;
705
+ points: {
706
+ bucket: string;
707
+ total: number;
708
+ success: number;
709
+ error: number;
710
+ }[];
711
+ };
712
+ }
713
+ //# sourceMappingURL=control-service.d.ts.map