@indigoai-us/hq-cli 5.327.0 → 5.329.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.
Files changed (48) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/assets/scaffold/core/scripts/hq-dm-bind.sh +1 -1
  3. package/assets/scaffold/core/scripts/hq-job-run.sh +8 -8
  4. package/assets/scaffold/core/scripts/ontology-audience-grant.sh +1 -1
  5. package/assets/scaffold/core/scripts/ontology-candidate.sh +1 -1
  6. package/assets/scaffold/core/scripts/resolve-company.sh +1 -1
  7. package/dist/command-catalog.generated.d.ts +3699 -3
  8. package/dist/command-catalog.generated.js +5462 -1759
  9. package/dist/command-help.d.ts +2 -0
  10. package/dist/command-help.js +13 -0
  11. package/dist/commands/install-global.d.ts +21 -0
  12. package/dist/commands/install-global.js +267 -32
  13. package/dist/commands/mcp-serve.js +1 -1
  14. package/dist/commands/mcp-status.js +58 -1
  15. package/dist/commands/pack-install.d.ts +3 -1
  16. package/dist/commands/pack-install.js +17 -4
  17. package/dist/commands/packs.js +17 -0
  18. package/dist/commands/pkg-install.js +13 -1
  19. package/dist/fast-scaffold.d.ts +2 -0
  20. package/dist/fast-scaffold.js +16 -0
  21. package/dist/index.js +19 -2
  22. package/dist/lazy-commands.d.ts +1 -0
  23. package/dist/lazy-commands.js +64 -4
  24. package/dist/lib/cli-flag-keys.d.ts +3 -0
  25. package/dist/lib/cli-flag-keys.js +3 -0
  26. package/dist/lib/daemon/ops/mcp.js +11 -10
  27. package/dist/lib/daemon/ops/policy.d.ts +3 -2
  28. package/dist/lib/daemon/ops/policy.js +12 -6
  29. package/dist/lib/daemon/server.d.ts +3 -1
  30. package/dist/lib/daemon/server.js +63 -7
  31. package/dist/lib/doctor/checks/anywhere.js +58 -4
  32. package/dist/lib/install/chatgpt-targets.d.ts +8 -0
  33. package/dist/lib/install/chatgpt-targets.js +15 -0
  34. package/dist/lib/install/codex-pack-contributions.d.ts +8 -0
  35. package/dist/lib/install/codex-pack-contributions.js +205 -0
  36. package/dist/lib/install/codex-targets.d.ts +1 -1
  37. package/dist/lib/install/codex-targets.js +2 -1
  38. package/dist/lib/install/grok-targets.d.ts +8 -0
  39. package/dist/lib/install/grok-targets.js +15 -0
  40. package/dist/lib/lanes/keep-alive-audit.d.ts +3 -2
  41. package/dist/lib/lanes/keep-alive-audit.js +36 -8
  42. package/dist/main.d.ts +2 -6
  43. package/dist/main.js +3 -41
  44. package/dist/node-network-compat-fast.js +4 -0
  45. package/dist/stream-error-boundary.d.ts +7 -0
  46. package/dist/stream-error-boundary.js +33 -0
  47. package/dist/utils/vault-api.js +16 -1
  48. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,19 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [5.329.0] — 2026-10-02
6
+ - `hq lanes keep-alive-audit` no longer reports a keep-alive lead as not restarted when the matching launch has rolled out of capped resume histories; if only queue-time evidence remains, it reports a confirmed untimed restart instead of assigning an on-time or late launch time.
7
+
8
+ - Add a default-off, flag-gated command-catalog help route for eligible CLI help requests.
9
+ - `hq install --global --runtime claude --via plugin` installs HQ through a local Claude Code marketplace and removes prior direct HQ hook and MCP registrations.
10
+ - Add flag-gated Codex pack hook and skill installation with ownership-safe update and removal, verify active plugin MCP status without false drift, and align global Codex hooks with the supported six events.
11
+ - Add ChatGPT and Grok hosted MCP connector setup to hq install --global.
12
+
13
+ ## [5.328.0] — 2026-10-02
14
+ - Keep successful JSON responses readable if vault API plan-limit inspection cannot reconstruct its buffered response.
15
+ - Fixed bundled scaffold checks that could misclassify matching records when `grep -q` closed a pipe under `pipefail`.
16
+ - Keep `hq mcp serve` initialization lightweight by avoiding the full flag registry and network-family compatibility setup.
17
+
5
18
  ## [5.327.0] — 2026-10-02
6
19
  - Reduce hook-time startup imports for repo-run-registry and isolate hook-helper handlers from sibling modules.
7
20
  - Keep package-root Sentry diagnostics off the fast-route import path unless root diagnostics are needed.
@@ -329,7 +329,7 @@ mention_line() {
329
329
  cmd_bind() {
330
330
  local ch="${1:-}"; [ -n "$ch" ] || die "bind needs a channel name (see: hq channels)"
331
331
  ch="${ch#\#}"
332
- hq channels 2>/dev/null | grep -q -- "hq dm $ch " || die "no channel named '$ch' (see: hq channels)"
332
+ hq channels 2>/dev/null | grep -- "hq dm $ch " >/dev/null || die "no channel named '$ch' (see: hq channels)"
333
333
  bash "$SESSION_SH" set dm_channel "$ch" >/dev/null
334
334
  local sk; sk="$(latest_sk "$ch")"
335
335
  printf '%s\n' "$sk" > "$(cursor_file)"
@@ -323,24 +323,24 @@ classify_failure() {
323
323
  local lower
324
324
  lower="$(printf '%s' "$tail_txt" | tr '[:upper:]' '[:lower:]')"
325
325
 
326
- if printf '%s' "$lower" | grep -Eq \
327
- 'not logged in|please log in|authentication (failed|required)|unauthorized|401|invalid.*(token|credential)|credentials? (missing|expired|invalid)|device.?code|login required'; then
326
+ if printf '%s' "$lower" | grep -E \
327
+ 'not logged in|please log in|authentication (failed|required)|unauthorized|401|invalid.*(token|credential)|credentials? (missing|expired|invalid)|device.?code|login required' >/dev/null; then
328
328
  printf 'auth'
329
329
  return
330
330
  fi
331
- if printf '%s' "$lower" | grep -Eq \
332
- 'secret.*(not found|missing|denied|not visible|not shared)|hq secrets.*(fail|error|denied)|missing vault|access denied.*secret'; then
331
+ if printf '%s' "$lower" | grep -E \
332
+ 'secret.*(not found|missing|denied|not visible|not shared)|hq secrets.*(fail|error|denied)|missing vault|access denied.*secret' >/dev/null; then
333
333
  printf 'secrets'
334
334
  return
335
335
  fi
336
336
  # Avoid matching job metadata like timeout_seconds=N in the log header.
337
- if printf '%s' "$lower" | grep -Eq \
338
- '(^|[^_])timed out|command timed out|deadline exceeded|killed by timeout|exit[=:][[:space:]]*124\b'; then
337
+ if printf '%s' "$lower" | grep -E \
338
+ '(^|[^_])timed out|command timed out|deadline exceeded|killed by timeout|exit[=:][[:space:]]*124\b' >/dev/null; then
339
339
  printf 'timeout'
340
340
  return
341
341
  fi
342
- if printf '%s' "$lower" | grep -Eq \
343
- 'connection (refused|reset|timed out)|network is unreachable|temporary failure|econnreset|enotfound|no space left|i/o error|transport error|dns (fail|error)|http[/ ]*(502|503|504)|statusingesterror|api unreachable'; then
342
+ if printf '%s' "$lower" | grep -E \
343
+ 'connection (refused|reset|timed out)|network is unreachable|temporary failure|econnreset|enotfound|no space left|i/o error|transport error|dns (fail|error)|http[/ ]*(502|503|504)|statusingesterror|api unreachable' >/dev/null; then
344
344
  printf 'infra'
345
345
  return
346
346
  fi
@@ -67,7 +67,7 @@ for aud in "$C"/signals/@*/_audience.yaml; do
67
67
  # attendees), so they are already company identities; emails must be members.
68
68
  case "$who" in
69
69
  prs_*|agt_*) ;;
70
- *) if ! printf '%s\n' "$members" | grep -qxF "$who"; then echo "skip $who (not a member of $co)" >&2; skipped=$((skipped+1)); continue; fi ;;
70
+ *) if ! grep -qxF "$who" <<<"$members"; then echo "skip $who (not a member of $co)" >&2; skipped=$((skipped+1)); continue; fi ;;
71
71
  esac
72
72
  for p in $prefixes; do grant "$p" "$who"; done
73
73
  done
@@ -79,7 +79,7 @@ id="$(printf '%s\n%s\n%s\n%s' "$kind" "$type" "$key" "$norm_body" | sha)"
79
79
 
80
80
  dir="$root/companies/$co/$store/_candidates/$(date -u +%Y-%m-%d)"
81
81
  # Idempotent across days: the same candidate already written (pending or done) is a no-op.
82
- if find "$root/companies/$co/$store/_candidates" -name "$id.md" 2>/dev/null | grep -q .; then
82
+ if [ -n "$(find "$root/companies/$co/$store/_candidates" -name "$id.md" -print -quit 2>/dev/null)" ]; then
83
83
  echo "exists $id"; exit 0
84
84
  fi
85
85
  mkdir -p "$dir"
@@ -65,7 +65,7 @@ SLUGS="$(
65
65
  [ -n "$SLUGS" ] || emit "" "none"
66
66
 
67
67
  is_known_slug() {
68
- printf '%s\n' "$SLUGS" | grep -Fxq "$1"
68
+ printf '%s\n' "$SLUGS" | grep -Fx -- "$1" >/dev/null
69
69
  }
70
70
 
71
71
  prompt_slug() {