@formlm/cli 0.1.2 → 0.2.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 (50) hide show
  1. package/README.md +231 -77
  2. package/dist/commands/auth.d.ts.map +1 -1
  3. package/dist/commands/auth.js +7 -4
  4. package/dist/commands/auth.js.map +1 -1
  5. package/dist/commands/connect.d.ts +3 -0
  6. package/dist/commands/connect.d.ts.map +1 -0
  7. package/dist/commands/connect.js +555 -0
  8. package/dist/commands/connect.js.map +1 -0
  9. package/dist/commands/expert.d.ts +3 -0
  10. package/dist/commands/expert.d.ts.map +1 -0
  11. package/dist/commands/expert.js +123 -0
  12. package/dist/commands/expert.js.map +1 -0
  13. package/dist/commands/field.d.ts.map +1 -1
  14. package/dist/commands/field.js +38 -21
  15. package/dist/commands/field.js.map +1 -1
  16. package/dist/commands/profile.d.ts.map +1 -1
  17. package/dist/commands/profile.js +4 -3
  18. package/dist/commands/profile.js.map +1 -1
  19. package/dist/commands/report.d.ts +3 -0
  20. package/dist/commands/report.d.ts.map +1 -0
  21. package/dist/commands/report.js +507 -0
  22. package/dist/commands/report.js.map +1 -0
  23. package/dist/commands/scale.d.ts +3 -0
  24. package/dist/commands/scale.d.ts.map +1 -0
  25. package/dist/commands/scale.js +289 -0
  26. package/dist/commands/scale.js.map +1 -0
  27. package/dist/commands/share.js +2 -2
  28. package/dist/commands/share.js.map +1 -1
  29. package/dist/commands/skill.d.ts +15 -0
  30. package/dist/commands/skill.d.ts.map +1 -0
  31. package/dist/commands/skill.js +31 -0
  32. package/dist/commands/skill.js.map +1 -0
  33. package/dist/commands/smart.d.ts +16 -0
  34. package/dist/commands/smart.d.ts.map +1 -0
  35. package/dist/commands/smart.js +81 -0
  36. package/dist/commands/smart.js.map +1 -0
  37. package/dist/commands/snapshot.d.ts +13 -0
  38. package/dist/commands/snapshot.d.ts.map +1 -0
  39. package/dist/commands/snapshot.js +61 -0
  40. package/dist/commands/snapshot.js.map +1 -0
  41. package/dist/exec.d.ts +8 -2
  42. package/dist/exec.d.ts.map +1 -1
  43. package/dist/exec.js +28 -2
  44. package/dist/exec.js.map +1 -1
  45. package/dist/index.js +23 -8
  46. package/dist/index.js.map +1 -1
  47. package/dist/mcp.d.ts.map +1 -1
  48. package/dist/mcp.js +444 -269
  49. package/dist/mcp.js.map +1 -1
  50. package/package.json +13 -5
@@ -0,0 +1,555 @@
1
+ import { execCommand } from '../exec.js';
2
+ import { output } from '../output.js';
3
+ // Normalize commander optional boolean flags to true/false/undefined
4
+ function normBool(v) {
5
+ if (v === undefined)
6
+ return undefined;
7
+ if (typeof v === 'boolean')
8
+ return v;
9
+ return v === 'true' || v === '1';
10
+ }
11
+ export function registerConnectCommand(parent) {
12
+ const connect = parent.command('connect').description('Page styling & visual customization — P0: --theme must be one of 6 design modes (scenic/skeuomorphic/liquid/glassmorphism/immersive/minimalist). --look must include scenario + visual style. NEVER use type names (cover/main/final) as --id. Run "formlm-cli skill connect" for full constraints');
13
+ // ========== Connect - Query ==========
14
+ connect
15
+ .command('query')
16
+ .description('List all pages (cover / main / final) with key config')
17
+ .requiredOption('--app <appId>', 'App ID')
18
+ .option('--type <type>', 'Filter by page type: cover / main / final')
19
+ .option('--filter <keyword>', 'Keyword filter (matches id/type/name/format)')
20
+ .option('--md', 'Markdown table output (lower token, for AI)')
21
+ .action(async (opts) => {
22
+ let cmd = `assess connect query --app ${opts.app}`;
23
+ if (opts.type)
24
+ cmd += ` --type ${opts.type}`;
25
+ if (opts.filter)
26
+ cmd += ` --filter "${opts.filter}"`;
27
+ if (opts.md)
28
+ cmd += ` --md`;
29
+ else
30
+ cmd += ` --json`;
31
+ const result = await execCommand(cmd);
32
+ output(result);
33
+ });
34
+ connect
35
+ .command('find')
36
+ .description('Find a single page by keyword (returns full details including HTML content)')
37
+ .requiredOption('--app <appId>', 'App ID')
38
+ .requiredOption('--filter <keyword>', 'Keyword to search (matches id/type/name/format)')
39
+ .action(async (opts) => {
40
+ const cmd = `assess connect find --app ${opts.app} --filter "${opts.filter}" --json`;
41
+ const result = await execCommand(cmd);
42
+ output(result);
43
+ });
44
+ connect
45
+ .command('types')
46
+ .description('List all supported page format types')
47
+ .option('--category <category>', 'Filter by category: cover / main / final')
48
+ .option('--verbose', 'Show descriptions alongside format names')
49
+ .action(async (opts) => {
50
+ let cmd = 'assess connect types';
51
+ if (opts.category)
52
+ cmd += ` --category ${opts.category}`;
53
+ if (opts.verbose)
54
+ cmd += ` --verbose`;
55
+ const result = await execCommand(cmd);
56
+ output(result);
57
+ });
58
+ connect
59
+ .command('config')
60
+ .description('Get configurable properties for a specific page format')
61
+ .requiredOption('--category <category>', 'Page category: cover / main / final')
62
+ .requiredOption('--format <format>', 'Page format (e.g. rich-text, text, user-info)')
63
+ .action(async (opts) => {
64
+ const cmd = `assess connect config --category ${opts.category} --format ${opts.format}`;
65
+ const result = await execCommand(cmd);
66
+ output(result);
67
+ });
68
+ // ========== Cover Page ==========
69
+ const coverPage = connect.command('cover-page').description('Cover page management');
70
+ coverPage
71
+ .command('add')
72
+ .description('Add a cover page (or update if page ID already exists)')
73
+ .requiredOption('--app <appId>', 'App ID')
74
+ .option('--id <pageId>', 'Page ID (recommended for precise reference, e.g. cover_main)')
75
+ .option('--name <name>', 'Page name')
76
+ .option('--format <format>', 'Page format (rich-text/text/user-info)', 'text')
77
+ .option('--layout <layout>', 'Page layout', 'cube')
78
+ .option('--value <html>', 'Top content (rich text HTML)')
79
+ .option('--description <html>', 'Bottom content (rich text HTML)')
80
+ .option('--subtitle <text>', 'Subtitle text')
81
+ .option('--enable-split-screen [value]', 'Enable split-screen display (true/false)')
82
+ .option('--screen-text <html>', 'Split-screen left panel HTML content')
83
+ .option('--enable-head [value]', 'Show title area (true/false, default: true)')
84
+ .option('--enable-title-writer [value]', 'Enable typewriter animation for title (true/false)')
85
+ .option('--logo <logo>', 'Logo icon (Font Awesome class e.g. fa-solid fa-brain, or image URL with /)')
86
+ .option('--enable-logo [value]', 'Show logo (true/false)')
87
+ .action(async (opts) => {
88
+ let cmd = `assess connect cover-page add --app ${opts.app}`;
89
+ if (opts.id)
90
+ cmd += ` --id ${opts.id}`;
91
+ if (opts.name)
92
+ cmd += ` --name "${opts.name}"`;
93
+ if (opts.format)
94
+ cmd += ` --format ${opts.format}`;
95
+ if (opts.layout)
96
+ cmd += ` --layout ${opts.layout}`;
97
+ if (opts.value)
98
+ cmd += ` --value "${opts.value}"`;
99
+ if (opts.description)
100
+ cmd += ` --description "${opts.description}"`;
101
+ if (opts.subtitle)
102
+ cmd += ` --subtitle "${opts.subtitle}"`;
103
+ const ess = normBool(opts.enableSplitScreen);
104
+ if (ess !== undefined)
105
+ cmd += ` --enable-split-screen=${ess}`;
106
+ if (opts.screenText)
107
+ cmd += ` --screen-text "${opts.screenText}"`;
108
+ const eh = normBool(opts.enableHead);
109
+ if (eh !== undefined)
110
+ cmd += ` --enable-head=${eh}`;
111
+ const etw = normBool(opts.enableTitleWriter);
112
+ if (etw !== undefined)
113
+ cmd += ` --enable-title-writer=${etw}`;
114
+ if (opts.logo)
115
+ cmd += ` --logo ${opts.logo}`;
116
+ const el = normBool(opts.enableLogo);
117
+ if (el !== undefined)
118
+ cmd += ` --enable-logo=${el}`;
119
+ cmd += ' --json';
120
+ const result = await execCommand(cmd);
121
+ output(result);
122
+ });
123
+ coverPage
124
+ .command('update')
125
+ .description('Update a cover page')
126
+ .requiredOption('--app <appId>', 'App ID')
127
+ .option('--id <pageId>', 'Page ID (required when multiple cover pages exist)')
128
+ .option('--name <name>', 'Page name')
129
+ .option('--format <format>', 'Page format (rich-text/text/user-info)')
130
+ .option('--layout <layout>', 'Page layout')
131
+ .option('--value <html>', 'Top content (rich text HTML)')
132
+ .option('--description <html>', 'Bottom content (rich text HTML)')
133
+ .option('--subtitle <text>', 'Subtitle text')
134
+ .option('--enable-split-screen [value]', 'Enable split-screen display (true/false)')
135
+ .option('--screen-text <html>', 'Split-screen left panel HTML content')
136
+ .option('--enable-head [value]', 'Show title area (true/false)')
137
+ .option('--enable-title-writer [value]', 'Enable typewriter animation (true/false)')
138
+ .option('--logo <logo>', 'Logo icon (Font Awesome class or image URL)')
139
+ .option('--enable-logo [value]', 'Show logo (true/false)')
140
+ .option('--logo-size <size>', 'Logo size in px (32~120, default: 68)', parseInt)
141
+ .option('--enable-logo-icon [value]', 'Use preset icon instead of uploaded image (true/false)')
142
+ .action(async (opts) => {
143
+ let cmd = `assess connect cover-page update --app ${opts.app}`;
144
+ if (opts.id)
145
+ cmd += ` --id ${opts.id}`;
146
+ if (opts.name)
147
+ cmd += ` --name "${opts.name}"`;
148
+ if (opts.format)
149
+ cmd += ` --format ${opts.format}`;
150
+ if (opts.layout)
151
+ cmd += ` --layout ${opts.layout}`;
152
+ if (opts.value)
153
+ cmd += ` --value "${opts.value}"`;
154
+ if (opts.description)
155
+ cmd += ` --description "${opts.description}"`;
156
+ if (opts.subtitle)
157
+ cmd += ` --subtitle "${opts.subtitle}"`;
158
+ const ess = normBool(opts.enableSplitScreen);
159
+ if (ess !== undefined)
160
+ cmd += ` --enable-split-screen=${ess}`;
161
+ if (opts.screenText)
162
+ cmd += ` --screen-text "${opts.screenText}"`;
163
+ const eh = normBool(opts.enableHead);
164
+ if (eh !== undefined)
165
+ cmd += ` --enable-head=${eh}`;
166
+ const etw = normBool(opts.enableTitleWriter);
167
+ if (etw !== undefined)
168
+ cmd += ` --enable-title-writer=${etw}`;
169
+ if (opts.logo)
170
+ cmd += ` --logo ${opts.logo}`;
171
+ const el = normBool(opts.enableLogo);
172
+ if (el !== undefined)
173
+ cmd += ` --enable-logo=${el}`;
174
+ if (opts.logoSize !== undefined)
175
+ cmd += ` --logo-size ${opts.logoSize}`;
176
+ const eli = normBool(opts.enableLogoIcon);
177
+ if (eli !== undefined)
178
+ cmd += ` --enable-logo-icon=${eli}`;
179
+ cmd += ' --json';
180
+ const result = await execCommand(cmd);
181
+ output(result);
182
+ });
183
+ coverPage
184
+ .command('find')
185
+ .description('Get cover page full details (including value/description HTML)')
186
+ .requiredOption('--app <appId>', 'App ID')
187
+ .option('--id <pageId>', 'Page ID (required when multiple cover pages)')
188
+ .action(async (opts) => {
189
+ let cmd = `assess connect cover-page find --app ${opts.app}`;
190
+ if (opts.id)
191
+ cmd += ` --id ${opts.id}`;
192
+ cmd += ' --json';
193
+ const result = await execCommand(cmd);
194
+ output(result);
195
+ });
196
+ coverPage
197
+ .command('set')
198
+ .description('Set a single property on cover page (any field from find output)')
199
+ .requiredOption('--app <appId>', 'App ID')
200
+ .option('--id <pageId>', 'Page ID (required when multiple cover pages)')
201
+ .requiredOption('--property <property>', 'Property path (e.g. name/value/description/subtitle/enableHead/format/layout)')
202
+ .requiredOption('--value <value>', 'New value')
203
+ .action(async (opts) => {
204
+ let cmd = `assess connect cover-page set --app ${opts.app}`;
205
+ if (opts.id)
206
+ cmd += ` --id ${opts.id}`;
207
+ cmd += ` --property ${opts.property} --value "${opts.value}" --json`;
208
+ const result = await execCommand(cmd);
209
+ output(result);
210
+ });
211
+ coverPage
212
+ .command('remove')
213
+ .description('Remove a cover page')
214
+ .requiredOption('--app <appId>', 'App ID')
215
+ .option('--id <pageId>', 'Page ID (required when multiple cover pages)')
216
+ .action(async (opts) => {
217
+ let cmd = `assess connect cover-page remove --app ${opts.app}`;
218
+ if (opts.id)
219
+ cmd += ` --id ${opts.id}`;
220
+ cmd += ' --json';
221
+ const result = await execCommand(cmd);
222
+ output(result);
223
+ });
224
+ // ========== Final Page ==========
225
+ const finalPage = connect.command('final-page').description('Final page management');
226
+ finalPage
227
+ .command('add')
228
+ .description('Add a final/thank-you page (or update if page ID already exists)')
229
+ .requiredOption('--app <appId>', 'App ID')
230
+ .option('--id <pageId>', 'Page ID (recommended, e.g. final_report)')
231
+ .option('--name <name>', 'Page name')
232
+ .option('--format <format>', 'Page format (rich-text/url/report-pdf/fill-rank/block-scale/expert/order-pay)', 'rich-text')
233
+ .option('--layout <layout>', 'Page layout', 'cube')
234
+ .option('--value <html>', 'Top content (rich text HTML)')
235
+ .option('--description <html>', 'Bottom content (rich text HTML)')
236
+ .option('--subtitle <text>', 'Subtitle text')
237
+ .option('--enable-split-screen [value]', 'Enable split-screen display (true/false)')
238
+ .option('--enable-head [value]', 'Show title area (true/false, default: true)')
239
+ .option('--enable-title-writer [value]', 'Enable typewriter animation (true/false)')
240
+ .option('--enable-report [value]', 'Show report on final page (true/false)')
241
+ .option('--enable-expert [value]', 'Show expert chat on final page (true/false)')
242
+ .option('--logo <logo>', 'Logo icon (Font Awesome class or image URL)')
243
+ .option('--enable-logo [value]', 'Show logo (true/false)')
244
+ .action(async (opts) => {
245
+ let cmd = `assess connect final-page add --app ${opts.app}`;
246
+ if (opts.id)
247
+ cmd += ` --id ${opts.id}`;
248
+ if (opts.name)
249
+ cmd += ` --name "${opts.name}"`;
250
+ if (opts.format)
251
+ cmd += ` --format ${opts.format}`;
252
+ if (opts.layout)
253
+ cmd += ` --layout ${opts.layout}`;
254
+ if (opts.value)
255
+ cmd += ` --value "${opts.value}"`;
256
+ if (opts.description)
257
+ cmd += ` --description "${opts.description}"`;
258
+ if (opts.subtitle)
259
+ cmd += ` --subtitle "${opts.subtitle}"`;
260
+ const ess = normBool(opts.enableSplitScreen);
261
+ if (ess !== undefined)
262
+ cmd += ` --enable-split-screen=${ess}`;
263
+ const eh = normBool(opts.enableHead);
264
+ if (eh !== undefined)
265
+ cmd += ` --enable-head=${eh}`;
266
+ const etw = normBool(opts.enableTitleWriter);
267
+ if (etw !== undefined)
268
+ cmd += ` --enable-title-writer=${etw}`;
269
+ const er = normBool(opts.enableReport);
270
+ if (er !== undefined)
271
+ cmd += ` --enable-report=${er}`;
272
+ const ee = normBool(opts.enableExpert);
273
+ if (ee !== undefined)
274
+ cmd += ` --enable-expert=${ee}`;
275
+ if (opts.logo)
276
+ cmd += ` --logo ${opts.logo}`;
277
+ const el = normBool(opts.enableLogo);
278
+ if (el !== undefined)
279
+ cmd += ` --enable-logo=${el}`;
280
+ cmd += ' --json';
281
+ const result = await execCommand(cmd);
282
+ output(result);
283
+ });
284
+ finalPage
285
+ .command('update')
286
+ .description('Update a final page')
287
+ .requiredOption('--app <appId>', 'App ID')
288
+ .option('--id <pageId>', 'Page ID (required when multiple final pages)')
289
+ .option('--name <name>', 'Page name')
290
+ .option('--format <format>', 'Page format (rich-text/url/report-pdf/fill-rank/block-scale/expert/order-pay)')
291
+ .option('--layout <layout>', 'Page layout')
292
+ .option('--value <html>', 'Top content (rich text HTML)')
293
+ .option('--description <html>', 'Bottom content (rich text HTML)')
294
+ .option('--subtitle <text>', 'Subtitle text')
295
+ .option('--enable-split-screen [value]', 'Enable split-screen display (true/false)')
296
+ .option('--enable-head [value]', 'Show title area (true/false)')
297
+ .option('--enable-title-writer [value]', 'Enable typewriter animation (true/false)')
298
+ .option('--enable-report [value]', 'Show report on final page (true/false)')
299
+ .option('--enable-expert [value]', 'Show expert chat on final page (true/false)')
300
+ .option('--logo <logo>', 'Logo icon (Font Awesome class or image URL)')
301
+ .option('--enable-logo [value]', 'Show logo (true/false)')
302
+ .option('--logo-size <size>', 'Logo size in px (32~120, default: 68)', parseInt)
303
+ .option('--enable-logo-icon [value]', 'Use preset icon instead of uploaded image (true/false)')
304
+ .action(async (opts) => {
305
+ let cmd = `assess connect final-page update --app ${opts.app}`;
306
+ if (opts.id)
307
+ cmd += ` --id ${opts.id}`;
308
+ if (opts.name)
309
+ cmd += ` --name "${opts.name}"`;
310
+ if (opts.format)
311
+ cmd += ` --format ${opts.format}`;
312
+ if (opts.layout)
313
+ cmd += ` --layout ${opts.layout}`;
314
+ if (opts.value)
315
+ cmd += ` --value "${opts.value}"`;
316
+ if (opts.description)
317
+ cmd += ` --description "${opts.description}"`;
318
+ if (opts.subtitle)
319
+ cmd += ` --subtitle "${opts.subtitle}"`;
320
+ const ess = normBool(opts.enableSplitScreen);
321
+ if (ess !== undefined)
322
+ cmd += ` --enable-split-screen=${ess}`;
323
+ const eh = normBool(opts.enableHead);
324
+ if (eh !== undefined)
325
+ cmd += ` --enable-head=${eh}`;
326
+ const etw = normBool(opts.enableTitleWriter);
327
+ if (etw !== undefined)
328
+ cmd += ` --enable-title-writer=${etw}`;
329
+ const er = normBool(opts.enableReport);
330
+ if (er !== undefined)
331
+ cmd += ` --enable-report=${er}`;
332
+ const ee = normBool(opts.enableExpert);
333
+ if (ee !== undefined)
334
+ cmd += ` --enable-expert=${ee}`;
335
+ if (opts.logo)
336
+ cmd += ` --logo ${opts.logo}`;
337
+ const el = normBool(opts.enableLogo);
338
+ if (el !== undefined)
339
+ cmd += ` --enable-logo=${el}`;
340
+ if (opts.logoSize !== undefined)
341
+ cmd += ` --logo-size ${opts.logoSize}`;
342
+ const eli = normBool(opts.enableLogoIcon);
343
+ if (eli !== undefined)
344
+ cmd += ` --enable-logo-icon=${eli}`;
345
+ cmd += ' --json';
346
+ const result = await execCommand(cmd);
347
+ output(result);
348
+ });
349
+ finalPage
350
+ .command('find')
351
+ .description('Get final page full details (including value/description HTML)')
352
+ .requiredOption('--app <appId>', 'App ID')
353
+ .option('--id <pageId>', 'Page ID (required when multiple final pages)')
354
+ .action(async (opts) => {
355
+ let cmd = `assess connect final-page find --app ${opts.app}`;
356
+ if (opts.id)
357
+ cmd += ` --id ${opts.id}`;
358
+ cmd += ' --json';
359
+ const result = await execCommand(cmd);
360
+ output(result);
361
+ });
362
+ finalPage
363
+ .command('set')
364
+ .description('Set a single property on final page (any field from find output)')
365
+ .requiredOption('--app <appId>', 'App ID')
366
+ .option('--id <pageId>', 'Page ID (required when multiple final pages)')
367
+ .requiredOption('--property <property>', 'Property path (e.g. name/value/description/enableReport/enableExpert/format/layout)')
368
+ .requiredOption('--value <value>', 'New value')
369
+ .action(async (opts) => {
370
+ let cmd = `assess connect final-page set --app ${opts.app}`;
371
+ if (opts.id)
372
+ cmd += ` --id ${opts.id}`;
373
+ cmd += ` --property ${opts.property} --value "${opts.value}" --json`;
374
+ const result = await execCommand(cmd);
375
+ output(result);
376
+ });
377
+ finalPage
378
+ .command('remove')
379
+ .description('Remove a final page')
380
+ .requiredOption('--app <appId>', 'App ID')
381
+ .option('--id <pageId>', 'Page ID (required when multiple final pages)')
382
+ .action(async (opts) => {
383
+ let cmd = `assess connect final-page remove --app ${opts.app}`;
384
+ if (opts.id)
385
+ cmd += ` --id ${opts.id}`;
386
+ cmd += ' --json';
387
+ const result = await execCommand(cmd);
388
+ output(result);
389
+ });
390
+ // ========== Main Page ==========
391
+ const mainPage = connect.command('main-page').description('Main page (form display) management');
392
+ mainPage
393
+ .command('set')
394
+ .description('Set main page format (form/field/card) or field-level description')
395
+ .requiredOption('--app <appId>', 'App ID')
396
+ .option('--format <format>', 'Page format: form (all-in-one) / field (one-per-page) / card (card-style)')
397
+ .option('--field <fieldKey>', 'Field key (e.g. X1) — when set, updates field-level description instead of format')
398
+ .option('--description <html>', 'Field description HTML/SVG (use with --field)')
399
+ .option('--clear [value]', 'Clear field description (use with --field)')
400
+ .action(async (opts) => {
401
+ let cmd = `assess connect main-page set --app ${opts.app}`;
402
+ if (opts.format)
403
+ cmd += ` --format ${opts.format}`;
404
+ if (opts.field)
405
+ cmd += ` --field ${opts.field}`;
406
+ if (opts.description)
407
+ cmd += ` --description "${opts.description}"`;
408
+ const clr = normBool(opts.clear);
409
+ if (clr !== undefined)
410
+ cmd += ` --clear=${clr}`;
411
+ cmd += ' --json';
412
+ const result = await execCommand(cmd);
413
+ output(result);
414
+ });
415
+ // ========== Style ==========
416
+ const style = connect.command('style').description('Visual style & theme customization');
417
+ style
418
+ .command('set')
419
+ .description('Set theme colors for a specific page type (fine-grained color control)')
420
+ .requiredOption('--app <appId>', 'App ID')
421
+ .option('--type <type>', 'Page type: cover / main / final')
422
+ .option('--bg <color>', 'Background color (hex, e.g. #f3f3fe)')
423
+ .option('--fg <color>', 'Content area foreground color (hex)')
424
+ .option('--font <color>', 'Body text font color (hex)')
425
+ .option('--panel <color>', 'Panel/form area background color (hex)')
426
+ .option('--chat <color>', 'Chat bubble background color (hex, chat mode only)')
427
+ .option('--bg-image <url>', 'Background image URL')
428
+ .option('--bg-color <color>', 'Background base color (for gradient overlay)')
429
+ .option('--bg-fill [value]', 'Background image fill mode (true/false)')
430
+ .option('--head <color>', 'Header area background color')
431
+ .option('--head-image <url>', 'Header area background image URL')
432
+ .option('--hide-head [value]', 'Hide header area (true/false)')
433
+ .option('--foot <color>', 'Footer area background color')
434
+ .option('--action <color>', 'Action button background color')
435
+ .option('--submit-label <text>', 'Button text (cover: "Start", final: "Close")')
436
+ .option('--align <align>', 'Content alignment: left / center / right')
437
+ .option('--writer-speed <ms>', 'Typewriter speed (ms/char): 40 fast / 80 medium / 120 slow')
438
+ .option('--writer-action <action>', 'Typewriter completion action: show / hide / replace')
439
+ .option('--writer-action-value <text>', 'Replace text (only when --writer-action replace)')
440
+ .option('--id <pageId>', 'Page ID (overrides --type for precise targeting)')
441
+ .action(async (opts) => {
442
+ let cmd = `assess connect style set --app ${opts.app}`;
443
+ if (opts.type)
444
+ cmd += ` --type ${opts.type}`;
445
+ if (opts.bg)
446
+ cmd += ` --bg ${opts.bg}`;
447
+ if (opts.fg)
448
+ cmd += ` --fg ${opts.fg}`;
449
+ if (opts.font)
450
+ cmd += ` --font ${opts.font}`;
451
+ if (opts.panel)
452
+ cmd += ` --panel ${opts.panel}`;
453
+ if (opts.chat)
454
+ cmd += ` --chat ${opts.chat}`;
455
+ if (opts.bgImage)
456
+ cmd += ` --bg-image ${opts.bgImage}`;
457
+ if (opts.bgColor)
458
+ cmd += ` --bg-color ${opts.bgColor}`;
459
+ const bf = normBool(opts.bgFill);
460
+ if (bf !== undefined)
461
+ cmd += ` --bg-fill=${bf}`;
462
+ if (opts.head)
463
+ cmd += ` --head ${opts.head}`;
464
+ if (opts.headImage)
465
+ cmd += ` --head-image ${opts.headImage}`;
466
+ const hh = normBool(opts.hideHead);
467
+ if (hh !== undefined)
468
+ cmd += ` --hide-head=${hh}`;
469
+ if (opts.foot)
470
+ cmd += ` --foot ${opts.foot}`;
471
+ if (opts.action)
472
+ cmd += ` --action ${opts.action}`;
473
+ if (opts.submitLabel)
474
+ cmd += ` --submit-label "${opts.submitLabel}"`;
475
+ if (opts.align)
476
+ cmd += ` --align ${opts.align}`;
477
+ if (opts.writerSpeed)
478
+ cmd += ` --writer-speed ${opts.writerSpeed}`;
479
+ if (opts.writerAction)
480
+ cmd += ` --writer-action ${opts.writerAction}`;
481
+ if (opts.writerActionValue)
482
+ cmd += ` --writer-action-value "${opts.writerActionValue}"`;
483
+ if (opts.id)
484
+ cmd += ` --id ${opts.id}`;
485
+ cmd += ' --json';
486
+ const result = await execCommand(cmd);
487
+ output(result);
488
+ });
489
+ style
490
+ .command('query')
491
+ .description('Query current theme config for a page type')
492
+ .requiredOption('--app <appId>', 'App ID')
493
+ .requiredOption('--type <type>', 'Page type: cover / main / final')
494
+ .action(async (opts) => {
495
+ const cmd = `assess connect style query --app ${opts.app} --type ${opts.type} --json`;
496
+ const result = await execCommand(cmd);
497
+ output(result);
498
+ });
499
+ style
500
+ .command('apply')
501
+ .description('Apply preset theme and/or AI-generated style. P0: --theme must be a design mode (scenic/skeuomorphic/liquid/glassmorphism/immersive/minimalist). --look must describe scenario + visual style (e.g. "心理健康评估,深蓝科技风,磨砂玻璃卡片")')
502
+ .requiredOption('--app <appId>', 'App ID')
503
+ .option('--theme <theme>', 'Preset theme name or design mode: Minimal/Fresh/.../Mystic or scenic/skeuomorphic/liquid/glassmorphism/immersive/minimalist')
504
+ .option('--look <description>', 'AI visual style description (e.g. "deep blue tech, frosted glass cards")')
505
+ .option('--layout <layout>', 'Layout style: flat / stack / cube')
506
+ .option('--type <type>', 'Target page type: cover / main / final (omit to apply to all pages)')
507
+ .option('--page-id <pageId>', 'Target page ID (precise, overrides --type; omit for all pages)')
508
+ .action(async (opts) => {
509
+ let cmd = `assess connect style apply --app ${opts.app}`;
510
+ if (opts.theme)
511
+ cmd += ` --theme ${opts.theme}`;
512
+ if (opts.look)
513
+ cmd += ` --look "${opts.look}"`;
514
+ if (opts.layout)
515
+ cmd += ` --layout ${opts.layout}`;
516
+ if (opts.type)
517
+ cmd += ` --type ${opts.type}`;
518
+ if (opts.pageId)
519
+ cmd += ` --page-id ${opts.pageId}`;
520
+ cmd += ' --json';
521
+ const result = await execCommand(cmd);
522
+ output(result);
523
+ });
524
+ style
525
+ .command('apply-all')
526
+ .description('Apply AI-generated style to ALL pages at once (generates style once, applies everywhere). P0: --look is required and must include scenario + visual style')
527
+ .requiredOption('--app <appId>', 'App ID')
528
+ .option('--theme <theme>', 'Preset theme name or design mode identifier')
529
+ .option('--look <description>', 'AI visual style description (required)')
530
+ .option('--layout <layout>', 'Layout style: flat / stack / cube')
531
+ .action(async (opts) => {
532
+ let cmd = `assess connect style apply-all --app ${opts.app}`;
533
+ if (opts.theme)
534
+ cmd += ` --theme ${opts.theme}`;
535
+ if (opts.look)
536
+ cmd += ` --look "${opts.look}"`;
537
+ if (opts.layout)
538
+ cmd += ` --layout ${opts.layout}`;
539
+ cmd += ' --json';
540
+ const result = await execCommand(cmd);
541
+ output(result);
542
+ });
543
+ style
544
+ .command('move')
545
+ .description('Move a page up or down in display order')
546
+ .requiredOption('--app <appId>', 'App ID')
547
+ .requiredOption('--id <pageId>', 'Page ID')
548
+ .requiredOption('--direction <direction>', 'Move direction: up / down')
549
+ .action(async (opts) => {
550
+ const cmd = `assess connect style move --app ${opts.app} --id ${opts.id} --direction ${opts.direction} --json`;
551
+ const result = await execCommand(cmd);
552
+ output(result);
553
+ });
554
+ }
555
+ //# sourceMappingURL=connect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/commands/connect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerExpertCommand(parent: Command): void;
3
+ //# sourceMappingURL=expert.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expert.d.ts","sourceRoot":"","sources":["../../src/commands/expert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAqH3D"}