@signaliz/cli 1.0.45 → 1.0.46
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 +6 -13
- package/dist/bin.js +22 -13
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -24,17 +24,12 @@ signaliz verify-email jane@example.com --dry-run --json
|
|
|
24
24
|
signaliz verify-email jane@example.com --skip-cache --no-wait --json
|
|
25
25
|
signaliz verify-email --verification-run-id run_... --json
|
|
26
26
|
signaliz company-signals --domain example.com --research-prompt "expansion priorities"
|
|
27
|
-
# Resume a queued run in a later agent/process without duplicate spend
|
|
28
|
-
signaliz company-signals --signal-run-id run_...
|
|
29
27
|
signaliz signal-to-copy \
|
|
30
28
|
--company-domain example.com \
|
|
31
29
|
--person-name "Jane Doe" \
|
|
32
30
|
--title "VP Sales" \
|
|
33
31
|
--campaign-offer "pipeline intelligence"
|
|
34
32
|
|
|
35
|
-
# Resume a queued copy request with the returned ID only
|
|
36
|
-
signaliz signal-to-copy --signal-run-id copy_... --json
|
|
37
|
-
|
|
38
33
|
# Force fresh signals or opt into slower deep research only when needed
|
|
39
34
|
signaliz signal-to-copy --company-domain example.com --person-name "Jane Doe" \
|
|
40
35
|
--title "VP Sales" --campaign-offer "pipeline intelligence" --skip-cache --deep-search
|
|
@@ -73,7 +68,7 @@ Failed result lines preserve `errorCode`, `retryEligible`, and
|
|
|
73
68
|
`retryAfterSeconds` when the API supplies recovery guidance.
|
|
74
69
|
|
|
75
70
|
If a single request or batch submission response is lost, rerun the same
|
|
76
|
-
command with `--idempotency-key <key>` to recover the original request or job
|
|
71
|
+
command with `--idempotency-key <key>` to recover the original request or supported email job
|
|
77
72
|
without duplicate work. Add `--dry-run` to any product command, including one
|
|
78
73
|
using `--input`, to receive a conservative credit ceiling without provider
|
|
79
74
|
calls, jobs, writes, or spend.
|
|
@@ -82,13 +77,11 @@ Batch input is capped at 5,000 records, concurrency is bounded to `1-50`, input
|
|
|
82
77
|
order is preserved, and a failed item does not abort successful items.
|
|
83
78
|
Exact duplicate tasks are single-flighted across the full input before
|
|
84
79
|
transport. Find Email and Verify Email inputs larger than 25 use one cache-aware
|
|
85
|
-
recoverable REST job with 500-row result pages.
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
deep-search requests keep the 25-row path. Signal to Copy also shares company
|
|
91
|
-
research across recipients.
|
|
80
|
+
recoverable REST job with 500-row result pages. Company Signal Enrichment and
|
|
81
|
+
Signal to Copy inputs larger than 25 are chunked client-side into synchronous
|
|
82
|
+
requests of at most 25; the CLI waits for every chunk and emits only complete
|
|
83
|
+
results or terminal per-row errors. Signal to Copy also shares company research
|
|
84
|
+
across recipients.
|
|
92
85
|
|
|
93
86
|
Connection commands are limited to access infrastructure:
|
|
94
87
|
|
package/dist/bin.js
CHANGED
|
@@ -14,12 +14,12 @@ var HELP = `Signaliz CLI
|
|
|
14
14
|
Four product commands:
|
|
15
15
|
signaliz find-email --company-domain example.com --full-name "Jane Doe" [--skip-cache]
|
|
16
16
|
signaliz verify-email [jane@example.com] [--verification-run-id run_...] [--no-wait] [--max-wait-ms 600000]
|
|
17
|
-
signaliz company-signals --domain example.com [--research-prompt "..."] [--no-summary] [--max-wait-ms
|
|
18
|
-
signaliz company-signals --signal-run-id run_...
|
|
17
|
+
signaliz company-signals --domain example.com [--research-prompt "..."] [--search-mode fast|balanced|coverage] [--no-summary] [--max-wait-ms 120000]
|
|
18
|
+
signaliz company-signals --signal-run-id run_... Read a completed run without duplicate spend
|
|
19
19
|
signaliz signal-to-copy --company-domain example.com --person-name "Jane Doe" \\
|
|
20
20
|
--title "VP Sales" --campaign-offer "pipeline intelligence" [--signal-run-id run_...] \\
|
|
21
|
-
[--skip-cache] [--deep-search] [--max-wait-ms
|
|
22
|
-
signaliz signal-to-copy --signal-run-id copy_...
|
|
21
|
+
[--skip-cache] [--deep-search] [--max-wait-ms 120000]
|
|
22
|
+
signaliz signal-to-copy --signal-run-id copy_... Reuse a completed signal run
|
|
23
23
|
|
|
24
24
|
Access and connection:
|
|
25
25
|
signaliz auth login
|
|
@@ -41,6 +41,8 @@ Common flags:
|
|
|
41
41
|
--concurrency <1-50> Simultaneous API requests for batch input (default: 10)
|
|
42
42
|
--idempotency-key <key> Reuse after an ambiguous response to recover the same request or job
|
|
43
43
|
--dry-run Return a no-spend plan without provider calls, jobs, or writes
|
|
44
|
+
|
|
45
|
+
Company Signals and Signal to Copy always wait for complete results or terminal errors.
|
|
44
46
|
`;
|
|
45
47
|
function loadConfig() {
|
|
46
48
|
if (!(0, import_node_fs.existsSync)(CONFIG_FILE)) return {};
|
|
@@ -85,6 +87,11 @@ function csvFlag(name) {
|
|
|
85
87
|
const value = flag(name);
|
|
86
88
|
return value?.split(",").map((item) => item.trim()).filter(Boolean);
|
|
87
89
|
}
|
|
90
|
+
function companySignalSearchMode(value) {
|
|
91
|
+
if (value === void 0 || value === null || value === "") return void 0;
|
|
92
|
+
if (value === "fast" || value === "balanced" || value === "coverage") return value;
|
|
93
|
+
fail("--search-mode must be fast, balanced, or coverage");
|
|
94
|
+
}
|
|
88
95
|
function readBatchInput() {
|
|
89
96
|
const path = flag("input");
|
|
90
97
|
if (!path) return null;
|
|
@@ -122,6 +129,11 @@ function batchOptions() {
|
|
|
122
129
|
compactDuplicates: !hasFlag("expand-duplicates")
|
|
123
130
|
};
|
|
124
131
|
}
|
|
132
|
+
function rejectAsyncSignalFlags() {
|
|
133
|
+
if (hasFlag("no-wait") || hasFlag("poll-interval-ms")) {
|
|
134
|
+
fail("Company Signals and Signal to Copy are always synchronous; --no-wait and --poll-interval-ms are not supported.");
|
|
135
|
+
}
|
|
136
|
+
}
|
|
125
137
|
function batchOutput(value) {
|
|
126
138
|
if (hasFlag("jsonl")) {
|
|
127
139
|
for (const result of value.results) {
|
|
@@ -358,6 +370,7 @@ Catch-all: ${result.isCatchAll}
|
|
|
358
370
|
});
|
|
359
371
|
}
|
|
360
372
|
async function companySignals() {
|
|
373
|
+
rejectAsyncSignalFlags();
|
|
361
374
|
const rows = readBatchInput();
|
|
362
375
|
if (rows) {
|
|
363
376
|
const requests = rows.map((value) => {
|
|
@@ -373,13 +386,12 @@ async function companySignals() {
|
|
|
373
386
|
lookbackDays: row.lookbackDays || row.lookback_days || numberFlag("lookback-days"),
|
|
374
387
|
online,
|
|
375
388
|
enableDeepSearch: row.enableDeepSearch ?? row.enable_deep_search ?? (online && !hasFlag("shallow")),
|
|
389
|
+
searchMode: companySignalSearchMode(row.searchMode ?? row.search_mode ?? flag("search-mode")),
|
|
376
390
|
includeSummary: row.includeSummary ?? row.include_summary ?? !hasFlag("no-summary"),
|
|
377
391
|
enableOutreachIntelligence: row.enableOutreachIntelligence ?? row.enable_outreach_intelligence,
|
|
378
392
|
enablePredictiveIntelligence: row.enablePredictiveIntelligence ?? row.enable_predictive_intelligence,
|
|
379
393
|
skipCache: row.skipCache ?? row.skip_cache ?? hasFlag("skip-cache"),
|
|
380
|
-
|
|
381
|
-
maxWaitMs: row.maxWaitMs || row.max_wait_ms || numberFlag("max-wait-ms"),
|
|
382
|
-
pollIntervalMs: row.pollIntervalMs || row.poll_interval_ms || numberFlag("poll-interval-ms")
|
|
394
|
+
maxWaitMs: row.maxWaitMs || row.max_wait_ms || numberFlag("max-wait-ms")
|
|
383
395
|
};
|
|
384
396
|
});
|
|
385
397
|
if (hasFlag("dry-run")) {
|
|
@@ -405,13 +417,12 @@ async function companySignals() {
|
|
|
405
417
|
lookbackDays: numberFlag("lookback-days"),
|
|
406
418
|
online: !hasFlag("offline"),
|
|
407
419
|
enableDeepSearch: !hasFlag("offline") && !hasFlag("shallow"),
|
|
420
|
+
searchMode: companySignalSearchMode(flag("search-mode")),
|
|
408
421
|
includeSummary: !hasFlag("no-summary"),
|
|
409
422
|
enableOutreachIntelligence: hasFlag("outreach-intelligence") || void 0,
|
|
410
423
|
enablePredictiveIntelligence: hasFlag("predictive-intelligence") || void 0,
|
|
411
424
|
skipCache: hasFlag("skip-cache"),
|
|
412
|
-
waitForResult: !hasFlag("no-wait"),
|
|
413
425
|
maxWaitMs: numberFlag("max-wait-ms"),
|
|
414
|
-
pollIntervalMs: numberFlag("poll-interval-ms"),
|
|
415
426
|
idempotencyKey: flag("idempotency-key")
|
|
416
427
|
};
|
|
417
428
|
if (hasFlag("dry-run")) {
|
|
@@ -431,6 +442,7 @@ Signals: ${result.signalCount}
|
|
|
431
442
|
});
|
|
432
443
|
}
|
|
433
444
|
async function signalToCopy() {
|
|
445
|
+
rejectAsyncSignalFlags();
|
|
434
446
|
const rows = readBatchInput();
|
|
435
447
|
if (rows) {
|
|
436
448
|
const requests = rows.map((value) => {
|
|
@@ -444,9 +456,7 @@ async function signalToCopy() {
|
|
|
444
456
|
signalRunId: row.signalRunId || row.signal_run_id,
|
|
445
457
|
skipCache: row.skipCache ?? row.skip_cache ?? hasFlag("skip-cache"),
|
|
446
458
|
enableDeepSearch: row.enableDeepSearch ?? row.enable_deep_search ?? hasFlag("deep-search"),
|
|
447
|
-
|
|
448
|
-
maxWaitMs: row.maxWaitMs || row.max_wait_ms || numberFlag("max-wait-ms"),
|
|
449
|
-
pollIntervalMs: row.pollIntervalMs || row.poll_interval_ms || numberFlag("poll-interval-ms")
|
|
459
|
+
maxWaitMs: row.maxWaitMs || row.max_wait_ms || numberFlag("max-wait-ms")
|
|
450
460
|
};
|
|
451
461
|
});
|
|
452
462
|
if (hasFlag("dry-run")) {
|
|
@@ -476,7 +486,6 @@ async function signalToCopy() {
|
|
|
476
486
|
skipCache: hasFlag("skip-cache"),
|
|
477
487
|
enableDeepSearch: hasFlag("deep-search"),
|
|
478
488
|
maxWaitMs: numberFlag("max-wait-ms"),
|
|
479
|
-
pollIntervalMs: numberFlag("poll-interval-ms"),
|
|
480
489
|
idempotencyKey: flag("idempotency-key")
|
|
481
490
|
};
|
|
482
491
|
if (hasFlag("dry-run")) {
|