@higherdev/cli 0.30.0 → 0.31.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/README.md CHANGED
@@ -38,7 +38,7 @@ workspace-map config shapes are migrated automatically when they are read.
38
38
  | `hd workspace ls` | List every workspace available to the configured key |
39
39
  | `hd workspace use SLUG` | Switch the current workspace |
40
40
  | `hd workspace new --name NAME --repo OWNER/NAME [options]` | Preflight GitHub, wire the runner, and create a paused workspace |
41
- | `hd workspace set [options]` | Update settings; max turns uses `--max-turns KIND=N[,KIND=N...]` |
41
+ | `hd workspace set [options]` | Update settings; chat timeout uses `--chat-timeout-minutes N` |
42
42
  | `hd workspace rotate-key` | Rotate the shared API key and save it locally |
43
43
  | `hd workspace grant-runner-access [--runner-user USER]` | Grant and confirm write-or-better access for the workspace runner |
44
44
  | `hd agents` | List agents |
@@ -12,7 +12,8 @@ export function settingsRows(workspace, agents) {
12
12
  value: String(workspace.max_turns[kind]), hint: "integer >= 1",
13
13
  })),
14
14
  { key: "w:max_attempts", kind: "number", label: "max attempts", value: String(workspace.max_attempts) },
15
- { key: "w:chat_timeout_ms", kind: "number", label: "chat timeout ms", value: String(workspace.chat_timeout_ms ?? 600_000) },
15
+ { key: "w:chat_timeout_ms", kind: "number", label: "chat timeout",
16
+ value: String(Math.round((workspace.chat_timeout_ms ?? 600_000) / 60_000)), hint: "minutes, integer >= 1" },
16
17
  ];
17
18
  for (const provider of providers) {
18
19
  rows.push({
@@ -84,9 +85,9 @@ export function editFor(row, raw) {
84
85
  }
85
86
  if (id === "chat_timeout_ms") {
86
87
  const number = Number(value);
87
- if (!Number.isInteger(number) || number < 1_000)
88
- return { ok: false, error: "chat_timeout_ms must be an integer >= 1000." };
89
- return { ok: true, value: { target: "workspace", fields: { chat_timeout_ms: number } } };
88
+ if (!Number.isInteger(number) || number < 1)
89
+ return { ok: false, error: "chat timeout must be an integer >= 1 minute." };
90
+ return { ok: true, value: { target: "workspace", fields: { chat_timeout_ms: number * 60_000 } } };
90
91
  }
91
92
  if (id === "auto_merge")
92
93
  return { ok: true, value: { target: "workspace", fields: { auto_merge: value === "yes" } } };
@@ -150,11 +150,11 @@ export async function workspaceSet(argv) {
150
150
  throw new Error("--max-attempts must be an integer >= 1");
151
151
  fields.max_attempts = value;
152
152
  }
153
- if (opts["chat-timeout-ms"]) {
154
- const value = Number(opts["chat-timeout-ms"]);
155
- if (!Number.isInteger(value) || value < 1_000)
156
- throw new Error("--chat-timeout-ms must be an integer >= 1000");
157
- fields.chat_timeout_ms = value;
153
+ if (opts["chat-timeout-minutes"]) {
154
+ const value = Number(opts["chat-timeout-minutes"]);
155
+ if (!Number.isInteger(value) || value < 1)
156
+ throw new Error("--chat-timeout-minutes must be an integer >= 1");
157
+ fields.chat_timeout_ms = value * 60_000;
158
158
  }
159
159
  if (!Object.keys(fields).length)
160
160
  throw new Error(WORKSPACE_USAGE);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@higherdev/cli",
3
- "version": "0.30.0",
3
+ "version": "0.31.0",
4
4
  "type": "module",
5
5
  "repository": {
6
6
  "type": "git",