@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,507 @@
1
+ import { execCommand } from '../exec.js';
2
+ import { output } from '../output.js';
3
+ function normBool(v) {
4
+ if (v === undefined)
5
+ return undefined;
6
+ if (typeof v === 'boolean')
7
+ return v;
8
+ return v === 'true' || v === '1';
9
+ }
10
+ export function registerReportCommand(parent) {
11
+ const report = parent.command('report').description('Report pages, widgets & conditional logic');
12
+ // ========== Top-level Query ==========
13
+ report
14
+ .command('query')
15
+ .description('Query all report pages & widgets (use --md for token-efficient markdown)')
16
+ .requiredOption('--app <appId>', 'App ID')
17
+ .option('--md', 'Markdown table output (for AI)')
18
+ .option('--human', 'Humanized display')
19
+ .option('--filter <keyword>', 'Keyword filter (page name/id or widget type/scaleId/fieldKey)')
20
+ .option('--expand-page', 'With --filter, expand matched widget pages fully')
21
+ .action(async (opts) => {
22
+ let cmd = `assess report query --app ${opts.app}`;
23
+ if (opts.md)
24
+ cmd += ' --md';
25
+ if (opts.human)
26
+ cmd += ' --human';
27
+ if (opts.filter)
28
+ cmd += ` --filter "${opts.filter}"`;
29
+ if (opts.expandPage)
30
+ cmd += ' --expand-page';
31
+ if (!opts.md && !opts.human)
32
+ cmd += ' --json';
33
+ output(await execCommand(cmd));
34
+ });
35
+ report
36
+ .command('find')
37
+ .description('Find a single widget by page+id (exact) or --filter (fuzzy, returns first match with full details)')
38
+ .requiredOption('--app <appId>', 'App ID')
39
+ .option('--page <pageId>', 'Page ID (use with --id for exact query)')
40
+ .option('--id <widgetId>', 'Widget ID (use with --page for exact query)')
41
+ .option('--filter <keyword>', 'Keyword filter (matches widget id/type/scaleId/fieldKey)')
42
+ .action(async (opts) => {
43
+ let cmd = `assess report find --app ${opts.app}`;
44
+ if (opts.page)
45
+ cmd += ` --page ${opts.page}`;
46
+ if (opts.id)
47
+ cmd += ` --id ${opts.id}`;
48
+ if (opts.filter)
49
+ cmd += ` --filter "${opts.filter}"`;
50
+ cmd += ' --json';
51
+ output(await execCommand(cmd));
52
+ });
53
+ // ========== Page Management ==========
54
+ const page = report.command('page').description('Report page management');
55
+ page
56
+ .command('add')
57
+ .description('Add a report page (canvas for widgets)')
58
+ .requiredOption('--app <appId>', 'App ID')
59
+ .option('--id <pageId>', 'Page ID (auto-generated if omitted)')
60
+ .requiredOption('--name <name>', 'Page name')
61
+ .option('--type <type>', 'Page type (default: A4)', 'A4')
62
+ .option('--backgroundColor <color>', 'Background color (hex, e.g. #0a0a0a)')
63
+ .option('--style <css>', 'Extra CSS styles (e.g. background gradient)')
64
+ .option('--bgSvg <svg>', 'SVG background image (full <svg> markup)')
65
+ .action(async (opts) => {
66
+ let cmd = `assess report page add --app ${opts.app} --name "${opts.name}" --type ${opts.type}`;
67
+ if (opts.id)
68
+ cmd += ` --id ${opts.id}`;
69
+ if (opts.backgroundColor)
70
+ cmd += ` --backgroundColor ${opts.backgroundColor}`;
71
+ if (opts.style)
72
+ cmd += ` --style "${opts.style}"`;
73
+ if (opts.bgSvg)
74
+ cmd += ` --bgSvg "${opts.bgSvg}"`;
75
+ cmd += ' --json';
76
+ output(await execCommand(cmd));
77
+ });
78
+ page
79
+ .command('update')
80
+ .description('Update page properties (name, background color, style, SVG background). Auto-creates page if not found (upsert)')
81
+ .requiredOption('--app <appId>', 'App ID')
82
+ .requiredOption('--id <pageId>', 'Page ID')
83
+ .option('--name <name>', 'Page name')
84
+ .option('--backgroundColor <color>', 'Background color (hex)')
85
+ .option('--style <css>', 'Extra CSS styles')
86
+ .option('--bgSvg <svg>', 'SVG background image')
87
+ .action(async (opts) => {
88
+ let cmd = `assess report page update --app ${opts.app} --id ${opts.id}`;
89
+ if (opts.name)
90
+ cmd += ` --name "${opts.name}"`;
91
+ if (opts.backgroundColor)
92
+ cmd += ` --backgroundColor ${opts.backgroundColor}`;
93
+ if (opts.style)
94
+ cmd += ` --style "${opts.style}"`;
95
+ if (opts.bgSvg)
96
+ cmd += ` --bgSvg "${opts.bgSvg}"`;
97
+ cmd += ' --json';
98
+ output(await execCommand(cmd));
99
+ });
100
+ page
101
+ .command('remove')
102
+ .description('Remove a report page')
103
+ .requiredOption('--app <appId>', 'App ID')
104
+ .requiredOption('--id <pageId>', 'Page ID')
105
+ .action(async (opts) => {
106
+ const cmd = `assess report page remove --app ${opts.app} --id ${opts.id} --json`;
107
+ output(await execCommand(cmd));
108
+ });
109
+ // ========== Widget Management ==========
110
+ const widget = report.command('widget').description('Report widget management');
111
+ widget
112
+ .command('list')
113
+ .description('List all widgets in a page')
114
+ .requiredOption('--app <appId>', 'App ID')
115
+ .requiredOption('--page <pageId>', 'Page ID')
116
+ .action(async (opts) => {
117
+ const cmd = `assess report widget list --app ${opts.app} --page ${opts.page} --json`;
118
+ output(await execCommand(cmd));
119
+ });
120
+ widget
121
+ .command('find')
122
+ .description('Find a single widget with full details (including HTML content)')
123
+ .requiredOption('--app <appId>', 'App ID')
124
+ .requiredOption('--page <pageId>', 'Page ID')
125
+ .requiredOption('--id <widgetId>', 'Widget ID')
126
+ .action(async (opts) => {
127
+ const cmd = `assess report widget find --app ${opts.app} --page ${opts.page} --id ${opts.id} --json`;
128
+ output(await execCommand(cmd));
129
+ });
130
+ widget
131
+ .command('types')
132
+ .description('List all supported widget types')
133
+ .option('--app <appId>', 'App ID')
134
+ .action(async (opts) => {
135
+ let cmd = 'assess report widget types';
136
+ if (opts.app)
137
+ cmd += ` --app ${opts.app}`;
138
+ output(await execCommand(cmd));
139
+ });
140
+ widget
141
+ .command('config')
142
+ .description('Get configurable properties for a widget type')
143
+ .requiredOption('--type <type>', 'Widget type')
144
+ .option('--app <appId>', 'App ID')
145
+ .action(async (opts) => {
146
+ let cmd = `assess report widget config --type ${opts.type}`;
147
+ if (opts.app)
148
+ cmd += ` --app ${opts.app}`;
149
+ output(await execCommand(cmd));
150
+ });
151
+ widget
152
+ .command('set')
153
+ .description('Set a single property on a widget (any field from find output, including layoutData.* properties)')
154
+ .requiredOption('--app <appId>', 'App ID')
155
+ .requiredOption('--page <pageId>', 'Page ID')
156
+ .requiredOption('--id <widgetId>', 'Widget ID')
157
+ .requiredOption('--property <property>', 'Property path (e.g. name, value, type, x, y, w, h, scaleId, fieldKey, layoutData.backgroundColor, layoutData.fontSize)')
158
+ .requiredOption('--value <value>', 'New value')
159
+ .action(async (opts) => {
160
+ const cmd = `assess report widget set --app ${opts.app} --page ${opts.page} --id ${opts.id} --property ${opts.property} --value "${opts.value}" --json`;
161
+ output(await execCommand(cmd));
162
+ });
163
+ widget
164
+ .command('add')
165
+ .description('Add a widget to a page. Page uses 68-row × 48-col grid layout; x/y/w/h required and must not overflow or overlap')
166
+ .requiredOption('--app <appId>', 'App ID')
167
+ .requiredOption('--page <pageId>', 'Page ID')
168
+ .option('--id <widgetId>', 'Widget ID (auto-generated if omitted)')
169
+ .option('--name <name>', 'Widget name')
170
+ .option('--type <type>', 'Widget type (use "widget types" to list all)', 'text')
171
+ .option('--x <x>', 'Column position [0-47]', parseInt)
172
+ .option('--y <y>', 'Row position [0-67]', parseInt)
173
+ .option('--w <w>', 'Column width (x+w ≤ 48)', parseInt)
174
+ .option('--h <h>', 'Row height (y+h ≤ 68)', parseInt)
175
+ .option('--value <value>', 'Widget content value')
176
+ .option('--format <format>', 'Chart type: index/donut/pie/bar/h-bar/radar (for scale-chart/field-chart)')
177
+ .option('--scaleId <scaleId>', 'Scale dimension ID (for scale-dimension/scale-chart widgets)')
178
+ .option('--enableOwn [value]', 'Data scope: true=personal / false=overall (for scale-chart/scale-dimension)')
179
+ .option('--fieldKey <fieldKey>', 'Field key (for field-value/field-score/field-chart widgets)')
180
+ .option('--category <category>', 'Widget category (html-embed: widget/url; train-expert: expert/url; time: create; qr-code: text/link)')
181
+ .option('--url <url>', 'Web URL (for html-embed category=url)')
182
+ .option('--enableDisplay [value]', 'Display mode (train-expert: true=widget, false=QR code)')
183
+ .option('--min <min>', 'Min value', parseInt)
184
+ .option('--max <max>', 'Max value', parseInt)
185
+ .option('--aiPrompt <prompt>', 'SVG AI prompt')
186
+ .option('--aiSendData [value]', 'SVG AI: send data (true/false)')
187
+ .option('--aiFieldKeys <keys>', 'SVG AI: field key list')
188
+ .option('--logic <logic>', 'Inline logic condition "min|max|content" (repeatable, use * for no bound)')
189
+ .option('--backgroundColor <color>', 'Layout background color (hex)')
190
+ .option('--roundCorner <n>', 'Corner radius (0-100)', parseInt)
191
+ .option('--fillColor <color>', 'Fill color (hex, for sharp/hr widgets)')
192
+ .option('--enableBorder [value]', 'Enable border (true/false)')
193
+ .option('--borderColor <color>', 'Border color (hex)')
194
+ .option('--borderSize <n>', 'Border width in px', parseInt)
195
+ .option('--paddingSize <n>', 'Padding in px (all directions)', parseInt)
196
+ .option('--paddingTop <n>', 'Top padding px', parseInt)
197
+ .option('--paddingRight <n>', 'Right padding px', parseInt)
198
+ .option('--paddingBottom <n>', 'Bottom padding px', parseInt)
199
+ .option('--paddingLeft <n>', 'Left padding px', parseInt)
200
+ .option('--fontColor <color>', 'Font color (hex)')
201
+ .option('--fontSize <n>', 'Font size in px', parseInt)
202
+ .option('--bold [value]', 'Bold text (true/false)')
203
+ .option('--alignX <align>', 'Horizontal alignment: left/center/right')
204
+ .option('--alignY <align>', 'Vertical alignment: start/center/end')
205
+ .action(async (opts) => {
206
+ let cmd = `assess report widget add --app ${opts.app} --page ${opts.page} --type ${opts.type}`;
207
+ if (opts.id)
208
+ cmd += ` --id ${opts.id}`;
209
+ if (opts.name)
210
+ cmd += ` --name "${opts.name}"`;
211
+ if (opts.x !== undefined)
212
+ cmd += ` --x ${opts.x}`;
213
+ if (opts.y !== undefined)
214
+ cmd += ` --y ${opts.y}`;
215
+ if (opts.w !== undefined)
216
+ cmd += ` --w ${opts.w}`;
217
+ if (opts.h !== undefined)
218
+ cmd += ` --h ${opts.h}`;
219
+ if (opts.value)
220
+ cmd += ` --value "${opts.value}"`;
221
+ if (opts.format)
222
+ cmd += ` --format ${opts.format}`;
223
+ if (opts.scaleId)
224
+ cmd += ` --scaleId ${opts.scaleId}`;
225
+ const eo = normBool(opts.enableOwn);
226
+ if (eo !== undefined)
227
+ cmd += ` --enableOwn=${eo}`;
228
+ if (opts.fieldKey)
229
+ cmd += ` --fieldKey ${opts.fieldKey}`;
230
+ if (opts.category)
231
+ cmd += ` --category ${opts.category}`;
232
+ if (opts.url)
233
+ cmd += ` --url ${opts.url}`;
234
+ const ed = normBool(opts.enableDisplay);
235
+ if (ed !== undefined)
236
+ cmd += ` --enableDisplay=${ed}`;
237
+ if (opts.min !== undefined)
238
+ cmd += ` --min ${opts.min}`;
239
+ if (opts.max !== undefined)
240
+ cmd += ` --max ${opts.max}`;
241
+ if (opts.aiPrompt)
242
+ cmd += ` --aiPrompt "${opts.aiPrompt}"`;
243
+ const asd = normBool(opts.aiSendData);
244
+ if (asd !== undefined)
245
+ cmd += ` --aiSendData=${asd}`;
246
+ if (opts.aiFieldKeys)
247
+ cmd += ` --aiFieldKeys ${opts.aiFieldKeys}`;
248
+ if (opts.logic)
249
+ cmd += ` --logic "${opts.logic}"`;
250
+ if (opts.backgroundColor)
251
+ cmd += ` --backgroundColor ${opts.backgroundColor}`;
252
+ if (opts.roundCorner !== undefined)
253
+ cmd += ` --roundCorner ${opts.roundCorner}`;
254
+ if (opts.fillColor)
255
+ cmd += ` --fillColor ${opts.fillColor}`;
256
+ const eb = normBool(opts.enableBorder);
257
+ if (eb !== undefined)
258
+ cmd += ` --enableBorder=${eb}`;
259
+ if (opts.borderColor)
260
+ cmd += ` --borderColor ${opts.borderColor}`;
261
+ if (opts.borderSize !== undefined)
262
+ cmd += ` --borderSize ${opts.borderSize}`;
263
+ if (opts.paddingSize !== undefined)
264
+ cmd += ` --paddingSize ${opts.paddingSize}`;
265
+ if (opts.paddingTop !== undefined)
266
+ cmd += ` --paddingTop ${opts.paddingTop}`;
267
+ if (opts.paddingRight !== undefined)
268
+ cmd += ` --paddingRight ${opts.paddingRight}`;
269
+ if (opts.paddingBottom !== undefined)
270
+ cmd += ` --paddingBottom ${opts.paddingBottom}`;
271
+ if (opts.paddingLeft !== undefined)
272
+ cmd += ` --paddingLeft ${opts.paddingLeft}`;
273
+ if (opts.fontColor)
274
+ cmd += ` --fontColor ${opts.fontColor}`;
275
+ if (opts.fontSize !== undefined)
276
+ cmd += ` --fontSize ${opts.fontSize}`;
277
+ const b = normBool(opts.bold);
278
+ if (b !== undefined)
279
+ cmd += ` --bold=${b}`;
280
+ if (opts.alignX)
281
+ cmd += ` --alignX ${opts.alignX}`;
282
+ if (opts.alignY)
283
+ cmd += ` --alignY ${opts.alignY}`;
284
+ cmd += ' --json';
285
+ output(await execCommand(cmd));
286
+ });
287
+ widget
288
+ .command('update')
289
+ .description('Update a widget. Same parameters as "widget add" but --id is required. Use "widget set" for single-property changes')
290
+ .requiredOption('--app <appId>', 'App ID')
291
+ .requiredOption('--page <pageId>', 'Page ID')
292
+ .requiredOption('--id <widgetId>', 'Widget ID')
293
+ .option('--name <name>', 'Widget name')
294
+ .option('--type <type>', 'Widget type')
295
+ .option('--x <x>', 'Column position', parseInt)
296
+ .option('--y <y>', 'Row position', parseInt)
297
+ .option('--w <w>', 'Column width', parseInt)
298
+ .option('--h <h>', 'Row height', parseInt)
299
+ .option('--value <value>', 'Widget content value')
300
+ .option('--format <format>', 'Chart type')
301
+ .option('--scaleId <scaleId>', 'Scale dimension ID')
302
+ .option('--enableOwn [value]', 'Data scope (true=personal/false=overall)')
303
+ .option('--fieldKey <fieldKey>', 'Field key')
304
+ .option('--category <category>', 'Widget category')
305
+ .option('--url <url>', 'Web URL')
306
+ .option('--enableDisplay [value]', 'Display mode')
307
+ .option('--min <min>', 'Min value', parseInt)
308
+ .option('--max <max>', 'Max value', parseInt)
309
+ .option('--aiPrompt <prompt>', 'SVG AI prompt')
310
+ .option('--aiSendData [value]', 'SVG AI: send data')
311
+ .option('--aiFieldKeys <keys>', 'SVG AI: field keys')
312
+ .option('--logic <logic>', 'Inline logic "min|max|content" (repeatable)')
313
+ .option('--backgroundColor <color>', 'Background color')
314
+ .option('--roundCorner <n>', 'Corner radius', parseInt)
315
+ .option('--fillColor <color>', 'Fill color')
316
+ .option('--enableBorder [value]', 'Enable border')
317
+ .option('--borderColor <color>', 'Border color')
318
+ .option('--borderSize <n>', 'Border width px', parseInt)
319
+ .option('--paddingSize <n>', 'Padding px', parseInt)
320
+ .option('--paddingTop <n>', 'Top padding px', parseInt)
321
+ .option('--paddingRight <n>', 'Right padding px', parseInt)
322
+ .option('--paddingBottom <n>', 'Bottom padding px', parseInt)
323
+ .option('--paddingLeft <n>', 'Left padding px', parseInt)
324
+ .option('--fontColor <color>', 'Font color')
325
+ .option('--fontSize <n>', 'Font size px', parseInt)
326
+ .option('--bold [value]', 'Bold text')
327
+ .option('--alignX <align>', 'Horizontal alignment')
328
+ .option('--alignY <align>', 'Vertical alignment')
329
+ .action(async (opts) => {
330
+ let cmd = `assess report widget update --app ${opts.app} --page ${opts.page} --id ${opts.id}`;
331
+ if (opts.name)
332
+ cmd += ` --name "${opts.name}"`;
333
+ if (opts.type)
334
+ cmd += ` --type ${opts.type}`;
335
+ if (opts.x !== undefined)
336
+ cmd += ` --x ${opts.x}`;
337
+ if (opts.y !== undefined)
338
+ cmd += ` --y ${opts.y}`;
339
+ if (opts.w !== undefined)
340
+ cmd += ` --w ${opts.w}`;
341
+ if (opts.h !== undefined)
342
+ cmd += ` --h ${opts.h}`;
343
+ if (opts.value)
344
+ cmd += ` --value "${opts.value}"`;
345
+ if (opts.format)
346
+ cmd += ` --format ${opts.format}`;
347
+ if (opts.scaleId)
348
+ cmd += ` --scaleId ${opts.scaleId}`;
349
+ const eo = normBool(opts.enableOwn);
350
+ if (eo !== undefined)
351
+ cmd += ` --enableOwn=${eo}`;
352
+ if (opts.fieldKey)
353
+ cmd += ` --fieldKey ${opts.fieldKey}`;
354
+ if (opts.category)
355
+ cmd += ` --category ${opts.category}`;
356
+ if (opts.url)
357
+ cmd += ` --url ${opts.url}`;
358
+ const ed = normBool(opts.enableDisplay);
359
+ if (ed !== undefined)
360
+ cmd += ` --enableDisplay=${ed}`;
361
+ if (opts.min !== undefined)
362
+ cmd += ` --min ${opts.min}`;
363
+ if (opts.max !== undefined)
364
+ cmd += ` --max ${opts.max}`;
365
+ if (opts.aiPrompt)
366
+ cmd += ` --aiPrompt "${opts.aiPrompt}"`;
367
+ const asd = normBool(opts.aiSendData);
368
+ if (asd !== undefined)
369
+ cmd += ` --aiSendData=${asd}`;
370
+ if (opts.aiFieldKeys)
371
+ cmd += ` --aiFieldKeys ${opts.aiFieldKeys}`;
372
+ if (opts.logic)
373
+ cmd += ` --logic "${opts.logic}"`;
374
+ if (opts.backgroundColor)
375
+ cmd += ` --backgroundColor ${opts.backgroundColor}`;
376
+ if (opts.roundCorner !== undefined)
377
+ cmd += ` --roundCorner ${opts.roundCorner}`;
378
+ if (opts.fillColor)
379
+ cmd += ` --fillColor ${opts.fillColor}`;
380
+ const eb = normBool(opts.enableBorder);
381
+ if (eb !== undefined)
382
+ cmd += ` --enableBorder=${eb}`;
383
+ if (opts.borderColor)
384
+ cmd += ` --borderColor ${opts.borderColor}`;
385
+ if (opts.borderSize !== undefined)
386
+ cmd += ` --borderSize ${opts.borderSize}`;
387
+ if (opts.paddingSize !== undefined)
388
+ cmd += ` --paddingSize ${opts.paddingSize}`;
389
+ if (opts.paddingTop !== undefined)
390
+ cmd += ` --paddingTop ${opts.paddingTop}`;
391
+ if (opts.paddingRight !== undefined)
392
+ cmd += ` --paddingRight ${opts.paddingRight}`;
393
+ if (opts.paddingBottom !== undefined)
394
+ cmd += ` --paddingBottom ${opts.paddingBottom}`;
395
+ if (opts.paddingLeft !== undefined)
396
+ cmd += ` --paddingLeft ${opts.paddingLeft}`;
397
+ if (opts.fontColor)
398
+ cmd += ` --fontColor ${opts.fontColor}`;
399
+ if (opts.fontSize !== undefined)
400
+ cmd += ` --fontSize ${opts.fontSize}`;
401
+ const b = normBool(opts.bold);
402
+ if (b !== undefined)
403
+ cmd += ` --bold=${b}`;
404
+ if (opts.alignX)
405
+ cmd += ` --alignX ${opts.alignX}`;
406
+ if (opts.alignY)
407
+ cmd += ` --alignY ${opts.alignY}`;
408
+ cmd += ' --json';
409
+ output(await execCommand(cmd));
410
+ });
411
+ widget
412
+ .command('remove')
413
+ .description('Remove a widget from a page')
414
+ .requiredOption('--app <appId>', 'App ID')
415
+ .requiredOption('--page <pageId>', 'Page ID')
416
+ .requiredOption('--id <widgetId>', 'Widget ID')
417
+ .action(async (opts) => {
418
+ const cmd = `assess report widget remove --app ${opts.app} --page ${opts.page} --id ${opts.id} --json`;
419
+ output(await execCommand(cmd));
420
+ });
421
+ // ========== Logic (Conditional Display Rules) ==========
422
+ const logic = widget.command('logic').description('Conditional display rules (for scale-dimension widgets)');
423
+ logic
424
+ .command('add')
425
+ .description('Add a conditional display rule: when dimension score is in [min, max], show content (supports {{variables}})')
426
+ .requiredOption('--app <appId>', 'App ID')
427
+ .requiredOption('--page <pageId>', 'Page ID')
428
+ .requiredOption('--id <widgetId>', 'Widget ID')
429
+ .option('--min <min>', 'Score lower bound (inclusive, omit for no lower bound)', parseFloat)
430
+ .option('--max <max>', 'Score upper bound (inclusive, omit for no upper bound)', parseFloat)
431
+ .requiredOption('--content <content>', 'Display content when condition is met (HTML, supports {{DimensionName}} {{DimensionScore}} {{DimensionTotal}} {{DimensionValue}} {{DimensionDesc}})')
432
+ .option('--backgroundColor <color>', 'Background color (CSS)')
433
+ .option('--roundCorner <n>', 'Corner radius (0-100)', parseInt)
434
+ .option('--fillColor <color>', 'Fill color (for sharp/hr widgets)')
435
+ .option('--enableBorder [value]', 'Enable border')
436
+ .option('--borderColor <color>', 'Border color')
437
+ .option('--borderSize <n>', 'Border width px', parseInt)
438
+ .option('--paddingSize <n>', 'Padding px', parseInt)
439
+ .option('--paddingTop <n>', 'Top padding px', parseInt)
440
+ .option('--paddingRight <n>', 'Right padding px', parseInt)
441
+ .option('--paddingBottom <n>', 'Bottom padding px', parseInt)
442
+ .option('--paddingLeft <n>', 'Left padding px', parseInt)
443
+ .option('--fontColor <color>', 'Font color')
444
+ .option('--fontSize <n>', 'Font size px', parseInt)
445
+ .option('--bold [value]', 'Bold text')
446
+ .action(async (opts) => {
447
+ let cmd = `assess report widget logic add --app ${opts.app} --page ${opts.page} --id ${opts.id} --content "${opts.content}"`;
448
+ if (opts.min !== undefined)
449
+ cmd += ` --min ${opts.min}`;
450
+ if (opts.max !== undefined)
451
+ cmd += ` --max ${opts.max}`;
452
+ if (opts.backgroundColor)
453
+ cmd += ` --backgroundColor ${opts.backgroundColor}`;
454
+ if (opts.roundCorner !== undefined)
455
+ cmd += ` --roundCorner ${opts.roundCorner}`;
456
+ if (opts.fillColor)
457
+ cmd += ` --fillColor ${opts.fillColor}`;
458
+ const eb = normBool(opts.enableBorder);
459
+ if (eb !== undefined)
460
+ cmd += ` --enableBorder=${eb}`;
461
+ if (opts.borderColor)
462
+ cmd += ` --borderColor ${opts.borderColor}`;
463
+ if (opts.borderSize !== undefined)
464
+ cmd += ` --borderSize ${opts.borderSize}`;
465
+ if (opts.paddingSize !== undefined)
466
+ cmd += ` --paddingSize ${opts.paddingSize}`;
467
+ if (opts.paddingTop !== undefined)
468
+ cmd += ` --paddingTop ${opts.paddingTop}`;
469
+ if (opts.paddingRight !== undefined)
470
+ cmd += ` --paddingRight ${opts.paddingRight}`;
471
+ if (opts.paddingBottom !== undefined)
472
+ cmd += ` --paddingBottom ${opts.paddingBottom}`;
473
+ if (opts.paddingLeft !== undefined)
474
+ cmd += ` --paddingLeft ${opts.paddingLeft}`;
475
+ if (opts.fontColor)
476
+ cmd += ` --fontColor ${opts.fontColor}`;
477
+ if (opts.fontSize !== undefined)
478
+ cmd += ` --fontSize ${opts.fontSize}`;
479
+ const b = normBool(opts.bold);
480
+ if (b !== undefined)
481
+ cmd += ` --bold=${b}`;
482
+ cmd += ' --json';
483
+ output(await execCommand(cmd));
484
+ });
485
+ logic
486
+ .command('list')
487
+ .description('List all conditional display rules for a widget')
488
+ .requiredOption('--app <appId>', 'App ID')
489
+ .requiredOption('--page <pageId>', 'Page ID')
490
+ .requiredOption('--id <widgetId>', 'Widget ID')
491
+ .action(async (opts) => {
492
+ const cmd = `assess report widget logic list --app ${opts.app} --page ${opts.page} --id ${opts.id} --json`;
493
+ output(await execCommand(cmd));
494
+ });
495
+ logic
496
+ .command('remove')
497
+ .description('Remove a conditional display rule from a widget')
498
+ .requiredOption('--app <appId>', 'App ID')
499
+ .requiredOption('--page <pageId>', 'Page ID')
500
+ .requiredOption('--id <widgetId>', 'Widget ID')
501
+ .requiredOption('--logicId <logicId>', 'Logic rule ID')
502
+ .action(async (opts) => {
503
+ const cmd = `assess report widget logic remove --app ${opts.app} --page ${opts.page} --id ${opts.id} --logicId ${opts.logicId} --json`;
504
+ output(await execCommand(cmd));
505
+ });
506
+ }
507
+ //# sourceMappingURL=report.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/commands/report.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerScaleCommand(parent: Command): void;
3
+ //# sourceMappingURL=scale.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scale.d.ts","sourceRoot":"","sources":["../../src/commands/scale.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CA0Q1D"}