@formant/formant-cli 0.4.4 → 0.5.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.
@@ -38,6 +38,16 @@
38
38
  "allowNo": false,
39
39
  "type": "boolean"
40
40
  },
41
+ "toon": {
42
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
43
+ "exclusive": [
44
+ "json"
45
+ ],
46
+ "helpGroup": "GLOBAL",
47
+ "name": "toon",
48
+ "allowNo": false,
49
+ "type": "boolean"
50
+ },
41
51
  "limit": {
42
52
  "char": "l",
43
53
  "description": "Maximum number of rows to return",
@@ -121,6 +131,16 @@
121
131
  "name": "stage",
122
132
  "allowNo": false,
123
133
  "type": "boolean"
134
+ },
135
+ "toon": {
136
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
137
+ "exclusive": [
138
+ "json"
139
+ ],
140
+ "helpGroup": "GLOBAL",
141
+ "name": "toon",
142
+ "allowNo": false,
143
+ "type": "boolean"
124
144
  }
125
145
  },
126
146
  "hasDynamicHelp": false,
@@ -140,19 +160,19 @@
140
160
  "tables.js"
141
161
  ]
142
162
  },
143
- "event:get": {
163
+ "command:for-device": {
144
164
  "aliases": [],
145
165
  "args": {
146
- "id": {
147
- "description": "Event ID (UUID)",
148
- "name": "id",
166
+ "deviceId": {
167
+ "description": "Device ID (UUID)",
168
+ "name": "deviceId",
149
169
  "required": true
150
170
  }
151
171
  },
152
- "description": "Get detailed information about a specific event by its ID.",
172
+ "description": "List command templates available for a specific device.\n\nReturns commands that match the device's tags and filters. Only enabled commands\nthat apply to this device are shown.",
153
173
  "examples": [
154
- "<%= config.bin %> event get <event-id>",
155
- "<%= config.bin %> event get <event-id> --json"
174
+ "<%= config.bin %> command for-device <device-id>",
175
+ "<%= config.bin %> command for-device <device-id> --json"
156
176
  ],
157
177
  "flags": {
158
178
  "json": {
@@ -181,34 +201,48 @@
181
201
  "name": "stage",
182
202
  "allowNo": false,
183
203
  "type": "boolean"
204
+ },
205
+ "toon": {
206
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
207
+ "exclusive": [
208
+ "json"
209
+ ],
210
+ "helpGroup": "GLOBAL",
211
+ "name": "toon",
212
+ "allowNo": false,
213
+ "type": "boolean"
184
214
  }
185
215
  },
186
216
  "hasDynamicHelp": false,
187
217
  "hiddenAliases": [],
188
- "id": "event:get",
218
+ "id": "command:for-device",
189
219
  "pluginAlias": "@formant/formant-cli",
190
220
  "pluginName": "@formant/formant-cli",
191
221
  "pluginType": "core",
192
222
  "strict": true,
193
- "summary": "Get an event by ID",
223
+ "summary": "List commands available for a device",
194
224
  "enableJsonFlag": true,
195
225
  "isESM": true,
196
226
  "relativePath": [
197
227
  "dist",
198
228
  "commands",
199
- "event",
200
- "get.js"
229
+ "command",
230
+ "for-device.js"
201
231
  ]
202
232
  },
203
- "event:list": {
233
+ "command:get": {
204
234
  "aliases": [],
205
- "args": {},
206
- "description": "View important events emitted by devices with optional filters.\n\nEvents are significant occurrences from robots and sensors (e.g., device online/offline,\nerrors, state changes, commands). They can trigger signals for investigation.\n\nEvent types include: triggered-event, datapoint-event, device-online, device-offline,\nintervention-request, intervention-response, teleop-session-record, command-request,\ncommand-response, custom, comment, system, annotation, task-summary, stateful.\n\nSeverities: info, warning, error, critical.",
235
+ "args": {
236
+ "id": {
237
+ "description": "Command template ID (UUID)",
238
+ "name": "id",
239
+ "required": true
240
+ }
241
+ },
242
+ "description": "Get detailed information about a command template.\n\nShows the full template configuration including command string, parameter schema,\ndevice targeting filters, and delivery settings. If the template has structured\nparameters (schema), they are displayed in a readable format.",
207
243
  "examples": [
208
- "<%= config.bin %> event list",
209
- "<%= config.bin %> event list --device <id> --severity critical",
210
- "<%= config.bin %> event list --type device-offline --start 2026-01-01 --end 2026-01-02",
211
- "<%= config.bin %> event list --limit 100 --json"
244
+ "<%= config.bin %> command get <template-id>",
245
+ "<%= config.bin %> command get <template-id> --json"
212
246
  ],
213
247
  "flags": {
214
248
  "json": {
@@ -238,88 +272,42 @@
238
272
  "allowNo": false,
239
273
  "type": "boolean"
240
274
  },
241
- "device": {
242
- "char": "d",
243
- "description": "Filter by device ID",
244
- "name": "device",
245
- "hasDynamicHelp": false,
246
- "multiple": false,
247
- "type": "option"
248
- },
249
- "end": {
250
- "description": "End time (ISO 8601)",
251
- "name": "end",
252
- "hasDynamicHelp": false,
253
- "multiple": false,
254
- "type": "option"
255
- },
256
- "limit": {
257
- "char": "l",
258
- "description": "Maximum number of events to return",
259
- "name": "limit",
260
- "default": 25,
261
- "hasDynamicHelp": false,
262
- "multiple": false,
263
- "type": "option"
264
- },
265
- "severity": {
266
- "description": "Filter by severity",
267
- "name": "severity",
268
- "hasDynamicHelp": false,
269
- "multiple": false,
270
- "options": [
271
- "info",
272
- "warning",
273
- "error",
274
- "critical"
275
+ "toon": {
276
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
277
+ "exclusive": [
278
+ "json"
275
279
  ],
276
- "type": "option"
277
- },
278
- "start": {
279
- "description": "Start time (ISO 8601)",
280
- "name": "start",
281
- "hasDynamicHelp": false,
282
- "multiple": false,
283
- "type": "option"
284
- },
285
- "type": {
286
- "description": "Filter by event type",
287
- "name": "type",
288
- "hasDynamicHelp": false,
289
- "multiple": false,
290
- "type": "option"
280
+ "helpGroup": "GLOBAL",
281
+ "name": "toon",
282
+ "allowNo": false,
283
+ "type": "boolean"
291
284
  }
292
285
  },
293
286
  "hasDynamicHelp": false,
294
287
  "hiddenAliases": [],
295
- "id": "event:list",
288
+ "id": "command:get",
296
289
  "pluginAlias": "@formant/formant-cli",
297
290
  "pluginName": "@formant/formant-cli",
298
291
  "pluginType": "core",
299
292
  "strict": true,
300
- "summary": "View events emitted by devices",
293
+ "summary": "Get command template details",
301
294
  "enableJsonFlag": true,
302
295
  "isESM": true,
303
296
  "relativePath": [
304
297
  "dist",
305
298
  "commands",
306
- "event",
307
- "list.js"
299
+ "command",
300
+ "get.js"
308
301
  ]
309
302
  },
310
- "event-trigger:get": {
303
+ "command:history": {
311
304
  "aliases": [],
312
- "args": {
313
- "id": {
314
- "description": "Event trigger ID (UUID)",
315
- "name": "id",
316
- "required": true
317
- }
318
- },
319
- "description": "Get detailed information about an event trigger.\n\nShows the full trigger configuration including conditions, exit conditions, commands\nit executes, and device targeting filters.",
305
+ "args": {},
306
+ "description": "Query command history for a device.\n\nShows commands that have been sent to a device, including delivery status and responses.\nUse this to check if commands were delivered and executed successfully.",
320
307
  "examples": [
321
- "<%= config.bin %> event-trigger get <trigger-id>",
322
- "<%= config.bin %> event-trigger get <trigger-id> --json"
308
+ "<%= config.bin %> command history --device <device-id>",
309
+ "<%= config.bin %> command history --device <device-id> --limit 50",
310
+ "<%= config.bin %> command history --device <device-id> --json"
323
311
  ],
324
312
  "flags": {
325
313
  "json": {
@@ -348,32 +336,60 @@
348
336
  "name": "stage",
349
337
  "allowNo": false,
350
338
  "type": "boolean"
339
+ },
340
+ "toon": {
341
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
342
+ "exclusive": [
343
+ "json"
344
+ ],
345
+ "helpGroup": "GLOBAL",
346
+ "name": "toon",
347
+ "allowNo": false,
348
+ "type": "boolean"
349
+ },
350
+ "device": {
351
+ "char": "d",
352
+ "description": "Device ID (UUID)",
353
+ "name": "device",
354
+ "required": true,
355
+ "hasDynamicHelp": false,
356
+ "multiple": false,
357
+ "type": "option"
358
+ },
359
+ "limit": {
360
+ "char": "l",
361
+ "description": "Maximum number of commands to return",
362
+ "name": "limit",
363
+ "default": 25,
364
+ "hasDynamicHelp": false,
365
+ "multiple": false,
366
+ "type": "option"
351
367
  }
352
368
  },
353
369
  "hasDynamicHelp": false,
354
370
  "hiddenAliases": [],
355
- "id": "event-trigger:get",
371
+ "id": "command:history",
356
372
  "pluginAlias": "@formant/formant-cli",
357
373
  "pluginName": "@formant/formant-cli",
358
374
  "pluginType": "core",
359
375
  "strict": true,
360
- "summary": "Get event trigger details",
376
+ "summary": "Query command history",
361
377
  "enableJsonFlag": true,
362
378
  "isESM": true,
363
379
  "relativePath": [
364
380
  "dist",
365
381
  "commands",
366
- "event-trigger",
367
- "get.js"
382
+ "command",
383
+ "history.js"
368
384
  ]
369
385
  },
370
- "event-trigger:list": {
386
+ "command:list": {
371
387
  "aliases": [],
372
388
  "args": {},
373
- "description": "List all event trigger rules in your organization.\n\nEvent triggers monitor device data and generate events/signals when conditions are met.\nThey can trigger investigations, send notifications, or execute commands.",
389
+ "description": "List all command templates defined in your organization.\n\nCommand templates define the commands that can be sent to devices. Each template\nspecifies the command string, parameters, delivery settings, and device targeting.",
374
390
  "examples": [
375
- "<%= config.bin %> event-trigger list",
376
- "<%= config.bin %> event-trigger list --json"
391
+ "<%= config.bin %> command list",
392
+ "<%= config.bin %> command list --json"
377
393
  ],
378
394
  "flags": {
379
395
  "json": {
@@ -402,38 +418,56 @@
402
418
  "name": "stage",
403
419
  "allowNo": false,
404
420
  "type": "boolean"
421
+ },
422
+ "toon": {
423
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
424
+ "exclusive": [
425
+ "json"
426
+ ],
427
+ "helpGroup": "GLOBAL",
428
+ "name": "toon",
429
+ "allowNo": false,
430
+ "type": "boolean"
405
431
  }
406
432
  },
407
433
  "hasDynamicHelp": false,
408
434
  "hiddenAliases": [],
409
- "id": "event-trigger:list",
435
+ "id": "command:list",
410
436
  "pluginAlias": "@formant/formant-cli",
411
437
  "pluginName": "@formant/formant-cli",
412
438
  "pluginType": "core",
413
439
  "strict": true,
414
- "summary": "List event trigger rules",
440
+ "summary": "List command templates",
415
441
  "enableJsonFlag": true,
416
442
  "isESM": true,
417
443
  "relativePath": [
418
444
  "dist",
419
445
  "commands",
420
- "event-trigger",
446
+ "command",
421
447
  "list.js"
422
448
  ]
423
449
  },
424
- "command:for-device": {
450
+ "command:send": {
425
451
  "aliases": [],
426
452
  "args": {
427
453
  "deviceId": {
428
454
  "description": "Device ID (UUID)",
429
455
  "name": "deviceId",
430
456
  "required": true
457
+ },
458
+ "templateId": {
459
+ "description": "Command template ID (UUID)",
460
+ "name": "templateId",
461
+ "required": true
431
462
  }
432
463
  },
433
- "description": "List command templates available for a specific device.\n\nReturns commands that match the device's tags and filters. Only enabled commands\nthat apply to this device are shown.",
464
+ "description": "Send a command to a device using a command template.\n\nFetches the template, validates parameters against its schema, and sends the command\nto the specified device. Use --param flags to override parameter values.\n\nFor templates with structured parameters (schema), parameter names and types are\nvalidated. For unstructured parameters, the raw value is sent as-is.\n\nUse --dry-run to preview the payload without actually sending.",
434
465
  "examples": [
435
- "<%= config.bin %> command for-device <device-id>",
436
- "<%= config.bin %> command for-device <device-id> --json"
466
+ "<%= config.bin %> command send <device-id> <template-id>",
467
+ "<%= config.bin %> command send <device-id> <template-id> --param speed=5 --param mode=fast",
468
+ "<%= config.bin %> command send <device-id> <template-id> --dry-run",
469
+ "<%= config.bin %> command send <device-id> <template-id> --raw-value '{\"x\":1,\"y\":2}'",
470
+ "<%= config.bin %> command send <device-id> <template-id> --json"
437
471
  ],
438
472
  "flags": {
439
473
  "json": {
@@ -462,38 +496,69 @@
462
496
  "name": "stage",
463
497
  "allowNo": false,
464
498
  "type": "boolean"
499
+ },
500
+ "toon": {
501
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
502
+ "exclusive": [
503
+ "json"
504
+ ],
505
+ "helpGroup": "GLOBAL",
506
+ "name": "toon",
507
+ "allowNo": false,
508
+ "type": "boolean"
509
+ },
510
+ "dry-run": {
511
+ "description": "Preview the command payload without sending",
512
+ "name": "dry-run",
513
+ "allowNo": false,
514
+ "type": "boolean"
515
+ },
516
+ "param": {
517
+ "char": "p",
518
+ "description": "Parameter override (name=value), can be specified multiple times",
519
+ "name": "param",
520
+ "hasDynamicHelp": false,
521
+ "multiple": true,
522
+ "type": "option"
523
+ },
524
+ "raw-value": {
525
+ "description": "Send a raw parameter value string (bypasses schema validation)",
526
+ "name": "raw-value",
527
+ "hasDynamicHelp": false,
528
+ "multiple": false,
529
+ "type": "option"
465
530
  }
466
531
  },
467
532
  "hasDynamicHelp": false,
468
533
  "hiddenAliases": [],
469
- "id": "command:for-device",
534
+ "id": "command:send",
470
535
  "pluginAlias": "@formant/formant-cli",
471
536
  "pluginName": "@formant/formant-cli",
472
537
  "pluginType": "core",
473
538
  "strict": true,
474
- "summary": "List commands available for a device",
539
+ "summary": "Send a command to a device",
475
540
  "enableJsonFlag": true,
476
541
  "isESM": true,
477
542
  "relativePath": [
478
543
  "dist",
479
544
  "commands",
480
545
  "command",
481
- "for-device.js"
546
+ "send.js"
482
547
  ]
483
548
  },
484
- "command:get": {
549
+ "event:get": {
485
550
  "aliases": [],
486
551
  "args": {
487
552
  "id": {
488
- "description": "Command template ID (UUID)",
553
+ "description": "Event ID (UUID)",
489
554
  "name": "id",
490
555
  "required": true
491
556
  }
492
557
  },
493
- "description": "Get detailed information about a command template.\n\nShows the full template configuration including command string, parameter schema,\ndevice targeting filters, and delivery settings. If the template has structured\nparameters (schema), they are displayed in a readable format.",
558
+ "description": "Get detailed information about a specific event by its ID.",
494
559
  "examples": [
495
- "<%= config.bin %> command get <template-id>",
496
- "<%= config.bin %> command get <template-id> --json"
560
+ "<%= config.bin %> event get <event-id>",
561
+ "<%= config.bin %> event get <event-id> --json"
497
562
  ],
498
563
  "flags": {
499
564
  "json": {
@@ -522,33 +587,44 @@
522
587
  "name": "stage",
523
588
  "allowNo": false,
524
589
  "type": "boolean"
590
+ },
591
+ "toon": {
592
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
593
+ "exclusive": [
594
+ "json"
595
+ ],
596
+ "helpGroup": "GLOBAL",
597
+ "name": "toon",
598
+ "allowNo": false,
599
+ "type": "boolean"
525
600
  }
526
601
  },
527
602
  "hasDynamicHelp": false,
528
603
  "hiddenAliases": [],
529
- "id": "command:get",
604
+ "id": "event:get",
530
605
  "pluginAlias": "@formant/formant-cli",
531
606
  "pluginName": "@formant/formant-cli",
532
607
  "pluginType": "core",
533
608
  "strict": true,
534
- "summary": "Get command template details",
609
+ "summary": "Get an event by ID",
535
610
  "enableJsonFlag": true,
536
611
  "isESM": true,
537
612
  "relativePath": [
538
613
  "dist",
539
614
  "commands",
540
- "command",
615
+ "event",
541
616
  "get.js"
542
617
  ]
543
618
  },
544
- "command:history": {
619
+ "event:list": {
545
620
  "aliases": [],
546
621
  "args": {},
547
- "description": "Query command history for a device.\n\nShows commands that have been sent to a device, including delivery status and responses.\nUse this to check if commands were delivered and executed successfully.",
622
+ "description": "View important events emitted by devices with optional filters.\n\nEvents are significant occurrences from robots and sensors (e.g., device online/offline,\nerrors, state changes, commands). They can trigger signals for investigation.\n\nEvent types include: triggered-event, datapoint-event, device-online, device-offline,\nintervention-request, intervention-response, teleop-session-record, command-request,\ncommand-response, custom, comment, system, annotation, task-summary, stateful.\n\nSeverities: info, warning, error, critical.",
548
623
  "examples": [
549
- "<%= config.bin %> command history --device <device-id>",
550
- "<%= config.bin %> command history --device <device-id> --limit 50",
551
- "<%= config.bin %> command history --device <device-id> --json"
624
+ "<%= config.bin %> event list",
625
+ "<%= config.bin %> event list --device <id> --severity critical",
626
+ "<%= config.bin %> event list --type device-offline --start 2026-01-01 --end 2026-01-02",
627
+ "<%= config.bin %> event list --limit 100 --json"
552
628
  ],
553
629
  "flags": {
554
630
  "json": {
@@ -578,49 +654,98 @@
578
654
  "allowNo": false,
579
655
  "type": "boolean"
580
656
  },
657
+ "toon": {
658
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
659
+ "exclusive": [
660
+ "json"
661
+ ],
662
+ "helpGroup": "GLOBAL",
663
+ "name": "toon",
664
+ "allowNo": false,
665
+ "type": "boolean"
666
+ },
581
667
  "device": {
582
668
  "char": "d",
583
- "description": "Device ID (UUID)",
669
+ "description": "Filter by device ID",
584
670
  "name": "device",
585
- "required": true,
671
+ "hasDynamicHelp": false,
672
+ "multiple": false,
673
+ "type": "option"
674
+ },
675
+ "end": {
676
+ "description": "End time (ISO 8601)",
677
+ "name": "end",
586
678
  "hasDynamicHelp": false,
587
679
  "multiple": false,
588
680
  "type": "option"
589
681
  },
590
682
  "limit": {
591
683
  "char": "l",
592
- "description": "Maximum number of commands to return",
684
+ "description": "Maximum number of events to return",
593
685
  "name": "limit",
594
686
  "default": 25,
595
687
  "hasDynamicHelp": false,
596
688
  "multiple": false,
597
689
  "type": "option"
690
+ },
691
+ "severity": {
692
+ "description": "Filter by severity",
693
+ "name": "severity",
694
+ "hasDynamicHelp": false,
695
+ "multiple": false,
696
+ "options": [
697
+ "info",
698
+ "warning",
699
+ "error",
700
+ "critical"
701
+ ],
702
+ "type": "option"
703
+ },
704
+ "start": {
705
+ "description": "Start time (ISO 8601)",
706
+ "name": "start",
707
+ "hasDynamicHelp": false,
708
+ "multiple": false,
709
+ "type": "option"
710
+ },
711
+ "type": {
712
+ "description": "Filter by event type",
713
+ "name": "type",
714
+ "hasDynamicHelp": false,
715
+ "multiple": false,
716
+ "type": "option"
598
717
  }
599
718
  },
600
719
  "hasDynamicHelp": false,
601
720
  "hiddenAliases": [],
602
- "id": "command:history",
721
+ "id": "event:list",
603
722
  "pluginAlias": "@formant/formant-cli",
604
723
  "pluginName": "@formant/formant-cli",
605
724
  "pluginType": "core",
606
725
  "strict": true,
607
- "summary": "Query command history",
726
+ "summary": "View events emitted by devices",
608
727
  "enableJsonFlag": true,
609
728
  "isESM": true,
610
729
  "relativePath": [
611
730
  "dist",
612
731
  "commands",
613
- "command",
614
- "history.js"
732
+ "event",
733
+ "list.js"
615
734
  ]
616
735
  },
617
- "command:list": {
736
+ "event-trigger:get": {
618
737
  "aliases": [],
619
- "args": {},
620
- "description": "List all command templates defined in your organization.\n\nCommand templates define the commands that can be sent to devices. Each template\nspecifies the command string, parameters, delivery settings, and device targeting.",
738
+ "args": {
739
+ "id": {
740
+ "description": "Event trigger ID (UUID)",
741
+ "name": "id",
742
+ "required": true
743
+ }
744
+ },
745
+ "description": "Get detailed information about an event trigger.\n\nShows the full trigger configuration including conditions, exit conditions, commands\nit executes, and device targeting filters.",
621
746
  "examples": [
622
- "<%= config.bin %> command list",
623
- "<%= config.bin %> command list --json"
747
+ "<%= config.bin %> event-trigger get <trigger-id>",
748
+ "<%= config.bin %> event-trigger get <trigger-id> --json"
624
749
  ],
625
750
  "flags": {
626
751
  "json": {
@@ -649,46 +774,42 @@
649
774
  "name": "stage",
650
775
  "allowNo": false,
651
776
  "type": "boolean"
777
+ },
778
+ "toon": {
779
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
780
+ "exclusive": [
781
+ "json"
782
+ ],
783
+ "helpGroup": "GLOBAL",
784
+ "name": "toon",
785
+ "allowNo": false,
786
+ "type": "boolean"
652
787
  }
653
788
  },
654
789
  "hasDynamicHelp": false,
655
790
  "hiddenAliases": [],
656
- "id": "command:list",
791
+ "id": "event-trigger:get",
657
792
  "pluginAlias": "@formant/formant-cli",
658
793
  "pluginName": "@formant/formant-cli",
659
794
  "pluginType": "core",
660
795
  "strict": true,
661
- "summary": "List command templates",
796
+ "summary": "Get event trigger details",
662
797
  "enableJsonFlag": true,
663
798
  "isESM": true,
664
799
  "relativePath": [
665
800
  "dist",
666
801
  "commands",
667
- "command",
668
- "list.js"
802
+ "event-trigger",
803
+ "get.js"
669
804
  ]
670
805
  },
671
- "command:send": {
806
+ "event-trigger:list": {
672
807
  "aliases": [],
673
- "args": {
674
- "deviceId": {
675
- "description": "Device ID (UUID)",
676
- "name": "deviceId",
677
- "required": true
678
- },
679
- "templateId": {
680
- "description": "Command template ID (UUID)",
681
- "name": "templateId",
682
- "required": true
683
- }
684
- },
685
- "description": "Send a command to a device using a command template.\n\nFetches the template, validates parameters against its schema, and sends the command\nto the specified device. Use --param flags to override parameter values.\n\nFor templates with structured parameters (schema), parameter names and types are\nvalidated. For unstructured parameters, the raw value is sent as-is.\n\nUse --dry-run to preview the payload without actually sending.",
808
+ "args": {},
809
+ "description": "List all event trigger rules in your organization.\n\nEvent triggers monitor device data and generate events/signals when conditions are met.\nThey can trigger investigations, send notifications, or execute commands.",
686
810
  "examples": [
687
- "<%= config.bin %> command send <device-id> <template-id>",
688
- "<%= config.bin %> command send <device-id> <template-id> --param speed=5 --param mode=fast",
689
- "<%= config.bin %> command send <device-id> <template-id> --dry-run",
690
- "<%= config.bin %> command send <device-id> <template-id> --raw-value '{\"x\":1,\"y\":2}'",
691
- "<%= config.bin %> command send <device-id> <template-id> --json"
811
+ "<%= config.bin %> event-trigger list",
812
+ "<%= config.bin %> event-trigger list --json"
692
813
  ],
693
814
  "flags": {
694
815
  "json": {
@@ -718,43 +839,32 @@
718
839
  "allowNo": false,
719
840
  "type": "boolean"
720
841
  },
721
- "dry-run": {
722
- "description": "Preview the command payload without sending",
723
- "name": "dry-run",
842
+ "toon": {
843
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
844
+ "exclusive": [
845
+ "json"
846
+ ],
847
+ "helpGroup": "GLOBAL",
848
+ "name": "toon",
724
849
  "allowNo": false,
725
850
  "type": "boolean"
726
- },
727
- "param": {
728
- "char": "p",
729
- "description": "Parameter override (name=value), can be specified multiple times",
730
- "name": "param",
731
- "hasDynamicHelp": false,
732
- "multiple": true,
733
- "type": "option"
734
- },
735
- "raw-value": {
736
- "description": "Send a raw parameter value string (bypasses schema validation)",
737
- "name": "raw-value",
738
- "hasDynamicHelp": false,
739
- "multiple": false,
740
- "type": "option"
741
851
  }
742
852
  },
743
853
  "hasDynamicHelp": false,
744
854
  "hiddenAliases": [],
745
- "id": "command:send",
855
+ "id": "event-trigger:list",
746
856
  "pluginAlias": "@formant/formant-cli",
747
857
  "pluginName": "@formant/formant-cli",
748
858
  "pluginType": "core",
749
859
  "strict": true,
750
- "summary": "Send a command to a device",
860
+ "summary": "List event trigger rules",
751
861
  "enableJsonFlag": true,
752
862
  "isESM": true,
753
863
  "relativePath": [
754
864
  "dist",
755
865
  "commands",
756
- "command",
757
- "send.js"
866
+ "event-trigger",
867
+ "list.js"
758
868
  ]
759
869
  },
760
870
  "fleet:get": {
@@ -798,6 +908,16 @@
798
908
  "name": "stage",
799
909
  "allowNo": false,
800
910
  "type": "boolean"
911
+ },
912
+ "toon": {
913
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
914
+ "exclusive": [
915
+ "json"
916
+ ],
917
+ "helpGroup": "GLOBAL",
918
+ "name": "toon",
919
+ "allowNo": false,
920
+ "type": "boolean"
801
921
  }
802
922
  },
803
923
  "hasDynamicHelp": false,
@@ -852,6 +972,16 @@
852
972
  "name": "stage",
853
973
  "allowNo": false,
854
974
  "type": "boolean"
975
+ },
976
+ "toon": {
977
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
978
+ "exclusive": [
979
+ "json"
980
+ ],
981
+ "helpGroup": "GLOBAL",
982
+ "name": "toon",
983
+ "allowNo": false,
984
+ "type": "boolean"
855
985
  }
856
986
  },
857
987
  "hasDynamicHelp": false,
@@ -912,6 +1042,16 @@
912
1042
  "name": "stage",
913
1043
  "allowNo": false,
914
1044
  "type": "boolean"
1045
+ },
1046
+ "toon": {
1047
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
1048
+ "exclusive": [
1049
+ "json"
1050
+ ],
1051
+ "helpGroup": "GLOBAL",
1052
+ "name": "toon",
1053
+ "allowNo": false,
1054
+ "type": "boolean"
915
1055
  }
916
1056
  },
917
1057
  "hasDynamicHelp": false,
@@ -974,6 +1114,16 @@
974
1114
  "allowNo": false,
975
1115
  "type": "boolean"
976
1116
  },
1117
+ "toon": {
1118
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
1119
+ "exclusive": [
1120
+ "json"
1121
+ ],
1122
+ "helpGroup": "GLOBAL",
1123
+ "name": "toon",
1124
+ "allowNo": false,
1125
+ "type": "boolean"
1126
+ },
977
1127
  "tag": {
978
1128
  "char": "t",
979
1129
  "description": "Tag to apply (key=value), can be specified multiple times",
@@ -1041,6 +1191,16 @@
1041
1191
  "name": "stage",
1042
1192
  "allowNo": false,
1043
1193
  "type": "boolean"
1194
+ },
1195
+ "toon": {
1196
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
1197
+ "exclusive": [
1198
+ "json"
1199
+ ],
1200
+ "helpGroup": "GLOBAL",
1201
+ "name": "toon",
1202
+ "allowNo": false,
1203
+ "type": "boolean"
1044
1204
  }
1045
1205
  },
1046
1206
  "hasDynamicHelp": false,
@@ -1101,6 +1261,16 @@
1101
1261
  "name": "stage",
1102
1262
  "allowNo": false,
1103
1263
  "type": "boolean"
1264
+ },
1265
+ "toon": {
1266
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
1267
+ "exclusive": [
1268
+ "json"
1269
+ ],
1270
+ "helpGroup": "GLOBAL",
1271
+ "name": "toon",
1272
+ "allowNo": false,
1273
+ "type": "boolean"
1104
1274
  }
1105
1275
  },
1106
1276
  "hasDynamicHelp": false,
@@ -1161,6 +1331,16 @@
1161
1331
  "allowNo": false,
1162
1332
  "type": "boolean"
1163
1333
  },
1334
+ "toon": {
1335
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
1336
+ "exclusive": [
1337
+ "json"
1338
+ ],
1339
+ "helpGroup": "GLOBAL",
1340
+ "name": "toon",
1341
+ "allowNo": false,
1342
+ "type": "boolean"
1343
+ },
1164
1344
  "include-offline": {
1165
1345
  "char": "a",
1166
1346
  "description": "Include offline devices",
@@ -1272,6 +1452,16 @@
1272
1452
  "name": "stage",
1273
1453
  "allowNo": false,
1274
1454
  "type": "boolean"
1455
+ },
1456
+ "toon": {
1457
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
1458
+ "exclusive": [
1459
+ "json"
1460
+ ],
1461
+ "helpGroup": "GLOBAL",
1462
+ "name": "toon",
1463
+ "allowNo": false,
1464
+ "type": "boolean"
1275
1465
  }
1276
1466
  },
1277
1467
  "hasDynamicHelp": false,
@@ -1335,6 +1525,16 @@
1335
1525
  "allowNo": false,
1336
1526
  "type": "boolean"
1337
1527
  },
1528
+ "toon": {
1529
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
1530
+ "exclusive": [
1531
+ "json"
1532
+ ],
1533
+ "helpGroup": "GLOBAL",
1534
+ "name": "toon",
1535
+ "allowNo": false,
1536
+ "type": "boolean"
1537
+ },
1338
1538
  "days": {
1339
1539
  "description": "How many days back to look for stream data presence",
1340
1540
  "name": "days",
@@ -1411,6 +1611,16 @@
1411
1611
  "allowNo": false,
1412
1612
  "type": "boolean"
1413
1613
  },
1614
+ "toon": {
1615
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
1616
+ "exclusive": [
1617
+ "json"
1618
+ ],
1619
+ "helpGroup": "GLOBAL",
1620
+ "name": "toon",
1621
+ "allowNo": false,
1622
+ "type": "boolean"
1623
+ },
1414
1624
  "tag": {
1415
1625
  "char": "t",
1416
1626
  "description": "Tag to add or update (key=value), can be specified multiple times",
@@ -1481,6 +1691,16 @@
1481
1691
  "allowNo": false,
1482
1692
  "type": "boolean"
1483
1693
  },
1694
+ "toon": {
1695
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
1696
+ "exclusive": [
1697
+ "json"
1698
+ ],
1699
+ "helpGroup": "GLOBAL",
1700
+ "name": "toon",
1701
+ "allowNo": false,
1702
+ "type": "boolean"
1703
+ },
1484
1704
  "key": {
1485
1705
  "char": "k",
1486
1706
  "description": "Tag key to remove, can be specified multiple times",
@@ -1508,19 +1728,15 @@
1508
1728
  "untag.js"
1509
1729
  ]
1510
1730
  },
1511
- "kv:get": {
1731
+ "ingest:batch": {
1512
1732
  "aliases": [],
1513
- "args": {
1514
- "key": {
1515
- "description": "Key to retrieve",
1516
- "name": "key",
1517
- "required": true
1518
- }
1519
- },
1520
- "description": "Get a value from the key-value store.\n\nThe key-value store allows devices and applications to store metadata.",
1733
+ "args": {},
1734
+ "description": "Ingest multiple data points in a single batch request.\n\nReads a JSON file (or stdin) containing a batch ingestion payload and sends all data points\nin a single API request. This is more efficient than sending individual data points when you\nhave multiple values to ingest.\n\nINPUT FORMAT:\nThe input JSON must have the following structure:\n{\n \"items\": [\n {\n \"deviceId\": \"device-uuid\", // Required: Device ID (UUID)\n \"name\": \"stream-name\", // Required: Stream name\n \"type\": \"numeric|text|json|...\", // Required: Data type (see below)\n \"tags\": {\"key\": \"value\"}, // Optional: Tags object (string key-value pairs)\n \"points\": [[timestamp_ms, value]] // Required: Array of [timestamp, value] pairs\n }\n ]\n}\n\nSUPPORTED TYPES AND VALUE FORMATS:\n- numeric: Number value\n Example: \"points\": [[1708272000000, 42.5]]\n\n- text: String value\n Example: \"points\": [[1708272000000, \"hello world\"]]\n\n- json: JSON object encoded as string\n Example: \"points\": [[1708272000000, \"{\\\"x\\\":10,\\\"y\\\":20}\"]]\n\n- image: Object with url (required), size and annotations (optional)\n Example: \"points\": [[1708272000000, {\"url\": \"https://example.com/img.jpg\", \"size\": 102400}]]\n\n- video: Object with url, duration, mimeType (required), size (optional)\n Example: \"points\": [[1708272000000, {\"url\": \"https://example.com/vid.mp4\", \"duration\": 30000, \"mimeType\": \"video/mp4\"}]]\n\n- bitset: Object with keys array and values array (1-1000 pairs)\n Example: \"points\": [[1708272000000, {\"keys\": [\"door\", \"window\"], \"values\": [true, false]}]]\n\n- health: Object with status (required) and clockSkewMs (optional)\n Example: \"points\": [[1708272000000, {\"status\": \"operational\", \"clockSkewMs\": 150}]]\n Valid status values: \"unknown\", \"operational\", \"offline\", \"error\"\n\nEach item can have multiple points (timestamp/value pairs) for the same stream.\nTimestamps are Unix milliseconds (use Date.now() for current time).",
1521
1735
  "examples": [
1522
- "<%= config.bin %> kv get my-key",
1523
- "<%= config.bin %> kv get my-key --json"
1736
+ "<%= config.bin %> ingest batch --file data.json",
1737
+ "<%= config.bin %> ingest batch --stdin < data.json",
1738
+ "cat payload.json | <%= config.bin %> ingest batch --stdin",
1739
+ "# Example payload.json with multiple types:\n{\n \"items\": [\n {\n \"deviceId\": \"abc-123\",\n \"name\": \"battery_level\",\n \"type\": \"numeric\",\n \"tags\": {\"env\": \"prod\"},\n \"points\": [[1708272000000, 42.5], [1708272060000, 41.8]]\n },\n {\n \"deviceId\": \"abc-123\",\n \"name\": \"status\",\n \"type\": \"text\",\n \"tags\": {\"env\": \"prod\"},\n \"points\": [[1708272000000, \"operational\"]]\n },\n {\n \"deviceId\": \"abc-123\",\n \"name\": \"health\",\n \"type\": \"health\",\n \"tags\": {},\n \"points\": [[1708272000000, {\"status\": \"operational\"}]]\n }\n ]\n}"
1524
1740
  ],
1525
1741
  "flags": {
1526
1742
  "json": {
@@ -1549,197 +1765,14 @@
1549
1765
  "name": "stage",
1550
1766
  "allowNo": false,
1551
1767
  "type": "boolean"
1552
- }
1553
- },
1554
- "hasDynamicHelp": false,
1555
- "hiddenAliases": [],
1556
- "id": "kv:get",
1557
- "pluginAlias": "@formant/formant-cli",
1558
- "pluginName": "@formant/formant-cli",
1559
- "pluginType": "core",
1560
- "strict": true,
1561
- "summary": "Get key-value",
1562
- "enableJsonFlag": true,
1563
- "isESM": true,
1564
- "relativePath": [
1565
- "dist",
1566
- "commands",
1567
- "kv",
1568
- "get.js"
1569
- ]
1570
- },
1571
- "kv:list": {
1572
- "aliases": [],
1573
- "args": {},
1574
- "description": "List all keys in the key-value store.\n\nShows all stored keys in the organization's key-value store. Use --prefix to filter\nkeys that start with a specific prefix, or --keys to query specific keys.",
1575
- "examples": [
1576
- "<%= config.bin %> kv list",
1577
- "<%= config.bin %> kv list --prefix config",
1578
- "<%= config.bin %> kv list --keys key1 --keys key2 --keys key3",
1579
- "<%= config.bin %> kv list --json"
1580
- ],
1581
- "flags": {
1582
- "json": {
1583
- "description": "Format output as json.",
1584
- "helpGroup": "GLOBAL",
1585
- "name": "json",
1586
- "allowNo": false,
1587
- "type": "boolean"
1588
- },
1589
- "dev": {
1590
- "description": "Target the dev environment",
1591
- "exclusive": [
1592
- "stage"
1593
- ],
1594
- "helpGroup": "GLOBAL",
1595
- "name": "dev",
1596
- "allowNo": false,
1597
- "type": "boolean"
1598
- },
1599
- "stage": {
1600
- "description": "Target the stage environment",
1601
- "exclusive": [
1602
- "dev"
1603
- ],
1604
- "helpGroup": "GLOBAL",
1605
- "name": "stage",
1606
- "allowNo": false,
1607
- "type": "boolean"
1608
- },
1609
- "keys": {
1610
- "char": "k",
1611
- "description": "Specific keys to query (can be specified multiple times)",
1612
- "name": "keys",
1613
- "hasDynamicHelp": false,
1614
- "multiple": true,
1615
- "type": "option"
1616
- },
1617
- "prefix": {
1618
- "char": "p",
1619
- "description": "Filter keys by prefix",
1620
- "name": "prefix",
1621
- "hasDynamicHelp": false,
1622
- "multiple": false,
1623
- "type": "option"
1624
- }
1625
- },
1626
- "hasDynamicHelp": false,
1627
- "hiddenAliases": [],
1628
- "id": "kv:list",
1629
- "pluginAlias": "@formant/formant-cli",
1630
- "pluginName": "@formant/formant-cli",
1631
- "pluginType": "core",
1632
- "strict": true,
1633
- "summary": "List key-value keys",
1634
- "enableJsonFlag": true,
1635
- "isESM": true,
1636
- "relativePath": [
1637
- "dist",
1638
- "commands",
1639
- "kv",
1640
- "list.js"
1641
- ]
1642
- },
1643
- "kv:set": {
1644
- "aliases": [],
1645
- "args": {
1646
- "key": {
1647
- "description": "Key to set",
1648
- "name": "key",
1649
- "required": true
1650
- },
1651
- "value": {
1652
- "description": "Value to store (JSON string)",
1653
- "name": "value",
1654
- "required": true
1655
- }
1656
- },
1657
- "description": "Set a value in the key-value store.\n\nStores a value associated with a key. The value should be a JSON string.",
1658
- "examples": [
1659
- "<%= config.bin %> kv set my-key '{\"data\": \"value\"}'",
1660
- "<%= config.bin %> kv set config '{\"setting\": true}'"
1661
- ],
1662
- "flags": {
1663
- "json": {
1664
- "description": "Format output as json.",
1665
- "helpGroup": "GLOBAL",
1666
- "name": "json",
1667
- "allowNo": false,
1668
- "type": "boolean"
1669
- },
1670
- "dev": {
1671
- "description": "Target the dev environment",
1672
- "exclusive": [
1673
- "stage"
1674
- ],
1675
- "helpGroup": "GLOBAL",
1676
- "name": "dev",
1677
- "allowNo": false,
1678
- "type": "boolean"
1679
- },
1680
- "stage": {
1681
- "description": "Target the stage environment",
1682
- "exclusive": [
1683
- "dev"
1684
- ],
1685
- "helpGroup": "GLOBAL",
1686
- "name": "stage",
1687
- "allowNo": false,
1688
- "type": "boolean"
1689
- }
1690
- },
1691
- "hasDynamicHelp": false,
1692
- "hiddenAliases": [],
1693
- "id": "kv:set",
1694
- "pluginAlias": "@formant/formant-cli",
1695
- "pluginName": "@formant/formant-cli",
1696
- "pluginType": "core",
1697
- "strict": true,
1698
- "summary": "Set key-value",
1699
- "enableJsonFlag": true,
1700
- "isESM": true,
1701
- "relativePath": [
1702
- "dist",
1703
- "commands",
1704
- "kv",
1705
- "set.js"
1706
- ]
1707
- },
1708
- "ingest:batch": {
1709
- "aliases": [],
1710
- "args": {},
1711
- "description": "Ingest multiple data points in a single batch request.\n\nReads a JSON file (or stdin) containing a batch ingestion payload and sends all data points\nin a single API request. This is more efficient than sending individual data points when you\nhave multiple values to ingest.\n\nINPUT FORMAT:\nThe input JSON must have the following structure:\n{\n \"items\": [\n {\n \"deviceId\": \"device-uuid\", // Required: Device ID (UUID)\n \"name\": \"stream-name\", // Required: Stream name\n \"type\": \"numeric|text|json|...\", // Required: Data type (see below)\n \"tags\": {\"key\": \"value\"}, // Optional: Tags object (string key-value pairs)\n \"points\": [[timestamp_ms, value]] // Required: Array of [timestamp, value] pairs\n }\n ]\n}\n\nSUPPORTED TYPES AND VALUE FORMATS:\n- numeric: Number value\n Example: \"points\": [[1708272000000, 42.5]]\n\n- text: String value\n Example: \"points\": [[1708272000000, \"hello world\"]]\n\n- json: JSON object encoded as string\n Example: \"points\": [[1708272000000, \"{\\\"x\\\":10,\\\"y\\\":20}\"]]\n\n- image: Object with url (required), size and annotations (optional)\n Example: \"points\": [[1708272000000, {\"url\": \"https://example.com/img.jpg\", \"size\": 102400}]]\n\n- video: Object with url, duration, mimeType (required), size (optional)\n Example: \"points\": [[1708272000000, {\"url\": \"https://example.com/vid.mp4\", \"duration\": 30000, \"mimeType\": \"video/mp4\"}]]\n\n- bitset: Object with keys array and values array (1-1000 pairs)\n Example: \"points\": [[1708272000000, {\"keys\": [\"door\", \"window\"], \"values\": [true, false]}]]\n\n- health: Object with status (required) and clockSkewMs (optional)\n Example: \"points\": [[1708272000000, {\"status\": \"operational\", \"clockSkewMs\": 150}]]\n Valid status values: \"unknown\", \"operational\", \"offline\", \"error\"\n\nEach item can have multiple points (timestamp/value pairs) for the same stream.\nTimestamps are Unix milliseconds (use Date.now() for current time).",
1712
- "examples": [
1713
- "<%= config.bin %> ingest batch --file data.json",
1714
- "<%= config.bin %> ingest batch --stdin < data.json",
1715
- "cat payload.json | <%= config.bin %> ingest batch --stdin",
1716
- "# Example payload.json with multiple types:\n{\n \"items\": [\n {\n \"deviceId\": \"abc-123\",\n \"name\": \"battery_level\",\n \"type\": \"numeric\",\n \"tags\": {\"env\": \"prod\"},\n \"points\": [[1708272000000, 42.5], [1708272060000, 41.8]]\n },\n {\n \"deviceId\": \"abc-123\",\n \"name\": \"status\",\n \"type\": \"text\",\n \"tags\": {\"env\": \"prod\"},\n \"points\": [[1708272000000, \"operational\"]]\n },\n {\n \"deviceId\": \"abc-123\",\n \"name\": \"health\",\n \"type\": \"health\",\n \"tags\": {},\n \"points\": [[1708272000000, {\"status\": \"operational\"}]]\n }\n ]\n}"
1717
- ],
1718
- "flags": {
1719
- "json": {
1720
- "description": "Format output as json.",
1721
- "helpGroup": "GLOBAL",
1722
- "name": "json",
1723
- "allowNo": false,
1724
- "type": "boolean"
1725
- },
1726
- "dev": {
1727
- "description": "Target the dev environment",
1728
- "exclusive": [
1729
- "stage"
1730
- ],
1731
- "helpGroup": "GLOBAL",
1732
- "name": "dev",
1733
- "allowNo": false,
1734
- "type": "boolean"
1735
1768
  },
1736
- "stage": {
1737
- "description": "Target the stage environment",
1769
+ "toon": {
1770
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
1738
1771
  "exclusive": [
1739
- "dev"
1772
+ "json"
1740
1773
  ],
1741
1774
  "helpGroup": "GLOBAL",
1742
- "name": "stage",
1775
+ "name": "toon",
1743
1776
  "allowNo": false,
1744
1777
  "type": "boolean"
1745
1778
  },
@@ -1818,6 +1851,16 @@
1818
1851
  "allowNo": false,
1819
1852
  "type": "boolean"
1820
1853
  },
1854
+ "toon": {
1855
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
1856
+ "exclusive": [
1857
+ "json"
1858
+ ],
1859
+ "helpGroup": "GLOBAL",
1860
+ "name": "toon",
1861
+ "allowNo": false,
1862
+ "type": "boolean"
1863
+ },
1821
1864
  "device": {
1822
1865
  "char": "d",
1823
1866
  "description": "Device ID (UUID)",
@@ -1924,6 +1967,16 @@
1924
1967
  "allowNo": false,
1925
1968
  "type": "boolean"
1926
1969
  },
1970
+ "toon": {
1971
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
1972
+ "exclusive": [
1973
+ "json"
1974
+ ],
1975
+ "helpGroup": "GLOBAL",
1976
+ "name": "toon",
1977
+ "allowNo": false,
1978
+ "type": "boolean"
1979
+ },
1927
1980
  "device": {
1928
1981
  "char": "d",
1929
1982
  "description": "Device ID (UUID)",
@@ -2033,6 +2086,16 @@
2033
2086
  "allowNo": false,
2034
2087
  "type": "boolean"
2035
2088
  },
2089
+ "toon": {
2090
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
2091
+ "exclusive": [
2092
+ "json"
2093
+ ],
2094
+ "helpGroup": "GLOBAL",
2095
+ "name": "toon",
2096
+ "allowNo": false,
2097
+ "type": "boolean"
2098
+ },
2036
2099
  "device": {
2037
2100
  "char": "d",
2038
2101
  "description": "Device ID (UUID)",
@@ -2143,6 +2206,16 @@
2143
2206
  "allowNo": false,
2144
2207
  "type": "boolean"
2145
2208
  },
2209
+ "toon": {
2210
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
2211
+ "exclusive": [
2212
+ "json"
2213
+ ],
2214
+ "helpGroup": "GLOBAL",
2215
+ "name": "toon",
2216
+ "allowNo": false,
2217
+ "type": "boolean"
2218
+ },
2146
2219
  "device": {
2147
2220
  "char": "d",
2148
2221
  "description": "Device ID (UUID)",
@@ -2237,6 +2310,16 @@
2237
2310
  "allowNo": false,
2238
2311
  "type": "boolean"
2239
2312
  },
2313
+ "toon": {
2314
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
2315
+ "exclusive": [
2316
+ "json"
2317
+ ],
2318
+ "helpGroup": "GLOBAL",
2319
+ "name": "toon",
2320
+ "allowNo": false,
2321
+ "type": "boolean"
2322
+ },
2240
2323
  "device": {
2241
2324
  "char": "d",
2242
2325
  "description": "Device ID (UUID)",
@@ -2331,6 +2414,16 @@
2331
2414
  "allowNo": false,
2332
2415
  "type": "boolean"
2333
2416
  },
2417
+ "toon": {
2418
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
2419
+ "exclusive": [
2420
+ "json"
2421
+ ],
2422
+ "helpGroup": "GLOBAL",
2423
+ "name": "toon",
2424
+ "allowNo": false,
2425
+ "type": "boolean"
2426
+ },
2334
2427
  "device": {
2335
2428
  "char": "d",
2336
2429
  "description": "Device ID (UUID)",
@@ -2419,6 +2512,16 @@
2419
2512
  "allowNo": false,
2420
2513
  "type": "boolean"
2421
2514
  },
2515
+ "toon": {
2516
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
2517
+ "exclusive": [
2518
+ "json"
2519
+ ],
2520
+ "helpGroup": "GLOBAL",
2521
+ "name": "toon",
2522
+ "allowNo": false,
2523
+ "type": "boolean"
2524
+ },
2422
2525
  "device": {
2423
2526
  "char": "d",
2424
2527
  "description": "Device ID (UUID)",
@@ -2494,14 +2597,13 @@
2494
2597
  "video.js"
2495
2598
  ]
2496
2599
  },
2497
- "investigation:analytics": {
2600
+ "org:get": {
2498
2601
  "aliases": [],
2499
2602
  "args": {},
2500
- "description": "Get investigation analytics with time-series data.\n\nReturns aggregated analytics about investigation runs over a time range,\noptionally grouped by result type or signal type.",
2603
+ "description": "Get information about your organization.\n\nDisplays the organization associated with your authenticated account.\nNo ID is needed it is resolved automatically from your credentials.",
2501
2604
  "examples": [
2502
- "<%= config.bin %> investigation analytics --start 2026-01-01 --end 2026-02-01",
2503
- "<%= config.bin %> investigation analytics --start 2026-01-01 --end 2026-02-01 --interval hourly",
2504
- "<%= config.bin %> investigation analytics --start 2026-01-01 --end 2026-02-01 --group-by resultType --json"
2605
+ "<%= config.bin %> org get",
2606
+ "<%= config.bin %> org get --json"
2505
2607
  ],
2506
2608
  "flags": {
2507
2609
  "json": {
@@ -2531,46 +2633,430 @@
2531
2633
  "allowNo": false,
2532
2634
  "type": "boolean"
2533
2635
  },
2534
- "end": {
2535
- "description": "End time (ISO 8601)",
2536
- "name": "end",
2537
- "required": true,
2538
- "hasDynamicHelp": false,
2539
- "multiple": false,
2540
- "type": "option"
2541
- },
2542
- "group-by": {
2543
- "description": "Group results by",
2544
- "name": "group-by",
2545
- "hasDynamicHelp": false,
2546
- "multiple": false,
2547
- "options": [
2548
- "resultType",
2549
- "signalType"
2550
- ],
2551
- "type": "option"
2552
- },
2553
- "interval": {
2554
- "description": "Time interval for aggregation",
2555
- "name": "interval",
2556
- "default": "daily",
2557
- "hasDynamicHelp": false,
2558
- "multiple": false,
2559
- "options": [
2560
- "daily",
2561
- "hourly"
2636
+ "toon": {
2637
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
2638
+ "exclusive": [
2639
+ "json"
2562
2640
  ],
2563
- "type": "option"
2564
- },
2565
- "start": {
2566
- "description": "Start time (ISO 8601)",
2567
- "name": "start",
2568
- "required": true,
2569
- "hasDynamicHelp": false,
2570
- "multiple": false,
2571
- "type": "option"
2572
- }
2573
- },
2641
+ "helpGroup": "GLOBAL",
2642
+ "name": "toon",
2643
+ "allowNo": false,
2644
+ "type": "boolean"
2645
+ }
2646
+ },
2647
+ "hasDynamicHelp": false,
2648
+ "hiddenAliases": [],
2649
+ "id": "org:get",
2650
+ "pluginAlias": "@formant/formant-cli",
2651
+ "pluginName": "@formant/formant-cli",
2652
+ "pluginType": "core",
2653
+ "strict": true,
2654
+ "summary": "Get your organization",
2655
+ "enableJsonFlag": true,
2656
+ "isESM": true,
2657
+ "relativePath": [
2658
+ "dist",
2659
+ "commands",
2660
+ "org",
2661
+ "get.js"
2662
+ ]
2663
+ },
2664
+ "org:update": {
2665
+ "aliases": [],
2666
+ "args": {},
2667
+ "description": "Update your organization's details.\n\nAt least one of --name or --description must be provided.",
2668
+ "examples": [
2669
+ "<%= config.bin %> org update --name \"My Fleet\"",
2670
+ "<%= config.bin %> org update --description \"Production robot fleet\"",
2671
+ "<%= config.bin %> org update --name \"My Fleet\" --description \"Production robot fleet\"",
2672
+ "<%= config.bin %> org update --name \"My Fleet\" --json"
2673
+ ],
2674
+ "flags": {
2675
+ "json": {
2676
+ "description": "Format output as json.",
2677
+ "helpGroup": "GLOBAL",
2678
+ "name": "json",
2679
+ "allowNo": false,
2680
+ "type": "boolean"
2681
+ },
2682
+ "dev": {
2683
+ "description": "Target the dev environment",
2684
+ "exclusive": [
2685
+ "stage"
2686
+ ],
2687
+ "helpGroup": "GLOBAL",
2688
+ "name": "dev",
2689
+ "allowNo": false,
2690
+ "type": "boolean"
2691
+ },
2692
+ "stage": {
2693
+ "description": "Target the stage environment",
2694
+ "exclusive": [
2695
+ "dev"
2696
+ ],
2697
+ "helpGroup": "GLOBAL",
2698
+ "name": "stage",
2699
+ "allowNo": false,
2700
+ "type": "boolean"
2701
+ },
2702
+ "toon": {
2703
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
2704
+ "exclusive": [
2705
+ "json"
2706
+ ],
2707
+ "helpGroup": "GLOBAL",
2708
+ "name": "toon",
2709
+ "allowNo": false,
2710
+ "type": "boolean"
2711
+ },
2712
+ "description": {
2713
+ "char": "d",
2714
+ "description": "New description for the organization",
2715
+ "name": "description",
2716
+ "hasDynamicHelp": false,
2717
+ "multiple": false,
2718
+ "type": "option"
2719
+ },
2720
+ "name": {
2721
+ "char": "n",
2722
+ "description": "New name for the organization",
2723
+ "name": "name",
2724
+ "hasDynamicHelp": false,
2725
+ "multiple": false,
2726
+ "type": "option"
2727
+ }
2728
+ },
2729
+ "hasDynamicHelp": false,
2730
+ "hiddenAliases": [],
2731
+ "id": "org:update",
2732
+ "pluginAlias": "@formant/formant-cli",
2733
+ "pluginName": "@formant/formant-cli",
2734
+ "pluginType": "core",
2735
+ "strict": true,
2736
+ "summary": "Update your organization",
2737
+ "enableJsonFlag": true,
2738
+ "isESM": true,
2739
+ "relativePath": [
2740
+ "dist",
2741
+ "commands",
2742
+ "org",
2743
+ "update.js"
2744
+ ]
2745
+ },
2746
+ "kv:get": {
2747
+ "aliases": [],
2748
+ "args": {
2749
+ "key": {
2750
+ "description": "Key to retrieve",
2751
+ "name": "key",
2752
+ "required": true
2753
+ }
2754
+ },
2755
+ "description": "Get a value from the key-value store.\n\nThe key-value store allows devices and applications to store metadata.",
2756
+ "examples": [
2757
+ "<%= config.bin %> kv get my-key",
2758
+ "<%= config.bin %> kv get my-key --json"
2759
+ ],
2760
+ "flags": {
2761
+ "json": {
2762
+ "description": "Format output as json.",
2763
+ "helpGroup": "GLOBAL",
2764
+ "name": "json",
2765
+ "allowNo": false,
2766
+ "type": "boolean"
2767
+ },
2768
+ "dev": {
2769
+ "description": "Target the dev environment",
2770
+ "exclusive": [
2771
+ "stage"
2772
+ ],
2773
+ "helpGroup": "GLOBAL",
2774
+ "name": "dev",
2775
+ "allowNo": false,
2776
+ "type": "boolean"
2777
+ },
2778
+ "stage": {
2779
+ "description": "Target the stage environment",
2780
+ "exclusive": [
2781
+ "dev"
2782
+ ],
2783
+ "helpGroup": "GLOBAL",
2784
+ "name": "stage",
2785
+ "allowNo": false,
2786
+ "type": "boolean"
2787
+ },
2788
+ "toon": {
2789
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
2790
+ "exclusive": [
2791
+ "json"
2792
+ ],
2793
+ "helpGroup": "GLOBAL",
2794
+ "name": "toon",
2795
+ "allowNo": false,
2796
+ "type": "boolean"
2797
+ }
2798
+ },
2799
+ "hasDynamicHelp": false,
2800
+ "hiddenAliases": [],
2801
+ "id": "kv:get",
2802
+ "pluginAlias": "@formant/formant-cli",
2803
+ "pluginName": "@formant/formant-cli",
2804
+ "pluginType": "core",
2805
+ "strict": true,
2806
+ "summary": "Get key-value",
2807
+ "enableJsonFlag": true,
2808
+ "isESM": true,
2809
+ "relativePath": [
2810
+ "dist",
2811
+ "commands",
2812
+ "kv",
2813
+ "get.js"
2814
+ ]
2815
+ },
2816
+ "kv:list": {
2817
+ "aliases": [],
2818
+ "args": {},
2819
+ "description": "List all keys in the key-value store.\n\nShows all stored keys in the organization's key-value store. Use --prefix to filter\nkeys that start with a specific prefix, or --keys to query specific keys.",
2820
+ "examples": [
2821
+ "<%= config.bin %> kv list",
2822
+ "<%= config.bin %> kv list --prefix config",
2823
+ "<%= config.bin %> kv list --keys key1 --keys key2 --keys key3",
2824
+ "<%= config.bin %> kv list --json"
2825
+ ],
2826
+ "flags": {
2827
+ "json": {
2828
+ "description": "Format output as json.",
2829
+ "helpGroup": "GLOBAL",
2830
+ "name": "json",
2831
+ "allowNo": false,
2832
+ "type": "boolean"
2833
+ },
2834
+ "dev": {
2835
+ "description": "Target the dev environment",
2836
+ "exclusive": [
2837
+ "stage"
2838
+ ],
2839
+ "helpGroup": "GLOBAL",
2840
+ "name": "dev",
2841
+ "allowNo": false,
2842
+ "type": "boolean"
2843
+ },
2844
+ "stage": {
2845
+ "description": "Target the stage environment",
2846
+ "exclusive": [
2847
+ "dev"
2848
+ ],
2849
+ "helpGroup": "GLOBAL",
2850
+ "name": "stage",
2851
+ "allowNo": false,
2852
+ "type": "boolean"
2853
+ },
2854
+ "toon": {
2855
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
2856
+ "exclusive": [
2857
+ "json"
2858
+ ],
2859
+ "helpGroup": "GLOBAL",
2860
+ "name": "toon",
2861
+ "allowNo": false,
2862
+ "type": "boolean"
2863
+ },
2864
+ "keys": {
2865
+ "char": "k",
2866
+ "description": "Specific keys to query (can be specified multiple times)",
2867
+ "name": "keys",
2868
+ "hasDynamicHelp": false,
2869
+ "multiple": true,
2870
+ "type": "option"
2871
+ },
2872
+ "prefix": {
2873
+ "char": "p",
2874
+ "description": "Filter keys by prefix",
2875
+ "name": "prefix",
2876
+ "hasDynamicHelp": false,
2877
+ "multiple": false,
2878
+ "type": "option"
2879
+ }
2880
+ },
2881
+ "hasDynamicHelp": false,
2882
+ "hiddenAliases": [],
2883
+ "id": "kv:list",
2884
+ "pluginAlias": "@formant/formant-cli",
2885
+ "pluginName": "@formant/formant-cli",
2886
+ "pluginType": "core",
2887
+ "strict": true,
2888
+ "summary": "List key-value keys",
2889
+ "enableJsonFlag": true,
2890
+ "isESM": true,
2891
+ "relativePath": [
2892
+ "dist",
2893
+ "commands",
2894
+ "kv",
2895
+ "list.js"
2896
+ ]
2897
+ },
2898
+ "kv:set": {
2899
+ "aliases": [],
2900
+ "args": {
2901
+ "key": {
2902
+ "description": "Key to set",
2903
+ "name": "key",
2904
+ "required": true
2905
+ },
2906
+ "value": {
2907
+ "description": "Value to store (JSON string)",
2908
+ "name": "value",
2909
+ "required": true
2910
+ }
2911
+ },
2912
+ "description": "Set a value in the key-value store.\n\nStores a value associated with a key. The value should be a JSON string.",
2913
+ "examples": [
2914
+ "<%= config.bin %> kv set my-key '{\"data\": \"value\"}'",
2915
+ "<%= config.bin %> kv set config '{\"setting\": true}'"
2916
+ ],
2917
+ "flags": {
2918
+ "json": {
2919
+ "description": "Format output as json.",
2920
+ "helpGroup": "GLOBAL",
2921
+ "name": "json",
2922
+ "allowNo": false,
2923
+ "type": "boolean"
2924
+ },
2925
+ "dev": {
2926
+ "description": "Target the dev environment",
2927
+ "exclusive": [
2928
+ "stage"
2929
+ ],
2930
+ "helpGroup": "GLOBAL",
2931
+ "name": "dev",
2932
+ "allowNo": false,
2933
+ "type": "boolean"
2934
+ },
2935
+ "stage": {
2936
+ "description": "Target the stage environment",
2937
+ "exclusive": [
2938
+ "dev"
2939
+ ],
2940
+ "helpGroup": "GLOBAL",
2941
+ "name": "stage",
2942
+ "allowNo": false,
2943
+ "type": "boolean"
2944
+ },
2945
+ "toon": {
2946
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
2947
+ "exclusive": [
2948
+ "json"
2949
+ ],
2950
+ "helpGroup": "GLOBAL",
2951
+ "name": "toon",
2952
+ "allowNo": false,
2953
+ "type": "boolean"
2954
+ }
2955
+ },
2956
+ "hasDynamicHelp": false,
2957
+ "hiddenAliases": [],
2958
+ "id": "kv:set",
2959
+ "pluginAlias": "@formant/formant-cli",
2960
+ "pluginName": "@formant/formant-cli",
2961
+ "pluginType": "core",
2962
+ "strict": true,
2963
+ "summary": "Set key-value",
2964
+ "enableJsonFlag": true,
2965
+ "isESM": true,
2966
+ "relativePath": [
2967
+ "dist",
2968
+ "commands",
2969
+ "kv",
2970
+ "set.js"
2971
+ ]
2972
+ },
2973
+ "investigation:analytics": {
2974
+ "aliases": [],
2975
+ "args": {},
2976
+ "description": "Get investigation analytics with time-series data.\n\nReturns aggregated analytics about investigation runs over a time range,\noptionally grouped by result type or signal type.",
2977
+ "examples": [
2978
+ "<%= config.bin %> investigation analytics --start 2026-01-01 --end 2026-02-01",
2979
+ "<%= config.bin %> investigation analytics --start 2026-01-01 --end 2026-02-01 --interval hourly",
2980
+ "<%= config.bin %> investigation analytics --start 2026-01-01 --end 2026-02-01 --group-by resultType --json"
2981
+ ],
2982
+ "flags": {
2983
+ "json": {
2984
+ "description": "Format output as json.",
2985
+ "helpGroup": "GLOBAL",
2986
+ "name": "json",
2987
+ "allowNo": false,
2988
+ "type": "boolean"
2989
+ },
2990
+ "dev": {
2991
+ "description": "Target the dev environment",
2992
+ "exclusive": [
2993
+ "stage"
2994
+ ],
2995
+ "helpGroup": "GLOBAL",
2996
+ "name": "dev",
2997
+ "allowNo": false,
2998
+ "type": "boolean"
2999
+ },
3000
+ "stage": {
3001
+ "description": "Target the stage environment",
3002
+ "exclusive": [
3003
+ "dev"
3004
+ ],
3005
+ "helpGroup": "GLOBAL",
3006
+ "name": "stage",
3007
+ "allowNo": false,
3008
+ "type": "boolean"
3009
+ },
3010
+ "toon": {
3011
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
3012
+ "exclusive": [
3013
+ "json"
3014
+ ],
3015
+ "helpGroup": "GLOBAL",
3016
+ "name": "toon",
3017
+ "allowNo": false,
3018
+ "type": "boolean"
3019
+ },
3020
+ "end": {
3021
+ "description": "End time (ISO 8601)",
3022
+ "name": "end",
3023
+ "required": true,
3024
+ "hasDynamicHelp": false,
3025
+ "multiple": false,
3026
+ "type": "option"
3027
+ },
3028
+ "group-by": {
3029
+ "description": "Group results by",
3030
+ "name": "group-by",
3031
+ "hasDynamicHelp": false,
3032
+ "multiple": false,
3033
+ "options": [
3034
+ "resultType",
3035
+ "signalType"
3036
+ ],
3037
+ "type": "option"
3038
+ },
3039
+ "interval": {
3040
+ "description": "Time interval for aggregation",
3041
+ "name": "interval",
3042
+ "default": "daily",
3043
+ "hasDynamicHelp": false,
3044
+ "multiple": false,
3045
+ "options": [
3046
+ "daily",
3047
+ "hourly"
3048
+ ],
3049
+ "type": "option"
3050
+ },
3051
+ "start": {
3052
+ "description": "Start time (ISO 8601)",
3053
+ "name": "start",
3054
+ "required": true,
3055
+ "hasDynamicHelp": false,
3056
+ "multiple": false,
3057
+ "type": "option"
3058
+ }
3059
+ },
2574
3060
  "hasDynamicHelp": false,
2575
3061
  "hiddenAliases": [],
2576
3062
  "id": "investigation:analytics",
@@ -2629,6 +3115,16 @@
2629
3115
  "name": "stage",
2630
3116
  "allowNo": false,
2631
3117
  "type": "boolean"
3118
+ },
3119
+ "toon": {
3120
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
3121
+ "exclusive": [
3122
+ "json"
3123
+ ],
3124
+ "helpGroup": "GLOBAL",
3125
+ "name": "toon",
3126
+ "allowNo": false,
3127
+ "type": "boolean"
2632
3128
  }
2633
3129
  },
2634
3130
  "hasDynamicHelp": false,
@@ -2685,6 +3181,16 @@
2685
3181
  "allowNo": false,
2686
3182
  "type": "boolean"
2687
3183
  },
3184
+ "toon": {
3185
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
3186
+ "exclusive": [
3187
+ "json"
3188
+ ],
3189
+ "helpGroup": "GLOBAL",
3190
+ "name": "toon",
3191
+ "allowNo": false,
3192
+ "type": "boolean"
3193
+ },
2688
3194
  "signal-handler": {
2689
3195
  "description": "Only show investigations that handle signals",
2690
3196
  "name": "signal-handler",
@@ -2757,6 +3263,16 @@
2757
3263
  "allowNo": false,
2758
3264
  "type": "boolean"
2759
3265
  },
3266
+ "toon": {
3267
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
3268
+ "exclusive": [
3269
+ "json"
3270
+ ],
3271
+ "helpGroup": "GLOBAL",
3272
+ "name": "toon",
3273
+ "allowNo": false,
3274
+ "type": "boolean"
3275
+ },
2760
3276
  "log-only": {
2761
3277
  "description": "Only show the execution log (skip run details)",
2762
3278
  "name": "log-only",
@@ -2830,6 +3346,16 @@
2830
3346
  "allowNo": false,
2831
3347
  "type": "boolean"
2832
3348
  },
3349
+ "toon": {
3350
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
3351
+ "exclusive": [
3352
+ "json"
3353
+ ],
3354
+ "helpGroup": "GLOBAL",
3355
+ "name": "toon",
3356
+ "allowNo": false,
3357
+ "type": "boolean"
3358
+ },
2833
3359
  "details": {
2834
3360
  "description": "Include detailed information about each run",
2835
3361
  "name": "details",
@@ -2904,13 +3430,23 @@
2904
3430
  "allowNo": false,
2905
3431
  "type": "boolean"
2906
3432
  },
2907
- "stage": {
2908
- "description": "Target the stage environment",
3433
+ "stage": {
3434
+ "description": "Target the stage environment",
3435
+ "exclusive": [
3436
+ "dev"
3437
+ ],
3438
+ "helpGroup": "GLOBAL",
3439
+ "name": "stage",
3440
+ "allowNo": false,
3441
+ "type": "boolean"
3442
+ },
3443
+ "toon": {
3444
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
2909
3445
  "exclusive": [
2910
- "dev"
3446
+ "json"
2911
3447
  ],
2912
3448
  "helpGroup": "GLOBAL",
2913
- "name": "stage",
3449
+ "name": "toon",
2914
3450
  "allowNo": false,
2915
3451
  "type": "boolean"
2916
3452
  }
@@ -2968,6 +3504,16 @@
2968
3504
  "allowNo": false,
2969
3505
  "type": "boolean"
2970
3506
  },
3507
+ "toon": {
3508
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
3509
+ "exclusive": [
3510
+ "json"
3511
+ ],
3512
+ "helpGroup": "GLOBAL",
3513
+ "name": "toon",
3514
+ "allowNo": false,
3515
+ "type": "boolean"
3516
+ },
2971
3517
  "end": {
2972
3518
  "description": "End time (ISO 8601)",
2973
3519
  "name": "end",
@@ -3044,6 +3590,16 @@
3044
3590
  "allowNo": false,
3045
3591
  "type": "boolean"
3046
3592
  },
3593
+ "toon": {
3594
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
3595
+ "exclusive": [
3596
+ "json"
3597
+ ],
3598
+ "helpGroup": "GLOBAL",
3599
+ "name": "toon",
3600
+ "allowNo": false,
3601
+ "type": "boolean"
3602
+ },
3047
3603
  "input": {
3048
3604
  "char": "i",
3049
3605
  "description": "Input text / problem description for the investigation",
@@ -3126,6 +3682,16 @@
3126
3682
  "allowNo": false,
3127
3683
  "type": "boolean"
3128
3684
  },
3685
+ "toon": {
3686
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
3687
+ "exclusive": [
3688
+ "json"
3689
+ ],
3690
+ "helpGroup": "GLOBAL",
3691
+ "name": "toon",
3692
+ "allowNo": false,
3693
+ "type": "boolean"
3694
+ },
3129
3695
  "name": {
3130
3696
  "char": "n",
3131
3697
  "description": "Task name (defaults to first 50 chars of goal)",
@@ -3185,278 +3751,52 @@
3185
3751
  "allowNo": false,
3186
3752
  "type": "boolean"
3187
3753
  },
3188
- "stage": {
3189
- "description": "Target the stage environment",
3190
- "exclusive": [
3191
- "dev"
3192
- ],
3193
- "helpGroup": "GLOBAL",
3194
- "name": "stage",
3195
- "allowNo": false,
3196
- "type": "boolean"
3197
- }
3198
- },
3199
- "hasDynamicHelp": false,
3200
- "hiddenAliases": [],
3201
- "id": "persona:get",
3202
- "pluginAlias": "@formant/formant-cli",
3203
- "pluginName": "@formant/formant-cli",
3204
- "pluginType": "core",
3205
- "strict": true,
3206
- "summary": "Get persona details and tools",
3207
- "enableJsonFlag": true,
3208
- "isESM": true,
3209
- "relativePath": [
3210
- "dist",
3211
- "commands",
3212
- "persona",
3213
- "get.js"
3214
- ]
3215
- },
3216
- "persona:list": {
3217
- "aliases": [],
3218
- "args": {},
3219
- "description": "List AI personas available in your organization.\n\nShows both built-in and custom personas with their ID, name, and description.",
3220
- "examples": [
3221
- "<%= config.bin %> personas list",
3222
- "<%= config.bin %> personas list --json",
3223
- "<%= config.bin %> personas list --dev"
3224
- ],
3225
- "flags": {
3226
- "json": {
3227
- "description": "Format output as json.",
3228
- "helpGroup": "GLOBAL",
3229
- "name": "json",
3230
- "allowNo": false,
3231
- "type": "boolean"
3232
- },
3233
- "dev": {
3234
- "description": "Target the dev environment",
3235
- "exclusive": [
3236
- "stage"
3237
- ],
3238
- "helpGroup": "GLOBAL",
3239
- "name": "dev",
3240
- "allowNo": false,
3241
- "type": "boolean"
3242
- },
3243
- "stage": {
3244
- "description": "Target the stage environment",
3245
- "exclusive": [
3246
- "dev"
3247
- ],
3248
- "helpGroup": "GLOBAL",
3249
- "name": "stage",
3250
- "allowNo": false,
3251
- "type": "boolean"
3252
- }
3253
- },
3254
- "hasDynamicHelp": false,
3255
- "hiddenAliases": [],
3256
- "id": "persona:list",
3257
- "pluginAlias": "@formant/formant-cli",
3258
- "pluginName": "@formant/formant-cli",
3259
- "pluginType": "core",
3260
- "strict": true,
3261
- "summary": "List AI personas",
3262
- "enableJsonFlag": true,
3263
- "isESM": true,
3264
- "relativePath": [
3265
- "dist",
3266
- "commands",
3267
- "persona",
3268
- "list.js"
3269
- ]
3270
- },
3271
- "persona:task-status": {
3272
- "aliases": [],
3273
- "args": {
3274
- "taskId": {
3275
- "description": "Task ID (from delegate-task output)",
3276
- "name": "taskId",
3277
- "required": true
3278
- }
3279
- },
3280
- "description": "Check the status and results of a delegated task.\n\nShows all runs for a task including their status, result summary, and timestamps.",
3281
- "examples": [
3282
- "<%= config.bin %> persona task-status <task-id>",
3283
- "<%= config.bin %> persona task-status <task-id> --json",
3284
- "<%= config.bin %> persona task-status <task-id> --dev"
3285
- ],
3286
- "flags": {
3287
- "json": {
3288
- "description": "Format output as json.",
3289
- "helpGroup": "GLOBAL",
3290
- "name": "json",
3291
- "allowNo": false,
3292
- "type": "boolean"
3293
- },
3294
- "dev": {
3295
- "description": "Target the dev environment",
3296
- "exclusive": [
3297
- "stage"
3298
- ],
3299
- "helpGroup": "GLOBAL",
3300
- "name": "dev",
3301
- "allowNo": false,
3302
- "type": "boolean"
3303
- },
3304
- "stage": {
3305
- "description": "Target the stage environment",
3306
- "exclusive": [
3307
- "dev"
3308
- ],
3309
- "helpGroup": "GLOBAL",
3310
- "name": "stage",
3311
- "allowNo": false,
3312
- "type": "boolean"
3313
- }
3314
- },
3315
- "hasDynamicHelp": false,
3316
- "hiddenAliases": [],
3317
- "id": "persona:task-status",
3318
- "pluginAlias": "@formant/formant-cli",
3319
- "pluginName": "@formant/formant-cli",
3320
- "pluginType": "core",
3321
- "strict": true,
3322
- "summary": "Check status of a delegated task",
3323
- "enableJsonFlag": true,
3324
- "isESM": true,
3325
- "relativePath": [
3326
- "dist",
3327
- "commands",
3328
- "persona",
3329
- "task-status.js"
3330
- ]
3331
- },
3332
- "query": {
3333
- "aliases": [],
3334
- "args": {},
3335
- "description": "Query telemetry stream data for a device over a time range.\n\nReturns time-series datapoints for the specified stream(s). Supports aggregation\nfor downsampling large datasets, and --latest to get only the most recent value.\n\nStream types: numeric, text, image, video, location, json, bitset, battery, health,\n\"numeric set\", \"point cloud\", localization, \"transform tree\", file.\n\nAggregate levels: second, 5 seconds, 30 seconds, minute, 5 minutes, 30 minutes,\nhour, 4 hours, 12 hours, day, week, month, year.",
3336
- "examples": [
3337
- "<%= config.bin %> query --device <id> --stream battery_level --start 2026-01-01 --end 2026-01-02",
3338
- "<%= config.bin %> query --device <id> --stream speed --aggregate hour --start 2026-01-01 --end 2026-02-01",
3339
- "<%= config.bin %> query --device <id> --stream battery_level --stream temperature --start 2026-01-01 --end 2026-01-02",
3340
- "<%= config.bin %> query --device <id1> --device <id2> --stream battery_level --start 2026-01-01 --end 2026-01-02",
3341
- "<%= config.bin %> query --device <id> --stream battery_level --latest",
3342
- "<%= config.bin %> query --device <id> --stream temperature --type numeric --json"
3343
- ],
3344
- "flags": {
3345
- "json": {
3346
- "description": "Format output as json.",
3347
- "helpGroup": "GLOBAL",
3348
- "name": "json",
3349
- "allowNo": false,
3350
- "type": "boolean"
3351
- },
3352
- "dev": {
3353
- "description": "Target the dev environment",
3354
- "exclusive": [
3355
- "stage"
3356
- ],
3357
- "helpGroup": "GLOBAL",
3358
- "name": "dev",
3359
- "allowNo": false,
3360
- "type": "boolean"
3361
- },
3362
- "stage": {
3363
- "description": "Target the stage environment",
3364
- "exclusive": [
3365
- "dev"
3366
- ],
3367
- "helpGroup": "GLOBAL",
3368
- "name": "stage",
3369
- "allowNo": false,
3370
- "type": "boolean"
3371
- },
3372
- "aggregate": {
3373
- "char": "a",
3374
- "description": "Aggregation level for downsampling",
3375
- "name": "aggregate",
3376
- "hasDynamicHelp": false,
3377
- "multiple": false,
3378
- "type": "option"
3379
- },
3380
- "device": {
3381
- "char": "d",
3382
- "description": "Device ID(s), can be specified multiple times",
3383
- "name": "device",
3384
- "required": true,
3385
- "hasDynamicHelp": false,
3386
- "multiple": true,
3387
- "type": "option"
3388
- },
3389
- "end": {
3390
- "description": "End time (ISO 8601)",
3391
- "name": "end",
3392
- "hasDynamicHelp": false,
3393
- "multiple": false,
3394
- "type": "option"
3395
- },
3396
- "latest": {
3397
- "description": "Only return the most recent value per stream",
3398
- "name": "latest",
3399
- "allowNo": false,
3400
- "type": "boolean"
3401
- },
3402
- "limit": {
3403
- "char": "l",
3404
- "description": "Maximum number of datapoints",
3405
- "name": "limit",
3406
- "hasDynamicHelp": false,
3407
- "multiple": false,
3408
- "type": "option"
3409
- },
3410
- "start": {
3411
- "description": "Start time (ISO 8601)",
3412
- "name": "start",
3413
- "hasDynamicHelp": false,
3414
- "multiple": false,
3415
- "type": "option"
3416
- },
3417
- "stream": {
3418
- "char": "s",
3419
- "description": "Stream name(s), can be specified multiple times",
3420
- "name": "stream",
3421
- "required": true,
3422
- "hasDynamicHelp": false,
3423
- "multiple": true,
3424
- "type": "option"
3754
+ "stage": {
3755
+ "description": "Target the stage environment",
3756
+ "exclusive": [
3757
+ "dev"
3758
+ ],
3759
+ "helpGroup": "GLOBAL",
3760
+ "name": "stage",
3761
+ "allowNo": false,
3762
+ "type": "boolean"
3425
3763
  },
3426
- "type": {
3427
- "description": "Filter by stream type",
3428
- "name": "type",
3429
- "hasDynamicHelp": false,
3430
- "multiple": false,
3431
- "type": "option"
3764
+ "toon": {
3765
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
3766
+ "exclusive": [
3767
+ "json"
3768
+ ],
3769
+ "helpGroup": "GLOBAL",
3770
+ "name": "toon",
3771
+ "allowNo": false,
3772
+ "type": "boolean"
3432
3773
  }
3433
3774
  },
3434
3775
  "hasDynamicHelp": false,
3435
3776
  "hiddenAliases": [],
3436
- "id": "query",
3777
+ "id": "persona:get",
3437
3778
  "pluginAlias": "@formant/formant-cli",
3438
3779
  "pluginName": "@formant/formant-cli",
3439
3780
  "pluginType": "core",
3440
3781
  "strict": true,
3441
- "summary": "Query telemetry stream data",
3782
+ "summary": "Get persona details and tools",
3442
3783
  "enableJsonFlag": true,
3443
3784
  "isESM": true,
3444
3785
  "relativePath": [
3445
3786
  "dist",
3446
3787
  "commands",
3447
- "query",
3448
- "index.js"
3788
+ "persona",
3789
+ "get.js"
3449
3790
  ]
3450
3791
  },
3451
- "query:latest-values": {
3792
+ "persona:list": {
3452
3793
  "aliases": [],
3453
3794
  "args": {},
3454
- "description": "Get the latest values for streams across devices.\n\nReturns the most recent value for specified streams without needing to specify\na time range. Useful for checking current sensor readings.\n\nUse --all-streams with a single device to automatically discover and query all\nstreams both from the device configuration and from actual ingested data\n(unconfigured streams included).",
3795
+ "description": "List AI personas available in your organization.\n\nShows both built-in and custom personas with their ID, name, and description.",
3455
3796
  "examples": [
3456
- "<%= config.bin %> query latest-values --device <id> --stream battery_level",
3457
- "<%= config.bin %> query latest-values --device <id> --stream temperature --stream humidity",
3458
- "<%= config.bin %> query latest-values --device <id> --all-streams",
3459
- "<%= config.bin %> query latest-values --device <id> --all-streams --json"
3797
+ "<%= config.bin %> personas list",
3798
+ "<%= config.bin %> personas list --json",
3799
+ "<%= config.bin %> personas list --dev"
3460
3800
  ],
3461
3801
  "flags": {
3462
3802
  "json": {
@@ -3486,62 +3826,48 @@
3486
3826
  "allowNo": false,
3487
3827
  "type": "boolean"
3488
3828
  },
3489
- "all-streams": {
3490
- "description": "Query all streams for the device — from config and from ingested data (requires single --device)",
3491
- "name": "all-streams",
3829
+ "toon": {
3830
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
3831
+ "exclusive": [
3832
+ "json"
3833
+ ],
3834
+ "helpGroup": "GLOBAL",
3835
+ "name": "toon",
3492
3836
  "allowNo": false,
3493
3837
  "type": "boolean"
3494
- },
3495
- "days": {
3496
- "description": "How many days back to look for unconfigured streams when using --all-streams",
3497
- "name": "days",
3498
- "default": 14,
3499
- "hasDynamicHelp": false,
3500
- "multiple": false,
3501
- "type": "option"
3502
- },
3503
- "device": {
3504
- "char": "d",
3505
- "description": "Device ID (UUID)",
3506
- "name": "device",
3507
- "required": true,
3508
- "hasDynamicHelp": false,
3509
- "multiple": true,
3510
- "type": "option"
3511
- },
3512
- "stream": {
3513
- "char": "s",
3514
- "description": "Stream name(s), can be specified multiple times",
3515
- "name": "stream",
3516
- "hasDynamicHelp": false,
3517
- "multiple": true,
3518
- "type": "option"
3519
3838
  }
3520
3839
  },
3521
3840
  "hasDynamicHelp": false,
3522
3841
  "hiddenAliases": [],
3523
- "id": "query:latest-values",
3842
+ "id": "persona:list",
3524
3843
  "pluginAlias": "@formant/formant-cli",
3525
3844
  "pluginName": "@formant/formant-cli",
3526
3845
  "pluginType": "core",
3527
3846
  "strict": true,
3528
- "summary": "Get latest stream values",
3847
+ "summary": "List AI personas",
3529
3848
  "enableJsonFlag": true,
3530
3849
  "isESM": true,
3531
3850
  "relativePath": [
3532
3851
  "dist",
3533
3852
  "commands",
3534
- "query",
3535
- "latest-values.js"
3853
+ "persona",
3854
+ "list.js"
3536
3855
  ]
3537
3856
  },
3538
- "org:get": {
3857
+ "persona:task-status": {
3539
3858
  "aliases": [],
3540
- "args": {},
3541
- "description": "Get information about your organization.\n\nDisplays the organization associated with your authenticated account.\nNo ID is needed — it is resolved automatically from your credentials.",
3859
+ "args": {
3860
+ "taskId": {
3861
+ "description": "Task ID (from delegate-task output)",
3862
+ "name": "taskId",
3863
+ "required": true
3864
+ }
3865
+ },
3866
+ "description": "Check the status and results of a delegated task.\n\nShows all runs for a task including their status, result summary, and timestamps.",
3542
3867
  "examples": [
3543
- "<%= config.bin %> org get",
3544
- "<%= config.bin %> org get --json"
3868
+ "<%= config.bin %> persona task-status <task-id>",
3869
+ "<%= config.bin %> persona task-status <task-id> --json",
3870
+ "<%= config.bin %> persona task-status <task-id> --dev"
3545
3871
  ],
3546
3872
  "flags": {
3547
3873
  "json": {
@@ -3570,34 +3896,47 @@
3570
3896
  "name": "stage",
3571
3897
  "allowNo": false,
3572
3898
  "type": "boolean"
3899
+ },
3900
+ "toon": {
3901
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
3902
+ "exclusive": [
3903
+ "json"
3904
+ ],
3905
+ "helpGroup": "GLOBAL",
3906
+ "name": "toon",
3907
+ "allowNo": false,
3908
+ "type": "boolean"
3573
3909
  }
3574
3910
  },
3575
3911
  "hasDynamicHelp": false,
3576
3912
  "hiddenAliases": [],
3577
- "id": "org:get",
3913
+ "id": "persona:task-status",
3578
3914
  "pluginAlias": "@formant/formant-cli",
3579
3915
  "pluginName": "@formant/formant-cli",
3580
3916
  "pluginType": "core",
3581
3917
  "strict": true,
3582
- "summary": "Get your organization",
3918
+ "summary": "Check status of a delegated task",
3583
3919
  "enableJsonFlag": true,
3584
3920
  "isESM": true,
3585
3921
  "relativePath": [
3586
3922
  "dist",
3587
3923
  "commands",
3588
- "org",
3589
- "get.js"
3924
+ "persona",
3925
+ "task-status.js"
3590
3926
  ]
3591
3927
  },
3592
- "org:update": {
3928
+ "query": {
3593
3929
  "aliases": [],
3594
3930
  "args": {},
3595
- "description": "Update your organization's details.\n\nAt least one of --name or --description must be provided.",
3931
+ "description": "Query telemetry stream data for a device over a time range.\n\nReturns time-series datapoints for the specified stream(s). Supports aggregation\nfor downsampling large datasets, and --latest-values-only to get only the most recent value.\n\nUse --all-streams with --latest-values-only to automatically discover and query all\nstreams — both from the device configuration and from actual ingested data\n(unconfigured streams included).\n\nStream types: numeric, text, image, video, location, json, bitset, battery, health,\n\"numeric set\", \"point cloud\", localization, \"transform tree\", file.\n\nAggregate levels: second, 5 seconds, 30 seconds, minute, 5 minutes, 30 minutes,\nhour, 4 hours, 12 hours, day, week, month, year.",
3596
3932
  "examples": [
3597
- "<%= config.bin %> org update --name \"My Fleet\"",
3598
- "<%= config.bin %> org update --description \"Production robot fleet\"",
3599
- "<%= config.bin %> org update --name \"My Fleet\" --description \"Production robot fleet\"",
3600
- "<%= config.bin %> org update --name \"My Fleet\" --json"
3933
+ "<%= config.bin %> query --device <id> --stream battery_level --start 2026-01-01 --end 2026-01-02",
3934
+ "<%= config.bin %> query --device <id> --stream speed --aggregate hour --start 2026-01-01 --end 2026-02-01",
3935
+ "<%= config.bin %> query --device <id> --stream battery_level --stream temperature --start 2026-01-01 --end 2026-01-02",
3936
+ "<%= config.bin %> query --device <id1> --device <id2> --stream battery_level --start 2026-01-01 --end 2026-01-02",
3937
+ "<%= config.bin %> query --device <id> --stream battery_level --start 2026-01-01 --end 2026-02-01 --latest-values-only",
3938
+ "<%= config.bin %> query --device <id> --all-streams --start 2026-01-01 --end 2026-02-01 --latest-values-only",
3939
+ "<%= config.bin %> query --device <id> --stream temperature --type numeric --json"
3601
3940
  ],
3602
3941
  "flags": {
3603
3942
  "json": {
@@ -3627,18 +3966,88 @@
3627
3966
  "allowNo": false,
3628
3967
  "type": "boolean"
3629
3968
  },
3630
- "description": {
3969
+ "toon": {
3970
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
3971
+ "exclusive": [
3972
+ "json"
3973
+ ],
3974
+ "helpGroup": "GLOBAL",
3975
+ "name": "toon",
3976
+ "allowNo": false,
3977
+ "type": "boolean"
3978
+ },
3979
+ "aggregate": {
3980
+ "char": "a",
3981
+ "description": "Aggregation level for downsampling",
3982
+ "name": "aggregate",
3983
+ "hasDynamicHelp": false,
3984
+ "multiple": false,
3985
+ "type": "option"
3986
+ },
3987
+ "all-streams": {
3988
+ "description": "Query all streams for the device — from config and from ingested data (requires single --device and --latest-values-only)",
3989
+ "name": "all-streams",
3990
+ "allowNo": false,
3991
+ "type": "boolean"
3992
+ },
3993
+ "days": {
3994
+ "description": "How many days back to look for unconfigured streams when using --all-streams",
3995
+ "name": "days",
3996
+ "default": 14,
3997
+ "hasDynamicHelp": false,
3998
+ "multiple": false,
3999
+ "type": "option"
4000
+ },
4001
+ "device": {
3631
4002
  "char": "d",
3632
- "description": "New description for the organization",
3633
- "name": "description",
4003
+ "description": "Device ID(s), can be specified multiple times",
4004
+ "name": "device",
4005
+ "required": true,
4006
+ "hasDynamicHelp": false,
4007
+ "multiple": true,
4008
+ "type": "option"
4009
+ },
4010
+ "end": {
4011
+ "description": "End time (ISO 8601)",
4012
+ "name": "end",
4013
+ "required": true,
3634
4014
  "hasDynamicHelp": false,
3635
4015
  "multiple": false,
3636
4016
  "type": "option"
3637
4017
  },
3638
- "name": {
3639
- "char": "n",
3640
- "description": "New name for the organization",
3641
- "name": "name",
4018
+ "latest-values-only": {
4019
+ "description": "Only return the most recent value per stream",
4020
+ "name": "latest-values-only",
4021
+ "allowNo": false,
4022
+ "type": "boolean"
4023
+ },
4024
+ "limit": {
4025
+ "char": "l",
4026
+ "description": "Maximum number of datapoints",
4027
+ "name": "limit",
4028
+ "hasDynamicHelp": false,
4029
+ "multiple": false,
4030
+ "type": "option"
4031
+ },
4032
+ "start": {
4033
+ "description": "Start time (ISO 8601)",
4034
+ "name": "start",
4035
+ "required": true,
4036
+ "hasDynamicHelp": false,
4037
+ "multiple": false,
4038
+ "type": "option"
4039
+ },
4040
+ "stream": {
4041
+ "char": "s",
4042
+ "description": "Stream name(s), can be specified multiple times",
4043
+ "name": "stream",
4044
+ "hasDynamicHelp": false,
4045
+ "multiple": true,
4046
+ "type": "option"
4047
+ },
4048
+ "type": {
4049
+ "description": "Filter by stream type",
4050
+ "name": "type",
3642
4051
  "hasDynamicHelp": false,
3643
4052
  "multiple": false,
3644
4053
  "type": "option"
@@ -3646,19 +4055,19 @@
3646
4055
  },
3647
4056
  "hasDynamicHelp": false,
3648
4057
  "hiddenAliases": [],
3649
- "id": "org:update",
4058
+ "id": "query",
3650
4059
  "pluginAlias": "@formant/formant-cli",
3651
4060
  "pluginName": "@formant/formant-cli",
3652
4061
  "pluginType": "core",
3653
4062
  "strict": true,
3654
- "summary": "Update your organization",
4063
+ "summary": "Query telemetry stream data",
3655
4064
  "enableJsonFlag": true,
3656
4065
  "isESM": true,
3657
4066
  "relativePath": [
3658
4067
  "dist",
3659
4068
  "commands",
3660
- "org",
3661
- "update.js"
4069
+ "query",
4070
+ "index.js"
3662
4071
  ]
3663
4072
  },
3664
4073
  "user:get": {
@@ -3702,6 +4111,16 @@
3702
4111
  "name": "stage",
3703
4112
  "allowNo": false,
3704
4113
  "type": "boolean"
4114
+ },
4115
+ "toon": {
4116
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
4117
+ "exclusive": [
4118
+ "json"
4119
+ ],
4120
+ "helpGroup": "GLOBAL",
4121
+ "name": "toon",
4122
+ "allowNo": false,
4123
+ "type": "boolean"
3705
4124
  }
3706
4125
  },
3707
4126
  "hasDynamicHelp": false,
@@ -3756,6 +4175,16 @@
3756
4175
  "name": "stage",
3757
4176
  "allowNo": false,
3758
4177
  "type": "boolean"
4178
+ },
4179
+ "toon": {
4180
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
4181
+ "exclusive": [
4182
+ "json"
4183
+ ],
4184
+ "helpGroup": "GLOBAL",
4185
+ "name": "toon",
4186
+ "allowNo": false,
4187
+ "type": "boolean"
3759
4188
  }
3760
4189
  },
3761
4190
  "hasDynamicHelp": false,
@@ -3816,6 +4245,16 @@
3816
4245
  "name": "stage",
3817
4246
  "allowNo": false,
3818
4247
  "type": "boolean"
4248
+ },
4249
+ "toon": {
4250
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
4251
+ "exclusive": [
4252
+ "json"
4253
+ ],
4254
+ "helpGroup": "GLOBAL",
4255
+ "name": "toon",
4256
+ "allowNo": false,
4257
+ "type": "boolean"
3819
4258
  }
3820
4259
  },
3821
4260
  "hasDynamicHelp": false,
@@ -3870,6 +4309,16 @@
3870
4309
  "name": "stage",
3871
4310
  "allowNo": false,
3872
4311
  "type": "boolean"
4312
+ },
4313
+ "toon": {
4314
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
4315
+ "exclusive": [
4316
+ "json"
4317
+ ],
4318
+ "helpGroup": "GLOBAL",
4319
+ "name": "toon",
4320
+ "allowNo": false,
4321
+ "type": "boolean"
3873
4322
  }
3874
4323
  },
3875
4324
  "hasDynamicHelp": false,
@@ -3926,6 +4375,16 @@
3926
4375
  "allowNo": false,
3927
4376
  "type": "boolean"
3928
4377
  },
4378
+ "toon": {
4379
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
4380
+ "exclusive": [
4381
+ "json"
4382
+ ],
4383
+ "helpGroup": "GLOBAL",
4384
+ "name": "toon",
4385
+ "allowNo": false,
4386
+ "type": "boolean"
4387
+ },
3929
4388
  "end": {
3930
4389
  "description": "End time (ISO 8601)",
3931
4390
  "name": "end",
@@ -4003,6 +4462,16 @@
4003
4462
  "allowNo": false,
4004
4463
  "type": "boolean"
4005
4464
  },
4465
+ "toon": {
4466
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
4467
+ "exclusive": [
4468
+ "json"
4469
+ ],
4470
+ "helpGroup": "GLOBAL",
4471
+ "name": "toon",
4472
+ "allowNo": false,
4473
+ "type": "boolean"
4474
+ },
4006
4475
  "device": {
4007
4476
  "char": "d",
4008
4477
  "description": "Device ID to associate with this signal",
@@ -4099,6 +4568,16 @@
4099
4568
  "allowNo": false,
4100
4569
  "type": "boolean"
4101
4570
  },
4571
+ "toon": {
4572
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
4573
+ "exclusive": [
4574
+ "json"
4575
+ ],
4576
+ "helpGroup": "GLOBAL",
4577
+ "name": "toon",
4578
+ "allowNo": false,
4579
+ "type": "boolean"
4580
+ },
4102
4581
  "trace": {
4103
4582
  "description": "Fetch and display the triggering event and event trigger information",
4104
4583
  "name": "trace",
@@ -4160,6 +4639,16 @@
4160
4639
  "allowNo": false,
4161
4640
  "type": "boolean"
4162
4641
  },
4642
+ "toon": {
4643
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
4644
+ "exclusive": [
4645
+ "json"
4646
+ ],
4647
+ "helpGroup": "GLOBAL",
4648
+ "name": "toon",
4649
+ "allowNo": false,
4650
+ "type": "boolean"
4651
+ },
4163
4652
  "investigation": {
4164
4653
  "char": "i",
4165
4654
  "description": "Investigation (taskflow) ID — shows ground truth for signals that have one",
@@ -4224,6 +4713,16 @@
4224
4713
  "allowNo": false,
4225
4714
  "type": "boolean"
4226
4715
  },
4716
+ "toon": {
4717
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
4718
+ "exclusive": [
4719
+ "json"
4720
+ ],
4721
+ "helpGroup": "GLOBAL",
4722
+ "name": "toon",
4723
+ "allowNo": false,
4724
+ "type": "boolean"
4725
+ },
4227
4726
  "end": {
4228
4727
  "description": "End time (ISO 8601)",
4229
4728
  "name": "end",
@@ -4329,6 +4828,16 @@
4329
4828
  "name": "stage",
4330
4829
  "allowNo": false,
4331
4830
  "type": "boolean"
4831
+ },
4832
+ "toon": {
4833
+ "description": "Output data in TOON (Token-Oriented Object Notation) format",
4834
+ "exclusive": [
4835
+ "json"
4836
+ ],
4837
+ "helpGroup": "GLOBAL",
4838
+ "name": "toon",
4839
+ "allowNo": false,
4840
+ "type": "boolean"
4332
4841
  }
4333
4842
  },
4334
4843
  "hasDynamicHelp": false,
@@ -4349,5 +4858,5 @@
4349
4858
  ]
4350
4859
  }
4351
4860
  },
4352
- "version": "0.4.4"
4861
+ "version": "0.5.0"
4353
4862
  }