@indigoai-us/hq-cli 5.345.199 → 5.345.201

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 +40 -0
  2. package/assets/scaffold/core/scripts/lib/session-scope-capability.sh +6 -4
  3. package/dist/command-catalog.generated.d.ts +44 -0
  4. package/dist/command-catalog.generated.js +52 -0
  5. package/dist/commands/bot-runtime.d.ts +35 -0
  6. package/dist/commands/bot-runtime.js +115 -0
  7. package/dist/commands/bot.d.ts +53 -0
  8. package/dist/commands/bot.js +239 -30
  9. package/dist/commands/cloud.d.ts +39 -0
  10. package/dist/commands/cloud.js +173 -82
  11. package/dist/commands/creators.js +2 -1
  12. package/dist/commands/deploy-domains.js +8 -4
  13. package/dist/commands/library-remove.js +2 -1
  14. package/dist/commands/library.js +5 -4
  15. package/dist/commands/mesh.d.ts +0 -7
  16. package/dist/commands/mesh.js +5 -1
  17. package/dist/commands/sync-held.js +2 -2
  18. package/dist/lib/bot/api.d.ts +8 -0
  19. package/dist/lib/bot/api.js +9 -0
  20. package/dist/lib/bot/fleet-download.d.ts +27 -0
  21. package/dist/lib/bot/fleet-download.js +162 -0
  22. package/dist/lib/bot/fleet-local.d.ts +79 -2
  23. package/dist/lib/bot/fleet-local.js +246 -74
  24. package/dist/lib/bot/fleet-python.d.ts +2 -0
  25. package/dist/lib/bot/fleet-python.js +29 -0
  26. package/dist/lib/bot/jobs/source-report.d.ts +31 -0
  27. package/dist/lib/bot/jobs/source-report.js +276 -0
  28. package/dist/lib/bot/legacy-convert.d.ts +107 -4
  29. package/dist/lib/bot/legacy-convert.js +159 -13
  30. package/dist/lib/bot/legacy-provider-login.d.ts +34 -0
  31. package/dist/lib/bot/legacy-provider-login.js +144 -0
  32. package/dist/lib/bot/run.js +20 -1
  33. package/dist/lib/doctor/checks/bots.d.ts +4 -0
  34. package/dist/lib/doctor/checks/bots.js +33 -0
  35. package/dist/lib/lanes/mesh-events.js +3 -1
  36. package/dist/lib/lanes/store.js +7 -0
  37. package/dist/lib/lanes/types.d.ts +2 -0
  38. package/dist/lib/lanes/types.js +1 -0
  39. package/dist/lib/lanes/watcher.d.ts +0 -33
  40. package/dist/lib/lanes/watcher.js +7 -0
  41. package/dist/lib/mesh/api.js +2 -1
  42. package/dist/lib/mesh/live/daemon/run.d.ts +0 -10
  43. package/dist/lib/mesh/live/daemon/run.js +3 -0
  44. package/dist/lib/mesh/live/emit.d.ts +2 -11
  45. package/dist/lib/mesh/live/emit.js +20 -2
  46. package/dist/lib/mesh/live/flush.d.ts +2 -0
  47. package/dist/lib/mesh/live/flush.js +34 -3
  48. package/dist/lib/mesh/live/reporting-privacy.d.ts +7 -0
  49. package/dist/lib/mesh/live/reporting-privacy.js +47 -0
  50. package/dist/lib/work-context/company.d.ts +2 -3
  51. package/dist/lib/work-context/company.js +4 -22
  52. package/dist/secrets-env-action.js +5 -2
  53. package/dist/utils/cognito-callback-port.d.ts +2 -0
  54. package/dist/utils/cognito-callback-port.js +10 -5
  55. package/dist/utils/cognito-config.js +6 -1
  56. package/dist/utils/cognito-session.js +6 -1
  57. package/dist/utils/interactive-caller.d.ts +8 -0
  58. package/dist/utils/interactive-caller.js +10 -0
  59. package/dist/utils/login-browser.js +2 -1
  60. package/dist/utils/resident-package-preload.js +57 -4
  61. package/package.json +7 -7
@@ -12,15 +12,14 @@
12
12
  * 4b. persisted per-repo company map (gap 4 — person "always ask per repo",
13
13
  * remembered by repoIdentityKey; above the git-remote heuristic + device
14
14
  * default, below the identity file so an agent box always wins)
15
- * 5. enabled device default
16
- * 6. exactly one deterministic mapping (cwd under companies/{slug}/ or repo remote)
15
+ * 5. exactly one deterministic mapping (cwd under companies/{slug}/ or repo remote)
17
16
  *
18
17
  * Prompt-text matching is never used.
19
- * Device default + conflicting deterministic evidence → company_conflict.
18
+ * Device defaults never attribute a session; explicit evidence is required.
20
19
  */
21
20
  import * as fs from "node:fs";
22
21
  import * as path from "node:path";
23
- import { getDefaultCompany, getRepoCompany } from "./config.js";
22
+ import { getRepoCompany } from "./config.js";
24
23
  import { authoritativeCompanyFromState, readSessionState, } from "./state.js";
25
24
  /** Pointer to the US-017B correction client (never auto-switches). */
26
25
  const COMPANY_CORRECTION_PATH_PREFIX = "hq mesh context correct --session";
@@ -333,8 +332,7 @@ export function resolveCompany(input) {
333
332
  };
334
333
  }
335
334
  }
336
- // 5 + 6. Device default vs deterministic evidence.
337
- const deviceDefault = input.allowDeviceDefault === false ? null : getDefaultCompany({ root: input.root });
335
+ // Membership and device preferences are not session attribution evidence.
338
336
  const deterministic = resolveDeterministicCompany({
339
337
  cwd: input.cwd,
340
338
  hqRoot: input.hqRoot,
@@ -354,22 +352,6 @@ export function resolveCompany(input) {
354
352
  evidenceCompany: deterministicConflict.remote,
355
353
  };
356
354
  }
357
- if (deviceDefault?.enabled && deviceDefault.slug) {
358
- const def = {
359
- slug: deviceDefault.slug,
360
- uid: deviceDefault.uid,
361
- source: "device_default",
362
- };
363
- if (deterministic &&
364
- !sameCompany(def, deterministic)) {
365
- return {
366
- status: "company_conflict",
367
- defaultCompany: def,
368
- evidenceCompany: deterministic,
369
- };
370
- }
371
- return { status: "resolved", company: def };
372
- }
373
355
  if (deterministic) {
374
356
  return { status: "resolved", company: deterministic };
375
357
  }
@@ -2,6 +2,7 @@ import chalk from "chalk";
2
2
  import { writeSync } from "node:fs";
3
3
  import * as nodePath from "node:path";
4
4
  import { cognitoCachePrincipalUid } from "./utils/cognito-session.js";
5
+ import { gatedInteractiveLogin } from "./utils/interactive-caller.js";
5
6
  import { DEFAULT_SECRETS_CACHE_TTL_MS, hasCacheEntry, readCache, removeCacheEntry, writeCache, } from "./utils/secrets-cache.js";
6
7
  import { computeSha256 } from "./utils/integrity.js";
7
8
  import { SECRET_NAME_PATTERN } from "./commands/_patterns.js";
@@ -21,10 +22,12 @@ const SECRET_LOAD_TIMEOUT_MS = 30_000;
21
22
  * stdin and stderr must be TTYs, and CI is always non-interactive.
22
23
  */
23
24
  export function secretsCredentialOptions() {
25
+ // The shared gate also refuses lanes, daemons, bot runtimes, launchd
26
+ // tasks, and HQ_NO_BROWSER_LOGIN children that happen to hold a TTY.
24
27
  return {
25
- interactive: process.stdin.isTTY === true &&
28
+ interactive: gatedInteractiveLogin(process.stdin.isTTY === true &&
26
29
  process.stderr.isTTY === true &&
27
- !process.env.CI,
30
+ !process.env.CI),
28
31
  };
29
32
  }
30
33
  export function scopeOpts(opts) {
@@ -4,6 +4,8 @@ export declare const DEFAULT_COGNITO_CALLBACK_PORT = 8765;
4
4
  /** Ports registered as callback URLs on the HQ CLI Cognito app client. */
5
5
  export declare const REGISTERED_COGNITO_CALLBACK_PORTS: readonly number[];
6
6
  export type PortWarn = (message: string) => void;
7
+ /** Test hook: forget that the stray-port warning was printed. */
8
+ export declare function resetStrayPortWarningForTests(): void;
7
9
  /**
8
10
  * Resolve a callback port value, a string from the environment or a number,
9
11
  * to a registered port. Unset resolves to 8765 silently; an unregistered value
@@ -11,18 +11,23 @@
11
11
  export const DEFAULT_COGNITO_CALLBACK_PORT = 8765;
12
12
  /** Ports registered as callback URLs on the HQ CLI Cognito app client. */
13
13
  export const REGISTERED_COGNITO_CALLBACK_PORTS = [8765, 3000, 53682];
14
- const warned = new Set();
14
+ /** One stray-port warning per process: config and session both resolve the env value. */
15
+ let warnedStrayPort = false;
15
16
  function defaultWarn(message) {
16
17
  console.error(message);
17
18
  }
18
- function warnOnce(key, message, warn) {
19
+ function warnOnce(message, warn) {
19
20
  if (warn === defaultWarn) {
20
- if (warned.has(key))
21
+ if (warnedStrayPort)
21
22
  return;
22
- warned.add(key);
23
+ warnedStrayPort = true;
23
24
  }
24
25
  warn(message);
25
26
  }
27
+ /** Test hook: forget that the stray-port warning was printed. */
28
+ export function resetStrayPortWarningForTests() {
29
+ warnedStrayPort = false;
30
+ }
26
31
  /**
27
32
  * Resolve a callback port value, a string from the environment or a number,
28
33
  * to a registered port. Unset resolves to 8765 silently; an unregistered value
@@ -35,7 +40,7 @@ export function resolveCognitoCallbackPort(raw, warn = defaultWarn) {
35
40
  const port = typeof raw === "number" ? raw : Number(raw.trim());
36
41
  if (REGISTERED_COGNITO_CALLBACK_PORTS.includes(port))
37
42
  return port;
38
- warnOnce(String(raw), `hq: ignoring callback port ${String(raw)}: it is not a registered Cognito callback ` +
43
+ warnOnce(`hq: ignoring callback port ${String(raw)}: it is not a registered Cognito callback ` +
39
44
  `(${REGISTERED_COGNITO_CALLBACK_PORTS.join(", ")}). Using ${DEFAULT_COGNITO_CALLBACK_PORT}. ` +
40
45
  "Unset HQ_COGNITO_CALLBACK_PORT or set it to a registered port.", warn);
41
46
  return DEFAULT_COGNITO_CALLBACK_PORT;
@@ -4,7 +4,12 @@ export const DEFAULT_COGNITO = {
4
4
  region: process.env.AWS_REGION ?? "us-east-1",
5
5
  userPoolDomain: process.env.HQ_COGNITO_DOMAIN ?? "vault-indigo-hq-prod",
6
6
  clientId: process.env.HQ_COGNITO_CLIENT_ID ?? "7acei2c8v870enheptb1j5foln",
7
- port: resolveCognitoCallbackPort(process.env.HQ_COGNITO_CALLBACK_PORT),
7
+ // Resolved on read, not at module load: main.ts imports this for every
8
+ // command, and a stray HQ_COGNITO_CALLBACK_PORT should warn only when a
9
+ // sign-in actually reads the port.
10
+ get port() {
11
+ return resolveCognitoCallbackPort(process.env.HQ_COGNITO_CALLBACK_PORT);
12
+ },
8
13
  identityProvider: process.env.HQ_COGNITO_IDENTITY_PROVIDER !== undefined
9
14
  ? process.env.HQ_COGNITO_IDENTITY_PROVIDER || undefined
10
15
  : "Google",
@@ -51,7 +51,12 @@ export const DEFAULT_COGNITO = {
51
51
  region: process.env.AWS_REGION ?? "us-east-1",
52
52
  userPoolDomain: process.env.HQ_COGNITO_DOMAIN ?? "vault-indigo-hq-prod",
53
53
  clientId: process.env.HQ_COGNITO_CLIENT_ID ?? "7acei2c8v870enheptb1j5foln",
54
- port: resolveCognitoCallbackPort(process.env.HQ_COGNITO_CALLBACK_PORT),
54
+ // Resolved on read, not at module load: main.ts imports this for every
55
+ // command, and a stray HQ_COGNITO_CALLBACK_PORT should warn only when a
56
+ // sign-in actually reads the port.
57
+ get port() {
58
+ return resolveCognitoCallbackPort(process.env.HQ_COGNITO_CALLBACK_PORT);
59
+ },
55
60
  // Skip Cognito's Hosted UI — go straight to Google OAuth. The Cognito
56
61
  // /oauth2/authorize endpoint honors `identity_provider` and performs an
57
62
  // internal redirect, so the user never sees the (un-styleable) Hosted UI.
@@ -12,4 +12,12 @@ export type InteractiveCallerInput = {
12
12
  export declare function nonInteractiveReason(input?: InteractiveCallerInput): string | null;
13
13
  /** True only when a person is at a terminal and may complete a browser sign-in. */
14
14
  export declare function isInteractiveCaller(input?: InteractiveCallerInput): boolean;
15
+ /**
16
+ * Gate a call site's request for an implicit browser sign-in. A command that
17
+ * asks for `interactive: true` gets it only when a person is at a terminal, so
18
+ * the same command run from a lane, daemon, bot, launchd task, or piped child
19
+ * fails with the `hq login` remedy instead of opening a sign-in tab. Explicit
20
+ * `false` stays false. `hq login` calls browserLogin directly and is not gated.
21
+ */
22
+ export declare function gatedInteractiveLogin(requested?: boolean, input?: InteractiveCallerInput): boolean;
15
23
  //# sourceMappingURL=interactive-caller.d.ts.map
@@ -67,4 +67,14 @@ export function nonInteractiveReason(input = {}) {
67
67
  export function isInteractiveCaller(input = {}) {
68
68
  return nonInteractiveReason(input) === null;
69
69
  }
70
+ /**
71
+ * Gate a call site's request for an implicit browser sign-in. A command that
72
+ * asks for `interactive: true` gets it only when a person is at a terminal, so
73
+ * the same command run from a lane, daemon, bot, launchd task, or piped child
74
+ * fails with the `hq login` remedy instead of opening a sign-in tab. Explicit
75
+ * `false` stays false. `hq login` calls browserLogin directly and is not gated.
76
+ */
77
+ export function gatedInteractiveLogin(requested = true, input = {}) {
78
+ return requested && isInteractiveCaller(input);
79
+ }
70
80
  //# sourceMappingURL=interactive-caller.js.map
@@ -15,7 +15,8 @@ export async function loginWithBrowserPreference(config, browser = true) {
15
15
  if (browser && !isHeadless())
16
16
  return browserLogin(withRegisteredCallbackPort(config));
17
17
  assertHumanLoginAllowed();
18
- const port = config.port ?? 3000;
18
+ // The manual URL path builds the same redirect_uri, so it needs the same guard.
19
+ const port = withRegisteredCallbackPort(config).port ?? 3000;
19
20
  const redirectUri = `http://localhost:${port}/callback`;
20
21
  const base = `https://${config.userPoolDomain}.auth.${config.region}.amazoncognito.com`;
21
22
  const verifier = randomBytes(32).toString("base64url");
@@ -69,15 +69,22 @@ export const RESIDENT_PACKAGE_MODULES = {
69
69
  "../lib/first-sync-next-step.js",
70
70
  "@indigoai-us/hq-cloud",
71
71
  "../lib/lanes/reconcile.js",
72
+ "../utils/local-files-overview.js",
73
+ "../utils/vault-api.js",
74
+ "../commands/files-browse.js",
75
+ "@aws-sdk/client-s3",
76
+ "../commands/access.js",
77
+ "../commands/sources.js",
78
+ "../lib/hot-channels/adapters/index.js",
72
79
  ],
73
80
  "daemon-logs-follow": [],
74
81
  "mesh-daemon": ["../sentry.js", "../lib/doctor/client-health-reason-codes-flag.js", "@indigoai-us/hq-flags-client", "../lib/plan-limit-nag.js", "../utils/plan-gate-error.js", "open", "../utils/cognito-session.js", "../lib/first-sync-next-step.js", "@indigoai-us/hq-cloud"],
75
- "lanes-watch": ["../sentry.js", "../lib/doctor/client-health-reason-codes-flag.js", "@indigoai-us/hq-flags-client", "../lib/plan-limit-nag.js", "../utils/plan-gate-error.js", "open", "../utils/cognito-session.js", "../lib/first-sync-next-step.js", "@indigoai-us/hq-cloud", "../lib/lanes/reconcile.js"],
76
- "monitor-wait": ["../sentry.js", "../lib/doctor/client-health-reason-codes-flag.js", "@indigoai-us/hq-flags-client", "../lib/plan-limit-nag.js", "../utils/plan-gate-error.js", "open", "../utils/cognito-session.js", "../lib/first-sync-next-step.js", "@indigoai-us/hq-cloud", "../lib/lanes/reconcile.js"],
77
- "monitor-run": ["../commands/lanes.js", "../lib/plan-limit-nag.js", "../utils/plan-gate-error.js", "../sentry.js", "../lib/doctor/client-health-reason-codes-flag.js", "@indigoai-us/hq-flags-client", "open", "../utils/cognito-session.js", "../lib/first-sync-next-step.js", "@indigoai-us/hq-cloud", "../lib/lanes/reconcile.js"],
82
+ "lanes-watch": ["../sentry.js", "../lib/doctor/client-health-reason-codes-flag.js", "@indigoai-us/hq-flags-client", "../lib/plan-limit-nag.js", "../utils/plan-gate-error.js", "open", "../utils/cognito-session.js", "../lib/first-sync-next-step.js", "@indigoai-us/hq-cloud", "../lib/lanes/reconcile.js", "../utils/local-files-overview.js", "../lib/flag-registry.js", "../utils/vault-api.js", "../commands/files-browse.js", "@aws-sdk/client-s3", "../commands/access.js", "../commands/sources.js", "../lib/hot-channels/adapters/index.js", "../commands/lanes.js"],
83
+ "monitor-wait": ["../sentry.js", "../lib/doctor/client-health-reason-codes-flag.js", "@indigoai-us/hq-flags-client", "../lib/plan-limit-nag.js", "../utils/plan-gate-error.js", "open", "../utils/cognito-session.js", "../lib/first-sync-next-step.js", "@indigoai-us/hq-cloud", "../lib/lanes/reconcile.js", "../utils/local-files-overview.js", "../lib/flag-registry.js", "../utils/vault-api.js", "../commands/files-browse.js", "@aws-sdk/client-s3", "../commands/access.js", "../commands/sources.js", "../lib/hot-channels/adapters/index.js", "../commands/lanes.js"],
84
+ "monitor-run": ["../commands/lanes.js", "../lib/plan-limit-nag.js", "../utils/plan-gate-error.js", "../sentry.js", "../lib/doctor/client-health-reason-codes-flag.js", "@indigoai-us/hq-flags-client", "open", "../utils/cognito-session.js", "../lib/first-sync-next-step.js", "@indigoai-us/hq-cloud", "../lib/lanes/reconcile.js", "../utils/local-files-overview.js", "../lib/flag-registry.js", "../utils/vault-api.js", "../commands/files-browse.js", "@aws-sdk/client-s3", "../commands/access.js", "../commands/sources.js", "../lib/hot-channels/adapters/index.js"],
78
85
  "agents-message-wait": ["../sentry.js", "../lib/doctor/client-health-reason-codes-flag.js", "@indigoai-us/hq-flags-client", "../lib/plan-limit-nag.js", "../utils/plan-gate-error.js", "open", "../utils/cognito-session.js", "../lib/first-sync-next-step.js", "@indigoai-us/hq-cloud"],
79
86
  "integrations-oauth-wait": ["../sentry.js", "../lib/doctor/client-health-reason-codes-flag.js", "@indigoai-us/hq-flags-client", "../lib/plan-limit-nag.js", "../utils/plan-gate-error.js", "open", "../utils/cognito-session.js", "../lib/first-sync-next-step.js", "@indigoai-us/hq-cloud"],
80
- "outpost-wait": ["../commands/lanes.js", "../lib/plan-limit-nag.js", "../utils/plan-gate-error.js", "../sentry.js", "../lib/doctor/client-health-reason-codes-flag.js", "@indigoai-us/hq-flags-client", "open", "../utils/cognito-session.js", "../lib/first-sync-next-step.js", "@indigoai-us/hq-cloud", "../lib/lanes/reconcile.js"],
87
+ "outpost-wait": ["../commands/lanes.js", "../lib/plan-limit-nag.js", "../utils/plan-gate-error.js", "../sentry.js", "../lib/doctor/client-health-reason-codes-flag.js", "@indigoai-us/hq-flags-client", "open", "../utils/cognito-session.js", "../lib/first-sync-next-step.js", "@indigoai-us/hq-cloud", "../lib/lanes/reconcile.js", "../utils/local-files-overview.js", "../lib/flag-registry.js", "../utils/vault-api.js", "../commands/files-browse.js", "@aws-sdk/client-s3", "../commands/access.js", "../commands/sources.js", "../lib/hot-channels/adapters/index.js"],
81
88
  "secrets-sandbox": [],
82
89
  "pkg-update": ["../sentry.js", "../lib/doctor/client-health-reason-codes-flag.js", "@indigoai-us/hq-flags-client", "../utils/cognito-session.js", "@indigoai-us/hq-cloud"],
83
90
  "pack-install": [
@@ -252,6 +259,14 @@ const LOADERS = {
252
259
  () => import("../lib/first-sync-next-step.js"),
253
260
  () => import("@indigoai-us/hq-cloud"),
254
261
  () => import("../lib/lanes/reconcile.js"),
262
+ // Source reports use the signals engine after a resident wait.
263
+ () => import("../utils/local-files-overview.js"),
264
+ () => import("../utils/vault-api.js"),
265
+ () => import("../commands/files-browse.js"),
266
+ () => import("@aws-sdk/client-s3"),
267
+ () => import("../commands/access.js"),
268
+ () => import("../commands/sources.js"),
269
+ () => import("../lib/hot-channels/adapters/index.js"),
255
270
  ],
256
271
  "daemon-logs-follow": [],
257
272
  "mesh-daemon": [
@@ -283,6 +298,16 @@ const LOADERS = {
283
298
  () => import("@indigoai-us/hq-cloud"),
284
299
  // The watcher admits queued lanes in-process after a lane exits.
285
300
  () => import("../lib/lanes/reconcile.js"),
301
+ // Source reports use the signals engine after a resident wait.
302
+ () => import("../utils/local-files-overview.js"),
303
+ () => import("../lib/flag-registry.js"),
304
+ () => import("../utils/vault-api.js"),
305
+ () => import("../commands/files-browse.js"),
306
+ () => import("@aws-sdk/client-s3"),
307
+ () => import("../commands/access.js"),
308
+ () => import("../commands/sources.js"),
309
+ () => import("../lib/hot-channels/adapters/index.js"),
310
+ () => import("../commands/lanes.js"),
286
311
  ],
287
312
  "monitor-wait": [
288
313
  async () => {
@@ -299,6 +324,16 @@ const LOADERS = {
299
324
  () => import("@indigoai-us/hq-cloud"),
300
325
  // The watcher admits queued lanes in-process after a lane exits.
301
326
  () => import("../lib/lanes/reconcile.js"),
327
+ // Source reports use the signals engine after a resident wait.
328
+ () => import("../utils/local-files-overview.js"),
329
+ () => import("../lib/flag-registry.js"),
330
+ () => import("../utils/vault-api.js"),
331
+ () => import("../commands/files-browse.js"),
332
+ () => import("@aws-sdk/client-s3"),
333
+ () => import("../commands/access.js"),
334
+ () => import("../commands/sources.js"),
335
+ () => import("../lib/hot-channels/adapters/index.js"),
336
+ () => import("../commands/lanes.js"),
302
337
  ],
303
338
  "monitor-run": [
304
339
  () => import("../commands/lanes.js"),
@@ -316,6 +351,15 @@ const LOADERS = {
316
351
  () => import("@indigoai-us/hq-cloud"),
317
352
  // The watcher admits queued lanes in-process after a lane exits.
318
353
  () => import("../lib/lanes/reconcile.js"),
354
+ // Source reports use the signals engine after a resident wait.
355
+ () => import("../utils/local-files-overview.js"),
356
+ () => import("../lib/flag-registry.js"),
357
+ () => import("../utils/vault-api.js"),
358
+ () => import("../commands/files-browse.js"),
359
+ () => import("@aws-sdk/client-s3"),
360
+ () => import("../commands/access.js"),
361
+ () => import("../commands/sources.js"),
362
+ () => import("../lib/hot-channels/adapters/index.js"),
319
363
  ],
320
364
  "agents-message-wait": [
321
365
  async () => {
@@ -361,6 +405,15 @@ const LOADERS = {
361
405
  () => import("@indigoai-us/hq-cloud"),
362
406
  // The watcher admits queued lanes in-process after a lane exits.
363
407
  () => import("../lib/lanes/reconcile.js"),
408
+ // Source reports use the signals engine after a resident wait.
409
+ () => import("../utils/local-files-overview.js"),
410
+ () => import("../lib/flag-registry.js"),
411
+ () => import("../utils/vault-api.js"),
412
+ () => import("../commands/files-browse.js"),
413
+ () => import("@aws-sdk/client-s3"),
414
+ () => import("../commands/access.js"),
415
+ () => import("../commands/sources.js"),
416
+ () => import("../lib/hot-channels/adapters/index.js"),
364
417
  ],
365
418
  "secrets-sandbox": [],
366
419
  "pkg-update": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@indigoai-us/hq-cli",
3
- "version": "5.345.199",
3
+ "version": "5.345.201",
4
4
  "description": "HQ by Indigo management CLI — modules and cloud sync",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -116,11 +116,11 @@
116
116
  "*.{ts,tsx,mts,cts,js,jsx,mjs,cjs}": "eslint --cache --no-error-on-unmatched-pattern"
117
117
  },
118
118
  "optionalDependencies": {
119
- "@indigoai-us/hq-hook-win32-x64": "5.345.199",
120
- "@indigoai-us/hq-hook-win32-arm64": "5.345.199",
121
- "@indigoai-us/hq-hook-darwin-x64": "5.345.199",
122
- "@indigoai-us/hq-hook-darwin-arm64": "5.345.199",
123
- "@indigoai-us/hq-hook-linux-x64": "5.345.199",
124
- "@indigoai-us/hq-hook-linux-arm64": "5.345.199"
119
+ "@indigoai-us/hq-hook-win32-x64": "5.345.201",
120
+ "@indigoai-us/hq-hook-win32-arm64": "5.345.201",
121
+ "@indigoai-us/hq-hook-darwin-x64": "5.345.201",
122
+ "@indigoai-us/hq-hook-darwin-arm64": "5.345.201",
123
+ "@indigoai-us/hq-hook-linux-x64": "5.345.201",
124
+ "@indigoai-us/hq-hook-linux-arm64": "5.345.201"
125
125
  }
126
126
  }