@ulmeanua/kie-mcp 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/INSTALL.md +159 -0
  2. package/LICENSE +21 -0
  3. package/README.md +128 -0
  4. package/dist/client.d.ts +14 -0
  5. package/dist/client.d.ts.map +1 -0
  6. package/dist/client.js +115 -0
  7. package/dist/client.js.map +1 -0
  8. package/dist/config.d.ts +12 -0
  9. package/dist/config.d.ts.map +1 -0
  10. package/dist/config.js +42 -0
  11. package/dist/config.js.map +1 -0
  12. package/dist/downloader.d.ts +15 -0
  13. package/dist/downloader.d.ts.map +1 -0
  14. package/dist/downloader.js +87 -0
  15. package/dist/downloader.js.map +1 -0
  16. package/dist/endpoints.d.ts +8 -0
  17. package/dist/endpoints.d.ts.map +1 -0
  18. package/dist/endpoints.js +183 -0
  19. package/dist/endpoints.js.map +1 -0
  20. package/dist/index.d.ts +4 -0
  21. package/dist/index.d.ts.map +1 -0
  22. package/dist/index.js +25 -0
  23. package/dist/index.js.map +1 -0
  24. package/dist/poller.d.ts +10 -0
  25. package/dist/poller.d.ts.map +1 -0
  26. package/dist/poller.js +44 -0
  27. package/dist/poller.js.map +1 -0
  28. package/dist/registry.d.ts +5 -0
  29. package/dist/registry.d.ts.map +1 -0
  30. package/dist/registry.js +271 -0
  31. package/dist/registry.js.map +1 -0
  32. package/dist/server.d.ts +10 -0
  33. package/dist/server.d.ts.map +1 -0
  34. package/dist/server.js +57 -0
  35. package/dist/server.js.map +1 -0
  36. package/dist/store.d.ts +36 -0
  37. package/dist/store.d.ts.map +1 -0
  38. package/dist/store.js +108 -0
  39. package/dist/store.js.map +1 -0
  40. package/dist/tools.d.ts +14 -0
  41. package/dist/tools.d.ts.map +1 -0
  42. package/dist/tools.js +446 -0
  43. package/dist/tools.js.map +1 -0
  44. package/dist/types.d.ts +54 -0
  45. package/dist/types.d.ts.map +1 -0
  46. package/dist/types.js +24 -0
  47. package/dist/types.js.map +1 -0
  48. package/dist/version.d.ts +3 -0
  49. package/dist/version.d.ts.map +1 -0
  50. package/dist/version.js +3 -0
  51. package/dist/version.js.map +1 -0
  52. package/package.json +63 -0
@@ -0,0 +1,183 @@
1
+ function tryParseJson(maybeJson) {
2
+ if (typeof maybeJson !== 'string')
3
+ return maybeJson;
4
+ if (!maybeJson.length)
5
+ return null;
6
+ try {
7
+ return JSON.parse(maybeJson);
8
+ }
9
+ catch {
10
+ return null;
11
+ }
12
+ }
13
+ function extractUrls(obj) {
14
+ if (!obj || typeof obj !== 'object')
15
+ return [];
16
+ const record = obj;
17
+ const direct = record.resultUrls ?? record.result_urls ?? record.urls;
18
+ if (Array.isArray(direct)) {
19
+ return direct.filter((u) => typeof u === 'string');
20
+ }
21
+ return [];
22
+ }
23
+ export const UNIFIED_ENDPOINT = {
24
+ family: 'unified',
25
+ createPath: '/jobs/createTask',
26
+ statusPath: (id) => `/jobs/recordInfo?taskId=${encodeURIComponent(id)}`,
27
+ buildCreateBody(model, input, callBackUrl) {
28
+ return {
29
+ model,
30
+ input,
31
+ ...(callBackUrl ? { callBackUrl } : {}),
32
+ };
33
+ },
34
+ parseStatus(raw) {
35
+ const wrapper = raw;
36
+ const data = wrapper.data ?? {};
37
+ const state = data.state ?? 'waiting';
38
+ const resultObj = tryParseJson(data.resultJson);
39
+ const urls = extractUrls(resultObj);
40
+ return {
41
+ taskId: String(data.taskId ?? ''),
42
+ state,
43
+ resultUrls: urls,
44
+ errorCode: data.failCode ? String(data.failCode) : undefined,
45
+ errorMessage: data.failMsg ? String(data.failMsg) : undefined,
46
+ costTimeMs: typeof data.costTime === 'number' ? data.costTime : undefined,
47
+ creditsConsumed: typeof data.creditsConsumed === 'number' ? data.creditsConsumed : undefined,
48
+ raw,
49
+ };
50
+ },
51
+ };
52
+ export const VEO_ENDPOINT = {
53
+ family: 'veo',
54
+ createPath: '/veo/generate',
55
+ statusPath: (id) => `/veo/record-info?taskId=${encodeURIComponent(id)}`,
56
+ buildCreateBody(_model, input, callBackUrl) {
57
+ return {
58
+ ...input,
59
+ ...(callBackUrl ? { callBackUrl } : {}),
60
+ };
61
+ },
62
+ parseStatus(raw) {
63
+ const wrapper = raw;
64
+ const data = wrapper.data ?? {};
65
+ const flag = Number(data.successFlag ?? 0);
66
+ const state = flag === 1 ? 'success' : flag === 0 ? 'generating' : 'fail';
67
+ const response = (data.response ?? data);
68
+ return {
69
+ taskId: String(data.taskId ?? ''),
70
+ state,
71
+ resultUrls: extractUrls(response),
72
+ errorMessage: typeof data.errorMessage === 'string'
73
+ ? data.errorMessage
74
+ : typeof response.errorMessage === 'string'
75
+ ? response.errorMessage
76
+ : undefined,
77
+ raw,
78
+ };
79
+ },
80
+ };
81
+ export const RUNWAY_ENDPOINT = {
82
+ family: 'runway',
83
+ createPath: '/runway/generate',
84
+ statusPath: (id) => `/runway/record-detail?taskId=${encodeURIComponent(id)}`,
85
+ buildCreateBody(_model, input, callBackUrl) {
86
+ return {
87
+ ...input,
88
+ ...(callBackUrl ? { callBackUrl } : {}),
89
+ };
90
+ },
91
+ parseStatus(raw) {
92
+ const wrapper = raw;
93
+ const data = wrapper.data ?? {};
94
+ const stateRaw = String(data.state ?? '').toLowerCase();
95
+ const state = stateRaw === 'success'
96
+ ? 'success'
97
+ : stateRaw === 'fail'
98
+ ? 'fail'
99
+ : stateRaw === 'generating'
100
+ ? 'generating'
101
+ : stateRaw === 'queueing'
102
+ ? 'queueing'
103
+ : 'waiting';
104
+ return {
105
+ taskId: String(data.taskId ?? ''),
106
+ state,
107
+ resultUrls: extractUrls(data.response ?? data),
108
+ errorMessage: typeof data.failMsg === 'string' ? data.failMsg : undefined,
109
+ raw,
110
+ };
111
+ },
112
+ };
113
+ export const SUNO_ENDPOINT = {
114
+ family: 'suno',
115
+ createPath: '/generate',
116
+ statusPath: (id) => `/generate/record-info?taskId=${encodeURIComponent(id)}`,
117
+ buildCreateBody(_model, input, callBackUrl) {
118
+ return {
119
+ ...input,
120
+ ...(callBackUrl ? { callBackUrl } : {}),
121
+ };
122
+ },
123
+ parseStatus(raw) {
124
+ const wrapper = raw;
125
+ const data = wrapper.data ?? {};
126
+ const status = String(data.status ?? '').toUpperCase();
127
+ const state = status === 'SUCCESS' || status === 'FIRST_SUCCESS'
128
+ ? 'success'
129
+ : status.includes('FAIL')
130
+ ? 'fail'
131
+ : status === 'PENDING'
132
+ ? 'generating'
133
+ : 'waiting';
134
+ const response = (data.response ?? {});
135
+ const sunoData = Array.isArray(response.sunoData) ? response.sunoData : [];
136
+ const urls = sunoData
137
+ .map((track) => typeof track === 'object' && track !== null
138
+ ? String(track.audioUrl ?? '')
139
+ : '')
140
+ .filter(Boolean);
141
+ return {
142
+ taskId: String(data.taskId ?? ''),
143
+ state,
144
+ resultUrls: urls,
145
+ errorMessage: typeof data.errorMessage === 'string' ? data.errorMessage : undefined,
146
+ raw,
147
+ };
148
+ },
149
+ };
150
+ export const GPT4O_ENDPOINT = {
151
+ family: 'gpt4o',
152
+ createPath: '/gpt4o-image/generate',
153
+ statusPath: (id) => `/gpt4o-image/record-info?taskId=${encodeURIComponent(id)}`,
154
+ buildCreateBody(_model, input, callBackUrl) {
155
+ return {
156
+ ...input,
157
+ ...(callBackUrl ? { callBackUrl } : {}),
158
+ };
159
+ },
160
+ parseStatus(raw) {
161
+ const wrapper = raw;
162
+ const data = wrapper.data ?? {};
163
+ const flag = Number(data.successFlag ?? 0);
164
+ const state = flag === 1 ? 'success' : flag === 0 ? 'generating' : 'fail';
165
+ const response = (data.response ?? {});
166
+ return {
167
+ taskId: String(data.taskId ?? ''),
168
+ state,
169
+ resultUrls: extractUrls(response),
170
+ errorMessage: typeof data.errorMessage === 'string' ? data.errorMessage : undefined,
171
+ raw,
172
+ };
173
+ },
174
+ };
175
+ export const ENDPOINTS = {
176
+ unified: UNIFIED_ENDPOINT,
177
+ veo: VEO_ENDPOINT,
178
+ runway: RUNWAY_ENDPOINT,
179
+ suno: SUNO_ENDPOINT,
180
+ gpt4o: GPT4O_ENDPOINT,
181
+ elevenlabs: UNIFIED_ENDPOINT,
182
+ };
183
+ //# sourceMappingURL=endpoints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoints.js","sourceRoot":"","sources":["../src/endpoints.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env node
2
+ import { CallToolRequestSchema, ListToolsRequestSchema, ErrorCode, McpError } from '@modelcontextprotocol/sdk/types.js';
3
+ export { ListToolsRequestSchema, CallToolRequestSchema, ErrorCode, McpError };
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAGA,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,SAAS,EACT,QAAQ,EACT,MAAM,oCAAoC,CAAC;AAmB5C,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,25 @@
1
+ #!/usr/bin/env node
2
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
3
+ import { CallToolRequestSchema, ListToolsRequestSchema, ErrorCode, McpError, } from '@modelcontextprotocol/sdk/types.js';
4
+ import { loadConfig } from './config.js';
5
+ import { buildServer } from './server.js';
6
+ import { KieClient } from './client.js';
7
+ import { AssetDownloader } from './downloader.js';
8
+ import { TaskStore } from './store.js';
9
+ import { buildKieTools } from './tools.js';
10
+ async function main() {
11
+ const config = loadConfig(process.env);
12
+ const client = new KieClient(config);
13
+ const store = new TaskStore(config.dbPath);
14
+ const downloader = new AssetDownloader(config.outputDir);
15
+ const tools = buildKieTools({ client, config, store, downloader });
16
+ const server = buildServer(config, tools);
17
+ const transport = new StdioServerTransport();
18
+ await server.connect(transport);
19
+ }
20
+ export { ListToolsRequestSchema, CallToolRequestSchema, ErrorCode, McpError };
21
+ main().catch((err) => {
22
+ console.error('[kie-mcp] fatal:', err);
23
+ process.exit(1);
24
+ });
25
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,SAAS,EACT,QAAQ,GACT,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAU,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAW,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACzD,MAAM,KAAK,GAAG,aAAa,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;IACnE,MAAM,MAAM,GAAW,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAED,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;AAE9E,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;IACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { KieClient } from './client.js';
2
+ import { EndpointSpec, NormalizedTaskStatus } from './types.js';
3
+ export interface PollOptions {
4
+ intervalMs: number;
5
+ maxMs: number;
6
+ signal?: AbortSignal;
7
+ onTick?: (status: NormalizedTaskStatus, elapsedMs: number) => void;
8
+ }
9
+ export declare function pollUntilTerminal(client: KieClient, endpoint: EndpointSpec, taskId: string, opts: PollOptions): Promise<NormalizedTaskStatus>;
10
+ //# sourceMappingURL=poller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"poller.d.ts","sourceRoot":"","sources":["../src/poller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAa,MAAM,YAAY,CAAC;AAE3E,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CACpE;AAID,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,oBAAoB,CAAC,CAyB/B"}
package/dist/poller.js ADDED
@@ -0,0 +1,44 @@
1
+ const TERMINAL_STATES = new Set(['success', 'fail']);
2
+ export async function pollUntilTerminal(client, endpoint, taskId, opts) {
3
+ const startedAt = Date.now();
4
+ let last = null;
5
+ while (true) {
6
+ if (opts.signal?.aborted) {
7
+ throw new Error('polling aborted');
8
+ }
9
+ const elapsed = Date.now() - startedAt;
10
+ if (elapsed > opts.maxMs) {
11
+ throw new Error(`polling timeout after ${opts.maxMs}ms (last state: ${last?.state ?? 'unknown'})`);
12
+ }
13
+ const status = await client.getTaskStatus(endpoint, taskId);
14
+ last = status;
15
+ opts.onTick?.(status, elapsed);
16
+ if (TERMINAL_STATES.has(status.state)) {
17
+ return status;
18
+ }
19
+ await sleepWithSignal(opts.intervalMs, opts.signal);
20
+ }
21
+ }
22
+ function sleepWithSignal(ms, signal) {
23
+ return new Promise((resolve, reject) => {
24
+ const t = setTimeout(() => {
25
+ cleanup();
26
+ resolve();
27
+ }, ms);
28
+ const onAbort = () => {
29
+ cleanup();
30
+ reject(new Error('polling aborted'));
31
+ };
32
+ const cleanup = () => {
33
+ clearTimeout(t);
34
+ signal?.removeEventListener('abort', onAbort);
35
+ };
36
+ if (signal?.aborted) {
37
+ cleanup();
38
+ reject(new Error('polling aborted'));
39
+ return;
40
+ }
41
+ signal?.addEventListener('abort', onAbort, { once: true });
42
+ });
43
+ }
44
+ //# sourceMappingURL=poller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"poller.js","sourceRoot":"","sources":["../src/poller.ts"],"names":[],"mappings":"AAUA,MAAM,eAAe,GAA2B,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;AAE7E,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAiB,EACjB,QAAsB,EACtB,MAAc,EACd,IAAiB;IAEjB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,IAAI,IAAI,GAAgC,IAAI,CAAC;IAE7C,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACrC,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACvC,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CACb,yBAAyB,IAAI,CAAC,KAAK,mBAAmB,IAAI,EAAE,KAAK,IAAI,SAAS,GAAG,CAClF,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC5D,IAAI,GAAG,MAAM,CAAC;QACd,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAE/B,IAAI,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACtC,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACtD,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,EAAU,EAAE,MAAoB;IACvD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE;YACxB,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;QACZ,CAAC,EAAE,EAAE,CAAC,CAAC;QACP,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,OAAO,EAAE,CAAC;YACV,MAAM,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACvC,CAAC,CAAC;QACF,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,YAAY,CAAC,CAAC,CAAC,CAAC;YAChB,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAChD,CAAC,CAAC;QACF,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,OAAO,EAAE,CAAC;YACV,MAAM,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;YACrC,OAAO;QACT,CAAC;QACD,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { EndpointSpec, MediaKind, ModelSpec } from './types.js';
2
+ export declare const MODEL_REGISTRY: Record<string, ModelSpec>;
3
+ export declare function listModelsByKind(kind: MediaKind | 'sfx'): ModelSpec[];
4
+ export declare function getEndpointFor(model: ModelSpec): EndpointSpec;
5
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AA2IhE,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CA4HpD,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,GAAG,KAAK,GAAG,SAAS,EAAE,CAKrE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,YAAY,CAe7D"}
@@ -0,0 +1,271 @@
1
+ import { z } from 'zod';
2
+ import { GPT4O_ENDPOINT, SUNO_ENDPOINT, UNIFIED_ENDPOINT, VEO_ENDPOINT, RUNWAY_ENDPOINT, } from './endpoints.js';
3
+ const CREDIT_USD = 0.005;
4
+ const aspectImageZ = z.enum([
5
+ '1:1',
6
+ '1:4',
7
+ '1:8',
8
+ '2:3',
9
+ '3:2',
10
+ '3:4',
11
+ '4:1',
12
+ '4:3',
13
+ '4:5',
14
+ '5:4',
15
+ '8:1',
16
+ '9:16',
17
+ '16:9',
18
+ '21:9',
19
+ 'auto',
20
+ ]);
21
+ const aspectVideoZ = z.enum(['16:9', '9:16', '1:1']);
22
+ const NanoBananaInputZ = z
23
+ .object({
24
+ prompt: z.string().min(1).max(20_000),
25
+ image_input: z.array(z.string().url()).max(14).optional(),
26
+ aspect_ratio: aspectImageZ.optional().default('auto'),
27
+ resolution: z.enum(['1K', '2K', '4K']).optional().default('1K'),
28
+ output_format: z.enum(['png', 'jpg']).optional().default('jpg'),
29
+ })
30
+ .strict();
31
+ const FluxKontextInputZ = z
32
+ .object({
33
+ prompt: z.string().min(1).max(10_000),
34
+ image_input: z.array(z.string().url()).max(8).optional(),
35
+ aspect_ratio: aspectImageZ.optional(),
36
+ })
37
+ .strict();
38
+ const GptImage2InputZ = z
39
+ .object({
40
+ prompt: z.string().min(1).max(10_000),
41
+ size: z.enum(['1:1', '3:2', '2:3']).optional().default('1:1'),
42
+ nVariants: z.union([z.literal(1), z.literal(2), z.literal(4)]).optional(),
43
+ filesUrl: z.array(z.string().url()).optional(),
44
+ maskUrl: z.string().url().optional(),
45
+ isEnhance: z.boolean().optional(),
46
+ enableFallback: z.boolean().optional(),
47
+ })
48
+ .strict();
49
+ const SeedreamInputZ = z
50
+ .object({
51
+ prompt: z.string().min(1).max(10_000),
52
+ image_input: z.array(z.string().url()).optional(),
53
+ aspect_ratio: aspectImageZ.optional(),
54
+ resolution: z.enum(['1K', '2K', '4K']).optional(),
55
+ })
56
+ .strict();
57
+ const QwenInputZ = z
58
+ .object({
59
+ prompt: z.string().min(1).max(10_000),
60
+ image_input: z.array(z.string().url()).optional(),
61
+ aspect_ratio: aspectImageZ.optional(),
62
+ })
63
+ .strict();
64
+ const Veo3InputZ = z
65
+ .object({
66
+ prompt: z.string().min(1).max(5_000),
67
+ aspect_ratio: aspectVideoZ.optional().default('16:9'),
68
+ imageUrls: z.array(z.string().url()).optional(),
69
+ model: z.enum(['veo3', 'veo3_fast']).optional(),
70
+ })
71
+ .strict();
72
+ const RunwayInputZ = z
73
+ .object({
74
+ prompt: z.string().min(1).max(2_000),
75
+ duration: z.union([z.literal(5), z.literal(10)]).optional().default(5),
76
+ quality: z.enum(['720p', '1080p']).optional().default('720p'),
77
+ aspectRatio: aspectVideoZ.optional().default('16:9'),
78
+ imageUrl: z.string().url().optional(),
79
+ })
80
+ .strict();
81
+ const SeedanceInputZ = z
82
+ .object({
83
+ prompt: z.string().min(1).max(5_000),
84
+ image_input: z.array(z.string().url()).optional(),
85
+ aspect_ratio: aspectVideoZ.optional(),
86
+ duration: z.number().int().min(3).max(12).optional(),
87
+ })
88
+ .strict();
89
+ const SunoInputZ = z
90
+ .object({
91
+ prompt: z.string().min(1).max(2_500),
92
+ customMode: z.boolean().optional().default(false),
93
+ instrumental: z.boolean().optional().default(false),
94
+ model: z.enum(['V3_5', 'V4', 'V4_5', 'V5']).optional().default('V4_5'),
95
+ style: z.string().optional(),
96
+ title: z.string().optional(),
97
+ })
98
+ .strict();
99
+ const ElevenLabsTtsInputZ = z
100
+ .object({
101
+ text: z.string().min(1).max(5_000),
102
+ voice_id: z.string().min(1),
103
+ model_id: z.string().optional(),
104
+ stability: z.number().min(0).max(1).optional(),
105
+ similarity_boost: z.number().min(0).max(1).optional(),
106
+ })
107
+ .strict();
108
+ const ElevenLabsSfxInputZ = z
109
+ .object({
110
+ text: z.string().min(1).max(450),
111
+ duration_seconds: z.number().min(0.5).max(22).optional(),
112
+ prompt_influence: z.number().min(0).max(1).optional(),
113
+ })
114
+ .strict();
115
+ function flatRateCost(usd) {
116
+ return () => usd;
117
+ }
118
+ function resolutionCost(input) {
119
+ const res = String(input.resolution ?? '1K');
120
+ if (res === '4K')
121
+ return 18 * CREDIT_USD;
122
+ if (res === '2K')
123
+ return 12 * CREDIT_USD;
124
+ return 8 * CREDIT_USD;
125
+ }
126
+ export const MODEL_REGISTRY = {
127
+ 'nano-banana-2': {
128
+ id: 'nano-banana-2',
129
+ kind: 'image',
130
+ family: 'unified',
131
+ description: 'Google Gemini 3 Flash Image (Nano Banana 2). Up to 14 reference images, 4K.',
132
+ inputSchema: NanoBananaInputZ,
133
+ estimateCostUsd: resolutionCost,
134
+ },
135
+ 'flux-kontext-pro': {
136
+ id: 'flux-kontext-pro',
137
+ kind: 'image',
138
+ family: 'unified',
139
+ description: 'Black Forest Labs Flux Kontext Pro — context-aware generation + editing.',
140
+ inputSchema: FluxKontextInputZ,
141
+ estimateCostUsd: flatRateCost(0.05),
142
+ },
143
+ 'flux-kontext-max': {
144
+ id: 'flux-kontext-max',
145
+ kind: 'image',
146
+ family: 'unified',
147
+ description: 'Flux Kontext Max — premium tier.',
148
+ inputSchema: FluxKontextInputZ,
149
+ estimateCostUsd: flatRateCost(0.08),
150
+ },
151
+ 'gpt-image-2': {
152
+ id: 'gpt-image-2',
153
+ kind: 'image',
154
+ family: 'gpt4o',
155
+ description: 'OpenAI GPT Image 2 — generation + editing, up to 16 references.',
156
+ inputSchema: GptImage2InputZ,
157
+ estimateCostUsd: (input) => {
158
+ const n = Number(input.nVariants ?? 1);
159
+ return 0.04 * n;
160
+ },
161
+ },
162
+ 'seedream-v5-lite': {
163
+ id: 'seedream-v5-lite',
164
+ kind: 'image',
165
+ family: 'unified',
166
+ description: 'ByteDance Seedream V5 Lite — 4K image generation.',
167
+ inputSchema: SeedreamInputZ,
168
+ estimateCostUsd: resolutionCost,
169
+ },
170
+ 'qwen-image': {
171
+ id: 'qwen-image',
172
+ kind: 'image',
173
+ family: 'unified',
174
+ description: 'Alibaba Qwen Image — fast generation + edit.',
175
+ inputSchema: QwenInputZ,
176
+ estimateCostUsd: flatRateCost(0.02),
177
+ },
178
+ veo3: {
179
+ id: 'veo3',
180
+ kind: 'video',
181
+ family: 'veo',
182
+ description: 'Google Veo 3 — cinematic 8s video with native audio.',
183
+ inputSchema: Veo3InputZ,
184
+ estimateCostUsd: flatRateCost(2.0),
185
+ },
186
+ veo3_fast: {
187
+ id: 'veo3_fast',
188
+ kind: 'video',
189
+ family: 'veo',
190
+ description: 'Veo 3 Fast — quicker, lower cost.',
191
+ inputSchema: Veo3InputZ,
192
+ estimateCostUsd: flatRateCost(0.3),
193
+ },
194
+ 'runway-aleph': {
195
+ id: 'runway-aleph',
196
+ kind: 'video',
197
+ family: 'runway',
198
+ description: 'Runway Aleph — video editing + transformation.',
199
+ inputSchema: RunwayInputZ,
200
+ estimateCostUsd: (input) => {
201
+ const duration = Number(input.duration ?? 5);
202
+ const quality = String(input.quality ?? '720p');
203
+ const base = quality === '1080p' ? 0.15 : 0.08;
204
+ return base * duration;
205
+ },
206
+ },
207
+ 'seedance-2': {
208
+ id: 'seedance-2',
209
+ kind: 'video',
210
+ family: 'unified',
211
+ description: 'ByteDance Seedance 2.0 — multimodal video with native audio.',
212
+ inputSchema: SeedanceInputZ,
213
+ estimateCostUsd: (input) => 0.06 * Number(input.duration ?? 5),
214
+ },
215
+ 'suno-v5': {
216
+ id: 'suno-v5',
217
+ kind: 'music',
218
+ family: 'suno',
219
+ description: 'Suno V5 — high-fidelity music with vocals up to 8 min.',
220
+ inputSchema: SunoInputZ,
221
+ estimateCostUsd: flatRateCost(0.1),
222
+ },
223
+ 'suno-v4-5': {
224
+ id: 'suno-v4-5',
225
+ kind: 'music',
226
+ family: 'suno',
227
+ description: 'Suno V4.5 — fast music generation.',
228
+ inputSchema: SunoInputZ,
229
+ estimateCostUsd: flatRateCost(0.05),
230
+ },
231
+ 'elevenlabs-tts': {
232
+ id: 'elevenlabs-tts',
233
+ kind: 'speech',
234
+ family: 'unified',
235
+ description: 'ElevenLabs studio-grade text-to-speech.',
236
+ inputSchema: ElevenLabsTtsInputZ,
237
+ estimateCostUsd: (input) => {
238
+ const chars = String(input.text ?? '').length;
239
+ return 0.00003 * chars;
240
+ },
241
+ },
242
+ 'elevenlabs-sfx': {
243
+ id: 'elevenlabs-sfx',
244
+ kind: 'sfx',
245
+ family: 'unified',
246
+ description: 'ElevenLabs sound-effects generator.',
247
+ inputSchema: ElevenLabsSfxInputZ,
248
+ estimateCostUsd: flatRateCost(0.02),
249
+ },
250
+ };
251
+ export function listModelsByKind(kind) {
252
+ const k = kind === 'sfx' ? 'speech' : kind;
253
+ return Object.values(MODEL_REGISTRY).filter((m) => m.kind === k || (kind === 'speech' && m.kind === 'sfx'));
254
+ }
255
+ export function getEndpointFor(model) {
256
+ switch (model.family) {
257
+ case 'unified':
258
+ return UNIFIED_ENDPOINT;
259
+ case 'veo':
260
+ return VEO_ENDPOINT;
261
+ case 'runway':
262
+ return RUNWAY_ENDPOINT;
263
+ case 'suno':
264
+ return SUNO_ENDPOINT;
265
+ case 'gpt4o':
266
+ return GPT4O_ENDPOINT;
267
+ case 'elevenlabs':
268
+ return UNIFIED_ENDPOINT;
269
+ }
270
+ }
271
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,eAAe,GAChB,MAAM,gBAAgB,CAAC;AAGxB,MAAM,UAAU,GAAG,KAAK,CAAC;AAEzB,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC;IAC1B,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;CACP,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAErD,MAAM,gBAAgB,GAAG,CAAC;KACvB,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;IACrC,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IACzD,YAAY,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;IACrD,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAC/D,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CAChE,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,iBAAiB,GAAG,CAAC;KACxB,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;IACrC,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACxD,YAAY,EAAE,YAAY,CAAC,QAAQ,EAAE;CACtC,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,eAAe,GAAG,CAAC;KACtB,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;IACrC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAC7D,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACzE,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC9C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACpC,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACjC,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACvC,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,cAAc,GAAG,CAAC;KACrB,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;IACrC,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE;IACjD,YAAY,EAAE,YAAY,CAAC,QAAQ,EAAE;IACrC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE;CAClD,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,UAAU,GAAG,CAAC;KACjB,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;IACrC,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE;IACjD,YAAY,EAAE,YAAY,CAAC,QAAQ,EAAE;CACtC,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,UAAU,GAAG,CAAC;KACjB,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;IACpC,YAAY,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;IACrD,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC/C,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE;CAChD,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,YAAY,GAAG,CAAC;KACnB,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;IACpC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACtE,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;IAC7D,WAAW,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;IACpD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;CACtC,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,cAAc,GAAG,CAAC;KACrB,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;IACpC,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE;IACjD,YAAY,EAAE,YAAY,CAAC,QAAQ,EAAE;IACrC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;CACrD,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,UAAU,GAAG,CAAC;KACjB,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;IACpC,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACjD,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACnD,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;IACtE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,mBAAmB,GAAG,CAAC;KAC1B,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;IAClC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC9C,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CACtD,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,mBAAmB,GAAG,CAAC;KAC1B,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAChC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IACxD,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CACtD,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,SAAS,YAAY,CAAC,GAAW;IAC/B,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC;AACnB,CAAC;AAED,SAAS,cAAc,CAAC,KAA8B;IACpD,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC;IAC7C,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,EAAE,GAAG,UAAU,CAAC;IACzC,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,EAAE,GAAG,UAAU,CAAC;IACzC,OAAO,CAAC,GAAG,UAAU,CAAC;AACxB,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAA8B;IACvD,eAAe,EAAE;QACf,EAAE,EAAE,eAAe;QACnB,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,SAAS;QACjB,WAAW,EAAE,6EAA6E;QAC1F,WAAW,EAAE,gBAAgB;QAC7B,eAAe,EAAE,cAAc;KAChC;IACD,kBAAkB,EAAE;QAClB,EAAE,EAAE,kBAAkB;QACtB,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,SAAS;QACjB,WAAW,EAAE,0EAA0E;QACvF,WAAW,EAAE,iBAAiB;QAC9B,eAAe,EAAE,YAAY,CAAC,IAAI,CAAC;KACpC;IACD,kBAAkB,EAAE;QAClB,EAAE,EAAE,kBAAkB;QACtB,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,SAAS;QACjB,WAAW,EAAE,kCAAkC;QAC/C,WAAW,EAAE,iBAAiB;QAC9B,eAAe,EAAE,YAAY,CAAC,IAAI,CAAC;KACpC;IACD,aAAa,EAAE;QACb,EAAE,EAAE,aAAa;QACjB,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,OAAO;QACf,WAAW,EAAE,iEAAiE;QAC9E,WAAW,EAAE,eAAe;QAC5B,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE;YACzB,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;YACvC,OAAO,IAAI,GAAG,CAAC,CAAC;QAClB,CAAC;KACF;IACD,kBAAkB,EAAE;QAClB,EAAE,EAAE,kBAAkB;QACtB,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,SAAS;QACjB,WAAW,EAAE,mDAAmD;QAChE,WAAW,EAAE,cAAc;QAC3B,eAAe,EAAE,cAAc;KAChC;IACD,YAAY,EAAE;QACZ,EAAE,EAAE,YAAY;QAChB,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,SAAS;QACjB,WAAW,EAAE,8CAA8C;QAC3D,WAAW,EAAE,UAAU;QACvB,eAAe,EAAE,YAAY,CAAC,IAAI,CAAC;KACpC;IACD,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM;QACV,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,KAAK;QACb,WAAW,EAAE,sDAAsD;QACnE,WAAW,EAAE,UAAU;QACvB,eAAe,EAAE,YAAY,CAAC,GAAG,CAAC;KACnC;IACD,SAAS,EAAE;QACT,EAAE,EAAE,WAAW;QACf,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,KAAK;QACb,WAAW,EAAE,mCAAmC;QAChD,WAAW,EAAE,UAAU;QACvB,eAAe,EAAE,YAAY,CAAC,GAAG,CAAC;KACnC;IACD,cAAc,EAAE;QACd,EAAE,EAAE,cAAc;QAClB,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,gDAAgD;QAC7D,WAAW,EAAE,YAAY;QACzB,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE;YACzB,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;YAC7C,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC;YAChD,MAAM,IAAI,GAAG,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YAC/C,OAAO,IAAI,GAAG,QAAQ,CAAC;QACzB,CAAC;KACF;IACD,YAAY,EAAE;QACZ,EAAE,EAAE,YAAY;QAChB,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,SAAS;QACjB,WAAW,EAAE,8DAA8D;QAC3E,WAAW,EAAE,cAAc;QAC3B,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;KAC/D;IACD,SAAS,EAAE;QACT,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,MAAM;QACd,WAAW,EAAE,wDAAwD;QACrE,WAAW,EAAE,UAAU;QACvB,eAAe,EAAE,YAAY,CAAC,GAAG,CAAC;KACnC;IACD,WAAW,EAAE;QACX,EAAE,EAAE,WAAW;QACf,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,MAAM;QACd,WAAW,EAAE,oCAAoC;QACjD,WAAW,EAAE,UAAU;QACvB,eAAe,EAAE,YAAY,CAAC,IAAI,CAAC;KACpC;IACD,gBAAgB,EAAE;QAChB,EAAE,EAAE,gBAAgB;QACpB,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,SAAS;QACjB,WAAW,EAAE,yCAAyC;QACtD,WAAW,EAAE,mBAAmB;QAChC,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE;YACzB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YAC9C,OAAO,OAAO,GAAG,KAAK,CAAC;QACzB,CAAC;KACF;IACD,gBAAgB,EAAE;QAChB,EAAE,EAAE,gBAAgB;QACpB,IAAI,EAAE,KAAK;QACX,MAAM,EAAE,SAAS;QACjB,WAAW,EAAE,qCAAqC;QAClD,WAAW,EAAE,mBAAmB;QAChC,eAAe,EAAE,YAAY,CAAC,IAAI,CAAC;KACpC;CACF,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,IAAuB;IACtD,MAAM,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3C,OAAO,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,MAAM,CACzC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAC/D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAgB;IAC7C,QAAQ,KAAK,CAAC,MAAM,EAAE,CAAC;QACrB,KAAK,SAAS;YACZ,OAAO,gBAAgB,CAAC;QAC1B,KAAK,KAAK;YACR,OAAO,YAAY,CAAC;QACtB,KAAK,QAAQ;YACX,OAAO,eAAe,CAAC;QACzB,KAAK,MAAM;YACT,OAAO,aAAa,CAAC;QACvB,KAAK,OAAO;YACV,OAAO,cAAc,CAAC;QACxB,KAAK,YAAY;YACf,OAAO,gBAAgB,CAAC;IAC5B,CAAC;AACH,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
2
+ import { Config } from './config.js';
3
+ export interface ToolHandler {
4
+ name: string;
5
+ description: string;
6
+ inputSchema: Record<string, unknown>;
7
+ handle(args: Record<string, unknown>): Promise<unknown>;
8
+ }
9
+ export declare function buildServer(config: Config, extraTools?: ToolHandler[]): Server;
10
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAOnE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACzD;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,GAAE,WAAW,EAAO,GAAG,MAAM,CAwClF"}