@indigoai-us/hq-cli 5.345.161 → 5.345.163

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.
@@ -1412,6 +1412,59 @@ export const COMMAND_CATALOG = [
1412
1412
  }
1413
1413
  ],
1414
1414
  "subcommands": []
1415
+ },
1416
+ {
1417
+ "name": "held",
1418
+ "description": "Show uploads held because someone else was signed in on this computer",
1419
+ "aliases": [],
1420
+ "hidden": false,
1421
+ "helpOption": true,
1422
+ "helpCommand": false,
1423
+ "usage": "[options]",
1424
+ "helpText": [],
1425
+ "arguments": [],
1426
+ "options": [
1427
+ {
1428
+ "flags": "--json",
1429
+ "description": "Print the held scopes as JSON",
1430
+ "hidden": false
1431
+ }
1432
+ ],
1433
+ "subcommands": []
1434
+ },
1435
+ {
1436
+ "name": "release-held",
1437
+ "description": "Confirm held files are yours and let sync upload them",
1438
+ "aliases": [],
1439
+ "hidden": false,
1440
+ "helpOption": true,
1441
+ "helpCommand": false,
1442
+ "usage": "[options]",
1443
+ "helpText": [],
1444
+ "arguments": [],
1445
+ "options": [
1446
+ {
1447
+ "flags": "--company <slug>",
1448
+ "description": "Release only this company",
1449
+ "hidden": false
1450
+ },
1451
+ {
1452
+ "flags": "--personal",
1453
+ "description": "Release only the personal vault",
1454
+ "hidden": false
1455
+ },
1456
+ {
1457
+ "flags": "--yes",
1458
+ "description": "Do not ask for confirmation",
1459
+ "hidden": false
1460
+ },
1461
+ {
1462
+ "flags": "--json",
1463
+ "description": "Print the result as JSON",
1464
+ "hidden": false
1465
+ }
1466
+ ],
1467
+ "subcommands": []
1415
1468
  }
1416
1469
  ]
1417
1470
  },
@@ -5525,7 +5578,7 @@ export const COMMAND_CATALOG = [
5525
5578
  "hidden": false,
5526
5579
  "helpOption": true,
5527
5580
  "helpCommand": false,
5528
- "usage": "[options] <id>",
5581
+ "usage": "[options] <id> [person]",
5529
5582
  "helpText": [],
5530
5583
  "arguments": [
5531
5584
  {
@@ -5533,6 +5586,12 @@ export const COMMAND_CATALOG = [
5533
5586
  "required": true,
5534
5587
  "variadic": false,
5535
5588
  "description": "Feedback id (feedback_<uuid>)"
5589
+ },
5590
+ {
5591
+ "name": "person",
5592
+ "required": false,
5593
+ "variadic": false,
5594
+ "description": "New assignee: an email address or a prs_ uid"
5536
5595
  }
5537
5596
  ],
5538
5597
  "options": [
@@ -5540,6 +5599,142 @@ export const COMMAND_CATALOG = [
5540
5599
  "flags": "--to <assignee>",
5541
5600
  "description": "New assignee: an email address or a prs_ uid",
5542
5601
  "hidden": false
5602
+ },
5603
+ {
5604
+ "flags": "--json",
5605
+ "description": "Print the result as JSON",
5606
+ "hidden": false
5607
+ }
5608
+ ],
5609
+ "subcommands": []
5610
+ },
5611
+ {
5612
+ "name": "list",
5613
+ "description": "List feedback: untriaged (default), yours, or one person's",
5614
+ "aliases": [],
5615
+ "hidden": false,
5616
+ "helpOption": true,
5617
+ "helpCommand": false,
5618
+ "usage": "[options]",
5619
+ "helpText": [],
5620
+ "arguments": [],
5621
+ "options": [
5622
+ {
5623
+ "flags": "--untriaged",
5624
+ "description": "Items nobody has triaged yet (the default)",
5625
+ "hidden": false
5626
+ },
5627
+ {
5628
+ "flags": "--mine",
5629
+ "description": "Items assigned to you",
5630
+ "hidden": false
5631
+ },
5632
+ {
5633
+ "flags": "--assignee <person>",
5634
+ "description": "Items assigned to this email address or prs_ uid",
5635
+ "hidden": false
5636
+ },
5637
+ {
5638
+ "flags": "--status <status>",
5639
+ "description": "Only items with this status",
5640
+ "hidden": false
5641
+ },
5642
+ {
5643
+ "flags": "--limit <n>",
5644
+ "description": "Stop after this many items (default 50)",
5645
+ "hidden": false
5646
+ },
5647
+ {
5648
+ "flags": "--all",
5649
+ "description": "Fetch every page",
5650
+ "hidden": false
5651
+ },
5652
+ {
5653
+ "flags": "--json",
5654
+ "description": "Print { items, count } as JSON",
5655
+ "hidden": false
5656
+ }
5657
+ ],
5658
+ "subcommands": []
5659
+ },
5660
+ {
5661
+ "name": "triage",
5662
+ "description": "Label a feedback item with its kind, area and summary, or mark it a duplicate",
5663
+ "aliases": [],
5664
+ "hidden": false,
5665
+ "helpOption": true,
5666
+ "helpCommand": false,
5667
+ "usage": "[options] <id>",
5668
+ "helpText": [],
5669
+ "arguments": [
5670
+ {
5671
+ "name": "id",
5672
+ "required": true,
5673
+ "variadic": false,
5674
+ "description": "Feedback id (feedback_<uuid>)"
5675
+ }
5676
+ ],
5677
+ "options": [
5678
+ {
5679
+ "flags": "--kind <kind>",
5680
+ "description": "One of bug, feature, question",
5681
+ "hidden": false
5682
+ },
5683
+ {
5684
+ "flags": "--area <area>",
5685
+ "description": "Product area, for example sync or desktop",
5686
+ "hidden": false
5687
+ },
5688
+ {
5689
+ "flags": "--summary <text>",
5690
+ "description": "One-line triage summary (at most 2000 characters)",
5691
+ "hidden": false
5692
+ },
5693
+ {
5694
+ "flags": "--duplicate-of <id>",
5695
+ "description": "Mark this item a duplicate of another feedback id",
5696
+ "hidden": false
5697
+ },
5698
+ {
5699
+ "flags": "--json",
5700
+ "description": "Print the updated item as JSON",
5701
+ "hidden": false
5702
+ }
5703
+ ],
5704
+ "subcommands": []
5705
+ },
5706
+ {
5707
+ "name": "close",
5708
+ "description": "Close a feedback item as resolved (or won't fix) with a reason",
5709
+ "aliases": [],
5710
+ "hidden": false,
5711
+ "helpOption": true,
5712
+ "helpCommand": false,
5713
+ "usage": "[options] <id>",
5714
+ "helpText": [],
5715
+ "arguments": [
5716
+ {
5717
+ "name": "id",
5718
+ "required": true,
5719
+ "variadic": false,
5720
+ "description": "Feedback id (feedback_<uuid>)"
5721
+ }
5722
+ ],
5723
+ "options": [
5724
+ {
5725
+ "flags": "--reason <text>",
5726
+ "description": "Why it is closed: the fix, PR or version, or the decision",
5727
+ "hidden": false
5728
+ },
5729
+ {
5730
+ "flags": "--wont-fix",
5731
+ "description": "Close as won't fix instead of resolved",
5732
+ "hidden": false
5733
+ },
5734
+ {
5735
+ "flags": "--json",
5736
+ "description": "Print the updated item as JSON",
5737
+ "hidden": false
5543
5738
  }
5544
5739
  ],
5545
5740
  "subcommands": []
@@ -23408,6 +23603,285 @@ export const COMMAND_CATALOG = [
23408
23603
  "subcommands": []
23409
23604
  }
23410
23605
  ]
23606
+ },
23607
+ {
23608
+ "name": "domains",
23609
+ "description": "Manage custom domains on your deployed apps, and buy domains",
23610
+ "aliases": [],
23611
+ "hidden": false,
23612
+ "helpOption": true,
23613
+ "helpCommand": true,
23614
+ "usage": "[options] [command]",
23615
+ "helpText": [
23616
+ {
23617
+ "position": "after",
23618
+ "text": "\nadd, remove and buy ask for approval in an interactive terminal. Without one (a script, CI, or a Windows shell that does not report a terminal, such as Git Bash under mintty), pass --yes."
23619
+ }
23620
+ ],
23621
+ "arguments": [],
23622
+ "options": [],
23623
+ "subcommands": [
23624
+ {
23625
+ "name": "list",
23626
+ "description": "List the custom domains on an app",
23627
+ "aliases": [],
23628
+ "hidden": false,
23629
+ "helpOption": true,
23630
+ "helpCommand": false,
23631
+ "usage": "[options]",
23632
+ "helpText": [],
23633
+ "arguments": [],
23634
+ "options": [
23635
+ {
23636
+ "flags": "--app <app>",
23637
+ "description": "app id, subdomain or name (default: the app linked to this folder)",
23638
+ "hidden": false
23639
+ },
23640
+ {
23641
+ "flags": "--path <dir>",
23642
+ "description": "folder linked to the app (default: current folder)",
23643
+ "hidden": false
23644
+ },
23645
+ {
23646
+ "flags": "--company <slug>",
23647
+ "description": "use this company instead of the linked or active company",
23648
+ "hidden": false
23649
+ },
23650
+ {
23651
+ "flags": "--json",
23652
+ "description": "print machine-readable JSON",
23653
+ "hidden": false
23654
+ }
23655
+ ],
23656
+ "subcommands": []
23657
+ },
23658
+ {
23659
+ "name": "add",
23660
+ "description": "Link a custom domain to an app and print the DNS records to create",
23661
+ "aliases": [],
23662
+ "hidden": false,
23663
+ "helpOption": true,
23664
+ "helpCommand": false,
23665
+ "usage": "[options] <domain>",
23666
+ "helpText": [],
23667
+ "arguments": [
23668
+ {
23669
+ "name": "domain",
23670
+ "required": true,
23671
+ "variadic": false,
23672
+ "description": ""
23673
+ }
23674
+ ],
23675
+ "options": [
23676
+ {
23677
+ "flags": "--env <name>",
23678
+ "description": "environment to serve",
23679
+ "hidden": false,
23680
+ "defaultValue": "production"
23681
+ },
23682
+ {
23683
+ "flags": "--yes",
23684
+ "description": "add without a prompt (the domain can add a monthly charge)",
23685
+ "hidden": false
23686
+ },
23687
+ {
23688
+ "flags": "--app <app>",
23689
+ "description": "app id, subdomain or name (default: the app linked to this folder)",
23690
+ "hidden": false
23691
+ },
23692
+ {
23693
+ "flags": "--path <dir>",
23694
+ "description": "folder linked to the app (default: current folder)",
23695
+ "hidden": false
23696
+ },
23697
+ {
23698
+ "flags": "--company <slug>",
23699
+ "description": "use this company instead of the linked or active company",
23700
+ "hidden": false
23701
+ },
23702
+ {
23703
+ "flags": "--json",
23704
+ "description": "print machine-readable JSON",
23705
+ "hidden": false
23706
+ }
23707
+ ],
23708
+ "subcommands": []
23709
+ },
23710
+ {
23711
+ "name": "refresh",
23712
+ "description": "Check DNS validation and start serving once the certificate is issued (exits 2 while not live)",
23713
+ "aliases": [],
23714
+ "hidden": false,
23715
+ "helpOption": true,
23716
+ "helpCommand": false,
23717
+ "usage": "[options] <domain>",
23718
+ "helpText": [],
23719
+ "arguments": [
23720
+ {
23721
+ "name": "domain",
23722
+ "required": true,
23723
+ "variadic": false,
23724
+ "description": ""
23725
+ }
23726
+ ],
23727
+ "options": [
23728
+ {
23729
+ "flags": "--app <app>",
23730
+ "description": "app id, subdomain or name (default: the app linked to this folder)",
23731
+ "hidden": false
23732
+ },
23733
+ {
23734
+ "flags": "--path <dir>",
23735
+ "description": "folder linked to the app (default: current folder)",
23736
+ "hidden": false
23737
+ },
23738
+ {
23739
+ "flags": "--company <slug>",
23740
+ "description": "use this company instead of the linked or active company",
23741
+ "hidden": false
23742
+ },
23743
+ {
23744
+ "flags": "--json",
23745
+ "description": "print machine-readable JSON",
23746
+ "hidden": false
23747
+ }
23748
+ ],
23749
+ "subcommands": []
23750
+ },
23751
+ {
23752
+ "name": "remove",
23753
+ "description": "Unlink a custom domain from an app",
23754
+ "aliases": [],
23755
+ "hidden": false,
23756
+ "helpOption": true,
23757
+ "helpCommand": false,
23758
+ "usage": "[options] <domain>",
23759
+ "helpText": [],
23760
+ "arguments": [
23761
+ {
23762
+ "name": "domain",
23763
+ "required": true,
23764
+ "variadic": false,
23765
+ "description": ""
23766
+ }
23767
+ ],
23768
+ "options": [
23769
+ {
23770
+ "flags": "--env <name>",
23771
+ "description": "pick the environment when the domain points at more than one",
23772
+ "hidden": false
23773
+ },
23774
+ {
23775
+ "flags": "--yes",
23776
+ "description": "remove without a prompt",
23777
+ "hidden": false
23778
+ },
23779
+ {
23780
+ "flags": "--app <app>",
23781
+ "description": "app id, subdomain or name (default: the app linked to this folder)",
23782
+ "hidden": false
23783
+ },
23784
+ {
23785
+ "flags": "--path <dir>",
23786
+ "description": "folder linked to the app (default: current folder)",
23787
+ "hidden": false
23788
+ },
23789
+ {
23790
+ "flags": "--company <slug>",
23791
+ "description": "use this company instead of the linked or active company",
23792
+ "hidden": false
23793
+ },
23794
+ {
23795
+ "flags": "--json",
23796
+ "description": "print machine-readable JSON",
23797
+ "hidden": false
23798
+ }
23799
+ ],
23800
+ "subcommands": []
23801
+ },
23802
+ {
23803
+ "name": "search",
23804
+ "description": "Check whether a domain can be bought, and its price",
23805
+ "aliases": [],
23806
+ "hidden": false,
23807
+ "helpOption": true,
23808
+ "helpCommand": false,
23809
+ "usage": "[options] <query>",
23810
+ "helpText": [],
23811
+ "arguments": [
23812
+ {
23813
+ "name": "query",
23814
+ "required": true,
23815
+ "variadic": false,
23816
+ "description": ""
23817
+ }
23818
+ ],
23819
+ "options": [
23820
+ {
23821
+ "flags": "--company <slug>",
23822
+ "description": "use this company instead of the active company",
23823
+ "hidden": false
23824
+ },
23825
+ {
23826
+ "flags": "--json",
23827
+ "description": "print machine-readable JSON",
23828
+ "hidden": false
23829
+ }
23830
+ ],
23831
+ "subcommands": []
23832
+ },
23833
+ {
23834
+ "name": "buy",
23835
+ "description": "Buy a domain for the company (owner or admin)",
23836
+ "aliases": [],
23837
+ "hidden": false,
23838
+ "helpOption": true,
23839
+ "helpCommand": false,
23840
+ "usage": "[options] <domain>",
23841
+ "helpText": [],
23842
+ "arguments": [
23843
+ {
23844
+ "name": "domain",
23845
+ "required": true,
23846
+ "variadic": false,
23847
+ "description": ""
23848
+ }
23849
+ ],
23850
+ "options": [
23851
+ {
23852
+ "flags": "--price <usd>",
23853
+ "description": "first-year price shown by 'hq deploy domains search'",
23854
+ "hidden": false
23855
+ },
23856
+ {
23857
+ "flags": "--registrant-file <path>",
23858
+ "description": "JSON file with the registrant contact",
23859
+ "hidden": false
23860
+ },
23861
+ {
23862
+ "flags": "--idempotency-key <key>",
23863
+ "description": "retry an earlier order that did not finish",
23864
+ "hidden": false
23865
+ },
23866
+ {
23867
+ "flags": "--company <slug>",
23868
+ "description": "use this company instead of the active company",
23869
+ "hidden": false
23870
+ },
23871
+ {
23872
+ "flags": "--yes",
23873
+ "description": "buy without a prompt",
23874
+ "hidden": false
23875
+ },
23876
+ {
23877
+ "flags": "--json",
23878
+ "description": "print machine-readable JSON",
23879
+ "hidden": false
23880
+ }
23881
+ ],
23882
+ "subcommands": []
23883
+ }
23884
+ ]
23411
23885
  }
23412
23886
  ]
23413
23887
  },
@@ -135,6 +135,12 @@ export declare const REGISTRATION_PLAN: readonly [{
135
135
  readonly parent: "sync";
136
136
  readonly module: "./commands/sync-manifest.js";
137
137
  readonly exportName: "registerSyncManifestCommand";
138
+ }, {
139
+ readonly type: "registrar";
140
+ readonly root: "sync";
141
+ readonly parent: "sync";
142
+ readonly module: "./commands/sync-held.js";
143
+ readonly exportName: "registerSyncHeldCommands";
138
144
  }, {
139
145
  readonly type: "group";
140
146
  readonly root: "cloud";
@@ -545,6 +551,12 @@ export declare const REGISTRATION_PLAN: readonly [{
545
551
  readonly parent: "deploy";
546
552
  readonly module: "./commands/deploy-access.js";
547
553
  readonly exportName: "registerDeployAccessCommand";
554
+ }, {
555
+ readonly type: "registrar";
556
+ readonly root: "deploy";
557
+ readonly parent: "deploy";
558
+ readonly module: "./commands/deploy-domains.js";
559
+ readonly exportName: "registerDeployDomainsCommand";
548
560
  }, {
549
561
  readonly type: "group";
550
562
  readonly root: "staff";
@@ -25,6 +25,7 @@ export const REGISTRATION_PLAN = [
25
25
  { type: "registrar", root: "sync", parent: "sync", module: "./commands/sync-mode.js", exportName: "registerSyncModeCommand" },
26
26
  { type: "registrar", root: "sync", parent: "sync", module: "./commands/sync-narrow.js", exportName: "registerSyncNarrowCommand" },
27
27
  { type: "registrar", root: "sync", parent: "sync", module: "./commands/sync-manifest.js", exportName: "registerSyncManifestCommand" },
28
+ { type: "registrar", root: "sync", parent: "sync", module: "./commands/sync-held.js", exportName: "registerSyncHeldCommands" },
28
29
  { type: "group", root: "cloud", id: "cloud", name: "cloud", description: "Cloud commands — provision entities and manage cloud-backed companies" },
29
30
  { type: "registrar", root: "cloud", parent: "cloud", module: "./commands/cloud-provision.js", exportName: "registerCloudProvisionCommands" },
30
31
  { type: "registrar", root: "cloud", parent: "cloud", module: "./commands/cloud-retire.js", exportName: "registerCloudRetireCommands" },
@@ -93,6 +94,7 @@ export const REGISTRATION_PLAN = [
93
94
  { type: "registrar", root: "deploy", parent: "deploy", module: "./commands/deploy-comments.js", exportName: "registerDeployCommentsCommand" },
94
95
  { type: "registrar", root: "deploy", parent: "deploy", module: "./commands/deploy-list.js", exportName: "registerDeployListCommand" },
95
96
  { type: "registrar", root: "deploy", parent: "deploy", module: "./commands/deploy-access.js", exportName: "registerDeployAccessCommand" },
97
+ { type: "registrar", root: "deploy", parent: "deploy", module: "./commands/deploy-domains.js", exportName: "registerDeployDomainsCommand" },
96
98
  // onboarding-test-accounts US-007 — super-admin staff CLI wrappers over the
97
99
  // hq-pro admin surface. New wrappers land under this group; the reset
98
100
  // command mirrors POST /v1/admin/test-account/reset.
@@ -33,7 +33,9 @@ export function registerAgentInboxCommand(agent) {
33
33
  baseUrl: creds.apiBaseUrl,
34
34
  path: `/v1/agents/${encodeURIComponent(creds.entityUid)}/inbox`,
35
35
  });
36
- return { status: res.status, body: await res.json().catch(() => ({})) };
36
+ // Preserve a decode failure as an invalid body for mergeAgentInbox to
37
+ // classify. Parser errors can contain response bytes: do not echo them.
38
+ return { status: res.status, body: await res.json().catch(() => undefined) };
37
39
  });
38
40
  const rows = entries
39
41
  .filter((e) => opts.all || !done.has(e.id))
@@ -45,7 +47,9 @@ export function registerAgentInboxCommand(agent) {
45
47
  if (note)
46
48
  console.error(chalk.yellow(note));
47
49
  if (rows.length === 0) {
48
- console.log(opts.all ? "Inbox is empty." : "No pending messages.");
50
+ console.log(note
51
+ ? "No matching messages can be confirmed; the server inbox could not be read completely."
52
+ : opts.all ? "Inbox is empty." : "No pending messages.");
49
53
  return;
50
54
  }
51
55
  for (const r of rows) {
@@ -0,0 +1,51 @@
1
+ import { Command } from "commander";
2
+ /** Exit code for `refresh` when the domain is not serving yet, so scripts can poll. */
3
+ export declare const REFRESH_NOT_SERVING_EXIT_CODE = 2;
4
+ export declare class DeployDomainsError extends Error {
5
+ readonly code: string;
6
+ readonly status?: number | undefined;
7
+ readonly extra: Record<string, unknown>;
8
+ constructor(message: string, code: string, status?: number | undefined, extra?: Record<string, unknown>);
9
+ }
10
+ /**
11
+ * Terminal hooks for the confirmation prompt. Tests replace these; production
12
+ * reads the real TTY state and asks on stdin.
13
+ */
14
+ export declare const deployDomainsPrompt: {
15
+ isInteractive: () => boolean;
16
+ ask: (question: string) => Promise<string>;
17
+ };
18
+ /** The sentence `buy` adds when the order's outcome is not known. */
19
+ export declare function resumeOrderSentence(idempotencyKey: string): string;
20
+ interface Binding {
21
+ appId: string;
22
+ orgSlug?: string;
23
+ }
24
+ /** Read the app id from the folder's project link (.hq/project.json, or the older hq-deploy.json). */
25
+ export declare function readLinkedApp(dir: string): Binding | null;
26
+ /**
27
+ * Normalize a domain to the ASCII form the server stores, using the same
28
+ * hostname rule hq-deploy's validateAppHostname enforces: at least two
29
+ * labels, each letters/digits/hyphens, 1 to 63 characters, no leading or
30
+ * trailing hyphen. A unicode name is converted to punycode first.
31
+ *
32
+ * The rule also keeps a domain from ever being a URL path segment such as
33
+ * "." or "..": fetch resolves those, so `remove ...` would otherwise send
34
+ * DELETE /api/apps/<id>/, next to the delete-app route (hq-cli#2160 review).
35
+ */
36
+ export declare function normalizeDomain(raw: string): string;
37
+ /** "This custom domain adds $20/month." from the published add-on price. */
38
+ export declare function addOnPriceLine(pricing: Record<string, unknown> | null): string;
39
+ /** The approval question for `add`, with the published add-on price. */
40
+ export declare function addOnConfirmQuestion(domain: string, environment: string, target: {
41
+ appLabel: string;
42
+ orgSlug: string;
43
+ }, pricing: Record<string, unknown> | null): string;
44
+ /** Shown in the buy prompt when GET /v1/pricing does not answer. */
45
+ export declare const PURCHASE_TERMS_UNAVAILABLE = "The renewal and refund terms could not be loaded. Check them on the HQ pricing page before you buy.";
46
+ /** The purchase terms published as usage.domains.purchase. Null when not published. */
47
+ export declare function purchaseTermsLine(pricing: Record<string, unknown> | null): string | null;
48
+ export declare function parsePrice(raw: string): number;
49
+ export declare function registerDeployDomainsCommand(deploy: Command): void;
50
+ export {};
51
+ //# sourceMappingURL=deploy-domains.d.ts.map