@signaliz/cli 1.0.93 → 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.
Files changed (3) hide show
  1. package/README.md +13 -0
  2. package/dist/bin.js +78 -4
  3. 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
@@ -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]
@@ -2465,6 +2468,7 @@ async function campaignOs(args) {
2465
2468
  }
2466
2469
  if (action === "alpha-plan" || action === "alpha-discover") {
2467
2470
  const clientId = flag("client-id");
2471
+ const campaignId = flag("campaign-id");
2468
2472
  const clientName = flag("client-name");
2469
2473
  const offerSummary = flag("offer-summary");
2470
2474
  const icpSummary = flag("icp-summary");
@@ -2474,7 +2478,7 @@ async function campaignOs(args) {
2474
2478
  }
2475
2479
  const params = {
2476
2480
  clientId,
2477
- campaignId: flag("campaign-id"),
2481
+ campaignId,
2478
2482
  clientName,
2479
2483
  offerSummary,
2480
2484
  icpSummary,
@@ -2494,7 +2498,13 @@ async function campaignOs(args) {
2494
2498
  if (!hasFlag("confirm-spend")) {
2495
2499
  throw new CliInputError("signaliz campaign-os alpha-discover requires --confirm-spend for the $0.10 authorization ceiling");
2496
2500
  }
2497
- const result = await client.startCampaignOsAlphaDiscovery(params);
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
+ });
2498
2508
  output(result, () => {
2499
2509
  const run = record(result.run);
2500
2510
  process.stdout.write(`Signaliz Alpha discovery started: ${String(run.id || "")} \xB7 ${String(run.status || "queued")} \xB7 authorized ceiling $0.10
@@ -2578,6 +2588,70 @@ async function campaignOs(args) {
2578
2588
  });
2579
2589
  return;
2580
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
+ }
2581
2655
  if (action === "connections") {
2582
2656
  const clientId = flag("client-id");
2583
2657
  if (!clientId) throw new CliInputError("signaliz campaign-os connections requires --client-id <uuid>");
@@ -2748,7 +2822,7 @@ async function campaignOs(args) {
2748
2822
  });
2749
2823
  return;
2750
2824
  }
2751
- 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");
2752
2826
  }
2753
2827
  async function main() {
2754
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.93",
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.97"
33
+ "@signaliz/sdk": "^1.0.98"
34
34
  },
35
35
  "devDependencies": {
36
36
  "tsup": "^8.0.0",