@signaliz/sdk 1.0.26 → 1.0.28

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 CHANGED
@@ -36,6 +36,9 @@ const signals = await signaliz.enrichCompanySignals({
36
36
  companyDomain: 'example.com',
37
37
  researchPrompt: 'expansion priorities',
38
38
  });
39
+ // Audit normalized evidence provenance without reaching into `raw`.
40
+ console.log(signals.signals[0].evidencePublishedDate);
41
+ console.log(signals.signals[0].signalFeedSource, signals.signals[0].derived);
39
42
 
40
43
  // Persist a no-wait run ID and resume it later without duplicate spend.
41
44
  const queuedSignals = await signaliz.enrichCompanySignals({
@@ -83,5 +86,8 @@ normally finishes within an agent turn; set `skipCache` or `enableDeepSearch`
83
86
  only when fresh or deeper research is required.
84
87
  Unclassified evidence is returned by signal enrichment but is not used to
85
88
  generate outreach copy.
89
+ Each normalized signal also exposes `datePrecision`, `sourceProvenance`,
90
+ `entityConfidence`, `classification`, `derived`, `evidencePublishedDate`,
91
+ `signalFeedSource`, and the provider `metadata` needed for integrity audits.
86
92
 
87
93
  `listTools()` and `health()` are connection helpers, not additional products.
@@ -365,7 +365,12 @@ var Signaliz = class {
365
365
  const email = typeof data.email === "string" && data.email.trim() ? data.email.trim() : null;
366
366
  const found = Boolean(email) && data.found !== false;
367
367
  const verificationStatus = data.verification_status ?? data.status ?? "unknown";
368
- const verified = data.email_verified === true || data.verified_for_sending === true || ["valid", "deliverable"].includes(String(verificationStatus).toLowerCase());
368
+ const rawFreshness = String(data.verification_freshness ?? "").toLowerCase();
369
+ const verificationFreshness = rawFreshness === "fresh" || rawFreshness === "stale" ? rawFreshness : "unknown";
370
+ const needsReverification = data.needs_reverification === true || verificationFreshness === "stale";
371
+ const explicitlyNotSendSafe = data.verified_for_sending === false || needsReverification;
372
+ const verified = !explicitlyNotSendSafe && (data.email_verified === true || data.verified_for_sending === true || ["valid", "deliverable"].includes(String(verificationStatus).toLowerCase()));
373
+ const verificationAgeDays = typeof data.verification_age_days === "number" && Number.isFinite(data.verification_age_days) ? data.verification_age_days : null;
369
374
  return {
370
375
  success: data.success !== false && found,
371
376
  found,
@@ -374,6 +379,13 @@ var Signaliz = class {
374
379
  lastName: data.last_name,
375
380
  confidence: data.confidence ?? data.confidence_score ?? (verified ? 1 : 0),
376
381
  verificationStatus,
382
+ isVerified: verified,
383
+ isVerifiedForSending: !needsReverification && data.verified_for_sending === true,
384
+ isCatchAll: data.email_is_catch_all === true || data.is_catch_all === true,
385
+ verificationFreshness,
386
+ verificationAgeDays,
387
+ verifiedAt: typeof data.verified_at === "string" ? data.verified_at : null,
388
+ needsReverification,
377
389
  providerUsed: data.provider_used ?? data.provider ?? data.email_source ?? data.source ?? "unknown",
378
390
  error: found ? void 0 : data.error ?? "No verified email found",
379
391
  errorCode: found ? void 0 : data.error_code ?? "EMAIL_NOT_FOUND",
@@ -459,16 +471,30 @@ var Signaliz = class {
459
471
  name: data.company?.name ?? params.companyName ?? null,
460
472
  domain: data.company?.domain ?? params.companyDomain ?? null
461
473
  },
462
- signals: (data.signals ?? []).map((signal) => ({
463
- id: signal.id,
464
- title: signal.title ?? "",
465
- type: signal.type ?? signal.signal_type ?? "unknown",
466
- content: signal.content ?? signal.description ?? "",
467
- date: signal.date ?? signal.detected_at ?? null,
468
- sourceUrl: signal.source_url ?? signal.url ?? null,
469
- sourceType: signal.source_type,
470
- confidence: signal.confidence ?? signal.confidence_score ?? null
471
- })),
474
+ signals: (data.signals ?? []).map((signal) => {
475
+ const metadata = signal.metadata && typeof signal.metadata === "object" && !Array.isArray(signal.metadata) ? signal.metadata : void 0;
476
+ return {
477
+ id: signal.id,
478
+ title: signal.title ?? "",
479
+ type: signal.type ?? signal.signal_type ?? "unknown",
480
+ content: signal.content ?? signal.description ?? "",
481
+ date: signal.date ?? signal.detected_at ?? null,
482
+ datePrecision: signal.date_precision,
483
+ sourceUrl: signal.source_url ?? signal.url ?? null,
484
+ sourceType: signal.source_type,
485
+ sourceProvenance: signal.source_provenance,
486
+ confidence: signal.confidence ?? signal.confidence_score ?? null,
487
+ entityConfidence: signal.entity_confidence ?? metadata?.entity_confidence ?? null,
488
+ signalFamily: signal.signal_family,
489
+ eventType: signal.signal_event_type,
490
+ eventLabel: signal.signal_event_label,
491
+ classification: signal.signal_classification ?? null,
492
+ derived: signal.derived === true,
493
+ evidencePublishedDate: signal.evidence_published_date ?? metadata?.evidence_published_date ?? null,
494
+ signalFeedSource: signal.signal_feed_source ?? metadata?.signal_feed_source,
495
+ metadata
496
+ };
497
+ }),
472
498
  signalCount: data.signal_count ?? data.total_signals ?? data.signals?.length ?? 0,
473
499
  intelligence: data.intelligence ?? null,
474
500
  credits: data.credits,
package/dist/index.d.mts CHANGED
@@ -49,6 +49,13 @@ interface FindEmailResult {
49
49
  lastName?: string;
50
50
  confidence: number;
51
51
  verificationStatus: string;
52
+ isVerified: boolean;
53
+ isVerifiedForSending: boolean;
54
+ isCatchAll: boolean;
55
+ verificationFreshness: 'fresh' | 'stale' | 'unknown';
56
+ verificationAgeDays: number | null;
57
+ verifiedAt: string | null;
58
+ needsReverification: boolean;
52
59
  providerUsed: string;
53
60
  error?: string;
54
61
  errorCode?: string;
@@ -97,9 +104,20 @@ interface CompanySignal {
97
104
  type: string;
98
105
  content: string;
99
106
  date?: string | null;
107
+ datePrecision?: string;
100
108
  sourceUrl?: string | null;
101
109
  sourceType?: string;
110
+ sourceProvenance?: string;
102
111
  confidence?: number | null;
112
+ entityConfidence?: number | null;
113
+ signalFamily?: string;
114
+ eventType?: string;
115
+ eventLabel?: string;
116
+ classification?: Record<string, unknown> | string | null;
117
+ derived?: boolean;
118
+ evidencePublishedDate?: string | null;
119
+ signalFeedSource?: string;
120
+ metadata?: Record<string, unknown>;
103
121
  }
104
122
  interface CompanySignalEnrichmentResult {
105
123
  success: boolean;
package/dist/index.d.ts CHANGED
@@ -49,6 +49,13 @@ interface FindEmailResult {
49
49
  lastName?: string;
50
50
  confidence: number;
51
51
  verificationStatus: string;
52
+ isVerified: boolean;
53
+ isVerifiedForSending: boolean;
54
+ isCatchAll: boolean;
55
+ verificationFreshness: 'fresh' | 'stale' | 'unknown';
56
+ verificationAgeDays: number | null;
57
+ verifiedAt: string | null;
58
+ needsReverification: boolean;
52
59
  providerUsed: string;
53
60
  error?: string;
54
61
  errorCode?: string;
@@ -97,9 +104,20 @@ interface CompanySignal {
97
104
  type: string;
98
105
  content: string;
99
106
  date?: string | null;
107
+ datePrecision?: string;
100
108
  sourceUrl?: string | null;
101
109
  sourceType?: string;
110
+ sourceProvenance?: string;
102
111
  confidence?: number | null;
112
+ entityConfidence?: number | null;
113
+ signalFamily?: string;
114
+ eventType?: string;
115
+ eventLabel?: string;
116
+ classification?: Record<string, unknown> | string | null;
117
+ derived?: boolean;
118
+ evidencePublishedDate?: string | null;
119
+ signalFeedSource?: string;
120
+ metadata?: Record<string, unknown>;
103
121
  }
104
122
  interface CompanySignalEnrichmentResult {
105
123
  success: boolean;
package/dist/index.js CHANGED
@@ -392,7 +392,12 @@ var Signaliz = class {
392
392
  const email = typeof data.email === "string" && data.email.trim() ? data.email.trim() : null;
393
393
  const found = Boolean(email) && data.found !== false;
394
394
  const verificationStatus = data.verification_status ?? data.status ?? "unknown";
395
- const verified = data.email_verified === true || data.verified_for_sending === true || ["valid", "deliverable"].includes(String(verificationStatus).toLowerCase());
395
+ const rawFreshness = String(data.verification_freshness ?? "").toLowerCase();
396
+ const verificationFreshness = rawFreshness === "fresh" || rawFreshness === "stale" ? rawFreshness : "unknown";
397
+ const needsReverification = data.needs_reverification === true || verificationFreshness === "stale";
398
+ const explicitlyNotSendSafe = data.verified_for_sending === false || needsReverification;
399
+ const verified = !explicitlyNotSendSafe && (data.email_verified === true || data.verified_for_sending === true || ["valid", "deliverable"].includes(String(verificationStatus).toLowerCase()));
400
+ const verificationAgeDays = typeof data.verification_age_days === "number" && Number.isFinite(data.verification_age_days) ? data.verification_age_days : null;
396
401
  return {
397
402
  success: data.success !== false && found,
398
403
  found,
@@ -401,6 +406,13 @@ var Signaliz = class {
401
406
  lastName: data.last_name,
402
407
  confidence: data.confidence ?? data.confidence_score ?? (verified ? 1 : 0),
403
408
  verificationStatus,
409
+ isVerified: verified,
410
+ isVerifiedForSending: !needsReverification && data.verified_for_sending === true,
411
+ isCatchAll: data.email_is_catch_all === true || data.is_catch_all === true,
412
+ verificationFreshness,
413
+ verificationAgeDays,
414
+ verifiedAt: typeof data.verified_at === "string" ? data.verified_at : null,
415
+ needsReverification,
404
416
  providerUsed: data.provider_used ?? data.provider ?? data.email_source ?? data.source ?? "unknown",
405
417
  error: found ? void 0 : data.error ?? "No verified email found",
406
418
  errorCode: found ? void 0 : data.error_code ?? "EMAIL_NOT_FOUND",
@@ -486,16 +498,30 @@ var Signaliz = class {
486
498
  name: data.company?.name ?? params.companyName ?? null,
487
499
  domain: data.company?.domain ?? params.companyDomain ?? null
488
500
  },
489
- signals: (data.signals ?? []).map((signal) => ({
490
- id: signal.id,
491
- title: signal.title ?? "",
492
- type: signal.type ?? signal.signal_type ?? "unknown",
493
- content: signal.content ?? signal.description ?? "",
494
- date: signal.date ?? signal.detected_at ?? null,
495
- sourceUrl: signal.source_url ?? signal.url ?? null,
496
- sourceType: signal.source_type,
497
- confidence: signal.confidence ?? signal.confidence_score ?? null
498
- })),
501
+ signals: (data.signals ?? []).map((signal) => {
502
+ const metadata = signal.metadata && typeof signal.metadata === "object" && !Array.isArray(signal.metadata) ? signal.metadata : void 0;
503
+ return {
504
+ id: signal.id,
505
+ title: signal.title ?? "",
506
+ type: signal.type ?? signal.signal_type ?? "unknown",
507
+ content: signal.content ?? signal.description ?? "",
508
+ date: signal.date ?? signal.detected_at ?? null,
509
+ datePrecision: signal.date_precision,
510
+ sourceUrl: signal.source_url ?? signal.url ?? null,
511
+ sourceType: signal.source_type,
512
+ sourceProvenance: signal.source_provenance,
513
+ confidence: signal.confidence ?? signal.confidence_score ?? null,
514
+ entityConfidence: signal.entity_confidence ?? metadata?.entity_confidence ?? null,
515
+ signalFamily: signal.signal_family,
516
+ eventType: signal.signal_event_type,
517
+ eventLabel: signal.signal_event_label,
518
+ classification: signal.signal_classification ?? null,
519
+ derived: signal.derived === true,
520
+ evidencePublishedDate: signal.evidence_published_date ?? metadata?.evidence_published_date ?? null,
521
+ signalFeedSource: signal.signal_feed_source ?? metadata?.signal_feed_source,
522
+ metadata
523
+ };
524
+ }),
499
525
  signalCount: data.signal_count ?? data.total_signals ?? data.signals?.length ?? 0,
500
526
  intelligence: data.intelligence ?? null,
501
527
  credits: data.credits,
package/dist/index.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  Signaliz,
3
3
  SignalizError
4
- } from "./chunk-XRSWZ62S.mjs";
4
+ } from "./chunk-YQXKJ6FB.mjs";
5
5
  export {
6
6
  Signaliz,
7
7
  SignalizError
@@ -396,7 +396,12 @@ var Signaliz = class {
396
396
  const email = typeof data.email === "string" && data.email.trim() ? data.email.trim() : null;
397
397
  const found = Boolean(email) && data.found !== false;
398
398
  const verificationStatus = data.verification_status ?? data.status ?? "unknown";
399
- const verified = data.email_verified === true || data.verified_for_sending === true || ["valid", "deliverable"].includes(String(verificationStatus).toLowerCase());
399
+ const rawFreshness = String(data.verification_freshness ?? "").toLowerCase();
400
+ const verificationFreshness = rawFreshness === "fresh" || rawFreshness === "stale" ? rawFreshness : "unknown";
401
+ const needsReverification = data.needs_reverification === true || verificationFreshness === "stale";
402
+ const explicitlyNotSendSafe = data.verified_for_sending === false || needsReverification;
403
+ const verified = !explicitlyNotSendSafe && (data.email_verified === true || data.verified_for_sending === true || ["valid", "deliverable"].includes(String(verificationStatus).toLowerCase()));
404
+ const verificationAgeDays = typeof data.verification_age_days === "number" && Number.isFinite(data.verification_age_days) ? data.verification_age_days : null;
400
405
  return {
401
406
  success: data.success !== false && found,
402
407
  found,
@@ -405,6 +410,13 @@ var Signaliz = class {
405
410
  lastName: data.last_name,
406
411
  confidence: data.confidence ?? data.confidence_score ?? (verified ? 1 : 0),
407
412
  verificationStatus,
413
+ isVerified: verified,
414
+ isVerifiedForSending: !needsReverification && data.verified_for_sending === true,
415
+ isCatchAll: data.email_is_catch_all === true || data.is_catch_all === true,
416
+ verificationFreshness,
417
+ verificationAgeDays,
418
+ verifiedAt: typeof data.verified_at === "string" ? data.verified_at : null,
419
+ needsReverification,
408
420
  providerUsed: data.provider_used ?? data.provider ?? data.email_source ?? data.source ?? "unknown",
409
421
  error: found ? void 0 : data.error ?? "No verified email found",
410
422
  errorCode: found ? void 0 : data.error_code ?? "EMAIL_NOT_FOUND",
@@ -490,16 +502,30 @@ var Signaliz = class {
490
502
  name: data.company?.name ?? params.companyName ?? null,
491
503
  domain: data.company?.domain ?? params.companyDomain ?? null
492
504
  },
493
- signals: (data.signals ?? []).map((signal) => ({
494
- id: signal.id,
495
- title: signal.title ?? "",
496
- type: signal.type ?? signal.signal_type ?? "unknown",
497
- content: signal.content ?? signal.description ?? "",
498
- date: signal.date ?? signal.detected_at ?? null,
499
- sourceUrl: signal.source_url ?? signal.url ?? null,
500
- sourceType: signal.source_type,
501
- confidence: signal.confidence ?? signal.confidence_score ?? null
502
- })),
505
+ signals: (data.signals ?? []).map((signal) => {
506
+ const metadata = signal.metadata && typeof signal.metadata === "object" && !Array.isArray(signal.metadata) ? signal.metadata : void 0;
507
+ return {
508
+ id: signal.id,
509
+ title: signal.title ?? "",
510
+ type: signal.type ?? signal.signal_type ?? "unknown",
511
+ content: signal.content ?? signal.description ?? "",
512
+ date: signal.date ?? signal.detected_at ?? null,
513
+ datePrecision: signal.date_precision,
514
+ sourceUrl: signal.source_url ?? signal.url ?? null,
515
+ sourceType: signal.source_type,
516
+ sourceProvenance: signal.source_provenance,
517
+ confidence: signal.confidence ?? signal.confidence_score ?? null,
518
+ entityConfidence: signal.entity_confidence ?? metadata?.entity_confidence ?? null,
519
+ signalFamily: signal.signal_family,
520
+ eventType: signal.signal_event_type,
521
+ eventLabel: signal.signal_event_label,
522
+ classification: signal.signal_classification ?? null,
523
+ derived: signal.derived === true,
524
+ evidencePublishedDate: signal.evidence_published_date ?? metadata?.evidence_published_date ?? null,
525
+ signalFeedSource: signal.signal_feed_source ?? metadata?.signal_feed_source,
526
+ metadata
527
+ };
528
+ }),
503
529
  signalCount: data.signal_count ?? data.total_signals ?? data.signals?.length ?? 0,
504
530
  intelligence: data.intelligence ?? null,
505
531
  credits: data.credits,
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  Signaliz
4
- } from "./chunk-XRSWZ62S.mjs";
4
+ } from "./chunk-YQXKJ6FB.mjs";
5
5
 
6
6
  // src/mcp-config.ts
7
7
  import * as fs from "fs";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@signaliz/sdk",
3
- "version": "1.0.26",
3
+ "version": "1.0.28",
4
4
  "description": "Signaliz SDK for Find Email, Verify Email, Company Signal Enrichment, and Signal to Copy AI.",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",