@indigoai-us/hq-cli 5.345.113 → 5.345.115

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 (61) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/assets/scaffold/core/scripts/hq-delegate-send.sh +5 -1
  3. package/dist/commands/bot-jobs.d.ts +1 -11
  4. package/dist/commands/bot-jobs.js +13 -34
  5. package/dist/commands/capacity.js +2 -0
  6. package/dist/commands/core-audit-log-native.js +1 -1
  7. package/dist/commands/core-checkpoint-native.d.ts +27 -0
  8. package/dist/commands/core-checkpoint-native.js +85 -2
  9. package/dist/commands/core-dm-bind-native.js +1 -1
  10. package/dist/commands/core-git-pack-extension-check-native.js +1 -1
  11. package/dist/commands/core-job-native-utils.d.ts +2 -2
  12. package/dist/commands/core-job-native-utils.js +3 -11
  13. package/dist/commands/core-job-notify-native.js +1 -2
  14. package/dist/commands/core-job-probe-native.d.ts +2 -3
  15. package/dist/commands/core-job-probe-native.js +14 -22
  16. package/dist/commands/core-job-remediate-native.js +1 -2
  17. package/dist/commands/core-job-run-native.js +58 -54
  18. package/dist/commands/core-jobs-native.d.ts +1 -3
  19. package/dist/commands/core-jobs-native.js +16 -271
  20. package/dist/commands/core-jobs-schedule.d.ts +7 -0
  21. package/dist/commands/core-jobs-schedule.js +243 -0
  22. package/dist/commands/core-native-utilities.d.ts +2 -3
  23. package/dist/commands/core-native-utilities.js +2 -19
  24. package/dist/commands/core-pin-native.js +1 -1
  25. package/dist/commands/core-refresh-vault-access-native.js +1 -1
  26. package/dist/commands/core-resolve-company-command.js +2 -17
  27. package/dist/commands/core-work-mesh-bind-trusted-native.js +1 -1
  28. package/dist/commands/core.js +1 -17
  29. package/dist/commands/lanes.js +1 -0
  30. package/dist/fast-scaffold.d.ts +1 -1
  31. package/dist/fast-scaffold.js +0 -38
  32. package/dist/lib/capacity/lane-login.js +73 -6
  33. package/dist/lib/capacity/route.d.ts +1 -1
  34. package/dist/lib/capacity/route.js +5 -1
  35. package/dist/lib/capacity/sign-in.d.ts +12 -0
  36. package/dist/lib/capacity/sign-in.js +65 -16
  37. package/dist/lib/daemon/catalog.d.ts +0 -2
  38. package/dist/lib/daemon/catalog.js +3 -6
  39. package/dist/lib/daemon/run.js +0 -7
  40. package/dist/utils/resident-package-preload.js +2 -7
  41. package/package.json +1 -1
  42. package/assets/scaffold/core/scripts/audit-log.sh +0 -384
  43. package/assets/scaffold/core/scripts/git-pack-extension-check.sh +0 -164
  44. package/assets/scaffold/core/scripts/hq-dm-bind.sh +0 -590
  45. package/assets/scaffold/core/scripts/hq-job-notify.sh +0 -389
  46. package/assets/scaffold/core/scripts/hq-job-probe.sh +0 -865
  47. package/assets/scaffold/core/scripts/hq-job-remediate.sh +0 -359
  48. package/assets/scaffold/core/scripts/hq-job-run.sh +0 -1025
  49. package/assets/scaffold/core/scripts/hq-pin.sh +0 -118
  50. package/assets/scaffold/core/scripts/jobs-schedule-parse.sh +0 -310
  51. package/assets/scaffold/core/scripts/jobs-validate.sh +0 -482
  52. package/assets/scaffold/core/scripts/outpost-jobs-reconcile.sh +0 -836
  53. package/assets/scaffold/core/scripts/refresh-vault-access.sh +0 -188
  54. package/assets/scaffold/core/scripts/resolve-company.sh +0 -331
  55. package/assets/scaffold/core/scripts/work-mesh-live-bind-trusted.sh +0 -184
  56. package/dist/commands/core-job-post-exit-assets.d.ts +0 -8
  57. package/dist/commands/core-job-post-exit-assets.js +0 -37
  58. package/dist/commands/core-native-jobs-flag.d.ts +0 -4
  59. package/dist/commands/core-native-jobs-flag.js +0 -7
  60. package/dist/commands/core-native-utilities-flag.d.ts +0 -4
  61. package/dist/commands/core-native-utilities-flag.js +0 -7
@@ -1,184 +0,0 @@
1
- #!/usr/bin/env bash
2
- # hq-core: public
3
- # US-011 — write session meta + reconcile with observation.trustedContext.
4
- # No --trusted CLI flag in hq-cli; trusted bind is the observation field.
5
- set -euo pipefail
6
-
7
- ROOT="${HQ_ROOT:-${CLAUDE_PROJECT_DIR:-}}"
8
- if [ -z "$ROOT" ]; then
9
- ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
10
- fi
11
-
12
- COMPANY=""
13
- PROJECT=""
14
- TASK=""
15
- SESSION_ID=""
16
- NO_RECONCILE=0
17
-
18
- while [ $# -gt 0 ]; do
19
- case "$1" in
20
- --company|--company-slug) COMPANY="${2:-}"; shift 2 ;;
21
- --project) PROJECT="${2:-}"; shift 2 ;;
22
- --task) TASK="${2:-}"; shift 2 ;;
23
- --session|--session-id) SESSION_ID="${2:-}"; shift 2 ;;
24
- --no-reconcile) NO_RECONCILE=1; shift ;;
25
- --root) ROOT="${2:-}"; shift 2 ;;
26
- -h|--help)
27
- sed -n '2,8p' "$0" | sed 's/^# \{0,1\}//'
28
- exit 0
29
- ;;
30
- *) shift ;;
31
- esac
32
- done
33
-
34
- HQ_SESSION="$ROOT/core/scripts/hq-session.sh"
35
-
36
- # Resolve session id before metadata writes so a known session is pinned even
37
- # when the caller omitted --session-id. Empty `pin` must still be safe on
38
- # macOS Bash 3.2 (`set -u` + `"${pin[@]}"` is an unbound-variable abort).
39
- if [ -z "$SESSION_ID" ]; then
40
- SESSION_ID="${HQ_SESSION_ID:-${CLAUDE_CODE_SESSION_ID:-${CLAUDE_SESSION_ID:-${CODEX_SESSION_ID:-${CODEX_THREAD_ID:-}}}}}"
41
- SESSION_ID="$(printf '%s' "$SESSION_ID" | tr -d '[:space:]')"
42
- if [ -z "$SESSION_ID" ] && [ -f "$ROOT/workspace/sessions/.current" ]; then
43
- SESSION_ID="$(tr -d '[:space:]' <"$ROOT/workspace/sessions/.current")"
44
- fi
45
- fi
46
-
47
- pin=()
48
- if [ -n "$SESSION_ID" ]; then
49
- pin=(--session-id "$SESSION_ID")
50
- fi
51
-
52
- if [ -n "$COMPANY" ]; then
53
- bash "$HQ_SESSION" ${pin[@]+"${pin[@]}"} set company_slug "$COMPANY"
54
- fi
55
- if [ -n "$PROJECT" ]; then
56
- bash "$HQ_SESSION" ${pin[@]+"${pin[@]}"} set project "$PROJECT"
57
- fi
58
- if [ -n "$TASK" ]; then
59
- bash "$HQ_SESSION" ${pin[@]+"${pin[@]}"} set task "$TASK"
60
- fi
61
-
62
- if [ "$NO_RECONCILE" -eq 1 ]; then
63
- exit 0
64
- fi
65
-
66
- [ -n "$SESSION_ID" ] || exit 0
67
-
68
- # shellcheck source=lib/work-mesh-enqueue.sh
69
- . "$ROOT/core/scripts/lib/work-mesh-enqueue.sh" 2>/dev/null || true
70
-
71
- HARNESS="${HQ_HARNESS:-${HQ_WORK_MESH_HARNESS:-claude-code}}"
72
- case "$HARNESS" in
73
- claude|Claude|ClaudeCode) HARNESS=claude-code ;;
74
- Codex) HARNESS=codex ;;
75
- Grok) HARNESS=grok ;;
76
- esac
77
- ADAPTER="${HQ_ADAPTER_CONTRACT_VERSION:-1.0.0}"
78
-
79
- if command -v work_mesh_ulid >/dev/null 2>&1; then
80
- work_mesh_ulid >/dev/null; CLIENT_OP=$REPLY
81
- else
82
- CLIENT_OP="cop_$(date +%s)_$$"
83
- fi
84
-
85
- json_quote() {
86
- if command -v work_mesh_json_quote >/dev/null 2>&1; then
87
- work_mesh_json_quote "$1"; printf '%s' "$REPLY"
88
- return 0
89
- fi
90
- if command -v jq >/dev/null 2>&1; then
91
- jq -n --arg s "$1" '$s'
92
- return 0
93
- fi
94
- # bash-only fallback (hooks-no-python)
95
- local s=$1
96
- s=${s//'\'/'\\'}
97
- s=${s//'"'/'\"'}
98
- s=${s//$'\n'/'\n'}
99
- s=${s//$'\r'/'\r'}
100
- s=${s//$'\t'/'\t'}
101
- printf '"%s"' "$s"
102
- }
103
-
104
- _q_sid="$(json_quote "$SESSION_ID")"
105
- _q_har="$(json_quote "$HARNESS")"
106
- _q_ad="$(json_quote "$ADAPTER")"
107
- _q_op="$(json_quote "$CLIENT_OP")"
108
- _q_cwd="$(json_quote "${PWD:-}")"
109
- _q_root="$(json_quote "$ROOT")"
110
-
111
- OBS='{"contractVersion":1,"clientOperationId":'"$_q_op"',"identity":{"sessionId":'"$_q_sid"',"harness":'"$_q_har"',"adapterVersion":'"$_q_ad"'},"cwd":'"$_q_cwd"',"hqRoot":'"$_q_root"
112
- if [ -n "$COMPANY" ] || [ -n "$PROJECT" ] || [ -n "$TASK" ]; then
113
- OBS+=',"trustedContext":{'
114
- _first=1
115
- if [ -n "$COMPANY" ]; then
116
- OBS+='"companySlug":'"$(json_quote "$COMPANY")"
117
- _first=0
118
- fi
119
- if [ -n "$PROJECT" ]; then
120
- [ "$_first" -eq 1 ] || OBS+=','
121
- OBS+='"project":'"$(json_quote "$PROJECT")"
122
- _first=0
123
- fi
124
- if [ -n "$TASK" ]; then
125
- [ "$_first" -eq 1 ] || OBS+=','
126
- OBS+='"task":'"$(json_quote "$TASK")"
127
- fi
128
- OBS+='}'
129
- fi
130
- OBS+='}'
131
-
132
- OBS_DIR="${TMPDIR:-/tmp}/hq-work-mesh-obs"
133
- mkdir -p -- "$OBS_DIR" 2>/dev/null || true
134
- chmod 700 -- "$OBS_DIR" 2>/dev/null || true
135
- OBS_FILE="$OBS_DIR/$SESSION_ID.bind.$$.json"
136
- printf '%s\n' "$OBS" >"$OBS_FILE"
137
-
138
- if [ -n "${HQ_WORK_MESH_RECONCILE_LOG:-}" ]; then
139
- printf 'reconcile-trusted %s\n' "$OBS_FILE" >>"$HQ_WORK_MESH_RECONCILE_LOG" 2>/dev/null || true
140
- fi
141
-
142
- if [ "${HQ_WORK_MESH_RECONCILE_STUB:-}" = "1" ]; then
143
- exit 0
144
- fi
145
-
146
- HQ_BIN="$(command -v hq 2>/dev/null || true)"
147
- if [ -z "$HQ_BIN" ]; then
148
- printf '%s\n' 'Work Mesh reconcile skipped: hq CLI not found on PATH.' >&2
149
- else
150
- flag_reader="$ROOT/.claude/hooks/work-mesh-daemon-not-loaded-flag.cjs"
151
- daemon_warning_enabled=false
152
- if [[ -n "${HQ_FLAGS_API_URL:-}" \
153
- && "${HQ_COMPANY_UID:-}" =~ ^cmp_[A-Za-z0-9]{3,128}$ ]] \
154
- && command -v node >/dev/null 2>&1 && [[ -f "$flag_reader" ]]; then
155
- daemon_warning_enabled="$(HQ_CLI_BIN="$HQ_BIN" node "$flag_reader")" || daemon_warning_enabled=false
156
- fi
157
- if [ "$daemon_warning_enabled" = "true" ]; then
158
- # Status only reads the installed service and its live state. Keep this hook
159
- # bounded, and fail quiet when the CLI or service manager cannot answer.
160
- daemon_status_file="$(mktemp "${TMPDIR:-/tmp}/hq-work-mesh-daemon-status.XXXXXX" 2>/dev/null)" || daemon_status_file=""
161
- if [ -n "$daemon_status_file" ]; then
162
- HQ_NO_UPDATE_CHECK=1 "$HQ_BIN" mesh daemon status --json >"$daemon_status_file" 2>/dev/null &
163
- daemon_status_pid=$!
164
- ( sleep 2; kill "$daemon_status_pid" 2>/dev/null || true ) &
165
- daemon_status_watchdog=$!
166
- daemon_status_rc=0
167
- wait "$daemon_status_pid" || daemon_status_rc=$?
168
- kill "$daemon_status_watchdog" 2>/dev/null || true
169
- wait "$daemon_status_watchdog" 2>/dev/null || true
170
- if [ "$daemon_status_rc" -eq 0 ] && command -v jq >/dev/null 2>&1 && \
171
- jq -e '(.ok == true) and (.running == false) and (.message | type == "string" and contains("installed ("))' \
172
- "$daemon_status_file" >/dev/null 2>&1; then
173
- printf '%s\n' 'Work Mesh daemon is installed but not loaded; start it with: hq mesh daemon install' >&2
174
- fi
175
- rm -f "$daemon_status_file" 2>/dev/null || true
176
- fi
177
- fi
178
- if [ -f "$OBS_FILE" ]; then
179
- nohup "$HQ_BIN" mesh context reconcile --observation-file "$OBS_FILE" --machine \
180
- >/dev/null 2>&1 </dev/null &
181
- disown 2>/dev/null || true
182
- fi
183
- fi
184
- exit 0
@@ -1,8 +0,0 @@
1
- export interface CoreJobPostExitHelpers {
2
- notifyBin: string;
3
- remediateBin: string;
4
- cleanup(): void;
5
- }
6
- /** Copy package-backed helpers before the runner releases its package-use lease. */
7
- export declare function materializeCoreJobPostExitHelpers(scriptPath: string, env: NodeJS.ProcessEnv): CoreJobPostExitHelpers;
8
- //# sourceMappingURL=core-job-post-exit-assets.d.ts.map
@@ -1,37 +0,0 @@
1
- import * as fs from "node:fs";
2
- import * as os from "node:os";
3
- import * as path from "node:path";
4
- /** Copy package-backed helpers before the runner releases its package-use lease. */
5
- export function materializeCoreJobPostExitHelpers(scriptPath, env) {
6
- const sourceDir = path.dirname(scriptPath);
7
- const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), "hq-job-post-exit-"));
8
- const materialize = (name, override) => {
9
- if (override)
10
- return override;
11
- const source = path.join(sourceDir, name);
12
- const target = path.join(tempDir, name);
13
- fs.copyFileSync(source, target);
14
- fs.chmodSync(target, fs.statSync(source).mode & 0o777);
15
- return target;
16
- };
17
- try {
18
- const notifyBin = materialize("hq-job-notify.sh", env.HQ_JOB_NOTIFY_BIN);
19
- const remediateBin = materialize("hq-job-remediate.sh", env.HQ_JOB_REMEDIATE_BIN);
20
- let cleaned = false;
21
- return {
22
- notifyBin,
23
- remediateBin,
24
- cleanup() {
25
- if (cleaned)
26
- return;
27
- cleaned = true;
28
- fs.rmSync(tempDir, { recursive: true, force: true });
29
- },
30
- };
31
- }
32
- catch (error) {
33
- fs.rmSync(tempDir, { recursive: true, force: true });
34
- throw error;
35
- }
36
- }
37
- //# sourceMappingURL=core-job-post-exit-assets.js.map
@@ -1,4 +0,0 @@
1
- /** Default-off rollout gate for the native scheduled-jobs helpers. */
2
- export declare const CORE_NATIVE_JOBS_FLAG = "core-native-jobs";
3
- export declare function coreNativeJobsEnabled(): Promise<boolean>;
4
- //# sourceMappingURL=core-native-jobs-flag.d.ts.map
@@ -1,7 +0,0 @@
1
- /** Default-off rollout gate for the native scheduled-jobs helpers. */
2
- export const CORE_NATIVE_JOBS_FLAG = "core-native-jobs";
3
- export async function coreNativeJobsEnabled() {
4
- const { coreNativeFamilyEnabled } = await import("./core-native-family-flag.js");
5
- return coreNativeFamilyEnabled(CORE_NATIVE_JOBS_FLAG);
6
- }
7
- //# sourceMappingURL=core-native-jobs-flag.js.map
@@ -1,4 +0,0 @@
1
- /** Default-off rollout gate for native operator utility commands. */
2
- export declare const CORE_NATIVE_UTILITIES_FLAG = "core-native-utilities";
3
- export declare function coreNativeUtilitiesEnabled(): Promise<boolean>;
4
- //# sourceMappingURL=core-native-utilities-flag.d.ts.map
@@ -1,7 +0,0 @@
1
- /** Default-off rollout gate for native operator utility commands. */
2
- export const CORE_NATIVE_UTILITIES_FLAG = "core-native-utilities";
3
- export async function coreNativeUtilitiesEnabled() {
4
- const { coreNativeFamilyEnabled } = await import("./core-native-family-flag.js");
5
- return coreNativeFamilyEnabled(CORE_NATIVE_UTILITIES_FLAG);
6
- }
7
- //# sourceMappingURL=core-native-utilities-flag.js.map