@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.
- package/README.md +152 -124
- package/dist/commands/{commands → command}/for-device.js +2 -2
- package/dist/commands/command/for-device.js.map +1 -0
- package/dist/commands/{commands → command}/get.js +2 -2
- package/dist/commands/command/get.js.map +1 -0
- package/dist/commands/{commands → command}/history.js +3 -3
- package/dist/commands/command/history.js.map +1 -0
- package/dist/commands/{commands → command}/list.js +2 -2
- package/dist/commands/command/list.js.map +1 -0
- package/dist/commands/{commands → command}/send.js +5 -5
- package/dist/commands/command/send.js.map +1 -0
- package/dist/commands/{devices → device}/config.js +2 -2
- package/dist/commands/device/config.js.map +1 -0
- package/dist/commands/{devices → device}/create.js +3 -3
- package/dist/commands/device/create.js.map +1 -0
- package/dist/commands/{devices → device}/delete.js +2 -2
- package/dist/commands/device/delete.js.map +1 -0
- package/dist/commands/{devices → device}/get.js +2 -2
- package/dist/commands/device/get.js.map +1 -0
- package/dist/commands/{devices → device}/last-seen.js +2 -2
- package/dist/commands/device/last-seen.js.map +1 -0
- package/dist/commands/{devices → device}/list.js +5 -5
- package/dist/commands/device/list.js.map +1 -0
- package/dist/commands/{devices → device}/rename.js +2 -2
- package/dist/commands/device/rename.js.map +1 -0
- package/dist/commands/{devices → device}/streams.d.ts +3 -0
- package/dist/commands/device/streams.js +100 -0
- package/dist/commands/device/streams.js.map +1 -0
- package/dist/commands/{devices → device}/tag.js +3 -3
- package/dist/commands/device/tag.js.map +1 -0
- package/dist/commands/{devices → device}/untag.js +3 -3
- package/dist/commands/device/untag.js.map +1 -0
- package/dist/commands/{events → event}/get.js +2 -2
- package/dist/commands/event/get.js.map +1 -0
- package/dist/commands/{events → event}/list.js +4 -4
- package/dist/commands/event/list.js.map +1 -0
- package/dist/commands/{event-triggers → event-trigger}/get.js +2 -2
- package/dist/commands/event-trigger/get.js.map +1 -0
- package/dist/commands/{event-triggers → event-trigger}/list.js +2 -2
- package/dist/commands/event-trigger/list.js.map +1 -0
- package/dist/commands/{fleets → fleet}/get.js +2 -2
- package/dist/commands/fleet/get.js.map +1 -0
- package/dist/commands/{fleets → fleet}/list.js +2 -2
- package/dist/commands/fleet/list.js.map +1 -0
- package/dist/commands/{investigations → investigation}/analytics.js +3 -3
- package/dist/commands/investigation/analytics.js.map +1 -0
- package/dist/commands/{investigations → investigation}/get.js +2 -2
- package/dist/commands/investigation/get.js.map +1 -0
- package/dist/commands/{investigations → investigation}/list.js +3 -3
- package/dist/commands/investigation/list.js.map +1 -0
- package/dist/commands/{investigations → investigation}/run.js +3 -3
- package/dist/commands/investigation/run.js.map +1 -0
- package/dist/commands/{investigations → investigation}/runs-list.js +3 -3
- package/dist/commands/investigation/runs-list.js.map +1 -0
- package/dist/commands/{investigations → investigation}/runs.js +2 -2
- package/dist/commands/investigation/runs.js.map +1 -0
- package/dist/commands/{investigations → investigation}/stats.js +2 -2
- package/dist/commands/investigation/stats.js.map +1 -0
- package/dist/commands/{investigations → investigation}/trigger.js +2 -2
- package/dist/commands/investigation/trigger.js.map +1 -0
- package/dist/commands/persona/delegate-task.d.ts +14 -0
- package/dist/commands/persona/delegate-task.js +50 -0
- package/dist/commands/persona/delegate-task.js.map +1 -0
- package/dist/commands/persona/get.d.ts +10 -0
- package/dist/commands/persona/get.js +98 -0
- package/dist/commands/persona/get.js.map +1 -0
- package/dist/commands/{signals → persona}/list.d.ts +1 -1
- package/dist/commands/persona/list.js +31 -0
- package/dist/commands/persona/list.js.map +1 -0
- package/dist/commands/persona/task-status.d.ts +12 -0
- package/dist/commands/persona/task-status.js +57 -0
- package/dist/commands/persona/task-status.js.map +1 -0
- package/dist/commands/query/latest-values.d.ts +1 -0
- package/dist/commands/query/latest-values.js +41 -15
- package/dist/commands/query/latest-values.js.map +1 -1
- package/dist/commands/{schedules → schedule}/get.js +2 -2
- package/dist/commands/schedule/get.js.map +1 -0
- package/dist/commands/{schedules → schedule}/list.js +2 -2
- package/dist/commands/schedule/list.js.map +1 -0
- package/dist/commands/{signals → signal}/count.js +3 -3
- package/dist/commands/signal/count.js.map +1 -0
- package/dist/commands/signal/create.d.ts +16 -0
- package/dist/commands/signal/create.js +95 -0
- package/dist/commands/signal/create.js.map +1 -0
- package/dist/commands/{signals → signal}/get.js +3 -3
- package/dist/commands/signal/get.js.map +1 -0
- package/dist/commands/signal/list.d.ts +12 -0
- package/dist/commands/signal/list.js +85 -0
- package/dist/commands/signal/list.js.map +1 -0
- package/dist/commands/{signals → signal}/query.d.ts +1 -0
- package/dist/commands/signal/query.js +100 -0
- package/dist/commands/signal/query.js.map +1 -0
- package/dist/commands/signal/set-ground-truth.d.ts +12 -0
- package/dist/commands/signal/set-ground-truth.js +46 -0
- package/dist/commands/signal/set-ground-truth.js.map +1 -0
- package/dist/commands/{users → user}/get.js +2 -2
- package/dist/commands/user/get.js.map +1 -0
- package/dist/commands/{users → user}/list.js +2 -2
- package/dist/commands/user/list.js.map +1 -0
- package/dist/help.js +53 -47
- package/dist/help.js.map +1 -1
- package/dist/lib/api.d.ts +1 -1
- package/dist/lib/api.js +3 -0
- package/dist/lib/api.js.map +1 -1
- package/dist/lib/config.d.ts +1 -0
- package/dist/lib/config.js +3 -0
- package/dist/lib/config.js.map +1 -1
- package/oclif.manifest.json +1288 -834
- package/package.json +28 -25
- package/dist/commands/commands/for-device.js.map +0 -1
- package/dist/commands/commands/get.js.map +0 -1
- package/dist/commands/commands/history.js.map +0 -1
- package/dist/commands/commands/list.js.map +0 -1
- package/dist/commands/commands/send.js.map +0 -1
- package/dist/commands/devices/config.js.map +0 -1
- package/dist/commands/devices/create.js.map +0 -1
- package/dist/commands/devices/delete.js.map +0 -1
- package/dist/commands/devices/get.js.map +0 -1
- package/dist/commands/devices/last-seen.js.map +0 -1
- package/dist/commands/devices/list.js.map +0 -1
- package/dist/commands/devices/rename.js.map +0 -1
- package/dist/commands/devices/streams.js +0 -56
- package/dist/commands/devices/streams.js.map +0 -1
- package/dist/commands/devices/tag.js.map +0 -1
- package/dist/commands/devices/untag.js.map +0 -1
- package/dist/commands/event-triggers/get.js.map +0 -1
- package/dist/commands/event-triggers/list.js.map +0 -1
- package/dist/commands/events/get.js.map +0 -1
- package/dist/commands/events/list.js.map +0 -1
- package/dist/commands/fleets/get.js.map +0 -1
- package/dist/commands/fleets/list.js.map +0 -1
- package/dist/commands/investigations/analytics.js.map +0 -1
- package/dist/commands/investigations/get.js.map +0 -1
- package/dist/commands/investigations/list.js.map +0 -1
- package/dist/commands/investigations/run.js.map +0 -1
- package/dist/commands/investigations/runs-list.js.map +0 -1
- package/dist/commands/investigations/runs.js.map +0 -1
- package/dist/commands/investigations/stats.js.map +0 -1
- package/dist/commands/investigations/trigger.js.map +0 -1
- package/dist/commands/schedules/get.js.map +0 -1
- package/dist/commands/schedules/list.js.map +0 -1
- package/dist/commands/signals/count.js.map +0 -1
- package/dist/commands/signals/get.js.map +0 -1
- package/dist/commands/signals/list.js +0 -30
- package/dist/commands/signals/list.js.map +0 -1
- package/dist/commands/signals/query.js +0 -52
- package/dist/commands/signals/query.js.map +0 -1
- package/dist/commands/users/get.js.map +0 -1
- package/dist/commands/users/list.js.map +0 -1
- /package/dist/commands/{commands → command}/for-device.d.ts +0 -0
- /package/dist/commands/{commands → command}/get.d.ts +0 -0
- /package/dist/commands/{commands → command}/history.d.ts +0 -0
- /package/dist/commands/{commands → command}/list.d.ts +0 -0
- /package/dist/commands/{commands → command}/send.d.ts +0 -0
- /package/dist/commands/{devices → device}/config.d.ts +0 -0
- /package/dist/commands/{devices → device}/create.d.ts +0 -0
- /package/dist/commands/{devices → device}/delete.d.ts +0 -0
- /package/dist/commands/{devices → device}/get.d.ts +0 -0
- /package/dist/commands/{devices → device}/last-seen.d.ts +0 -0
- /package/dist/commands/{devices → device}/list.d.ts +0 -0
- /package/dist/commands/{devices → device}/rename.d.ts +0 -0
- /package/dist/commands/{devices → device}/tag.d.ts +0 -0
- /package/dist/commands/{devices → device}/untag.d.ts +0 -0
- /package/dist/commands/{events → event}/get.d.ts +0 -0
- /package/dist/commands/{events → event}/list.d.ts +0 -0
- /package/dist/commands/{event-triggers → event-trigger}/get.d.ts +0 -0
- /package/dist/commands/{event-triggers → event-trigger}/list.d.ts +0 -0
- /package/dist/commands/{fleets → fleet}/get.d.ts +0 -0
- /package/dist/commands/{fleets → fleet}/list.d.ts +0 -0
- /package/dist/commands/{investigations → investigation}/analytics.d.ts +0 -0
- /package/dist/commands/{investigations → investigation}/get.d.ts +0 -0
- /package/dist/commands/{investigations → investigation}/list.d.ts +0 -0
- /package/dist/commands/{investigations → investigation}/run.d.ts +0 -0
- /package/dist/commands/{investigations → investigation}/runs-list.d.ts +0 -0
- /package/dist/commands/{investigations → investigation}/runs.d.ts +0 -0
- /package/dist/commands/{investigations → investigation}/stats.d.ts +0 -0
- /package/dist/commands/{investigations → investigation}/trigger.d.ts +0 -0
- /package/dist/commands/{schedules → schedule}/get.d.ts +0 -0
- /package/dist/commands/{schedules → schedule}/list.d.ts +0 -0
- /package/dist/commands/{signals → signal}/count.d.ts +0 -0
- /package/dist/commands/{signals → signal}/get.d.ts +0 -0
- /package/dist/commands/{users → user}/get.d.ts +0 -0
- /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
|
-
██╔════╝██╔════╝██║ ██║
|
|
6
|
-
█████╗ ██║ ██║ ██║
|
|
7
|
-
██╔══╝ ██║ ██║ ██║
|
|
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
|
-
###
|
|
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
|
-
###
|
|
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
|
-
###
|
|
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
|
-
###
|
|
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
|
-
###
|
|
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
|
|
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
|
-
###
|
|
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
|
|
66
|
-
- Understand what triggered each investigation
|
|
75
|
+
- Trace the workflow: Signal -> Investigation -> Run -> Result
|
|
67
76
|
|
|
68
|
-
###
|
|
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
|
-
###
|
|
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
|
-
###
|
|
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
|
-
###
|
|
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
|
-
###
|
|
99
|
+
### Scheduled Tasks
|
|
91
100
|
- View scheduled investigations and commands
|
|
92
101
|
- Understand recurring workflows and automation
|
|
93
102
|
|
|
94
|
-
###
|
|
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
|
-
###
|
|
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**
|
|
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
|
|
175
|
+
fcli device list --dev
|
|
167
176
|
|
|
168
177
|
# Get device details
|
|
169
|
-
fcli
|
|
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
|
|
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
|
|
193
|
+
fcli investigation list --dev
|
|
180
194
|
|
|
181
195
|
# Send a command to a robot
|
|
182
|
-
fcli
|
|
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
|
-
###
|
|
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
|
|
204
|
-
fcli
|
|
205
|
-
fcli
|
|
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
|
|
209
|
-
fcli
|
|
210
|
-
fcli
|
|
211
|
-
fcli
|
|
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
|
|
215
|
-
fcli
|
|
216
|
-
fcli
|
|
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
|
|
220
|
-
fcli
|
|
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
|
-
###
|
|
237
|
+
### Event
|
|
224
238
|
|
|
225
239
|
View and filter important events emitted by your devices.
|
|
226
240
|
|
|
227
241
|
```bash
|
|
228
|
-
fcli
|
|
229
|
-
fcli
|
|
230
|
-
fcli
|
|
231
|
-
fcli
|
|
232
|
-
fcli
|
|
233
|
-
fcli
|
|
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
|
|
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
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
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
|
-
|
|
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
|
-
###
|
|
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
|
|
331
|
-
fcli
|
|
334
|
+
fcli investigation list # List all investigations
|
|
335
|
+
fcli investigation get <investigation-id> # Get investigation details
|
|
332
336
|
|
|
333
337
|
# Triggering
|
|
334
|
-
fcli
|
|
338
|
+
fcli investigation trigger <id> --input "Robot stopped responding"
|
|
335
339
|
|
|
336
340
|
# Runs
|
|
337
|
-
fcli
|
|
338
|
-
fcli
|
|
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
|
|
343
|
-
fcli
|
|
345
|
+
fcli investigation stats --start 2026-01-01 # Get metrics
|
|
346
|
+
fcli investigation analytics <investigation-id> # Get investigation analytics
|
|
344
347
|
```
|
|
345
348
|
|
|
346
|
-
###
|
|
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
|
-
|
|
352
|
-
fcli
|
|
353
|
-
fcli
|
|
354
|
-
fcli
|
|
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
|
-
###
|
|
372
|
+
### Command
|
|
358
373
|
|
|
359
374
|
Send remote commands to devices and view execution history.
|
|
360
375
|
|
|
361
376
|
```bash
|
|
362
|
-
fcli
|
|
363
|
-
fcli
|
|
364
|
-
fcli
|
|
365
|
-
fcli
|
|
366
|
-
fcli
|
|
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
|
|
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-
|
|
375
|
-
fcli event-
|
|
389
|
+
fcli event-trigger list # List all trigger rules
|
|
390
|
+
fcli event-trigger get <trigger-id> # Get trigger configuration
|
|
376
391
|
```
|
|
377
392
|
|
|
378
|
-
###
|
|
393
|
+
### User
|
|
379
394
|
|
|
380
395
|
Manage users in your organization.
|
|
381
396
|
|
|
382
397
|
```bash
|
|
383
|
-
fcli
|
|
384
|
-
fcli
|
|
398
|
+
fcli user list # List all users
|
|
399
|
+
fcli user get <user-id> # Get user details
|
|
385
400
|
```
|
|
386
401
|
|
|
387
|
-
###
|
|
402
|
+
### Fleet
|
|
388
403
|
|
|
389
404
|
Organize devices into logical groups (by location, type, project, customer).
|
|
390
405
|
|
|
391
406
|
```bash
|
|
392
|
-
fcli
|
|
393
|
-
fcli
|
|
407
|
+
fcli fleet list # List all fleets
|
|
408
|
+
fcli fleet get <fleet-id> # Get fleet details
|
|
394
409
|
```
|
|
395
410
|
|
|
396
|
-
###
|
|
411
|
+
### Schedule
|
|
397
412
|
|
|
398
413
|
View recurring tasks and one-time scheduled jobs.
|
|
399
414
|
|
|
400
415
|
```bash
|
|
401
|
-
fcli
|
|
402
|
-
fcli
|
|
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
|
|
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
|
|
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
|
|
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
|
|
500
|
+
fcli device list --json | jq '.items[] | select(.online==false) | .name'
|
|
486
501
|
|
|
487
502
|
# View recent critical events across the fleet
|
|
488
|
-
fcli
|
|
503
|
+
fcli event list --severity critical --limit 50
|
|
489
504
|
|
|
490
505
|
# Check battery levels
|
|
491
|
-
for device in $(fcli
|
|
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
|
|
529
|
+
fcli event list --device <device-id> --limit 20
|
|
502
530
|
|
|
503
|
-
# 2.
|
|
504
|
-
fcli
|
|
531
|
+
# 2. Trigger an investigation
|
|
532
|
+
fcli investigation trigger <investigation-id> --input "Device stopped responding"
|
|
505
533
|
|
|
506
|
-
# 3.
|
|
507
|
-
fcli
|
|
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
|
|
519
|
-
fcli
|
|
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
|
|
524
|
-
fcli
|
|
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
|
|
560
|
+
fcli event list --severity critical --limit 1000 --json > critical_events.json
|
|
533
561
|
|
|
534
562
|
# Export device list with tags
|
|
535
|
-
fcli
|
|
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 --
|
|
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
|
|
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 %>
|
|
14
|
-
'<%= config.bin %>
|
|
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 %>
|
|
15
|
-
'<%= config.bin %>
|
|
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 %>
|
|
11
|
-
'<%= config.bin %>
|
|
12
|
-
'<%= config.bin %>
|
|
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 %>
|
|
10
|
-
'<%= config.bin %>
|
|
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"}
|