@indigoai-us/hq-cli 5.345.104 → 5.345.106

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 (83) hide show
  1. package/CHANGELOG.md +100 -0
  2. package/assets/bot-workers/setup/skills/add-a-pack.md +130 -0
  3. package/assets/bot-workers/setup/worker.yaml +3 -0
  4. package/dist/command-catalog.generated.d.ts +206 -0
  5. package/dist/command-catalog.generated.js +246 -0
  6. package/dist/commands/bot.d.ts +10 -0
  7. package/dist/commands/bot.js +20 -12
  8. package/dist/commands/daemon.js +385 -1
  9. package/dist/commands/integrations-connect.d.ts +6 -0
  10. package/dist/commands/integrations-connect.js +36 -0
  11. package/dist/commands/integrations-slack.d.ts +30 -0
  12. package/dist/commands/integrations-slack.js +81 -0
  13. package/dist/commands/integrations.js +2 -0
  14. package/dist/commands/logout.d.ts +6 -1
  15. package/dist/commands/logout.js +18 -2
  16. package/dist/commands/pack-install.d.ts +20 -1
  17. package/dist/commands/pack-install.js +80 -5
  18. package/dist/commands/pack-start-bot.d.ts +24 -0
  19. package/dist/commands/pack-start-bot.js +76 -0
  20. package/dist/commands/packs.d.ts +9 -0
  21. package/dist/commands/packs.js +26 -3
  22. package/dist/commands/pkg-install.js +11 -2
  23. package/dist/commands/secrets.d.ts +1 -5
  24. package/dist/commands/secrets.js +2 -92
  25. package/dist/fast-scaffold.d.ts +13 -0
  26. package/dist/fast-scaffold.js +136 -0
  27. package/dist/index.js +15 -1
  28. package/dist/lib/bot/config.d.ts +7 -0
  29. package/dist/lib/bot/daemon.js +2 -1
  30. package/dist/lib/bot/index.d.ts +2 -0
  31. package/dist/lib/bot/index.js +2 -0
  32. package/dist/lib/bot/lean-settings.d.ts +16 -0
  33. package/dist/lib/bot/lean-settings.js +34 -0
  34. package/dist/lib/bot/pack-link.d.ts +66 -0
  35. package/dist/lib/bot/pack-link.js +153 -0
  36. package/dist/lib/bot/pack-setup-driver.d.ts +37 -0
  37. package/dist/lib/bot/pack-setup-driver.js +83 -0
  38. package/dist/lib/bot/pack-setup.d.ts +62 -0
  39. package/dist/lib/bot/pack-setup.js +103 -0
  40. package/dist/lib/bot/prompt.d.ts +8 -0
  41. package/dist/lib/bot/prompt.js +5 -0
  42. package/dist/lib/bot/run.d.ts +18 -2
  43. package/dist/lib/bot/run.js +163 -25
  44. package/dist/lib/bot/runtime/claude.d.ts +27 -2
  45. package/dist/lib/bot/runtime/claude.js +49 -4
  46. package/dist/lib/bot/runtime/types.d.ts +5 -0
  47. package/dist/lib/bot/runtime-failure.d.ts +18 -2
  48. package/dist/lib/bot/runtime-failure.js +21 -1
  49. package/dist/lib/bot/toolchain.d.ts +25 -0
  50. package/dist/lib/bot/toolchain.js +33 -0
  51. package/dist/lib/bot/worker-source.d.ts +1 -0
  52. package/dist/lib/bot/worker-source.js +7 -1
  53. package/dist/lib/daemon/catalog.d.ts +15 -0
  54. package/dist/lib/daemon/catalog.js +49 -0
  55. package/dist/lib/daemon/paths.d.ts +1 -0
  56. package/dist/lib/daemon/paths.js +1 -0
  57. package/dist/lib/daemon/remote-control-forwarder.d.ts +14 -0
  58. package/dist/lib/daemon/remote-control-forwarder.js +104 -0
  59. package/dist/lib/daemon/remote-control-pools.d.ts +44 -0
  60. package/dist/lib/daemon/remote-control-pools.js +245 -0
  61. package/dist/lib/daemon/remote-control.d.ts +4 -0
  62. package/dist/lib/daemon/remote-control.js +17 -2
  63. package/dist/lib/daemon/run.js +126 -0
  64. package/dist/lib/doctor/fix/refresh-sync-progress.d.ts +5 -4
  65. package/dist/lib/doctor/fix/refresh-sync-progress.js +5 -4
  66. package/dist/lib/doctor/json-output.d.ts +5 -5
  67. package/dist/lib/doctor/json-output.js +2 -5
  68. package/dist/lib/packages/setup-block.d.ts +43 -0
  69. package/dist/lib/packages/setup-block.js +236 -0
  70. package/dist/lib/packages/setup-prompt.d.ts +34 -0
  71. package/dist/lib/packages/setup-prompt.js +128 -0
  72. package/dist/lib/packages/setup-takeover.d.ts +50 -0
  73. package/dist/lib/packages/setup-takeover.js +75 -0
  74. package/dist/lib/packages/start-bot.d.ts +47 -0
  75. package/dist/lib/packages/start-bot.js +66 -0
  76. package/dist/lib/session-company-lock.d.ts +7 -0
  77. package/dist/lib/session-company-lock.js +97 -0
  78. package/dist/types.d.ts +82 -0
  79. package/dist/utils/cognito-config.d.ts +5 -0
  80. package/dist/utils/cognito-config.js +14 -0
  81. package/dist/utils/cognito-revoke.d.ts +33 -0
  82. package/dist/utils/cognito-revoke.js +42 -0
  83. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,102 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [5.345.106] — 2026-10-12
6
+ - On Windows, `hq core` converts Git Bash paths for commands that declare path operands. Direct calls use the same path rules as the former script wrappers.
7
+ - `hq logout` now ends your session on the HQ server as well as on this
8
+ device, so a copied token file stops working. If the server can't be
9
+ reached, logout still signs you out locally and says the old session will
10
+ expire on its own.
11
+
12
+ ## [5.345.105] — 2026-10-12
13
+ - Session-start health no longer files leftover company journals that this
14
+ repair pass did not refresh, including older hooks that only read
15
+ `hq doctor --json`. `hq doctor` still prints those rows; `--fix` still
16
+ refreshes a stale mhi-media journal when hook files have uncommitted
17
+ changes.
18
+ - The setup bot can add a pack from the chat. Paste a pack page link
19
+ (`hqforwork.com/packs/<slug>`), type `hq-pack-<slug>`, a slug, or the pack's
20
+ name from the catalog, and it confirms in one message, runs
21
+ `hq packages install <slug> --start-bot`, and hands over to the pack's setup
22
+ bot by name. An unknown pack gets the three closest catalog names; a failed
23
+ install gets the reason in plain words and one next step.
24
+ - Bots look for `claude` in the HQ app's toolchain
25
+ (`~/Library/Application Support/Indigo HQ/toolchain/npm-global/bin/claude`)
26
+ before `/usr/local/bin`, `/opt/homebrew/bin`, `/usr/bin` and PATH, and log
27
+ the path they chose when they start.
28
+ - A bot turn that fails because its coding tool is missing posts a plain
29
+ one-line message with a Retry button on the first attempt instead of
30
+ retrying silently. Other failures without a repair card get the Retry button
31
+ too, and the fifth failure in ten minutes posts one summary (reason, next
32
+ step, pause) rather than a per-turn line plus a pause note.
33
+ - Packs can declare a `setup:` block in `package.yaml`: a setup bot (handle,
34
+ display name, intro), ordered questions with suggested answers, the script to
35
+ run with the answers, a done message, and `takeover_setup`. `hq packages
36
+ install` validates the block and fails naming the field; packs without one
37
+ install unchanged. `hq packages list` shows `setup: yes|no` for each pack.
38
+ - `hq packages install <source> --start-bot` creates the pack's setup bot as a
39
+ personal bot running the pack's worker, starts it, and prints `bot: <name>`.
40
+ An existing bot of that name is restarted and sends its intro again. If the
41
+ bot cannot start, the install still succeeds, prints the reason, and DMs you
42
+ one sentence with the next step.
43
+ - A bot running a pack's worker gets the pack's setup instructions in its
44
+ system prompt: each question with tap-to-answer suggestions (Skip for
45
+ skippable questions), the exact command to run with the answers, and the done
46
+ message. When the pack asks to take over and HQ's own setup is unfinished,
47
+ the bot finishes HQ setup first with the setup worker's skills.
48
+ - Installing a pack from the marketplace (a bare slug or `marketplace:<slug>`)
49
+ first installs any pack in its `requires.packs` that is not installed yet,
50
+ from the marketplace. A dependency cycle or a required pack missing from the
51
+ marketplace fails the install before anything is written.
52
+ - A pack bot sends its first setup question the moment it starts, from code,
53
+ proposing the company's name when the question asks for it. It no longer
54
+ spends a model turn checking sign-in and company first.
55
+ - Pack setup bots run lean: their Claude Code turns load none of the computer's
56
+ plugins, MCP servers or HQ's session, prompt and stop hooks; HQ's tool hooks
57
+ still run. A plain reply takes about 5 seconds instead of about 20.
58
+ `hq bot create --lean` does the same for any Claude bot.
59
+ - A `setup:` question can carry a `goal`, and the block a `documents` list. The
60
+ bot runs the setup as an interview: it follows up once on a vague answer,
61
+ asks early for the listed documents, and reads them to ask less.
62
+ - Pack setup bots learn from the person's tools before asking. Right after
63
+ the first answer the bot checks the company's usable HQ integrations, then
64
+ runs a short interview: for each kind of tool the pack lists in
65
+ `setup.sources` (email, CRM, team chat, docs), which one they use, as
66
+ buttons. It sends a sign-in link for each tool they picked, one at a time
67
+ (`hq integrations connect <domain> --no-browser`), reads with read-only
68
+ tools after a yes, and proposes answers for the person to confirm. It asks
69
+ only what the data left open, and names tools by kind, not brand.
70
+ - A pack setup ends with a summary: the bot opens its last message with the
71
+ pack's done message, then says what it created and where, which apps it
72
+ linked, and what it skipped, with the done suggestion plus up to two next
73
+ steps as buttons.
74
+ - `hq integrations connect --link-only` prints the sign-in link and exits at
75
+ once; the sign-in finishes on the HQ console, and `hq integrations list`
76
+ confirms it. Pack setup bots use it, so a person gets the link right away
77
+ instead of the bot waiting on a sign-in it has not sent yet.
78
+ - Pack setup asks about all the person's tools in one message with an example
79
+ answer, and tells the bot that any text it writes is sent, so it does not
80
+ narrate its steps.
81
+ - A `setup.sources` option can connect through a script the pack ships
82
+ (`tool`, with `connect`, `status` and `usage`) instead of an HQ integrations
83
+ domain, or be marked `available: false` with a note. The setup prompt spells
84
+ out each tool's connect, check and read commands, and the bot never tells the
85
+ person a listed tool cannot be connected.
86
+ - The tools question is asked by typing, with no buttons and no example
87
+ answer, and buttons are reserved for real choices.
88
+ - The Pack setup section is a brief, not a script: what the pack needs to
89
+ learn (topics with goals and common answers), how each of the person's
90
+ tools connects and is read, how buttons work, the setup command, and what
91
+ to report when done. The bot decides how to run the conversation and adapts
92
+ to the person; no fixed order, wording or forced buttons.
93
+ - `hq integrations slack connect [--company <slug>] [--open] [--json]` gets Slack's own sign-in link for your account (the call the console's Add Integration dialog makes) and prints or opens it, so a bot or script can connect Slack without the console dialog. `hq integrations slack accounts` lists the connected accounts.
94
+ - The setup prompt treats a pack's tool list as examples, not a limit. For any other tool the bot works out a connection itself: HQ's catalog and a sign-in link, an access key entered through an HQ secrets link (never the chat), a docs page or MCP server, and then a workaround such as an export dropped into the chat.
95
+ - HQ's setup bot no longer repeats its open question for every setup note the desktop app sends. A note is folded in, and the bot posts only when the note changes what the person needs to know.
96
+ - `hq packs update` installs the newer marketplace version it finds. It used to reinstall the version recorded at install time, so a pack reported "0.4.15 available" and stayed on 0.4.14.
97
+ - Installing a marketplace pack retries a lookup that the server answers with a 5xx or a network error (twice, after 0.5 s and 1.5 s). One brief 502 from the gateway used to end the install.
98
+ - A pack's setup bot is created on Claude Opus 5.5 at medium thinking (`--model claude-opus-5-5 --effort medium`). Left unset it ran on the account's default model, which took up to nine minutes for one setup step. `hq bot set` still changes either.
99
+ - `hq daemon` can supervise isolated Claude Remote Control account pools with per-account inference credentials. Pool desired state now names an existing personal-only `serviceSessionId`; the daemon validates its scope capability and pins `HQ_SESSION_ID` only for Secrets child processes, independent of the mutable current session.
100
+
5
101
  ## [5.345.104] — 2026-10-12
6
102
  - Session-start health no longer files a leftover personal-files journal
7
103
  warning plus an ordinary HQ Core upgrade as failed doctor repairs.
@@ -10,6 +106,10 @@
10
106
  - On Macs, idle `hq lanes` work no longer sits queued on the memory throttle
11
107
  just because reclaimable cache made free RAM look too low.
12
108
 
109
+ ## [5.345.103] — 2026-10-12
110
+ - On Macs, idle `hq lanes` work no longer sits queued on the memory throttle
111
+ just because reclaimable cache made free RAM look too low.
112
+
13
113
  ## [5.345.102] — 2026-10-12
14
114
  - Session-start health no longer files a leftover company journal as an
15
115
  unrepaired doctor finding, and company manifest rows keep a real check id
@@ -0,0 +1,130 @@
1
+ ---
2
+ name: add-a-pack
3
+ description: Recognize a content pack the person pastes or names (a hqforwork.com pack link, hq-pack-{slug}, a bare slug, or a display name from the catalog), confirm in one message, install it with --start-bot, and hand over to the pack's bot.
4
+ ---
5
+
6
+ # Adding a pack from the chat
7
+
8
+ A pack is a bundle of workers, knowledge and a setup bot that HQ installs with
9
+ `hq packages install`. People arrive with one in three ways: they paste a link
10
+ from a pack page, they type the pack's name, or they drop a folder path. You add
11
+ it without them leaving this conversation, and you end by introducing the bot
12
+ the pack brings. This skill only adds that; nothing else about how you run setup
13
+ or answer how-do-I questions changes.
14
+
15
+ ## Spotting a pack in the message
16
+
17
+ Any of these, anywhere in what they wrote, is a pack reference. Read the slug
18
+ out of it:
19
+
20
+ - `https://www.hqforwork.com/packs/{slug}`
21
+ - `hqforwork.com/packs/{slug}` (no scheme, with or without `www.`)
22
+ - `hq-pack-{slug}` (the package name)
23
+ - `{slug}` on its own, when it is in the catalog (for example `sample-kit`)
24
+ - a display name from the catalog, in plain words ("add the sample kit",
25
+ "I want the Sample Kit"). Match case-insensitively; "sample kit" and
26
+ "sample-kit" are the same name.
27
+ - a local folder path whose last `hq-pack-*` segment names the pack
28
+ (`./packs/hq-pack-sample-kit`, `~/Downloads/hq-pack-sample-kit`). Keep the
29
+ path: it is what you install from.
30
+
31
+ `sample-kit` / "Sample Kit" below is a placeholder: use the real slug and
32
+ display name from the catalog.
33
+
34
+ Slugs are lowercase letters, digits and hyphens. A link or a package name is
35
+ always a reference, even if the catalog does not list it: the slug is explicit.
36
+ A bare word or a name must match the catalog, so you never guess a pack from
37
+ ordinary conversation ("my co-founder is joining" is not a pack).
38
+
39
+ ### The catalog
40
+
41
+ The catalog is what `hq packages list` prints under "Available (curated)": each
42
+ line is an install source like `github:indigoai-us/hq-packages#packages/hq-pack-design-styles`
43
+ with a description. The slug is the last segment without `hq-pack-`; the display
44
+ name is the slug in title case (`design-styles` is "Design Styles") unless the
45
+ catalog gives one. Run the list once per conversation when you need to check a
46
+ name; never invent a pack that is not there.
47
+
48
+ ## Confirm first, in one message
49
+
50
+ Before you install anything, send exactly one message: the pack's display name,
51
+ its one-line description from the catalog (or from the pack page if the person
52
+ pasted a link and the catalog has no description), and what will happen: you
53
+ will add it and its bot will introduce itself. End with the suggestions
54
+ envelope, exactly these two:
55
+
56
+ ```hq-block
57
+ {"v":1,"blocks":[{"kind":"suggestions","items":["Add the {displayName}","Not now"]}]}
58
+ ```
59
+
60
+ Example, for `https://www.hqforwork.com/packs/sample-kit`:
61
+
62
+ > Sample Kit: {the catalog's one-line description}. It brings its own bot, who
63
+ > will take you through its setup with a few quick questions. Want me to add it?
64
+
65
+ followed by the envelope with `["Add the Sample Kit","Not now"]`.
66
+
67
+ "Not now" (or anything that is not a yes): say "Okay, it's here whenever you
68
+ want it" and carry on with whatever you were doing. Do not ask again in that
69
+ conversation unless they bring it up.
70
+
71
+ ## On "Add the ..."
72
+
73
+ Run, from the HQ root:
74
+
75
+ hq packages install {slug-or-path} --start-bot
76
+
77
+ `{slug-or-path}` is the slug (`sample-kit`), or the local path when the message
78
+ carried one. Quote a path with spaces. Wait for it to finish; it can take a
79
+ minute. Do not narrate the steps while it runs.
80
+
81
+ Then report in **one** message:
82
+
83
+ 1. What was added, in one line ("The Sample Kit is in.").
84
+ 2. Where its pieces live, as Files-tab locations, only if the install output
85
+ names any (for example Knowledge > {Pack} Playbook). Never a filesystem path.
86
+ 3. The hand-over. The install output has a line `bot: {name}` when a bot was
87
+ started. Name that bot by its display name and say it will take it from here
88
+ in its own conversation in Messages, for example: "{Bot display name} is
89
+ starting now and will take it from here; look for its message in Messages."
90
+ If the output has no `bot:` line, say the pack is installed and name what it
91
+ added instead.
92
+
93
+ That ends your part. Do not run the pack's setup yourself, do not re-ask the
94
+ pack's questions, and do not keep the conversation going about the pack: the
95
+ pack's bot owns it from here. Write one line in your progress note
96
+ (`Pack added: {slug}, bot {name}`) so a later turn knows.
97
+
98
+ ## When you do not know the pack
99
+
100
+ A bare word or name that matches nothing in the catalog: say so in one line and
101
+ offer the three closest names from the catalog, as suggestions, plus "Not now".
102
+ For example:
103
+
104
+ > I don't know a pack called "growth-kit". The closest I have are Sample Kit,
105
+ > Field Notes and Design Styles.
106
+
107
+ ```hq-block
108
+ {"v":1,"blocks":[{"kind":"suggestions","items":["Add the Sample Kit","Add the Field Notes","Add the Design Styles","Not now"]}]}
109
+ ```
110
+
111
+ If the catalog has fewer than three packs, offer what there is. Never offer a
112
+ name you did not see in the list.
113
+
114
+ ## When the install fails
115
+
116
+ Say what went wrong in plain words and give one next step, in one message. Take
117
+ the reason from the command's output, not from a guess, and translate it:
118
+
119
+ - not signed in to HQ Cloud: "I couldn't add the pack because you're not signed
120
+ in to HQ Cloud. Sign in from the HQ app, then tell me to try again."
121
+ - no network or the registry did not answer: "I couldn't reach the pack
122
+ registry. Check your connection and tell me to try again."
123
+ - the pack was installed but its bot did not start (the output says so): "The
124
+ Sample Kit is in, but its bot didn't start: {reason in plain words}. Open
125
+ Bots in HQ and start {bot display name}, or tell me to try again."
126
+ - anything else: quote the one line of the error that says what happened, in
127
+ plain words, then: "Tell me to try again, or send me the link once more."
128
+
129
+ End that message with `["Try again","Not now"]` as the suggestions. Never paste
130
+ a stack trace or a wall of command output into the chat.
@@ -45,6 +45,9 @@ skills:
45
45
  - name: explain-hq
46
46
  description: "The fixed explanation of HQ for someone who asks for it at the start of setup. Sent word for word, by you or by the HQ app."
47
47
  doc: skills/explain-hq.md
48
+ - name: add-a-pack
49
+ description: "Recognize a content pack the person pastes or names (a hqforwork.com pack link, hq-pack-{slug}, a bare slug, or a display name from the catalog), confirm in one message, install it with --start-bot, and hand over to the pack's bot."
50
+ doc: skills/add-a-pack.md
48
51
 
49
52
  instructions: |
50
53
  # Setup
@@ -161,6 +161,10 @@ export declare const COMMAND_CATALOG: readonly [{
161
161
  readonly flags: "--allow-unsigned";
162
162
  readonly description: "Acknowledge an unsigned local directory source; marketplace installs always require a signature";
163
163
  readonly hidden: false;
164
+ }, {
165
+ readonly flags: "--start-bot";
166
+ readonly description: "After install, create and start the pack's setup bot (packs with a setup: block); prints `bot: <name>`";
167
+ readonly hidden: false;
164
168
  }, {
165
169
  readonly flags: "--branch";
166
170
  readonly description: "Follow a ref instead of SHA-pinning (git content-pack flow)";
@@ -551,6 +555,10 @@ export declare const COMMAND_CATALOG: readonly [{
551
555
  readonly flags: "--allow-unsigned";
552
556
  readonly description: "Acknowledge an unsigned local directory source; marketplace installs always require a signature";
553
557
  readonly hidden: false;
558
+ }, {
559
+ readonly flags: "--start-bot";
560
+ readonly description: "After install, create and start the pack's setup bot (packs with a setup: block); prints `bot: <name>`";
561
+ readonly hidden: false;
554
562
  }, {
555
563
  readonly flags: "--branch";
556
564
  readonly description: "Follow a ref instead of SHA-pinning (git content-pack flow)";
@@ -4793,6 +4801,10 @@ export declare const COMMAND_CATALOG: readonly [{
4793
4801
  readonly flags: "--timeout <seconds>";
4794
4802
  readonly description: "How long to wait for a browser sign-in (default 300)";
4795
4803
  readonly hidden: false;
4804
+ }, {
4805
+ readonly flags: "--link-only";
4806
+ readonly description: "Print the sign-in link and exit without waiting; the sign-in finishes on the HQ console";
4807
+ readonly hidden: false;
4796
4808
  }, {
4797
4809
  readonly flags: "--force";
4798
4810
  readonly description: "Connect again even if this app is already connected";
@@ -5338,6 +5350,58 @@ export declare const COMMAND_CATALOG: readonly [{
5338
5350
  readonly hidden: false;
5339
5351
  }];
5340
5352
  readonly subcommands: readonly [];
5353
+ }, {
5354
+ readonly name: "slack";
5355
+ readonly description: "Connect your own Slack account to HQ (stored in your personal vault)";
5356
+ readonly aliases: readonly [];
5357
+ readonly hidden: false;
5358
+ readonly helpOption: true;
5359
+ readonly helpCommand: true;
5360
+ readonly usage: "[options] [command]";
5361
+ readonly helpText: readonly [];
5362
+ readonly arguments: readonly [];
5363
+ readonly options: readonly [];
5364
+ readonly subcommands: readonly [{
5365
+ readonly name: "connect";
5366
+ readonly description: "Get Slack's sign-in link for your account; the sign-in finishes on HQ";
5367
+ readonly aliases: readonly [];
5368
+ readonly hidden: false;
5369
+ readonly helpOption: true;
5370
+ readonly helpCommand: false;
5371
+ readonly usage: "[options]";
5372
+ readonly helpText: readonly [];
5373
+ readonly arguments: readonly [];
5374
+ readonly options: readonly [{
5375
+ readonly flags: "--company <slug>";
5376
+ readonly description: "Company the Slack workspace belongs to (defaults to your single active company)";
5377
+ readonly hidden: false;
5378
+ }, {
5379
+ readonly flags: "--open";
5380
+ readonly description: "Open the link in the browser instead of only printing it";
5381
+ readonly hidden: false;
5382
+ }, {
5383
+ readonly flags: "--json";
5384
+ readonly description: "Machine-readable output: { url, opened }";
5385
+ readonly hidden: false;
5386
+ }];
5387
+ readonly subcommands: readonly [];
5388
+ }, {
5389
+ readonly name: "accounts";
5390
+ readonly description: "List your connected Slack accounts";
5391
+ readonly aliases: readonly [];
5392
+ readonly hidden: false;
5393
+ readonly helpOption: true;
5394
+ readonly helpCommand: false;
5395
+ readonly usage: "[options]";
5396
+ readonly helpText: readonly [];
5397
+ readonly arguments: readonly [];
5398
+ readonly options: readonly [{
5399
+ readonly flags: "--json";
5400
+ readonly description: "Machine-readable output";
5401
+ readonly hidden: false;
5402
+ }];
5403
+ readonly subcommands: readonly [];
5404
+ }];
5341
5405
  }];
5342
5406
  }, {
5343
5407
  readonly name: "import";
@@ -15520,6 +15584,68 @@ export declare const COMMAND_CATALOG: readonly [{
15520
15584
  readonly hidden: false;
15521
15585
  }];
15522
15586
  readonly subcommands: readonly [];
15587
+ }, {
15588
+ readonly name: "remote-control-pools";
15589
+ readonly description: "Validate, configure, and inspect opt-in Claude Remote Control account pools";
15590
+ readonly aliases: readonly [];
15591
+ readonly hidden: false;
15592
+ readonly helpOption: true;
15593
+ readonly helpCommand: true;
15594
+ readonly usage: "[options] [command]";
15595
+ readonly helpText: readonly [];
15596
+ readonly arguments: readonly [];
15597
+ readonly options: readonly [];
15598
+ readonly subcommands: readonly [{
15599
+ readonly name: "validate";
15600
+ readonly description: "Validate a host-local desired-state JSON file without saving it";
15601
+ readonly aliases: readonly [];
15602
+ readonly hidden: false;
15603
+ readonly helpOption: true;
15604
+ readonly helpCommand: false;
15605
+ readonly usage: "[options] <file>";
15606
+ readonly helpText: readonly [];
15607
+ readonly arguments: readonly [{
15608
+ readonly name: "file";
15609
+ readonly required: true;
15610
+ readonly variadic: false;
15611
+ readonly description: "";
15612
+ }];
15613
+ readonly options: readonly [];
15614
+ readonly subcommands: readonly [];
15615
+ }, {
15616
+ readonly name: "configure";
15617
+ readonly description: "Save a validated host-local desired-state JSON file";
15618
+ readonly aliases: readonly [];
15619
+ readonly hidden: false;
15620
+ readonly helpOption: true;
15621
+ readonly helpCommand: false;
15622
+ readonly usage: "[options] <file>";
15623
+ readonly helpText: readonly [];
15624
+ readonly arguments: readonly [{
15625
+ readonly name: "file";
15626
+ readonly required: true;
15627
+ readonly variadic: false;
15628
+ readonly description: "";
15629
+ }];
15630
+ readonly options: readonly [];
15631
+ readonly subcommands: readonly [];
15632
+ }, {
15633
+ readonly name: "show";
15634
+ readonly description: "Show configured pool metadata (never secret values)";
15635
+ readonly aliases: readonly [];
15636
+ readonly hidden: false;
15637
+ readonly helpOption: true;
15638
+ readonly helpCommand: false;
15639
+ readonly usage: "[options]";
15640
+ readonly helpText: readonly [];
15641
+ readonly arguments: readonly [];
15642
+ readonly options: readonly [{
15643
+ readonly flags: "--json";
15644
+ readonly description: "Print JSON";
15645
+ readonly hidden: false;
15646
+ }];
15647
+ readonly subcommands: readonly [];
15648
+ }];
15523
15649
  }, {
15524
15650
  readonly name: "service";
15525
15651
  readonly description: "Entry points the daemon runs for services that have no command of their own";
@@ -15567,6 +15693,82 @@ export declare const COMMAND_CATALOG: readonly [{
15567
15693
  readonly hidden: false;
15568
15694
  }];
15569
15695
  readonly subcommands: readonly [];
15696
+ }, {
15697
+ readonly name: "remote-control-pool";
15698
+ readonly description: "Keep one configured Claude Remote Control account pool running in its private mount namespace";
15699
+ readonly aliases: readonly [];
15700
+ readonly hidden: false;
15701
+ readonly helpOption: true;
15702
+ readonly helpCommand: false;
15703
+ readonly usage: "[options]";
15704
+ readonly helpText: readonly [];
15705
+ readonly arguments: readonly [];
15706
+ readonly options: readonly [{
15707
+ readonly flags: "--account-id <id>";
15708
+ readonly description: "Claude account ID from hq lanes accounts";
15709
+ readonly hidden: false;
15710
+ }];
15711
+ readonly subcommands: readonly [];
15712
+ }, {
15713
+ readonly name: "remote-control-pool-host";
15714
+ readonly description: "Run one pool's forwarder and Claude host inside its private namespace";
15715
+ readonly aliases: readonly [];
15716
+ readonly hidden: false;
15717
+ readonly helpOption: true;
15718
+ readonly helpCommand: false;
15719
+ readonly usage: "[options]";
15720
+ readonly helpText: readonly [];
15721
+ readonly arguments: readonly [];
15722
+ readonly options: readonly [{
15723
+ readonly flags: "--account-id <id>";
15724
+ readonly description: "Claude account ID from hq lanes accounts";
15725
+ readonly hidden: false;
15726
+ }];
15727
+ readonly subcommands: readonly [];
15728
+ }, {
15729
+ readonly name: "remote-control-pool-forwarder-host";
15730
+ readonly description: "Supervise one pool's personal HQ Secret injected inference forwarder";
15731
+ readonly aliases: readonly [];
15732
+ readonly hidden: false;
15733
+ readonly helpOption: true;
15734
+ readonly helpCommand: false;
15735
+ readonly usage: "[options]";
15736
+ readonly helpText: readonly [];
15737
+ readonly arguments: readonly [];
15738
+ readonly options: readonly [{
15739
+ readonly flags: "--account-id <id>";
15740
+ readonly description: "Claude account ID from hq lanes accounts";
15741
+ readonly hidden: false;
15742
+ }];
15743
+ readonly subcommands: readonly [];
15744
+ }, {
15745
+ readonly name: "remote-control-pool-forwarder";
15746
+ readonly description: "Run the loopback-only /v1/messages inference forwarder";
15747
+ readonly aliases: readonly [];
15748
+ readonly hidden: false;
15749
+ readonly helpOption: true;
15750
+ readonly helpCommand: false;
15751
+ readonly usage: "[options]";
15752
+ readonly helpText: readonly [];
15753
+ readonly arguments: readonly [];
15754
+ readonly options: readonly [{
15755
+ readonly flags: "--account-id <id>";
15756
+ readonly description: "Claude account ID from hq lanes accounts";
15757
+ readonly hidden: false;
15758
+ }, {
15759
+ readonly flags: "--port <port>";
15760
+ readonly description: "loopback listener port";
15761
+ readonly hidden: false;
15762
+ }, {
15763
+ readonly flags: "--secret-env <name>";
15764
+ readonly description: "HQ Secrets injected environment variable name";
15765
+ readonly hidden: false;
15766
+ }, {
15767
+ readonly flags: "--ready-file <path>";
15768
+ readonly description: "private daemon state file for listener ownership";
15769
+ readonly hidden: false;
15770
+ }];
15771
+ readonly subcommands: readonly [];
15570
15772
  }, {
15571
15773
  readonly name: "codex-remote-control";
15572
15774
  readonly description: "Keep the box's Codex remote-control runner going in a tmux session, restarting it after a Codex update";
@@ -15785,6 +15987,10 @@ export declare const COMMAND_CATALOG: readonly [{
15785
15987
  readonly description: "Where the bot keeps its memory: synced (personal/workers/<name>/memory in HQ) or local (~/.hq/bots/<name>/memory, this computer only)";
15786
15988
  readonly hidden: false;
15787
15989
  readonly defaultValue: "synced";
15990
+ }, {
15991
+ readonly flags: "--lean";
15992
+ readonly description: "Claude bots: run each turn without this computer's plugins, MCP servers and HQ's session hooks (HQ's tool hooks still run), so replies take seconds";
15993
+ readonly hidden: false;
15788
15994
  }, {
15789
15995
  readonly flags: "--no-daemon";
15790
15996
  readonly description: "Do not install the launchd agent (macOS)";