@signaliz/cli 1.0.34 → 1.0.37

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 +10 -5
  2. package/dist/bin.js +23 -2
  3. package/package.json +2 -2
package/README.md CHANGED
@@ -43,15 +43,20 @@ signaliz company-signals --input companies.jsonl --concurrency 5 --json
43
43
  signaliz signal-to-copy --input copy-requests.jsonl --concurrency 5 --json
44
44
  ```
45
45
 
46
+ If a batch submission response is lost, rerun the same command with
47
+ `--idempotency-key <key>` to recover the original job without duplicate work.
48
+
46
49
  Batch input is capped at 5,000 records, concurrency is bounded to `1-50`, input
47
50
  order is preserved, and a failed item does not abort successful items.
48
51
  Exact duplicate tasks are single-flighted across the full input before
49
52
  transport. Find Email and Verify Email inputs larger than 25 use one cache-aware
50
- recoverable REST job with 500-row result pages; Company Signal Enrichment uses
51
- 25-row REST chunks. Signal to Copy inputs larger than 25 use one recoverable
52
- REST job when they can reuse available signal data; fresh or deep-search
53
- requests keep the 25-row path. Signal to Copy also shares company research
54
- across recipients.
53
+ recoverable REST job with 500-row result pages. Uniform Company Signal
54
+ Enrichment inputs larger than 25 use one cache-aware recoverable REST job with
55
+ 25-row result pages; heterogeneous, no-wait, and per-run recovery inputs keep
56
+ the 25-row request path. Signal to Copy inputs larger than 25 use one
57
+ recoverable REST job when they can reuse available signal data; fresh or
58
+ deep-search requests keep the 25-row path. Signal to Copy also shares company
59
+ research across recipients.
55
60
 
56
61
  Connection commands are limited to access infrastructure:
57
62
 
package/dist/bin.js CHANGED
@@ -14,7 +14,7 @@ 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
17
- signaliz company-signals --domain example.com [--research-prompt "..."] [--max-wait-ms 1200000]
17
+ signaliz company-signals --domain example.com [--research-prompt "..."] [--no-summary] [--max-wait-ms 1200000]
18
18
  signaliz company-signals --signal-run-id run_... Resume 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_...] \\
@@ -34,6 +34,7 @@ Common flags:
34
34
  --base-url <url>
35
35
  --input <json-or-jsonl-file> Batch up to 5,000 records with any product command
36
36
  --concurrency <1-50> Simultaneous API requests for batch input (default: 10)
37
+ --idempotency-key <key> Reuse after an ambiguous batch submission to recover the same job
37
38
  `;
38
39
  function loadConfig() {
39
40
  if (!(0, import_node_fs.existsSync)(CONFIG_FILE)) return {};
@@ -108,7 +109,10 @@ function record(value) {
108
109
  return value && typeof value === "object" && !Array.isArray(value) ? value : {};
109
110
  }
110
111
  function batchOptions() {
111
- return { concurrency: numberFlag("concurrency") };
112
+ return {
113
+ concurrency: numberFlag("concurrency"),
114
+ idempotencyKey: flag("idempotency-key")
115
+ };
112
116
  }
113
117
  function batchOutput(value) {
114
118
  output(value, () => {
@@ -290,6 +294,7 @@ async function companySignals() {
290
294
  lookbackDays: row.lookbackDays || row.lookback_days || numberFlag("lookback-days"),
291
295
  online,
292
296
  enableDeepSearch: row.enableDeepSearch ?? row.enable_deep_search ?? (online && !hasFlag("shallow")),
297
+ includeSummary: row.includeSummary ?? row.include_summary ?? !hasFlag("no-summary"),
293
298
  enableOutreachIntelligence: row.enableOutreachIntelligence ?? row.enable_outreach_intelligence,
294
299
  enablePredictiveIntelligence: row.enablePredictiveIntelligence ?? row.enable_predictive_intelligence,
295
300
  skipCache: row.skipCache ?? row.skip_cache ?? hasFlag("skip-cache"),
@@ -315,6 +320,7 @@ async function companySignals() {
315
320
  lookbackDays: numberFlag("lookback-days"),
316
321
  online: !hasFlag("offline"),
317
322
  enableDeepSearch: !hasFlag("offline") && !hasFlag("shallow"),
323
+ includeSummary: !hasFlag("no-summary"),
318
324
  enableOutreachIntelligence: hasFlag("outreach-intelligence") || void 0,
319
325
  enablePredictiveIntelligence: hasFlag("predictive-intelligence") || void 0,
320
326
  skipCache: hasFlag("skip-cache"),
@@ -457,5 +463,20 @@ Run: signaliz --help`);
457
463
  }
458
464
  main().catch((error) => {
459
465
  const message = error instanceof Error ? error.message : String(error);
466
+ if (hasFlag("json")) {
467
+ const signalizError = error instanceof import_sdk.SignalizError ? error : null;
468
+ process.stdout.write(`${JSON.stringify({
469
+ success: false,
470
+ error: "product_request_failed",
471
+ error_code: signalizError?.code || "CLI_ERROR",
472
+ message,
473
+ retry_eligible: signalizError?.isRetryable ?? false,
474
+ ...signalizError?.errorType ? { error_type: signalizError.errorType } : {},
475
+ ...signalizError?.details ? { details: signalizError.details } : {}
476
+ }, null, 2)}
477
+ `);
478
+ process.exitCode = 1;
479
+ return;
480
+ }
460
481
  fail(message);
461
482
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@signaliz/cli",
3
- "version": "1.0.34",
3
+ "version": "1.0.37",
4
4
  "description": "Signaliz CLI for Find Email, Verify Email, Company Signal Enrichment, and Signal to Copy AI.",
5
5
  "bin": {
6
6
  "signaliz": "dist/bin.js"
@@ -28,7 +28,7 @@
28
28
  "node": ">=18"
29
29
  },
30
30
  "dependencies": {
31
- "@signaliz/sdk": "^1.0.34"
31
+ "@signaliz/sdk": "^1.0.37"
32
32
  },
33
33
  "devDependencies": {
34
34
  "tsup": "^8.0.0",