framlit-mcp 0.3.0 → 0.4.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.
package/README.md CHANGED
@@ -50,22 +50,26 @@ 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
53
+ # Install globally
54
+ npm install -g framlit-mcp
55
55
 
56
- # Use directly via npx
57
- npx framlit generate "A logo animation with rotating 3D text"
56
+ # Authorize this machine — opens your browser
57
+ framlit login
58
58
 
59
- # Or install globally
60
- npm install -g framlit-mcp
59
+ # You're ready
61
60
  framlit generate "Product demo with fade-in text"
62
61
  ```
63
62
 
63
+ Prefer an env var? `export FRAMLIT_API_KEY=fml_...` still works and takes
64
+ precedence over `framlit login` — handy for CI and container setups.
65
+
64
66
  ## CLI Usage
65
67
 
66
68
  ```bash
67
- # Set your API key first
68
- export FRAMLIT_API_KEY=fml_your_api_key_here
69
+ # One-time auth (or set FRAMLIT_API_KEY in your shell)
70
+ framlit login
71
+ framlit whoami # email / plan / credits
72
+ framlit logout # remove ~/.framlit/config
69
73
 
70
74
  # Generate video code
71
75
  framlit generate "Logo animation with rotating text" --format landscape
@@ -0,0 +1,19 @@
1
+ /**
2
+ * `framlit login` — Stripe/Vercel-style CLI login.
3
+ *
4
+ * Flow:
5
+ * 1. Generate 32-hex state token for CSRF.
6
+ * 2. Start a tiny HTTP server on OS-assigned port (127.0.0.1).
7
+ * 3. Open https://framlit.app/developers/cli-authorize in the browser with
8
+ * cli_callback + state query params.
9
+ * 4. User signs in + clicks Authorize on framlit.app.
10
+ * 5. framlit.app 303-redirects the browser to
11
+ * http://127.0.0.1:PORT/?key=fml_…&state=<same>
12
+ * 6. Our local server receives the GET, validates state (timing-safe),
13
+ * saves ~/.framlit/config, responds with a success HTML page,
14
+ * and shuts itself down.
15
+ *
16
+ * Issue #63.
17
+ */
18
+ export declare function cmdLogin(): Promise<void>;
19
+ //# sourceMappingURL=login.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/login.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAgJH,wBAAsB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAiF9C"}
@@ -0,0 +1,204 @@
1
+ "use strict";
2
+ /**
3
+ * `framlit login` — Stripe/Vercel-style CLI login.
4
+ *
5
+ * Flow:
6
+ * 1. Generate 32-hex state token for CSRF.
7
+ * 2. Start a tiny HTTP server on OS-assigned port (127.0.0.1).
8
+ * 3. Open https://framlit.app/developers/cli-authorize in the browser with
9
+ * cli_callback + state query params.
10
+ * 4. User signs in + clicks Authorize on framlit.app.
11
+ * 5. framlit.app 303-redirects the browser to
12
+ * http://127.0.0.1:PORT/?key=fml_…&state=<same>
13
+ * 6. Our local server receives the GET, validates state (timing-safe),
14
+ * saves ~/.framlit/config, responds with a success HTML page,
15
+ * and shuts itself down.
16
+ *
17
+ * Issue #63.
18
+ */
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.cmdLogin = cmdLogin;
21
+ const node_http_1 = require("node:http");
22
+ const node_crypto_1 = require("node:crypto");
23
+ const node_child_process_1 = require("node:child_process");
24
+ const node_os_1 = require("node:os");
25
+ const node_url_1 = require("node:url");
26
+ const client_js_1 = require("../../api/client.js");
27
+ const config_js_1 = require("../config.js");
28
+ const exit_codes_js_1 = require("../exit-codes.js");
29
+ const LOGIN_TIMEOUT_MS = 120_000;
30
+ const AUTHORIZE_PATH = '/developers/cli-authorize';
31
+ function getWebBaseUrl() {
32
+ // FRAMLIT_API_URL points at the API root; strip trailing slashes and
33
+ // reuse it for the consent page too. Defaults to prod.
34
+ const api = process.env.FRAMLIT_API_URL || 'https://framlit.app';
35
+ return api.replace(/\/$/, '');
36
+ }
37
+ function openBrowser(url) {
38
+ const sys = (0, node_os_1.platform)();
39
+ const cmd = sys === 'darwin' ? 'open' : sys === 'win32' ? 'start' : 'xdg-open';
40
+ try {
41
+ const child = (0, node_child_process_1.spawn)(cmd, [url], { stdio: 'ignore', detached: true });
42
+ child.unref();
43
+ }
44
+ catch {
45
+ // Fall back silently — we print the URL so user can copy-paste.
46
+ }
47
+ }
48
+ const SUCCESS_HTML = `<!doctype html>
49
+ <html>
50
+ <head>
51
+ <meta charset="utf-8" />
52
+ <title>Framlit CLI — Authorized</title>
53
+ <style>
54
+ body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; display: flex; align-items: center; justify-content: center; min-height: 100vh; margin: 0; background: #0b0f14; color: #e5e7eb; }
55
+ .card { max-width: 420px; padding: 32px; background: #111827; border: 1px solid #1f2937; border-radius: 16px; text-align: center; }
56
+ h1 { margin: 0 0 8px; font-size: 20px; }
57
+ p { margin: 0; color: #9ca3af; font-size: 14px; }
58
+ .check { font-size: 40px; margin-bottom: 12px; }
59
+ </style>
60
+ </head>
61
+ <body>
62
+ <div class="card">
63
+ <div class="check">✓</div>
64
+ <h1>framlit CLI authorized</h1>
65
+ <p>You can close this tab and return to your terminal.</p>
66
+ </div>
67
+ </body>
68
+ </html>`;
69
+ const FAILURE_HTML = (reason) => `<!doctype html>
70
+ <html>
71
+ <head><meta charset="utf-8" /><title>Framlit CLI — Authorization failed</title>
72
+ <style>body{font-family:sans-serif;display:flex;align-items:center;justify-content:center;min-height:100vh;margin:0;background:#0b0f14;color:#fca5a5;}.card{max-width:420px;padding:32px;text-align:center;}</style>
73
+ </head>
74
+ <body><div class="card"><h1>Authorization failed</h1><p>${reason}</p><p style="color:#9ca3af;margin-top:8px">Check your terminal for details.</p></div></body>
75
+ </html>`;
76
+ async function waitForCallback(server, port, expectedState) {
77
+ return new Promise((resolve, reject) => {
78
+ const timeout = setTimeout(() => {
79
+ server.close();
80
+ reject(new Error(`Login timed out after ${LOGIN_TIMEOUT_MS / 1000}s`));
81
+ }, LOGIN_TIMEOUT_MS);
82
+ server.on('request', (req, res) => {
83
+ if (!req.url || !req.url.startsWith('/')) {
84
+ res.statusCode = 404;
85
+ res.end('Not found');
86
+ return;
87
+ }
88
+ const url = new node_url_1.URL(req.url, `http://127.0.0.1:${port}`);
89
+ const key = url.searchParams.get('key');
90
+ const state = url.searchParams.get('state');
91
+ if (!key || !state) {
92
+ res.statusCode = 400;
93
+ res.setHeader('Content-Type', 'text/html; charset=utf-8');
94
+ res.end(FAILURE_HTML('Missing key or state parameter.'));
95
+ return;
96
+ }
97
+ // Timing-safe state comparison — the expected and actual both come
98
+ // from the CLI and framlit.app respectively; a mismatch means either
99
+ // CSRF attempt or a stale tab. Either way: reject.
100
+ const a = Buffer.from(state);
101
+ const b = Buffer.from(expectedState);
102
+ const stateOk = a.length === b.length && (0, node_crypto_1.timingSafeEqual)(a, b);
103
+ if (!stateOk) {
104
+ res.statusCode = 400;
105
+ res.setHeader('Content-Type', 'text/html; charset=utf-8');
106
+ res.end(FAILURE_HTML('State mismatch — not the expected login attempt.'));
107
+ clearTimeout(timeout);
108
+ server.close();
109
+ reject(new Error('State mismatch; aborting login.'));
110
+ return;
111
+ }
112
+ if (!key.startsWith('fml_')) {
113
+ res.statusCode = 400;
114
+ res.setHeader('Content-Type', 'text/html; charset=utf-8');
115
+ res.end(FAILURE_HTML('Received malformed API key.'));
116
+ clearTimeout(timeout);
117
+ server.close();
118
+ reject(new Error('Malformed key received from server.'));
119
+ return;
120
+ }
121
+ res.statusCode = 200;
122
+ res.setHeader('Content-Type', 'text/html; charset=utf-8');
123
+ res.end(SUCCESS_HTML);
124
+ clearTimeout(timeout);
125
+ // Give the browser a beat to render the success page before the
126
+ // socket closes.
127
+ setTimeout(() => server.close(), 150);
128
+ resolve({
129
+ api_key: key,
130
+ key_prefix: key.slice(0, 8),
131
+ });
132
+ });
133
+ server.on('error', (err) => {
134
+ clearTimeout(timeout);
135
+ reject(err);
136
+ });
137
+ });
138
+ }
139
+ async function cmdLogin() {
140
+ if (process.env.FRAMLIT_API_KEY) {
141
+ console.log('⚠ FRAMLIT_API_KEY is set in your environment — it overrides any\n' +
142
+ ' key saved by `framlit login`. Unset it first if you want `login`\n' +
143
+ ' to take effect:\n' +
144
+ ' unset FRAMLIT_API_KEY');
145
+ }
146
+ const state = (0, node_crypto_1.randomBytes)(16).toString('hex');
147
+ const server = (0, node_http_1.createServer)();
148
+ await new Promise((resolve, reject) => {
149
+ server.once('error', reject);
150
+ server.listen(0, '127.0.0.1', () => resolve());
151
+ });
152
+ const addr = server.address();
153
+ if (typeof addr !== 'object' || !addr) {
154
+ server.close();
155
+ throw new Error('Failed to get localhost server address');
156
+ }
157
+ const port = addr.port;
158
+ const callback = `http://127.0.0.1:${port}`;
159
+ const authorizeUrl = `${getWebBaseUrl()}${AUTHORIZE_PATH}?cli_callback=${encodeURIComponent(callback)}&state=${encodeURIComponent(state)}`;
160
+ console.log('Opening your browser to authorize the framlit CLI…');
161
+ console.log('If it does not open automatically, copy this URL:');
162
+ console.log(` ${authorizeUrl}\n`);
163
+ openBrowser(authorizeUrl);
164
+ let outcome;
165
+ try {
166
+ outcome = await waitForCallback(server, port, state);
167
+ }
168
+ catch (err) {
169
+ server.close();
170
+ console.error('\n✗ Login failed: ' +
171
+ (err instanceof Error ? err.message : 'Unknown error'));
172
+ console.error(' Retry with `framlit login`, or create a key manually at', 'https://framlit.app/developers');
173
+ process.exit(exit_codes_js_1.EXIT.AUTH_REQUIRED);
174
+ }
175
+ // Fetch user info so we can print a helpful confirmation and cache the
176
+ // email in the config file.
177
+ let email;
178
+ let plan;
179
+ let creditsRemaining;
180
+ try {
181
+ const client = new client_js_1.FramlitClient(outcome.api_key);
182
+ const info = (await client.getUserInfo());
183
+ email = info.email;
184
+ plan = info.plan;
185
+ creditsRemaining = info.creditsRemaining;
186
+ }
187
+ catch {
188
+ // Non-fatal — the key is already saved; whoami will try again.
189
+ }
190
+ (0, config_js_1.saveConfig)({
191
+ api_key: outcome.api_key,
192
+ key_prefix: outcome.key_prefix,
193
+ user_email: email,
194
+ created_at: new Date().toISOString(),
195
+ });
196
+ console.log('');
197
+ console.log('✓ Logged in' + (email ? ` as ${email}` : ''));
198
+ if (creditsRemaining !== undefined) {
199
+ const planLabel = plan ? `· ${plan} plan` : '';
200
+ console.log(` ${creditsRemaining} credits remaining ${planLabel}`.trim());
201
+ }
202
+ console.log(` Key ${outcome.key_prefix}… saved to ~/.framlit/config`);
203
+ }
204
+ //# sourceMappingURL=login.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/cli/commands/login.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * `framlit logout` — remove the saved API key config.
3
+ *
4
+ * Prints a note if FRAMLIT_API_KEY is still set, since the env var takes
5
+ * precedence and would otherwise silently keep the user "logged in".
6
+ *
7
+ * Issue #63.
8
+ */
9
+ export declare function cmdLogout(): void;
10
+ //# sourceMappingURL=logout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logout.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/logout.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,wBAAgB,SAAS,IAAI,IAAI,CAahC"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ /**
3
+ * `framlit logout` — remove the saved API key config.
4
+ *
5
+ * Prints a note if FRAMLIT_API_KEY is still set, since the env var takes
6
+ * precedence and would otherwise silently keep the user "logged in".
7
+ *
8
+ * Issue #63.
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.cmdLogout = cmdLogout;
12
+ const config_js_1 = require("../config.js");
13
+ function cmdLogout() {
14
+ const removed = (0, config_js_1.clearConfig)();
15
+ if (removed) {
16
+ console.log(`Logged out — removed ${(0, config_js_1.getConfigPath)()}`);
17
+ }
18
+ else {
19
+ console.log('Not logged in — no config file to remove.');
20
+ }
21
+ if (process.env.FRAMLIT_API_KEY) {
22
+ console.log('\nNote: FRAMLIT_API_KEY is still set in your environment. Unset it\n' +
23
+ 'with `unset FRAMLIT_API_KEY` to fully sign out.');
24
+ }
25
+ }
26
+ //# sourceMappingURL=logout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logout.js","sourceRoot":"","sources":["../../../src/cli/commands/logout.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;AAIH,8BAaC;AAfD,4CAA0D;AAE1D,SAAgB,SAAS;IACvB,MAAM,OAAO,GAAG,IAAA,uBAAW,GAAE,CAAC;IAC9B,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAA,yBAAa,GAAE,EAAE,CAAC,CAAC;IACzD,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CACT,sEAAsE;YACpE,iDAAiD,CACpD,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * `framlit whoami` — show the currently-authenticated account.
3
+ *
4
+ * Resolves the API key the same way the rest of the CLI does
5
+ * (env var wins over saved config), then calls `/api/mcp/user` for
6
+ * email + credits + plan tier.
7
+ *
8
+ * Issue #63.
9
+ */
10
+ export declare function cmdWhoami(options?: Record<string, unknown>): Promise<void>;
11
+ //# sourceMappingURL=whoami.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whoami.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/whoami.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAcH,wBAAsB,SAAS,CAC7B,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACpC,OAAO,CAAC,IAAI,CAAC,CAwDf"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ /**
3
+ * `framlit whoami` — show the currently-authenticated account.
4
+ *
5
+ * Resolves the API key the same way the rest of the CLI does
6
+ * (env var wins over saved config), then calls `/api/mcp/user` for
7
+ * email + credits + plan tier.
8
+ *
9
+ * Issue #63.
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.cmdWhoami = cmdWhoami;
13
+ const client_js_1 = require("../../api/client.js");
14
+ const config_js_1 = require("../config.js");
15
+ const output_js_1 = require("../output.js");
16
+ const exit_codes_js_1 = require("../exit-codes.js");
17
+ async function cmdWhoami(options = {}) {
18
+ const outputMode = (0, output_js_1.detectOutputMode)(options.output);
19
+ const envKey = process.env.FRAMLIT_API_KEY;
20
+ const cfg = (0, config_js_1.loadConfig)();
21
+ const apiKey = envKey || cfg?.api_key;
22
+ if (!apiKey) {
23
+ console.error((0, output_js_1.formatError)('Not logged in. Run: framlit login', outputMode, 'AUTH_REQUIRED'));
24
+ process.exit(exit_codes_js_1.EXIT.AUTH_REQUIRED);
25
+ }
26
+ const source = envKey ? 'FRAMLIT_API_KEY env var' : '~/.framlit/config';
27
+ const prefix = apiKey.slice(0, 8);
28
+ let info = {};
29
+ try {
30
+ const client = new client_js_1.FramlitClient(apiKey);
31
+ info = (await client.getUserInfo());
32
+ }
33
+ catch (err) {
34
+ console.error((0, output_js_1.formatError)(`Failed to load user info: ${err instanceof Error ? err.message : 'unknown'}`, outputMode, 'API_ERROR'));
35
+ process.exit(exit_codes_js_1.EXIT.API_ERROR);
36
+ }
37
+ const payload = {
38
+ email: info.email ?? cfg?.user_email ?? null,
39
+ plan: info.plan ?? null,
40
+ creditsRemaining: info.creditsRemaining ?? null,
41
+ creditsTotal: info.creditsTotal ?? null,
42
+ keyPrefix: `${prefix}…`,
43
+ keySource: source,
44
+ };
45
+ const lines = [];
46
+ if (payload.email)
47
+ lines.push(`Email: ${payload.email}`);
48
+ if (payload.plan)
49
+ lines.push(`Plan: ${payload.plan}`);
50
+ if (payload.creditsRemaining !== null) {
51
+ const total = payload.creditsTotal !== null ? ` / ${payload.creditsTotal}` : '';
52
+ lines.push(`Credits: ${payload.creditsRemaining}${total}`);
53
+ }
54
+ lines.push(`Key: ${payload.keyPrefix} (from ${source})`);
55
+ console.log((0, output_js_1.formatOutput)(payload, lines.join('\n'), outputMode));
56
+ }
57
+ //# sourceMappingURL=whoami.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../../src/cli/commands/whoami.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;AAcH,8BA0DC;AAtED,mDAAoD;AACpD,4CAA0C;AAC1C,4CAA2E;AAC3E,oDAAwC;AASjC,KAAK,UAAU,SAAS,CAC7B,UAAmC,EAAE;IAErC,MAAM,UAAU,GAAG,IAAA,4BAAgB,EAAC,OAAO,CAAC,MAA4B,CAAC,CAAC;IAE1E,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IAC3C,MAAM,GAAG,GAAG,IAAA,sBAAU,GAAE,CAAC;IACzB,MAAM,MAAM,GAAG,MAAM,IAAI,GAAG,EAAE,OAAO,CAAC;IAEtC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CACX,IAAA,uBAAW,EACT,mCAAmC,EACnC,UAAU,EACV,eAAe,CAChB,CACF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,oBAAI,CAAC,aAAa,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,mBAAmB,CAAC;IACxE,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAElC,IAAI,IAAI,GAAoB,EAAE,CAAC;IAC/B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,yBAAa,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,GAAG,CAAC,MAAM,MAAM,CAAC,WAAW,EAAE,CAAoB,CAAC;IACzD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CACX,IAAA,uBAAW,EACT,6BAA6B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,EAC7E,UAAU,EACV,WAAW,CACZ,CACF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,oBAAI,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,OAAO,GAAG;QACd,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,GAAG,EAAE,UAAU,IAAI,IAAI;QAC5C,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI;QACvB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,IAAI,IAAI;QAC/C,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,IAAI;QACvC,SAAS,EAAE,GAAG,MAAM,GAAG;QACvB,SAAS,EAAE,MAAM;KAClB,CAAC;IAEF,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,OAAO,CAAC,KAAK;QAAE,KAAK,CAAC,IAAI,CAAC,YAAY,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAC3D,IAAI,OAAO,CAAC,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,YAAY,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACzD,IAAI,OAAO,CAAC,gBAAgB,KAAK,IAAI,EAAE,CAAC;QACtC,MAAM,KAAK,GACT,OAAO,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,KAAK,CAAC,IAAI,CAAC,YAAY,OAAO,CAAC,gBAAgB,GAAG,KAAK,EAAE,CAAC,CAAC;IAC7D,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,YAAY,OAAO,CAAC,SAAS,UAAU,MAAM,GAAG,CAAC,CAAC;IAE7D,OAAO,CAAC,GAAG,CAAC,IAAA,wBAAY,EAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;AACnE,CAAC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * CLI config file persistence.
3
+ *
4
+ * `framlit login` writes the issued API key here so subsequent commands
5
+ * on the same machine don't need the env var. File lives at
6
+ * `~/.framlit/config` with mode 0600 so other users on a shared box
7
+ * can't read it.
8
+ *
9
+ * Issue #63.
10
+ */
11
+ export interface CliConfig {
12
+ /** Raw API key (fml_…). Hashed form stored server-side; this value is secret. */
13
+ api_key: string;
14
+ /** First 8 chars of the API key for display purposes. */
15
+ key_prefix: string;
16
+ /** Email of the Framlit user the key belongs to. Set after the first whoami/login round-trip. */
17
+ user_email?: string;
18
+ /** ISO timestamp of when this config was written. */
19
+ created_at: string;
20
+ }
21
+ export declare function getConfigPath(): string;
22
+ /**
23
+ * Read the config file. Returns null if missing or unparseable —
24
+ * callers treat that identically.
25
+ */
26
+ export declare function loadConfig(): CliConfig | null;
27
+ /**
28
+ * Write the config file with 0600 perms (owner-only read/write) so other
29
+ * users on a multi-tenant machine can't peek at the API key.
30
+ */
31
+ export declare function saveConfig(cfg: CliConfig): void;
32
+ /**
33
+ * Remove the config file. Returns true if a file was actually deleted
34
+ * (distinguishes "logged out" from "nothing to do").
35
+ */
36
+ export declare function clearConfig(): boolean;
37
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAaH,MAAM,WAAW,SAAS;IACxB,iFAAiF;IACjF,OAAO,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,UAAU,EAAE,MAAM,CAAC;IACnB,iGAAiG;IACjG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;;GAGG;AACH,wBAAgB,UAAU,IAAI,SAAS,GAAG,IAAI,CAiB7C;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAU/C;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,OAAO,CAKrC"}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ /**
3
+ * CLI config file persistence.
4
+ *
5
+ * `framlit login` writes the issued API key here so subsequent commands
6
+ * on the same machine don't need the env var. File lives at
7
+ * `~/.framlit/config` with mode 0600 so other users on a shared box
8
+ * can't read it.
9
+ *
10
+ * Issue #63.
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.getConfigPath = getConfigPath;
14
+ exports.loadConfig = loadConfig;
15
+ exports.saveConfig = saveConfig;
16
+ exports.clearConfig = clearConfig;
17
+ const node_fs_1 = require("node:fs");
18
+ const node_os_1 = require("node:os");
19
+ const node_path_1 = require("node:path");
20
+ function getConfigPath() {
21
+ return (0, node_path_1.join)((0, node_os_1.homedir)(), '.framlit', 'config');
22
+ }
23
+ /**
24
+ * Read the config file. Returns null if missing or unparseable —
25
+ * callers treat that identically.
26
+ */
27
+ function loadConfig() {
28
+ const path = getConfigPath();
29
+ if (!(0, node_fs_1.existsSync)(path))
30
+ return null;
31
+ try {
32
+ const raw = (0, node_fs_1.readFileSync)(path, 'utf-8');
33
+ const parsed = JSON.parse(raw);
34
+ if (!parsed ||
35
+ typeof parsed.api_key !== 'string' ||
36
+ !parsed.api_key.startsWith('fml_')) {
37
+ return null;
38
+ }
39
+ return parsed;
40
+ }
41
+ catch {
42
+ return null;
43
+ }
44
+ }
45
+ /**
46
+ * Write the config file with 0600 perms (owner-only read/write) so other
47
+ * users on a multi-tenant machine can't peek at the API key.
48
+ */
49
+ function saveConfig(cfg) {
50
+ const path = getConfigPath();
51
+ const dir = (0, node_path_1.dirname)(path);
52
+ if (!(0, node_fs_1.existsSync)(dir)) {
53
+ (0, node_fs_1.mkdirSync)(dir, { recursive: true, mode: 0o700 });
54
+ }
55
+ (0, node_fs_1.writeFileSync)(path, JSON.stringify(cfg, null, 2) + '\n', { mode: 0o600 });
56
+ // writeFileSync's `mode` is only applied on create; chmod unconditionally
57
+ // so overwrites also get tightened permissions.
58
+ (0, node_fs_1.chmodSync)(path, 0o600);
59
+ }
60
+ /**
61
+ * Remove the config file. Returns true if a file was actually deleted
62
+ * (distinguishes "logged out" from "nothing to do").
63
+ */
64
+ function clearConfig() {
65
+ const path = getConfigPath();
66
+ if (!(0, node_fs_1.existsSync)(path))
67
+ return false;
68
+ (0, node_fs_1.unlinkSync)(path);
69
+ return true;
70
+ }
71
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;AAwBH,sCAEC;AAMD,gCAiBC;AAMD,gCAUC;AAMD,kCAKC;AA1ED,qCAOiB;AACjB,qCAAkC;AAClC,yCAA0C;AAa1C,SAAgB,aAAa;IAC3B,OAAO,IAAA,gBAAI,EAAC,IAAA,iBAAO,GAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;AAC/C,CAAC;AAED;;;GAGG;AACH,SAAgB,UAAU;IACxB,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAC7B,IAAI,CAAC,IAAA,oBAAU,EAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAA,sBAAY,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAc,CAAC;QAC5C,IACE,CAAC,MAAM;YACP,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;YAClC,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAClC,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAgB,UAAU,CAAC,GAAc;IACvC,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAC7B,MAAM,GAAG,GAAG,IAAA,mBAAO,EAAC,IAAI,CAAC,CAAC;IAC1B,IAAI,CAAC,IAAA,oBAAU,EAAC,GAAG,CAAC,EAAE,CAAC;QACrB,IAAA,mBAAS,EAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACnD,CAAC;IACD,IAAA,uBAAa,EAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1E,0EAA0E;IAC1E,gDAAgD;IAChD,IAAA,mBAAS,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACzB,CAAC;AAED;;;GAGG;AACH,SAAgB,WAAW;IACzB,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAC7B,IAAI,CAAC,IAAA,oBAAU,EAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACpC,IAAA,oBAAU,EAAC,IAAI,CAAC,CAAC;IACjB,OAAO,IAAI,CAAC;AACd,CAAC"}
package/dist/cli/index.js CHANGED
@@ -65,6 +65,10 @@ const handlers = __importStar(require("../core/handlers.js"));
65
65
  const output_js_1 = require("./output.js");
66
66
  const exit_codes_js_1 = require("./exit-codes.js");
67
67
  const validation_js_1 = require("./validation.js");
68
+ const config_js_1 = require("./config.js");
69
+ const login_js_1 = require("./commands/login.js");
70
+ const whoami_js_1 = require("./commands/whoami.js");
71
+ const logout_js_1 = require("./commands/logout.js");
68
72
  // ---------------------------------------------------------------------------
69
73
  // Helpers
70
74
  // ---------------------------------------------------------------------------
@@ -80,12 +84,18 @@ const VERSION = (() => {
80
84
  }
81
85
  })();
82
86
  function getApiKey() {
83
- const key = process.env.FRAMLIT_API_KEY;
84
- if (!key) {
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);
87
- }
88
- return key;
87
+ // Precedence: FRAMLIT_API_KEY env var > saved CLI config.
88
+ // Env var wins so CI / agent setups with `-e FRAMLIT_API_KEY=...` keep
89
+ // working identically.
90
+ const envKey = process.env.FRAMLIT_API_KEY;
91
+ if (envKey)
92
+ return envKey;
93
+ const cfg = (0, config_js_1.loadConfig)();
94
+ if (cfg?.api_key)
95
+ return cfg.api_key;
96
+ console.error((0, output_js_1.formatError)('No API key configured. Run: framlit login\n' +
97
+ ' or: export FRAMLIT_API_KEY=fml_xxx (create at https://framlit.app/developers)', (0, output_js_1.detectOutputMode)(), 'AUTH_REQUIRED'));
98
+ process.exit(exit_codes_js_1.EXIT.AUTH_REQUIRED);
89
99
  }
90
100
  /**
91
101
  * Resolve a value that could be either inline text or a file path.
@@ -109,6 +119,9 @@ USAGE
109
119
  framlit <command> [options]
110
120
 
111
121
  COMMANDS
122
+ login Authorize this machine — opens browser
123
+ whoami Show the current account + credits
124
+ logout Remove the saved API key
112
125
  generate <prompt> Generate Remotion video code from text
113
126
  modify Modify existing Remotion code
114
127
  projects list List your projects
@@ -146,8 +159,12 @@ EXAMPLES
146
159
  framlit schema framlit_generate_code
147
160
  echo '{"prompt":"test"}' | framlit generate --json -
148
161
 
162
+ AUTH
163
+ Run \`framlit login\` once to save your API key to ~/.framlit/config.
164
+ Alternatively, set FRAMLIT_API_KEY (env var overrides the saved config).
165
+
149
166
  ENVIRONMENT
150
- FRAMLIT_API_KEY Your Framlit API key (required)
167
+ FRAMLIT_API_KEY Your Framlit API key (optional if logged in)
151
168
  FRAMLIT_API_URL Custom API URL (optional, for development)
152
169
 
153
170
  More info: https://framlit.app/developers`);
@@ -412,6 +429,15 @@ async function main() {
412
429
  }
413
430
  try {
414
431
  switch (command) {
432
+ case 'login':
433
+ await (0, login_js_1.cmdLogin)();
434
+ break;
435
+ case 'whoami':
436
+ await (0, whoami_js_1.cmdWhoami)(values);
437
+ break;
438
+ case 'logout':
439
+ (0, logout_js_1.cmdLogout)();
440
+ break;
415
441
  case 'generate':
416
442
  await cmdGenerate(rest, values);
417
443
  break;
@@ -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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "framlit-mcp",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
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",