@indigoai-us/hq-cli 5.235.0 → 5.237.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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,58 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [5.237.0] — 2026-09-27
6
+
7
+ ### Added
8
+
9
+ - Lane-store creates and updates record their hq-cli version. User-invoked
10
+ writes from older CLIs are refused, while background writers preserve newer
11
+ stamps and record Outpost owner versions separately. `hq lanes checks` warns
12
+ about newer stamps, and `HQ_LANES_ALLOW_OLDER_WRITE=1` provides a one-command
13
+ override with a warning.
14
+
15
+ ## [5.236.0] — 2026-09-27
16
+
17
+ ### Changed
18
+
19
+ - The bundled setup bot introduces itself by the name the desktop app gives
20
+ it. For someone who started their own company it offers, once, to put a copy
21
+ of itself in Slack (on the Workforce plan, checked rather than guessed), and
22
+ flags its finish card so the card offers it too. It never offers this to
23
+ someone who joined an existing company.
24
+
25
+ - The bundled setup bot now starts by asking whether you want HQ explained
26
+ before setup or want to jump straight in. Its explanation puts the agents
27
+ you already use first (Claude Code, Codex, Cursor, agents in Slack, and
28
+ other agents connected in the HQ console), then your team, then bots. It
29
+ can walk you through a Slack agent, an outside agent, inviting a teammate,
30
+ and sharing a connected app or a key. It checks your company's plan before
31
+ talking about limits or prices instead of guessing, and it no longer says
32
+ inviting or sharing needs a paid plan. Same change as the setup worker in
33
+ hq-core.
34
+ - The bundled setup bot can end a message with two to four suggested replies
35
+ (likely answers to a closed question, or clear next steps) that the desktop
36
+ app shows as reply buttons. It leaves them out when the answer is something
37
+ only you can type, like a name or an email. Needs a desktop app that renders
38
+ them.
39
+
40
+ ### Added
41
+
42
+ - `hq bot create --display-name <name>` gives a bot the human name people see
43
+ in HQ (the DM list and how the bot introduces itself), up to 35 characters.
44
+ The handle stays the key for every `hq bot` command, and the server slug is
45
+ pinned to the handle, so the reserved setup bot and restore keep matching.
46
+
47
+ ### Fixed
48
+
49
+ - The setup bot no longer posts its notes to itself ("Now write the worker.")
50
+ into the chat. A message it writes right before a tool call is dropped; only
51
+ messages a turn ends on reach the person. When a step runs past 30 seconds
52
+ it now says "This one takes a minute. I'll reply here as soon as it's done."
53
+ - Bots no longer post a stray "(no reply)" right after a real message. The
54
+ fallback counted only posts whose delivery had finished, so a message still
55
+ being sent when the turn ended looked like silence.
56
+
5
57
  ## [5.235.0] — 2026-09-27
6
58
 
7
59
  ### Changed
@@ -11,6 +63,11 @@
11
63
  The retired Work Mesh tracker path and question index were removed. KPI and
12
64
  OKR approvals also verify and save any supplied answered question ID.
13
65
 
66
+ ### Fixed
67
+
68
+ - Removed the unused `cli.network.force-ipv4` hq-flags lookup and forced IPv4
69
+ startup path. The existing Node family-attempt timeout remains unchanged.
70
+
14
71
  ## [5.234.2] — 2026-09-27
15
72
 
16
73
  ### Fixed
@@ -0,0 +1,154 @@
1
+ ---
2
+ name: agents-and-team
3
+ description: Walk someone through putting an agent in Slack, connecting an outside agent, inviting a teammate, and sharing a connected app or a key with them. What you can do yourself, what only they can click, and how to check it worked.
4
+ ---
5
+
6
+ # Agents and the team
7
+
8
+ Use this whenever someone wants one of these, during setup or after it:
9
+
10
+ - an agent in Slack for their team
11
+ - another agent (not one of HQ's own) connected to their company
12
+ - a teammate invited
13
+ - a connected app, or a key, shared with a teammate
14
+
15
+ The rules from your instructions still hold: one question per message, plain
16
+ words, and you run the commands yourself. Everything below that goes out to
17
+ another person or costs money is confirmed first, in one short line, before
18
+ you run it.
19
+
20
+ ## Check these first, every time
21
+
22
+ Run `hq whoami` and `hq companies list`, and read the "Owner context" block.
23
+
24
+ 1. **A company, not their personal HQ.** All four flows are company-level. If
25
+ they have no company yet, say so and offer to create one first.
26
+ 2. **Their role.** Creating agents, connecting Slack and inviting anyone but a
27
+ plain member need an owner or admin. If they are a member, say that plainly
28
+ and offer to draft a short note to their company's owner instead.
29
+ 3. **Their plan, when the flow depends on it.** Check it as
30
+ `skills/pricing.md` says; never guess it. Inviting people, sharing a
31
+ connected app and sharing a key are included in every plan (within
32
+ Starter's limits of 5 people, 1 connected app and 10 keys). Hosted agents,
33
+ Slack agents included, are not part of Starter: they need HQ Workforce
34
+ ($500 a month for the company), and then each agent is $100 a month on
35
+ top. If HQ refuses something or quotes a price, pass that answer on.
36
+
37
+ Never ask anyone to paste a token, a code, a password or a key into this chat.
38
+ Tokens go into the HQ console, codes go into the other agent, keys go through
39
+ `hq secrets generate-link`.
40
+
41
+ ## An agent in Slack
42
+
43
+ The current way is a cloud agent created in HQ that gets its own Slack app in
44
+ the company's workspace. Three moments need the person: approving the monthly
45
+ price, signing the agent in to its model, and the Slack side (connecting the
46
+ workspace once, then installing the app).
47
+
48
+ 1. Ask what they want the agent to do and what to call it. Suggest a name and
49
+ a job drawn from their business.
50
+ 2. Run `hq agents provision "<name>" --company <slug> --model <model>` without
51
+ `--yes` and tell them the price it quotes. Only after they say yes, run it
52
+ again with `--yes`. If it exits with code 3, HQ needs payment first
53
+ (on Starter that means upgrading to HQ Workforce): pass on what it says and
54
+ the checkout link it prints, and say an owner has to complete it.
55
+ 3. Follow it with `hq agents status <name> --company <slug> --json`. When it
56
+ shows a model sign-in link and code (or run `hq agents login-code`), give
57
+ both to them and wait for "done".
58
+ 4. **Connecting the Slack workspace, once per company.** If the status shows
59
+ `FACTORY_ROOT_MISSING`, the company's Slack is not connected yet. Send them
60
+ to `https://hq.computer/companies/<slug>/agents` (the page is called Bots).
61
+ There they open api.slack.com/apps, generate the App Configuration Token
62
+ pair, and paste both tokens into the console, not into this chat. Only an
63
+ owner or admin can do this; there is no command for it.
64
+ 5. **Installing the app.** When the status shows a `slack-install` action,
65
+ give them the install link. Someone in their Slack workspace clicks
66
+ Install. If their workspace needs admin approval for new apps, say a Slack
67
+ admin has to approve it and that you will pick up once they have.
68
+ 6. If a `slack-app-token` action appears, send them to the app's Basic
69
+ Information page in Slack to create an app-level token with
70
+ `connections:write`, and to paste it on the agent's row on the Bots page.
71
+ 7. When the status shows the agent is ready, have them invite it to a Slack
72
+ channel and @mention it there. Check from your side with
73
+ `hq agents message <name> "hello" --company <slug>`.
74
+
75
+ When something goes wrong:
76
+
77
+ - The Slack tokens are rejected or expired: generate a fresh pair at
78
+ api.slack.com/apps and paste it again. The pair belongs to the Slack user
79
+ who made it.
80
+ - The workspace does not allow creating apps: the company can reuse an
81
+ existing Slack bot token instead (`--slack-bot-token`, or
82
+ `--slack-tokens-stdin` so it never appears on screen). Ask whether they
83
+ have one before suggesting it.
84
+ - The agent ignores someone's DM: that person's Slack account is not linked to
85
+ HQ yet. They open the link the agent sent them and sign in.
86
+ - `hq agents retry` does not clear a step that is waiting on a person. Say
87
+ which person action is still open instead.
88
+
89
+ ## Another agent, connected from the console
90
+
91
+ Agents HQ does not host (grokbot, OpenClaw, Muse, or anything that can
92
+ use MCP) connect as an "External bot". Creating one happens only in the
93
+ console; you guide, they click.
94
+
95
+ 1. Ask which agent it is and where it runs.
96
+ 2. Send them to `https://hq.computer/companies/<slug>/agents`, then Add bot,
97
+ a name, **External bot**, the agent's framework, and **Create and get
98
+ code**. The code works once and expires in 15 minutes. It goes into the
99
+ other agent, never into this chat.
100
+ 3. On the machine where that agent runs, the console's prompt does the rest,
101
+ or by hand: `pnpm add -g @indigoai-us/hq-cli`, then
102
+ `hq agent enroll <CODE> --company <slug>`, `hq agent kit install`, and
103
+ registering `hq agent mcp` as an MCP server in that agent.
104
+ 4. `hq agent probe` on that machine passing, or the Enrolled badge in the
105
+ console, means it worked. If the code expired, `hq agents rotate <uid>`
106
+ makes a new one.
107
+
108
+ Tell them what it gets: the company's files, messages, search, and the keys
109
+ shared with it, the same context their own agents have.
110
+
111
+ If they only mean their own Claude, ChatGPT, Codex or Grok (the chat apps, not
112
+ a bot), that is simpler: Integrations, then **Connect an agent** in the
113
+ console, and they sign in in the browser.
114
+
115
+ ## Inviting a teammate
116
+
117
+ 1. Ask for one email and whether they should be a member or an admin
118
+ (member is the default; admins can only invite members).
119
+ 2. Confirm in one line that an invitation email will go to that address, and
120
+ wait for yes.
121
+ 3. Run `hq members invite <email> --company <slug> --role member`.
122
+ 4. Tell them what happens next: the teammate opens the email, signs in with
123
+ Google or Microsoft, and gets the company in their own HQ, so their Claude
124
+ Code or Codex knows the business from their first session. Say what they
125
+ will see that matters to this person (the connected calls, the client
126
+ homes).
127
+ 5. Check with `hq members list` (pending until they accept). If they never
128
+ got it, `--resend` sends it again.
129
+
130
+ Then offer, once, to share a connected app or a key with the new teammate.
131
+
132
+ ## Sharing a connected app
133
+
134
+ Connected apps are private to whoever connected them until they are shared.
135
+ Sharing one is included in every plan.
136
+
137
+ 1. `hq integrations list`, then confirm which app and with whom.
138
+ 2. `hq integrations share <app> --with <email> --permission read` (or
139
+ `--with everyone` for the whole company).
140
+ 3. Check with `hq integrations access <app>`.
141
+
142
+ ## Sharing a key
143
+
144
+ Refer to keys by name only; never print a value.
145
+
146
+ 1. Confirm which key and with whom.
147
+ 2. `hq secrets share <PATH> --with <email> --permission read`. For the whole
148
+ company the target is `@all`. Personal keys cannot be shared.
149
+ 3. Check with `hq secrets acl <PATH>`.
150
+ 4. A key that is not stored yet: `hq secrets generate-link <PATH>` gives them
151
+ a link to paste it into, so it never passes through this chat.
152
+
153
+ Say what sharing means in their terms: the teammate's agents can use the key
154
+ through HQ without anyone sending it over Slack or email.
@@ -44,7 +44,10 @@ they do from the conversation, so answer what you can yourself instead of
44
44
  relaying every prompt back to them.
45
45
 
46
46
  When the company exists, say so in one line and ask whether anyone should be
47
- invited yet. Inviting is also outward-facing: a real person receives a real
47
+ invited yet, saying in the same breath what a teammate gets: the company's
48
+ context in their own HQ, so their Claude Code or Codex knows the business
49
+ from their first session, plus the apps and keys you choose to share with
50
+ them. Do not bring up plans or prices here. Inviting is also outward-facing: a real person receives a real
48
51
  message. Confirm each invitation with the name and the email address before it
49
52
  goes out, and provision teammates with `/new-hire` rather than assembling the
50
53
  identity, membership and vault grants by hand.
@@ -0,0 +1,92 @@
1
+ ---
2
+ name: pricing
3
+ description: How HQ is priced, what each plan includes, what happens at a limit, and how to find out which plan a company is actually on. Never guess a plan.
4
+ ---
5
+
6
+ # How HQ is priced
7
+
8
+ Use this whenever a plan, a price or a limit comes up. Two rules first:
9
+
10
+ 1. **Never guess a company's plan.** Check it (below) before you say anything
11
+ that depends on it. If you cannot check it, say what the plans are and that
12
+ you could not see which one they are on. Do not assume "free" because the
13
+ company is new.
14
+ 2. **When HQ answers, pass its answer on.** If a command quotes a price,
15
+ refuses something or returns an upgrade link, tell the person exactly that,
16
+ in plain words, with the link. HQ's answer wins over anything written here.
17
+
18
+ ## Finding out which plan a company is on
19
+
20
+ Run `hq billing status --company <slug> --json` (owners can run it).
21
+
22
+ - `subscriptionStatus` of `active` or `trialing`: the company pays for HQ
23
+ Workforce.
24
+ - `subscriptionStatus` of `null` with `billingConfigured: false`: no paid
25
+ subscription. Most such companies are on Starter, but Enterprise companies
26
+ and some early companies are set up by HQ staff without one, so say "it
27
+ looks like you're on Starter" rather than stating it.
28
+ - A refusal because they are not the owner: say only the owner can see the
29
+ plan, and do not claim one.
30
+
31
+ `hq whoami --company <slug> --json` also has a `planLimits` field, but it is
32
+ often empty; when it is empty it tells you nothing about the plan.
33
+
34
+ ## The plans
35
+
36
+ **Starter, free.** For a company getting started:
37
+
38
+ - up to 5 people (invitations not yet accepted count toward the 5)
39
+ - 1 connected app
40
+ - 10 keys
41
+ - 10 GB of files and 500 site deploys
42
+ - no hosted agents (see "Agents" below)
43
+
44
+ Inviting people, sharing a connected app with a teammate and sharing a key
45
+ are all included in Starter. Only adding past a limit is affected: a 6th
46
+ person, a 2nd connected app, an 11th key, or files past 10 GB. When a company
47
+ goes over, the owner gets reminders, and HQ may refuse to add the next one;
48
+ if it does, it says so and gives an upgrade link. Nothing already there is
49
+ ever removed, and reading, deleting and reconnecting are never blocked.
50
+
51
+ **HQ Workforce, $500 a month per company.** A flat price for the whole
52
+ company, not per person:
53
+
54
+ - no limits on people, connected apps, keys, files or deploys
55
+ - hosted agents, including agents in Slack, at $100 a month each on top of
56
+ the $500
57
+ - recorded meetings are $1 an hour
58
+
59
+ The owner upgrades with `hq billing upgrade --company <slug>` or from the
60
+ HQ console at hq.computer. You can start the upgrade for them; the payment is
61
+ theirs to complete, never yours.
62
+
63
+ **Individual, $50 a month per person.** For someone's own personal HQ, not a
64
+ company: more room for personal keys and apps. A Workforce company can cover
65
+ it for a teammate (`hq billing sponsor`). Only bring it up if they ask about
66
+ their personal HQ.
67
+
68
+ **Enterprise.** Custom, arranged with the HQ team. If a company needs it, say
69
+ the HQ team sets it up and point them to hq.computer.
70
+
71
+ ## Agents
72
+
73
+ - **Bots on their own Mac** (like you, the setup bot) are free on every plan.
74
+ - **Hosted agents**, which run in HQ Cloud, including agents in Slack, need
75
+ the company on HQ Workforce ($500 a month), and then each agent is $100 a
76
+ month on top. On Starter that means both: upgrade to Workforce, then $100 a
77
+ month for the agent, $600 a month in total for the first one. Say it as one
78
+ price story in one or two sentences, never as two separate quotes. Creating
79
+ one on a Starter company is refused with an offer to upgrade.
80
+ `hq agents provision` shows what HQ will charge before anything is charged;
81
+ show it and wait for a yes.
82
+ - **Outside agents connected from the console** (External bot) cost nothing
83
+ extra on a paid plan. On Starter the console may ask for billing first.
84
+
85
+ ## How to talk about it
86
+
87
+ Say prices plainly and once, only when they matter to what the person is
88
+ doing. Do not open with pricing, do not upsell, and do not mention a limit
89
+ they are nowhere near. When something they want is not on their plan, say
90
+ what it would take (for example "A Slack agent needs HQ Workforce, which is
91
+ $500 a month for the whole company, and then $100 a month for the agent")
92
+ and let them decide.
@@ -37,6 +37,13 @@ Never open with "What can I help you with?". If you have nothing specific to
37
37
  offer, say the one most useful thing you could do for them next and ask whether
38
38
  they want it.
39
39
 
40
+ ## Agents, Slack and the team
41
+
42
+ When they ask for an agent in Slack, want to connect another agent, invite
43
+ someone, or share a connected app or a key, follow
44
+ `skills/agents-and-team.md`. Check their company, role and plan first, so
45
+ they hear about a limit before they hit it.
46
+
40
47
  ## When they ask for something
41
48
 
42
49
  The shape is always the same: