@signaliz/cli 1.0.0 → 1.0.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 (3) hide show
  1. package/README.md +354 -13
  2. package/dist/bin.js +6648 -64
  3. package/package.json +5 -4
package/README.md CHANGED
@@ -1,6 +1,15 @@
1
1
  # @signaliz/cli
2
2
 
3
- Command-line interface for Signaliz — deploy Ops, stream logs, manage API keys.
3
+ Command-line interface for Signaliz — build campaigns, install MCP, manage API keys.
4
+
5
+ Current CLI surfaces include GTM Kernel campaign planning/status commands,
6
+ provider routing for Nango-managed customer API destinations, MCP/Ops
7
+ observability, enrichment primitives, and live email verification at 0.02 fresh
8
+ enrichment credits when a new verification is needed.
9
+
10
+ Fresh enrichment throughput now allows Free 60/min, Builder 300/min, Team
11
+ 600/min, Agency 1,000/min, and Pay-As-You-Go 1,000/min, with a 5,000/hour
12
+ workspace safety cap.
4
13
 
5
14
  ## Install
6
15
 
@@ -8,22 +17,354 @@ Command-line interface for Signaliz — deploy Ops, stream logs, manage API keys
8
17
  npm install -g @signaliz/cli
9
18
  ```
10
19
 
11
- ## Configure
20
+ ## Quick Start
12
21
 
13
22
  ```bash
14
- export SIGNALIZ_API_KEY=sk_...
15
- export SIGNALIZ_WORKSPACE_ID=00000000-0000-0000-0000-000000000000
23
+ # 1. Authenticate
24
+ signaliz auth login
25
+
26
+ # 2. Check workspace/API health and discover GTM tools
27
+ signaliz health
28
+ signaliz discover --query "build a campaign with webhook delivery" --category ops
29
+
30
+ # 3. Plan and create a prompt-first Op
31
+ signaliz /plan "Build 100 verified VP Sales leads at B2B SaaS companies"
32
+ signaliz quickstart company_research
33
+ signaliz /goal "Build 100 verified VP Sales leads at B2B SaaS companies" --confirm-spend
34
+
35
+ # 4. Run, poll, and retrieve results
36
+ signaliz run <op_id>
37
+ signaliz status <op_id>
38
+ signaliz results <op_id> --limit 100 --json
39
+
40
+ # 5. Debug async execution and queue health
41
+ signaliz ops run-status <trigger_run_id>
42
+ signaliz queue --summary
43
+ signaliz debug <op_id>
44
+ signaliz watch <trigger_run_id>
45
+ signaliz tail <trigger_run_id>
46
+ signaliz doctor
47
+ signaliz readiness
48
+ signaliz dashboard summary
49
+ signaliz ops dashboard summary
16
50
  ```
17
51
 
18
- ## Usage
52
+ ## Authentication
19
53
 
20
54
  ```bash
21
- signaliz --help
22
- signaliz logs <run_id>
23
- signaliz deploy signaliz.yaml # plan
24
- signaliz deploy signaliz.yaml --apply # apply
25
- signaliz keys list
26
- signaliz keys create --name=ci --scopes=read:ops,write:ops --expires=90d
27
- signaliz keys rotate <key_id>
28
- signaliz keys revoke <key_id>
55
+ # Interactive login (saves to ~/.signaliz/config.json)
56
+ signaliz auth login
57
+
58
+ # Or set key directly
59
+ signaliz auth set-key sk_live_...
60
+
61
+ # Or use environment variable
62
+ export SIGNALIZ_API_KEY=sk_live_...
63
+
64
+ # Save the active workspace context for deploy/API-key/Ops maintenance commands
65
+ signaliz auth workspace set <workspace_id>
66
+ signaliz auth workspace show
67
+ signaliz auth workspace clear
68
+
69
+ # Check who you are
70
+ signaliz whoami
71
+
72
+ # Workspace + MCP platform health
73
+ signaliz health
74
+ signaliz health --json
75
+ ```
76
+
77
+ ## Discovery
78
+
79
+ ```bash
80
+ # List all MCP tools
81
+ signaliz tools
82
+ signaliz tools --json
83
+
84
+ # Filter by category
85
+ signaliz tools --category ops
86
+
87
+ # Find the right tool/capability by intent
88
+ signaliz discover --query "verify a batch of emails"
89
+ signaliz discover --query "create an output sink and attach it to a routine" --category ops
90
+ ```
91
+
92
+ Human discovery output includes safety metadata from the MCP registry: permission
93
+ level, destructive/idempotent/retryable hints, contract version, rate-limit key,
94
+ and required auth scopes. Use `--json` when agents need the full structured
95
+ metadata.
96
+
97
+ Quickstart/template output also shows primitive IDs and primitive graph policy
98
+ metadata when the backend returns it, so operators can inspect retry,
99
+ concurrency, and rate-limit behavior before running an Op.
100
+
101
+ ## Custom AI Enrichment - Multi Model
102
+
103
+ Run OpenRouter Fusion-backed enrichment with the exact OpenRouter model ID you want. Fusion includes web search/fetch by default during analysis; the CLI intentionally does not expose a separate web-search flag.
104
+
105
+ ```bash
106
+ signaliz ai multi-model \
107
+ --prompt "Research {{company_name}} and score ICP fit for enterprise sales." \
108
+ --model google/gemini-2.5-flash \
109
+ --input-json '{"company_name":"Stripe","company_domain":"stripe.com"}' \
110
+ --output-fields fit_score:number,reasoning:text \
111
+ --confirm-spend
112
+
113
+ signaliz ai multi-model \
114
+ --prompt "Review this PDF and extract buyer pains for {{company_name}}." \
115
+ --model google/gemini-2.5-flash \
116
+ --records-file accounts.json \
117
+ --attachment-fields pdf_url \
118
+ --output-fields pains:array,next_step:text \
119
+ --confirm-spend
29
120
  ```
121
+
122
+ ## Lead Generation And Email
123
+
124
+ ```bash
125
+ # Preview spend approval requirements. This returns APPROVAL_REQUIRED.
126
+ signaliz lead generate \
127
+ --prompt "VP Sales at B2B SaaS companies, 50-500 employees" \
128
+ --max-leads 100
129
+
130
+ # Launch after reviewing estimated credits
131
+ signaliz lead generate \
132
+ --prompt "VP Sales at B2B SaaS companies, 50-500 employees" \
133
+ --max-leads 100 \
134
+ --confirm-spend
135
+
136
+ # Local-business lead generation
137
+ signaliz lead local \
138
+ --prompt "dentists in Phoenix, AZ" \
139
+ --target-verified 50 \
140
+ --confirm-spend
141
+
142
+ # Poll async lead jobs
143
+ signaliz lead status <job_id>
144
+
145
+ # Verify or find emails
146
+ signaliz email verify jane@example.com
147
+ signaliz email verify-batch --emails jane@example.com,sam@example.com
148
+ signaliz email status <job_id>
149
+ signaliz email find --company-domain stripe.com --full-name "Jane Smith"
150
+ ```
151
+
152
+ ## Campaign Builder
153
+
154
+ ### Build a campaign
155
+
156
+ ```bash
157
+ # Minimal — just a prompt
158
+ signaliz campaign build --prompt "Find CTOs at fintech startups in NYC"
159
+
160
+ # Full options
161
+ signaliz campaign build \
162
+ --prompt "VP Engineering at Series B+ companies" \
163
+ --target-count 5000 \
164
+ --confirm-spend \
165
+ --outputs csv \
166
+ --industries "SaaS,Fintech" \
167
+ --geographies "US,UK" \
168
+ --wait \
169
+ --json
170
+
171
+ # With webhook delivery
172
+ signaliz campaign build \
173
+ --prompt "Sales Directors at healthcare companies" \
174
+ --target-count 200 \
175
+ --confirm-spend \
176
+ --webhook-url https://hooks.example.com/leads \
177
+ --hmac-secret-ref WEBHOOK_SECRET
178
+
179
+ # Validate and inspect the plan before launching spendful work
180
+ signaliz campaign build \
181
+ --prompt "CTOs at fintech startups in NYC" \
182
+ --target-count 10000 \
183
+ --dry-run \
184
+ --allow-downscale \
185
+ --json
186
+
187
+ # Approve a pending webhook delivery
188
+ signaliz campaign approve <campaign_build_id> \
189
+ --destination-type webhook \
190
+ --webhook-url https://hooks.example.com/leads
191
+
192
+ # From a JSON config file
193
+ signaliz campaign build --input-file campaign.json --wait
194
+ ```
195
+
196
+ ### Check status
197
+
198
+ ```bash
199
+ signaliz campaign status <campaign_build_id>
200
+ signaliz campaign status <campaign_build_id> --json
201
+ ```
202
+
203
+ ### Retrieve rows
204
+
205
+ ```bash
206
+ # First page (50 rows default)
207
+ signaliz campaign rows <campaign_build_id>
208
+
209
+ # Custom page size
210
+ signaliz campaign rows <campaign_build_id> --limit 200
211
+
212
+ # Paginate with cursor
213
+ signaliz campaign rows <campaign_build_id> --limit 100 --cursor <next_cursor>
214
+
215
+ # Dump all rows (caution: large datasets)
216
+ signaliz campaign rows <campaign_build_id> --all --json
217
+
218
+ # Filter by segment
219
+ signaliz campaign rows <campaign_build_id> --segment signal
220
+
221
+ # Filter by qualification or row status
222
+ signaliz campaign rows <campaign_build_id> --qualified
223
+ signaliz campaign rows <campaign_build_id> --row-status succeeded
224
+ ```
225
+
226
+ ### List artifacts
227
+
228
+ ```bash
229
+ signaliz campaign artifacts <campaign_build_id>
230
+ signaliz campaign artifacts <campaign_build_id> --json
231
+ ```
232
+
233
+ ### Cancel a build
234
+
235
+ ```bash
236
+ signaliz campaign cancel <campaign_build_id>
237
+ signaliz campaign cancel <campaign_build_id> --reason "Wrong ICP"
238
+ ```
239
+
240
+ ## MCP Server Installation
241
+
242
+ Install the Signaliz MCP server for your AI agent:
243
+
244
+ ```bash
245
+ # Claude Code
246
+ signaliz mcp install --agent claude-code
247
+
248
+ # OpenAI Codex
249
+ signaliz mcp install --agent codex
250
+
251
+ # Manus
252
+ signaliz mcp install --agent manus
253
+
254
+ # Generic (prints config JSON to stdout)
255
+ signaliz mcp install --agent generic
256
+ ```
257
+
258
+ Installed agents can call Signaliz MCP tools for GTM Kernel reads, Campaign
259
+ Builder execution, Nango-aware provider route activation, and the 100-record
260
+ email verification primitive.
261
+
262
+ ## Ops Execution And Observability
263
+
264
+ Prompt-first Ops stay simple for beginners, but the CLI exposes production
265
+ inspection paths for operators debugging asynchronous workflows.
266
+
267
+ ```bash
268
+ # Natural-language planning and creation
269
+ signaliz /plan "Monitor these accounts daily and alert Slack on funding signals"
270
+ signaliz /goal "Build 100 verified VP Sales leads at B2B SaaS companies" --confirm-spend
271
+ signaliz plan "Monitor these accounts daily and alert Slack on funding signals"
272
+ signaliz goal "Build 100 verified VP Sales leads at B2B SaaS companies" --confirm-spend
273
+ signaliz ops plan "Monitor these accounts daily and alert Slack on funding signals"
274
+ signaliz ops quickstart company_research
275
+ signaliz ops create "Build 100 verified VP Sales leads at B2B SaaS companies" --confirm-spend
276
+
277
+ # Execute and inspect Op-level results
278
+ signaliz ops run <op_id>
279
+ signaliz ops status <op_id>
280
+ signaliz ops results <op_id> --limit 100 --json
281
+ signaliz ops results <op_id> --include-failed-runs --json
282
+ signaliz run <op_id>
283
+ signaliz status <op_id>
284
+ signaliz results <op_id> --limit 100 --json
285
+
286
+ # Save repeatable local Ops command recipes
287
+ signaliz saved save daily-goal -- /goal "Build 100 verified VP Sales leads" --target-count 100
288
+ signaliz ops saved save daily-monitor -- plan "Monitor key accounts daily" --cadence daily --destinations slack,csv
289
+ signaliz saved list
290
+ signaliz saved run daily-monitor --json
291
+ signaliz saved delete daily-monitor
292
+
293
+ # Inspect Trigger.dev execution state
294
+ signaliz ops run-status <trigger_run_id>
295
+ signaliz ops run-status <trigger_run_id> --watch --interval-ms 5000 --max-polls 60
296
+ signaliz watch <trigger_run_id>
297
+ signaliz ops run-status --run-ids run_a,run_b --json
298
+
299
+ # Inspect async queue depth, provider pressure, and individual jobs
300
+ signaliz ops queue
301
+ signaliz ops queue --summary
302
+ signaliz queue --summary
303
+ signaliz ops queue --job-id <api_request_queue_id>
304
+ signaliz ops queue --idempotency-key <key>
305
+
306
+ # Stream live run logs
307
+ signaliz ops logs <trigger_run_id>
308
+ signaliz tail <trigger_run_id>
309
+ signaliz ops logs <trigger_run_id> --since <event_id> --filter error
310
+
311
+ # Replay a failed execution from a captured checkpoint
312
+ signaliz ops replay <execution_event_id>
313
+ signaliz replay <execution_event_id>
314
+
315
+ # Approve or reject pending Ops approval tokens
316
+ signaliz approve <approval_token_id> --decision approved
317
+ signaliz approve --token-ids token_a,token_b --decision rejected --notes "Needs review"
318
+
319
+ # Inspect and manually run routines
320
+ signaliz routines --status active
321
+ signaliz routine <routine_id>
322
+ signaliz routine <routine_id> run --force
323
+ signaliz routine <routine_id> ticks --limit 20
324
+ signaliz routine <routine_id> items --state failed --json
325
+
326
+ # Pull operator telemetry from the Ops dashboard API
327
+ signaliz ops dashboard summary
328
+ signaliz dashboard summary
329
+ signaliz ops dashboard functions --time-range-days 7 --json
330
+ signaliz ops dashboard recent --limit 25
331
+ signaliz ops dashboard timeseries --granularity hour --json
332
+ ```
333
+
334
+ ## Machine-Readable Output
335
+
336
+ All commands support `--json` for structured JSON output using the standard MCP response envelope:
337
+
338
+ ```bash
339
+ signaliz campaign build --prompt "..." --json
340
+ signaliz campaign build --prompt "..." --wait --json
341
+ signaliz campaign status <id> --json
342
+ signaliz campaign rows <id> --limit 100 --json
343
+ signaliz whoami --json
344
+ signaliz health --json
345
+ signaliz tools --json
346
+ signaliz discover --query "verify emails" --json
347
+ signaliz lead status <job_id> --json
348
+ signaliz email verify jane@example.com --json
349
+ signaliz queue --summary --json
350
+ signaliz ops run-status <trigger_run_id> --json
351
+ signaliz replay <execution_event_id> --json
352
+ signaliz ops dashboard summary --json
353
+ signaliz dashboard summary --json
354
+ ```
355
+
356
+ When `campaign build --wait --json` is used, the CLI emits one valid JSON
357
+ document with both `initial` and `final` states.
358
+
359
+ ## Environment Variables
360
+
361
+ | Variable | Description |
362
+ |---|---|
363
+ | `SIGNALIZ_API_KEY` | API key (overrides saved config) |
364
+ | `SIGNALIZ_API_URL` | Override base URL. Both `https://api.signaliz.com` and `https://api.signaliz.com/functions/v1` are accepted. |
365
+ | `SIGNALIZ_WORKSPACE_ID` | Workspace UUID for keys/deploy |
366
+
367
+ ## Config File
368
+
369
+ The CLI stores configuration in `~/.signaliz/config.json` (mode 0600). The file contains your API key and optional workspace context created by `signaliz auth workspace set`. `SIGNALIZ_API_KEY` and `SIGNALIZ_WORKSPACE_ID` override saved config values for one-off execution.
370
+ The CLI stores configuration in `~/.signaliz/config.json` (mode 0600). The file contains your API key, optional workspace settings, and local saved Ops command recipes created by `signaliz ops saved save`.