@signaliz/cli 1.0.92 → 1.0.94
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 +13 -0
- package/dist/bin.js +89 -17
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -223,6 +223,13 @@ signaliz campaign-os audience-preview --client-id <uuid> \
|
|
|
223
223
|
--audience-id <uuid> --idempotency-key launch-preview-v1 --json
|
|
224
224
|
signaliz campaign-os compile --client-id <uuid> --campaign-id <uuid> \
|
|
225
225
|
--providers all --json
|
|
226
|
+
signaliz campaign-os alpha-materialize-preflight --client-id <uuid> \
|
|
227
|
+
--campaign-id <uuid> --audience-run-id <uuid> --validation-run-id <uuid> \
|
|
228
|
+
--idempotency-key launch-alpha-materialization-v1 --json
|
|
229
|
+
signaliz campaign-os alpha-materialize --materialization-run-id <uuid> \
|
|
230
|
+
--approval-hash sha256:<64-hex> --confirm-spend --json
|
|
231
|
+
signaliz campaign-os alpha-materialization-status \
|
|
232
|
+
--materialization-run-id <uuid> --json
|
|
226
233
|
signaliz campaign-os request --client-id <uuid> --campaign-id <uuid> \
|
|
227
234
|
--agent devin --action provider_activation --instructions "Prepare for review" \
|
|
228
235
|
--preflight-inputs-file action-preflight.json \
|
|
@@ -245,3 +252,9 @@ activation, real-time arming, queueing, or sending; it does not execute them.
|
|
|
245
252
|
non-secret provider and artifact identifiers. After a Signaliz superadmin
|
|
246
253
|
approves that proposal, `prepare-preflight` appends or reads the immutable
|
|
247
254
|
no-call continuation and reports missing inputs or unavailable adapters.
|
|
255
|
+
|
|
256
|
+
`alpha-materialize-preflight` records the exact campaign, Audience run,
|
|
257
|
+
validation receipt, coverage target, batches, and research ceiling without
|
|
258
|
+
spend. `alpha-materialize` requires the returned approval hash and
|
|
259
|
+
`--confirm-spend`; it authorizes only that bounded research. It never calls
|
|
260
|
+
Clay, creates an Audience, loads or activates a provider, queues, or sends.
|
package/dist/bin.js
CHANGED
|
@@ -57,12 +57,12 @@ Product commands:
|
|
|
57
57
|
signaliz builds status --run-id <uuid> [--limit 100]
|
|
58
58
|
signaliz builds download --run-id <uuid> --out results.csv
|
|
59
59
|
signaliz campaign-os clients [--status active] [--query signaliz] [--limit 100]
|
|
60
|
-
signaliz campaign-os context --client-id <uuid> [--source-limit 50]
|
|
61
|
-
signaliz campaign-os knowledge --query "cache first" [--client-id <uuid>] [--record-kind campaign_playbook] [--limit 15]
|
|
60
|
+
signaliz campaign-os context --client-id <uuid> [--knowledge-snapshot-id <uuid>] [--source-limit 50]
|
|
61
|
+
signaliz campaign-os knowledge --query "cache first" [--client-id <uuid>] [--knowledge-snapshot-id <uuid>] [--record-kind campaign_playbook] [--limit 15]
|
|
62
62
|
signaliz campaign-os provider-runtime --client-id <uuid> --provider clay|instantly|smartlead|bison
|
|
63
63
|
signaliz campaign-os build --client-id <uuid> --name "Campaign" --objective "Goal" --target-count 500 --idempotency-key <key>
|
|
64
64
|
signaliz campaign-os build-status --build-run-id <uuid>
|
|
65
|
-
signaliz campaign-os draft --client-id <uuid> --name "Campaign" --campaign-spec-file campaign-spec.json --idempotency-key <key> [--agent codex]
|
|
65
|
+
signaliz campaign-os draft --client-id <uuid> --name "Campaign" --campaign-spec-file campaign-spec.json --idempotency-key <key> [--knowledge-snapshot-id <uuid>] [--agent codex]
|
|
66
66
|
signaliz campaign-os refine --client-id <uuid> --campaign-id <uuid> --expected-spec-version-id <uuid> --campaign-spec-file campaign-spec.json --change-reason "What changed" --idempotency-key <key> [--agent codex]
|
|
67
67
|
signaliz campaign-os audience-draft --client-id <uuid> --name "Audience" --definition-file audience.json --entity-type people --audience-role campaign_segment --source-mode signaliz_owned --idempotency-key <key>
|
|
68
68
|
signaliz campaign-os materialize-cache-audience --client-id <uuid> --audience-id <uuid> [--campaign-id <uuid>] --target-count <1-500> --idempotency-key <key>
|
|
@@ -70,11 +70,14 @@ Product commands:
|
|
|
70
70
|
signaliz campaign-os audience-preview --client-id <uuid> --audience-id <uuid> --idempotency-key <key>
|
|
71
71
|
signaliz campaign-os compile --client-id <uuid> --campaign-id <uuid> [--providers all]
|
|
72
72
|
signaliz campaign-os alpha-plan --client-id <uuid> --client-name "Velox" --offer-summary "..." --icp-summary "..." --idempotency-key <key>
|
|
73
|
-
signaliz campaign-os alpha-discover --client-id <uuid> --client-name "Velox" --offer-summary "..." --icp-summary "..." --idempotency-key <key> --confirm-spend
|
|
73
|
+
signaliz campaign-os alpha-discover --client-id <uuid> --campaign-id <uuid> --client-name "Velox" --offer-summary "..." --icp-summary "..." --idempotency-key <key> --confirm-spend
|
|
74
74
|
signaliz campaign-os alpha-status --alpha-run-id <uuid>
|
|
75
75
|
signaliz campaign-os alpha-validate --client-id <uuid> --campaign-id <uuid> --alpha-run-id <uuid> --candidate-index 0 --sample-file sample.json --idempotency-key <key> --confirm-spend
|
|
76
76
|
signaliz campaign-os alpha-validation-status --validation-run-id <uuid>
|
|
77
77
|
signaliz campaign-os alpha-apply --validation-run-id <uuid>
|
|
78
|
+
signaliz campaign-os alpha-materialize-preflight --client-id <uuid> --campaign-id <uuid> --audience-run-id <uuid> --validation-run-id <uuid> --idempotency-key <key>
|
|
79
|
+
signaliz campaign-os alpha-materialize --materialization-run-id <uuid> --approval-hash sha256:<64-hex> --confirm-spend
|
|
80
|
+
signaliz campaign-os alpha-materialization-status --materialization-run-id <uuid>
|
|
78
81
|
signaliz campaign-os connections --client-id <uuid>
|
|
79
82
|
signaliz campaign-os source-binding --client-id <uuid> --binding-id <uuid> --name "CRM list" --source-kind audience --selector-file selector.json --idempotency-key <key>
|
|
80
83
|
signaliz campaign-os source-preflight --client-id <uuid> --source-binding-id <uuid> --idempotency-key <key> [--max-records 25]
|
|
@@ -2145,7 +2148,11 @@ async function campaignOs(args) {
|
|
|
2145
2148
|
if (!clientId) throw new CliInputError("signaliz campaign-os context requires --client-id <uuid>");
|
|
2146
2149
|
const sourceLimit = numberFlag("source-limit") ?? 50;
|
|
2147
2150
|
requireIntegerInRange(sourceLimit, "--source-limit", 1, 100);
|
|
2148
|
-
const result = await client.getCampaignOsClientContext(
|
|
2151
|
+
const result = await client.getCampaignOsClientContext(
|
|
2152
|
+
clientId,
|
|
2153
|
+
sourceLimit,
|
|
2154
|
+
flag("knowledge-snapshot-id")
|
|
2155
|
+
);
|
|
2149
2156
|
output(result, () => {
|
|
2150
2157
|
const selected = result.client;
|
|
2151
2158
|
process.stdout.write(`${String(selected.name || clientId)} \xB7 Brain v${String(selected.brain_version || "?")}
|
|
@@ -2163,15 +2170,7 @@ async function campaignOs(args) {
|
|
|
2163
2170
|
}
|
|
2164
2171
|
const limit = numberFlag("limit") ?? 15;
|
|
2165
2172
|
requireIntegerInRange(limit, "--limit", 1, 50);
|
|
2166
|
-
const allowedKinds =
|
|
2167
|
-
"client_brain",
|
|
2168
|
-
"campaign_register",
|
|
2169
|
-
"campaign_learning",
|
|
2170
|
-
"campaign_methodology",
|
|
2171
|
-
"campaign_genome",
|
|
2172
|
-
"campaign_playbook",
|
|
2173
|
-
"knowledge_inventory"
|
|
2174
|
-
];
|
|
2173
|
+
const allowedKinds = import_sdk.CAMPAIGN_OS_KNOWLEDGE_RECORD_KINDS;
|
|
2175
2174
|
const recordKind = flag("record-kind");
|
|
2176
2175
|
if (recordKind && !allowedKinds.includes(recordKind)) {
|
|
2177
2176
|
throw new CliInputError(`--record-kind must be one of: ${allowedKinds.join(", ")}`);
|
|
@@ -2179,6 +2178,7 @@ async function campaignOs(args) {
|
|
|
2179
2178
|
const result = await client.searchCampaignOsKnowledge({
|
|
2180
2179
|
query,
|
|
2181
2180
|
clientId: flag("client-id"),
|
|
2181
|
+
knowledgeSnapshotId: flag("knowledge-snapshot-id"),
|
|
2182
2182
|
recordKind,
|
|
2183
2183
|
limit
|
|
2184
2184
|
});
|
|
@@ -2291,6 +2291,7 @@ async function campaignOs(args) {
|
|
|
2291
2291
|
targetCount,
|
|
2292
2292
|
audienceBindingId: flag("audience-binding-id"),
|
|
2293
2293
|
audienceDefinitionId: flag("audience-definition-id"),
|
|
2294
|
+
knowledgeSnapshotId: flag("knowledge-snapshot-id"),
|
|
2294
2295
|
campaignSpec,
|
|
2295
2296
|
agentVendor: campaignOsAgentFlag(),
|
|
2296
2297
|
idempotencyKey
|
|
@@ -2467,6 +2468,7 @@ async function campaignOs(args) {
|
|
|
2467
2468
|
}
|
|
2468
2469
|
if (action === "alpha-plan" || action === "alpha-discover") {
|
|
2469
2470
|
const clientId = flag("client-id");
|
|
2471
|
+
const campaignId = flag("campaign-id");
|
|
2470
2472
|
const clientName = flag("client-name");
|
|
2471
2473
|
const offerSummary = flag("offer-summary");
|
|
2472
2474
|
const icpSummary = flag("icp-summary");
|
|
@@ -2476,7 +2478,7 @@ async function campaignOs(args) {
|
|
|
2476
2478
|
}
|
|
2477
2479
|
const params = {
|
|
2478
2480
|
clientId,
|
|
2479
|
-
campaignId
|
|
2481
|
+
campaignId,
|
|
2480
2482
|
clientName,
|
|
2481
2483
|
offerSummary,
|
|
2482
2484
|
icpSummary,
|
|
@@ -2496,7 +2498,13 @@ async function campaignOs(args) {
|
|
|
2496
2498
|
if (!hasFlag("confirm-spend")) {
|
|
2497
2499
|
throw new CliInputError("signaliz campaign-os alpha-discover requires --confirm-spend for the $0.10 authorization ceiling");
|
|
2498
2500
|
}
|
|
2499
|
-
|
|
2501
|
+
if (!campaignId) {
|
|
2502
|
+
throw new CliInputError("signaliz campaign-os alpha-discover requires --campaign-id for one saved immutable CampaignSpec");
|
|
2503
|
+
}
|
|
2504
|
+
const result = await client.startCampaignOsAlphaDiscovery({
|
|
2505
|
+
...params,
|
|
2506
|
+
campaignId
|
|
2507
|
+
});
|
|
2500
2508
|
output(result, () => {
|
|
2501
2509
|
const run = record(result.run);
|
|
2502
2510
|
process.stdout.write(`Signaliz Alpha discovery started: ${String(run.id || "")} \xB7 ${String(run.status || "queued")} \xB7 authorized ceiling $0.10
|
|
@@ -2580,6 +2588,70 @@ async function campaignOs(args) {
|
|
|
2580
2588
|
});
|
|
2581
2589
|
return;
|
|
2582
2590
|
}
|
|
2591
|
+
if (action === "alpha-materialize-preflight") {
|
|
2592
|
+
const clientId = flag("client-id");
|
|
2593
|
+
const campaignId = flag("campaign-id");
|
|
2594
|
+
const audienceRunId = flag("audience-run-id");
|
|
2595
|
+
const validationRunId = flag("validation-run-id");
|
|
2596
|
+
const idempotencyKey = flag("idempotency-key")?.trim();
|
|
2597
|
+
if (!clientId || !campaignId || !audienceRunId || !validationRunId || !idempotencyKey) {
|
|
2598
|
+
throw new CliInputError("signaliz campaign-os alpha-materialize-preflight requires --client-id, --campaign-id, --audience-run-id, --validation-run-id, and --idempotency-key");
|
|
2599
|
+
}
|
|
2600
|
+
const result = await client.preflightCampaignOsAlphaMaterialization({
|
|
2601
|
+
clientId,
|
|
2602
|
+
campaignId,
|
|
2603
|
+
audienceRunId,
|
|
2604
|
+
validationRunId,
|
|
2605
|
+
idempotencyKey
|
|
2606
|
+
});
|
|
2607
|
+
output(result, () => {
|
|
2608
|
+
const run = record(result.run);
|
|
2609
|
+
process.stdout.write(`Signaliz Alpha materialization preflight: ${String(run.id || "")} \xB7 ${String(run.selected_count || 0)} membership(s) \xB7 ${String(run.batch_count || 0)} batch(es)
|
|
2610
|
+
`);
|
|
2611
|
+
process.stdout.write(`Research ceiling: $${String(run.max_cost_usd || "0.00")} \xB7 no research, Clay, audience creation, provider load, activation, queue, or send occurred.
|
|
2612
|
+
`);
|
|
2613
|
+
});
|
|
2614
|
+
return;
|
|
2615
|
+
}
|
|
2616
|
+
if (action === "alpha-materialize") {
|
|
2617
|
+
const materializationRunId = flag("materialization-run-id");
|
|
2618
|
+
const approvalHash = flag("approval-hash");
|
|
2619
|
+
if (!materializationRunId || !approvalHash) {
|
|
2620
|
+
throw new CliInputError("signaliz campaign-os alpha-materialize requires --materialization-run-id and --approval-hash");
|
|
2621
|
+
}
|
|
2622
|
+
if (!/^sha256:[0-9a-f]{64}$/.test(approvalHash)) {
|
|
2623
|
+
throw new CliInputError("--approval-hash must be the exact sha256:<64-hex> preflight hash");
|
|
2624
|
+
}
|
|
2625
|
+
if (!hasFlag("confirm-spend")) {
|
|
2626
|
+
throw new CliInputError("signaliz campaign-os alpha-materialize requires --confirm-spend for the approval-bound research ceiling");
|
|
2627
|
+
}
|
|
2628
|
+
const result = await client.startCampaignOsAlphaMaterialization({
|
|
2629
|
+
materializationRunId,
|
|
2630
|
+
approvalHash,
|
|
2631
|
+
confirmSpend: true
|
|
2632
|
+
});
|
|
2633
|
+
output(result, () => {
|
|
2634
|
+
const run = record(result.run);
|
|
2635
|
+
process.stdout.write(`Signaliz Alpha materialization started: ${String(run.id || materializationRunId)} \xB7 ${String(run.status || "queued")}
|
|
2636
|
+
`);
|
|
2637
|
+
process.stdout.write("Only preflight-bounded research spend is authorized. Clay, audience creation, provider load, activation, queue, and send remain locked.\n");
|
|
2638
|
+
});
|
|
2639
|
+
return;
|
|
2640
|
+
}
|
|
2641
|
+
if (action === "alpha-materialization-status") {
|
|
2642
|
+
const materializationRunId = flag("materialization-run-id");
|
|
2643
|
+
if (!materializationRunId) {
|
|
2644
|
+
throw new CliInputError("signaliz campaign-os alpha-materialization-status requires --materialization-run-id <uuid>");
|
|
2645
|
+
}
|
|
2646
|
+
const result = await client.getCampaignOsAlphaMaterialization(materializationRunId);
|
|
2647
|
+
output(result, () => {
|
|
2648
|
+
const run = record(result.run);
|
|
2649
|
+
process.stdout.write(`Signaliz Alpha materialization: ${String(run.status || "unknown")} \xB7 ${String(run.processed_entity_count || 0)}/${String(run.entity_count || 0)} entities \xB7 ${String(run.covered_membership_count || 0)}/${String(run.selected_count || 0)} memberships
|
|
2650
|
+
`);
|
|
2651
|
+
process.stdout.write("Status read only \xB7 no new research, spend, Clay, provider load, activation, queue, or send.\n");
|
|
2652
|
+
});
|
|
2653
|
+
return;
|
|
2654
|
+
}
|
|
2583
2655
|
if (action === "connections") {
|
|
2584
2656
|
const clientId = flag("client-id");
|
|
2585
2657
|
if (!clientId) throw new CliInputError("signaliz campaign-os connections requires --client-id <uuid>");
|
|
@@ -2750,7 +2822,7 @@ async function campaignOs(args) {
|
|
|
2750
2822
|
});
|
|
2751
2823
|
return;
|
|
2752
2824
|
}
|
|
2753
|
-
throw new CliInputError("Usage: signaliz campaign-os clients|context|knowledge|provider-runtime|build|build-status|draft|refine|audience-draft|materialize-cache-audience|audience-schedule|audience-preview|compile|alpha-plan|alpha-discover|alpha-status|alpha-validate|alpha-validation-status|alpha-apply|connections|source-binding|source-preflight|request|prepare-preflight|receipts");
|
|
2825
|
+
throw new CliInputError("Usage: signaliz campaign-os clients|context|knowledge|provider-runtime|build|build-status|draft|refine|audience-draft|materialize-cache-audience|audience-schedule|audience-preview|compile|alpha-plan|alpha-discover|alpha-status|alpha-validate|alpha-validation-status|alpha-apply|alpha-materialize-preflight|alpha-materialize|alpha-materialization-status|connections|source-binding|source-preflight|request|prepare-preflight|receipts");
|
|
2754
2826
|
}
|
|
2755
2827
|
async function main() {
|
|
2756
2828
|
const [, , command, ...args] = process.argv;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@signaliz/cli",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.94",
|
|
4
4
|
"description": "Signaliz CLI for Campaign OS, core products, Signal Awareness, Signaliz Flow, and reusable managed builds.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"signaliz": "dist/bin.js"
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"node": ">=18"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@signaliz/sdk": "^1.0.
|
|
33
|
+
"@signaliz/sdk": "^1.0.98"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"tsup": "^8.0.0",
|