@warmio/contracts 2.0.0 → 3.0.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 (55) hide show
  1. package/README.md +3 -3
  2. package/dist/api/endpoints.d.ts +34 -48
  3. package/dist/api/endpoints.d.ts.map +1 -1
  4. package/dist/api/endpoints.js +36 -56
  5. package/dist/api/endpoints.js.map +1 -1
  6. package/dist/generated/base-openapi.d.ts +1 -1
  7. package/dist/generated/base-openapi.d.ts.map +1 -1
  8. package/dist/generated/base-openapi.js +1 -1
  9. package/dist/generated/base-openapi.js.map +1 -1
  10. package/dist/generated/mcp-package-release-metadata.d.ts +7 -0
  11. package/dist/generated/mcp-package-release-metadata.d.ts.map +1 -0
  12. package/dist/generated/mcp-package-release-metadata.js +7 -0
  13. package/dist/generated/mcp-package-release-metadata.js.map +1 -0
  14. package/dist/generated/private-mcp-tool-descriptors.d.ts +0 -38
  15. package/dist/generated/private-mcp-tool-descriptors.d.ts.map +1 -1
  16. package/dist/generated/private-mcp-tool-descriptors.js +0 -46
  17. package/dist/generated/private-mcp-tool-descriptors.js.map +1 -1
  18. package/dist/generated/warm-app-api-manifest.d.ts +1230 -0
  19. package/dist/generated/warm-app-api-manifest.d.ts.map +1 -0
  20. package/dist/generated/warm-app-api-manifest.js +1841 -0
  21. package/dist/generated/warm-app-api-manifest.js.map +1 -0
  22. package/dist/index.d.ts +0 -1
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +0 -1
  25. package/dist/index.js.map +1 -1
  26. package/dist/manifest.d.ts +434 -1185
  27. package/dist/manifest.d.ts.map +1 -1
  28. package/dist/manifest.js +21 -34
  29. package/dist/manifest.js.map +1 -1
  30. package/dist/mcp/distribution.d.ts +221 -71
  31. package/dist/mcp/distribution.d.ts.map +1 -1
  32. package/dist/mcp/distribution.js +41 -47
  33. package/dist/mcp/distribution.js.map +1 -1
  34. package/dist/mcp/tools.d.ts +1 -4
  35. package/dist/mcp/tools.d.ts.map +1 -1
  36. package/dist/mcp/tools.js +0 -20
  37. package/dist/mcp/tools.js.map +1 -1
  38. package/dist/openapi/base.yaml +33 -59
  39. package/dist/openapi/build-openapi.d.ts +1 -0
  40. package/dist/openapi/build-openapi.d.ts.map +1 -1
  41. package/dist/openapi/build-openapi.js +75 -16
  42. package/dist/openapi/build-openapi.js.map +1 -1
  43. package/dist/schemas/index.d.ts +1 -0
  44. package/dist/schemas/index.d.ts.map +1 -1
  45. package/dist/schemas/index.js +1 -0
  46. package/dist/schemas/index.js.map +1 -1
  47. package/dist/schemas/public-api.d.ts +1350 -0
  48. package/dist/schemas/public-api.d.ts.map +1 -0
  49. package/dist/schemas/public-api.js +175 -0
  50. package/dist/schemas/public-api.js.map +1 -0
  51. package/package.json +1 -8
  52. package/dist/public-discovery.d.ts +0 -116
  53. package/dist/public-discovery.d.ts.map +0 -1
  54. package/dist/public-discovery.js +0 -91
  55. package/dist/public-discovery.js.map +0 -1
@@ -1,80 +1,226 @@
1
- export { apiAudienceRegistry, apiAuthSchemes, apiEndpointManifest, apiKeyPrefixesByAudience, apiRateLimits, API_ORIGIN, DEVELOPERS_PATH, DISCOVERY_ORIGIN, OPENAPI_PATH, PUBLIC_DISCOVERY_MCP_PATH, PUBLIC_DOCS_ORIGIN, PUBLIC_LLMS_TXT_PATH, VERIFY_PATH, automationOperationDescriptors, } from './api/index.js';
1
+ export { apiKeyAuthScheme, apiEndpointManifest, API_ORIGIN, DEVELOPERS_PATH, OPENAPI_PATH, VERIFY_PATH, WARM_API_KEY_PREFIX, WARM_API_KEY_RATE_LIMIT_PER_HOUR, automationOperationDescriptors, } from './api/index.js';
2
2
  export { privateMcpToolDescriptors, type PrivateMcpToolDescriptor, } from './generated/private-mcp-tool-descriptors.js';
3
- export { WARM_MCP_CLIENTS, WARM_MCP_CREDENTIALS, WARM_MCP_INSTALL_COMMAND, WARM_MCP_INSTALLER_COMMANDS, WARM_MCP_MANIFEST, WARM_MCP_MINIMUM_NODE_VERSION, WARM_MCP_MODES, WARM_MCP_PACKAGE_NAME, WARM_MCP_PACKAGE_SPEC, WARM_MCP_PROJECT_CONFIGS, WARM_MCP_SERVER_COMMANDS, WARM_MCP_SERVER_CONFIGS, type PrivateMcpMode, type WarmMcpClientId, type WarmMcpConfigPath, } from './mcp/distribution.js';
4
- export { protectedCrawlerPaths } from './generated/protected-crawler-paths.js';
3
+ export { WARM_MCP_CLIENTS, WARM_MCP_CREDENTIALS, WARM_MCP_INSTALL_COMMAND, WARM_MCP_INSTALLER_COMMAND, WARM_MCP_MANIFEST, WARM_MCP_MINIMUM_NODE_VERSION, WARM_MCP_PACKAGE_NAME, WARM_MCP_PACKAGE_SPEC, WARM_MCP_PACKAGE_VERSION, WARM_MCP_PROJECT_CONFIGS, WARM_MCP_SERVER_COMMAND, WARM_MCP_SERVER_CONFIG, type WarmMcpClientId, type WarmMcpClientConfigDialect, type WarmMcpConfigPath, } from './mcp/distribution.js';
5
4
  /** Complete serializable release value used for provenance and downstream drift checks. */
6
- export declare const contractReleaseManifest: {
7
- readonly api: {
8
- readonly audiences: {
9
- readonly automation: {
10
- readonly auth: {
11
- readonly bearer_prefix: 'warm_auto_';
12
- readonly challenge: 'Bearer';
13
- readonly description: 'Automation routes require an automation API key.';
14
- readonly methods: readonly ['Bearer'];
15
- };
16
- readonly expires_in_days: 90;
17
- readonly mcp_mode: 'automation';
18
- readonly rate_limit_per_hour: 500;
19
- readonly scopes: readonly ['financial:read', 'automation:invoke'];
5
+ export declare function createContractReleaseManifest(mcpDistribution?: {
6
+ readonly clients: readonly [{
7
+ readonly id: 'claude-code';
8
+ readonly name: 'Claude Code';
9
+ readonly format: 'json';
10
+ readonly configDialect: 'mcpServers';
11
+ readonly alwaysInclude: true;
12
+ readonly configPaths: {
13
+ readonly darwin: {
14
+ readonly root: 'home';
15
+ readonly segments: readonly ['.claude.json'];
16
+ };
17
+ readonly linux: {
18
+ readonly root: 'home';
19
+ readonly segments: readonly ['.claude.json'];
20
+ };
21
+ readonly win32: {
22
+ readonly root: 'home';
23
+ readonly segments: readonly ['.claude.json'];
20
24
  };
21
- readonly context: {
22
- readonly auth: {
23
- readonly bearer_prefix: 'warm_ctx_';
24
- readonly challenge: 'Bearer';
25
- readonly description: 'Read/export routes accept a Warm API key or signed-in access token.';
26
- readonly methods: readonly ['Bearer'];
27
- };
28
- readonly expires_in_days: null;
29
- readonly mcp_mode: 'context';
30
- readonly rate_limit_per_hour: 200;
31
- readonly scopes: readonly ['financial:read'];
25
+ };
26
+ }, {
27
+ readonly id: 'claude-desktop';
28
+ readonly name: 'Claude Desktop';
29
+ readonly format: 'json';
30
+ readonly configDialect: 'mcpServers';
31
+ readonly configPaths: {
32
+ readonly darwin: {
33
+ readonly root: 'home';
34
+ readonly segments: readonly ['Library', 'Application Support', 'Claude', 'claude_desktop_config.json'];
35
+ };
36
+ readonly linux: {
37
+ readonly root: 'home';
38
+ readonly segments: readonly ['.config', 'claude', 'claude_desktop_config.json'];
39
+ };
40
+ readonly win32: {
41
+ readonly root: 'appData';
42
+ readonly segments: readonly ['Claude', 'claude_desktop_config.json'];
43
+ };
44
+ };
45
+ }, {
46
+ readonly id: 'cursor';
47
+ readonly name: 'Cursor';
48
+ readonly format: 'json';
49
+ readonly configDialect: 'mcpServers';
50
+ readonly configPaths: {
51
+ readonly darwin: {
52
+ readonly root: 'home';
53
+ readonly segments: readonly ['.cursor', 'mcp.json'];
54
+ };
55
+ readonly linux: {
56
+ readonly root: 'home';
57
+ readonly segments: readonly ['.cursor', 'mcp.json'];
58
+ };
59
+ readonly win32: {
60
+ readonly root: 'home';
61
+ readonly segments: readonly ['.cursor', 'mcp.json'];
62
+ };
63
+ };
64
+ }, {
65
+ readonly id: 'windsurf';
66
+ readonly name: 'Windsurf';
67
+ readonly format: 'json';
68
+ readonly configDialect: 'mcpServers';
69
+ readonly configPaths: {
70
+ readonly darwin: {
71
+ readonly root: 'home';
72
+ readonly segments: readonly ['.codeium', 'windsurf', 'mcp_config.json'];
73
+ };
74
+ readonly linux: {
75
+ readonly root: 'home';
76
+ readonly segments: readonly ['.codeium', 'windsurf', 'mcp_config.json'];
77
+ };
78
+ readonly win32: {
79
+ readonly root: 'home';
80
+ readonly segments: readonly ['.codeium', 'windsurf', 'mcp_config.json'];
81
+ };
82
+ };
83
+ }, {
84
+ readonly id: 'opencode';
85
+ readonly name: 'OpenCode';
86
+ readonly format: 'json';
87
+ readonly configDialect: 'openCode';
88
+ readonly configPaths: {
89
+ readonly darwin: {
90
+ readonly root: 'home';
91
+ readonly segments: readonly ['.config', 'opencode', 'opencode.json'];
92
+ };
93
+ readonly linux: {
94
+ readonly root: 'home';
95
+ readonly segments: readonly ['.config', 'opencode', 'opencode.json'];
96
+ };
97
+ readonly win32: {
98
+ readonly root: 'home';
99
+ readonly segments: readonly ['.config', 'opencode', 'opencode.json'];
100
+ };
101
+ };
102
+ }, {
103
+ readonly id: 'codex-cli';
104
+ readonly name: 'Codex CLI';
105
+ readonly format: 'toml';
106
+ readonly configDialect: 'mcpServers';
107
+ readonly configPaths: {
108
+ readonly darwin: {
109
+ readonly root: 'home';
110
+ readonly segments: readonly ['.codex', 'config.toml'];
111
+ };
112
+ readonly linux: {
113
+ readonly root: 'home';
114
+ readonly segments: readonly ['.codex', 'config.toml'];
115
+ };
116
+ readonly win32: {
117
+ readonly root: 'home';
118
+ readonly segments: readonly ['.codex', 'config.toml'];
119
+ };
120
+ };
121
+ }, {
122
+ readonly id: 'antigravity';
123
+ readonly name: 'Antigravity';
124
+ readonly format: 'json';
125
+ readonly configDialect: 'mcpServers';
126
+ readonly configPaths: {
127
+ readonly darwin: {
128
+ readonly root: 'home';
129
+ readonly segments: readonly ['.gemini', 'antigravity', 'mcp_config.json'];
130
+ };
131
+ readonly linux: {
132
+ readonly root: 'home';
133
+ readonly segments: readonly ['.gemini', 'antigravity', 'mcp_config.json'];
134
+ };
135
+ readonly win32: {
136
+ readonly root: 'home';
137
+ readonly segments: readonly ['.gemini', 'antigravity', 'mcp_config.json'];
138
+ };
139
+ };
140
+ }, {
141
+ readonly id: 'gemini-cli';
142
+ readonly name: 'Gemini CLI';
143
+ readonly format: 'json';
144
+ readonly configDialect: 'mcpServers';
145
+ readonly configPaths: {
146
+ readonly darwin: {
147
+ readonly root: 'home';
148
+ readonly segments: readonly ['.gemini', 'settings.json'];
149
+ };
150
+ readonly linux: {
151
+ readonly root: 'home';
152
+ readonly segments: readonly ['.gemini', 'settings.json'];
153
+ };
154
+ readonly win32: {
155
+ readonly root: 'home';
156
+ readonly segments: readonly ['.gemini', 'settings.json'];
32
157
  };
33
158
  };
159
+ }];
160
+ readonly credentials: {
161
+ readonly apiKeyEnv: 'WARM_API_KEY';
162
+ readonly apiKeyFileEnv: 'WARM_API_KEY_FILE';
163
+ readonly defaultFileName: 'api_key';
164
+ };
165
+ readonly installCommand: string;
166
+ readonly installerCommand: `${string} install`;
167
+ readonly minimumNodeVersion: string;
168
+ readonly packageName: string;
169
+ readonly packageSpec: string;
170
+ readonly packageVersion: string;
171
+ readonly projectConfigs: readonly [".mcp.json", ".cursor/mcp.json", ".vscode/mcp.json"];
172
+ readonly serverCommand: `${string} mcp`;
173
+ readonly serverConfig: {
174
+ readonly args: readonly ['-y', string, 'mcp'];
175
+ readonly command: 'npx';
176
+ readonly serverName: 'warm';
177
+ };
178
+ }): {
179
+ readonly api: {
34
180
  readonly endpoints: readonly [{
35
- readonly audience: 'context';
181
+ readonly authorization: 'read_only';
36
182
  readonly method: 'GET';
37
183
  readonly operation_id: 'verifyApiAccess';
38
184
  readonly path: "/api/verify";
39
185
  readonly summary: 'Verify API credentials';
40
186
  }, {
41
- readonly audience: 'context';
187
+ readonly authorization: 'read_only';
42
188
  readonly method: 'GET';
43
189
  readonly operation_id: 'getDatasetExport';
44
190
  readonly path: '/api/export';
45
191
  readonly summary: 'Get a typed dataset export';
46
192
  }, {
47
- readonly audience: 'context';
193
+ readonly authorization: 'read_only';
48
194
  readonly method: 'GET';
49
195
  readonly operation_id: 'getFinancialContext';
50
196
  readonly path: '/api/financial-context';
51
197
  readonly summary: 'Get compact financial context';
52
198
  }, {
53
- readonly audience: 'context';
199
+ readonly authorization: 'read_only';
54
200
  readonly method: 'GET';
55
201
  readonly operation_id: 'getFinancialContextTransactions';
56
202
  readonly path: '/api/financial-context/transactions';
57
203
  readonly summary: 'Get financial-context transactions';
58
204
  }, {
59
- readonly audience: 'context';
205
+ readonly authorization: 'read_only';
60
206
  readonly method: 'GET';
61
207
  readonly operation_id: 'getFinancialContextMeta';
62
208
  readonly path: '/api/financial-context/meta';
63
209
  readonly summary: 'Get financial-context metadata';
64
210
  }, {
65
- readonly audience: 'automation';
211
+ readonly authorization: 'automation';
66
212
  readonly method: 'POST';
67
213
  readonly operation_id: 'searchOperations';
68
214
  readonly path: '/api/automation/operations/search';
69
215
  readonly summary: 'Search supported automation operations';
70
216
  }, {
71
- readonly audience: 'automation';
217
+ readonly authorization: 'automation';
72
218
  readonly method: 'POST';
73
219
  readonly operation_id: 'describeOperation';
74
220
  readonly path: '/api/automation/operations/describe';
75
221
  readonly summary: 'Describe one supported operation';
76
222
  }, {
77
- readonly audience: 'automation';
223
+ readonly authorization: 'automation';
78
224
  readonly method: 'POST';
79
225
  readonly operation_id: 'invokeOperation';
80
226
  readonly path: '/api/automation/operations/invoke';
@@ -82,14 +228,9 @@ export declare const contractReleaseManifest: {
82
228
  }];
83
229
  readonly origins: {
84
230
  readonly api: "https://app.warm.io";
85
- readonly discovery: "https://warm.io";
86
- readonly publicDocs: "https://warm.io";
87
231
  };
88
232
  readonly paths: {
89
- readonly developers: "/developers";
90
- readonly llms: "/llms.txt";
91
233
  readonly openapi: "/openapi.yaml";
92
- readonly publicDiscoveryMcp: "/mcp";
93
234
  readonly verify: "/api/verify";
94
235
  };
95
236
  };
@@ -99,6 +240,7 @@ export declare const contractReleaseManifest: {
99
240
  readonly id: 'claude-code';
100
241
  readonly name: 'Claude Code';
101
242
  readonly format: 'json';
243
+ readonly configDialect: 'mcpServers';
102
244
  readonly alwaysInclude: true;
103
245
  readonly configPaths: {
104
246
  readonly darwin: {
@@ -118,6 +260,7 @@ export declare const contractReleaseManifest: {
118
260
  readonly id: 'claude-desktop';
119
261
  readonly name: 'Claude Desktop';
120
262
  readonly format: 'json';
263
+ readonly configDialect: 'mcpServers';
121
264
  readonly configPaths: {
122
265
  readonly darwin: {
123
266
  readonly root: 'home';
@@ -136,6 +279,7 @@ export declare const contractReleaseManifest: {
136
279
  readonly id: 'cursor';
137
280
  readonly name: 'Cursor';
138
281
  readonly format: 'json';
282
+ readonly configDialect: 'mcpServers';
139
283
  readonly configPaths: {
140
284
  readonly darwin: {
141
285
  readonly root: 'home';
@@ -154,6 +298,7 @@ export declare const contractReleaseManifest: {
154
298
  readonly id: 'windsurf';
155
299
  readonly name: 'Windsurf';
156
300
  readonly format: 'json';
301
+ readonly configDialect: 'mcpServers';
157
302
  readonly configPaths: {
158
303
  readonly darwin: {
159
304
  readonly root: 'home';
@@ -172,6 +317,7 @@ export declare const contractReleaseManifest: {
172
317
  readonly id: 'opencode';
173
318
  readonly name: 'OpenCode';
174
319
  readonly format: 'json';
320
+ readonly configDialect: 'openCode';
175
321
  readonly configPaths: {
176
322
  readonly darwin: {
177
323
  readonly root: 'home';
@@ -190,6 +336,7 @@ export declare const contractReleaseManifest: {
190
336
  readonly id: 'codex-cli';
191
337
  readonly name: 'Codex CLI';
192
338
  readonly format: 'toml';
339
+ readonly configDialect: 'mcpServers';
193
340
  readonly configPaths: {
194
341
  readonly darwin: {
195
342
  readonly root: 'home';
@@ -208,6 +355,7 @@ export declare const contractReleaseManifest: {
208
355
  readonly id: 'antigravity';
209
356
  readonly name: 'Antigravity';
210
357
  readonly format: 'json';
358
+ readonly configDialect: 'mcpServers';
211
359
  readonly configPaths: {
212
360
  readonly darwin: {
213
361
  readonly root: 'home';
@@ -226,6 +374,7 @@ export declare const contractReleaseManifest: {
226
374
  readonly id: 'gemini-cli';
227
375
  readonly name: 'Gemini CLI';
228
376
  readonly format: 'json';
377
+ readonly configDialect: 'mcpServers';
229
378
  readonly configPaths: {
230
379
  readonly darwin: {
231
380
  readonly root: 'home';
@@ -242,1190 +391,290 @@ export declare const contractReleaseManifest: {
242
391
  };
243
392
  }];
244
393
  readonly credentials: {
245
- readonly automation: {
246
- readonly apiKeyEnv: 'WARM_AUTOMATION_API_KEY';
247
- readonly apiKeyFileEnv: 'WARM_AUTOMATION_API_KEY_FILE';
248
- readonly defaultFileName: 'automation_api_key';
249
- };
250
- readonly context: {
251
- readonly apiKeyEnv: 'WARM_CONTEXT_API_KEY';
252
- readonly apiKeyFileEnv: 'WARM_CONTEXT_API_KEY_FILE';
253
- readonly defaultFileName: 'context_api_key';
254
- };
255
- };
256
- readonly installCommand: "npx -y @warmio/mcp@latest";
257
- readonly installerCommands: {
258
- readonly automation: "npx -y @warmio/mcp@latest install --mode automation";
259
- readonly context: "npx -y @warmio/mcp@latest install --mode context";
260
- };
261
- readonly minimumNodeVersion: ">=18";
262
- readonly modes: ["automation" | "context", ...("automation" | "context")[]];
263
- readonly packageName: "@warmio/mcp";
264
- readonly packageSpec: "@warmio/mcp@latest";
394
+ readonly apiKeyEnv: 'WARM_API_KEY';
395
+ readonly apiKeyFileEnv: 'WARM_API_KEY_FILE';
396
+ readonly defaultFileName: 'api_key';
397
+ };
398
+ readonly installCommand: string;
399
+ readonly installerCommand: `${string} install`;
400
+ readonly minimumNodeVersion: string;
401
+ readonly packageName: string;
402
+ readonly packageSpec: string;
403
+ readonly packageVersion: string;
265
404
  readonly projectConfigs: readonly [".mcp.json", ".cursor/mcp.json", ".vscode/mcp.json"];
266
- readonly serverCommands: {
267
- readonly automation: "npx -y @warmio/mcp@latest mcp --mode automation";
268
- readonly context: "npx -y @warmio/mcp@latest mcp --mode context";
269
- };
270
- readonly serverConfigs: {
271
- readonly automation: {
272
- readonly serverName: 'warm-automation';
273
- readonly command: 'npx';
274
- readonly args: readonly ["-y", "@warmio/mcp@latest", "mcp", "--mode", "automation"];
275
- };
276
- readonly context: {
277
- readonly serverName: 'warm';
278
- readonly command: 'npx';
279
- readonly args: readonly ["-y", "@warmio/mcp@latest", "mcp", "--mode", "context"];
280
- };
405
+ readonly serverCommand: `${string} mcp`;
406
+ readonly serverConfig: {
407
+ readonly args: readonly ['-y', string, 'mcp'];
408
+ readonly command: 'npx';
409
+ readonly serverName: 'warm';
281
410
  };
282
411
  };
283
- readonly tools: readonly [{
284
- readonly mode: "context";
285
- readonly name: "get_financial_context";
286
- readonly description: "Read-only compact FinancialContext JSON. Includes status.position, status.accounts, transaction index total/months, recurring, budgets, goals, snapshots, liabilities, holdings, and health. Transaction items are not inline; use get_transactions for items.";
287
- readonly annotations: {
288
- readonly readOnlyHint: true;
289
- readonly destructiveHint: false;
290
- readonly openWorldHint: false;
412
+ readonly tools: {
413
+ annotations: {
414
+ destructiveHint: boolean;
415
+ openWorldHint: boolean;
416
+ readOnlyHint: boolean;
291
417
  };
292
- readonly input_schema: {
293
- readonly type: "object";
294
- readonly properties: {};
295
- readonly additionalProperties: false;
296
- readonly $schema: "https://json-schema.org/draft-07/schema#";
418
+ description: string;
419
+ name: string;
420
+ input_schema: {
421
+ $schema?: string | undefined;
297
422
  };
298
- readonly output_schema: {
299
- readonly type: "object";
300
- readonly properties: {
301
- readonly version: {
302
- readonly type: "string";
303
- readonly enum: readonly ["v1"];
304
- };
305
- readonly updated_at: {
306
- readonly type: "string";
307
- readonly format: "date-time";
308
- };
309
- readonly currency: {
310
- readonly type: "string";
311
- readonly enum: readonly ["USD"];
312
- };
313
- readonly status: {
314
- readonly type: "object";
315
- readonly properties: {
316
- readonly position: {
317
- readonly anyOf: readonly [{
318
- readonly type: "object";
319
- readonly properties: {
320
- readonly date: {
321
- readonly anyOf: readonly [{
322
- readonly type: "string";
323
- readonly pattern: "^\\d{4}-\\d{2}-\\d{2}$";
324
- }, {
325
- readonly type: "null";
326
- }];
327
- };
328
- readonly net_worth: {
329
- readonly anyOf: readonly [{
330
- readonly type: "number";
331
- }, {
332
- readonly type: "null";
333
- }];
334
- };
335
- readonly cash: {
336
- readonly anyOf: readonly [{
337
- readonly type: "number";
338
- }, {
339
- readonly type: "null";
340
- }];
341
- };
342
- readonly debt: {
343
- readonly anyOf: readonly [{
344
- readonly type: "number";
345
- }, {
346
- readonly type: "null";
347
- }];
348
- };
349
- readonly investments: {
350
- readonly anyOf: readonly [{
351
- readonly type: "number";
352
- }, {
353
- readonly type: "null";
354
- }];
355
- };
356
- readonly other_assets: {
357
- readonly anyOf: readonly [{
358
- readonly type: "number";
359
- }, {
360
- readonly type: "null";
361
- }];
362
- };
363
- readonly total_assets: {
364
- readonly anyOf: readonly [{
365
- readonly type: "number";
366
- }, {
367
- readonly type: "null";
368
- }];
369
- };
370
- };
371
- readonly required: readonly ["date", "net_worth", "cash", "debt", "investments", "other_assets", "total_assets"];
372
- readonly additionalProperties: false;
373
- }, {
374
- readonly type: "null";
375
- }];
376
- };
377
- readonly accounts: {
378
- readonly type: "array";
379
- readonly items: {
380
- readonly type: "object";
381
- readonly properties: {
382
- readonly id: {
383
- readonly type: "string";
384
- };
385
- readonly name: {
386
- readonly type: "string";
387
- };
388
- readonly source: {
389
- readonly anyOf: readonly [{
390
- readonly type: "string";
391
- readonly enum: readonly ["plaid", "manual", "csv_import"];
392
- }, {
393
- readonly type: "null";
394
- }];
395
- };
396
- readonly type: {
397
- readonly type: "string";
398
- readonly enum: readonly ["depository", "credit", "loan", "investment", "brokerage", "other"];
399
- };
400
- readonly subtype: {
401
- readonly type: readonly ["string", "null"];
402
- };
403
- readonly group: {
404
- readonly anyOf: readonly [{
405
- readonly type: "string";
406
- readonly enum: readonly ["cash", "debt", "investments"];
407
- }, {
408
- readonly type: "null";
409
- }];
410
- };
411
- readonly institution: {
412
- readonly type: readonly ["string", "null"];
413
- };
414
- readonly mask: {
415
- readonly type: readonly ["string", "null"];
416
- };
417
- readonly balance: {
418
- readonly anyOf: readonly [{
419
- readonly type: "number";
420
- }, {
421
- readonly type: "null";
422
- }];
423
- };
424
- readonly available: {
425
- readonly anyOf: readonly [{
426
- readonly type: "number";
427
- }, {
428
- readonly type: "null";
429
- }];
430
- };
431
- readonly currency: {
432
- readonly type: readonly ["string", "null"];
433
- };
434
- readonly updated_at: {
435
- readonly anyOf: readonly [{
436
- readonly type: "string";
437
- readonly format: "date-time";
438
- }, {
439
- readonly type: "null";
440
- }];
441
- };
442
- };
443
- readonly required: readonly ["id", "name", "source", "type", "subtype", "group", "institution", "mask", "balance", "available", "currency", "updated_at"];
444
- readonly additionalProperties: false;
445
- };
446
- };
447
- };
448
- readonly required: readonly ["position", "accounts"];
449
- readonly additionalProperties: false;
450
- };
451
- readonly transactions: {
452
- readonly type: "object";
453
- readonly properties: {
454
- readonly total: {
455
- readonly type: "integer";
456
- readonly minimum: 0;
457
- };
458
- readonly months: {
459
- readonly type: "array";
460
- readonly items: {
461
- readonly type: "object";
462
- readonly properties: {
463
- readonly month: {
464
- readonly type: "string";
465
- readonly pattern: "^\\d{4}-(0[1-9]|1[0-2])$";
466
- };
467
- readonly count: {
468
- readonly type: "integer";
469
- readonly minimum: 0;
470
- };
471
- };
472
- readonly required: readonly ["month", "count"];
473
- readonly additionalProperties: false;
474
- };
475
- };
476
- };
477
- readonly required: readonly ["total", "months"];
478
- readonly additionalProperties: false;
479
- };
480
- readonly recurring: {
481
- readonly type: "array";
482
- readonly items: {
483
- readonly type: "object";
484
- readonly properties: {
485
- readonly id: {
486
- readonly type: "string";
487
- };
488
- readonly account_id: {
489
- readonly type: readonly ["string", "null"];
490
- };
491
- readonly direction: {
492
- readonly anyOf: readonly [{
493
- readonly type: "string";
494
- readonly enum: readonly ["inflow", "outflow"];
495
- }, {
496
- readonly type: "null";
497
- }];
498
- };
499
- readonly frequency: {
500
- readonly anyOf: readonly [{
501
- readonly type: "string";
502
- readonly enum: readonly ["WEEKLY", "BIWEEKLY", "MONTHLY", "QUARTERLY", "SEMI_ANNUALLY", "ANNUALLY"];
503
- }, {
504
- readonly type: "null";
505
- }];
506
- };
507
- readonly status: {
508
- readonly anyOf: readonly [{
509
- readonly type: "string";
510
- readonly enum: readonly ["active", "inactive", "dismissed"];
511
- }, {
512
- readonly type: "null";
513
- }];
514
- };
515
- readonly merchant: {
516
- readonly type: readonly ["string", "null"];
517
- };
518
- readonly amount: {
519
- readonly anyOf: readonly [{
520
- readonly type: "number";
521
- }, {
522
- readonly type: "null";
523
- }];
524
- };
525
- readonly next_date: {
526
- readonly anyOf: readonly [{
527
- readonly type: "string";
528
- readonly pattern: "^\\d{4}-\\d{2}-\\d{2}$";
529
- }, {
530
- readonly type: "null";
531
- }];
532
- };
533
- };
534
- readonly required: readonly ["id", "account_id", "direction", "frequency", "status", "merchant", "amount", "next_date"];
535
- readonly additionalProperties: false;
536
- };
537
- };
538
- readonly budgets: {
539
- readonly type: "array";
540
- readonly items: {
541
- readonly type: "object";
542
- readonly properties: {
543
- readonly id: {
544
- readonly type: "string";
545
- };
546
- readonly name: {
547
- readonly type: "string";
548
- };
549
- readonly type: {
550
- readonly type: "string";
551
- readonly enum: readonly ["category", "merchant"];
552
- };
553
- readonly period: {
554
- readonly type: "string";
555
- readonly enum: readonly ["weekly", "biweekly", "monthly"];
556
- };
557
- readonly status: {
558
- readonly type: "string";
559
- readonly enum: readonly ["under", "warning", "over"];
560
- };
561
- readonly amount: {
562
- readonly type: "number";
563
- };
564
- readonly spent: {
565
- readonly type: "number";
566
- };
567
- readonly remaining: {
568
- readonly type: "number";
569
- };
570
- readonly used_percent: {
571
- readonly type: "number";
572
- };
573
- };
574
- readonly required: readonly ["id", "name", "type", "period", "status", "amount", "spent", "remaining", "used_percent"];
575
- readonly additionalProperties: false;
576
- };
577
- };
578
- readonly goals: {
579
- readonly type: "array";
580
- readonly items: {
581
- readonly type: "object";
582
- readonly properties: {
583
- readonly id: {
584
- readonly type: "string";
585
- };
586
- readonly name: {
587
- readonly type: "string";
588
- };
589
- readonly category: {
590
- readonly type: "string";
591
- };
592
- readonly status: {
593
- readonly type: "string";
594
- readonly enum: readonly ["not_started", "in_progress", "on_track", "behind", "completed"];
595
- };
596
- readonly target: {
597
- readonly type: "number";
598
- };
599
- readonly current: {
600
- readonly type: "number";
601
- };
602
- readonly progress_percent: {
603
- readonly type: "number";
604
- };
605
- readonly target_date: {
606
- readonly anyOf: readonly [{
607
- readonly type: "string";
608
- readonly pattern: "^\\d{4}-\\d{2}-\\d{2}$";
609
- }, {
610
- readonly type: "null";
611
- }];
612
- };
613
- };
614
- readonly required: readonly ["id", "name", "category", "status", "target", "current", "progress_percent", "target_date"];
615
- readonly additionalProperties: false;
616
- };
617
- };
618
- readonly snapshots: {
619
- readonly type: "array";
620
- readonly items: {
621
- readonly type: "object";
622
- readonly properties: {
623
- readonly date: {
624
- readonly type: "string";
625
- readonly pattern: "^\\d{4}-\\d{2}-\\d{2}$";
626
- };
627
- readonly net_worth: {
628
- readonly anyOf: readonly [{
629
- readonly type: "number";
630
- }, {
631
- readonly type: "null";
632
- }];
633
- };
634
- readonly cash: {
635
- readonly anyOf: readonly [{
636
- readonly type: "number";
637
- }, {
638
- readonly type: "null";
639
- }];
640
- };
641
- readonly debt: {
642
- readonly anyOf: readonly [{
643
- readonly type: "number";
644
- }, {
645
- readonly type: "null";
646
- }];
647
- };
648
- readonly income: {
649
- readonly anyOf: readonly [{
650
- readonly type: "number";
651
- }, {
652
- readonly type: "null";
653
- }];
654
- };
655
- readonly expenses: {
656
- readonly anyOf: readonly [{
657
- readonly type: "number";
658
- }, {
659
- readonly type: "null";
660
- }];
661
- };
662
- readonly cash_flow: {
663
- readonly anyOf: readonly [{
664
- readonly type: "number";
665
- }, {
666
- readonly type: "null";
667
- }];
668
- };
669
- readonly savings_rate: {
670
- readonly anyOf: readonly [{
671
- readonly type: "number";
672
- }, {
673
- readonly type: "null";
674
- }];
675
- };
676
- readonly investments: {
677
- readonly anyOf: readonly [{
678
- readonly type: "number";
679
- }, {
680
- readonly type: "null";
681
- }];
682
- };
683
- readonly assets: {
684
- readonly anyOf: readonly [{
685
- readonly type: "number";
686
- }, {
687
- readonly type: "null";
688
- }];
689
- };
690
- readonly health_score: {
691
- readonly anyOf: readonly [{
692
- readonly type: "number";
693
- }, {
694
- readonly type: "null";
695
- }];
696
- };
697
- };
698
- readonly required: readonly ["date", "net_worth", "cash", "debt", "income", "expenses", "cash_flow", "savings_rate", "investments", "assets", "health_score"];
699
- readonly additionalProperties: false;
700
- };
701
- };
702
- readonly liabilities: {
703
- readonly type: "array";
704
- readonly items: {
705
- readonly type: "object";
706
- readonly properties: {
707
- readonly account_id: {
708
- readonly type: readonly ["string", "null"];
709
- };
710
- readonly type: {
711
- readonly anyOf: readonly [{
712
- readonly type: "string";
713
- readonly enum: readonly ["credit", "student", "mortgage", "other"];
714
- }, {
715
- readonly type: "null";
716
- }];
717
- };
718
- readonly balance: {
719
- readonly anyOf: readonly [{
720
- readonly type: "number";
721
- }, {
722
- readonly type: "null";
723
- }];
724
- };
725
- readonly minimum_payment: {
726
- readonly anyOf: readonly [{
727
- readonly type: "number";
728
- }, {
729
- readonly type: "null";
730
- }];
731
- };
732
- readonly due_date: {
733
- readonly anyOf: readonly [{
734
- readonly type: "string";
735
- readonly pattern: "^\\d{4}-\\d{2}-\\d{2}$";
736
- }, {
737
- readonly type: "null";
738
- }];
739
- };
740
- readonly interest_rate: {
741
- readonly anyOf: readonly [{
742
- readonly type: "number";
743
- }, {
744
- readonly type: "null";
745
- }];
746
- };
747
- readonly rate_type: {
748
- readonly anyOf: readonly [{
749
- readonly type: "string";
750
- readonly enum: readonly ["fixed", "variable"];
751
- }, {
752
- readonly type: "null";
753
- }];
754
- };
755
- readonly overdue: {
756
- readonly type: readonly ["boolean", "null"];
757
- };
758
- };
759
- readonly required: readonly ["account_id", "type", "balance", "minimum_payment", "due_date", "interest_rate", "rate_type", "overdue"];
760
- readonly additionalProperties: false;
761
- };
762
- };
763
- readonly holdings: {
764
- readonly type: "array";
765
- readonly items: {
766
- readonly type: "object";
767
- readonly properties: {
768
- readonly account_id: {
769
- readonly type: readonly ["string", "null"];
770
- };
771
- readonly symbol: {
772
- readonly type: readonly ["string", "null"];
773
- };
774
- readonly name: {
775
- readonly type: readonly ["string", "null"];
776
- };
777
- readonly type: {
778
- readonly anyOf: readonly [{
779
- readonly type: "string";
780
- readonly enum: readonly ["cash", "derivative", "equity", "etf", "fixed_income", "mutual_fund", "other"];
781
- }, {
782
- readonly type: "null";
783
- }];
784
- };
785
- readonly quantity: {
786
- readonly anyOf: readonly [{
787
- readonly type: "number";
788
- }, {
789
- readonly type: "null";
790
- }];
791
- };
792
- readonly value: {
793
- readonly anyOf: readonly [{
794
- readonly type: "number";
795
- }, {
796
- readonly type: "null";
797
- }];
798
- };
799
- readonly cost_basis: {
800
- readonly anyOf: readonly [{
801
- readonly type: "number";
802
- }, {
803
- readonly type: "null";
804
- }];
805
- };
806
- };
807
- readonly required: readonly ["account_id", "symbol", "name", "type", "quantity", "value", "cost_basis"];
808
- readonly additionalProperties: false;
809
- };
810
- };
811
- readonly health: {
812
- readonly anyOf: readonly [{
813
- readonly type: "object";
814
- readonly properties: {
815
- readonly score: {
816
- readonly type: "number";
817
- };
818
- readonly label: {
819
- readonly type: "string";
820
- readonly enum: readonly ["Needs Attention", "Good", "Strong"];
821
- };
822
- readonly level: {
823
- readonly type: "string";
824
- readonly enum: readonly ["strong", "good", "fair", "poor", "critical"];
825
- };
826
- readonly summary: {
827
- readonly type: "string";
828
- };
829
- readonly data_completeness: {
830
- readonly type: "number";
831
- };
832
- readonly pillars: {
833
- readonly anyOf: readonly [{
834
- readonly type: "object";
835
- readonly properties: {
836
- readonly spend: {
837
- readonly anyOf: readonly [{
838
- readonly type: "number";
839
- }, {
840
- readonly type: "null";
841
- }];
842
- };
843
- readonly save: {
844
- readonly anyOf: readonly [{
845
- readonly type: "number";
846
- }, {
847
- readonly type: "null";
848
- }];
849
- };
850
- readonly borrow: {
851
- readonly anyOf: readonly [{
852
- readonly type: "number";
853
- }, {
854
- readonly type: "null";
855
- }];
856
- };
857
- readonly build: {
858
- readonly anyOf: readonly [{
859
- readonly type: "number";
860
- }, {
861
- readonly type: "null";
862
- }];
863
- };
864
- };
865
- readonly required: readonly ["spend", "save", "borrow", "build"];
866
- readonly additionalProperties: false;
867
- }, {
868
- readonly type: "null";
869
- }];
870
- };
871
- };
872
- readonly required: readonly ["score", "label", "level", "summary", "data_completeness", "pillars"];
873
- readonly additionalProperties: false;
874
- }, {
875
- readonly type: "null";
876
- }];
877
- };
878
- };
879
- readonly required: readonly ["version", "updated_at", "currency", "status", "transactions", "recurring", "budgets", "goals", "snapshots", "liabilities", "holdings", "health"];
880
- readonly additionalProperties: false;
881
- readonly $schema: "https://json-schema.org/draft-07/schema#";
423
+ output_schema: {
424
+ $schema?: string | undefined;
882
425
  };
426
+ }[];
427
+ };
428
+ };
429
+ export declare const contractReleaseManifest: {
430
+ readonly api: {
431
+ readonly endpoints: readonly [{
432
+ readonly authorization: 'read_only';
433
+ readonly method: 'GET';
434
+ readonly operation_id: 'verifyApiAccess';
435
+ readonly path: "/api/verify";
436
+ readonly summary: 'Verify API credentials';
883
437
  }, {
884
- readonly mode: "context";
885
- readonly name: "get_transactions";
886
- readonly description: "Read-only transactions from the FinancialContext artifact. Pass `period: \"latest\"` for the fixed 10-day latest window or `period: \"YYYY-MM\"` for a month page. The latest window is not caller-configurable. Months outside the covered range return an error.";
887
- readonly annotations: {
888
- readonly readOnlyHint: true;
889
- readonly destructiveHint: false;
890
- readonly openWorldHint: false;
891
- };
892
- readonly input_schema: {
893
- readonly type: "object";
894
- readonly properties: {
895
- readonly period: {
896
- readonly type: "string";
897
- readonly pattern: "^(?:latest|\\d{4}-\\d{2})$";
898
- readonly description: "Use \"latest\" for the fixed 10-day window or a YYYY-MM month. Months outside the covered range return an error.";
899
- };
900
- };
901
- readonly required: readonly ["period"];
902
- readonly additionalProperties: false;
903
- readonly $schema: "https://json-schema.org/draft-07/schema#";
904
- };
905
- readonly output_schema: {
906
- readonly anyOf: readonly [{
907
- readonly type: "object";
908
- readonly properties: {
909
- readonly month: {
910
- readonly type: "string";
911
- readonly pattern: "^\\d{4}-(0[1-9]|1[0-2])$";
912
- };
913
- readonly start_date: {
914
- readonly type: "string";
915
- readonly pattern: "^\\d{4}-\\d{2}-\\d{2}$";
916
- };
917
- readonly end_date: {
918
- readonly type: "string";
919
- readonly pattern: "^\\d{4}-\\d{2}-\\d{2}$";
920
- };
921
- readonly count: {
922
- readonly type: "integer";
923
- readonly minimum: 0;
924
- };
925
- readonly items: {
926
- readonly type: "array";
927
- readonly items: {
928
- readonly type: "object";
929
- readonly properties: {
930
- readonly id: {
931
- readonly type: "string";
932
- };
933
- readonly account_id: {
934
- readonly type: readonly ["string", "null"];
935
- };
936
- readonly date: {
937
- readonly anyOf: readonly [{
938
- readonly type: "string";
939
- readonly pattern: "^\\d{4}-\\d{2}-\\d{2}$";
940
- }, {
941
- readonly type: "null";
942
- }];
943
- };
944
- readonly amount: {
945
- readonly type: "number";
946
- };
947
- readonly merchant: {
948
- readonly type: readonly ["string", "null"];
949
- };
950
- readonly name: {
951
- readonly type: readonly ["string", "null"];
952
- };
953
- readonly category: {
954
- readonly type: readonly ["string", "null"];
955
- };
956
- readonly subcategory: {
957
- readonly type: readonly ["string", "null"];
958
- };
959
- readonly pending: {
960
- readonly type: readonly ["boolean", "null"];
961
- };
962
- readonly currency: {
963
- readonly type: readonly ["string", "null"];
964
- };
965
- };
966
- readonly required: readonly ["id", "account_id", "date", "amount", "merchant", "name", "category", "subcategory", "pending", "currency"];
967
- readonly additionalProperties: false;
968
- };
969
- };
970
- };
971
- readonly required: readonly ["month", "start_date", "end_date", "count", "items"];
972
- readonly additionalProperties: false;
973
- }, {
974
- readonly type: "object";
975
- readonly properties: {
976
- readonly since: {
977
- readonly type: "string";
978
- readonly pattern: "^\\d{4}-\\d{2}-\\d{2}$";
979
- };
980
- readonly window_days: {
981
- readonly type: "number";
982
- readonly const: 10;
983
- };
984
- readonly count: {
985
- readonly type: "integer";
986
- readonly minimum: 0;
987
- };
988
- readonly items: {
989
- readonly type: "array";
990
- readonly items: {
991
- readonly type: "object";
992
- readonly properties: {
993
- readonly id: {
994
- readonly type: "string";
995
- };
996
- readonly account_id: {
997
- readonly type: readonly ["string", "null"];
998
- };
999
- readonly date: {
1000
- readonly anyOf: readonly [{
1001
- readonly type: "string";
1002
- readonly pattern: "^\\d{4}-\\d{2}-\\d{2}$";
1003
- }, {
1004
- readonly type: "null";
1005
- }];
1006
- };
1007
- readonly amount: {
1008
- readonly type: "number";
1009
- };
1010
- readonly merchant: {
1011
- readonly type: readonly ["string", "null"];
1012
- };
1013
- readonly name: {
1014
- readonly type: readonly ["string", "null"];
1015
- };
1016
- readonly category: {
1017
- readonly type: readonly ["string", "null"];
1018
- };
1019
- readonly subcategory: {
1020
- readonly type: readonly ["string", "null"];
1021
- };
1022
- readonly pending: {
1023
- readonly type: readonly ["boolean", "null"];
1024
- };
1025
- readonly currency: {
1026
- readonly type: readonly ["string", "null"];
1027
- };
1028
- };
1029
- readonly required: readonly ["id", "account_id", "date", "amount", "merchant", "name", "category", "subcategory", "pending", "currency"];
1030
- readonly additionalProperties: false;
1031
- };
1032
- };
1033
- };
1034
- readonly required: readonly ["since", "window_days", "count", "items"];
1035
- readonly additionalProperties: false;
1036
- }];
1037
- readonly $schema: "https://json-schema.org/draft-07/schema#";
1038
- };
438
+ readonly authorization: 'read_only';
439
+ readonly method: 'GET';
440
+ readonly operation_id: 'getDatasetExport';
441
+ readonly path: '/api/export';
442
+ readonly summary: 'Get a typed dataset export';
1039
443
  }, {
1040
- readonly mode: "context";
1041
- readonly name: "verify_key";
1042
- readonly description: "Read-only API key validation for the configured Warm account.";
1043
- readonly annotations: {
1044
- readonly readOnlyHint: true;
1045
- readonly destructiveHint: false;
1046
- readonly openWorldHint: false;
1047
- };
1048
- readonly input_schema: {
1049
- readonly type: "object";
1050
- readonly properties: {};
1051
- readonly additionalProperties: false;
1052
- readonly $schema: "https://json-schema.org/draft-07/schema#";
1053
- };
1054
- readonly output_schema: {
1055
- readonly type: "object";
1056
- readonly properties: {
1057
- readonly audience: {
1058
- readonly type: "string";
1059
- readonly enum: readonly ["automation", "context", "oauth"];
444
+ readonly authorization: 'read_only';
445
+ readonly method: 'GET';
446
+ readonly operation_id: 'getFinancialContext';
447
+ readonly path: '/api/financial-context';
448
+ readonly summary: 'Get compact financial context';
449
+ }, {
450
+ readonly authorization: 'read_only';
451
+ readonly method: 'GET';
452
+ readonly operation_id: 'getFinancialContextTransactions';
453
+ readonly path: '/api/financial-context/transactions';
454
+ readonly summary: 'Get financial-context transactions';
455
+ }, {
456
+ readonly authorization: 'read_only';
457
+ readonly method: 'GET';
458
+ readonly operation_id: 'getFinancialContextMeta';
459
+ readonly path: '/api/financial-context/meta';
460
+ readonly summary: 'Get financial-context metadata';
461
+ }, {
462
+ readonly authorization: 'automation';
463
+ readonly method: 'POST';
464
+ readonly operation_id: 'searchOperations';
465
+ readonly path: '/api/automation/operations/search';
466
+ readonly summary: 'Search supported automation operations';
467
+ }, {
468
+ readonly authorization: 'automation';
469
+ readonly method: 'POST';
470
+ readonly operation_id: 'describeOperation';
471
+ readonly path: '/api/automation/operations/describe';
472
+ readonly summary: 'Describe one supported operation';
473
+ }, {
474
+ readonly authorization: 'automation';
475
+ readonly method: 'POST';
476
+ readonly operation_id: 'invokeOperation';
477
+ readonly path: '/api/automation/operations/invoke';
478
+ readonly summary: 'Invoke one supported operation';
479
+ }];
480
+ readonly origins: {
481
+ readonly api: "https://app.warm.io";
482
+ };
483
+ readonly paths: {
484
+ readonly openapi: "/openapi.yaml";
485
+ readonly verify: "/api/verify";
486
+ };
487
+ };
488
+ readonly mcp: {
489
+ readonly distribution: {
490
+ readonly clients: readonly [{
491
+ readonly id: 'claude-code';
492
+ readonly name: 'Claude Code';
493
+ readonly format: 'json';
494
+ readonly configDialect: 'mcpServers';
495
+ readonly alwaysInclude: true;
496
+ readonly configPaths: {
497
+ readonly darwin: {
498
+ readonly root: 'home';
499
+ readonly segments: readonly ['.claude.json'];
1060
500
  };
1061
- readonly status: {
1062
- readonly type: "string";
501
+ readonly linux: {
502
+ readonly root: 'home';
503
+ readonly segments: readonly ['.claude.json'];
1063
504
  };
1064
- readonly valid: {
1065
- readonly type: "boolean";
505
+ readonly win32: {
506
+ readonly root: 'home';
507
+ readonly segments: readonly ['.claude.json'];
1066
508
  };
1067
509
  };
1068
- readonly required: readonly ["status", "valid"];
1069
- readonly additionalProperties: false;
1070
- readonly $schema: "https://json-schema.org/draft-07/schema#";
1071
- };
1072
- }, {
1073
- readonly mode: "automation";
1074
- readonly name: "search_operations";
1075
- readonly description: "Search the supported Warm operation catalog. Use this first to find the smallest matching operation.";
1076
- readonly annotations: {
1077
- readonly readOnlyHint: true;
1078
- readonly destructiveHint: false;
1079
- readonly openWorldHint: false;
1080
- };
1081
- readonly input_schema: {
1082
- readonly type: "object";
1083
- readonly properties: {
1084
- readonly query: {
1085
- readonly type: "string";
1086
- readonly maxLength: 200;
1087
- readonly description: "Words describing the action or data you need.";
510
+ }, {
511
+ readonly id: 'claude-desktop';
512
+ readonly name: 'Claude Desktop';
513
+ readonly format: 'json';
514
+ readonly configDialect: 'mcpServers';
515
+ readonly configPaths: {
516
+ readonly darwin: {
517
+ readonly root: 'home';
518
+ readonly segments: readonly ['Library', 'Application Support', 'Claude', 'claude_desktop_config.json'];
1088
519
  };
1089
- };
1090
- readonly additionalProperties: false;
1091
- readonly $schema: "https://json-schema.org/draft-07/schema#";
1092
- };
1093
- readonly output_schema: {
1094
- readonly type: "object";
1095
- readonly properties: {
1096
- readonly operations: {
1097
- readonly type: "array";
1098
- readonly items: {
1099
- readonly type: "object";
1100
- readonly properties: {
1101
- readonly confirmation_required: {
1102
- readonly type: "boolean";
1103
- };
1104
- readonly description: {
1105
- readonly type: "string";
1106
- };
1107
- readonly method: {
1108
- readonly type: "string";
1109
- readonly enum: readonly ["DELETE", "GET", "PATCH", "POST", "PUT"];
1110
- };
1111
- readonly operation_id: {
1112
- readonly type: "string";
1113
- };
1114
- readonly path: {
1115
- readonly type: "string";
1116
- };
1117
- readonly risk: {
1118
- readonly type: "array";
1119
- readonly items: {
1120
- readonly type: "string";
1121
- readonly enum: readonly ["read", "write", "destructive", "external_effect"];
1122
- };
1123
- };
1124
- readonly summary: {
1125
- readonly type: "string";
1126
- };
1127
- };
1128
- readonly required: readonly ["confirmation_required", "description", "method", "operation_id", "path", "risk", "summary"];
1129
- readonly additionalProperties: false;
1130
- };
520
+ readonly linux: {
521
+ readonly root: 'home';
522
+ readonly segments: readonly ['.config', 'claude', 'claude_desktop_config.json'];
523
+ };
524
+ readonly win32: {
525
+ readonly root: 'appData';
526
+ readonly segments: readonly ['Claude', 'claude_desktop_config.json'];
1131
527
  };
1132
528
  };
1133
- readonly required: readonly ["operations"];
1134
- readonly additionalProperties: false;
1135
- readonly $schema: "https://json-schema.org/draft-07/schema#";
1136
- };
1137
- }, {
1138
- readonly mode: "automation";
1139
- readonly name: "describe_operation";
1140
- readonly description: "Describe one operation, including its input schema and risk. For write operations, pass the exact intended input to receive an approval with its ID, status, URL, and expiry.";
1141
- readonly annotations: {
1142
- readonly readOnlyHint: false;
1143
- readonly destructiveHint: false;
1144
- readonly openWorldHint: false;
1145
- };
1146
- readonly input_schema: {
1147
- readonly type: "object";
1148
- readonly properties: {
1149
- readonly operation_id: {
1150
- readonly type: "string";
1151
- readonly minLength: 1;
529
+ }, {
530
+ readonly id: 'cursor';
531
+ readonly name: 'Cursor';
532
+ readonly format: 'json';
533
+ readonly configDialect: 'mcpServers';
534
+ readonly configPaths: {
535
+ readonly darwin: {
536
+ readonly root: 'home';
537
+ readonly segments: readonly ['.cursor', 'mcp.json'];
538
+ };
539
+ readonly linux: {
540
+ readonly root: 'home';
541
+ readonly segments: readonly ['.cursor', 'mcp.json'];
1152
542
  };
1153
- readonly input: {
1154
- readonly type: "object";
1155
- readonly properties: {
1156
- readonly body: {
1157
- readonly type: "object";
1158
- readonly additionalProperties: {};
1159
- };
1160
- readonly params: {
1161
- readonly type: "object";
1162
- readonly additionalProperties: {
1163
- readonly type: "string";
1164
- };
1165
- };
1166
- };
1167
- readonly additionalProperties: false;
1168
- readonly description: "Exact intended input. Required to obtain approval for a write operation.";
543
+ readonly win32: {
544
+ readonly root: 'home';
545
+ readonly segments: readonly ['.cursor', 'mcp.json'];
1169
546
  };
1170
547
  };
1171
- readonly required: readonly ["operation_id"];
1172
- readonly additionalProperties: false;
1173
- readonly $schema: "https://json-schema.org/draft-07/schema#";
1174
- };
1175
- readonly output_schema: {
1176
- readonly type: "object";
1177
- readonly properties: {
1178
- readonly approval: {
1179
- readonly type: "object";
1180
- readonly properties: {
1181
- readonly approval_url: {
1182
- readonly type: "string";
1183
- readonly format: "uri";
1184
- };
1185
- readonly expires_at: {
1186
- readonly type: "string";
1187
- readonly format: "date-time";
1188
- };
1189
- readonly id: {
1190
- readonly type: "string";
1191
- readonly minLength: 1;
1192
- };
1193
- readonly status: {
1194
- readonly type: "string";
1195
- readonly const: "pending";
1196
- };
1197
- };
1198
- readonly required: readonly ["approval_url", "expires_at", "id", "status"];
1199
- readonly additionalProperties: false;
548
+ }, {
549
+ readonly id: 'windsurf';
550
+ readonly name: 'Windsurf';
551
+ readonly format: 'json';
552
+ readonly configDialect: 'mcpServers';
553
+ readonly configPaths: {
554
+ readonly darwin: {
555
+ readonly root: 'home';
556
+ readonly segments: readonly ['.codeium', 'windsurf', 'mcp_config.json'];
557
+ };
558
+ readonly linux: {
559
+ readonly root: 'home';
560
+ readonly segments: readonly ['.codeium', 'windsurf', 'mcp_config.json'];
1200
561
  };
1201
- readonly operation: {
1202
- readonly type: "object";
1203
- readonly properties: {
1204
- readonly confirmation_required: {
1205
- readonly type: "boolean";
1206
- };
1207
- readonly description: {
1208
- readonly type: "string";
1209
- };
1210
- readonly method: {
1211
- readonly type: "string";
1212
- readonly enum: readonly ["DELETE", "GET", "PATCH", "POST", "PUT"];
1213
- };
1214
- readonly operation_id: {
1215
- readonly type: "string";
1216
- };
1217
- readonly path: {
1218
- readonly type: "string";
1219
- };
1220
- readonly risk: {
1221
- readonly type: "array";
1222
- readonly items: {
1223
- readonly type: "string";
1224
- readonly enum: readonly ["read", "write", "destructive", "external_effect"];
1225
- };
1226
- };
1227
- readonly summary: {
1228
- readonly type: "string";
1229
- };
1230
- readonly input_schema: {
1231
- readonly type: "object";
1232
- readonly additionalProperties: {};
1233
- };
1234
- };
1235
- readonly required: readonly ["confirmation_required", "description", "method", "operation_id", "path", "risk", "summary", "input_schema"];
1236
- readonly additionalProperties: false;
562
+ readonly win32: {
563
+ readonly root: 'home';
564
+ readonly segments: readonly ['.codeium', 'windsurf', 'mcp_config.json'];
1237
565
  };
1238
566
  };
1239
- readonly required: readonly ["operation"];
1240
- readonly additionalProperties: false;
1241
- readonly $schema: "https://json-schema.org/draft-07/schema#";
1242
- };
1243
- }, {
1244
- readonly mode: "automation";
1245
- readonly name: "invoke_operation";
1246
- readonly description: "Invoke one previously discovered Warm operation. Every write operation requires the approval_id returned for the exact same input by describe_operation.";
1247
- readonly annotations: {
1248
- readonly readOnlyHint: false;
1249
- readonly destructiveHint: true;
1250
- readonly openWorldHint: false;
1251
- };
1252
- readonly input_schema: {
1253
- readonly type: "object";
1254
- readonly properties: {
1255
- readonly operation_id: {
1256
- readonly type: "string";
1257
- readonly minLength: 1;
567
+ }, {
568
+ readonly id: 'opencode';
569
+ readonly name: 'OpenCode';
570
+ readonly format: 'json';
571
+ readonly configDialect: 'openCode';
572
+ readonly configPaths: {
573
+ readonly darwin: {
574
+ readonly root: 'home';
575
+ readonly segments: readonly ['.config', 'opencode', 'opencode.json'];
1258
576
  };
1259
- readonly input: {
1260
- readonly type: "object";
1261
- readonly properties: {
1262
- readonly body: {
1263
- readonly type: "object";
1264
- readonly additionalProperties: {};
1265
- };
1266
- readonly params: {
1267
- readonly type: "object";
1268
- readonly additionalProperties: {
1269
- readonly type: "string";
1270
- };
1271
- };
1272
- };
1273
- readonly additionalProperties: false;
1274
- readonly description: "Exact intended input. Required to obtain approval for a write operation.";
577
+ readonly linux: {
578
+ readonly root: 'home';
579
+ readonly segments: readonly ['.config', 'opencode', 'opencode.json'];
1275
580
  };
1276
- readonly approval_id: {
1277
- readonly type: "string";
1278
- readonly format: "uuid";
1279
- readonly description: "Approval ID returned by describe_operation for the exact write input.";
581
+ readonly win32: {
582
+ readonly root: 'home';
583
+ readonly segments: readonly ['.config', 'opencode', 'opencode.json'];
1280
584
  };
1281
585
  };
1282
- readonly required: readonly ["operation_id"];
1283
- readonly additionalProperties: false;
1284
- readonly $schema: "https://json-schema.org/draft-07/schema#";
1285
- };
1286
- readonly output_schema: {
1287
- readonly type: "object";
1288
- readonly properties: {
1289
- readonly body: {};
1290
- readonly headers: {
1291
- readonly type: "object";
1292
- readonly additionalProperties: {
1293
- readonly type: "string";
1294
- };
586
+ }, {
587
+ readonly id: 'codex-cli';
588
+ readonly name: 'Codex CLI';
589
+ readonly format: 'toml';
590
+ readonly configDialect: 'mcpServers';
591
+ readonly configPaths: {
592
+ readonly darwin: {
593
+ readonly root: 'home';
594
+ readonly segments: readonly ['.codex', 'config.toml'];
1295
595
  };
1296
- readonly operation_id: {
1297
- readonly type: "string";
596
+ readonly linux: {
597
+ readonly root: 'home';
598
+ readonly segments: readonly ['.codex', 'config.toml'];
1298
599
  };
1299
- readonly status: {
1300
- readonly type: "integer";
600
+ readonly win32: {
601
+ readonly root: 'home';
602
+ readonly segments: readonly ['.codex', 'config.toml'];
1301
603
  };
1302
604
  };
1303
- readonly required: readonly ["headers", "operation_id", "status"];
1304
- readonly additionalProperties: false;
1305
- readonly $schema: "https://json-schema.org/draft-07/schema#";
1306
- };
1307
- }];
1308
- };
1309
- readonly product: {
1310
- readonly capabilities: readonly {
1311
- id: import("./product.js").ProductCapabilityId;
1312
- label: string;
1313
- tiers: readonly import("./product.js").PublicProductTier[];
1314
- }[];
1315
- readonly tiers: readonly ["plus", "pro"];
1316
- };
1317
- readonly protectedCrawlerPaths: readonly ["/dashboard", "/transactions", "/accounts", "/assets", "/subscriptions", "/spending", "/income", "/cash-flow", "/budgets", "/benefits", "/goals", "/planning", "/alerts", "/tag-rules", "/more", "/settings", "/feedback", "/billing", "/logs", "/join", "/welcome", "/welcome/connect", "/welcome/complete", "/welcome/sync", "/dashboard-1", "/dashboard-2", "/dashboard-3", "/insights", "/ksink", "/snapshots"];
1318
- readonly publicDiscovery: {
1319
- readonly protocolVersion: '2025-06-18';
1320
- readonly serverInfo: {
1321
- readonly name: 'warm-public-tools';
1322
- readonly title: 'Warm Public Discovery Tools';
1323
- readonly version: '1.0.0';
1324
- };
1325
- readonly paths: {
1326
- readonly developers: "/developers";
1327
- readonly endpoint: "/mcp";
1328
- readonly openapi: "/openapi.yaml";
1329
- readonly verify: "/api/verify";
1330
- };
1331
- readonly tools: readonly [{
1332
- readonly annotations: {
1333
- readonly readOnlyHint: true;
1334
- };
1335
- readonly description: 'Return Warm API discovery URLs and the current API catalog document.';
1336
- readonly inputSchema: {
1337
- type: string;
1338
- properties: {};
1339
- additionalProperties: boolean;
1340
- };
1341
- readonly name: 'warm-get-api-catalog';
1342
- readonly outputSchema: {
1343
- readonly type: 'object';
1344
- readonly properties: {
1345
- readonly apiCatalogUrl: {
1346
- readonly type: 'string';
605
+ }, {
606
+ readonly id: 'antigravity';
607
+ readonly name: 'Antigravity';
608
+ readonly format: 'json';
609
+ readonly configDialect: 'mcpServers';
610
+ readonly configPaths: {
611
+ readonly darwin: {
612
+ readonly root: 'home';
613
+ readonly segments: readonly ['.gemini', 'antigravity', 'mcp_config.json'];
1347
614
  };
1348
- readonly payload: {
1349
- readonly type: 'object';
615
+ readonly linux: {
616
+ readonly root: 'home';
617
+ readonly segments: readonly ['.gemini', 'antigravity', 'mcp_config.json'];
618
+ };
619
+ readonly win32: {
620
+ readonly root: 'home';
621
+ readonly segments: readonly ['.gemini', 'antigravity', 'mcp_config.json'];
1350
622
  };
1351
623
  };
1352
- readonly required: readonly ['apiCatalogUrl', 'payload'];
1353
- readonly additionalProperties: false;
1354
- };
1355
- readonly title: 'Warm API Catalog';
1356
- }, {
1357
- readonly annotations: {
1358
- readonly readOnlyHint: true;
1359
- };
1360
- readonly description: 'Return the Warm OpenAPI document URL and companion documentation URLs.';
1361
- readonly inputSchema: {
1362
- type: string;
1363
- properties: {};
1364
- additionalProperties: boolean;
1365
- };
1366
- readonly name: 'warm-get-openapi';
1367
- readonly outputSchema: {
1368
- readonly type: 'object';
1369
- readonly properties: {
1370
- readonly apiCatalogUrl: {
1371
- readonly type: 'string';
624
+ }, {
625
+ readonly id: 'gemini-cli';
626
+ readonly name: 'Gemini CLI';
627
+ readonly format: 'json';
628
+ readonly configDialect: 'mcpServers';
629
+ readonly configPaths: {
630
+ readonly darwin: {
631
+ readonly root: 'home';
632
+ readonly segments: readonly ['.gemini', 'settings.json'];
1372
633
  };
1373
- readonly documentationUrl: {
1374
- readonly type: 'string';
634
+ readonly linux: {
635
+ readonly root: 'home';
636
+ readonly segments: readonly ['.gemini', 'settings.json'];
1375
637
  };
1376
- readonly openapiUrl: {
1377
- readonly type: 'string';
638
+ readonly win32: {
639
+ readonly root: 'home';
640
+ readonly segments: readonly ['.gemini', 'settings.json'];
1378
641
  };
1379
642
  };
1380
- readonly required: readonly ['apiCatalogUrl', 'documentationUrl', 'openapiUrl'];
1381
- readonly additionalProperties: false;
643
+ }];
644
+ readonly credentials: {
645
+ readonly apiKeyEnv: 'WARM_API_KEY';
646
+ readonly apiKeyFileEnv: 'WARM_API_KEY_FILE';
647
+ readonly defaultFileName: 'api_key';
648
+ };
649
+ readonly installCommand: string;
650
+ readonly installerCommand: `${string} install`;
651
+ readonly minimumNodeVersion: string;
652
+ readonly packageName: string;
653
+ readonly packageSpec: string;
654
+ readonly packageVersion: string;
655
+ readonly projectConfigs: readonly [".mcp.json", ".cursor/mcp.json", ".vscode/mcp.json"];
656
+ readonly serverCommand: `${string} mcp`;
657
+ readonly serverConfig: {
658
+ readonly args: readonly ['-y', string, 'mcp'];
659
+ readonly command: 'npx';
660
+ readonly serverName: 'warm';
1382
661
  };
1383
- readonly title: 'Warm OpenAPI';
1384
- }, {
1385
- readonly annotations: {
1386
- readonly readOnlyHint: true;
662
+ };
663
+ readonly tools: {
664
+ annotations: {
665
+ destructiveHint: boolean;
666
+ openWorldHint: boolean;
667
+ readOnlyHint: boolean;
1387
668
  };
1388
- readonly description: 'Fetch the current Warm public API verification payload from /api/verify.';
1389
- readonly inputSchema: {
1390
- type: string;
1391
- properties: {};
1392
- additionalProperties: boolean;
669
+ description: string;
670
+ name: string;
671
+ input_schema: {
672
+ $schema?: string | undefined;
1393
673
  };
1394
- readonly name: 'warm-get-service-status';
1395
- readonly outputSchema: {
1396
- readonly type: 'object';
1397
- readonly properties: {
1398
- readonly ok: {
1399
- readonly type: 'boolean';
1400
- };
1401
- readonly payload: {};
1402
- readonly error: {
1403
- readonly type: 'object';
1404
- readonly properties: {
1405
- readonly code: {
1406
- readonly type: 'string';
1407
- readonly enum: readonly ['VERIFY_TIMEOUT', 'VERIFY_NON_JSON', 'VERIFY_UNAVAILABLE'];
1408
- };
1409
- readonly message: {
1410
- readonly type: 'string';
1411
- };
1412
- };
1413
- readonly required: readonly ['code', 'message'];
1414
- readonly additionalProperties: false;
1415
- };
1416
- readonly status: {
1417
- readonly type: 'number';
1418
- readonly minimum: 0;
1419
- };
1420
- readonly statusUrl: {
1421
- readonly type: 'string';
1422
- };
1423
- };
1424
- readonly required: readonly ['ok', 'status', 'statusUrl'];
1425
- readonly additionalProperties: false;
674
+ output_schema: {
675
+ $schema?: string | undefined;
1426
676
  };
1427
- readonly title: 'Warm API Verification';
1428
- }];
677
+ }[];
1429
678
  };
1430
679
  };
1431
680
  /** Canonical key-sorted JSON derived from the executed manifest values. */