framlit-mcp 0.2.1 → 0.2.2
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.
- package/README.md +6 -0
- package/dist/cli/exit-codes.d.ts +22 -0
- package/dist/cli/exit-codes.d.ts.map +1 -0
- package/dist/cli/exit-codes.js +33 -0
- package/dist/cli/exit-codes.js.map +1 -0
- package/dist/cli/index.js +75 -40
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/output.d.ts +2 -1
- package/dist/cli/output.d.ts.map +1 -1
- package/dist/cli/output.js +3 -3
- package/dist/cli/output.js.map +1 -1
- package/dist/cli/validation.d.ts +29 -0
- package/dist/cli/validation.d.ts.map +1 -0
- package/dist/cli/validation.js +68 -0
- package/dist/cli/validation.js.map +1 -0
- package/dist/mcp/server.js +11 -1
- package/dist/mcp/server.js.map +1 -1
- package/package.json +6 -3
package/README.md
CHANGED
|
@@ -50,6 +50,9 @@ Add to your editor's MCP config:
|
|
|
50
50
|
### CLI (Terminal)
|
|
51
51
|
|
|
52
52
|
```bash
|
|
53
|
+
# Set your API key (get it at https://framlit.app/settings/api-keys)
|
|
54
|
+
export FRAMLIT_API_KEY=fml_your_api_key_here
|
|
55
|
+
|
|
53
56
|
# Use directly via npx
|
|
54
57
|
npx framlit generate "A logo animation with rotating 3D text"
|
|
55
58
|
|
|
@@ -61,6 +64,9 @@ framlit generate "Product demo with fade-in text"
|
|
|
61
64
|
## CLI Usage
|
|
62
65
|
|
|
63
66
|
```bash
|
|
67
|
+
# Set your API key first
|
|
68
|
+
export FRAMLIT_API_KEY=fml_your_api_key_here
|
|
69
|
+
|
|
64
70
|
# Generate video code
|
|
65
71
|
framlit generate "Logo animation with rotating text" --format landscape
|
|
66
72
|
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI Exit Codes
|
|
3
|
+
*
|
|
4
|
+
* Meaningful exit codes for agent retry/debugging logic.
|
|
5
|
+
*/
|
|
6
|
+
export declare const EXIT: {
|
|
7
|
+
readonly SUCCESS: 0;
|
|
8
|
+
readonly GENERAL_ERROR: 1;
|
|
9
|
+
readonly INVALID_ARGS: 2;
|
|
10
|
+
readonly AUTH_REQUIRED: 3;
|
|
11
|
+
readonly API_ERROR: 4;
|
|
12
|
+
};
|
|
13
|
+
export type ExitCode = typeof EXIT[keyof typeof EXIT];
|
|
14
|
+
/**
|
|
15
|
+
* Error code strings for structured JSON error responses.
|
|
16
|
+
*/
|
|
17
|
+
export type ErrorCode = 'INVALID_ARGUMENT' | 'AUTH_REQUIRED' | 'INSUFFICIENT_CREDITS' | 'NOT_FOUND' | 'RATE_LIMITED' | 'API_ERROR' | 'UNKNOWN_COMMAND' | 'VALIDATION_ERROR';
|
|
18
|
+
/**
|
|
19
|
+
* Map error code to exit code.
|
|
20
|
+
*/
|
|
21
|
+
export declare function exitCodeForError(code: ErrorCode): ExitCode;
|
|
22
|
+
//# sourceMappingURL=exit-codes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exit-codes.d.ts","sourceRoot":"","sources":["../../src/cli/exit-codes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,IAAI;;;;;;CAMP,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,MAAM,OAAO,IAAI,CAAC,CAAC;AAEtD;;GAEG;AACH,MAAM,MAAM,SAAS,GACjB,kBAAkB,GAClB,eAAe,GACf,sBAAsB,GACtB,WAAW,GACX,cAAc,GACd,WAAW,GACX,iBAAiB,GACjB,kBAAkB,CAAC;AAEvB;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,GAAG,QAAQ,CAY1D"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* CLI Exit Codes
|
|
4
|
+
*
|
|
5
|
+
* Meaningful exit codes for agent retry/debugging logic.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.EXIT = void 0;
|
|
9
|
+
exports.exitCodeForError = exitCodeForError;
|
|
10
|
+
exports.EXIT = {
|
|
11
|
+
SUCCESS: 0,
|
|
12
|
+
GENERAL_ERROR: 1,
|
|
13
|
+
INVALID_ARGS: 2,
|
|
14
|
+
AUTH_REQUIRED: 3,
|
|
15
|
+
API_ERROR: 4,
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Map error code to exit code.
|
|
19
|
+
*/
|
|
20
|
+
function exitCodeForError(code) {
|
|
21
|
+
switch (code) {
|
|
22
|
+
case 'INVALID_ARGUMENT':
|
|
23
|
+
case 'VALIDATION_ERROR':
|
|
24
|
+
return exports.EXIT.INVALID_ARGS;
|
|
25
|
+
case 'AUTH_REQUIRED':
|
|
26
|
+
return exports.EXIT.AUTH_REQUIRED;
|
|
27
|
+
case 'UNKNOWN_COMMAND':
|
|
28
|
+
return exports.EXIT.INVALID_ARGS;
|
|
29
|
+
default:
|
|
30
|
+
return exports.EXIT.API_ERROR;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=exit-codes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exit-codes.js","sourceRoot":"","sources":["../../src/cli/exit-codes.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AA4BH,4CAYC;AAtCY,QAAA,IAAI,GAAG;IAClB,OAAO,EAAE,CAAC;IACV,aAAa,EAAE,CAAC;IAChB,YAAY,EAAE,CAAC;IACf,aAAa,EAAE,CAAC;IAChB,SAAS,EAAE,CAAC;CACJ,CAAC;AAiBX;;GAEG;AACH,SAAgB,gBAAgB,CAAC,IAAe;IAC9C,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,kBAAkB,CAAC;QACxB,KAAK,kBAAkB;YACrB,OAAO,YAAI,CAAC,YAAY,CAAC;QAC3B,KAAK,eAAe;YAClB,OAAO,YAAI,CAAC,aAAa,CAAC;QAC5B,KAAK,iBAAiB;YACpB,OAAO,YAAI,CAAC,YAAY,CAAC;QAC3B;YACE,OAAO,YAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;AACH,CAAC"}
|
package/dist/cli/index.js
CHANGED
|
@@ -63,16 +63,27 @@ const client_js_1 = require("../api/client.js");
|
|
|
63
63
|
const registry_js_1 = require("../core/registry.js");
|
|
64
64
|
const handlers = __importStar(require("../core/handlers.js"));
|
|
65
65
|
const output_js_1 = require("./output.js");
|
|
66
|
+
const exit_codes_js_1 = require("./exit-codes.js");
|
|
67
|
+
const validation_js_1 = require("./validation.js");
|
|
66
68
|
// ---------------------------------------------------------------------------
|
|
67
69
|
// Helpers
|
|
68
70
|
// ---------------------------------------------------------------------------
|
|
69
|
-
|
|
71
|
+
// Read version from package.json at runtime
|
|
72
|
+
const VERSION = (() => {
|
|
73
|
+
try {
|
|
74
|
+
const pkgPath = require('node:path').resolve(__dirname, '..', '..', 'package.json');
|
|
75
|
+
const pkg = JSON.parse((0, node_fs_1.readFileSync)(pkgPath, 'utf-8'));
|
|
76
|
+
return pkg.version || '0.0.0';
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
return '0.0.0';
|
|
80
|
+
}
|
|
81
|
+
})();
|
|
70
82
|
function getApiKey() {
|
|
71
83
|
const key = process.env.FRAMLIT_API_KEY;
|
|
72
84
|
if (!key) {
|
|
73
|
-
console.error('
|
|
74
|
-
|
|
75
|
-
process.exit(1);
|
|
85
|
+
console.error((0, output_js_1.formatError)('FRAMLIT_API_KEY environment variable is required. Get your API key at https://framlit.app/settings/api-keys', (0, output_js_1.detectOutputMode)(), 'AUTH_REQUIRED'));
|
|
86
|
+
process.exit(exit_codes_js_1.EXIT.AUTH_REQUIRED);
|
|
76
87
|
}
|
|
77
88
|
return key;
|
|
78
89
|
}
|
|
@@ -81,10 +92,16 @@ function getApiKey() {
|
|
|
81
92
|
*/
|
|
82
93
|
function resolveCodeValue(value) {
|
|
83
94
|
if ((0, node_fs_1.existsSync)(value) && !value.includes('\n')) {
|
|
95
|
+
(0, validation_js_1.validateSafePath)(value, 'file path');
|
|
84
96
|
return (0, node_fs_1.readFileSync)(value, 'utf-8');
|
|
85
97
|
}
|
|
86
98
|
return value;
|
|
87
99
|
}
|
|
100
|
+
/** Print a validation or argument error and exit. */
|
|
101
|
+
function exitInvalidArg(message, outputMode) {
|
|
102
|
+
console.error((0, output_js_1.formatError)(message, outputMode, 'INVALID_ARGUMENT'));
|
|
103
|
+
process.exit(exit_codes_js_1.EXIT.INVALID_ARGS);
|
|
104
|
+
}
|
|
88
105
|
function printHelp() {
|
|
89
106
|
console.log(`Framlit CLI v${VERSION} — AI-powered video generation
|
|
90
107
|
|
|
@@ -113,6 +130,13 @@ GLOBAL OPTIONS
|
|
|
113
130
|
--json '{"key":"val"}' Raw JSON input (bypass arg parsing)
|
|
114
131
|
--dry-run Preview request without executing
|
|
115
132
|
|
|
133
|
+
EXIT CODES
|
|
134
|
+
0 Success
|
|
135
|
+
1 General error
|
|
136
|
+
2 Invalid arguments / validation error
|
|
137
|
+
3 Authentication required (missing API key)
|
|
138
|
+
4 API error (server-side failure)
|
|
139
|
+
|
|
116
140
|
EXAMPLES
|
|
117
141
|
framlit generate "Logo animation with rotating 3D text"
|
|
118
142
|
framlit generate "Product demo" --format portrait --output json
|
|
@@ -149,9 +173,9 @@ async function cmdGenerate(positionals, options) {
|
|
|
149
173
|
format = options.format;
|
|
150
174
|
}
|
|
151
175
|
if (!prompt) {
|
|
152
|
-
|
|
153
|
-
process.exit(1);
|
|
176
|
+
exitInvalidArg('prompt is required. Usage: framlit generate <prompt>', outputMode);
|
|
154
177
|
}
|
|
178
|
+
(0, validation_js_1.validateTextInput)(prompt, 'prompt');
|
|
155
179
|
if (options['dry-run']) {
|
|
156
180
|
const payload = { prompt, format: format ?? 'landscape' };
|
|
157
181
|
console.log((0, output_js_1.formatOutput)(payload, `[dry-run] Would generate code with prompt: "${prompt}"`, outputMode));
|
|
@@ -177,9 +201,9 @@ async function cmdModify(positionals, options) {
|
|
|
177
201
|
instruction = options.instruction || positionals.join(' ');
|
|
178
202
|
}
|
|
179
203
|
if (!code || !instruction) {
|
|
180
|
-
|
|
181
|
-
process.exit(1);
|
|
204
|
+
exitInvalidArg('--code and --instruction are required', outputMode);
|
|
182
205
|
}
|
|
206
|
+
(0, validation_js_1.validateTextInput)(instruction, 'instruction');
|
|
183
207
|
if (options['dry-run']) {
|
|
184
208
|
const payload = { code: code.substring(0, 100) + '...', instruction };
|
|
185
209
|
console.log((0, output_js_1.formatOutput)(payload, `[dry-run] Would modify code with instruction: "${instruction}"`, outputMode));
|
|
@@ -202,20 +226,18 @@ async function cmdProjects(positionals, options) {
|
|
|
202
226
|
}
|
|
203
227
|
case 'get': {
|
|
204
228
|
const id = positionals[1];
|
|
205
|
-
if (!id)
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
}
|
|
229
|
+
if (!id)
|
|
230
|
+
exitInvalidArg('Project ID required', outputMode);
|
|
231
|
+
(0, validation_js_1.validateResourceId)(id, 'projectId');
|
|
209
232
|
const result = await handlers.handleGetProject(client, { projectId: id });
|
|
210
233
|
console.log((0, output_js_1.formatOutput)(result.data, result.message, outputMode));
|
|
211
234
|
break;
|
|
212
235
|
}
|
|
213
236
|
case 'create': {
|
|
214
237
|
const name = positionals[1];
|
|
215
|
-
if (!name)
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
}
|
|
238
|
+
if (!name)
|
|
239
|
+
exitInvalidArg('Project name required', outputMode);
|
|
240
|
+
(0, validation_js_1.validateTextInput)(name, 'project name', 200);
|
|
219
241
|
const code = options.code ? resolveCodeValue(options.code) : undefined;
|
|
220
242
|
const format = options.format;
|
|
221
243
|
if (options['dry-run']) {
|
|
@@ -228,11 +250,12 @@ async function cmdProjects(positionals, options) {
|
|
|
228
250
|
}
|
|
229
251
|
case 'update': {
|
|
230
252
|
const id = positionals[1];
|
|
231
|
-
if (!id)
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
}
|
|
253
|
+
if (!id)
|
|
254
|
+
exitInvalidArg('Project ID required', outputMode);
|
|
255
|
+
(0, validation_js_1.validateResourceId)(id, 'projectId');
|
|
235
256
|
const name = options.name;
|
|
257
|
+
if (name)
|
|
258
|
+
(0, validation_js_1.validateTextInput)(name, 'project name', 200);
|
|
236
259
|
const code = options.code ? resolveCodeValue(options.code) : undefined;
|
|
237
260
|
if (options['dry-run']) {
|
|
238
261
|
console.log((0, output_js_1.formatOutput)({ projectId: id, name, hasCode: !!code }, `[dry-run] Would update project: ${id}`, outputMode));
|
|
@@ -243,8 +266,8 @@ async function cmdProjects(positionals, options) {
|
|
|
243
266
|
break;
|
|
244
267
|
}
|
|
245
268
|
default:
|
|
246
|
-
console.error((0, output_js_1.formatError)(`Unknown projects subcommand: ${sub}`, outputMode));
|
|
247
|
-
process.exit(
|
|
269
|
+
console.error((0, output_js_1.formatError)(`Unknown projects subcommand: ${sub}`, outputMode, 'UNKNOWN_COMMAND'));
|
|
270
|
+
process.exit(exit_codes_js_1.EXIT.INVALID_ARGS);
|
|
248
271
|
}
|
|
249
272
|
}
|
|
250
273
|
async function cmdRender(positionals, options) {
|
|
@@ -253,10 +276,9 @@ async function cmdRender(positionals, options) {
|
|
|
253
276
|
// framlit render status <renderId>
|
|
254
277
|
if (positionals[0] === 'status') {
|
|
255
278
|
const renderId = positionals[1];
|
|
256
|
-
if (!renderId)
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
}
|
|
279
|
+
if (!renderId)
|
|
280
|
+
exitInvalidArg('Render ID required', outputMode);
|
|
281
|
+
(0, validation_js_1.validateResourceId)(renderId, 'renderId');
|
|
260
282
|
if (options.poll) {
|
|
261
283
|
// Poll mode: stream NDJSON until completion
|
|
262
284
|
let done = false;
|
|
@@ -280,10 +302,9 @@ async function cmdRender(positionals, options) {
|
|
|
280
302
|
}
|
|
281
303
|
// framlit render <projectId>
|
|
282
304
|
const projectId = positionals[0];
|
|
283
|
-
if (!projectId)
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
}
|
|
305
|
+
if (!projectId)
|
|
306
|
+
exitInvalidArg('Project ID required', outputMode);
|
|
307
|
+
(0, validation_js_1.validateResourceId)(projectId, 'projectId');
|
|
287
308
|
if (options['dry-run']) {
|
|
288
309
|
console.log((0, output_js_1.formatOutput)({ projectId }, `[dry-run] Would start render for project: ${projectId}`, outputMode));
|
|
289
310
|
return;
|
|
@@ -295,6 +316,8 @@ async function cmdTemplates(_positionals, options) {
|
|
|
295
316
|
const outputMode = (0, output_js_1.detectOutputMode)(options.output);
|
|
296
317
|
const client = new client_js_1.FramlitClient(getApiKey());
|
|
297
318
|
const category = options.category;
|
|
319
|
+
if (category)
|
|
320
|
+
(0, validation_js_1.validateTextInput)(category, 'category', 100);
|
|
298
321
|
const official = options.official;
|
|
299
322
|
const result = await handlers.handleListTemplates(client, { category, official });
|
|
300
323
|
console.log((0, output_js_1.formatOutput)(result.data, result.message, outputMode));
|
|
@@ -302,10 +325,8 @@ async function cmdTemplates(_positionals, options) {
|
|
|
302
325
|
async function cmdPreview(positionals, options) {
|
|
303
326
|
const outputMode = (0, output_js_1.detectOutputMode)(options.output);
|
|
304
327
|
const codeInput = positionals[0];
|
|
305
|
-
if (!codeInput)
|
|
306
|
-
|
|
307
|
-
process.exit(1);
|
|
308
|
-
}
|
|
328
|
+
if (!codeInput)
|
|
329
|
+
exitInvalidArg('Code or file path required', outputMode);
|
|
309
330
|
const code = resolveCodeValue(codeInput);
|
|
310
331
|
const client = new client_js_1.FramlitClient(getApiKey());
|
|
311
332
|
const result = await handlers.handlePreviewCode(client, { code });
|
|
@@ -323,8 +344,8 @@ function cmdSchema(positionals, options) {
|
|
|
323
344
|
if (toolName) {
|
|
324
345
|
const entry = (0, registry_js_1.getToolByName)(toolName);
|
|
325
346
|
if (!entry) {
|
|
326
|
-
console.error((0, output_js_1.formatError)(`Unknown tool: ${toolName}. Run "framlit schema" to list all tools.`, outputMode));
|
|
327
|
-
process.exit(
|
|
347
|
+
console.error((0, output_js_1.formatError)(`Unknown tool: ${toolName}. Run "framlit schema" to list all tools.`, outputMode, 'NOT_FOUND'));
|
|
348
|
+
process.exit(exit_codes_js_1.EXIT.INVALID_ARGS);
|
|
328
349
|
}
|
|
329
350
|
const schema = {
|
|
330
351
|
name: entry.name,
|
|
@@ -424,15 +445,29 @@ async function main() {
|
|
|
424
445
|
console.log(VERSION);
|
|
425
446
|
break;
|
|
426
447
|
default:
|
|
427
|
-
console.error(`Unknown command: ${command}
|
|
428
|
-
process.exit(
|
|
448
|
+
console.error((0, output_js_1.formatError)(`Unknown command: ${command}. Run "framlit help" for usage.`, (0, output_js_1.detectOutputMode)(values.output), 'UNKNOWN_COMMAND'));
|
|
449
|
+
process.exit(exit_codes_js_1.EXIT.INVALID_ARGS);
|
|
429
450
|
}
|
|
430
451
|
}
|
|
431
452
|
catch (error) {
|
|
432
453
|
const mode = (0, output_js_1.detectOutputMode)(values.output);
|
|
454
|
+
if (error instanceof validation_js_1.ValidationError) {
|
|
455
|
+
console.error((0, output_js_1.formatError)(error.message, mode, 'VALIDATION_ERROR'));
|
|
456
|
+
process.exit(exit_codes_js_1.EXIT.INVALID_ARGS);
|
|
457
|
+
}
|
|
433
458
|
const msg = error instanceof Error ? error.message : 'Unknown error';
|
|
434
|
-
|
|
435
|
-
|
|
459
|
+
// Detect specific API error codes from message
|
|
460
|
+
let code = 'API_ERROR';
|
|
461
|
+
if (msg.includes('Invalid or revoked API key'))
|
|
462
|
+
code = 'AUTH_REQUIRED';
|
|
463
|
+
else if (msg.includes('Insufficient credits'))
|
|
464
|
+
code = 'INSUFFICIENT_CREDITS';
|
|
465
|
+
else if (msg.includes('not found'))
|
|
466
|
+
code = 'NOT_FOUND';
|
|
467
|
+
else if (msg.includes('rate limit') || msg.includes('429'))
|
|
468
|
+
code = 'RATE_LIMITED';
|
|
469
|
+
console.error((0, output_js_1.formatError)(msg, mode, code));
|
|
470
|
+
process.exit((0, exit_codes_js_1.exitCodeForError)(code));
|
|
436
471
|
}
|
|
437
472
|
}
|
|
438
473
|
main();
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/output.d.ts
CHANGED
|
@@ -4,10 +4,11 @@
|
|
|
4
4
|
* Handles text/JSON/NDJSON output for the CLI.
|
|
5
5
|
* Auto-detects piped output and defaults to JSON.
|
|
6
6
|
*/
|
|
7
|
+
import type { ErrorCode } from './exit-codes.js';
|
|
7
8
|
export type OutputMode = 'text' | 'json';
|
|
8
9
|
export declare function detectOutputMode(explicit?: string): OutputMode;
|
|
9
10
|
export declare function formatOutput(data: unknown, message: string, mode: OutputMode): string;
|
|
10
|
-
export declare function formatError(
|
|
11
|
+
export declare function formatError(message: string, mode: OutputMode, code?: ErrorCode): string;
|
|
11
12
|
/**
|
|
12
13
|
* Write a single NDJSON line to stdout (for --poll streaming).
|
|
13
14
|
*/
|
package/dist/cli/output.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/cli/output.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;AAEzC,wBAAgB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,UAAU,CAM9D;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CAKrF;AAED,wBAAgB,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/cli/output.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;AAEzC,wBAAgB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,UAAU,CAM9D;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CAKrF;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,MAAM,CAKvF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAEnD"}
|
package/dist/cli/output.js
CHANGED
|
@@ -26,11 +26,11 @@ function formatOutput(data, message, mode) {
|
|
|
26
26
|
}
|
|
27
27
|
return message;
|
|
28
28
|
}
|
|
29
|
-
function formatError(
|
|
29
|
+
function formatError(message, mode, code) {
|
|
30
30
|
if (mode === 'json') {
|
|
31
|
-
return JSON.stringify({ error }, null, 2);
|
|
31
|
+
return JSON.stringify({ error: { code: code ?? 'API_ERROR', message } }, null, 2);
|
|
32
32
|
}
|
|
33
|
-
return `Error: ${
|
|
33
|
+
return `Error: ${message}`;
|
|
34
34
|
}
|
|
35
35
|
/**
|
|
36
36
|
* Write a single NDJSON line to stdout (for --poll streaming).
|
package/dist/cli/output.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/cli/output.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/cli/output.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAMH,4CAMC;AAED,oCAKC;AAED,kCAKC;AAKD,0CAEC;AA3BD,SAAgB,gBAAgB,CAAC,QAAiB;IAChD,IAAI,QAAQ,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC;IACvC,IAAI,QAAQ,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC;IACvC,yEAAyE;IACzE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK;QAAE,OAAO,MAAM,CAAC;IACzC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,YAAY,CAAC,IAAa,EAAE,OAAe,EAAE,IAAgB;IAC3E,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAgB,WAAW,CAAC,OAAe,EAAE,IAAgB,EAAE,IAAgB;IAC7E,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,IAAI,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACpF,CAAC;IACD,OAAO,UAAU,OAAO,EAAE,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAAC,IAAa;IAC3C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AACpD,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Input Validation
|
|
3
|
+
*
|
|
4
|
+
* Defends against path traversal, control character injection,
|
|
5
|
+
* and resource ID injection from untrusted agent input.
|
|
6
|
+
*/
|
|
7
|
+
export declare class ValidationError extends Error {
|
|
8
|
+
constructor(message: string);
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Reject strings containing control characters (except tab/newline/CR).
|
|
12
|
+
* Prevents terminal escape injection and hidden content.
|
|
13
|
+
*/
|
|
14
|
+
export declare function rejectControlChars(value: string, fieldName: string): void;
|
|
15
|
+
/**
|
|
16
|
+
* Validate a resource ID (project ID, render ID, etc).
|
|
17
|
+
* Blocks characters that could cause URL parameter injection.
|
|
18
|
+
*/
|
|
19
|
+
export declare function validateResourceId(id: string, fieldName: string): void;
|
|
20
|
+
/**
|
|
21
|
+
* Validate a file path is safe (no traversal).
|
|
22
|
+
*/
|
|
23
|
+
export declare function validateSafePath(filePath: string, fieldName: string): void;
|
|
24
|
+
/**
|
|
25
|
+
* Validate user-provided text input (prompts, names, instructions).
|
|
26
|
+
* Allows most content but rejects control characters.
|
|
27
|
+
*/
|
|
28
|
+
export declare function validateTextInput(value: string, fieldName: string, maxLength?: number): void;
|
|
29
|
+
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/cli/validation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAWH,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,OAAO,EAAE,MAAM;CAI5B;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAMzE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAYtE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAO1E;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,SAAQ,GAAG,IAAI,CAO3F"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Input Validation
|
|
4
|
+
*
|
|
5
|
+
* Defends against path traversal, control character injection,
|
|
6
|
+
* and resource ID injection from untrusted agent input.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.ValidationError = void 0;
|
|
10
|
+
exports.rejectControlChars = rejectControlChars;
|
|
11
|
+
exports.validateResourceId = validateResourceId;
|
|
12
|
+
exports.validateSafePath = validateSafePath;
|
|
13
|
+
exports.validateTextInput = validateTextInput;
|
|
14
|
+
// Control characters (0x00-0x1F except tab 0x09, newline 0x0A, CR 0x0D)
|
|
15
|
+
const CONTROL_CHAR_RE = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]/;
|
|
16
|
+
// Dangerous resource ID characters that could cause URL injection
|
|
17
|
+
const UNSAFE_ID_RE = /[?#%&=\s/\\]/;
|
|
18
|
+
// Path traversal patterns
|
|
19
|
+
const PATH_TRAVERSAL_RE = /(?:^|\/)\.\.(?:\/|$)/;
|
|
20
|
+
class ValidationError extends Error {
|
|
21
|
+
constructor(message) {
|
|
22
|
+
super(message);
|
|
23
|
+
this.name = 'ValidationError';
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.ValidationError = ValidationError;
|
|
27
|
+
/**
|
|
28
|
+
* Reject strings containing control characters (except tab/newline/CR).
|
|
29
|
+
* Prevents terminal escape injection and hidden content.
|
|
30
|
+
*/
|
|
31
|
+
function rejectControlChars(value, fieldName) {
|
|
32
|
+
if (CONTROL_CHAR_RE.test(value)) {
|
|
33
|
+
throw new ValidationError(`${fieldName} contains control characters — rejected for safety`);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Validate a resource ID (project ID, render ID, etc).
|
|
38
|
+
* Blocks characters that could cause URL parameter injection.
|
|
39
|
+
*/
|
|
40
|
+
function validateResourceId(id, fieldName) {
|
|
41
|
+
rejectControlChars(id, fieldName);
|
|
42
|
+
if (UNSAFE_ID_RE.test(id)) {
|
|
43
|
+
throw new ValidationError(`${fieldName} contains invalid characters (?, #, %, &, =, spaces, slashes are not allowed)`);
|
|
44
|
+
}
|
|
45
|
+
if (id.length === 0 || id.length > 200) {
|
|
46
|
+
throw new ValidationError(`${fieldName} must be 1-200 characters`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Validate a file path is safe (no traversal).
|
|
51
|
+
*/
|
|
52
|
+
function validateSafePath(filePath, fieldName) {
|
|
53
|
+
rejectControlChars(filePath, fieldName);
|
|
54
|
+
if (PATH_TRAVERSAL_RE.test(filePath)) {
|
|
55
|
+
throw new ValidationError(`${fieldName} contains path traversal (../) — rejected for safety`);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Validate user-provided text input (prompts, names, instructions).
|
|
60
|
+
* Allows most content but rejects control characters.
|
|
61
|
+
*/
|
|
62
|
+
function validateTextInput(value, fieldName, maxLength = 10000) {
|
|
63
|
+
rejectControlChars(value, fieldName);
|
|
64
|
+
if (value.length > maxLength) {
|
|
65
|
+
throw new ValidationError(`${fieldName} exceeds maximum length of ${maxLength} characters`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/cli/validation.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAsBH,gDAMC;AAMD,gDAYC;AAKD,4CAOC;AAMD,8CAOC;AArED,wEAAwE;AACxE,MAAM,eAAe,GAAG,kCAAkC,CAAC;AAE3D,kEAAkE;AAClE,MAAM,YAAY,GAAG,cAAc,CAAC;AAEpC,0BAA0B;AAC1B,MAAM,iBAAiB,GAAG,sBAAsB,CAAC;AAEjD,MAAa,eAAgB,SAAQ,KAAK;IACxC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AALD,0CAKC;AAED;;;GAGG;AACH,SAAgB,kBAAkB,CAAC,KAAa,EAAE,SAAiB;IACjE,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,eAAe,CACvB,GAAG,SAAS,oDAAoD,CACjE,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAgB,kBAAkB,CAAC,EAAU,EAAE,SAAiB;IAC9D,kBAAkB,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IAClC,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,eAAe,CACvB,GAAG,SAAS,+EAA+E,CAC5F,CAAC;IACJ,CAAC;IACD,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QACvC,MAAM,IAAI,eAAe,CACvB,GAAG,SAAS,2BAA2B,CACxC,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAC,QAAgB,EAAE,SAAiB;IAClE,kBAAkB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACxC,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,eAAe,CACvB,GAAG,SAAS,sDAAsD,CACnE,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAgB,iBAAiB,CAAC,KAAa,EAAE,SAAiB,EAAE,SAAS,GAAG,KAAK;IACnF,kBAAkB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACrC,IAAI,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;QAC7B,MAAM,IAAI,eAAe,CACvB,GAAG,SAAS,8BAA8B,SAAS,aAAa,CACjE,CAAC;IACJ,CAAC;AACH,CAAC"}
|
package/dist/mcp/server.js
CHANGED
|
@@ -10,11 +10,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
10
10
|
const index_js_1 = require("@modelcontextprotocol/sdk/server/index.js");
|
|
11
11
|
const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
|
|
12
12
|
const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
|
|
13
|
+
const node_fs_1 = require("node:fs");
|
|
14
|
+
const node_path_1 = require("node:path");
|
|
13
15
|
const client_js_1 = require("../api/client.js");
|
|
14
16
|
const registry_js_1 = require("../core/registry.js");
|
|
15
17
|
// Server configuration
|
|
16
18
|
const SERVER_NAME = 'framlit-mcp';
|
|
17
|
-
const SERVER_VERSION =
|
|
19
|
+
const SERVER_VERSION = (() => {
|
|
20
|
+
try {
|
|
21
|
+
const pkg = JSON.parse((0, node_fs_1.readFileSync)((0, node_path_1.resolve)(__dirname, '..', '..', 'package.json'), 'utf-8'));
|
|
22
|
+
return pkg.version || '0.0.0';
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
return '0.0.0';
|
|
26
|
+
}
|
|
27
|
+
})();
|
|
18
28
|
// Initialize server
|
|
19
29
|
const server = new index_js_1.Server({
|
|
20
30
|
name: SERVER_NAME,
|
package/dist/mcp/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":";;AACA;;;;;GAKG;;AAEH,wEAAmE;AACnE,wEAAiF;AACjF,iEAK4C;AAE5C,gDAAiD;AACjD,qDAAoF;AAEpF,uBAAuB;AACvB,MAAM,WAAW,GAAG,aAAa,CAAC;AAClC,MAAM,cAAc,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "framlit-mcp",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"description": "MCP server and CLI for Framlit - AI-powered video generation",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -15,7 +15,9 @@
|
|
|
15
15
|
"start": "node dist/mcp/server.js",
|
|
16
16
|
"start:cli": "node dist/cli/index.js",
|
|
17
17
|
"lint": "eslint src/",
|
|
18
|
-
"
|
|
18
|
+
"test": "vitest run",
|
|
19
|
+
"test:watch": "vitest",
|
|
20
|
+
"prepublishOnly": "npm run build && npm run test"
|
|
19
21
|
},
|
|
20
22
|
"keywords": [
|
|
21
23
|
"mcp",
|
|
@@ -36,7 +38,8 @@
|
|
|
36
38
|
"@types/node": "^20.14.0",
|
|
37
39
|
"eslint": "^8.57.0",
|
|
38
40
|
"tsx": "^4.21.0",
|
|
39
|
-
"typescript": "^5.5.0"
|
|
41
|
+
"typescript": "^5.5.0",
|
|
42
|
+
"vitest": "^4.1.4"
|
|
40
43
|
},
|
|
41
44
|
"engines": {
|
|
42
45
|
"node": ">=18.0.0"
|