@signaliz/cli 1.0.4 → 1.0.5

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 (2) hide show
  1. package/dist/bin.js +217 -4
  2. package/package.json +2 -2
package/dist/bin.js CHANGED
@@ -1397,6 +1397,185 @@ function gtmHelpFor(sub) {
1397
1397
  if (!sub) return GTM_HELP;
1398
1398
  return GTM_COMMAND_HELP[sub] || GTM_HELP;
1399
1399
  }
1400
+ var OPS_COMMAND_HELP = {
1401
+ proof: `signaliz ops proof [options]
1402
+
1403
+ Show whether Ops delivery is proven before scaling a GTM motion.
1404
+
1405
+ Options:
1406
+ --window-hours N Delivery receipt lookback, default 720
1407
+ --json Machine-readable output
1408
+ `,
1409
+ autopilot: `signaliz ops autopilot [options]
1410
+
1411
+ Recommend the next best GTM motion from proof state.
1412
+
1413
+ Options:
1414
+ --window-hours N Delivery receipt lookback, default 720
1415
+ --json Machine-readable output
1416
+ `,
1417
+ plan: `signaliz ops plan "plain-English GTM goal" [options]
1418
+
1419
+ Preview a prompt-first Op plan without creating anything or spending credits.
1420
+
1421
+ Options:
1422
+ --blueprint NAME monitor_companies|build_leads|enrich_list|route_signals|launch_campaign
1423
+ --target-count N Target row count
1424
+ --cadence NAME manual|hourly|daily|weekly
1425
+ --destinations a,b Destinations such as json,csv,slack,airbyte,nango
1426
+ --company-domains a,b Explicit account/domain list
1427
+ --json Machine-readable output
1428
+
1429
+ Safe next step:
1430
+ signaliz ops create "same goal" --confirm-spend
1431
+ `,
1432
+ create: `signaliz ops create "plain-English GTM goal" [options]
1433
+
1434
+ Create a persistent Op from a prompt. Requires --confirm-spend for spendful
1435
+ work; otherwise the API returns an approval receipt and retry arguments.
1436
+
1437
+ Options:
1438
+ --confirm-spend Acknowledge estimated credits/external writes
1439
+ --activate Create as active instead of draft
1440
+ --target-count N Target row count
1441
+ --destinations a,b Destinations such as json,csv,slack,airbyte,nango
1442
+ --company-domains a,b Explicit account/domain list
1443
+ --json Machine-readable output
1444
+
1445
+ Safe next step:
1446
+ signaliz ops run <op_id>
1447
+ `,
1448
+ execute: `signaliz ops execute "plain-English GTM goal" [options]
1449
+
1450
+ One-call agent path: plan, create, and safely run an Op when approved.
1451
+
1452
+ Options:
1453
+ --dry-run Return the plan and next step without creating anything
1454
+ --confirm-spend Acknowledge estimated credits/external writes
1455
+ --auto-run Run immediately after create when safe
1456
+ --no-auto-run Create only
1457
+ --target-count N Target row count
1458
+ --destinations a,b Destinations such as json,csv,slack,airbyte,nango
1459
+ --json Machine-readable output
1460
+ `,
1461
+ run: `signaliz ops run <op_id> [options]
1462
+
1463
+ Run a created Op immediately.
1464
+ `,
1465
+ status: `signaliz ops status <op_id> [options]
1466
+
1467
+ Check simple Op status and next action.
1468
+ `,
1469
+ results: `signaliz ops results <op_id> [options]
1470
+
1471
+ Retrieve latest Op results.
1472
+
1473
+ Options:
1474
+ --limit N Page size, default 100, max 500
1475
+ --cursor ID Pagination cursor
1476
+ --include-failed-runs Include failed run output when supported
1477
+ --json Machine-readable output
1478
+ `
1479
+ };
1480
+ function opsHelpFor(sub) {
1481
+ if (!sub) {
1482
+ return `signaliz ops <command> [options]
1483
+
1484
+ Canonical path:
1485
+ signaliz ops plan "Build 100 verified VP Sales leads"
1486
+ signaliz ops create "Build 100 verified VP Sales leads" --confirm-spend
1487
+ signaliz ops run <op_id>
1488
+ signaliz ops status <op_id>
1489
+ signaliz ops results <op_id>
1490
+
1491
+ Common commands:
1492
+ proof, autopilot, plan, execute, create, run, status, results, doctor, connections
1493
+
1494
+ Run: signaliz ops help <command>
1495
+ `;
1496
+ }
1497
+ return OPS_COMMAND_HELP[sub] || opsHelpFor(void 0);
1498
+ }
1499
+ var CAMPAIGN_COMMAND_HELP = {
1500
+ scope: `signaliz campaign scope --prompt "client campaign request" [options]
1501
+
1502
+ Turn a client/campaign brief into a markdown scope, Brain preflight, and
1503
+ ready-to-run build_campaign dry-run arguments.
1504
+
1505
+ Options:
1506
+ --client-name NAME Client/customer name
1507
+ --client-context-file FILE
1508
+ Markdown notes with ICP, exclusions, offer, proof, approvals
1509
+ --target-count N Desired target count
1510
+ --destinations a,b json,csv,webhook,instantly,slack,airbyte,nango
1511
+ --json Machine-readable output
1512
+ `,
1513
+ build: `signaliz campaign build --prompt "lead search prompt" [options]
1514
+
1515
+ Start a campaign build. Use --dry-run first to validate; add --confirm-spend
1516
+ only after reviewing estimated credits and output risk.
1517
+
1518
+ Options:
1519
+ --target-count N Number of leads, default 50
1520
+ --outputs json,csv Delivery outputs, default json
1521
+ --dry-run Validate and plan without launching spendful work
1522
+ --allow-downscale Allow oversized target counts to be clamped
1523
+ --confirm-spend Acknowledge spendful generation
1524
+ --input-file FILE JSON config file from campaign scope or gtm prepare-build
1525
+ --wait Poll until completion
1526
+ --json Machine-readable output
1527
+
1528
+ Safe next step:
1529
+ signaliz campaign status <campaign_build_id>
1530
+ `,
1531
+ status: `signaliz campaign status <campaign_build_id> [options]
1532
+
1533
+ Check build status, phase progress, warnings, errors, and next action.
1534
+ `,
1535
+ rows: `signaliz campaign rows <campaign_build_id> [options]
1536
+
1537
+ Retrieve generated campaign rows.
1538
+
1539
+ Options:
1540
+ --limit N Page size, default 50, max 500
1541
+ --cursor ID Pagination cursor
1542
+ --qualified Only qualified rows
1543
+ --disqualified Only disqualified rows
1544
+ --all Dump all rows
1545
+ --json Machine-readable output
1546
+ `,
1547
+ artifacts: `signaliz campaign artifacts <campaign_build_id> [options]
1548
+
1549
+ List generated artifacts and signed download URLs.
1550
+ `,
1551
+ approve: `signaliz campaign approve <campaign_build_id> --destination-type <json|csv|webhook>
1552
+
1553
+ Approve pending delivery after human review.
1554
+ `,
1555
+ cancel: `signaliz campaign cancel <campaign_build_id> [options]
1556
+
1557
+ Cancel a running build.
1558
+ `
1559
+ };
1560
+ function campaignHelpFor(sub) {
1561
+ if (!sub) {
1562
+ return `signaliz campaign <command> [options]
1563
+
1564
+ Canonical path:
1565
+ signaliz campaign scope --prompt "Build a campaign for my ICP"
1566
+ signaliz campaign build --prompt "VP Sales at B2B SaaS" --dry-run
1567
+ signaliz campaign build --prompt "VP Sales at B2B SaaS" --confirm-spend --wait
1568
+ signaliz campaign rows <campaign_build_id> --limit 100
1569
+ signaliz campaign artifacts <campaign_build_id>
1570
+
1571
+ Commands:
1572
+ scope, build, status, rows, artifacts, approve, cancel
1573
+
1574
+ Run: signaliz campaign help <command>
1575
+ `;
1576
+ }
1577
+ return CAMPAIGN_COMMAND_HELP[sub] || campaignHelpFor(void 0);
1578
+ }
1400
1579
  function isHelpRequest(args) {
1401
1580
  return args[0] === "help" || args.includes("--help") || args.includes("-h");
1402
1581
  }
@@ -1835,6 +2014,10 @@ async function ai(sub, rest) {
1835
2014
  });
1836
2015
  }
1837
2016
  async function campaignBuild() {
2017
+ if (isHelpRequest(process.argv.slice(4))) {
2018
+ process.stdout.write(campaignHelpFor("build"));
2019
+ return;
2020
+ }
1838
2021
  const sdk = getSdk();
1839
2022
  let config;
1840
2023
  const inputFile = flagArg("input-file");
@@ -1986,14 +2169,22 @@ async function campaignStatus() {
1986
2169
  console.log(`Phase: ${status.currentPhase || "N/A"}`);
1987
2170
  console.log(`Rows: ${status.recordsSucceeded}/${status.recordsTotal} succeeded, ${status.recordsFailed} failed`);
1988
2171
  console.log(`Artifacts: ${status.artifactCount}`);
1989
- if (status.warnings.length) console.log(`Warnings: ${status.warnings.length}`);
1990
- if (status.errors.length) console.log(`Errors: ${status.errors.length}`);
2172
+ if (status.warnings.length) {
2173
+ console.log(`Warnings: ${status.warnings.length}`);
2174
+ for (const warning of status.warnings.slice(0, 3)) console.log(` - ${warning}`);
2175
+ }
2176
+ if (status.errors.length) {
2177
+ console.log(`Errors: ${status.errors.length}`);
2178
+ for (const error of status.errors.slice(0, 3)) console.log(` - ${error}`);
2179
+ }
1991
2180
  if (status.status === "completed") {
1992
2181
  hint(`signaliz campaign rows ${buildId} --limit 100`);
1993
2182
  } else if (status.status === "running" || status.status === "queued") {
1994
2183
  hint(`signaliz campaign status ${buildId} (poll again in ~10s)`);
1995
2184
  } else if (status.status === "pending_approval") {
1996
2185
  hint(`signaliz campaign approve ${buildId} --destination-type webhook`);
2186
+ } else if (status.status === "failed" && status.nextAction) {
2187
+ hint(status.nextAction);
1997
2188
  }
1998
2189
  });
1999
2190
  }
@@ -2115,6 +2306,14 @@ async function campaignCancel() {
2115
2306
  });
2116
2307
  }
2117
2308
  async function campaign(sub) {
2309
+ if (sub === "help") {
2310
+ process.stdout.write(campaignHelpFor(process.argv[4]));
2311
+ return;
2312
+ }
2313
+ if (isHelpRequest(process.argv.slice(4))) {
2314
+ process.stdout.write(campaignHelpFor(sub));
2315
+ return;
2316
+ }
2118
2317
  switch (sub) {
2119
2318
  case "scope":
2120
2319
  return campaignScope();
@@ -3141,6 +3340,14 @@ async function keys(sub, rest) {
3141
3340
  if (!res.ok) process.exit(1);
3142
3341
  }
3143
3342
  async function ops(sub, rest) {
3343
+ if (sub === "help") {
3344
+ process.stdout.write(opsHelpFor(rest[0]));
3345
+ return;
3346
+ }
3347
+ if (isHelpRequest(rest)) {
3348
+ process.stdout.write(opsHelpFor(sub));
3349
+ return;
3350
+ }
3144
3351
  if (sub === "saved" || sub === "save") {
3145
3352
  const savedSub = sub === "save" ? "save" : rest[0];
3146
3353
  const savedRest = sub === "save" ? rest : rest.slice(1);
@@ -3883,12 +4090,18 @@ async function main() {
3883
4090
  return email(rest[0], rest.slice(1));
3884
4091
  case "campaign": {
3885
4092
  const sub = rest[0];
3886
- if (!sub) die("Usage: signaliz campaign <build|status|rows|artifacts|cancel>");
4093
+ if (!sub || sub === "--help" || sub === "-h") {
4094
+ process.stdout.write(campaignHelpFor(void 0));
4095
+ return;
4096
+ }
3887
4097
  return campaign(sub);
3888
4098
  }
3889
4099
  case "ops": {
3890
4100
  const sub = rest[0];
3891
- if (!sub) die("Usage: signaliz ops <proof|autopilot|plan|execute|quickstart|create|run|status|results|run-status|queue|logs|replay|dashboard|doctor|connections|sinks|routines|attach-sink|saved>");
4101
+ if (!sub || sub === "--help" || sub === "-h") {
4102
+ process.stdout.write(opsHelpFor(void 0));
4103
+ return;
4104
+ }
3892
4105
  if (sub === "logs" || sub === "log-stream") {
3893
4106
  const runId = rest[1] || flagArg("run-id");
3894
4107
  if (!runId) die("Usage: signaliz ops logs <run_id>");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@signaliz/cli",
3
- "version": "1.0.4",
3
+ "version": "1.0.5",
4
4
  "description": "Signaliz CLI — GTM Kernel, Nango routes, MCP, and enrichment operations.",
5
5
  "bin": {
6
6
  "signaliz": "dist/bin.js"
@@ -17,7 +17,7 @@
17
17
  "node": ">=18"
18
18
  },
19
19
  "dependencies": {
20
- "@signaliz/sdk": "^1.0.4"
20
+ "@signaliz/sdk": "^1.0.6"
21
21
  },
22
22
  "devDependencies": {
23
23
  "tsup": "^8.0.0",