@formant/formant-cli 0.3.0 → 0.4.2

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 (183) hide show
  1. package/README.md +152 -124
  2. package/dist/commands/{commands → command}/for-device.js +2 -2
  3. package/dist/commands/command/for-device.js.map +1 -0
  4. package/dist/commands/{commands → command}/get.js +2 -2
  5. package/dist/commands/command/get.js.map +1 -0
  6. package/dist/commands/{commands → command}/history.js +3 -3
  7. package/dist/commands/command/history.js.map +1 -0
  8. package/dist/commands/{commands → command}/list.js +2 -2
  9. package/dist/commands/command/list.js.map +1 -0
  10. package/dist/commands/{commands → command}/send.js +5 -5
  11. package/dist/commands/command/send.js.map +1 -0
  12. package/dist/commands/{devices → device}/config.js +2 -2
  13. package/dist/commands/device/config.js.map +1 -0
  14. package/dist/commands/{devices → device}/create.js +3 -3
  15. package/dist/commands/device/create.js.map +1 -0
  16. package/dist/commands/{devices → device}/delete.js +2 -2
  17. package/dist/commands/device/delete.js.map +1 -0
  18. package/dist/commands/{devices → device}/get.js +2 -2
  19. package/dist/commands/device/get.js.map +1 -0
  20. package/dist/commands/{devices → device}/last-seen.js +2 -2
  21. package/dist/commands/device/last-seen.js.map +1 -0
  22. package/dist/commands/{devices → device}/list.js +5 -5
  23. package/dist/commands/device/list.js.map +1 -0
  24. package/dist/commands/{devices → device}/rename.js +2 -2
  25. package/dist/commands/device/rename.js.map +1 -0
  26. package/dist/commands/{devices → device}/streams.d.ts +3 -0
  27. package/dist/commands/device/streams.js +100 -0
  28. package/dist/commands/device/streams.js.map +1 -0
  29. package/dist/commands/{devices → device}/tag.js +3 -3
  30. package/dist/commands/device/tag.js.map +1 -0
  31. package/dist/commands/{devices → device}/untag.js +3 -3
  32. package/dist/commands/device/untag.js.map +1 -0
  33. package/dist/commands/{events → event}/get.js +2 -2
  34. package/dist/commands/event/get.js.map +1 -0
  35. package/dist/commands/{events → event}/list.js +4 -4
  36. package/dist/commands/event/list.js.map +1 -0
  37. package/dist/commands/{event-triggers → event-trigger}/get.js +2 -2
  38. package/dist/commands/event-trigger/get.js.map +1 -0
  39. package/dist/commands/{event-triggers → event-trigger}/list.js +2 -2
  40. package/dist/commands/event-trigger/list.js.map +1 -0
  41. package/dist/commands/{fleets → fleet}/get.js +2 -2
  42. package/dist/commands/fleet/get.js.map +1 -0
  43. package/dist/commands/{fleets → fleet}/list.js +2 -2
  44. package/dist/commands/fleet/list.js.map +1 -0
  45. package/dist/commands/{investigations → investigation}/analytics.js +3 -3
  46. package/dist/commands/investigation/analytics.js.map +1 -0
  47. package/dist/commands/{investigations → investigation}/get.js +2 -2
  48. package/dist/commands/investigation/get.js.map +1 -0
  49. package/dist/commands/{investigations → investigation}/list.js +3 -3
  50. package/dist/commands/investigation/list.js.map +1 -0
  51. package/dist/commands/{investigations → investigation}/run.js +3 -3
  52. package/dist/commands/investigation/run.js.map +1 -0
  53. package/dist/commands/{investigations → investigation}/runs-list.js +3 -3
  54. package/dist/commands/investigation/runs-list.js.map +1 -0
  55. package/dist/commands/{investigations → investigation}/runs.js +2 -2
  56. package/dist/commands/investigation/runs.js.map +1 -0
  57. package/dist/commands/{investigations → investigation}/stats.js +2 -2
  58. package/dist/commands/investigation/stats.js.map +1 -0
  59. package/dist/commands/{investigations → investigation}/trigger.js +2 -2
  60. package/dist/commands/investigation/trigger.js.map +1 -0
  61. package/dist/commands/persona/delegate-task.d.ts +14 -0
  62. package/dist/commands/persona/delegate-task.js +50 -0
  63. package/dist/commands/persona/delegate-task.js.map +1 -0
  64. package/dist/commands/persona/get.d.ts +10 -0
  65. package/dist/commands/persona/get.js +98 -0
  66. package/dist/commands/persona/get.js.map +1 -0
  67. package/dist/commands/{signals → persona}/list.d.ts +1 -1
  68. package/dist/commands/persona/list.js +31 -0
  69. package/dist/commands/persona/list.js.map +1 -0
  70. package/dist/commands/persona/task-status.d.ts +12 -0
  71. package/dist/commands/persona/task-status.js +57 -0
  72. package/dist/commands/persona/task-status.js.map +1 -0
  73. package/dist/commands/query/latest-values.d.ts +1 -0
  74. package/dist/commands/query/latest-values.js +41 -15
  75. package/dist/commands/query/latest-values.js.map +1 -1
  76. package/dist/commands/{schedules → schedule}/get.js +2 -2
  77. package/dist/commands/schedule/get.js.map +1 -0
  78. package/dist/commands/{schedules → schedule}/list.js +2 -2
  79. package/dist/commands/schedule/list.js.map +1 -0
  80. package/dist/commands/{signals → signal}/count.js +3 -3
  81. package/dist/commands/signal/count.js.map +1 -0
  82. package/dist/commands/signal/create.d.ts +16 -0
  83. package/dist/commands/signal/create.js +95 -0
  84. package/dist/commands/signal/create.js.map +1 -0
  85. package/dist/commands/{signals → signal}/get.js +3 -3
  86. package/dist/commands/signal/get.js.map +1 -0
  87. package/dist/commands/signal/list.d.ts +12 -0
  88. package/dist/commands/signal/list.js +85 -0
  89. package/dist/commands/signal/list.js.map +1 -0
  90. package/dist/commands/{signals → signal}/query.d.ts +1 -0
  91. package/dist/commands/signal/query.js +100 -0
  92. package/dist/commands/signal/query.js.map +1 -0
  93. package/dist/commands/signal/set-ground-truth.d.ts +12 -0
  94. package/dist/commands/signal/set-ground-truth.js +46 -0
  95. package/dist/commands/signal/set-ground-truth.js.map +1 -0
  96. package/dist/commands/{users → user}/get.js +2 -2
  97. package/dist/commands/user/get.js.map +1 -0
  98. package/dist/commands/{users → user}/list.js +2 -2
  99. package/dist/commands/user/list.js.map +1 -0
  100. package/dist/help.js +53 -47
  101. package/dist/help.js.map +1 -1
  102. package/dist/lib/api.d.ts +1 -1
  103. package/dist/lib/api.js +3 -0
  104. package/dist/lib/api.js.map +1 -1
  105. package/dist/lib/config.d.ts +1 -0
  106. package/dist/lib/config.js +3 -0
  107. package/dist/lib/config.js.map +1 -1
  108. package/oclif.manifest.json +1288 -834
  109. package/package.json +28 -25
  110. package/dist/commands/commands/for-device.js.map +0 -1
  111. package/dist/commands/commands/get.js.map +0 -1
  112. package/dist/commands/commands/history.js.map +0 -1
  113. package/dist/commands/commands/list.js.map +0 -1
  114. package/dist/commands/commands/send.js.map +0 -1
  115. package/dist/commands/devices/config.js.map +0 -1
  116. package/dist/commands/devices/create.js.map +0 -1
  117. package/dist/commands/devices/delete.js.map +0 -1
  118. package/dist/commands/devices/get.js.map +0 -1
  119. package/dist/commands/devices/last-seen.js.map +0 -1
  120. package/dist/commands/devices/list.js.map +0 -1
  121. package/dist/commands/devices/rename.js.map +0 -1
  122. package/dist/commands/devices/streams.js +0 -56
  123. package/dist/commands/devices/streams.js.map +0 -1
  124. package/dist/commands/devices/tag.js.map +0 -1
  125. package/dist/commands/devices/untag.js.map +0 -1
  126. package/dist/commands/event-triggers/get.js.map +0 -1
  127. package/dist/commands/event-triggers/list.js.map +0 -1
  128. package/dist/commands/events/get.js.map +0 -1
  129. package/dist/commands/events/list.js.map +0 -1
  130. package/dist/commands/fleets/get.js.map +0 -1
  131. package/dist/commands/fleets/list.js.map +0 -1
  132. package/dist/commands/investigations/analytics.js.map +0 -1
  133. package/dist/commands/investigations/get.js.map +0 -1
  134. package/dist/commands/investigations/list.js.map +0 -1
  135. package/dist/commands/investigations/run.js.map +0 -1
  136. package/dist/commands/investigations/runs-list.js.map +0 -1
  137. package/dist/commands/investigations/runs.js.map +0 -1
  138. package/dist/commands/investigations/stats.js.map +0 -1
  139. package/dist/commands/investigations/trigger.js.map +0 -1
  140. package/dist/commands/schedules/get.js.map +0 -1
  141. package/dist/commands/schedules/list.js.map +0 -1
  142. package/dist/commands/signals/count.js.map +0 -1
  143. package/dist/commands/signals/get.js.map +0 -1
  144. package/dist/commands/signals/list.js +0 -30
  145. package/dist/commands/signals/list.js.map +0 -1
  146. package/dist/commands/signals/query.js +0 -52
  147. package/dist/commands/signals/query.js.map +0 -1
  148. package/dist/commands/users/get.js.map +0 -1
  149. package/dist/commands/users/list.js.map +0 -1
  150. /package/dist/commands/{commands → command}/for-device.d.ts +0 -0
  151. /package/dist/commands/{commands → command}/get.d.ts +0 -0
  152. /package/dist/commands/{commands → command}/history.d.ts +0 -0
  153. /package/dist/commands/{commands → command}/list.d.ts +0 -0
  154. /package/dist/commands/{commands → command}/send.d.ts +0 -0
  155. /package/dist/commands/{devices → device}/config.d.ts +0 -0
  156. /package/dist/commands/{devices → device}/create.d.ts +0 -0
  157. /package/dist/commands/{devices → device}/delete.d.ts +0 -0
  158. /package/dist/commands/{devices → device}/get.d.ts +0 -0
  159. /package/dist/commands/{devices → device}/last-seen.d.ts +0 -0
  160. /package/dist/commands/{devices → device}/list.d.ts +0 -0
  161. /package/dist/commands/{devices → device}/rename.d.ts +0 -0
  162. /package/dist/commands/{devices → device}/tag.d.ts +0 -0
  163. /package/dist/commands/{devices → device}/untag.d.ts +0 -0
  164. /package/dist/commands/{events → event}/get.d.ts +0 -0
  165. /package/dist/commands/{events → event}/list.d.ts +0 -0
  166. /package/dist/commands/{event-triggers → event-trigger}/get.d.ts +0 -0
  167. /package/dist/commands/{event-triggers → event-trigger}/list.d.ts +0 -0
  168. /package/dist/commands/{fleets → fleet}/get.d.ts +0 -0
  169. /package/dist/commands/{fleets → fleet}/list.d.ts +0 -0
  170. /package/dist/commands/{investigations → investigation}/analytics.d.ts +0 -0
  171. /package/dist/commands/{investigations → investigation}/get.d.ts +0 -0
  172. /package/dist/commands/{investigations → investigation}/list.d.ts +0 -0
  173. /package/dist/commands/{investigations → investigation}/run.d.ts +0 -0
  174. /package/dist/commands/{investigations → investigation}/runs-list.d.ts +0 -0
  175. /package/dist/commands/{investigations → investigation}/runs.d.ts +0 -0
  176. /package/dist/commands/{investigations → investigation}/stats.d.ts +0 -0
  177. /package/dist/commands/{investigations → investigation}/trigger.d.ts +0 -0
  178. /package/dist/commands/{schedules → schedule}/get.d.ts +0 -0
  179. /package/dist/commands/{schedules → schedule}/list.d.ts +0 -0
  180. /package/dist/commands/{signals → signal}/count.d.ts +0 -0
  181. /package/dist/commands/{signals → signal}/get.d.ts +0 -0
  182. /package/dist/commands/{users → user}/get.d.ts +0 -0
  183. /package/dist/commands/{users → user}/list.d.ts +0 -0
package/README.md CHANGED
@@ -2,16 +2,16 @@
2
2
 
3
3
  ```
4
4
  ███████╗ ██████╗██╗ ██╗
5
- ██╔════╝██╔════╝██║ ██║ 🤖 Formant CLI
6
- █████╗ ██║ ██║ ██║ Manage your robot fleet
7
- ██╔══╝ ██║ ██║ ██║ 🚀 from the command line
5
+ ██╔════╝██╔════╝██║ ██║ Formant CLI
6
+ █████╗ ██║ ██║ ██║ Manage your robot fleet
7
+ ██╔══╝ ██║ ██║ ██║ from the command line
8
8
  ██║ ╚██████╗███████╗██║
9
9
  ╚═╝ ╚═════╝╚══════╝╚═╝
10
10
  ```
11
11
 
12
12
  **The official command-line interface for [Formant](https://formant.io) — a cloud platform for monitoring, operating, and analyzing robot fleets at scale.**
13
13
 
14
- Formant helps robotics teams observe, troubleshoot, and control their robots in production. With `fcli`, you can manage your entire fleet from the terminal: query telemetry, trigger AI-powered investigations, send remote commands, manage users and permissions, and automate workflows.
14
+ Formant helps robotics teams observe, troubleshoot, and control their robots in production. With `fcli`, you can manage your entire fleet from the terminal: query telemetry, trigger AI-powered investigations, delegate tasks to AI personas, send remote commands, manage users and permissions, and automate workflows.
15
15
 
16
16
  ## What is Formant?
17
17
 
@@ -20,6 +20,7 @@ Formant helps robotics teams observe, troubleshoot, and control their robots in
20
20
  - **Real-time monitoring** — Live telemetry streams (battery, sensors, cameras, logs) from all your robots
21
21
  - **Event tracking** — Automatic detection and alerting of critical issues (crashes, errors, anomalies)
22
22
  - **AI-powered investigations** — Intelligent root cause analysis that diagnoses problems automatically
23
+ - **AI personas** — Configurable AI agents with tools for async task delegation
23
24
  - **Remote operations** — Send commands, trigger actions, and control robots from anywhere
24
25
  - **Fleet management** — Organize devices by location, type, or purpose; manage user permissions
25
26
  - **Analytics & reporting** — Query historical data with SQL to understand performance trends
@@ -28,75 +29,83 @@ Formant helps robotics teams observe, troubleshoot, and control their robots in
28
29
 
29
30
  This CLI provides programmatic access to all Formant capabilities:
30
31
 
31
- ### 🤖 Device Management
32
+ ### Device Management
32
33
  - List, create, rename, and delete robots/sensors
33
34
  - Add tags for organization (environment, location, customer)
34
35
  - View real-time device status and configuration
35
36
  - List available telemetry streams
36
37
 
37
- ### 📊 Telemetry Queries
38
+ ### Telemetry Queries
38
39
  - Query historical sensor data (battery, temperature, position, custom metrics)
39
40
  - Retrieve latest values for any stream
40
41
  - Filter by time range and device
41
42
  - Export data as JSON for analysis
42
43
 
43
- ### 📤 Telemetry Ingestion
44
+ ### Telemetry Ingestion
44
45
  - Send numeric, text, JSON, image, video, bitset, and health data to devices
45
46
  - Add tags and custom timestamps to telemetry points
46
47
  - Batch upload multiple data points in a single request
47
48
  - Programmatically populate device streams from scripts and automation
48
49
 
49
- ### 🔍 Event Monitoring
50
+ ### Event Monitoring
50
51
  - View events filtered by severity (info, warning, critical, error)
51
52
  - Track device online/offline status
52
53
  - Investigate alert history for troubleshooting
53
54
  - Filter events by device, time range, or type
54
55
 
55
- ### 🤖 AI Investigations
56
+ ### AI Personas
57
+ - List available AI personas and their configurations
58
+ - View persona details including integrations and available tools
59
+ - Delegate async tasks to personas (fire-and-forget)
60
+ - Check task status and results
61
+
62
+ ### AI Investigations
56
63
  - List available investigation workflows
57
- - Trigger investigations manually or on-demand
64
+ - Trigger investigations manually with custom input
58
65
  - View investigation runs, execution logs, and results
59
66
  - Get investigation statistics and success rates
60
67
  - Trace investigations back to their triggering signals
61
68
 
62
- ### 📡 Signal Management
69
+ ### Signal Management & Ground Truth
70
+ - Create manual signals for testing and evaluation
63
71
  - List and query signals (investigation triggers)
72
+ - Assign ground truth (expected outcomes) to signals for evaluation
73
+ - View signals with their ground truth annotations
64
74
  - Count signals by type
65
- - Trace the workflow: Signal Investigation Run Result
66
- - Understand what triggered each investigation
75
+ - Trace the workflow: Signal -> Investigation -> Run -> Result
67
76
 
68
- ### 💬 Remote Commands
77
+ ### Remote Commands
69
78
  - List available command templates for your fleet
70
79
  - Send commands to individual devices with parameters
71
80
  - View command execution history
72
81
  - Check command delivery status
73
82
 
74
- ### 🚨 Event Triggers (Automation)
83
+ ### Event Triggers (Automation)
75
84
  - View configured trigger rules
76
85
  - Understand what conditions create events and signals
77
86
  - See trigger configuration (thresholds, exit conditions, device scope)
78
87
 
79
- ### 👥 User & Organization Management
88
+ ### User & Organization Management
80
89
  - View organization details (plan, retention, support tier)
81
90
  - Update organization name and description
82
91
  - List all users and their roles
83
92
  - Inspect user permissions and account status
84
93
 
85
- ### 🚀 Fleet & Group Management
94
+ ### Fleet & Group Management
86
95
  - Create logical groups of devices (by location, project, customer)
87
96
  - List all fleets and their member devices
88
97
  - Organize your fleet for easier management
89
98
 
90
- ### 📅 Scheduled Tasks
99
+ ### Scheduled Tasks
91
100
  - View scheduled investigations and commands
92
101
  - Understand recurring workflows and automation
93
102
 
94
- ### 📈 Analytics & SQL
103
+ ### Analytics & SQL
95
104
  - Execute custom SQL queries against your analytics database
96
105
  - List available tables and schemas
97
106
  - Analyze fleet performance, uptime, and trends
98
107
 
99
- ### 🗂️ Key-Value Metadata Store
108
+ ### Key-Value Metadata Store
100
109
  - Store custom metadata per device
101
110
  - Retrieve configuration values
102
111
  - Update device-specific settings
@@ -134,7 +143,7 @@ Formant CLI uses **service account credentials** for authentication. You'll need
134
143
  ### Creating a Service Account
135
144
 
136
145
  1. Log in to [Formant](https://app.formant.io)
137
- 2. Go to **Settings** **Users**
146
+ 2. Go to **Settings** -> **Users**
138
147
  3. Click **Create Service Account**
139
148
  4. Copy the generated email and password
140
149
 
@@ -163,23 +172,28 @@ The CLI will automatically load credentials from your `.env` file.
163
172
  fcli org get
164
173
 
165
174
  # List all devices
166
- fcli devices list --dev
175
+ fcli device list --dev
167
176
 
168
177
  # Get device details
169
- fcli devices get <device-id> --dev
178
+ fcli device get <device-id> --dev
170
179
 
171
180
  # Query battery telemetry over the last day
172
181
  fcli query --device <device-id> --stream battery_level \
173
182
  --start 2026-02-17 --end 2026-02-18 --dev
174
183
 
175
184
  # View recent critical events
176
- fcli events list --severity critical --limit 20 --dev
185
+ fcli event list --severity critical --limit 20 --dev
186
+
187
+ # List AI personas and delegate a task
188
+ fcli persona list --dev
189
+ fcli persona delegate-task <persona-id> "Analyze recent device failures" --dev
190
+ fcli persona task-status <task-id> --dev
177
191
 
178
192
  # List all investigations
179
- fcli investigations list --dev
193
+ fcli investigation list --dev
180
194
 
181
195
  # Send a command to a robot
182
- fcli commands send <device-id> <template-id> --param speed=5 --dev
196
+ fcli command send <device-id> <template-id> --param speed=5 --dev
183
197
  ```
184
198
 
185
199
  ## Command Reference
@@ -194,43 +208,43 @@ fcli org update --name "Acme Robotics" # Update organization name
194
208
  fcli org update --description "Production fleet" # Update description
195
209
  ```
196
210
 
197
- ### Devices
211
+ ### Device
198
212
 
199
213
  Create, list, and manage robots/sensors in your fleet.
200
214
 
201
215
  ```bash
202
216
  # Listing and filtering
203
- fcli devices list # List all devices
204
- fcli devices list --online # Only online devices
205
- fcli devices list --tag location=warehouse # Filter by tag
217
+ fcli device list # List all devices
218
+ fcli device list --online # Only online devices
219
+ fcli device list --tag location=warehouse # Filter by tag
206
220
 
207
221
  # Device details
208
- fcli devices get <device-id> # Get full device details
209
- fcli devices config <device-id> # Get device configuration
210
- fcli devices streams <device-id> # List available data streams
211
- fcli devices last-seen <device-id> # Get last activity timestamp
222
+ fcli device get <device-id> # Get full device details
223
+ fcli device config <device-id> # Get device configuration
224
+ fcli device streams <device-id> # List available data streams
225
+ fcli device last-seen <device-id> # Get last activity timestamp
212
226
 
213
227
  # Device management
214
- fcli devices create --name "robot-001" # Create a new device
215
- fcli devices rename <device-id> --name "new-name" # Rename a device
216
- fcli devices delete <device-id> # Delete (disable) a device
228
+ fcli device create --name "robot-001" # Create a new device
229
+ fcli device rename <device-id> --name "new-name" # Rename a device
230
+ fcli device delete <device-id> # Delete (disable) a device
217
231
 
218
232
  # Tagging
219
- fcli devices tag <device-id> --key env --value prod # Add/update tag
220
- fcli devices untag <device-id> --key env # Remove tag
233
+ fcli device tag <device-id> --key env --value prod # Add/update tag
234
+ fcli device untag <device-id> --key env # Remove tag
221
235
  ```
222
236
 
223
- ### Events
237
+ ### Event
224
238
 
225
239
  View and filter important events emitted by your devices.
226
240
 
227
241
  ```bash
228
- fcli events list # List all recent events
229
- fcli events list --device <device-id> # Events for one device
230
- fcli events list --severity critical # Filter by severity
231
- fcli events list --limit 50 # Limit results
232
- fcli events list --start 2026-01-01 # Filter by date range
233
- fcli events get <event-id> # Get event details
242
+ fcli event list # List all recent events
243
+ fcli event list --device <device-id> # Events for one device
244
+ fcli event list --severity critical # Filter by severity
245
+ fcli event list --limit 50 # Limit results
246
+ fcli event list --start 2026-01-01 # Filter by date range
247
+ fcli event get <event-id> # Get event details
234
248
  ```
235
249
 
236
250
  **Severity levels:** `info`, `warning`, `error`, `critical`
@@ -265,15 +279,12 @@ fcli ingest text "Low battery warning" --device <device-id> --stream alerts --ta
265
279
 
266
280
  # JSON data
267
281
  fcli ingest json '{"x":10,"y":20}' --device <device-id> --stream position
268
- fcli ingest json '{"speed":15,"heading":90}' --device <device-id> --stream nav_data
269
282
 
270
283
  # Image data
271
284
  fcli ingest image https://example.com/camera.jpg --device <device-id> --stream camera_front
272
- fcli ingest image https://example.com/image.jpg --device <device-id> --stream camera --size 102400
273
285
 
274
286
  # Video data
275
287
  fcli ingest video https://example.com/recording.mp4 --device <device-id> --stream camera_feed --duration 30000
276
- fcli ingest video https://cdn.example.com/video.webm --device <device-id> --stream video --duration 15000 --mime-type video/webm
277
288
 
278
289
  # Bitset data (multiple boolean key-value pairs)
279
290
  fcli ingest bitset --device <device-id> --stream sensors \
@@ -282,7 +293,6 @@ fcli ingest bitset --device <device-id> --stream sensors \
282
293
 
283
294
  # Health status
284
295
  fcli ingest health --device <device-id> --stream health_status --status operational
285
- fcli ingest health --device <device-id> --stream health --status error --clock-skew 1500
286
296
 
287
297
  # Batch ingestion (multiple items from JSON file or stdin)
288
298
  fcli ingest batch --file payload.json
@@ -292,114 +302,119 @@ cat batch.json | fcli ingest batch --stdin
292
302
  **Common flags for all ingest commands:**
293
303
  - `--device <id>` - Target device ID (required)
294
304
  - `--stream <name>` - Stream name (required)
295
- - `--tag key=value` - Add tags as string key-value pairs (repeatable: `--tag env=prod --tag region=us-west`)
305
+ - `--tag key=value` - Add tags as string key-value pairs (repeatable)
296
306
  - `--timestamp <ms>` - Unix timestamp in milliseconds (defaults to current time)
297
307
 
298
308
  **Health status values:** `unknown`, `operational`, `offline`, `error`
299
309
 
300
- **Batch format example** (`payload.json`):
301
- ```json
302
- {
303
- "items": [
304
- {
305
- "deviceId": "abc-123",
306
- "name": "battery_level",
307
- "type": "numeric",
308
- "tags": {"env": "prod"},
309
- "points": [[1642867200000, 42.5]]
310
- },
311
- {
312
- "deviceId": "abc-123",
313
- "name": "status",
314
- "type": "text",
315
- "tags": {"env": "prod"},
316
- "points": [[1642867200000, "operational"]]
317
- }
318
- ]
319
- }
310
+ ### Persona
311
+
312
+ Manage AI personas and delegate async tasks.
313
+
314
+ ```bash
315
+ # Listing and details
316
+ fcli persona list # List all personas
317
+ fcli persona get <persona-id> # View persona details and tools
318
+
319
+ # Async task delegation
320
+ fcli persona delegate-task <persona-id> "Analyze recent device failures"
321
+ fcli persona delegate-task <persona-id> "Generate a daily report" --name "Daily Report"
322
+ fcli persona task-status <task-id> # Check task status and results
320
323
  ```
321
324
 
322
- **Note:** The `tags` field is optional and contains string key-value pairs only. Use `"tags": {}` if no tags are needed.
325
+ The `delegate-task` command creates a task, assigns it to the persona, and queues it for
326
+ async execution. It returns immediately with a task ID. Use `task-status` to check progress.
323
327
 
324
- ### Investigations
328
+ ### Investigation
325
329
 
326
330
  Trigger and monitor AI-powered analysis workflows that diagnose device issues.
327
331
 
328
332
  ```bash
329
333
  # Listing
330
- fcli investigations list # List all investigations
331
- fcli investigations get <investigation-id> # Get investigation details
334
+ fcli investigation list # List all investigations
335
+ fcli investigation get <investigation-id> # Get investigation details
332
336
 
333
337
  # Triggering
334
- fcli investigations trigger <inv-id> <device-id> # Start an investigation
338
+ fcli investigation trigger <id> --input "Robot stopped responding"
335
339
 
336
340
  # Runs
337
- fcli investigations runs <investigation-id> # List all runs
338
- fcli investigations run <inv-id> <run-id> # Get run details & logs
339
- fcli investigations run <inv-id> <run-id> --trace-signal # Trace back to signal
341
+ fcli investigation runs <investigation-id> # List all runs
342
+ fcli investigation run <inv-id> <run-id> # Get run details & logs
340
343
 
341
344
  # Analytics
342
- fcli investigations stats --start 2026-01-01 # Get metrics
343
- fcli investigations analytics <investigation-id> # Get investigation analytics
345
+ fcli investigation stats --start 2026-01-01 # Get metrics
346
+ fcli investigation analytics <investigation-id> # Get investigation analytics
344
347
  ```
345
348
 
346
- ### Signals
349
+ ### Signal
347
350
 
348
351
  Signals are points of interest (from events, schedules, or manual triggers) that start investigations.
352
+ You can create signals manually and assign ground truth (expected outcomes) for evaluation.
349
353
 
350
354
  ```bash
351
- fcli signals list # List all signals
352
- fcli signals query --start 2026-01-01 --end 2026-02-01 # Query by time
353
- fcli signals count # Count signals by type
354
- fcli signals get <signal-id> # Get signal details
355
+ # Listing and querying
356
+ fcli signal list # List all signals
357
+ fcli signal list --investigation <inv-id> # List with ground truth annotations
358
+ fcli signal query --start 2026-01-01 --end 2026-02-01 # Query by time
359
+ fcli signal count # Count signals by type
360
+ fcli signal get <signal-id> # Get signal details
361
+
362
+ # Creating signals
363
+ fcli signal create "Motor overheated on device X"
364
+ fcli signal create "Sensor fault" --device <device-id>
365
+ fcli signal create "Test scenario" --investigation <inv-id> \
366
+ --ground-truth "Should detect thermal issue"
367
+
368
+ # Ground truth (expected outcomes for evaluation)
369
+ fcli signal set-ground-truth <signal-id> <investigation-id> "Expected outcome text"
355
370
  ```
356
371
 
357
- ### Commands
372
+ ### Command
358
373
 
359
374
  Send remote commands to devices and view execution history.
360
375
 
361
376
  ```bash
362
- fcli commands list # List all command templates
363
- fcli commands get <command-id> # Get template details
364
- fcli commands for-device <device-id> # Commands available for device
365
- fcli commands send <device-id> <template-id> --param key=value # Send command
366
- fcli commands history <device-id> # View command history
377
+ fcli command list # List all command templates
378
+ fcli command get <command-id> # Get template details
379
+ fcli command for-device <device-id> # Commands available for device
380
+ fcli command send <device-id> <template-id> --param key=value # Send command
381
+ fcli command history <device-id> # View command history
367
382
  ```
368
383
 
369
- ### Event Triggers
384
+ ### Event Trigger
370
385
 
371
386
  View automated trigger rules that generate events and signals based on device conditions.
372
387
 
373
388
  ```bash
374
- fcli event-triggers list # List all trigger rules
375
- fcli event-triggers get <trigger-id> # Get trigger configuration
389
+ fcli event-trigger list # List all trigger rules
390
+ fcli event-trigger get <trigger-id> # Get trigger configuration
376
391
  ```
377
392
 
378
- ### Users
393
+ ### User
379
394
 
380
395
  Manage users in your organization.
381
396
 
382
397
  ```bash
383
- fcli users list # List all users
384
- fcli users get <user-id> # Get user details
398
+ fcli user list # List all users
399
+ fcli user get <user-id> # Get user details
385
400
  ```
386
401
 
387
- ### Fleets
402
+ ### Fleet
388
403
 
389
404
  Organize devices into logical groups (by location, type, project, customer).
390
405
 
391
406
  ```bash
392
- fcli fleets list # List all fleets
393
- fcli fleets get <fleet-id> # Get fleet details
407
+ fcli fleet list # List all fleets
408
+ fcli fleet get <fleet-id> # Get fleet details
394
409
  ```
395
410
 
396
- ### Schedules
411
+ ### Schedule
397
412
 
398
413
  View recurring tasks and one-time scheduled jobs.
399
414
 
400
415
  ```bash
401
- fcli schedules list # List all schedules
402
- fcli schedules get <schedule-id> # Get schedule details
416
+ fcli schedule list # List all schedules
417
+ fcli schedule get <schedule-id> # Get schedule details
403
418
  ```
404
419
 
405
420
  ### Analytics
@@ -426,7 +441,7 @@ fcli kv set <device-id> <key> <value> # Set value
426
441
  These flags work with any command:
427
442
 
428
443
  - `--dev` — Target the dev environment (for testing)
429
- - `--stage` — Target the stage environment (for staging)
444
+ - `--stage` — Target the stage environment (for staging)
430
445
  - `--json` — Output raw JSON instead of formatted tables
431
446
  - `-h, --help` — Show help for any command
432
447
 
@@ -439,7 +454,7 @@ These flags work with any command:
439
454
  Human-readable tables optimized for terminal viewing:
440
455
 
441
456
  ```bash
442
- $ fcli devices list --dev
457
+ $ fcli device list --dev
443
458
 
444
459
  Devices (dev):
445
460
 
@@ -454,7 +469,7 @@ robot-002 e5f6g7h8-... offline env=dev
454
469
  Machine-readable JSON for scripting and automation:
455
470
 
456
471
  ```bash
457
- $ fcli devices list --dev --json
472
+ $ fcli device list --dev --json
458
473
  {
459
474
  "items": [
460
475
  {
@@ -473,7 +488,7 @@ $ fcli devices list --dev --json
473
488
  Use with `jq` for advanced processing:
474
489
 
475
490
  ```bash
476
- fcli devices list --json | jq '.items[] | select(.online==true) | .name'
491
+ fcli device list --json | jq '.items[] | select(.online==true) | .name'
477
492
  ```
478
493
 
479
494
  ## Examples
@@ -482,29 +497,42 @@ fcli devices list --json | jq '.items[] | select(.online==true) | .name'
482
497
 
483
498
  ```bash
484
499
  # Check which devices are offline
485
- fcli devices list --json | jq '.items[] | select(.online==false) | .name'
500
+ fcli device list --json | jq '.items[] | select(.online==false) | .name'
486
501
 
487
502
  # View recent critical events across the fleet
488
- fcli events list --severity critical --limit 50
503
+ fcli event list --severity critical --limit 50
489
504
 
490
505
  # Check battery levels
491
- for device in $(fcli devices list --json | jq -r '.items[].id'); do
506
+ for device in $(fcli device list --json | jq -r '.items[].id'); do
492
507
  echo "Device: $device"
493
508
  fcli query latest-values --device $device --stream battery_level
494
509
  done
495
510
  ```
496
511
 
512
+ ### Delegate a task to an AI persona
513
+
514
+ ```bash
515
+ # List available personas
516
+ fcli persona list
517
+
518
+ # Delegate an async task
519
+ fcli persona delegate-task <persona-id> "Check all offline devices and summarize issues"
520
+
521
+ # Check the result
522
+ fcli persona task-status <task-id>
523
+ ```
524
+
497
525
  ### Investigate a device issue
498
526
 
499
527
  ```bash
500
528
  # 1. View recent events for the device
501
- fcli events list --device <device-id> --limit 20
529
+ fcli event list --device <device-id> --limit 20
502
530
 
503
- # 2. Check what investigations have run
504
- fcli investigations runs <investigation-id>
531
+ # 2. Trigger an investigation
532
+ fcli investigation trigger <investigation-id> --input "Device stopped responding"
505
533
 
506
- # 3. Get detailed logs for a specific run
507
- fcli investigations run <inv-id> <run-id>
534
+ # 3. Check investigation runs
535
+ fcli investigation runs <investigation-id>
508
536
 
509
537
  # 4. Query relevant telemetry
510
538
  fcli query --device <device-id> --stream temperature \
@@ -515,13 +543,13 @@ fcli query --device <device-id> --stream temperature \
515
543
 
516
544
  ```bash
517
545
  # Tag all production devices
518
- for device in $(fcli devices list --json | jq -r '.items[].id'); do
519
- fcli devices tag $device --key environment --value production
546
+ for device in $(fcli device list --json | jq -r '.items[].id'); do
547
+ fcli device tag $device --key environment --value production
520
548
  done
521
549
 
522
550
  # Send command to all devices in a fleet
523
- for device in $(fcli fleets get <fleet-id> --json | jq -r '.devices[].id'); do
524
- fcli commands send $device <template-id> --param mode=standby
551
+ for device in $(fcli fleet get <fleet-id> --json | jq -r '.devices[].id'); do
552
+ fcli command send $device <template-id> --param mode=standby
525
553
  done
526
554
  ```
527
555
 
@@ -529,10 +557,10 @@ done
529
557
 
530
558
  ```bash
531
559
  # Export all critical events to JSON
532
- fcli events list --severity critical --limit 1000 --json > critical_events.json
560
+ fcli event list --severity critical --limit 1000 --json > critical_events.json
533
561
 
534
562
  # Export device list with tags
535
- fcli devices list --json | jq '.items[] | {name, id, tags}' > devices.json
563
+ fcli device list --json | jq '.items[] | {name, id, tags}' > devices.json
536
564
 
537
565
  # Query analytics and save results
538
566
  fcli analytics query --sql "SELECT * FROM events WHERE created_at > '2026-01-01'" \
@@ -553,7 +581,7 @@ npm run build
553
581
  ### Run in development mode
554
582
 
555
583
  ```bash
556
- npm run dev -- devices list --dev
584
+ npm run dev -- device list --dev
557
585
  ```
558
586
 
559
587
  ### Run directly
@@ -583,4 +611,4 @@ See [LICENSE](./LICENSE) for details.
583
611
 
584
612
  ---
585
613
 
586
- Made with by [Formant](https://formant.io)
614
+ Made with care by [Formant](https://formant.io)
@@ -10,8 +10,8 @@ export default class CommandsForDevice extends BaseCommand {
10
10
  Returns commands that match the device's tags and filters. Only enabled commands
11
11
  that apply to this device are shown.`;
12
12
  static examples = [
13
- '<%= config.bin %> commands for-device <device-id>',
14
- '<%= config.bin %> commands for-device <device-id> --json',
13
+ '<%= config.bin %> command for-device <device-id>',
14
+ '<%= config.bin %> command for-device <device-id> --json',
15
15
  ];
16
16
  static summary = 'List commands available for a device';
17
17
  async run() {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"for-device.js","sourceRoot":"","sources":["../../../src/commands/command/for-device.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,aAAa,CAAA;AAEhC,OAAO,EAAC,WAAW,EAAC,MAAM,uBAAuB,CAAA;AACjD,OAAO,EAAc,WAAW,EAAC,MAAM,yBAAyB,CAAA;AAEhE,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,WAAqC;IAClF,MAAM,CAAU,IAAI,GAAG;QACrB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,EAAC,WAAW,EAAE,kBAAkB,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC;KACzE,CAAA;IAED,MAAM,CAAU,WAAW,GAAG;;;qCAGK,CAAA;IAEnC,MAAM,CAAU,QAAQ,GAAG;QACzB,kDAAkD;QAClD,yDAAyD;KAC1D,CAAA;IAED,MAAM,CAAU,OAAO,GAAG,sCAAsC,CAAA;IAEzD,KAAK,CAAC,GAAG;QACd,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAC3B,OAAO,EACP,WAAW,IAAI,CAAC,IAAI,CAAC,QAAQ,WAAW,EACxC,EAAC,MAAM,EAAE,KAAK,EAAC,CAChB,CAAA;QAED,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,MAAM,OAAO,GAAa;gBACxB,EAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAC;gBACvC,EAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAC;gBAC7C,EAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAC;gBACnC,EAAC,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,EAAC;aACtD,CAAA;YAED,IAAI,CAAC,GAAG,CAAC,oCAAoC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAA;YAC5D,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC,CAAA;YAClD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACd,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC"}
@@ -11,8 +11,8 @@ Shows the full template configuration including command string, parameter schema
11
11
  device targeting filters, and delivery settings. If the template has structured
12
12
  parameters (schema), they are displayed in a readable format.`;
13
13
  static examples = [
14
- '<%= config.bin %> commands get <template-id>',
15
- '<%= config.bin %> commands get <template-id> --json',
14
+ '<%= config.bin %> command get <template-id>',
15
+ '<%= config.bin %> command get <template-id> --json',
16
16
  ];
17
17
  static summary = 'Get command template details';
18
18
  async run() {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/commands/command/get.ts"],"names":[],"mappings":"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"}
@@ -7,9 +7,9 @@ export default class CommandsHistory extends BaseCommand {
7
7
  Shows commands that have been sent to a device, including delivery status and responses.
8
8
  Use this to check if commands were delivered and executed successfully.`;
9
9
  static examples = [
10
- '<%= config.bin %> commands history --device <device-id>',
11
- '<%= config.bin %> commands history --device <device-id> --limit 50',
12
- '<%= config.bin %> commands history --device <device-id> --json',
10
+ '<%= config.bin %> command history --device <device-id>',
11
+ '<%= config.bin %> command history --device <device-id> --limit 50',
12
+ '<%= config.bin %> command history --device <device-id> --json',
13
13
  ];
14
14
  static flags = {
15
15
  device: Flags.string({
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history.js","sourceRoot":"","sources":["../../../src/commands/command/history.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,aAAa,CAAA;AAEjC,OAAO,EAAC,WAAW,EAAC,MAAM,uBAAuB,CAAA;AACjD,OAAO,EAAc,WAAW,EAAC,MAAM,yBAAyB,CAAA;AAEhE,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,WAAmC;IAC9E,MAAM,CAAU,WAAW,GAAG;;;wEAGwC,CAAA;IAEtE,MAAM,CAAU,QAAQ,GAAG;QACzB,wDAAwD;QACxD,mEAAmE;QACnE,+DAA+D;KAChE,CAAA;IAED,MAAM,CAAU,KAAK,GAAG;QACtB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;YACnB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,kBAAkB;YAC/B,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;YACnB,IAAI,EAAE,GAAG;YACT,OAAO,EAAE,EAAE;YACX,WAAW,EAAE,sCAAsC;SACpD,CAAC;KACH,CAAA;IAED,MAAM,CAAU,OAAO,GAAG,uBAAuB,CAAA;IAE1C,KAAK,CAAC,GAAG;QACd,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAC3B,OAAO,EACP,gBAAgB,EAChB;YACE,IAAI,EAAE;gBACJ,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;gBAC3B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;aACxB;SACF,CACF,CAAA;QAED,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,MAAM,OAAO,GAAa;gBACxB,EAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAC;gBAC7C,EAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAC;gBACnC,EAAC,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAC;gBACnD,EAAC,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAC;gBACnD,EAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAC;aAC7C,CAAA;YAED,IAAI,CAAC,GAAG,CAAC,sBAAsB,IAAI,CAAC,GAAG,MAAM,CAAC,CAAA;YAC9C,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC,CAAA;YAClD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACd,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC"}
@@ -6,8 +6,8 @@ export default class CommandsList extends BaseCommand {
6
6
  Command templates define the commands that can be sent to devices. Each template
7
7
  specifies the command string, parameters, delivery settings, and device targeting.`;
8
8
  static examples = [
9
- '<%= config.bin %> commands list',
10
- '<%= config.bin %> commands list --json',
9
+ '<%= config.bin %> command list',
10
+ '<%= config.bin %> command list --json',
11
11
  ];
12
12
  static summary = 'List command templates';
13
13
  async run() {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/command/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,uBAAuB,CAAA;AACjD,OAAO,EAAc,WAAW,EAAC,MAAM,yBAAyB,CAAA;AAEhE,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,WAAgC;IACxE,MAAM,CAAU,WAAW,GAAG;;;mFAGmD,CAAA;IAEjF,MAAM,CAAU,QAAQ,GAAG;QACzB,gCAAgC;QAChC,uCAAuC;KACxC,CAAA;IAED,MAAM,CAAU,OAAO,GAAG,wBAAwB,CAAA;IAE3C,KAAK,CAAC,GAAG;QACd,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAC3B,OAAO,EACP,mBAAmB,EACnB,EAAC,MAAM,EAAE,KAAK,EAAC,CAChB,CAAA;QAED,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,CAAA;QAErE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,MAAM,OAAO,GAAa;gBACxB,EAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAC;gBACvC,EAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAC;gBAC7C,EAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAC;gBACnC,EAAC,GAAG,EAAE,kBAAkB,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAC;gBACpD,EAAC,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,EAAC;aACtD,CAAA;YAED,IAAI,CAAC,GAAG,CAAC,wBAAwB,IAAI,CAAC,GAAG,MAAM,CAAC,CAAA;YAChD,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAA;YACrC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACd,CAAC;QAED,OAAO,EAAC,KAAK,EAAC,CAAA;IAChB,CAAC"}