@signaliz/sdk 1.0.16 → 1.0.18
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 +120 -12
- package/dist/{chunk-5JNKSMNW.mjs → chunk-VFBQCWOM.mjs} +2211 -169
- package/dist/cli.js +5700 -3280
- package/dist/cli.mjs +237 -24
- package/dist/index.d.mts +2634 -1939
- package/dist/index.d.ts +2634 -1939
- package/dist/index.js +2211 -169
- package/dist/index.mjs +1 -1
- package/dist/mcp-config.js +2211 -169
- package/dist/mcp-config.mjs +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -6,6 +6,10 @@ Current surfaces include the GTM Kernel, Campaign Builder, provider routing,
|
|
|
6
6
|
Nango-managed customer API connections, MCP/Ops control-plane methods, and
|
|
7
7
|
enrichment primitives. Available data is returned before fresh enrichment;
|
|
8
8
|
live email verification is 0.02 fresh enrichment credits when a new verification is needed.
|
|
9
|
+
Builder includes unlimited cache search, Campaign Builder, API, MCP, CLI, Ops,
|
|
10
|
+
and integrations. Team is the $499/month public plan and adds unlimited live
|
|
11
|
+
Find People and Find Companies in Signaliz; Agency stays $999/month with higher
|
|
12
|
+
credits and throughput.
|
|
9
13
|
|
|
10
14
|
## Which Surface Should I Use?
|
|
11
15
|
|
|
@@ -27,6 +31,47 @@ integration, and approval primitives exposed through MCP and CLI.
|
|
|
27
31
|
npm install @signaliz/sdk
|
|
28
32
|
```
|
|
29
33
|
|
|
34
|
+
## Quick Start - Ops
|
|
35
|
+
|
|
36
|
+
Use Ops when a script or agent needs to turn a plain-English GTM outcome into
|
|
37
|
+
durable work, wait for completion, and retrieve rows in one flow.
|
|
38
|
+
|
|
39
|
+
```typescript
|
|
40
|
+
import { Signaliz } from '@signaliz/sdk';
|
|
41
|
+
|
|
42
|
+
const signaliz = new Signaliz({ apiKey: process.env.SIGNALIZ_API_KEY });
|
|
43
|
+
|
|
44
|
+
const result = await signaliz.ops.executeAndWait({
|
|
45
|
+
prompt: 'Build 50 approved ICP leads and return reviewed rows',
|
|
46
|
+
targetCount: 50,
|
|
47
|
+
confirmSpend: true,
|
|
48
|
+
limit: 50,
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
console.log(result.status.status);
|
|
52
|
+
console.log(result.results?.results);
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
If the Op already exists, queue it and wait for results with `runAndWait()`:
|
|
56
|
+
|
|
57
|
+
```typescript
|
|
58
|
+
const run = await signaliz.ops.runAndWait({
|
|
59
|
+
opId: 'op_123',
|
|
60
|
+
limit: 100,
|
|
61
|
+
});
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
For manual polling or partial-output recovery, use `waitForResults()` directly:
|
|
65
|
+
|
|
66
|
+
```typescript
|
|
67
|
+
const waited = await signaliz.ops.waitForResults({
|
|
68
|
+
opId: 'op_123',
|
|
69
|
+
maxPolls: 60,
|
|
70
|
+
intervalMs: 5000,
|
|
71
|
+
includeFailedRuns: true,
|
|
72
|
+
});
|
|
73
|
+
```
|
|
74
|
+
|
|
30
75
|
## Quick Start — Campaign Builder
|
|
31
76
|
|
|
32
77
|
Build a targeted lead list, wait for completion, then retrieve rows and CSV:
|
|
@@ -378,6 +423,54 @@ if (preview.ready_for_confirmation) {
|
|
|
378
423
|
}
|
|
379
424
|
```
|
|
380
425
|
|
|
426
|
+
The Ops namespace exposes the same Nango bridge, plus a one-call helper backed
|
|
427
|
+
by `nango_mcp_tool_call_and_wait` when an agent needs the result packet
|
|
428
|
+
immediately:
|
|
429
|
+
|
|
430
|
+
```typescript
|
|
431
|
+
const nangoResult = await signaliz.ops.callNangoToolAndWait({
|
|
432
|
+
workspaceConnectionId: 'workspace_conn_nango_hubspot',
|
|
433
|
+
actionName: 'upsert-contact',
|
|
434
|
+
input: { email: 'buyer@example.com', company: 'Acme' },
|
|
435
|
+
dryRun: false,
|
|
436
|
+
confirm: true,
|
|
437
|
+
maxPolls: 6,
|
|
438
|
+
});
|
|
439
|
+
console.log(nangoResult.result);
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
For recurring Ops, use the schedule-and-wait helper to activate the Op and
|
|
443
|
+
retrieve the first result packet in one call. This maps to native MCP
|
|
444
|
+
`ops_schedule_and_wait`:
|
|
445
|
+
|
|
446
|
+
```typescript
|
|
447
|
+
const recurring = await signaliz.ops.scheduleAndWait({
|
|
448
|
+
prompt: 'Monitor strategic accounts daily and send new funding signals to Slack',
|
|
449
|
+
destinations: [{ type: 'slack' }],
|
|
450
|
+
wakeOnEvents: ['company_funded'],
|
|
451
|
+
confirmSpend: true,
|
|
452
|
+
limit: 100,
|
|
453
|
+
});
|
|
454
|
+
console.log(recurring.results?.results);
|
|
455
|
+
```
|
|
456
|
+
|
|
457
|
+
For Nango-backed recurrence, the Ops SDK sends the natural Nango fields through
|
|
458
|
+
native `ops_nango_schedule` / `ops_nango_schedule_and_wait`:
|
|
459
|
+
|
|
460
|
+
```typescript
|
|
461
|
+
const hubspotOp = await signaliz.ops.scheduleNangoActionAndWait({
|
|
462
|
+
prompt: 'Monitor strategic accounts daily and upsert approved rows to HubSpot',
|
|
463
|
+
workspaceConnectionId: 'workspace_conn_nango_hubspot',
|
|
464
|
+
providerConfigKey: 'hubspot',
|
|
465
|
+
actionName: 'upsert-contact',
|
|
466
|
+
writeConfirmed: true,
|
|
467
|
+
confirmSpend: true,
|
|
468
|
+
maxPolls: 6,
|
|
469
|
+
limit: 100,
|
|
470
|
+
});
|
|
471
|
+
console.log(hubspotOp.results?.results);
|
|
472
|
+
```
|
|
473
|
+
|
|
381
474
|
### GTM Kernel Smoke Test
|
|
382
475
|
|
|
383
476
|
After strategy imports or Campaign Builder backfills, run the read-only/dry-run
|
|
@@ -396,7 +489,8 @@ no-spend/no-write/no-sender/no-delivery confirmation.
|
|
|
396
489
|
Fresh-enrichment throughput is now higher across every plan: Free 60/min,
|
|
397
490
|
Builder 300/min, Team 600/min, Agency 1,000/min, and Pay-As-You-Go 1,000/min,
|
|
398
491
|
with a 5,000/hour per-workspace safety cap. Cache hits, API/MCP reads, and
|
|
399
|
-
|
|
492
|
+
cache search do not count against those
|
|
493
|
+
fresh-enrichment ceilings.
|
|
400
494
|
|
|
401
495
|
```typescript
|
|
402
496
|
// Workspace and platform health
|
|
@@ -407,15 +501,34 @@ const health = await signaliz.getPlatformHealth();
|
|
|
407
501
|
const tools = await signaliz.listTools();
|
|
408
502
|
const opsMatches = await signaliz.discover('campaign build with webhook delivery', 'ops');
|
|
409
503
|
|
|
410
|
-
//
|
|
504
|
+
// North-star Ops loop: recommend, dry-run, schedule/run, poll, retrieve
|
|
505
|
+
const autopilot = await signaliz.ops.autopilot();
|
|
506
|
+
console.log(autopilot.primaryMotion?.operatingPacket?.northStar);
|
|
507
|
+
console.log(autopilot.primaryMotion?.operatingPacket?.nangoRoute?.dryRunArguments);
|
|
508
|
+
|
|
411
509
|
const plan = await signaliz.ops.plan(
|
|
412
510
|
'Monitor stripe.com and plaid.com every day and Slack me new hiring signals',
|
|
413
511
|
);
|
|
414
|
-
|
|
512
|
+
console.log(plan.executionContract?.sequence.map((step) => step.tool).join(' -> '));
|
|
513
|
+
console.log(plan.executionContract?.nangoRoute?.writeGate);
|
|
514
|
+
const nangoPreview = await signaliz.ops.execute({
|
|
515
|
+
prompt: 'Build 50 approved ICP leads and upsert them to HubSpot',
|
|
516
|
+
destinations: [{
|
|
517
|
+
type: 'nango',
|
|
518
|
+
connectionId: 'workspace_conn_nango_hubspot',
|
|
519
|
+
providerConfigKey: 'hubspot',
|
|
520
|
+
nangoConnectionId: 'connection_123',
|
|
521
|
+
actionName: 'upsert-contact',
|
|
522
|
+
}],
|
|
523
|
+
dry_run: true,
|
|
524
|
+
});
|
|
525
|
+
const op = await signaliz.ops.schedule({
|
|
415
526
|
prompt: plan.goal,
|
|
416
527
|
blueprint: plan.blueprint,
|
|
417
528
|
target_count: plan.target_count,
|
|
418
|
-
cadence: plan.cadence,
|
|
529
|
+
cadence: plan.cadence === 'manual' ? 'daily' : plan.cadence,
|
|
530
|
+
timezone: 'America/Phoenix',
|
|
531
|
+
wakeOnEvents: ['company_funded', 'crm.updated'],
|
|
419
532
|
confirm_spend: true,
|
|
420
533
|
});
|
|
421
534
|
await signaliz.ops.run(op.op_id);
|
|
@@ -442,24 +555,19 @@ const leadStatus = await signaliz.leads.checkStatus(leadJob.jobId);
|
|
|
442
555
|
|
|
443
556
|
## Custom AI Enrichment - Multi Model
|
|
444
557
|
|
|
445
|
-
Use
|
|
558
|
+
Use the Signaliz-hosted default model and attach images, PDFs, audio, or video when needed. The response includes model readback metadata for auditing.
|
|
446
559
|
|
|
447
560
|
```typescript
|
|
448
561
|
const result = await signaliz.ai.multiModel({
|
|
449
|
-
model: 'google/gemini-2.5-flash',
|
|
450
562
|
prompt: 'Research {{company_name}} and score whether they match our ICP.',
|
|
451
563
|
records: [{ company_name: 'Stripe', company_domain: 'stripe.com' }],
|
|
452
564
|
outputFields: [
|
|
453
565
|
{ name: 'fit_score', type: 'number', description: 'ICP fit from 1-10' },
|
|
454
566
|
{ name: 'reasoning', type: 'text', description: 'Short evidence-backed rationale' },
|
|
455
567
|
],
|
|
456
|
-
fusion: {
|
|
457
|
-
analysis_models: ['~google/gemini-flash-latest', '~openai/gpt-latest'],
|
|
458
|
-
judge_model: '~anthropic/claude-opus-latest',
|
|
459
|
-
},
|
|
460
568
|
});
|
|
461
569
|
|
|
462
|
-
console.log(result.results);
|
|
570
|
+
console.log(result.model, result.results);
|
|
463
571
|
```
|
|
464
572
|
|
|
465
573
|
## Campaigns API
|
|
@@ -528,7 +636,7 @@ const final = await signaliz.campaigns.wait(buildId, {
|
|
|
528
636
|
## Other Resources
|
|
529
637
|
|
|
530
638
|
```typescript
|
|
531
|
-
// Find and verify an email
|
|
639
|
+
// Find and verify an email with the V3 waterfall
|
|
532
640
|
const email = await signaliz.emails.find({
|
|
533
641
|
fullName: 'Jane Smith',
|
|
534
642
|
companyDomain: 'stripe.com',
|