@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.
- package/dist/bin.js +217 -4
- 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)
|
|
1990
|
-
|
|
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
|
|
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
|
|
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.
|
|
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.
|
|
20
|
+
"@signaliz/sdk": "^1.0.6"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
23
|
"tsup": "^8.0.0",
|