@formlm/cli 0.2.2 → 0.2.4

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 (46) hide show
  1. package/README.md +9 -30
  2. package/dist/commands/app.d.ts.map +1 -1
  3. package/dist/commands/app.js +4 -3
  4. package/dist/commands/app.js.map +1 -1
  5. package/dist/commands/auth.d.ts.map +1 -1
  6. package/dist/commands/auth.js +64 -2
  7. package/dist/commands/auth.js.map +1 -1
  8. package/dist/commands/connect.d.ts.map +1 -1
  9. package/dist/commands/connect.js +34 -41
  10. package/dist/commands/connect.js.map +1 -1
  11. package/dist/commands/expert.d.ts.map +1 -1
  12. package/dist/commands/expert.js +15 -14
  13. package/dist/commands/expert.js.map +1 -1
  14. package/dist/commands/field.d.ts.map +1 -1
  15. package/dist/commands/field.js +17 -27
  16. package/dist/commands/field.js.map +1 -1
  17. package/dist/commands/report.d.ts.map +1 -1
  18. package/dist/commands/report.js +21 -27
  19. package/dist/commands/report.js.map +1 -1
  20. package/dist/commands/scale.d.ts.map +1 -1
  21. package/dist/commands/scale.js +13 -19
  22. package/dist/commands/scale.js.map +1 -1
  23. package/dist/commands/smart.d.ts.map +1 -1
  24. package/dist/commands/smart.js +39 -57
  25. package/dist/commands/smart.js.map +1 -1
  26. package/dist/commands/snapshot.d.ts.map +1 -1
  27. package/dist/commands/snapshot.js +7 -1
  28. package/dist/commands/snapshot.js.map +1 -1
  29. package/dist/exec.d.ts +1 -1
  30. package/dist/exec.d.ts.map +1 -1
  31. package/dist/exec.js +18 -2
  32. package/dist/exec.js.map +1 -1
  33. package/dist/index.js +44 -28
  34. package/dist/index.js.map +1 -1
  35. package/dist/mcp.d.ts.map +1 -1
  36. package/dist/mcp.js +51 -171
  37. package/dist/mcp.js.map +1 -1
  38. package/dist/utils.d.ts +18 -0
  39. package/dist/utils.d.ts.map +1 -0
  40. package/dist/utils.js +34 -0
  41. package/dist/utils.js.map +1 -0
  42. package/dist/version.d.ts +2 -0
  43. package/dist/version.d.ts.map +1 -0
  44. package/dist/version.js +11 -0
  45. package/dist/version.js.map +1 -0
  46. package/package.json +1 -1
package/dist/mcp.js CHANGED
@@ -3,28 +3,20 @@ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'
3
3
  import { z } from 'zod';
4
4
  import { execCommand, authLogin, authMe } from './exec.js';
5
5
  import { addProfile, getActiveProfile, getBaseUrl } from './config.js';
6
- // ── Helper: escape user input for embedding in CLI command strings ──────────
7
- // tokenizeCommand (server-side PipelineFilterCommand) supports \" as escaped
8
- // double-quote inside a quoted arg. Backslashes must also be escaped first.
9
- // Newlines / tabs are normalized to spaces since CLI commands must be single-line.
10
- function escapeArg(s) {
11
- return s
12
- .replace(/\\/g, '\\\\') // \ → \\ (must be first)
13
- .replace(/"/g, '\\"') // " → \"
14
- .replace(/\r?\n|\r/g, ' ') // newlines → space
15
- .replace(/\t/g, ' ') // tabs → space
16
- .trim();
17
- }
6
+ import { VERSION } from './version.js';
7
+ import { escapeArg } from './utils.js';
8
+ // escapeArg now lives in ./utils.js (shared with commands/smart.ts) so that the
9
+ // direct CLI and the MCP Server use a single, consistent escaping implementation.
18
10
  // ── Helper: format exec result as MCP text content ──────────────────────────
19
11
  function toText(r) {
20
12
  return r.code === 0 ? (r.data || r.message) : `❌ [${r.code}] ${r.message}`;
21
13
  }
22
- // ── Helper: format formlm_create result for better AI consumption ──────────────
14
+ // ── Helper: format formlm_generate result for better AI consumption ────────────
23
15
  // Extracts key fields (appId, shareUrl, planType, taskCount) from JSON result
24
16
  // and presents them in a structured summary for the AI Agent to relay to the user.
25
17
  // The full raw JSON is intentionally NOT dumped here (it can be very long for
26
18
  // multi-task pipelines) — use formlm_snapshot if full detail is needed.
27
- function formatCreateResult(r) {
19
+ function formatGenerateResult(r) {
28
20
  if (r.code !== 0) {
29
21
  return `❌ [${r.code}] ${r.message}`;
30
22
  }
@@ -78,67 +70,16 @@ function formatCreateResult(r) {
78
70
  }
79
71
  return raw;
80
72
  }
81
- // ── Helper: format formlm_modify result, surfacing plan-preview payloads ──────
82
- // When a medium/high risk change is detected server-side, execution pauses and
83
- // returns { planPreview: true, riskLevel, plan }. This formats that into a
84
- // human-reviewable task list and tells the AI exactly how to proceed (call
85
- // formlm_confirm with the SAME plan object) — no web UI needed.
86
- function formatModifyResult(r) {
87
- if (r.code !== 0) {
88
- return `❌ [${r.code}] ${r.message}`;
89
- }
90
- const raw = r.data || r.message;
91
- if (typeof raw !== 'string') {
92
- return String(raw);
93
- }
94
- try {
95
- const parsed = JSON.parse(raw);
96
- if (parsed && typeof parsed === 'object' && parsed.planPreview === true && parsed.plan) {
97
- const lines = [];
98
- lines.push(`⏸️ Plan Preview — Confirmation Required (risk level: ${parsed.riskLevel || parsed.plan.riskLevel || 'unknown'})`);
99
- lines.push('');
100
- lines.push('This change was classified as medium/high risk and was NOT executed yet.');
101
- lines.push('Show this task list to the user and ask for explicit confirmation before proceeding:');
102
- lines.push('');
103
- const tasks = Array.isArray(parsed.plan.tasks) ? parsed.plan.tasks : [];
104
- for (const t of tasks) {
105
- lines.push(` ${t.seq}. [${t.skill}] ${t.title}`);
106
- }
107
- lines.push('');
108
- lines.push(`If the user confirms, call formlm_confirm with appId="${parsed.appId || ''}" and plan=<the exact JSON below, unmodified>:`);
109
- lines.push('');
110
- lines.push(JSON.stringify(parsed.plan));
111
- return lines.join('\n');
112
- }
113
- if (parsed && typeof parsed === 'object' && parsed.status) {
114
- const lines = [];
115
- lines.push(parsed.status === 'partial_error' ? '⚠️ Partial Success' : '✅ Success');
116
- if (parsed.appId)
117
- lines.push(`📋 App ID: ${parsed.appId}`);
118
- if (parsed.operationType)
119
- lines.push(`🔧 Operation: ${parsed.operationType}`);
120
- if (parsed.output) {
121
- lines.push('');
122
- lines.push(parsed.output);
123
- }
124
- return lines.join('\n');
125
- }
126
- }
127
- catch {
128
- // Not JSON, return as-is
129
- }
130
- return raw;
131
- }
132
73
  // ── MCP timeouts ─────────────────────────────────────────────────────────────
133
74
  // Most commands complete in < 5 seconds.
134
- // Smart pipeline (AssessAgent/BuilderAgent) takes 30-300 seconds.
75
+ // Smart pipeline (AssessAgent) takes 30-300 seconds.
135
76
  const TIMEOUT_DEFAULT = 60_000; // 60s for all direct CLI commands
136
- const TIMEOUT_SMART = 600_000; // 10min for formlm_create / formlm_modify (consultation can take 5min+)
77
+ const TIMEOUT_SMART = 600_000; // 10min for formlm_generate (consultation can take 5min+)
137
78
  const TIMEOUT_STYLE = 600_000; // 10min for connect style apply/apply-all (AI-generated styles can take 60-120s)
138
79
  export async function startMcpServer() {
139
80
  const server = new McpServer({
140
81
  name: 'formlm',
141
- version: '0.2.0',
82
+ version: VERSION,
142
83
  });
143
84
  // ════════════════════════════════════════════════════════════════
144
85
  // MCP RESOURCES — Domain Knowledge (SKILL.md × 6)
@@ -172,21 +113,20 @@ export async function startMcpServer() {
172
113
  });
173
114
  }
174
115
  // ════════════════════════════════════════════════════════════════
175
- // MCP TOOLS — Layered Architecture (9 tools, down from 34)
116
+ // MCP TOOLS — Layered Architecture (6 tools, down from 34)
176
117
  //
177
118
  // Recommended workflow:
178
119
  // 1. auth_login → authenticate
179
- // 2. formlm_create → build a complete new app from scratch, OR
120
+ // 2. formlm_generate → build a complete new app from scratch, OR
180
121
  // formlm_skill (read domain rules) + formlm_exec (direct commands)
181
- // 3. formlm_snapshot → check current state before any modifications
182
- // 4. formlm_modify → modify existing app with natural language, OR
183
- // formlm_exec (direct fine-grained commands)
122
+ // 3. formlm_snapshot → check current state
123
+ // 4. formlm_exec → direct fine-grained commands for modifications
184
124
  // ════════════════════════════════════════════════════════════════
185
125
  // ── Tier 0: Authentication ────────────────────────────────────
186
126
  server.tool('auth_login', [
187
127
  'Login to FormLM with a token or email + password.',
188
128
  '',
189
- 'IMPORTANT: At the START of any FormLM session (before calling formlm_create/formlm_plan/formlm_modify/formlm_exec),',
129
+ 'IMPORTANT: At the START of any FormLM session (before calling formlm_generate/formlm_exec),',
190
130
  'call auth_status first. If not logged in, call this tool immediately — ask the user for their email + password',
191
131
  '(easiest, no browser needed) or a token. Do NOT wait for a 401 error before authenticating.',
192
132
  ].join('\n'), {
@@ -228,13 +168,13 @@ export async function startMcpServer() {
228
168
  });
229
169
  // ── Tier 1: Smart Pipeline (Natural Language → Full App) ────────
230
170
  //
231
- // These tools wrap the server-side AssessAgent / BuilderAgent intelligence.
232
- // They are the RECOMMENDED entry points for AI agents:
171
+ // This tool wraps the server-side AssessAgent intelligence.
172
+ // It is the RECOMMENDED entry point for AI agents:
233
173
  // - Same engine that powers newapp.html (SKILL.md constraints, reference data injection, retry)
234
174
  // - One call replaces 30+ sequential formlm_exec calls
235
175
  // - Returns appId + full task execution log
236
176
  // - WARNING: may take 60-300 seconds for complex apps (consultation: 6 tasks)
237
- server.tool('formlm_create', [
177
+ server.tool('formlm_generate', [
238
178
  'Create a COMPLETE production-ready assessment app from natural language.',
239
179
  'Server runs: Plan AI (assess-plan.md) → per-task SKILL.md injection → CLI execution → result collection.',
240
180
  'Equivalent to the full newapp.html pipeline. Returns JSON with appId, planType, shareUrl, task statuses, and full execution log.',
@@ -262,7 +202,7 @@ export async function startMcpServer() {
262
202
  '',
263
203
  '## ON FAILURE:',
264
204
  '- If timeout: ask user to simplify the description (fewer dimensions, fewer questions).',
265
- '- If partial success: use formlm_snapshot to check what was generated, then formlm_modify to complete.',
205
+ '- If partial success: use formlm_snapshot to check what was generated, then use formlm_exec to complete.',
266
206
  '- Always offer to retry with a simplified description.',
267
207
  '',
268
208
  '## Reference Documents:',
@@ -275,7 +215,7 @@ export async function startMcpServer() {
275
215
  input: z.string().describe('Natural language description of the app. Be specific: mention topic, audience, number of questions, dimensions/subscales, scoring, visual style. ' +
276
216
  'Example: "A workplace stress assessment for office workers with 3 dimensions (workload, autonomy, support), 15 questions, score 0-60, detailed result interpretation, dark professional style". ' +
277
217
  'Supports up to 8000 characters. If user pastes reference documents, include them here.'),
278
- planType: z.string().optional().describe('Plan type. Choose based on user needs: ' +
218
+ planType: z.enum(['assessment', 'consultation', 'survey', 'exam', 'quiz', 'learn']).optional().describe('Plan type. Choose based on user needs: ' +
279
219
  '"assessment" (scoring+report, for psych/workplace/health evaluations, MOST COMMON), ' +
280
220
  '"consultation" (scoring+report+AI expert chat, for mental health/coaching), ' +
281
221
  '"survey" (no scoring, for feedback/research), ' +
@@ -288,37 +228,11 @@ export async function startMcpServer() {
288
228
  '"简洁直接" (minimal clean, for general use), ' +
289
229
  '"轻松活泼" (lively playful, for quiz/education). ' +
290
230
  'Or custom: "深色科技风" / "warm friendly pastel" / "minimal clean white".'),
291
- questionCount: z.string().optional().describe('Target question count range: "10-15" (quick screening, 3-5 min), ' +
231
+ questionCount: z.enum(['10-15', '15-20', '20-30']).optional().describe('Target question count range: "10-15" (quick screening, 3-5 min), ' +
292
232
  '"15-20" (standard assessment, 5-8 min), ' +
293
233
  '"20-30" (deep assessment, 8-15 min). Default: auto-decided by AI based on planType.'),
294
234
  }, async (params) => {
295
- let cmd = `assess smart create --input "${escapeArg(params.input)}"`;
296
- if (params.planType)
297
- cmd += ` --plan-type ${params.planType}`;
298
- if (params.style)
299
- cmd += ` --style "${escapeArg(params.style)}"`;
300
- if (params.questionCount)
301
- cmd += ` --question-count ${params.questionCount}`;
302
- cmd += ' --json';
303
- const r = await execCommand(cmd, undefined, TIMEOUT_SMART);
304
- const text = formatCreateResult(r);
305
- return { content: [{ type: 'text', text }] };
306
- });
307
- server.tool('formlm_plan', [
308
- 'Preview the execution plan WITHOUT executing it.',
309
- 'Server runs: Plan AI (assess-plan.md) only — returns the task list for user review.',
310
- 'Equivalent to newapp.html review stage. Use this BEFORE formlm_create when the user wants to review the plan first.',
311
- '',
312
- 'WORKFLOW: formlm_plan → user reviews tasks → formlm_create (with same input to execute)',
313
- '',
314
- 'Takes 10-30 seconds (only the Plan phase, no execution).',
315
- ].join('\n'), {
316
- input: z.string().describe('Same natural language description you would pass to formlm_create'),
317
- planType: z.string().optional().describe('Same as formlm_create planType parameter'),
318
- style: z.string().optional().describe('Same as formlm_create style parameter'),
319
- questionCount: z.string().optional().describe('Same as formlm_create questionCount parameter'),
320
- }, async (params) => {
321
- let cmd = `assess smart plan --input "${escapeArg(params.input)}"`;
235
+ let cmd = `assess smart generate --input "${escapeArg(params.input)}"`;
322
236
  if (params.planType)
323
237
  cmd += ` --plan-type ${params.planType}`;
324
238
  if (params.style)
@@ -326,61 +240,8 @@ export async function startMcpServer() {
326
240
  if (params.questionCount)
327
241
  cmd += ` --question-count ${params.questionCount}`;
328
242
  cmd += ' --json';
329
- const r = await execCommand(cmd, undefined, TIMEOUT_DEFAULT);
330
- return { content: [{ type: 'text', text: toText(r) }] };
331
- });
332
- server.tool('formlm_modify', [
333
- 'Modify an EXISTING app using natural language.',
334
- 'Server runs: Think (query current state → analyze intent) → Plan (PATCH task list with risk assessment) → Execute (SKILL.md constraints + reference injection) → Reflect (validate results).',
335
- 'Equivalent to newapp.html\'s modification chat. Returns JSON with operationType, task statuses, and AI reflection summary.',
336
- '',
337
- 'BEFORE calling: use formlm_snapshot to understand current state.',
338
- 'AFTER calling: use formlm_snapshot to verify changes.',
339
- '',
340
- 'MEDIUM/HIGH risk changes (5+ tasks, or form→scale cascades, or question/dimension deletion) are NOT executed immediately.',
341
- 'Instead the response has planPreview=true and a full "plan" object (task list + riskLevel).',
342
- 'When this happens:',
343
- ' 1. Show the task list and riskLevel to the user in plain language.',
344
- ' 2. Ask for explicit confirmation ("Should I proceed with these N changes?").',
345
- ' 3. If the user confirms, call formlm_confirm with the SAME appId and the exact "plan" object (unmodified) to execute it.',
346
- ' 4. If the user declines or wants changes, do NOT call formlm_confirm — just call formlm_modify again with a revised input.',
347
- 'This entire flow works purely through chat — no web UI is required at any step.',
348
- '',
349
- 'Common use cases:',
350
- '- "Add a social support subscale with 5 questions"',
351
- '- "Change the cover page to dark blue with a professional theme"',
352
- '- "Update the expert agent to use a warmer communication style"',
353
- '- "Add a new report page showing dimension comparison"',
354
- '',
355
- 'WARNING: Takes 30-120 seconds. Do NOT cancel — let it complete.',
356
- ].join('\n'), {
357
- appId: z.string().describe('App ID to modify (get it from app list or previous formlm_create result)'),
358
- input: z.string().describe('Natural language description of the change. Be specific about WHAT to change. ' +
359
- 'Examples: "Add a social support subscale with 5 questions" / ' +
360
- '"Change the cover page to dark blue with a professional theme" / ' +
361
- '"Update the expert agent to use a warmer communication style"'),
362
- }, async (params) => {
363
- const cmd = `assess smart modify --app ${params.appId} --input "${escapeArg(params.input)}" --json`;
364
- const r = await execCommand(cmd, undefined, TIMEOUT_SMART);
365
- const text = formatModifyResult(r);
366
- return { content: [{ type: 'text', text }] };
367
- });
368
- server.tool('formlm_confirm', [
369
- 'Confirm and execute a MEDIUM/HIGH risk change plan that was previously returned by formlm_modify with planPreview=true.',
370
- 'Server runs: Execute (skip Think/Plan) → Reflect, using the exact plan you pass in.',
371
- 'This lets the user approve risky changes entirely through chat — no web UI needed.',
372
- '',
373
- 'ONLY call this after the user has seen the task list from formlm_modify\'s planPreview response and explicitly confirmed.',
374
- 'The "plan" argument MUST be the exact JSON object formlm_modify returned (do not edit, reformat, or hand-write it).',
375
- '',
376
- 'WARNING: Takes 30-120 seconds. Do NOT cancel — let it complete.',
377
- ].join('\n'), {
378
- appId: z.string().describe('App ID (same as passed to the preceding formlm_modify call)'),
379
- plan: z.string().describe('The exact "plan" JSON object returned by formlm_modify, passed through unmodified as a JSON string'),
380
- }, async (params) => {
381
- const cmd = `assess smart confirm --app ${params.appId} --plan-json "${escapeArg(params.plan)}" --json`;
382
243
  const r = await execCommand(cmd, undefined, TIMEOUT_SMART);
383
- const text = formatModifyResult(r);
244
+ const text = formatGenerateResult(r);
384
245
  return { content: [{ type: 'text', text }] };
385
246
  });
386
247
  // ── Tier 2: State & Knowledge ────────────────────────────────────
@@ -388,13 +249,18 @@ export async function startMcpServer() {
388
249
  'Get aggregated snapshot of ALL 6 app modules in a single call.',
389
250
  'Returns: form fields, scale dimensions+ranges, connect page styles, report pages+widgets, expert config, share status.',
390
251
  '',
391
- 'Call this BEFORE formlm_modify to understand what already exists.',
392
- 'Call this AFTER formlm_create to verify the generated app.',
252
+ 'Call this BEFORE making changes to understand what already exists.',
253
+ 'Call this AFTER formlm_generate to verify the generated app.',
393
254
  ].join('\n'), {
394
255
  appId: z.string().describe('App ID'),
395
256
  module: z.string().optional().describe('Get only one module: form / scale / connect / report / expert / share (default: all 6)'),
396
257
  }, async (params) => {
397
- const modules = params.module ? [params.module] : ['form', 'scale', 'connect', 'report', 'expert', 'share'];
258
+ const validModules = ['form', 'scale', 'connect', 'report', 'expert', 'share'];
259
+ const modules = params.module ? [params.module] : validModules;
260
+ // Validate module name early — prevent silent empty results
261
+ if (params.module && !validModules.includes(params.module)) {
262
+ return { content: [{ type: 'text', text: `❌ Invalid module "${params.module}". Valid: ${validModules.join(', ')}` }] };
263
+ }
398
264
  const commands = {
399
265
  form: `assess form query --app ${params.appId} --json`,
400
266
  scale: `assess scale query --app ${params.appId} --json`,
@@ -428,7 +294,7 @@ export async function startMcpServer() {
428
294
  });
429
295
  server.tool('formlm_skill', [
430
296
  'Get the full SKILL.md domain knowledge for a specific skill module.',
431
- 'Same documents that AssessAgent/BuilderAgent loads internally — contains P0/P1/P2 constraints, parameter rules, examples.',
297
+ 'Same documents that AssessAgent loads internally — contains P0/P1/P2 constraints, parameter rules, examples.',
432
298
  '',
433
299
  'You can also read these via MCP resources: formlm://skills/<skillId>',
434
300
  'READ the relevant skill BEFORE constructing formlm_exec commands manually.',
@@ -444,7 +310,7 @@ export async function startMcpServer() {
444
310
  });
445
311
  // ── Tier 3: Direct Execution (Advanced) ──────────────────────────
446
312
  //
447
- // Whitelisted command prefixes (first 3 tokens are checked):
313
+ // Whitelisted command prefixes (first 2 tokens are checked):
448
314
  // assess app : list / create / use / update / remove
449
315
  // assess form : query / find / types / config / add / update / remove / move / set-property
450
316
  // assess scale : query / find / add / update / set / remove / clear / config / keys / data
@@ -452,11 +318,11 @@ export async function startMcpServer() {
452
318
  // assess report : query / find / update / page / widget / logic
453
319
  // assess expert : query / find / config / set / avatar / remove / chat
454
320
  // assess share : set / query / url
455
- // assess smart : create / modify / plan / confirm
321
+ // assess smart : generate
456
322
  // assess skill : form / scale / connect / report / expert / share
457
323
  server.tool('formlm_exec', [
458
324
  'Execute a raw FormLM CLI command directly.',
459
- 'Use this for fine-grained control that formlm_create/formlm_modify don\'t cover.',
325
+ 'Use this for fine-grained control that formlm_generate doesn\'t cover, or for modifying existing apps.',
460
326
  '',
461
327
  'IMPORTANT: All commands must start with "assess". Read formlm_skill first to ensure P0 compliance.',
462
328
  '',
@@ -467,7 +333,7 @@ export async function startMcpServer() {
467
333
  ' NEVER call a remove command based on a vague reference ("delete it", "remove that one")',
468
334
  ' without first resolving and confirming the exact target. Deletion is irreversible.',
469
335
  '',
470
- 'Whitelisted prefixes (3-token match):',
336
+ 'Whitelisted prefixes (2-token match):',
471
337
  ' App: assess app list/create/use/update/remove/urls',
472
338
  ' Form: assess form query/find/types/config/add/update/remove/move/set-property',
473
339
  ' Scale: assess scale query/find/add/update/set/remove/clear/config/keys/data',
@@ -491,15 +357,29 @@ export async function startMcpServer() {
491
357
  command: z.string().describe('Full CLI command starting with "assess". Do NOT include the "formlm-cli" prefix. ' +
492
358
  'Add --json flag for structured output. Escape inner quotes with \\".'),
493
359
  }, async (params) => {
360
+ // Defense-in-depth: enforce the documented whitelisted command prefixes
361
+ // before sending anything to the server. Prevents LLM hallucinations from
362
+ // issuing arbitrary commands and avoids wasteful network round-trips.
363
+ const head = params.command.trim().split(/\s+/).slice(0, 2).join(' ');
364
+ const allowedPrefixes = ['assess app', 'assess form', 'assess scale', 'assess connect', 'assess report', 'assess expert', 'assess share', 'assess smart', 'assess skill'];
365
+ if (!allowedPrefixes.includes(head)) {
366
+ return {
367
+ content: [{
368
+ type: 'text',
369
+ text: `❌ Command must start with one of the whitelisted prefixes (assess app/form/scale/connect/report/expert/share/smart/skill). Got: "${params.command.substring(0, 80)}"`,
370
+ }],
371
+ };
372
+ }
494
373
  // Use longer timeout for commands that trigger server-side AI generation
495
374
  const isStyleCmd = params.command.includes('connect style apply');
496
- const timeout = isStyleCmd ? TIMEOUT_STYLE : TIMEOUT_DEFAULT;
375
+ const isSmartCmd = params.command.includes('smart generate');
376
+ const timeout = (isStyleCmd || isSmartCmd) ? TIMEOUT_STYLE : TIMEOUT_DEFAULT;
497
377
  const r = await execCommand(params.command, undefined, timeout);
498
378
  return { content: [{ type: 'text', text: toText(r) }] };
499
379
  });
500
380
  // ── Start Server ──────────────────────────────────────────────────
501
381
  const transport = new StdioServerTransport();
502
382
  await server.connect(transport);
503
- console.error('FormLM MCP Server v0.2.0 running on stdio (9 tools + 6 resources)');
383
+ console.error(`FormLM MCP Server v${VERSION} running on stdio (6 tools + 6 resources)`);
504
384
  }
505
385
  //# sourceMappingURL=mcp.js.map
package/dist/mcp.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Shared CLI utilities.
3
+ *
4
+ * escapeArg is the single source of truth for escaping user-supplied input
5
+ * before it is embedded into a command string. Both the direct CLI
6
+ * (commands/smart.ts) and the MCP Server (mcp.ts) must use it to prevent
7
+ * argument-boundary breakage when input contains double quotes etc.
8
+ */
9
+ export declare function escapeArg(s: string): string;
10
+ /**
11
+ * Normalize commander optional boolean flags to true/false/undefined.
12
+ * --flag → true
13
+ * --flag=false → false (string)
14
+ * --flag=true → true (string)
15
+ * not passed → undefined
16
+ */
17
+ export declare function normBool(v: unknown): boolean | undefined;
18
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAO3C;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAIxD"}
package/dist/utils.js ADDED
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Shared CLI utilities.
3
+ *
4
+ * escapeArg is the single source of truth for escaping user-supplied input
5
+ * before it is embedded into a command string. Both the direct CLI
6
+ * (commands/smart.ts) and the MCP Server (mcp.ts) must use it to prevent
7
+ * argument-boundary breakage when input contains double quotes etc.
8
+ */
9
+ // tokenizeCommand (server-side PipelineFilterCommand) supports \" as an escaped
10
+ // double-quote inside a quoted arg. Backslashes must be escaped first.
11
+ // Newlines / tabs are normalized to spaces since CLI commands are single-line.
12
+ export function escapeArg(s) {
13
+ return s
14
+ .replace(/\\/g, '\\\\') // \ → \\ (must be first)
15
+ .replace(/"/g, '\\"') // " → \"
16
+ .replace(/\r?\n|\r/g, ' ') // newlines → space
17
+ .replace(/\t/g, ' ') // tabs → space
18
+ .trim();
19
+ }
20
+ /**
21
+ * Normalize commander optional boolean flags to true/false/undefined.
22
+ * --flag → true
23
+ * --flag=false → false (string)
24
+ * --flag=true → true (string)
25
+ * not passed → undefined
26
+ */
27
+ export function normBool(v) {
28
+ if (v === undefined)
29
+ return undefined;
30
+ if (typeof v === 'boolean')
31
+ return v;
32
+ return v === 'true' || v === '1';
33
+ }
34
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,gFAAgF;AAChF,uEAAuE;AACvE,+EAA+E;AAC/E,MAAM,UAAU,SAAS,CAAC,CAAS;IACjC,OAAO,CAAC;SACL,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAG,0BAA0B;SACnD,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAM,SAAS;SACnC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,mBAAmB;SAC7C,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAO,eAAe;SACzC,IAAI,EAAE,CAAC;AACZ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CAAC,CAAU;IACjC,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACtC,IAAI,OAAO,CAAC,KAAK,SAAS;QAAE,OAAO,CAAC,CAAC;IACrC,OAAO,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,GAAG,CAAC;AACnC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const VERSION: string;
2
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,OAAO,EAAE,MAAoB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { createRequire } from 'node:module';
2
+ // package.json is the Single Source of Truth for the version number.
3
+ // Use createRequire (runtime) instead of a static JSON import so that
4
+ // `rootDir: ./src` does not complain about a file outside the src tree.
5
+ // After compilation dist/version.js → ../package.json resolves to the
6
+ // package root both in development and in the published npm tarball
7
+ // (npm always includes package.json regardless of the `files` field).
8
+ const require = createRequire(import.meta.url);
9
+ const pkg = require('../package.json');
10
+ export const VERSION = pkg.version;
11
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,qEAAqE;AACrE,sEAAsE;AACtE,wEAAwE;AACxE,sEAAsE;AACtE,oEAAoE;AACpE,sEAAsE;AACtE,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AAE9D,MAAM,CAAC,MAAM,OAAO,GAAW,GAAG,CAAC,OAAO,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@formlm/cli",
3
- "version": "0.2.2",
3
+ "version": "0.2.4",
4
4
  "description": "The official CLI & MCP Server for FormLM — let AI Agents build and manage your forms directly",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",