@signaliz/cli 1.0.89 → 1.0.90

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 +7 -2
  2. package/dist/bin.js +32 -3
  3. package/package.json +2 -2
package/README.md CHANGED
@@ -216,6 +216,9 @@ signaliz campaign-os audience-draft --client-id <uuid> --name "Launch ICP" \
216
216
  --definition-file audience.json --entity-type people \
217
217
  --audience-role campaign_segment --source-mode signaliz_owned \
218
218
  --idempotency-key launch-audience-v1 --json
219
+ signaliz campaign-os materialize-cache-audience --client-id <uuid> \
220
+ --audience-id <uuid> --target-count 500 \
221
+ --idempotency-key launch-cache-materialization-v1 --json
219
222
  signaliz campaign-os audience-preview --client-id <uuid> \
220
223
  --audience-id <uuid> --idempotency-key launch-preview-v1 --json
221
224
  signaliz campaign-os compile --client-id <uuid> --campaign-id <uuid> \
@@ -227,7 +230,9 @@ signaliz campaign-os receipts --client-id <uuid> --json
227
230
 
228
231
  `provider-runtime` explains the safe Clay or Instantly route, adapter source,
229
232
  approval boundaries, and receipt semantics without returning credentials or
230
- calling the provider. `build`, `audience-draft`, `audience-preview`, and
231
- `compile` do not need CMM-admin approval and keep providers locked. `request`
233
+ calling the provider. `build`, `audience-draft`, `materialize-cache-audience`,
234
+ `audience-preview`, and `compile` do not need CMM-admin approval and keep
235
+ providers locked. Cache materialization is capped at 500 members and returns
236
+ exact zero-provider/Clay usage plus a terminal reconciliation receipt. `request`
232
237
  creates only an auditable review request for paid sourcing, provider load,
233
238
  activation, real-time arming, queueing, or sending; it does not execute them.
package/dist/bin.js CHANGED
@@ -64,6 +64,7 @@ Product commands:
64
64
  signaliz campaign-os build-status --build-run-id <uuid>
65
65
  signaliz campaign-os draft --client-id <uuid> --name "Campaign" --campaign-spec-file campaign-spec.json --idempotency-key <key> [--agent codex]
66
66
  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>
67
+ signaliz campaign-os materialize-cache-audience --client-id <uuid> --audience-id <uuid> --target-count <1-500> --idempotency-key <key>
67
68
  signaliz campaign-os audience-preview --client-id <uuid> --audience-id <uuid> --idempotency-key <key>
68
69
  signaliz campaign-os compile --client-id <uuid> --campaign-id <uuid> [--providers all]
69
70
  signaliz campaign-os request --client-id <uuid> [--campaign-id <uuid>] --agent codex --action provider_load --instructions "..." [--idempotency-key <key>]
@@ -2239,7 +2240,7 @@ async function campaignOs(args) {
2239
2240
  const campaign = record(result.campaign);
2240
2241
  process.stdout.write(`Campaign Brain build: ${String(build.status || "unknown")}
2241
2242
  `);
2242
- if (campaign.id) process.stdout.write(`Review-held campaign: ${String(campaign.name || "")} (${String(campaign.id)})
2243
+ if (campaign.id) process.stdout.write(`Provider-locked campaign: ${String(campaign.name || "")} (${String(campaign.id)})
2243
2244
  `);
2244
2245
  process.stdout.write("Provider execution remains locked.\n");
2245
2246
  });
@@ -2284,7 +2285,7 @@ async function campaignOs(args) {
2284
2285
  });
2285
2286
  output(result, () => {
2286
2287
  const campaign = record(result.campaign);
2287
- process.stdout.write(`Review-held draft created: ${String(campaign.name || name)} (${String(campaign.id || "")})
2288
+ process.stdout.write(`Provider-locked draft created without admin approval: ${String(campaign.name || name)} (${String(campaign.id || "")})
2288
2289
  `);
2289
2290
  process.stdout.write("Provider load: locked \xB7 activation: locked \xB7 send: locked\n");
2290
2291
  process.stdout.write("No Clay, Instantly, Smartlead, or Bison mutation was performed.\n");
@@ -2340,6 +2341,34 @@ async function campaignOs(args) {
2340
2341
  output(result, () => process.stdout.write("No-spend Audience preview recorded \xB7 provider calls 0 \xB7 Clay usage 0\n"));
2341
2342
  return;
2342
2343
  }
2344
+ if (action === "materialize-cache-audience") {
2345
+ const clientId = flag("client-id");
2346
+ const audienceId = flag("audience-id");
2347
+ const targetCount = numberFlag("target-count");
2348
+ const idempotencyKey = flag("idempotency-key");
2349
+ if (!clientId || !audienceId || targetCount === void 0 || !idempotencyKey) {
2350
+ throw new CliInputError("signaliz campaign-os materialize-cache-audience requires --client-id, --audience-id, --target-count <1-500>, and --idempotency-key");
2351
+ }
2352
+ requireIntegerInRange(targetCount, "--target-count", 1, 500);
2353
+ const result = await client.materializeCampaignOsCacheAudience({
2354
+ clientId,
2355
+ audienceId,
2356
+ targetCount,
2357
+ idempotencyKey
2358
+ });
2359
+ output(result, () => {
2360
+ const usage = record(result.usage_receipt);
2361
+ const reconciliation = record(result.terminal_reconciliation_receipt);
2362
+ process.stdout.write(`Cache Audience materialized: target ${targetCount}
2363
+ `);
2364
+ process.stdout.write(`Provider calls: ${String(usage.provider_calls)} \xB7 Clay Search allowance: ${String(usage.clay_search_allowance_used)} \xB7 Clay Actions: ${String(usage.clay_actions_used)} \xB7 Clay Data Credits: ${String(usage.clay_data_credits_used)}
2365
+ `);
2366
+ process.stdout.write(`Terminal reconciliation receipt: ${JSON.stringify(reconciliation)}
2367
+ `);
2368
+ process.stdout.write("No provider approval was requested.\n");
2369
+ });
2370
+ return;
2371
+ }
2343
2372
  if (action === "compile") {
2344
2373
  const clientId = flag("client-id");
2345
2374
  const campaignId = flag("campaign-id");
@@ -2393,7 +2422,7 @@ async function campaignOs(args) {
2393
2422
  });
2394
2423
  return;
2395
2424
  }
2396
- throw new CliInputError("Usage: signaliz campaign-os clients|context|knowledge|provider-runtime|build|build-status|draft|audience-draft|audience-preview|compile|request|receipts");
2425
+ throw new CliInputError("Usage: signaliz campaign-os clients|context|knowledge|provider-runtime|build|build-status|draft|audience-draft|materialize-cache-audience|audience-preview|compile|request|receipts");
2397
2426
  }
2398
2427
  async function main() {
2399
2428
  const [, , command, ...args] = process.argv;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@signaliz/cli",
3
- "version": "1.0.89",
3
+ "version": "1.0.90",
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.93"
33
+ "@signaliz/sdk": "^1.0.94"
34
34
  },
35
35
  "devDependencies": {
36
36
  "tsup": "^8.0.0",