@indigoai-us/hq-cli 5.345.35 → 5.345.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,18 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [5.345.37] — 2026-10-07
6
+ - Keep pnpm's public global package link readable while self-update scans and replaces existing global installs, so Corepack-managed updates can complete with rollback protection intact.
7
+
8
+ - Add published-package parity coverage for native core commands and align help output and symlinked project indexing with the bundled scripts.
9
+ - When Windows blocks writing the derived workers registry, `hq core` now reports a partial result instead of terminating on an uncaught filesystem error.
10
+ - Lane story ledger updates now keep state and status aligned, clear stale single-lane assignments, and use the canonical `review` state.
11
+ - Add `hq provider launch` for noninteractive Claude Code and Codex CLI runs. When either provider reports the known unauthenticated response, the launcher prints the matching sign-in command.
12
+
13
+ ## [5.345.36] — 2026-10-07
14
+ - A queued `hq sync` no longer pins the installed `hq` version while it waits its turn, so `hq pkg update` is no longer blocked for the length of somebody else's sync.
15
+ - The flag-registry background refresh no longer throws as it starts, so running any `hq` command stops filing a crash report that nothing in the command caused.
16
+
5
17
  ## [5.345.35] — 2026-10-07
6
18
  - Claude plugin installs now use the HQ packages marketplace by default; local marketplace directory and environment overrides remain available.
7
19
  - Pin self-updates to the pnpm version recorded by the global install; preserve store dirs on pnpm 11+ and omit pnpm 10 virtual-store flags.
@@ -44,7 +44,8 @@ case "${1:-}" in
44
44
  --check) MODE="check" ;;
45
45
  --prune-identical) MODE="prune" ;;
46
46
  -h|--help)
47
- sed -n '2,45p' "$0"
47
+ help_end="$(awk 'NR == 1 { next } /^#/ { last = NR; next } /^[[:space:]]*$/ { next } { exit } END { print last }' "$0")"
48
+ sed -n "2,${help_end}p" "$0"
48
49
  exit 0 ;;
49
50
  *)
50
51
  printf 'detect-stale-core-policy-mirror: unknown argument: %s\n' "$1" >&2
@@ -1286,6 +1286,40 @@ export declare const COMMAND_CATALOG: readonly [{
1286
1286
  readonly hidden: false;
1287
1287
  }];
1288
1288
  readonly subcommands: readonly [];
1289
+ }, {
1290
+ readonly name: "provider";
1291
+ readonly description: "Launch supported AI provider CLIs";
1292
+ readonly aliases: readonly [];
1293
+ readonly hidden: false;
1294
+ readonly helpOption: true;
1295
+ readonly helpCommand: true;
1296
+ readonly usage: "[options] [command]";
1297
+ readonly helpText: readonly [];
1298
+ readonly arguments: readonly [];
1299
+ readonly options: readonly [];
1300
+ readonly subcommands: readonly [{
1301
+ readonly name: "launch";
1302
+ readonly description: "Run a noninteractive Claude Code or Codex command with sign-in guidance";
1303
+ readonly aliases: readonly [];
1304
+ readonly hidden: false;
1305
+ readonly helpOption: true;
1306
+ readonly helpCommand: false;
1307
+ readonly usage: "[options] <name> [args...]";
1308
+ readonly helpText: readonly [];
1309
+ readonly arguments: readonly [{
1310
+ readonly name: "name";
1311
+ readonly required: true;
1312
+ readonly variadic: false;
1313
+ readonly description: "";
1314
+ }, {
1315
+ readonly name: "args";
1316
+ readonly required: false;
1317
+ readonly variadic: true;
1318
+ readonly description: "";
1319
+ }];
1320
+ readonly options: readonly [];
1321
+ readonly subcommands: readonly [];
1322
+ }];
1289
1323
  }, {
1290
1324
  readonly name: "version";
1291
1325
  readonly description: "Show HQ, CLI, and latest hq-core versions";
@@ -1542,6 +1542,46 @@ export const COMMAND_CATALOG = [
1542
1542
  ],
1543
1543
  "subcommands": []
1544
1544
  },
1545
+ {
1546
+ "name": "provider",
1547
+ "description": "Launch supported AI provider CLIs",
1548
+ "aliases": [],
1549
+ "hidden": false,
1550
+ "helpOption": true,
1551
+ "helpCommand": true,
1552
+ "usage": "[options] [command]",
1553
+ "helpText": [],
1554
+ "arguments": [],
1555
+ "options": [],
1556
+ "subcommands": [
1557
+ {
1558
+ "name": "launch",
1559
+ "description": "Run a noninteractive Claude Code or Codex command with sign-in guidance",
1560
+ "aliases": [],
1561
+ "hidden": false,
1562
+ "helpOption": true,
1563
+ "helpCommand": false,
1564
+ "usage": "[options] <name> [args...]",
1565
+ "helpText": [],
1566
+ "arguments": [
1567
+ {
1568
+ "name": "name",
1569
+ "required": true,
1570
+ "variadic": false,
1571
+ "description": ""
1572
+ },
1573
+ {
1574
+ "name": "args",
1575
+ "required": false,
1576
+ "variadic": true,
1577
+ "description": ""
1578
+ }
1579
+ ],
1580
+ "options": [],
1581
+ "subcommands": []
1582
+ }
1583
+ ]
1584
+ },
1545
1585
  {
1546
1586
  "name": "version",
1547
1587
  "description": "Show HQ, CLI, and latest hq-core versions",
@@ -201,6 +201,12 @@ export declare const REGISTRATION_PLAN: readonly [{
201
201
  readonly parent: "program";
202
202
  readonly module: "./commands/link.js";
203
203
  readonly exportName: "registerResolveCompanyCommand";
204
+ }, {
205
+ readonly type: "registrar";
206
+ readonly root: "provider";
207
+ readonly parent: "program";
208
+ readonly module: "./commands/provider.js";
209
+ readonly exportName: "registerProviderCommand";
204
210
  }, {
205
211
  readonly type: "registrar";
206
212
  readonly root: "version";
@@ -36,6 +36,7 @@ export const REGISTRATION_PLAN = [
36
36
  { type: "registrar", root: "unlink", parent: "program", module: "./commands/link.js", exportName: "registerUnlinkCommand" },
37
37
  { type: "registrar", root: "uninstall", parent: "program", module: "./commands/install-global.js", exportName: "registerUninstallCommand" },
38
38
  { type: "registrar", root: "resolve-company", parent: "program", module: "./commands/link.js", exportName: "registerResolveCompanyCommand" },
39
+ { type: "registrar", root: "provider", parent: "program", module: "./commands/provider.js", exportName: "registerProviderCommand" },
39
40
  { type: "registrar", root: "version", parent: "program", module: "./commands/version.js", exportName: "registerVersionCommand" },
40
41
  { type: "registrar", root: "auth", parent: "program", module: "./commands/auth.js", exportName: "registerAuthCommands" },
41
42
  { type: "registrar", root: "secrets", parent: "program", module: "./commands/secrets.js", exportName: "registerSecretsCommand" },
@@ -16,7 +16,8 @@ import { isAccessDeniedError, accessDeniedKeyOf, formatAccessDenied, } from "../
16
16
  import chalk from "chalk";
17
17
  import * as fs from "fs";
18
18
  import * as path from "path";
19
- import { share, sync, getStateDir, listJournals, VaultClient, computePersonalVaultPaths, PERSONAL_VAULT_JOURNAL_SLUG, resolvePullScope, syncDoctor, } from "@indigoai-us/hq-cloud";
19
+ import { share, getStateDir, listJournals, VaultClient, computePersonalVaultPaths, PERSONAL_VAULT_JOURNAL_SLUG, resolvePullScope, syncDoctor, } from "@indigoai-us/hq-cloud";
20
+ import { syncLeg } from "../utils/sync-operation-lock.js";
20
21
  import { DEFAULT_HQ_ROOT, ensureCognitoToken, buildVaultConfig, loadCachedTokens, } from "../utils/cognito-session.js";
21
22
  import { resolveUploadAuthor } from "../utils/upload-author.js";
22
23
  import { companyFolderExceedsThreshold, emitNarrowHint, isStrictRefusal, resolveBannerLevel, resolveNarrowHintPresentationLevel, resolveNarrowHintMinBytes, } from "../lib/narrow-hint-banner.js";
@@ -1146,7 +1147,7 @@ export function registerCloudCommands(program) {
1146
1147
  }
1147
1148
  const excludePrefixes = readScopeExcludePrefixes(pullScope);
1148
1149
  syncHealth = beginSyncHealthReport();
1149
- const result = await sync({
1150
+ const result = await syncLeg({
1150
1151
  company: options.company,
1151
1152
  onConflict: options.onConflict,
1152
1153
  vaultConfig,
@@ -1437,7 +1438,7 @@ async function runPullAll(hqRoot, onConflict, modeAllOverride, skipPersonal, for
1437
1438
  // via the shared resolver, so the actual pull is scoped — the CLI no
1438
1439
  // longer seeds an all-mode PullRecord that wedges the menubar runner.
1439
1440
  resolveScope: (companyUid, slug) => resolvePullScope(realClient, companyUid, slug, hqRoot),
1440
- sync: (opts) => sync({
1441
+ sync: (opts) => syncLeg({
1441
1442
  company: opts.company,
1442
1443
  hqRoot: opts.hqRoot,
1443
1444
  vaultConfig,
@@ -1508,7 +1509,7 @@ export async function runPullPersonal(hqRoot, onConflict) {
1508
1509
  listPersonEntities: () => client.entity.listByType("person"),
1509
1510
  getEntity: async () => null,
1510
1511
  });
1511
- const result = await sync({
1512
+ const result = await syncLeg({
1512
1513
  company: personalUid,
1513
1514
  ...(onConflict ? { onConflict } : {}),
1514
1515
  vaultConfig,
@@ -1853,7 +1854,7 @@ async function runNowSingle(hqRoot, company, personal, message, onConflict, mode
1853
1854
  }
1854
1855
  console.log(chalk.dim(" → pull leg"));
1855
1856
  const excludePrefixes = readScopeExcludePrefixes(pullScope);
1856
- const pullResult = await sync({
1857
+ const pullResult = await syncLeg({
1857
1858
  company: targetCompany,
1858
1859
  vaultConfig,
1859
1860
  hqRoot,
@@ -532,7 +532,7 @@ export function registerCoreCommands(program) {
532
532
  ? generateWorkersRegistry(hqRoot)
533
533
  : scanPackages(hqRoot, { quiet: process.env.HQ_SCAN_QUIET === "1" });
534
534
  if (result.status !== 0)
535
- process.exit(result.status);
535
+ process.exitCode = result.status;
536
536
  });
537
537
  describeCoreCommand(command, {
538
538
  execution: "native",
@@ -0,0 +1,7 @@
1
+ import { Command } from "commander";
2
+ import { type ProviderLauncherDependencies } from "../lib/provider-launcher.js";
3
+ export interface ProviderCommandDependencies extends ProviderLauncherDependencies {
4
+ setExitCode?: (code: number) => void;
5
+ }
6
+ export declare function registerProviderCommand(program: Command, dependencies?: ProviderCommandDependencies): void;
7
+ //# sourceMappingURL=provider.d.ts.map
@@ -0,0 +1,14 @@
1
+ import { runProviderLauncher } from "../lib/provider-launcher.js";
2
+ export function registerProviderCommand(program, dependencies = {}) {
3
+ program
4
+ .command("provider")
5
+ .description("Launch supported AI provider CLIs")
6
+ .command("launch <name> [args...]")
7
+ .description("Run a noninteractive Claude Code or Codex command with sign-in guidance")
8
+ .allowUnknownOption()
9
+ .action(async (name, args) => {
10
+ const exitCode = await runProviderLauncher(name, args, dependencies);
11
+ (dependencies.setExitCode ?? ((code) => { process.exitCode = code; }))(exitCode);
12
+ });
13
+ }
14
+ //# sourceMappingURL=provider.js.map