@indigoai-us/hq-cli 5.118.1 → 5.118.2

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,25 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [5.118.2] — 2026-09-17
6
+
7
+ ### Changed
8
+
9
+ - The locked-workspace notice now says what you can still do. A locked
10
+ workspace is read-only for new things, but deleting still works — which
11
+ matters, because every fix the notice lists (remove members, disconnect
12
+ integrations, delete secrets, deprovision agents) is a delete. The notice
13
+ states that outright instead of leaving "read-only" to be guessed at.
14
+
15
+ - The plan-limit box names the plan: "HQ Starter plan limit exceeded" rather
16
+ than "HQ plan limit exceeded".
17
+
18
+ ### Added
19
+
20
+ - `hq agents provision --model` now sets the brain model during creation. A
21
+ model such as `gpt-5.5` or `grok-4.6` selects the agents-v2 runtime unless
22
+ `--provider` is specified, avoiding a later box recreation to change brains.
23
+
5
24
  ## [5.118.1] — 2026-09-17
6
25
 
7
26
  ### Fixed
@@ -3812,7 +3812,10 @@ export declare const COMMAND_CATALOG: readonly [{
3812
3812
  readonly description: "Agent slug (defaults to a slug of <name>)";
3813
3813
  }, {
3814
3814
  readonly flags: "--provider <provider>";
3815
- readonly description: "Runtime: codex | grok | claude | agents-v2 (default codex). claude is subscription-only; agents-v2 boots its brain box (codex, or grok via a grok-* model) and receives the v2 runtime post-boot";
3815
+ readonly description: "Runtime: agents-v2 (recommended) | codex | grok | claude (legacy). A --model selects agents-v2 by default";
3816
+ }, {
3817
+ readonly flags: "--model <model>";
3818
+ readonly description: "Brain model, for example gpt-5.5 or grok-4.6";
3816
3819
  }, {
3817
3820
  readonly flags: "--auth-mode <mode>";
3818
3821
  readonly description: "Auth: subscription | apiKey (default subscription)";
@@ -4926,7 +4926,11 @@ export const COMMAND_CATALOG = [
4926
4926
  },
4927
4927
  {
4928
4928
  "flags": "--provider <provider>",
4929
- "description": "Runtime: codex | grok | claude | agents-v2 (default codex). claude is subscription-only; agents-v2 boots its brain box (codex, or grok via a grok-* model) and receives the v2 runtime post-boot"
4929
+ "description": "Runtime: agents-v2 (recommended) | codex | grok | claude (legacy). A --model selects agents-v2 by default"
4930
+ },
4931
+ {
4932
+ "flags": "--model <model>",
4933
+ "description": "Brain model, for example gpt-5.5 or grok-4.6"
4930
4934
  },
4931
4935
  {
4932
4936
  "flags": "--auth-mode <mode>",
@@ -171,6 +171,7 @@ export interface ProvisionAgentInput {
171
171
  slug: string;
172
172
  codexAuthMode: "subscription" | "apiKey";
173
173
  provider?: "codex" | "grok" | "claude" | "agents-v2";
174
+ codexModel?: string;
174
175
  codexApiKey?: string;
175
176
  idempotencyKey: string;
176
177
  title?: string;
@@ -1074,7 +1074,8 @@ export function registerAgentsCommand(program) {
1074
1074
  .description("Provision a new cloud agent (company-specific monthly price shown before creation)")
1075
1075
  .option("--company <slug>", "Company slug (resolves to companyUid)")
1076
1076
  .option("--slug <slug>", "Agent slug (defaults to a slug of <name>)")
1077
- .option("--provider <provider>", "Runtime: codex | grok | claude | agents-v2 (default codex). claude is subscription-only; agents-v2 boots its brain box (codex, or grok via a grok-* model) and receives the v2 runtime post-boot")
1077
+ .option("--provider <provider>", "Runtime: agents-v2 (recommended) | codex | grok | claude (legacy). A --model selects agents-v2 by default")
1078
+ .option("--model <model>", "Brain model, for example gpt-5.5 or grok-4.6")
1078
1079
  .option("--auth-mode <mode>", "Auth: subscription | apiKey (default subscription)", "subscription")
1079
1080
  .option("--api-key-env <VAR>", "Env var holding the API key for --auth-mode apiKey (never pass the key as a flag)")
1080
1081
  .option("--title <title>", "Org-chart job title")
@@ -1088,7 +1089,13 @@ export function registerAgentsCommand(program) {
1088
1089
  // unrecognised value, silently provisioning a billable box the operator
1089
1090
  // did not ask for. They now exit(1) instead — see parseEnumOption.
1090
1091
  const authMode = parseEnumOption(opts.authMode, VALID_AUTH_MODES, "--auth-mode") ?? "subscription";
1091
- const provider = parseEnumOption(opts.provider, VALID_PROVIDERS, "--provider");
1092
+ const explicitProvider = parseEnumOption(opts.provider, VALID_PROVIDERS, "--provider");
1093
+ if (opts.model !== undefined &&
1094
+ !/^[A-Za-z0-9._-]{1,64}$/.test(opts.model)) {
1095
+ console.error(chalk.red("--model must be a model identifier (letters, digits, dot, dash, underscore; max 64 chars)."));
1096
+ process.exit(1);
1097
+ }
1098
+ const provider = explicitProvider ?? (opts.model ? "agents-v2" : undefined);
1092
1099
  // claude is subscription-only on hq-pro (rejectIncompatibleProviderAuthMode
1093
1100
  // returns AGENT_PROVIDER_INCOMPATIBLE_WITH_AUTH_MODE). Catch it here so the
1094
1101
  // operator gets a direct message instead of a 400 from the control plane
@@ -1139,6 +1146,7 @@ export function registerAgentsCommand(program) {
1139
1146
  slug,
1140
1147
  codexAuthMode: authMode,
1141
1148
  ...(provider ? { provider } : {}),
1149
+ ...(opts.model ? { codexModel: opts.model } : {}),
1142
1150
  ...(codexApiKey ? { codexApiKey } : {}),
1143
1151
  idempotencyKey,
1144
1152
  ...(opts.title ? { title: opts.title } : {}),
@@ -281,7 +281,9 @@ export function renderPlanLockNotice(status) {
281
281
  if (lock.reasons.includes("agents")) {
282
282
  lines.push(` Agents allowed on Starter: ${agentTarget(lock)}.`);
283
283
  }
284
- lines.push(" This workspace is read-only until it is fixed. Two ways out:");
284
+ lines.push(" Nothing has been deleted. This workspace is read-only until it is fixed:");
285
+ lines.push(" you can still delete things, but you cannot create, invite or upload.");
286
+ lines.push(" Two ways to fix it:");
285
287
  const remedy = lock.reasons.length
286
288
  ? lock.reasons.map((reason) => reasonRemedy(reason, lock)).join(", and ")
287
289
  : "come back under the Starter plan limits";
@@ -190,7 +190,7 @@ function withinDayWindow(shownAt, nowMs) {
190
190
  return nowMs - shownAt < DAY_MS;
191
191
  }
192
192
  function buildOverBox(overEntries, upgradeUrl) {
193
- const title = "⚠ HQ plan limit exceeded";
193
+ const title = "⚠ HQ Starter plan limit exceeded";
194
194
  const upgrade = `Upgrade: ${upgradeUrl}`;
195
195
  const resourceLines = overEntries.map(([key, entry]) => ` ${key}: ${entry.used}/${entry.limit}${dimensionSuffix(key)}`);
196
196
  const contentLines = [title, "", ...resourceLines, "", upgrade];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@indigoai-us/hq-cli",
3
- "version": "5.118.1",
3
+ "version": "5.118.2",
4
4
  "description": "HQ by Indigo management CLI \u2014 modules and cloud sync",
5
5
  "main": "dist/index.js",
6
6
  "bin": {