@primitivedotdev/sdk 0.20.0 → 0.21.0

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.
@@ -87,10 +87,20 @@
87
87
  "multiple": false,
88
88
  "type": "option"
89
89
  },
90
- "base-url": {
91
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
92
- "env": "PRIMITIVE_API_URL",
93
- "name": "base-url",
90
+ "api-base-url-1": {
91
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
92
+ "env": "PRIMITIVE_API_BASE_URL_1",
93
+ "hidden": true,
94
+ "name": "api-base-url-1",
95
+ "hasDynamicHelp": false,
96
+ "multiple": false,
97
+ "type": "option"
98
+ },
99
+ "api-base-url-2": {
100
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
101
+ "env": "PRIMITIVE_API_BASE_URL_2",
102
+ "hidden": true,
103
+ "name": "api-base-url-2",
94
104
  "hasDynamicHelp": false,
95
105
  "multiple": false,
96
106
  "type": "option"
@@ -178,10 +188,11 @@
178
188
  "<%= config.bin %> login --force"
179
189
  ],
180
190
  "flags": {
181
- "base-url": {
182
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
183
- "env": "PRIMITIVE_API_URL",
184
- "name": "base-url",
191
+ "api-base-url-1": {
192
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
193
+ "env": "PRIMITIVE_API_BASE_URL_1",
194
+ "hidden": true,
195
+ "name": "api-base-url-1",
185
196
  "hasDynamicHelp": false,
186
197
  "multiple": false,
187
198
  "type": "option"
@@ -225,10 +236,11 @@
225
236
  "<%= config.bin %> logout"
226
237
  ],
227
238
  "flags": {
228
- "base-url": {
229
- "description": "Override the API base URL used for key revocation",
230
- "env": "PRIMITIVE_API_URL",
231
- "name": "base-url",
239
+ "api-base-url-1": {
240
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
241
+ "env": "PRIMITIVE_API_BASE_URL_1",
242
+ "hidden": true,
243
+ "name": "api-base-url-1",
232
244
  "hasDynamicHelp": false,
233
245
  "multiple": false,
234
246
  "type": "option"
@@ -261,10 +273,20 @@
261
273
  "multiple": false,
262
274
  "type": "option"
263
275
  },
264
- "base-url": {
265
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
266
- "env": "PRIMITIVE_API_URL",
267
- "name": "base-url",
276
+ "api-base-url-1": {
277
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
278
+ "env": "PRIMITIVE_API_BASE_URL_1",
279
+ "hidden": true,
280
+ "name": "api-base-url-1",
281
+ "hasDynamicHelp": false,
282
+ "multiple": false,
283
+ "type": "option"
284
+ },
285
+ "api-base-url-2": {
286
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
287
+ "env": "PRIMITIVE_API_BASE_URL_2",
288
+ "hidden": true,
289
+ "name": "api-base-url-2",
268
290
  "hasDynamicHelp": false,
269
291
  "multiple": false,
270
292
  "type": "option"
@@ -291,10 +313,10 @@
291
313
  "args": {},
292
314
  "description": "Print the N most recent inbound emails as a one-line-per-row text table. Designed for quick triage and visual scanning. For programmatic access, use `primitive emails:list-emails` (full JSON envelope, cursor pagination, filters) or pass `--json` here for the same raw shape without pagination/filters.\n\n ID display is TTY-aware. When STDOUT is a terminal, the table truncates each row's id to the first 8 characters for readability. When STDOUT is piped or redirected (the row stream is being consumed by another command), the full UUID is printed so the id can be fed straight back into `emails:get-email`, `emails:delete-email`, etc. without a separate `--json` round-trip.\n\n Output streams: the column header line is written to STDERR so the row data on STDOUT stays grep/awk-friendly. `--json` writes everything (including the envelope) to STDOUT and is equivalent to running `emails:list-emails --limit N` for the same N.",
293
315
  "examples": [
294
- "<%= config.bin %> emails:latest",
295
- "<%= config.bin %> emails:latest --limit 25",
296
- "<%= config.bin %> emails:latest | head -1 | awk '{print $1}' # full UUID since piped",
297
- "<%= config.bin %> emails:latest --json | jq '.data[0].id'"
316
+ "<%= config.bin %> emails latest",
317
+ "<%= config.bin %> emails latest --limit 25",
318
+ "<%= config.bin %> emails latest | head -1 | awk '{print $1}' # full UUID since piped",
319
+ "<%= config.bin %> emails latest --json | jq '.data[0].id'"
298
320
  ],
299
321
  "flags": {
300
322
  "api-key": {
@@ -305,10 +327,20 @@
305
327
  "multiple": false,
306
328
  "type": "option"
307
329
  },
308
- "base-url": {
309
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
310
- "env": "PRIMITIVE_API_URL",
311
- "name": "base-url",
330
+ "api-base-url-1": {
331
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
332
+ "env": "PRIMITIVE_API_BASE_URL_1",
333
+ "hidden": true,
334
+ "name": "api-base-url-1",
335
+ "hasDynamicHelp": false,
336
+ "multiple": false,
337
+ "type": "option"
338
+ },
339
+ "api-base-url-2": {
340
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
341
+ "env": "PRIMITIVE_API_BASE_URL_2",
342
+ "hidden": true,
343
+ "name": "api-base-url-2",
312
344
  "hasDynamicHelp": false,
313
345
  "multiple": false,
314
346
  "type": "option"
@@ -344,6 +376,339 @@
344
376
  "summary": "Show the most recent inbound emails as a compact table",
345
377
  "enableJsonFlag": false
346
378
  },
379
+ "emails:watch": {
380
+ "aliases": [],
381
+ "args": {},
382
+ "description": "Poll for new inbound emails and print matching messages as they arrive.",
383
+ "examples": [
384
+ "<%= config.bin %> emails watch --to support@example.com",
385
+ "<%= config.bin %> emails watch --subject verify --seconds 300",
386
+ "<%= config.bin %> emails watch --number 20 --jsonl"
387
+ ],
388
+ "flags": {
389
+ "api-key": {
390
+ "description": "Primitive API key (defaults to PRIMITIVE_API_KEY or saved `primitive login` credentials)",
391
+ "env": "PRIMITIVE_API_KEY",
392
+ "name": "api-key",
393
+ "hasDynamicHelp": false,
394
+ "multiple": false,
395
+ "type": "option"
396
+ },
397
+ "api-base-url-1": {
398
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
399
+ "env": "PRIMITIVE_API_BASE_URL_1",
400
+ "hidden": true,
401
+ "name": "api-base-url-1",
402
+ "hasDynamicHelp": false,
403
+ "multiple": false,
404
+ "type": "option"
405
+ },
406
+ "api-base-url-2": {
407
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
408
+ "env": "PRIMITIVE_API_BASE_URL_2",
409
+ "hidden": true,
410
+ "name": "api-base-url-2",
411
+ "hasDynamicHelp": false,
412
+ "multiple": false,
413
+ "type": "option"
414
+ },
415
+ "body": {
416
+ "description": "Full-text body filter",
417
+ "name": "body",
418
+ "hasDynamicHelp": false,
419
+ "multiple": false,
420
+ "type": "option"
421
+ },
422
+ "domain": {
423
+ "description": "Filter by inbound email domain",
424
+ "name": "domain",
425
+ "hasDynamicHelp": false,
426
+ "multiple": false,
427
+ "type": "option"
428
+ },
429
+ "domain-id": {
430
+ "description": "Filter by domain UUID",
431
+ "name": "domain-id",
432
+ "hasDynamicHelp": false,
433
+ "multiple": false,
434
+ "type": "option"
435
+ },
436
+ "from": {
437
+ "description": "Filter by sender address or domain",
438
+ "name": "from",
439
+ "hasDynamicHelp": false,
440
+ "multiple": false,
441
+ "type": "option"
442
+ },
443
+ "has-attachment": {
444
+ "description": "Only show emails with one or more attachments",
445
+ "name": "has-attachment",
446
+ "allowNo": false,
447
+ "type": "boolean"
448
+ },
449
+ "include-existing": {
450
+ "description": "Start from existing matching emails instead of only new arrivals",
451
+ "name": "include-existing",
452
+ "allowNo": false,
453
+ "type": "boolean"
454
+ },
455
+ "interval": {
456
+ "description": "Seconds to wait between empty polls",
457
+ "name": "interval",
458
+ "default": 2,
459
+ "hasDynamicHelp": false,
460
+ "multiple": false,
461
+ "type": "option"
462
+ },
463
+ "jsonl": {
464
+ "description": "Print each email as one JSON object per line",
465
+ "name": "jsonl",
466
+ "allowNo": false,
467
+ "type": "boolean"
468
+ },
469
+ "number": {
470
+ "description": "Exit after printing this many matching emails",
471
+ "name": "number",
472
+ "hasDynamicHelp": false,
473
+ "multiple": false,
474
+ "type": "option"
475
+ },
476
+ "page-size": {
477
+ "description": "Emails to fetch per poll (1-100)",
478
+ "name": "page-size",
479
+ "default": 50,
480
+ "hasDynamicHelp": false,
481
+ "multiple": false,
482
+ "type": "option"
483
+ },
484
+ "q": {
485
+ "description": "Full-text search DSL query",
486
+ "name": "q",
487
+ "hasDynamicHelp": false,
488
+ "multiple": false,
489
+ "type": "option"
490
+ },
491
+ "seconds": {
492
+ "description": "Exit after this many seconds",
493
+ "name": "seconds",
494
+ "hasDynamicHelp": false,
495
+ "multiple": false,
496
+ "type": "option"
497
+ },
498
+ "since": {
499
+ "description": "Only show emails received on or after this date/time",
500
+ "name": "since",
501
+ "hasDynamicHelp": false,
502
+ "multiple": false,
503
+ "type": "option"
504
+ },
505
+ "spam-score-gte": {
506
+ "description": "Only show emails with spam score greater than or equal to this value",
507
+ "name": "spam-score-gte",
508
+ "hasDynamicHelp": false,
509
+ "multiple": false,
510
+ "type": "option"
511
+ },
512
+ "spam-score-lt": {
513
+ "description": "Only show emails with spam score below this value",
514
+ "name": "spam-score-lt",
515
+ "hasDynamicHelp": false,
516
+ "multiple": false,
517
+ "type": "option"
518
+ },
519
+ "subject": {
520
+ "description": "Full-text subject filter",
521
+ "name": "subject",
522
+ "hasDynamicHelp": false,
523
+ "multiple": false,
524
+ "type": "option"
525
+ },
526
+ "to": {
527
+ "description": "Filter by recipient address or domain",
528
+ "name": "to",
529
+ "hasDynamicHelp": false,
530
+ "multiple": false,
531
+ "type": "option"
532
+ }
533
+ },
534
+ "hasDynamicHelp": false,
535
+ "hiddenAliases": [],
536
+ "id": "emails:watch",
537
+ "pluginAlias": "@primitivedotdev/sdk",
538
+ "pluginName": "@primitivedotdev/sdk",
539
+ "pluginType": "core",
540
+ "strict": true,
541
+ "summary": "Watch inbound emails with filters",
542
+ "enableJsonFlag": false
543
+ },
544
+ "emails:wait": {
545
+ "aliases": [],
546
+ "args": {},
547
+ "description": "Poll until matching inbound emails arrive, printing each match as it is found.",
548
+ "examples": [
549
+ "<%= config.bin %> emails wait --to test@example.com",
550
+ "<%= config.bin %> emails wait --subject verify --number 5 --timeout 120",
551
+ "<%= config.bin %> emails wait --q 'domain:example.com' --table"
552
+ ],
553
+ "flags": {
554
+ "api-key": {
555
+ "description": "Primitive API key (defaults to PRIMITIVE_API_KEY or saved `primitive login` credentials)",
556
+ "env": "PRIMITIVE_API_KEY",
557
+ "name": "api-key",
558
+ "hasDynamicHelp": false,
559
+ "multiple": false,
560
+ "type": "option"
561
+ },
562
+ "api-base-url-1": {
563
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
564
+ "env": "PRIMITIVE_API_BASE_URL_1",
565
+ "hidden": true,
566
+ "name": "api-base-url-1",
567
+ "hasDynamicHelp": false,
568
+ "multiple": false,
569
+ "type": "option"
570
+ },
571
+ "api-base-url-2": {
572
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
573
+ "env": "PRIMITIVE_API_BASE_URL_2",
574
+ "hidden": true,
575
+ "name": "api-base-url-2",
576
+ "hasDynamicHelp": false,
577
+ "multiple": false,
578
+ "type": "option"
579
+ },
580
+ "body": {
581
+ "description": "Full-text body filter",
582
+ "name": "body",
583
+ "hasDynamicHelp": false,
584
+ "multiple": false,
585
+ "type": "option"
586
+ },
587
+ "domain": {
588
+ "description": "Filter by inbound email domain",
589
+ "name": "domain",
590
+ "hasDynamicHelp": false,
591
+ "multiple": false,
592
+ "type": "option"
593
+ },
594
+ "domain-id": {
595
+ "description": "Filter by domain UUID",
596
+ "name": "domain-id",
597
+ "hasDynamicHelp": false,
598
+ "multiple": false,
599
+ "type": "option"
600
+ },
601
+ "from": {
602
+ "description": "Filter by sender address or domain",
603
+ "name": "from",
604
+ "hasDynamicHelp": false,
605
+ "multiple": false,
606
+ "type": "option"
607
+ },
608
+ "has-attachment": {
609
+ "description": "Only match emails with one or more attachments",
610
+ "name": "has-attachment",
611
+ "allowNo": false,
612
+ "type": "boolean"
613
+ },
614
+ "include-existing": {
615
+ "description": "Start from existing matching emails instead of only new arrivals",
616
+ "name": "include-existing",
617
+ "allowNo": false,
618
+ "type": "boolean"
619
+ },
620
+ "interval": {
621
+ "description": "Seconds to wait between empty polls",
622
+ "name": "interval",
623
+ "default": 2,
624
+ "hasDynamicHelp": false,
625
+ "multiple": false,
626
+ "type": "option"
627
+ },
628
+ "number": {
629
+ "char": "n",
630
+ "description": "Exit successfully after this many matching emails",
631
+ "name": "number",
632
+ "default": 1,
633
+ "hasDynamicHelp": false,
634
+ "multiple": false,
635
+ "type": "option"
636
+ },
637
+ "page-size": {
638
+ "description": "Emails to fetch per poll (1-100)",
639
+ "name": "page-size",
640
+ "default": 50,
641
+ "hasDynamicHelp": false,
642
+ "multiple": false,
643
+ "type": "option"
644
+ },
645
+ "q": {
646
+ "description": "Full-text search DSL query",
647
+ "name": "q",
648
+ "hasDynamicHelp": false,
649
+ "multiple": false,
650
+ "type": "option"
651
+ },
652
+ "since": {
653
+ "description": "Only match emails received on or after this date/time",
654
+ "name": "since",
655
+ "hasDynamicHelp": false,
656
+ "multiple": false,
657
+ "type": "option"
658
+ },
659
+ "spam-score-gte": {
660
+ "description": "Only match emails with spam score greater than or equal to this value",
661
+ "name": "spam-score-gte",
662
+ "hasDynamicHelp": false,
663
+ "multiple": false,
664
+ "type": "option"
665
+ },
666
+ "spam-score-lt": {
667
+ "description": "Only match emails with spam score below this value",
668
+ "name": "spam-score-lt",
669
+ "hasDynamicHelp": false,
670
+ "multiple": false,
671
+ "type": "option"
672
+ },
673
+ "subject": {
674
+ "description": "Full-text subject filter",
675
+ "name": "subject",
676
+ "hasDynamicHelp": false,
677
+ "multiple": false,
678
+ "type": "option"
679
+ },
680
+ "table": {
681
+ "description": "Print a human-readable table instead of JSONL",
682
+ "name": "table",
683
+ "allowNo": false,
684
+ "type": "boolean"
685
+ },
686
+ "timeout": {
687
+ "description": "Seconds to wait before exiting nonzero; 0 waits forever",
688
+ "name": "timeout",
689
+ "default": 300,
690
+ "hasDynamicHelp": false,
691
+ "multiple": false,
692
+ "type": "option"
693
+ },
694
+ "to": {
695
+ "description": "Filter by recipient address or domain",
696
+ "name": "to",
697
+ "hasDynamicHelp": false,
698
+ "multiple": false,
699
+ "type": "option"
700
+ }
701
+ },
702
+ "hasDynamicHelp": false,
703
+ "hiddenAliases": [],
704
+ "id": "emails:wait",
705
+ "pluginAlias": "@primitivedotdev/sdk",
706
+ "pluginName": "@primitivedotdev/sdk",
707
+ "pluginType": "core",
708
+ "strict": true,
709
+ "summary": "Wait for matching inbound emails",
710
+ "enableJsonFlag": false
711
+ },
347
712
  "functions:deploy": {
348
713
  "aliases": [],
349
714
  "args": {},
@@ -361,10 +726,20 @@
361
726
  "multiple": false,
362
727
  "type": "option"
363
728
  },
364
- "base-url": {
365
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
366
- "env": "PRIMITIVE_API_URL",
367
- "name": "base-url",
729
+ "api-base-url-1": {
730
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
731
+ "env": "PRIMITIVE_API_BASE_URL_1",
732
+ "hidden": true,
733
+ "name": "api-base-url-1",
734
+ "hasDynamicHelp": false,
735
+ "multiple": false,
736
+ "type": "option"
737
+ },
738
+ "api-base-url-2": {
739
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
740
+ "env": "PRIMITIVE_API_BASE_URL_2",
741
+ "hidden": true,
742
+ "name": "api-base-url-2",
368
743
  "hasDynamicHelp": false,
369
744
  "multiple": false,
370
745
  "type": "option"
@@ -426,10 +801,20 @@
426
801
  "multiple": false,
427
802
  "type": "option"
428
803
  },
429
- "base-url": {
430
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
431
- "env": "PRIMITIVE_API_URL",
432
- "name": "base-url",
804
+ "api-base-url-1": {
805
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
806
+ "env": "PRIMITIVE_API_BASE_URL_1",
807
+ "hidden": true,
808
+ "name": "api-base-url-1",
809
+ "hasDynamicHelp": false,
810
+ "multiple": false,
811
+ "type": "option"
812
+ },
813
+ "api-base-url-2": {
814
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
815
+ "env": "PRIMITIVE_API_BASE_URL_2",
816
+ "hidden": true,
817
+ "name": "api-base-url-2",
433
818
  "hasDynamicHelp": false,
434
819
  "multiple": false,
435
820
  "type": "option"
@@ -487,10 +872,20 @@
487
872
  "multiple": false,
488
873
  "type": "option"
489
874
  },
490
- "base-url": {
491
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
492
- "env": "PRIMITIVE_API_URL",
493
- "name": "base-url",
875
+ "api-base-url-1": {
876
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
877
+ "env": "PRIMITIVE_API_BASE_URL_1",
878
+ "hidden": true,
879
+ "name": "api-base-url-1",
880
+ "hasDynamicHelp": false,
881
+ "multiple": false,
882
+ "type": "option"
883
+ },
884
+ "api-base-url-2": {
885
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
886
+ "env": "PRIMITIVE_API_BASE_URL_2",
887
+ "hidden": true,
888
+ "name": "api-base-url-2",
494
889
  "hasDynamicHelp": false,
495
890
  "multiple": false,
496
891
  "type": "option"
@@ -525,10 +920,20 @@
525
920
  "multiple": false,
526
921
  "type": "option"
527
922
  },
528
- "base-url": {
529
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
530
- "env": "PRIMITIVE_API_URL",
531
- "name": "base-url",
923
+ "api-base-url-1": {
924
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
925
+ "env": "PRIMITIVE_API_BASE_URL_1",
926
+ "hidden": true,
927
+ "name": "api-base-url-1",
928
+ "hasDynamicHelp": false,
929
+ "multiple": false,
930
+ "type": "option"
931
+ },
932
+ "api-base-url-2": {
933
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
934
+ "env": "PRIMITIVE_API_BASE_URL_2",
935
+ "hidden": true,
936
+ "name": "api-base-url-2",
532
937
  "hasDynamicHelp": false,
533
938
  "multiple": false,
534
939
  "type": "option"
@@ -563,10 +968,20 @@
563
968
  "multiple": false,
564
969
  "type": "option"
565
970
  },
566
- "base-url": {
567
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
568
- "env": "PRIMITIVE_API_URL",
569
- "name": "base-url",
971
+ "api-base-url-1": {
972
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
973
+ "env": "PRIMITIVE_API_BASE_URL_1",
974
+ "hidden": true,
975
+ "name": "api-base-url-1",
976
+ "hasDynamicHelp": false,
977
+ "multiple": false,
978
+ "type": "option"
979
+ },
980
+ "api-base-url-2": {
981
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
982
+ "env": "PRIMITIVE_API_BASE_URL_2",
983
+ "hidden": true,
984
+ "name": "api-base-url-2",
570
985
  "hasDynamicHelp": false,
571
986
  "multiple": false,
572
987
  "type": "option"
@@ -601,10 +1016,20 @@
601
1016
  "multiple": false,
602
1017
  "type": "option"
603
1018
  },
604
- "base-url": {
605
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
606
- "env": "PRIMITIVE_API_URL",
607
- "name": "base-url",
1019
+ "api-base-url-1": {
1020
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
1021
+ "env": "PRIMITIVE_API_BASE_URL_1",
1022
+ "hidden": true,
1023
+ "name": "api-base-url-1",
1024
+ "hasDynamicHelp": false,
1025
+ "multiple": false,
1026
+ "type": "option"
1027
+ },
1028
+ "api-base-url-2": {
1029
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
1030
+ "env": "PRIMITIVE_API_BASE_URL_2",
1031
+ "hidden": true,
1032
+ "name": "api-base-url-2",
608
1033
  "hasDynamicHelp": false,
609
1034
  "multiple": false,
610
1035
  "type": "option"
@@ -639,10 +1064,20 @@
639
1064
  "multiple": false,
640
1065
  "type": "option"
641
1066
  },
642
- "base-url": {
643
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
644
- "env": "PRIMITIVE_API_URL",
645
- "name": "base-url",
1067
+ "api-base-url-1": {
1068
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
1069
+ "env": "PRIMITIVE_API_BASE_URL_1",
1070
+ "hidden": true,
1071
+ "name": "api-base-url-1",
1072
+ "hasDynamicHelp": false,
1073
+ "multiple": false,
1074
+ "type": "option"
1075
+ },
1076
+ "api-base-url-2": {
1077
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
1078
+ "env": "PRIMITIVE_API_BASE_URL_2",
1079
+ "hidden": true,
1080
+ "name": "api-base-url-2",
646
1081
  "hasDynamicHelp": false,
647
1082
  "multiple": false,
648
1083
  "type": "option"
@@ -704,10 +1139,20 @@
704
1139
  "multiple": false,
705
1140
  "type": "option"
706
1141
  },
707
- "base-url": {
708
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
709
- "env": "PRIMITIVE_API_URL",
710
- "name": "base-url",
1142
+ "api-base-url-1": {
1143
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
1144
+ "env": "PRIMITIVE_API_BASE_URL_1",
1145
+ "hidden": true,
1146
+ "name": "api-base-url-1",
1147
+ "hasDynamicHelp": false,
1148
+ "multiple": false,
1149
+ "type": "option"
1150
+ },
1151
+ "api-base-url-2": {
1152
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
1153
+ "env": "PRIMITIVE_API_BASE_URL_2",
1154
+ "hidden": true,
1155
+ "name": "api-base-url-2",
711
1156
  "hasDynamicHelp": false,
712
1157
  "multiple": false,
713
1158
  "type": "option"
@@ -763,10 +1208,20 @@
763
1208
  "multiple": false,
764
1209
  "type": "option"
765
1210
  },
766
- "base-url": {
767
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
768
- "env": "PRIMITIVE_API_URL",
769
- "name": "base-url",
1211
+ "api-base-url-1": {
1212
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
1213
+ "env": "PRIMITIVE_API_BASE_URL_1",
1214
+ "hidden": true,
1215
+ "name": "api-base-url-1",
1216
+ "hasDynamicHelp": false,
1217
+ "multiple": false,
1218
+ "type": "option"
1219
+ },
1220
+ "api-base-url-2": {
1221
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
1222
+ "env": "PRIMITIVE_API_BASE_URL_2",
1223
+ "hidden": true,
1224
+ "name": "api-base-url-2",
770
1225
  "hasDynamicHelp": false,
771
1226
  "multiple": false,
772
1227
  "type": "option"
@@ -822,10 +1277,20 @@
822
1277
  "multiple": false,
823
1278
  "type": "option"
824
1279
  },
825
- "base-url": {
826
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
827
- "env": "PRIMITIVE_API_URL",
828
- "name": "base-url",
1280
+ "api-base-url-1": {
1281
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
1282
+ "env": "PRIMITIVE_API_BASE_URL_1",
1283
+ "hidden": true,
1284
+ "name": "api-base-url-1",
1285
+ "hasDynamicHelp": false,
1286
+ "multiple": false,
1287
+ "type": "option"
1288
+ },
1289
+ "api-base-url-2": {
1290
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
1291
+ "env": "PRIMITIVE_API_BASE_URL_2",
1292
+ "hidden": true,
1293
+ "name": "api-base-url-2",
829
1294
  "hasDynamicHelp": false,
830
1295
  "multiple": false,
831
1296
  "type": "option"
@@ -881,10 +1346,20 @@
881
1346
  "multiple": false,
882
1347
  "type": "option"
883
1348
  },
884
- "base-url": {
885
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
886
- "env": "PRIMITIVE_API_URL",
887
- "name": "base-url",
1349
+ "api-base-url-1": {
1350
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
1351
+ "env": "PRIMITIVE_API_BASE_URL_1",
1352
+ "hidden": true,
1353
+ "name": "api-base-url-1",
1354
+ "hasDynamicHelp": false,
1355
+ "multiple": false,
1356
+ "type": "option"
1357
+ },
1358
+ "api-base-url-2": {
1359
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
1360
+ "env": "PRIMITIVE_API_BASE_URL_2",
1361
+ "hidden": true,
1362
+ "name": "api-base-url-2",
888
1363
  "hasDynamicHelp": false,
889
1364
  "multiple": false,
890
1365
  "type": "option"
@@ -940,10 +1415,20 @@
940
1415
  "multiple": false,
941
1416
  "type": "option"
942
1417
  },
943
- "base-url": {
944
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
945
- "env": "PRIMITIVE_API_URL",
946
- "name": "base-url",
1418
+ "api-base-url-1": {
1419
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
1420
+ "env": "PRIMITIVE_API_BASE_URL_1",
1421
+ "hidden": true,
1422
+ "name": "api-base-url-1",
1423
+ "hasDynamicHelp": false,
1424
+ "multiple": false,
1425
+ "type": "option"
1426
+ },
1427
+ "api-base-url-2": {
1428
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
1429
+ "env": "PRIMITIVE_API_BASE_URL_2",
1430
+ "hidden": true,
1431
+ "name": "api-base-url-2",
947
1432
  "hasDynamicHelp": false,
948
1433
  "multiple": false,
949
1434
  "type": "option"
@@ -986,10 +1471,20 @@
986
1471
  "multiple": false,
987
1472
  "type": "option"
988
1473
  },
989
- "base-url": {
990
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
991
- "env": "PRIMITIVE_API_URL",
992
- "name": "base-url",
1474
+ "api-base-url-1": {
1475
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
1476
+ "env": "PRIMITIVE_API_BASE_URL_1",
1477
+ "hidden": true,
1478
+ "name": "api-base-url-1",
1479
+ "hasDynamicHelp": false,
1480
+ "multiple": false,
1481
+ "type": "option"
1482
+ },
1483
+ "api-base-url-2": {
1484
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
1485
+ "env": "PRIMITIVE_API_BASE_URL_2",
1486
+ "hidden": true,
1487
+ "name": "api-base-url-2",
993
1488
  "hasDynamicHelp": false,
994
1489
  "multiple": false,
995
1490
  "type": "option"
@@ -1024,10 +1519,20 @@
1024
1519
  "multiple": false,
1025
1520
  "type": "option"
1026
1521
  },
1027
- "base-url": {
1028
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
1029
- "env": "PRIMITIVE_API_URL",
1030
- "name": "base-url",
1522
+ "api-base-url-1": {
1523
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
1524
+ "env": "PRIMITIVE_API_BASE_URL_1",
1525
+ "hidden": true,
1526
+ "name": "api-base-url-1",
1527
+ "hasDynamicHelp": false,
1528
+ "multiple": false,
1529
+ "type": "option"
1530
+ },
1531
+ "api-base-url-2": {
1532
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
1533
+ "env": "PRIMITIVE_API_BASE_URL_2",
1534
+ "hidden": true,
1535
+ "name": "api-base-url-2",
1031
1536
  "hasDynamicHelp": false,
1032
1537
  "multiple": false,
1033
1538
  "type": "option"
@@ -1097,10 +1602,20 @@
1097
1602
  "multiple": false,
1098
1603
  "type": "option"
1099
1604
  },
1100
- "base-url": {
1101
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
1102
- "env": "PRIMITIVE_API_URL",
1103
- "name": "base-url",
1605
+ "api-base-url-1": {
1606
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
1607
+ "env": "PRIMITIVE_API_BASE_URL_1",
1608
+ "hidden": true,
1609
+ "name": "api-base-url-1",
1610
+ "hasDynamicHelp": false,
1611
+ "multiple": false,
1612
+ "type": "option"
1613
+ },
1614
+ "api-base-url-2": {
1615
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
1616
+ "env": "PRIMITIVE_API_BASE_URL_2",
1617
+ "hidden": true,
1618
+ "name": "api-base-url-2",
1104
1619
  "hasDynamicHelp": false,
1105
1620
  "multiple": false,
1106
1621
  "type": "option"
@@ -1143,10 +1658,20 @@
1143
1658
  "multiple": false,
1144
1659
  "type": "option"
1145
1660
  },
1146
- "base-url": {
1147
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
1148
- "env": "PRIMITIVE_API_URL",
1149
- "name": "base-url",
1661
+ "api-base-url-1": {
1662
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
1663
+ "env": "PRIMITIVE_API_BASE_URL_1",
1664
+ "hidden": true,
1665
+ "name": "api-base-url-1",
1666
+ "hasDynamicHelp": false,
1667
+ "multiple": false,
1668
+ "type": "option"
1669
+ },
1670
+ "api-base-url-2": {
1671
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
1672
+ "env": "PRIMITIVE_API_BASE_URL_2",
1673
+ "hidden": true,
1674
+ "name": "api-base-url-2",
1150
1675
  "hasDynamicHelp": false,
1151
1676
  "multiple": false,
1152
1677
  "type": "option"
@@ -1189,10 +1714,20 @@
1189
1714
  "multiple": false,
1190
1715
  "type": "option"
1191
1716
  },
1192
- "base-url": {
1193
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
1194
- "env": "PRIMITIVE_API_URL",
1195
- "name": "base-url",
1717
+ "api-base-url-1": {
1718
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
1719
+ "env": "PRIMITIVE_API_BASE_URL_1",
1720
+ "hidden": true,
1721
+ "name": "api-base-url-1",
1722
+ "hasDynamicHelp": false,
1723
+ "multiple": false,
1724
+ "type": "option"
1725
+ },
1726
+ "api-base-url-2": {
1727
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
1728
+ "env": "PRIMITIVE_API_BASE_URL_2",
1729
+ "hidden": true,
1730
+ "name": "api-base-url-2",
1196
1731
  "hasDynamicHelp": false,
1197
1732
  "multiple": false,
1198
1733
  "type": "option"
@@ -1235,10 +1770,20 @@
1235
1770
  "multiple": false,
1236
1771
  "type": "option"
1237
1772
  },
1238
- "base-url": {
1239
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
1240
- "env": "PRIMITIVE_API_URL",
1241
- "name": "base-url",
1773
+ "api-base-url-1": {
1774
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
1775
+ "env": "PRIMITIVE_API_BASE_URL_1",
1776
+ "hidden": true,
1777
+ "name": "api-base-url-1",
1778
+ "hasDynamicHelp": false,
1779
+ "multiple": false,
1780
+ "type": "option"
1781
+ },
1782
+ "api-base-url-2": {
1783
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
1784
+ "env": "PRIMITIVE_API_BASE_URL_2",
1785
+ "hidden": true,
1786
+ "name": "api-base-url-2",
1242
1787
  "hasDynamicHelp": false,
1243
1788
  "multiple": false,
1244
1789
  "type": "option"
@@ -1296,10 +1841,91 @@
1296
1841
  "multiple": false,
1297
1842
  "type": "option"
1298
1843
  },
1299
- "base-url": {
1300
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
1301
- "env": "PRIMITIVE_API_URL",
1302
- "name": "base-url",
1844
+ "api-base-url-1": {
1845
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
1846
+ "env": "PRIMITIVE_API_BASE_URL_1",
1847
+ "hidden": true,
1848
+ "name": "api-base-url-1",
1849
+ "hasDynamicHelp": false,
1850
+ "multiple": false,
1851
+ "type": "option"
1852
+ },
1853
+ "api-base-url-2": {
1854
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
1855
+ "env": "PRIMITIVE_API_BASE_URL_2",
1856
+ "hidden": true,
1857
+ "name": "api-base-url-2",
1858
+ "hasDynamicHelp": false,
1859
+ "multiple": false,
1860
+ "type": "option"
1861
+ },
1862
+ "time": {
1863
+ "description": "Print the wall-clock duration of this command to stderr after it completes (e.g. `[time: 1.34s]`). Useful for measuring `--wait` send latency, comparing CLI overhead, or capturing timing in scripts.",
1864
+ "name": "time",
1865
+ "allowNo": false,
1866
+ "type": "boolean"
1867
+ },
1868
+ "id": {
1869
+ "description": "Resource UUID",
1870
+ "name": "id",
1871
+ "required": true,
1872
+ "hasDynamicHelp": false,
1873
+ "multiple": false,
1874
+ "type": "option"
1875
+ },
1876
+ "token": {
1877
+ "description": "Signed download token from webhook payload",
1878
+ "name": "token",
1879
+ "required": false,
1880
+ "hasDynamicHelp": false,
1881
+ "multiple": false,
1882
+ "type": "option"
1883
+ },
1884
+ "output": {
1885
+ "description": "Write binary response bytes to a file",
1886
+ "name": "output",
1887
+ "hasDynamicHelp": false,
1888
+ "multiple": false,
1889
+ "type": "option"
1890
+ }
1891
+ },
1892
+ "hasDynamicHelp": false,
1893
+ "hiddenAliases": [],
1894
+ "id": "emails:download-raw-email",
1895
+ "pluginAlias": "@primitivedotdev/sdk",
1896
+ "pluginName": "@primitivedotdev/sdk",
1897
+ "pluginType": "core",
1898
+ "strict": true,
1899
+ "summary": "Download raw email",
1900
+ "enableJsonFlag": false
1901
+ },
1902
+ "emails:get-email": {
1903
+ "aliases": [],
1904
+ "args": {},
1905
+ "description": "Returns the full record for an inbound email received at one\nof your verified domains, including the parsed text and HTML\nbodies, threading metadata, SMTP envelope detail, webhook\ndelivery state, and a `replies` array for any outbound sends\nrecorded as replies to this inbound.\n\nFor listing inbound emails (with cursor pagination, status\nand date filters, and free-text search), use\n`/emails`. Outbound (sent) email records are NOT returned\nhere; use `/sent-emails/{id}` for those.\n\nThe response carries four sender-shaped fields whose\nmeanings overlap. `from_email` is the canonical \"who sent\nthis\" field for most use cases (parsed bare address from\nthe `From:` header, with a `sender` fallback). `from_header`\nis the raw header including any display name. `sender` and\n`smtp_mail_from` both carry the SMTP envelope MAIL FROM\n(return-path) and are equal by construction; `sender` is\nthe older field name retained for compatibility. See\n`primitive describe emails:get-email | jq '.responseSchema.properties'`\nfor per-field detail.\n",
1906
+ "flags": {
1907
+ "api-key": {
1908
+ "description": "Primitive API key (defaults to PRIMITIVE_API_KEY or saved `primitive login` credentials)",
1909
+ "env": "PRIMITIVE_API_KEY",
1910
+ "name": "api-key",
1911
+ "hasDynamicHelp": false,
1912
+ "multiple": false,
1913
+ "type": "option"
1914
+ },
1915
+ "api-base-url-1": {
1916
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
1917
+ "env": "PRIMITIVE_API_BASE_URL_1",
1918
+ "hidden": true,
1919
+ "name": "api-base-url-1",
1920
+ "hasDynamicHelp": false,
1921
+ "multiple": false,
1922
+ "type": "option"
1923
+ },
1924
+ "api-base-url-2": {
1925
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
1926
+ "env": "PRIMITIVE_API_BASE_URL_2",
1927
+ "hidden": true,
1928
+ "name": "api-base-url-2",
1303
1929
  "hasDynamicHelp": false,
1304
1930
  "multiple": false,
1305
1931
  "type": "option"
@@ -1317,18 +1943,107 @@
1317
1943
  "hasDynamicHelp": false,
1318
1944
  "multiple": false,
1319
1945
  "type": "option"
1946
+ }
1947
+ },
1948
+ "hasDynamicHelp": false,
1949
+ "hiddenAliases": [],
1950
+ "id": "emails:get-email",
1951
+ "pluginAlias": "@primitivedotdev/sdk",
1952
+ "pluginName": "@primitivedotdev/sdk",
1953
+ "pluginType": "core",
1954
+ "strict": true,
1955
+ "summary": "Get inbound email by id",
1956
+ "enableJsonFlag": false
1957
+ },
1958
+ "emails:list-emails": {
1959
+ "aliases": [],
1960
+ "args": {},
1961
+ "description": "Returns a paginated list of INBOUND emails received at your\nverified domains. Outbound messages sent via /send-mail are\nnot included; this endpoint is the inbox view, not a\nunified send/receive history.\n\nSupports filtering by domain, status, date range, and\nfree-text search across subject, sender, and recipient\nfields.\n\nFor a compact text-table summary of the most recent N\ninbounds (no filters, no cursor pagination), the CLI ships\n`primitive emails:latest` as a one-line-per-email shortcut.\nIt's TTY-aware so id columns are full UUIDs when piped, and\na `--json` flag returns the same envelope this endpoint\ndoes. Use whichever fits the call site.\n",
1962
+ "flags": {
1963
+ "api-key": {
1964
+ "description": "Primitive API key (defaults to PRIMITIVE_API_KEY or saved `primitive login` credentials)",
1965
+ "env": "PRIMITIVE_API_KEY",
1966
+ "name": "api-key",
1967
+ "hasDynamicHelp": false,
1968
+ "multiple": false,
1969
+ "type": "option"
1970
+ },
1971
+ "api-base-url-1": {
1972
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
1973
+ "env": "PRIMITIVE_API_BASE_URL_1",
1974
+ "hidden": true,
1975
+ "name": "api-base-url-1",
1976
+ "hasDynamicHelp": false,
1977
+ "multiple": false,
1978
+ "type": "option"
1979
+ },
1980
+ "api-base-url-2": {
1981
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
1982
+ "env": "PRIMITIVE_API_BASE_URL_2",
1983
+ "hidden": true,
1984
+ "name": "api-base-url-2",
1985
+ "hasDynamicHelp": false,
1986
+ "multiple": false,
1987
+ "type": "option"
1988
+ },
1989
+ "time": {
1990
+ "description": "Print the wall-clock duration of this command to stderr after it completes (e.g. `[time: 1.34s]`). Useful for measuring `--wait` send latency, comparing CLI overhead, or capturing timing in scripts.",
1991
+ "name": "time",
1992
+ "allowNo": false,
1993
+ "type": "boolean"
1994
+ },
1995
+ "cursor": {
1996
+ "description": "Pagination cursor from a previous response's `meta.cursor` field.\nFormat: `{ISO-datetime}|{id}`\n",
1997
+ "name": "cursor",
1998
+ "required": false,
1999
+ "hasDynamicHelp": false,
2000
+ "multiple": false,
2001
+ "type": "option"
2002
+ },
2003
+ "limit": {
2004
+ "description": "Number of results per page",
2005
+ "name": "limit",
2006
+ "required": false,
2007
+ "hasDynamicHelp": false,
2008
+ "multiple": false,
2009
+ "type": "option"
2010
+ },
2011
+ "domain-id": {
2012
+ "description": "Filter by domain ID",
2013
+ "name": "domain-id",
2014
+ "required": false,
2015
+ "hasDynamicHelp": false,
2016
+ "multiple": false,
2017
+ "type": "option"
2018
+ },
2019
+ "status": {
2020
+ "description": "Filter inbound rows by lifecycle status. See `EmailStatus`\nfor what each value means. Note that the webhook delivery\nstate is a SEPARATE lifecycle on the same row; filter by\n`webhook_status` semantics is not currently supported on\nthis endpoint.\n",
2021
+ "name": "status",
2022
+ "required": false,
2023
+ "hasDynamicHelp": false,
2024
+ "multiple": false,
2025
+ "type": "option"
2026
+ },
2027
+ "search": {
2028
+ "description": "Search subject, sender, and recipient (case-insensitive)",
2029
+ "name": "search",
2030
+ "required": false,
2031
+ "hasDynamicHelp": false,
2032
+ "multiple": false,
2033
+ "type": "option"
1320
2034
  },
1321
- "token": {
1322
- "description": "Signed download token from webhook payload",
1323
- "name": "token",
2035
+ "date-from": {
2036
+ "description": "Filter emails created on or after this timestamp",
2037
+ "name": "date-from",
1324
2038
  "required": false,
1325
2039
  "hasDynamicHelp": false,
1326
2040
  "multiple": false,
1327
2041
  "type": "option"
1328
2042
  },
1329
- "output": {
1330
- "description": "Write binary response bytes to a file",
1331
- "name": "output",
2043
+ "date-to": {
2044
+ "description": "Filter emails created on or before this timestamp",
2045
+ "name": "date-to",
2046
+ "required": false,
1332
2047
  "hasDynamicHelp": false,
1333
2048
  "multiple": false,
1334
2049
  "type": "option"
@@ -1336,18 +2051,18 @@
1336
2051
  },
1337
2052
  "hasDynamicHelp": false,
1338
2053
  "hiddenAliases": [],
1339
- "id": "emails:download-raw-email",
2054
+ "id": "emails:list-emails",
1340
2055
  "pluginAlias": "@primitivedotdev/sdk",
1341
2056
  "pluginName": "@primitivedotdev/sdk",
1342
2057
  "pluginType": "core",
1343
2058
  "strict": true,
1344
- "summary": "Download raw email",
2059
+ "summary": "List inbound emails",
1345
2060
  "enableJsonFlag": false
1346
2061
  },
1347
- "emails:get-email": {
2062
+ "emails:replay-email-webhooks": {
1348
2063
  "aliases": [],
1349
2064
  "args": {},
1350
- "description": "Returns the full record for an inbound email received at one\nof your verified domains, including the parsed text and HTML\nbodies, threading metadata, SMTP envelope detail, webhook\ndelivery state, and a `replies` array for any outbound sends\nrecorded as replies to this inbound.\n\nFor listing inbound emails (with cursor pagination, status\nand date filters, and free-text search), use\n`/emails`. Outbound (sent) email records are NOT returned\nhere; use `/sent-emails/{id}` for those.\n\nThe response carries four sender-shaped fields whose\nmeanings overlap. `from_email` is the canonical \"who sent\nthis\" field for most use cases (parsed bare address from\nthe `From:` header, with a `sender` fallback). `from_header`\nis the raw header including any display name. `sender` and\n`smtp_mail_from` both carry the SMTP envelope MAIL FROM\n(return-path) and are equal by construction; `sender` is\nthe older field name retained for compatibility. See\n`primitive describe emails:get-email | jq '.responseSchema.properties'`\nfor per-field detail.\n",
2065
+ "description": "Re-delivers the webhook payload for this email to all active\nendpoints matching the email's domain. Rate limited per-email\n(short cooldown between successive replays of the same email)\nand per-org (burst + sustained windows), sharing an org-wide\nbudget with delivery replays.\n",
1351
2066
  "flags": {
1352
2067
  "api-key": {
1353
2068
  "description": "Primitive API key (defaults to PRIMITIVE_API_KEY or saved `primitive login` credentials)",
@@ -1357,10 +2072,20 @@
1357
2072
  "multiple": false,
1358
2073
  "type": "option"
1359
2074
  },
1360
- "base-url": {
1361
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
1362
- "env": "PRIMITIVE_API_URL",
1363
- "name": "base-url",
2075
+ "api-base-url-1": {
2076
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
2077
+ "env": "PRIMITIVE_API_BASE_URL_1",
2078
+ "hidden": true,
2079
+ "name": "api-base-url-1",
2080
+ "hasDynamicHelp": false,
2081
+ "multiple": false,
2082
+ "type": "option"
2083
+ },
2084
+ "api-base-url-2": {
2085
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
2086
+ "env": "PRIMITIVE_API_BASE_URL_2",
2087
+ "hidden": true,
2088
+ "name": "api-base-url-2",
1364
2089
  "hasDynamicHelp": false,
1365
2090
  "multiple": false,
1366
2091
  "type": "option"
@@ -1382,18 +2107,18 @@
1382
2107
  },
1383
2108
  "hasDynamicHelp": false,
1384
2109
  "hiddenAliases": [],
1385
- "id": "emails:get-email",
2110
+ "id": "emails:replay-email-webhooks",
1386
2111
  "pluginAlias": "@primitivedotdev/sdk",
1387
2112
  "pluginName": "@primitivedotdev/sdk",
1388
2113
  "pluginType": "core",
1389
2114
  "strict": true,
1390
- "summary": "Get inbound email by id",
2115
+ "summary": "Replay email webhooks",
1391
2116
  "enableJsonFlag": false
1392
2117
  },
1393
- "emails:list-emails": {
2118
+ "emails:search-emails": {
1394
2119
  "aliases": [],
1395
2120
  "args": {},
1396
- "description": "Returns a paginated list of INBOUND emails received at your\nverified domains. Outbound messages sent via /send-mail are\nnot included; this endpoint is the inbox view, not a\nunified send/receive history.\n\nSupports filtering by domain, status, date range, and\nfree-text search across subject, sender, and recipient\nfields.\n\nFor a compact text-table summary of the most recent N\ninbounds (no filters, no cursor pagination), the CLI ships\n`primitive emails:latest` as a one-line-per-email shortcut.\nIt's TTY-aware so id columns are full UUIDs when piped, and\na `--json` flag returns the same envelope this endpoint\ndoes. Use whichever fits the call site.\n",
2121
+ "description": "Searches inbound emails with structured filters and optional\nfull-text matching across parsed email fields. This endpoint is\noptimized for filtered inbox views and CLI polling workflows:\ncallers that only need new accepted mail can pass\n`sort=received_at_asc`, `snippet=false`, `include_facets=false`,\nand a `date_from` timestamp.\n\n`q`, `subject`, and `body` use the same English full-text index\nas the web inbox search. Structured filters such as `from`, `to`,\n`domain_id`, status, attachment presence, and spam score bounds\nare combined with the text query.\n",
1397
2122
  "flags": {
1398
2123
  "api-key": {
1399
2124
  "description": "Primitive API key (defaults to PRIMITIVE_API_KEY or saved `primitive login` credentials)",
@@ -1403,10 +2128,20 @@
1403
2128
  "multiple": false,
1404
2129
  "type": "option"
1405
2130
  },
1406
- "base-url": {
1407
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
1408
- "env": "PRIMITIVE_API_URL",
1409
- "name": "base-url",
2131
+ "api-base-url-1": {
2132
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
2133
+ "env": "PRIMITIVE_API_BASE_URL_1",
2134
+ "hidden": true,
2135
+ "name": "api-base-url-1",
2136
+ "hasDynamicHelp": false,
2137
+ "multiple": false,
2138
+ "type": "option"
2139
+ },
2140
+ "api-base-url-2": {
2141
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
2142
+ "env": "PRIMITIVE_API_BASE_URL_2",
2143
+ "hidden": true,
2144
+ "name": "api-base-url-2",
1410
2145
  "hasDynamicHelp": false,
1411
2146
  "multiple": false,
1412
2147
  "type": "option"
@@ -1417,48 +2152,64 @@
1417
2152
  "allowNo": false,
1418
2153
  "type": "boolean"
1419
2154
  },
1420
- "cursor": {
1421
- "description": "Pagination cursor from a previous response's `meta.cursor` field.\nFormat: `{ISO-datetime}|{id}`\n",
1422
- "name": "cursor",
2155
+ "q": {
2156
+ "description": "Full-text search DSL query.",
2157
+ "name": "q",
1423
2158
  "required": false,
1424
2159
  "hasDynamicHelp": false,
1425
2160
  "multiple": false,
1426
2161
  "type": "option"
1427
2162
  },
1428
- "limit": {
1429
- "description": "Number of results per page",
1430
- "name": "limit",
2163
+ "from": {
2164
+ "description": "Filter by sender address or sender domain.",
2165
+ "name": "from",
1431
2166
  "required": false,
1432
2167
  "hasDynamicHelp": false,
1433
2168
  "multiple": false,
1434
2169
  "type": "option"
1435
2170
  },
1436
- "domain-id": {
1437
- "description": "Filter by domain ID",
1438
- "name": "domain-id",
2171
+ "to": {
2172
+ "description": "Filter by recipient address or recipient domain.",
2173
+ "name": "to",
1439
2174
  "required": false,
1440
2175
  "hasDynamicHelp": false,
1441
2176
  "multiple": false,
1442
2177
  "type": "option"
1443
2178
  },
1444
- "status": {
1445
- "description": "Filter inbound rows by lifecycle status. See `EmailStatus`\nfor what each value means. Note that the webhook delivery\nstate is a SEPARATE lifecycle on the same row; filter by\n`webhook_status` semantics is not currently supported on\nthis endpoint.\n",
1446
- "name": "status",
2179
+ "subject": {
2180
+ "description": "Full-text search restricted to the subject field.",
2181
+ "name": "subject",
1447
2182
  "required": false,
1448
2183
  "hasDynamicHelp": false,
1449
2184
  "multiple": false,
1450
2185
  "type": "option"
1451
2186
  },
1452
- "search": {
1453
- "description": "Search subject, sender, and recipient (case-insensitive)",
1454
- "name": "search",
2187
+ "body": {
2188
+ "description": "Full-text search restricted to the parsed text body.",
2189
+ "name": "body",
2190
+ "required": false,
2191
+ "hasDynamicHelp": false,
2192
+ "multiple": false,
2193
+ "type": "option"
2194
+ },
2195
+ "domain-id": {
2196
+ "description": "Filter by domain ID.",
2197
+ "name": "domain-id",
2198
+ "required": false,
2199
+ "hasDynamicHelp": false,
2200
+ "multiple": false,
2201
+ "type": "option"
2202
+ },
2203
+ "status": {
2204
+ "description": "Filter by inbound email lifecycle status.",
2205
+ "name": "status",
1455
2206
  "required": false,
1456
2207
  "hasDynamicHelp": false,
1457
2208
  "multiple": false,
1458
2209
  "type": "option"
1459
2210
  },
1460
2211
  "date-from": {
1461
- "description": "Filter emails created on or after this timestamp",
2212
+ "description": "Filter emails received on or after this timestamp.",
1462
2213
  "name": "date-from",
1463
2214
  "required": false,
1464
2215
  "hasDynamicHelp": false,
@@ -1466,68 +2217,103 @@
1466
2217
  "type": "option"
1467
2218
  },
1468
2219
  "date-to": {
1469
- "description": "Filter emails created on or before this timestamp",
2220
+ "description": "Filter emails received on or before this timestamp.",
1470
2221
  "name": "date-to",
1471
2222
  "required": false,
1472
2223
  "hasDynamicHelp": false,
1473
2224
  "multiple": false,
1474
2225
  "type": "option"
1475
- }
1476
- },
1477
- "hasDynamicHelp": false,
1478
- "hiddenAliases": [],
1479
- "id": "emails:list-emails",
1480
- "pluginAlias": "@primitivedotdev/sdk",
1481
- "pluginName": "@primitivedotdev/sdk",
1482
- "pluginType": "core",
1483
- "strict": true,
1484
- "summary": "List inbound emails",
1485
- "enableJsonFlag": false
1486
- },
1487
- "emails:replay-email-webhooks": {
1488
- "aliases": [],
1489
- "args": {},
1490
- "description": "Re-delivers the webhook payload for this email to all active\nendpoints matching the email's domain. Rate limited per-email\n(short cooldown between successive replays of the same email)\nand per-org (burst + sustained windows), sharing an org-wide\nbudget with delivery replays.\n",
1491
- "flags": {
1492
- "api-key": {
1493
- "description": "Primitive API key (defaults to PRIMITIVE_API_KEY or saved `primitive login` credentials)",
1494
- "env": "PRIMITIVE_API_KEY",
1495
- "name": "api-key",
2226
+ },
2227
+ "has-attachment": {
2228
+ "description": "Filter by whether the email has one or more attachments.",
2229
+ "name": "has-attachment",
2230
+ "required": false,
1496
2231
  "hasDynamicHelp": false,
1497
2232
  "multiple": false,
2233
+ "options": [
2234
+ "true",
2235
+ "false"
2236
+ ],
1498
2237
  "type": "option"
1499
2238
  },
1500
- "base-url": {
1501
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
1502
- "env": "PRIMITIVE_API_URL",
1503
- "name": "base-url",
2239
+ "spam-score-lt": {
2240
+ "description": "Filter to emails with spam score below this value.",
2241
+ "name": "spam-score-lt",
2242
+ "required": false,
1504
2243
  "hasDynamicHelp": false,
1505
2244
  "multiple": false,
1506
2245
  "type": "option"
1507
2246
  },
1508
- "time": {
1509
- "description": "Print the wall-clock duration of this command to stderr after it completes (e.g. `[time: 1.34s]`). Useful for measuring `--wait` send latency, comparing CLI overhead, or capturing timing in scripts.",
1510
- "name": "time",
1511
- "allowNo": false,
1512
- "type": "boolean"
2247
+ "spam-score-gte": {
2248
+ "description": "Filter to emails with spam score greater than or equal to this value.",
2249
+ "name": "spam-score-gte",
2250
+ "required": false,
2251
+ "hasDynamicHelp": false,
2252
+ "multiple": false,
2253
+ "type": "option"
1513
2254
  },
1514
- "id": {
1515
- "description": "Resource UUID",
1516
- "name": "id",
1517
- "required": true,
2255
+ "sort": {
2256
+ "description": "Sort mode. Defaults to relevance when a text query is present,\notherwise `received_at_desc`.\n",
2257
+ "name": "sort",
2258
+ "required": false,
2259
+ "hasDynamicHelp": false,
2260
+ "multiple": false,
2261
+ "options": [
2262
+ "relevance",
2263
+ "received_at_desc",
2264
+ "received_at_asc"
2265
+ ],
2266
+ "type": "option"
2267
+ },
2268
+ "cursor": {
2269
+ "description": "Opaque pagination cursor from a previous search response.",
2270
+ "name": "cursor",
2271
+ "required": false,
1518
2272
  "hasDynamicHelp": false,
1519
2273
  "multiple": false,
1520
2274
  "type": "option"
2275
+ },
2276
+ "limit": {
2277
+ "description": "Number of results per page",
2278
+ "name": "limit",
2279
+ "required": false,
2280
+ "hasDynamicHelp": false,
2281
+ "multiple": false,
2282
+ "type": "option"
2283
+ },
2284
+ "snippet": {
2285
+ "description": "Include subject/body highlight snippets when text search is active.",
2286
+ "name": "snippet",
2287
+ "required": false,
2288
+ "hasDynamicHelp": false,
2289
+ "multiple": false,
2290
+ "options": [
2291
+ "true",
2292
+ "false"
2293
+ ],
2294
+ "type": "option"
2295
+ },
2296
+ "include-facets": {
2297
+ "description": "Include facet counts for sender, domain, status, and attachment presence.",
2298
+ "name": "include-facets",
2299
+ "required": false,
2300
+ "hasDynamicHelp": false,
2301
+ "multiple": false,
2302
+ "options": [
2303
+ "true",
2304
+ "false"
2305
+ ],
2306
+ "type": "option"
1521
2307
  }
1522
2308
  },
1523
2309
  "hasDynamicHelp": false,
1524
2310
  "hiddenAliases": [],
1525
- "id": "emails:replay-email-webhooks",
2311
+ "id": "emails:search-emails",
1526
2312
  "pluginAlias": "@primitivedotdev/sdk",
1527
2313
  "pluginName": "@primitivedotdev/sdk",
1528
2314
  "pluginType": "core",
1529
2315
  "strict": true,
1530
- "summary": "Replay email webhooks",
2316
+ "summary": "Search inbound emails",
1531
2317
  "enableJsonFlag": false
1532
2318
  },
1533
2319
  "endpoints:create-endpoint": {
@@ -1543,10 +2329,20 @@
1543
2329
  "multiple": false,
1544
2330
  "type": "option"
1545
2331
  },
1546
- "base-url": {
1547
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
1548
- "env": "PRIMITIVE_API_URL",
1549
- "name": "base-url",
2332
+ "api-base-url-1": {
2333
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
2334
+ "env": "PRIMITIVE_API_BASE_URL_1",
2335
+ "hidden": true,
2336
+ "name": "api-base-url-1",
2337
+ "hasDynamicHelp": false,
2338
+ "multiple": false,
2339
+ "type": "option"
2340
+ },
2341
+ "api-base-url-2": {
2342
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
2343
+ "env": "PRIMITIVE_API_BASE_URL_2",
2344
+ "hidden": true,
2345
+ "name": "api-base-url-2",
1550
2346
  "hasDynamicHelp": false,
1551
2347
  "multiple": false,
1552
2348
  "type": "option"
@@ -1615,10 +2411,20 @@
1615
2411
  "multiple": false,
1616
2412
  "type": "option"
1617
2413
  },
1618
- "base-url": {
1619
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
1620
- "env": "PRIMITIVE_API_URL",
1621
- "name": "base-url",
2414
+ "api-base-url-1": {
2415
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
2416
+ "env": "PRIMITIVE_API_BASE_URL_1",
2417
+ "hidden": true,
2418
+ "name": "api-base-url-1",
2419
+ "hasDynamicHelp": false,
2420
+ "multiple": false,
2421
+ "type": "option"
2422
+ },
2423
+ "api-base-url-2": {
2424
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
2425
+ "env": "PRIMITIVE_API_BASE_URL_2",
2426
+ "hidden": true,
2427
+ "name": "api-base-url-2",
1622
2428
  "hasDynamicHelp": false,
1623
2429
  "multiple": false,
1624
2430
  "type": "option"
@@ -1661,10 +2467,20 @@
1661
2467
  "multiple": false,
1662
2468
  "type": "option"
1663
2469
  },
1664
- "base-url": {
1665
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
1666
- "env": "PRIMITIVE_API_URL",
1667
- "name": "base-url",
2470
+ "api-base-url-1": {
2471
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
2472
+ "env": "PRIMITIVE_API_BASE_URL_1",
2473
+ "hidden": true,
2474
+ "name": "api-base-url-1",
2475
+ "hasDynamicHelp": false,
2476
+ "multiple": false,
2477
+ "type": "option"
2478
+ },
2479
+ "api-base-url-2": {
2480
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
2481
+ "env": "PRIMITIVE_API_BASE_URL_2",
2482
+ "hidden": true,
2483
+ "name": "api-base-url-2",
1668
2484
  "hasDynamicHelp": false,
1669
2485
  "multiple": false,
1670
2486
  "type": "option"
@@ -1699,10 +2515,20 @@
1699
2515
  "multiple": false,
1700
2516
  "type": "option"
1701
2517
  },
1702
- "base-url": {
1703
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
1704
- "env": "PRIMITIVE_API_URL",
1705
- "name": "base-url",
2518
+ "api-base-url-1": {
2519
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
2520
+ "env": "PRIMITIVE_API_BASE_URL_1",
2521
+ "hidden": true,
2522
+ "name": "api-base-url-1",
2523
+ "hasDynamicHelp": false,
2524
+ "multiple": false,
2525
+ "type": "option"
2526
+ },
2527
+ "api-base-url-2": {
2528
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
2529
+ "env": "PRIMITIVE_API_BASE_URL_2",
2530
+ "hidden": true,
2531
+ "name": "api-base-url-2",
1706
2532
  "hasDynamicHelp": false,
1707
2533
  "multiple": false,
1708
2534
  "type": "option"
@@ -1745,10 +2571,20 @@
1745
2571
  "multiple": false,
1746
2572
  "type": "option"
1747
2573
  },
1748
- "base-url": {
1749
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
1750
- "env": "PRIMITIVE_API_URL",
1751
- "name": "base-url",
2574
+ "api-base-url-1": {
2575
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
2576
+ "env": "PRIMITIVE_API_BASE_URL_1",
2577
+ "hidden": true,
2578
+ "name": "api-base-url-1",
2579
+ "hasDynamicHelp": false,
2580
+ "multiple": false,
2581
+ "type": "option"
2582
+ },
2583
+ "api-base-url-2": {
2584
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
2585
+ "env": "PRIMITIVE_API_BASE_URL_2",
2586
+ "hidden": true,
2587
+ "name": "api-base-url-2",
1752
2588
  "hasDynamicHelp": false,
1753
2589
  "multiple": false,
1754
2590
  "type": "option"
@@ -1825,10 +2661,20 @@
1825
2661
  "multiple": false,
1826
2662
  "type": "option"
1827
2663
  },
1828
- "base-url": {
1829
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
1830
- "env": "PRIMITIVE_API_URL",
1831
- "name": "base-url",
2664
+ "api-base-url-1": {
2665
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
2666
+ "env": "PRIMITIVE_API_BASE_URL_1",
2667
+ "hidden": true,
2668
+ "name": "api-base-url-1",
2669
+ "hasDynamicHelp": false,
2670
+ "multiple": false,
2671
+ "type": "option"
2672
+ },
2673
+ "api-base-url-2": {
2674
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
2675
+ "env": "PRIMITIVE_API_BASE_URL_2",
2676
+ "hidden": true,
2677
+ "name": "api-base-url-2",
1832
2678
  "hasDynamicHelp": false,
1833
2679
  "multiple": false,
1834
2680
  "type": "option"
@@ -1902,10 +2748,20 @@
1902
2748
  "multiple": false,
1903
2749
  "type": "option"
1904
2750
  },
1905
- "base-url": {
1906
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
1907
- "env": "PRIMITIVE_API_URL",
1908
- "name": "base-url",
2751
+ "api-base-url-1": {
2752
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
2753
+ "env": "PRIMITIVE_API_BASE_URL_1",
2754
+ "hidden": true,
2755
+ "name": "api-base-url-1",
2756
+ "hasDynamicHelp": false,
2757
+ "multiple": false,
2758
+ "type": "option"
2759
+ },
2760
+ "api-base-url-2": {
2761
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
2762
+ "env": "PRIMITIVE_API_BASE_URL_2",
2763
+ "hidden": true,
2764
+ "name": "api-base-url-2",
1909
2765
  "hasDynamicHelp": false,
1910
2766
  "multiple": false,
1911
2767
  "type": "option"
@@ -1948,10 +2804,20 @@
1948
2804
  "multiple": false,
1949
2805
  "type": "option"
1950
2806
  },
1951
- "base-url": {
1952
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
1953
- "env": "PRIMITIVE_API_URL",
1954
- "name": "base-url",
2807
+ "api-base-url-1": {
2808
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
2809
+ "env": "PRIMITIVE_API_BASE_URL_1",
2810
+ "hidden": true,
2811
+ "name": "api-base-url-1",
2812
+ "hasDynamicHelp": false,
2813
+ "multiple": false,
2814
+ "type": "option"
2815
+ },
2816
+ "api-base-url-2": {
2817
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
2818
+ "env": "PRIMITIVE_API_BASE_URL_2",
2819
+ "hidden": true,
2820
+ "name": "api-base-url-2",
1955
2821
  "hasDynamicHelp": false,
1956
2822
  "multiple": false,
1957
2823
  "type": "option"
@@ -1986,10 +2852,20 @@
1986
2852
  "multiple": false,
1987
2853
  "type": "option"
1988
2854
  },
1989
- "base-url": {
1990
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
1991
- "env": "PRIMITIVE_API_URL",
1992
- "name": "base-url",
2855
+ "api-base-url-1": {
2856
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
2857
+ "env": "PRIMITIVE_API_BASE_URL_1",
2858
+ "hidden": true,
2859
+ "name": "api-base-url-1",
2860
+ "hasDynamicHelp": false,
2861
+ "multiple": false,
2862
+ "type": "option"
2863
+ },
2864
+ "api-base-url-2": {
2865
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
2866
+ "env": "PRIMITIVE_API_BASE_URL_2",
2867
+ "hidden": true,
2868
+ "name": "api-base-url-2",
1993
2869
  "hasDynamicHelp": false,
1994
2870
  "multiple": false,
1995
2871
  "type": "option"
@@ -2052,10 +2928,20 @@
2052
2928
  "multiple": false,
2053
2929
  "type": "option"
2054
2930
  },
2055
- "base-url": {
2056
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
2057
- "env": "PRIMITIVE_API_URL",
2058
- "name": "base-url",
2931
+ "api-base-url-1": {
2932
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
2933
+ "env": "PRIMITIVE_API_BASE_URL_1",
2934
+ "hidden": true,
2935
+ "name": "api-base-url-1",
2936
+ "hasDynamicHelp": false,
2937
+ "multiple": false,
2938
+ "type": "option"
2939
+ },
2940
+ "api-base-url-2": {
2941
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
2942
+ "env": "PRIMITIVE_API_BASE_URL_2",
2943
+ "hidden": true,
2944
+ "name": "api-base-url-2",
2059
2945
  "hasDynamicHelp": false,
2060
2946
  "multiple": false,
2061
2947
  "type": "option"
@@ -2125,10 +3011,20 @@
2125
3011
  "multiple": false,
2126
3012
  "type": "option"
2127
3013
  },
2128
- "base-url": {
2129
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
2130
- "env": "PRIMITIVE_API_URL",
2131
- "name": "base-url",
3014
+ "api-base-url-1": {
3015
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
3016
+ "env": "PRIMITIVE_API_BASE_URL_1",
3017
+ "hidden": true,
3018
+ "name": "api-base-url-1",
3019
+ "hasDynamicHelp": false,
3020
+ "multiple": false,
3021
+ "type": "option"
3022
+ },
3023
+ "api-base-url-2": {
3024
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
3025
+ "env": "PRIMITIVE_API_BASE_URL_2",
3026
+ "hidden": true,
3027
+ "name": "api-base-url-2",
2132
3028
  "hasDynamicHelp": false,
2133
3029
  "multiple": false,
2134
3030
  "type": "option"
@@ -2199,10 +3095,20 @@
2199
3095
  "multiple": false,
2200
3096
  "type": "option"
2201
3097
  },
2202
- "base-url": {
2203
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
2204
- "env": "PRIMITIVE_API_URL",
2205
- "name": "base-url",
3098
+ "api-base-url-1": {
3099
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
3100
+ "env": "PRIMITIVE_API_BASE_URL_1",
3101
+ "hidden": true,
3102
+ "name": "api-base-url-1",
3103
+ "hasDynamicHelp": false,
3104
+ "multiple": false,
3105
+ "type": "option"
3106
+ },
3107
+ "api-base-url-2": {
3108
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
3109
+ "env": "PRIMITIVE_API_BASE_URL_2",
3110
+ "hidden": true,
3111
+ "name": "api-base-url-2",
2206
3112
  "hasDynamicHelp": false,
2207
3113
  "multiple": false,
2208
3114
  "type": "option"
@@ -2245,10 +3151,20 @@
2245
3151
  "multiple": false,
2246
3152
  "type": "option"
2247
3153
  },
2248
- "base-url": {
2249
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
2250
- "env": "PRIMITIVE_API_URL",
2251
- "name": "base-url",
3154
+ "api-base-url-1": {
3155
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
3156
+ "env": "PRIMITIVE_API_BASE_URL_1",
3157
+ "hidden": true,
3158
+ "name": "api-base-url-1",
3159
+ "hasDynamicHelp": false,
3160
+ "multiple": false,
3161
+ "type": "option"
3162
+ },
3163
+ "api-base-url-2": {
3164
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
3165
+ "env": "PRIMITIVE_API_BASE_URL_2",
3166
+ "hidden": true,
3167
+ "name": "api-base-url-2",
2252
3168
  "hasDynamicHelp": false,
2253
3169
  "multiple": false,
2254
3170
  "type": "option"
@@ -2299,10 +3215,20 @@
2299
3215
  "multiple": false,
2300
3216
  "type": "option"
2301
3217
  },
2302
- "base-url": {
2303
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
2304
- "env": "PRIMITIVE_API_URL",
2305
- "name": "base-url",
3218
+ "api-base-url-1": {
3219
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
3220
+ "env": "PRIMITIVE_API_BASE_URL_1",
3221
+ "hidden": true,
3222
+ "name": "api-base-url-1",
3223
+ "hasDynamicHelp": false,
3224
+ "multiple": false,
3225
+ "type": "option"
3226
+ },
3227
+ "api-base-url-2": {
3228
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
3229
+ "env": "PRIMITIVE_API_BASE_URL_2",
3230
+ "hidden": true,
3231
+ "name": "api-base-url-2",
2306
3232
  "hasDynamicHelp": false,
2307
3233
  "multiple": false,
2308
3234
  "type": "option"
@@ -2345,10 +3271,20 @@
2345
3271
  "multiple": false,
2346
3272
  "type": "option"
2347
3273
  },
2348
- "base-url": {
2349
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
2350
- "env": "PRIMITIVE_API_URL",
2351
- "name": "base-url",
3274
+ "api-base-url-1": {
3275
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
3276
+ "env": "PRIMITIVE_API_BASE_URL_1",
3277
+ "hidden": true,
3278
+ "name": "api-base-url-1",
3279
+ "hasDynamicHelp": false,
3280
+ "multiple": false,
3281
+ "type": "option"
3282
+ },
3283
+ "api-base-url-2": {
3284
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
3285
+ "env": "PRIMITIVE_API_BASE_URL_2",
3286
+ "hidden": true,
3287
+ "name": "api-base-url-2",
2352
3288
  "hasDynamicHelp": false,
2353
3289
  "multiple": false,
2354
3290
  "type": "option"
@@ -2391,10 +3327,20 @@
2391
3327
  "multiple": false,
2392
3328
  "type": "option"
2393
3329
  },
2394
- "base-url": {
2395
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
2396
- "env": "PRIMITIVE_API_URL",
2397
- "name": "base-url",
3330
+ "api-base-url-1": {
3331
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
3332
+ "env": "PRIMITIVE_API_BASE_URL_1",
3333
+ "hidden": true,
3334
+ "name": "api-base-url-1",
3335
+ "hasDynamicHelp": false,
3336
+ "multiple": false,
3337
+ "type": "option"
3338
+ },
3339
+ "api-base-url-2": {
3340
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
3341
+ "env": "PRIMITIVE_API_BASE_URL_2",
3342
+ "hidden": true,
3343
+ "name": "api-base-url-2",
2398
3344
  "hasDynamicHelp": false,
2399
3345
  "multiple": false,
2400
3346
  "type": "option"
@@ -2429,10 +3375,20 @@
2429
3375
  "multiple": false,
2430
3376
  "type": "option"
2431
3377
  },
2432
- "base-url": {
2433
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
2434
- "env": "PRIMITIVE_API_URL",
2435
- "name": "base-url",
3378
+ "api-base-url-1": {
3379
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
3380
+ "env": "PRIMITIVE_API_BASE_URL_1",
3381
+ "hidden": true,
3382
+ "name": "api-base-url-1",
3383
+ "hasDynamicHelp": false,
3384
+ "multiple": false,
3385
+ "type": "option"
3386
+ },
3387
+ "api-base-url-2": {
3388
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
3389
+ "env": "PRIMITIVE_API_BASE_URL_2",
3390
+ "hidden": true,
3391
+ "name": "api-base-url-2",
2436
3392
  "hasDynamicHelp": false,
2437
3393
  "multiple": false,
2438
3394
  "type": "option"
@@ -2504,10 +3460,20 @@
2504
3460
  "multiple": false,
2505
3461
  "type": "option"
2506
3462
  },
2507
- "base-url": {
2508
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
2509
- "env": "PRIMITIVE_API_URL",
2510
- "name": "base-url",
3463
+ "api-base-url-1": {
3464
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
3465
+ "env": "PRIMITIVE_API_BASE_URL_1",
3466
+ "hidden": true,
3467
+ "name": "api-base-url-1",
3468
+ "hasDynamicHelp": false,
3469
+ "multiple": false,
3470
+ "type": "option"
3471
+ },
3472
+ "api-base-url-2": {
3473
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
3474
+ "env": "PRIMITIVE_API_BASE_URL_2",
3475
+ "hidden": true,
3476
+ "name": "api-base-url-2",
2511
3477
  "hasDynamicHelp": false,
2512
3478
  "multiple": false,
2513
3479
  "type": "option"
@@ -2550,10 +3516,20 @@
2550
3516
  "multiple": false,
2551
3517
  "type": "option"
2552
3518
  },
2553
- "base-url": {
2554
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
2555
- "env": "PRIMITIVE_API_URL",
2556
- "name": "base-url",
3519
+ "api-base-url-1": {
3520
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
3521
+ "env": "PRIMITIVE_API_BASE_URL_1",
3522
+ "hidden": true,
3523
+ "name": "api-base-url-1",
3524
+ "hasDynamicHelp": false,
3525
+ "multiple": false,
3526
+ "type": "option"
3527
+ },
3528
+ "api-base-url-2": {
3529
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
3530
+ "env": "PRIMITIVE_API_BASE_URL_2",
3531
+ "hidden": true,
3532
+ "name": "api-base-url-2",
2557
3533
  "hasDynamicHelp": false,
2558
3534
  "multiple": false,
2559
3535
  "type": "option"
@@ -2624,10 +3600,20 @@
2624
3600
  "multiple": false,
2625
3601
  "type": "option"
2626
3602
  },
2627
- "base-url": {
2628
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
2629
- "env": "PRIMITIVE_API_URL",
2630
- "name": "base-url",
3603
+ "api-base-url-1": {
3604
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
3605
+ "env": "PRIMITIVE_API_BASE_URL_1",
3606
+ "hidden": true,
3607
+ "name": "api-base-url-1",
3608
+ "hasDynamicHelp": false,
3609
+ "multiple": false,
3610
+ "type": "option"
3611
+ },
3612
+ "api-base-url-2": {
3613
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
3614
+ "env": "PRIMITIVE_API_BASE_URL_2",
3615
+ "hidden": true,
3616
+ "name": "api-base-url-2",
2631
3617
  "hasDynamicHelp": false,
2632
3618
  "multiple": false,
2633
3619
  "type": "option"
@@ -2662,10 +3648,20 @@
2662
3648
  "multiple": false,
2663
3649
  "type": "option"
2664
3650
  },
2665
- "base-url": {
2666
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
2667
- "env": "PRIMITIVE_API_URL",
2668
- "name": "base-url",
3651
+ "api-base-url-1": {
3652
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
3653
+ "env": "PRIMITIVE_API_BASE_URL_1",
3654
+ "hidden": true,
3655
+ "name": "api-base-url-1",
3656
+ "hasDynamicHelp": false,
3657
+ "multiple": false,
3658
+ "type": "option"
3659
+ },
3660
+ "api-base-url-2": {
3661
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
3662
+ "env": "PRIMITIVE_API_BASE_URL_2",
3663
+ "hidden": true,
3664
+ "name": "api-base-url-2",
2669
3665
  "hasDynamicHelp": false,
2670
3666
  "multiple": false,
2671
3667
  "type": "option"
@@ -2708,10 +3704,20 @@
2708
3704
  "multiple": false,
2709
3705
  "type": "option"
2710
3706
  },
2711
- "base-url": {
2712
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
2713
- "env": "PRIMITIVE_API_URL",
2714
- "name": "base-url",
3707
+ "api-base-url-1": {
3708
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
3709
+ "env": "PRIMITIVE_API_BASE_URL_1",
3710
+ "hidden": true,
3711
+ "name": "api-base-url-1",
3712
+ "hasDynamicHelp": false,
3713
+ "multiple": false,
3714
+ "type": "option"
3715
+ },
3716
+ "api-base-url-2": {
3717
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
3718
+ "env": "PRIMITIVE_API_BASE_URL_2",
3719
+ "hidden": true,
3720
+ "name": "api-base-url-2",
2715
3721
  "hasDynamicHelp": false,
2716
3722
  "multiple": false,
2717
3723
  "type": "option"
@@ -2802,10 +3808,20 @@
2802
3808
  "multiple": false,
2803
3809
  "type": "option"
2804
3810
  },
2805
- "base-url": {
2806
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
2807
- "env": "PRIMITIVE_API_URL",
2808
- "name": "base-url",
3811
+ "api-base-url-1": {
3812
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
3813
+ "env": "PRIMITIVE_API_BASE_URL_1",
3814
+ "hidden": true,
3815
+ "name": "api-base-url-1",
3816
+ "hasDynamicHelp": false,
3817
+ "multiple": false,
3818
+ "type": "option"
3819
+ },
3820
+ "api-base-url-2": {
3821
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
3822
+ "env": "PRIMITIVE_API_BASE_URL_2",
3823
+ "hidden": true,
3824
+ "name": "api-base-url-2",
2809
3825
  "hasDynamicHelp": false,
2810
3826
  "multiple": false,
2811
3827
  "type": "option"
@@ -2879,7 +3895,7 @@
2879
3895
  "sending:send-email": {
2880
3896
  "aliases": [],
2881
3897
  "args": {},
2882
- "description": "Sends an outbound email through Primitive's outbound relay. By default\nthe request returns once the relay accepts the message for delivery.\nSet `wait: true` to wait for the first downstream SMTP delivery outcome.\n\n\nBody fields requiring --raw-body JSON (these are not exposed as flags):\n references array<string> Full ordered message-id chain for the thread.\n(* = required. Scalar body fields are exposed as individual --flag-name flags; see FLAGS above.)",
3898
+ "description": "Sends an outbound email through Primitive's outbound relay. By default\nthe request returns once the relay accepts the message for delivery.\nSet `wait: true` to wait for the first downstream SMTP delivery outcome.\n\n**Host routing.** /send-mail is served by the attachments-\nsupporting host (`https://api.primitive.dev/v1`) so the\nrequest body can carry inline attachments up to ~30 MiB raw.\nThe primary host (`https://www.primitive.dev/api/v1`) also\naccepts /send-mail for attachment-free sends; sends WITH\nattachments to the primary host return 413\n`attachments_unsupported_on_this_endpoint`. The typed SDKs\nroute /send-mail to the attachments host automatically.\n\n\nBody fields requiring --raw-body JSON (these are not exposed as flags):\n references array<string> Full ordered message-id chain for the thread.\n(* = required. Scalar body fields are exposed as individual --flag-name flags; see FLAGS above.)",
2883
3899
  "flags": {
2884
3900
  "api-key": {
2885
3901
  "description": "Primitive API key (defaults to PRIMITIVE_API_KEY or saved `primitive login` credentials)",
@@ -2889,10 +3905,20 @@
2889
3905
  "multiple": false,
2890
3906
  "type": "option"
2891
3907
  },
2892
- "base-url": {
2893
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
2894
- "env": "PRIMITIVE_API_URL",
2895
- "name": "base-url",
3908
+ "api-base-url-1": {
3909
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
3910
+ "env": "PRIMITIVE_API_BASE_URL_1",
3911
+ "hidden": true,
3912
+ "name": "api-base-url-1",
3913
+ "hasDynamicHelp": false,
3914
+ "multiple": false,
3915
+ "type": "option"
3916
+ },
3917
+ "api-base-url-2": {
3918
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
3919
+ "env": "PRIMITIVE_API_BASE_URL_2",
3920
+ "hidden": true,
3921
+ "name": "api-base-url-2",
2896
3922
  "hasDynamicHelp": false,
2897
3923
  "multiple": false,
2898
3924
  "type": "option"
@@ -2996,10 +4022,20 @@
2996
4022
  "multiple": false,
2997
4023
  "type": "option"
2998
4024
  },
2999
- "base-url": {
3000
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
3001
- "env": "PRIMITIVE_API_URL",
3002
- "name": "base-url",
4025
+ "api-base-url-1": {
4026
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
4027
+ "env": "PRIMITIVE_API_BASE_URL_1",
4028
+ "hidden": true,
4029
+ "name": "api-base-url-1",
4030
+ "hasDynamicHelp": false,
4031
+ "multiple": false,
4032
+ "type": "option"
4033
+ },
4034
+ "api-base-url-2": {
4035
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
4036
+ "env": "PRIMITIVE_API_BASE_URL_2",
4037
+ "hidden": true,
4038
+ "name": "api-base-url-2",
3003
4039
  "hasDynamicHelp": false,
3004
4040
  "multiple": false,
3005
4041
  "type": "option"
@@ -3088,10 +4124,20 @@
3088
4124
  "multiple": false,
3089
4125
  "type": "option"
3090
4126
  },
3091
- "base-url": {
3092
- "description": "API base URL (defaults to PRIMITIVE_API_URL or production)",
3093
- "env": "PRIMITIVE_API_URL",
3094
- "name": "base-url",
4127
+ "api-base-url-1": {
4128
+ "description": "Override the primary API base URL. Internal testing only; not documented to customers.",
4129
+ "env": "PRIMITIVE_API_BASE_URL_1",
4130
+ "hidden": true,
4131
+ "name": "api-base-url-1",
4132
+ "hasDynamicHelp": false,
4133
+ "multiple": false,
4134
+ "type": "option"
4135
+ },
4136
+ "api-base-url-2": {
4137
+ "description": "Override the attachments-supporting send host base URL. Internal testing only; not documented to customers.",
4138
+ "env": "PRIMITIVE_API_BASE_URL_2",
4139
+ "hidden": true,
4140
+ "name": "api-base-url-2",
3095
4141
  "hasDynamicHelp": false,
3096
4142
  "multiple": false,
3097
4143
  "type": "option"
@@ -3122,5 +4168,5 @@
3122
4168
  "enableJsonFlag": false
3123
4169
  }
3124
4170
  },
3125
- "version": "0.20.0"
4171
+ "version": "0.21.0"
3126
4172
  }