@kimchi-dev/kimchictl 0.0.2 → 0.0.4

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
@@ -77,6 +77,8 @@ kimchictl version Print the version
77
77
 
78
78
  Suspend/resume exposed by the API today: **none**. `workspace suspend` / `workspace resume` land when the endpoints exist.
79
79
 
80
+ `workspace create` prints progress, the connect commands, and finally the alias as the last stdout line — capture it with `kimchictl workspace create | tail -1`.
81
+
80
82
  ## Sharing auth with the kimchi agent
81
83
 
82
84
  `kimchictl login` writes the same credential files the kimchi coding agent uses — `~/.config/kimchi/harness/auth.json` (provider `kimchi-dev`) and the `apiKey` field of `~/.config/kimchi/config.json` — so either tool can sign you in and the other is logged in. `KIMCHI_API_KEY` overrides the file-based credentials.
@@ -1,5 +1,5 @@
1
1
  import type { ApiOptions } from "./types.js";
2
- export type WorkspaceStatus = "active" | "initializing" | "suspended" | "deleting" | "idle";
2
+ export type WorkspaceStatus = "active" | "initializing" | "suspended" | "deleting" | "terminated";
3
3
  export interface Workspace {
4
4
  /** Server id — also the command-line identifier (`workspace get <id>`, `ssh <id>`). */
5
5
  id: string;
@@ -10,6 +10,10 @@ export interface Workspace {
10
10
  uri?: string;
11
11
  host?: string;
12
12
  createdAt: Date;
13
+ /** Control-plane cluster (e.g. krep-us). */
14
+ cluster: string;
15
+ /** Client that owns the workspace (e.g. harness). */
16
+ clientType: string;
13
17
  cpuMillicores?: number;
14
18
  ramBytes?: number;
15
19
  pvcSizeBytes?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"workspaces.d.ts","sourceRoot":"../src/","sources":["api/workspaces.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAe5C,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,cAAc,GAAG,WAAW,GAAG,UAAU,GAAG,MAAM,CAAA;AAE3F,MAAM,WAAW,SAAS;IACzB,uFAAuF;IACvF,EAAE,EAAE,MAAM,CAAA;IACV,6EAA6E;IAC7E,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,eAAe,CAAA;IACvB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,IAAI,CAAA;IACf,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,uBAAwB,SAAQ,UAAU;IAC1D,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAMD,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAsD5G;AAED,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,SAAS,CAAC,CAiBpH;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACpC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,uBAAuB,GAAG;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GACzD,OAAO,CAAC,SAAS,CAAC,CAwBpB;AAED,wBAAsB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAclH;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,CAiDtE"}
1
+ {"version":3,"file":"workspaces.d.ts","sourceRoot":"../src/","sources":["api/workspaces.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAe5C,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,cAAc,GAAG,WAAW,GAAG,UAAU,GAAG,YAAY,CAAA;AAEjG,MAAM,WAAW,SAAS;IACzB,uFAAuF;IACvF,EAAE,EAAE,MAAM,CAAA;IACV,6EAA6E;IAC7E,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,eAAe,CAAA;IACvB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,IAAI,CAAA;IACf,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAA;IACf,qDAAqD;IACrD,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,uBAAwB,SAAQ,UAAU;IAC1D,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAMD,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAsD5G;AAED,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,SAAS,CAAC,CAiBpH;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACpC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,uBAAuB,GAAG;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GACzD,OAAO,CAAC,SAAS,CAAC,CAwBpB;AAED,wBAAsB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAclH;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,CAmDtE"}
@@ -137,6 +137,8 @@ export function mapWorkspace(raw, endpoint) {
137
137
  uri,
138
138
  host,
139
139
  createdAt: createdAt ?? new Date(0),
140
+ cluster: typeof r.cluster === "string" ? r.cluster : "",
141
+ clientType: typeof r.clientType === "string" ? r.clientType : "",
140
142
  cpuMillicores: cpuQuantityToMillicores(res?.cpu),
141
143
  ramBytes: byteQuantityToBytes(res?.memory),
142
144
  pvcSizeBytes: byteQuantityToBytes(res?.pvcSize),
@@ -152,8 +154,12 @@ function mapWorkspaceStatus(raw) {
152
154
  return "suspended";
153
155
  case "DELETING":
154
156
  return "deleting";
157
+ case "TERMINATED":
158
+ return "terminated";
155
159
  default:
156
- return "idle";
160
+ // Unknown statuses read as terminated, not "idle": dead workspaces
161
+ // are the dominant unknown the API reports.
162
+ return "terminated";
157
163
  }
158
164
  }
159
165
  //# sourceMappingURL=workspaces.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workspaces.js","sourceRoot":"../src/","sources":["api/workspaces.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspaces.js","sourceRoot":"../src/","sources":["api/workspaces.ts"],"names":[],"mappings":"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"}
@@ -12,4 +12,6 @@ export interface SshDeps {
12
12
  * and is deliberately absent from help (internal plumbing, not user-facing).
13
13
  */
14
14
  export declare function runSsh(args: string[], deps?: SshDeps): Promise<number>;
15
+ /** Canonical harness-package entry (see commands/workspace.ts). */
16
+ export declare const run: (args: string[], deps?: SshDeps) => Promise<number>;
15
17
  //# sourceMappingURL=ssh.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ssh.d.ts","sourceRoot":"../src/","sources":["commands/ssh.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,OAAO;IACvB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;IACvB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,yBAAyB;IACzB,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,MAAM,CAAA;IACjC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACrC;AAMD;;;;GAIG;AACH,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,GAAE,OAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAkBhF"}
1
+ {"version":3,"file":"ssh.d.ts","sourceRoot":"../src/","sources":["commands/ssh.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,OAAO;IACvB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;IACvB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,yBAAyB;IACzB,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,MAAM,CAAA;IACjC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACrC;AAMD;;;;GAIG;AACH,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,GAAE,OAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAkBhF;AA+DD,mEAAmE;AACnE,eAAO,MAAM,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,MAAM,CAAwB,CAAA"}
@@ -5,6 +5,7 @@ import { isSshIntegrationConfigured, resolveSshDomain, resolveSshPaths, setupSsh
5
5
  import { connectToWorkspace } from "../ssh/connect.js";
6
6
  import { resolveTunnel } from "../ssh/tunnel.js";
7
7
  import { parseFlags, UsageError } from "./flags.js";
8
+ import { guardCommand } from "./guard.js";
8
9
  const GROUP_USAGE = `Usage:
9
10
  kimchictl ssh <name> [command...] Connect to a workspace (auto-configures SSH on first use)
10
11
  kimchictl ssh setup [--uninstall] Manage the native SSH integration`;
@@ -87,4 +88,6 @@ async function runProxy(args, deps) {
87
88
  await bridgeStdioToWebSocket({ wsUrl: creds.wsUrl, token: creds.token });
88
89
  return 0;
89
90
  }
91
+ /** Canonical harness-package entry (see commands/workspace.ts). */
92
+ export const run = guardCommand(runSsh);
90
93
  //# sourceMappingURL=ssh.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ssh.js","sourceRoot":"../src/","sources":["commands/ssh.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ssh.js","sourceRoot":"../src/","sources":["commands/ssh.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,16 @@ export interface WorkspaceDeps {
9
9
  now?: () => Date;
10
10
  /** Sleep override for the create wait loop (tests). */
11
11
  sleep?: (ms: number) => Promise<void>;
12
+ /** ANSI colors on stdout (tests); defaults to stdout being a TTY. */
13
+ color?: boolean;
12
14
  }
13
15
  /** `kimchictl workspace <verb> …` — group command; also mounted as hidden alias `ws`. */
14
16
  export declare function runWorkspace(args: string[], deps?: WorkspaceDeps): Promise<number>;
17
+ /**
18
+ * Canonical harness-package entry: modules listed in the kimchi.commands
19
+ * manifest must export run(args) (kimchi-dev:src/commands/package-commands.ts).
20
+ * guardCommand maps usage/domain errors to exit codes 2/1, matching the
21
+ * CLI registry.
22
+ */
23
+ export declare const run: (args: string[], deps?: WorkspaceDeps) => Promise<number>;
15
24
  //# sourceMappingURL=workspace.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.d.ts","sourceRoot":"../src/","sources":["commands/workspace.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,aAAa;IAC7B,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;IACvB,oDAAoD;IACpD,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,qCAAqC;IACrC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IAChD,4DAA4D;IAC5D,GAAG,CAAC,EAAE,MAAM,IAAI,CAAA;IAChB,uDAAuD;IACvD,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACrC;AAcD,yFAAyF;AACzF,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,GAAE,aAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAwB5F"}
1
+ {"version":3,"file":"workspace.d.ts","sourceRoot":"../src/","sources":["commands/workspace.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,aAAa;IAC7B,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;IACvB,oDAAoD;IACpD,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,qCAAqC;IACrC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IAChD,4DAA4D;IAC5D,GAAG,CAAC,EAAE,MAAM,IAAI,CAAA;IAChB,uDAAuD;IACvD,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACrC,qEAAqE;IACrE,KAAK,CAAC,EAAE,OAAO,CAAA;CACf;AAcD,yFAAyF;AACzF,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,GAAE,aAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAwB5F;AA2PD;;;;;GAKG;AACH,eAAO,MAAM,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,aAAa,KAAK,OAAO,CAAC,MAAM,CAA8B,CAAA"}
@@ -4,7 +4,9 @@ import { resolveTemplate } from "../api/templates.js";
4
4
  import { waitForWorkspaceActive } from "../api/wait.js";
5
5
  import { createWorkspace, deleteWorkspace, listWorkspaces } from "../api/workspaces.js";
6
6
  import { requireApiKey } from "../auth/resolve.js";
7
+ import { resolveSshDomain } from "../ssh/config.js";
7
8
  import { parseFlags, UsageError } from "./flags.js";
9
+ import { guardCommand } from "./guard.js";
8
10
  import { confirm, isInteractive } from "./prompt.js";
9
11
  import { formatTable } from "./table.js";
10
12
  const GROUP_USAGE = `Usage:
@@ -68,7 +70,10 @@ async function runCreate(args, deps) {
68
70
  const { key } = requireApiKey(deps.env);
69
71
  const sleep = deps.sleep ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms)));
70
72
  const created = await createWorkspace(key, { description: desc, fetch: deps.fetch });
71
- console.error(`✓ created ${created.alias} (${created.status})`);
73
+ // Success-path info goes to stdout (terminals that color stderr red made
74
+ // this look like an error); only warnings and the transient progress
75
+ // spinner stay on stderr.
76
+ console.log(`✓ created ${created.alias} (${created.status})`);
72
77
  let current = created;
73
78
  if (!values["no-wait"]) {
74
79
  // kap's create poll: 2s cadence, deadline, progress on stderr.
@@ -83,9 +88,13 @@ async function runCreate(args, deps) {
83
88
  console.error(` ⚠ workspace still initializing — check with: kimchictl workspace get ${created.alias}`);
84
89
  }
85
90
  }
86
- if (current.uri)
87
- console.error(` uri ${current.uri}`);
88
- // The alias goes to stdout last so scripts can capture it: ALIAS=$(kimchictl workspace create)
91
+ if (current.uri) {
92
+ console.log();
93
+ for (const line of connectLines(current, deps.env))
94
+ console.log(line);
95
+ console.log();
96
+ }
97
+ // The alias is the last stdout line: ALIAS=$(kimchictl workspace create | tail -1)
89
98
  console.log(current.alias);
90
99
  return 0;
91
100
  }
@@ -118,11 +127,14 @@ async function runList(args, deps) {
118
127
  const rows = workspaces.map((w) => [
119
128
  w.alias,
120
129
  w.status,
130
+ w.cluster,
131
+ formatAge(w.createdAt, now),
121
132
  formatMillicores(w.cpuMillicores),
122
133
  formatBytes(w.ramBytes),
123
- formatAge(w.createdAt, now),
134
+ formatBytes(w.pvcSizeBytes),
135
+ w.uri ?? "",
124
136
  ]);
125
- console.log(formatTable(["NAME", "STATUS", "CPU", "MEMORY", "AGE"], rows));
137
+ console.log(formatTable(["NAME", "STATUS", "CLUSTER", "AGE", "CPU", "RAM", "PVC", "URI"], rows));
126
138
  return 0;
127
139
  }
128
140
  // ---------------------------------------------------------------- get
@@ -143,17 +155,9 @@ async function runGet(args, deps) {
143
155
  console.log(JSON.stringify(serializeWorkspace(workspace), null, 2));
144
156
  return 0;
145
157
  }
146
- const lines = [
147
- `name: ${workspace.alias}`,
148
- workspace.description ? `description: ${workspace.description}` : undefined,
149
- `status: ${workspace.status}`,
150
- workspace.uri ? `uri: ${workspace.uri}` : undefined,
151
- `created: ${workspace.createdAt.toISOString()}`,
152
- `cpu: ${formatMillicores(workspace.cpuMillicores)}`,
153
- `memory: ${formatBytes(workspace.ramBytes)}`,
154
- `storage: ${formatBytes(workspace.pvcSizeBytes)}`,
155
- ].filter((line) => line !== undefined);
156
- for (const line of lines)
158
+ const now = deps.now?.() ?? new Date();
159
+ const color = deps.color ?? process.stdout.isTTY === true;
160
+ for (const line of renderWorkspaceCard(workspace, deps.env, color, now))
157
161
  console.log(line);
158
162
  return 0;
159
163
  }
@@ -188,12 +192,55 @@ async function runDelete(args, deps) {
188
192
  return 0;
189
193
  }
190
194
  // ---------------------------------------------------------------- shared
195
+ /** Tinted status dot: green=active, yellow=transitional/suspended, dim=terminated. */
196
+ function statusDot(status, color) {
197
+ if (!color)
198
+ return `● ${status}`;
199
+ const tint = status === "active" ? "\x1b[32m" : status === "terminated" ? "\x1b[2m" : "\x1b[33m";
200
+ return `${tint}● ${status}\x1b[0m`;
201
+ }
202
+ function dim(text, color) {
203
+ return color ? `\x1b[2m${text}\x1b[0m` : text;
204
+ }
205
+ /** Connect hints shared by `get` and `create`: ssh command + web IDE URL. */
206
+ function connectLines(workspace, env) {
207
+ if (!workspace.uri)
208
+ return [];
209
+ const domain = resolveSshDomain(undefined, env ?? process.env);
210
+ return [" Connect:", ` $ ssh ${workspace.alias}.${domain}`, ` $ https://${workspace.uri}/public/ide/`];
211
+ }
212
+ /** Hero-line card ("Option C"): name+status first, dim metadata, resources, connect block. */
213
+ function renderWorkspaceCard(workspace, env, color, now) {
214
+ const lines = [`${workspace.alias} ${statusDot(workspace.status, color)}`];
215
+ if (workspace.description)
216
+ lines.push(dim(` ${workspace.description}`, color));
217
+ const meta = [
218
+ workspace.cluster ? `cluster ${workspace.cluster}` : "",
219
+ workspace.clientType,
220
+ `created ${formatAge(workspace.createdAt, now)} ago`,
221
+ ].filter(Boolean);
222
+ if (meta.length > 0)
223
+ lines.push(dim(` ${meta.join(" · ")}`, color));
224
+ if (workspace.cpuMillicores !== undefined ||
225
+ workspace.ramBytes !== undefined ||
226
+ workspace.pvcSizeBytes !== undefined) {
227
+ lines.push(dim(` ${formatMillicores(workspace.cpuMillicores)} CPU · ${formatBytes(workspace.ramBytes)} memory · ${formatBytes(workspace.pvcSizeBytes)} storage`, color));
228
+ }
229
+ const connect = connectLines(workspace, env);
230
+ if (connect.length > 0) {
231
+ lines.push("");
232
+ lines.push(...connect);
233
+ }
234
+ return lines;
235
+ }
191
236
  function serializeWorkspace(w) {
192
237
  return {
193
238
  id: w.id,
194
239
  alias: w.alias,
195
240
  ...(w.description ? { description: w.description } : {}),
196
241
  status: w.status,
242
+ ...(w.cluster ? { cluster: w.cluster } : {}),
243
+ ...(w.clientType ? { clientType: w.clientType } : {}),
197
244
  ...(w.uri ? { uri: w.uri } : {}),
198
245
  createdAt: w.createdAt.getTime() > 0 ? w.createdAt.toISOString() : undefined,
199
246
  resources: {
@@ -203,4 +250,11 @@ function serializeWorkspace(w) {
203
250
  },
204
251
  };
205
252
  }
253
+ /**
254
+ * Canonical harness-package entry: modules listed in the kimchi.commands
255
+ * manifest must export run(args) (kimchi-dev:src/commands/package-commands.ts).
256
+ * guardCommand maps usage/domain errors to exit codes 2/1, matching the
257
+ * CLI registry.
258
+ */
259
+ export const run = guardCommand(runWorkspace);
206
260
  //# sourceMappingURL=workspace.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.js","sourceRoot":"../src/","sources":["commands/workspace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace.js","sourceRoot":"../src/","sources":["commands/workspace.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"../src/","sources":["ssh/config.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;GAWG;AAEH,eAAO,MAAM,iBAAiB,wCAAwC,CAAA;AACtE,eAAO,MAAM,eAAe,wCAAwC,CAAA;AAEpE,MAAM,WAAW,QAAQ;IACxB,8EAA8E;IAC9E,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;CACrB;AAED,wBAAgB,eAAe,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,QAAQ,CAU9E;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAchG;AAOD;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,GAAE,MAAyB,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAU3G;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAQpG;AAED,MAAM,WAAW,WAAW;IAC3B,KAAK,EAAE,MAAM,EAAE,CAAA;CACf;AAqBD;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE;IAClD,KAAK,EAAE,QAAQ,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,iFAAiF;IACjF,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CACxC,GAAG,OAAO,CAAC,WAAW,CAAC,CAwCvB;AAED,4EAA4E;AAC5E,wBAAsB,uBAAuB,CAAC,OAAO,EAAE;IAAE,KAAK,EAAE,QAAQ,CAAA;CAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CA2BhG;AAED;;;GAGG;AACH,wBAAsB,0BAA0B,CAC/C,KAAK,EAAE,QAAQ,EACf,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC,CAelB;AAED,kEAAkE;AAClE,wBAAgB,kBAAkB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAGhF"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"../src/","sources":["ssh/config.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;GAWG;AAEH,eAAO,MAAM,iBAAiB,wCAAwC,CAAA;AACtE,eAAO,MAAM,eAAe,wCAAwC,CAAA;AAEpE,MAAM,WAAW,QAAQ;IACxB,8EAA8E;IAC9E,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;CACrB;AAED,wBAAgB,eAAe,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,QAAQ,CAU9E;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAchG;AAOD;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,GAAE,MAAyB,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAgB3G;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAQpG;AAED,MAAM,WAAW,WAAW;IAC3B,KAAK,EAAE,MAAM,EAAE,CAAA;CACf;AAqBD;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE;IAClD,KAAK,EAAE,QAAQ,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,iFAAiF;IACjF,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CACxC,GAAG,OAAO,CAAC,WAAW,CAAC,CAwCvB;AAED,4EAA4E;AAC5E,wBAAsB,uBAAuB,CAAC,OAAO,EAAE;IAAE,KAAK,EAAE,QAAQ,CAAA;CAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CA2BhG;AAED;;;GAGG;AACH,wBAAsB,0BAA0B,CAC/C,KAAK,EAAE,QAAQ,EACf,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC,CAelB;AAED,kEAAkE;AAClE,wBAAgB,kBAAkB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAGhF"}
@@ -67,6 +67,12 @@ export function resolveProxyCommandTarget(execPath = process.execPath, entryScri
67
67
  if (base === "kimchictl" || base.startsWith("kimchictl-")) {
68
68
  return shellQuote(execPath);
69
69
  }
70
+ // Running inside the kimchi harness (installed via `kimchi install npm:…`):
71
+ // the ProxyCommand routes through the harness binary, which dispatches
72
+ // `ssh proxy` to this package's exported runner.
73
+ if (base === "kimchi" || base.startsWith("kimchi-")) {
74
+ return shellQuote(execPath);
75
+ }
70
76
  const entry = entryScript ?? process.argv[1];
71
77
  if (entry) {
72
78
  return `${shellQuote(execPath)} ${shellQuote(resolve(entry))}`;
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"../src/","sources":["ssh/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"../src/","sources":["ssh/config.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -3,5 +3,5 @@
3
3
  * version over this constant at build time; the committed value stays a
4
4
  * sentinel so source checkouts are recognizable.
5
5
  */
6
- export declare const VERSION = "0.0.2";
6
+ export declare const VERSION = "0.0.4";
7
7
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -3,5 +3,5 @@
3
3
  * version over this constant at build time; the committed value stays a
4
4
  * sentinel so source checkouts are recognizable.
5
5
  */
6
- export const VERSION = "0.0.2";
6
+ export const VERSION = "0.0.4";
7
7
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "//name": "Scoped under the kimchi-dev npm org (the GitHub org is getkimchi)",
3
3
  "name": "@kimchi-dev/kimchictl",
4
4
  "//version": "Placeholder, never bumped: the git tag is the version, stamped by release.yml at publish time",
5
- "version": "0.0.2",
5
+ "version": "0.0.4",
6
6
  "description": "Create and connect to kimchi remote workspaces from the terminal.",
7
7
  "keywords": [
8
8
  "kimchi",
@@ -37,6 +37,13 @@
37
37
  "publishConfig": {
38
38
  "access": "public"
39
39
  },
40
+ "//kimchi": "Subcommands the harness gains when this package is installed via `kimchi install` — kimchi-dev:src/commands/package-commands.ts reads this map and lazily imports each module (which must export run(args) => Promise<number>, pointing at runnable JS, i.e. dist/).",
41
+ "kimchi": {
42
+ "commands": {
43
+ "workspace": "./dist/commands/workspace.js",
44
+ "ssh": "./dist/commands/ssh.js"
45
+ }
46
+ },
40
47
  "exports": {
41
48
  ".": {
42
49
  "types": "./dist/run.d.ts",
@@ -49,6 +56,10 @@
49
56
  "./commands/guard": {
50
57
  "types": "./dist/commands/guard.d.ts",
51
58
  "default": "./dist/commands/guard.js"
59
+ },
60
+ "./commands/ssh": {
61
+ "types": "./dist/commands/ssh.d.ts",
62
+ "default": "./dist/commands/ssh.js"
52
63
  }
53
64
  },
54
65
  "scripts": {
@@ -16,7 +16,7 @@ const HARNESS_CLIENT_TYPE = "harness" // matches kimchi-dev:src/sandbox/constant
16
16
  const LIST_WORKSPACES_PAGE_LIMIT = 200
17
17
  const LIST_WORKSPACES_PAGE_HARD_CAP = 10
18
18
 
19
- export type WorkspaceStatus = "active" | "initializing" | "suspended" | "deleting" | "idle"
19
+ export type WorkspaceStatus = "active" | "initializing" | "suspended" | "deleting" | "terminated"
20
20
 
21
21
  export interface Workspace {
22
22
  /** Server id — also the command-line identifier (`workspace get <id>`, `ssh <id>`). */
@@ -28,6 +28,10 @@ export interface Workspace {
28
28
  uri?: string
29
29
  host?: string
30
30
  createdAt: Date
31
+ /** Control-plane cluster (e.g. krep-us). */
32
+ cluster: string
33
+ /** Client that owns the workspace (e.g. harness). */
34
+ clientType: string
31
35
  cpuMillicores?: number
32
36
  ramBytes?: number
33
37
  pvcSizeBytes?: number
@@ -212,6 +216,8 @@ export function mapWorkspace(raw: unknown, endpoint: string): Workspace {
212
216
  uri,
213
217
  host,
214
218
  createdAt: createdAt ?? new Date(0),
219
+ cluster: typeof r.cluster === "string" ? r.cluster : "",
220
+ clientType: typeof r.clientType === "string" ? r.clientType : "",
215
221
  cpuMillicores: cpuQuantityToMillicores(res?.cpu),
216
222
  ramBytes: byteQuantityToBytes(res?.memory),
217
223
  pvcSizeBytes: byteQuantityToBytes(res?.pvcSize),
@@ -228,7 +234,11 @@ function mapWorkspaceStatus(raw: unknown): WorkspaceStatus {
228
234
  return "suspended"
229
235
  case "DELETING":
230
236
  return "deleting"
237
+ case "TERMINATED":
238
+ return "terminated"
231
239
  default:
232
- return "idle"
240
+ // Unknown statuses read as terminated, not "idle": dead workspaces
241
+ // are the dominant unknown the API reports.
242
+ return "terminated"
233
243
  }
234
244
  }
@@ -11,6 +11,7 @@ import {
11
11
  import { connectToWorkspace } from "../ssh/connect.js"
12
12
  import { resolveTunnel } from "../ssh/tunnel.js"
13
13
  import { parseFlags, UsageError } from "./flags.js"
14
+ import { guardCommand } from "./guard.js"
14
15
 
15
16
  export interface SshDeps {
16
17
  fetch?: typeof globalThis.fetch
@@ -110,3 +111,6 @@ async function runProxy(args: string[], deps: SshDeps): Promise<number> {
110
111
  await bridgeStdioToWebSocket({ wsUrl: creds.wsUrl, token: creds.token })
111
112
  return 0
112
113
  }
114
+
115
+ /** Canonical harness-package entry (see commands/workspace.ts). */
116
+ export const run: (args: string[], deps?: SshDeps) => Promise<number> = guardCommand(runSsh)
@@ -10,8 +10,10 @@ import {
10
10
  stubFetch,
11
11
  } from "../test-support.js"
12
12
  import { guardCommand } from "./guard.js"
13
- import { runWorkspace, type WorkspaceDeps } from "./workspace.js"
13
+ import { runWorkspace, type WorkspaceDeps, run as workspaceRun } from "./workspace.js"
14
14
 
15
+ // The harness-package contract: kimchi.commands modules export run(args)
16
+ // with guard exit codes — pinned by the dispatch tests in kimchi-dev.
15
17
  const guardedWorkspace = guardCommand(runWorkspace)
16
18
 
17
19
  afterEach(() => {
@@ -35,6 +37,8 @@ function wsJson(over: WorkspaceOverrides = {}): Record<string, unknown> {
35
37
  status: "ACTIVE",
36
38
  createTime: "2026-01-01T00:00:00Z",
37
39
  uri: `${alias}.remote.kimchi.dev`,
40
+ cluster: "krep-us",
41
+ clientType: "harness",
38
42
  spec: { resources: { cpu: "2", memory: "4Gi", pvcSize: "20Gi" } },
39
43
  ...over,
40
44
  }
@@ -78,7 +82,7 @@ async function run(
78
82
  stubAgentDirEnv(dir)
79
83
  writeFileSync(join(dir, "auth.json"), JSON.stringify({ "kimchi-dev": { type: "api_key", key: "key" } }))
80
84
  const { lines, errors } = captureConsole()
81
- const code = await guardedWorkspace(args, { fetch, ...deps })
85
+ const code = await guardedWorkspace(args, { color: false, fetch, ...deps })
82
86
  return { code, lines, errors }
83
87
  }
84
88
 
@@ -128,9 +132,16 @@ describe("kimchictl workspace create", () => {
128
132
  const { code, lines, errors } = await run(["create", "--desc", "api work"], fetch, { sleep: async () => {} })
129
133
 
130
134
  expect(code).toBe(0)
131
- expect(lines).toEqual(["bright-oak-otter"])
132
- expect(errors[0]).toBe("✓ created bright-oak-otter (initializing)")
133
- expect(errors.some((l) => l.includes("uri bright-oak-otter.remote.kimchi.dev"))).toBe(true)
135
+ expect(lines).toEqual([
136
+ "✓ created bright-oak-otter (initializing)",
137
+ "",
138
+ " Connect:",
139
+ " $ ssh bright-oak-otter.remote.kimchi.dev",
140
+ " $ https://bright-oak-otter.remote.kimchi.dev/public/ide/",
141
+ "",
142
+ "bright-oak-otter",
143
+ ])
144
+ expect(errors).toEqual([])
134
145
  })
135
146
 
136
147
  it("--no-wait returns immediately after create", async () => {
@@ -145,7 +156,15 @@ describe("kimchictl workspace create", () => {
145
156
  const { code, lines } = await run(["create", "--no-wait"], fetch)
146
157
 
147
158
  expect(code).toBe(0)
148
- expect(lines).toEqual(["bright-oak-otter"])
159
+ expect(lines).toEqual([
160
+ "✓ created bright-oak-otter (initializing)",
161
+ "",
162
+ " Connect:",
163
+ " $ ssh bright-oak-otter.remote.kimchi.dev",
164
+ " $ https://bright-oak-otter.remote.kimchi.dev/public/ide/",
165
+ "",
166
+ "bright-oak-otter",
167
+ ])
149
168
  })
150
169
 
151
170
  it("warns when the workspace is not ACTIVE at the deadline", async () => {
@@ -166,7 +185,7 @@ describe("kimchictl workspace create", () => {
166
185
  const realNow = Date.now
167
186
  vi.spyOn(Date, "now").mockImplementation(() => now)
168
187
 
169
- const { code, errors } = await run(["create", "--timeout", "1"], fetch, {
188
+ const { code, lines, errors } = await run(["create", "--timeout", "1"], fetch, {
170
189
  sleep: async () => {
171
190
  now += 2000
172
191
  },
@@ -175,6 +194,8 @@ describe("kimchictl workspace create", () => {
175
194
 
176
195
  expect(code).toBe(0)
177
196
  expect(errors.some((l) => l.includes("still initializing"))).toBe(true)
197
+ // The alias is still the last stdout line for scripting.
198
+ expect(lines[lines.length - 1]).toBe("bright-oak-otter")
178
199
  })
179
200
 
180
201
  it("--template errors gracefully until the templates API lands", async () => {
@@ -225,9 +246,11 @@ describe("kimchictl workspace list", () => {
225
246
  expect(code).toBe(0)
226
247
  // formatTable prints the whole table as one console call.
227
248
  const table = lines[0]?.split("\n") ?? []
228
- expect(table[0]).toBe("NAME STATUS CPU MEMORY AGE")
229
- expect(table[1]).toMatch(/^bright-oak-otter\s+active\s+2\s+4Gi\s+3h$/)
230
- expect(table[2]).toMatch(/^demo\s+suspended\s+-\s+-\s+2d$/)
249
+ expect(table[0]).toMatch(/^NAME\s+STATUS\s+CLUSTER\s+AGE\s+CPU\s+RAM\s+PVC\s+URI$/)
250
+ expect(table[1]).toMatch(
251
+ /^bright-oak-otter\s+active\s+krep-us\s+3h\s+2\s+4Gi\s+20Gi\s+bright-oak-otter\.remote\.kimchi\.dev$/,
252
+ )
253
+ expect(table[2]).toMatch(/^demo\s+suspended\s+krep-us\s+2d\s+-\s+-\s+-\s+demo\.remote\.kimchi\.dev$/)
231
254
  expect(table).toHaveLength(3)
232
255
  })
233
256
 
@@ -238,7 +261,7 @@ describe("kimchictl workspace list", () => {
238
261
  expect(JSON.parse(jsonRun.lines.join(""))).toEqual([])
239
262
 
240
263
  const tableRun = await run(["list"], fetch)
241
- expect(tableRun.lines).toEqual(["NAME STATUS CPU MEMORY AGE"])
264
+ expect(tableRun.lines).toEqual(["NAME STATUS CLUSTER AGE CPU RAM PVC URI"])
242
265
  })
243
266
 
244
267
  it("rejects an unsupported output flavor", async () => {
@@ -255,18 +278,20 @@ describe("kimchictl workspace get", () => {
255
278
  { method: "GET", match: /\?page\.limit=/, respond: () => jsonResponse({ items: [wsJson()] }) },
256
279
  ])
257
280
 
258
- const { code, lines } = await run(["get", "bright-oak-otter"], fetch)
281
+ const { code, lines } = await run(["get", "bright-oak-otter"], fetch, {
282
+ now: () => new Date("2026-01-01T03:00:00Z"),
283
+ })
259
284
 
260
285
  expect(code).toBe(0)
261
286
  expect(lines).toEqual([
262
- "name: bright-oak-otter",
263
- "description: api work",
264
- "status: active",
265
- "uri: bright-oak-otter.remote.kimchi.dev",
266
- "created: 2026-01-01T00:00:00.000Z",
267
- "cpu: 2",
268
- "memory: 4Gi",
269
- "storage: 20Gi",
287
+ "bright-oak-otter ● active",
288
+ " api work",
289
+ " cluster krep-us · harness · created 3h ago",
290
+ " 2 CPU · 4Gi memory · 20Gi storage",
291
+ "",
292
+ " Connect:",
293
+ " $ ssh bright-oak-otter.remote.kimchi.dev",
294
+ " $ https://bright-oak-otter.remote.kimchi.dev/public/ide/",
270
295
  ])
271
296
  })
272
297
 
@@ -290,16 +315,39 @@ describe("kimchictl workspace get", () => {
290
315
  },
291
316
  ])
292
317
 
293
- const { code, lines } = await run(["get", "11111111-2222-3333-4444-555555555555"], fetch)
318
+ const { code, lines } = await run(["get", "11111111-2222-3333-4444-555555555555"], fetch, {
319
+ now: () => new Date("2026-01-01T03:00:00Z"),
320
+ })
294
321
 
295
322
  expect(code).toBe(0)
296
- expect(lines[0]).toBe("name: bright-oak-otter")
323
+ expect(lines[0]).toBe("bright-oak-otter ● active")
324
+ })
325
+
326
+ it("colorizes the status dot and metadata when colors are on", async () => {
327
+ const fetch = apiFetch([
328
+ { method: "GET", match: /\?page\.limit=/, respond: () => jsonResponse({ items: [wsJson()] }) },
329
+ ])
330
+
331
+ const { lines } = await run(["get", "bright-oak-otter"], fetch, {
332
+ color: true,
333
+ now: () => new Date("2026-01-01T03:00:00Z"),
334
+ })
335
+
336
+ const joined = lines.join("\n")
337
+ expect(joined).toContain("\x1b[32m● active\x1b[0m")
338
+ expect(joined).toContain("\x1b[2m cluster krep-us")
297
339
  })
298
340
 
299
341
  it("requires exactly one name", async () => {
300
342
  expect((await run(["get"], apiFetch([]))).code).toBe(2)
301
343
  expect((await run(["get", "a", "b"], apiFetch([]))).code).toBe(2)
302
344
  })
345
+
346
+ it("exports the guarded run() entry for the harness package-command contract", async () => {
347
+ // Same function contract, exit codes included: a usage error maps to 2,
348
+ // not a thrown exception — the harness dispatcher returns it verbatim.
349
+ expect(await workspaceRun(["frobnicate"], { color: false })).toBe(2)
350
+ })
303
351
  })
304
352
 
305
353
  // ---------------------------------------------------------------- delete
@@ -4,7 +4,9 @@ import { resolveTemplate } from "../api/templates.js"
4
4
  import { waitForWorkspaceActive } from "../api/wait.js"
5
5
  import { createWorkspace, deleteWorkspace, listWorkspaces, type Workspace } from "../api/workspaces.js"
6
6
  import { requireApiKey } from "../auth/resolve.js"
7
+ import { resolveSshDomain } from "../ssh/config.js"
7
8
  import { parseFlags, UsageError } from "./flags.js"
9
+ import { guardCommand } from "./guard.js"
8
10
  import { confirm, isInteractive } from "./prompt.js"
9
11
  import { formatTable } from "./table.js"
10
12
 
@@ -19,6 +21,8 @@ export interface WorkspaceDeps {
19
21
  now?: () => Date
20
22
  /** Sleep override for the create wait loop (tests). */
21
23
  sleep?: (ms: number) => Promise<void>
24
+ /** ANSI colors on stdout (tests); defaults to stdout being a TTY. */
25
+ color?: boolean
22
26
  }
23
27
 
24
28
  const GROUP_USAGE = `Usage:
@@ -91,7 +95,10 @@ async function runCreate(args: string[], deps: WorkspaceDeps): Promise<number> {
91
95
  const sleep = deps.sleep ?? ((ms: number) => new Promise((resolve) => setTimeout(resolve, ms)))
92
96
 
93
97
  const created = await createWorkspace(key, { description: desc, fetch: deps.fetch })
94
- console.error(`✓ created ${created.alias} (${created.status})`)
98
+ // Success-path info goes to stdout (terminals that color stderr red made
99
+ // this look like an error); only warnings and the transient progress
100
+ // spinner stay on stderr.
101
+ console.log(`✓ created ${created.alias} (${created.status})`)
95
102
 
96
103
  let current = created
97
104
  if (!values["no-wait"]) {
@@ -108,8 +115,12 @@ async function runCreate(args: string[], deps: WorkspaceDeps): Promise<number> {
108
115
  }
109
116
  }
110
117
 
111
- if (current.uri) console.error(` uri ${current.uri}`)
112
- // The alias goes to stdout last so scripts can capture it: ALIAS=$(kimchictl workspace create)
118
+ if (current.uri) {
119
+ console.log()
120
+ for (const line of connectLines(current, deps.env)) console.log(line)
121
+ console.log()
122
+ }
123
+ // The alias is the last stdout line: ALIAS=$(kimchictl workspace create | tail -1)
113
124
  console.log(current.alias)
114
125
  return 0
115
126
  }
@@ -150,11 +161,14 @@ async function runList(args: string[], deps: WorkspaceDeps): Promise<number> {
150
161
  const rows = workspaces.map((w) => [
151
162
  w.alias,
152
163
  w.status,
164
+ w.cluster,
165
+ formatAge(w.createdAt, now),
153
166
  formatMillicores(w.cpuMillicores),
154
167
  formatBytes(w.ramBytes),
155
- formatAge(w.createdAt, now),
168
+ formatBytes(w.pvcSizeBytes),
169
+ w.uri ?? "",
156
170
  ])
157
- console.log(formatTable(["NAME", "STATUS", "CPU", "MEMORY", "AGE"], rows))
171
+ console.log(formatTable(["NAME", "STATUS", "CLUSTER", "AGE", "CPU", "RAM", "PVC", "URI"], rows))
158
172
  return 0
159
173
  }
160
174
 
@@ -182,17 +196,9 @@ async function runGet(args: string[], deps: WorkspaceDeps): Promise<number> {
182
196
  return 0
183
197
  }
184
198
 
185
- const lines = [
186
- `name: ${workspace.alias}`,
187
- workspace.description ? `description: ${workspace.description}` : undefined,
188
- `status: ${workspace.status}`,
189
- workspace.uri ? `uri: ${workspace.uri}` : undefined,
190
- `created: ${workspace.createdAt.toISOString()}`,
191
- `cpu: ${formatMillicores(workspace.cpuMillicores)}`,
192
- `memory: ${formatBytes(workspace.ramBytes)}`,
193
- `storage: ${formatBytes(workspace.pvcSizeBytes)}`,
194
- ].filter((line): line is string => line !== undefined)
195
- for (const line of lines) console.log(line)
199
+ const now = deps.now?.() ?? new Date()
200
+ const color = deps.color ?? process.stdout.isTTY === true
201
+ for (const line of renderWorkspaceCard(workspace, deps.env, color, now)) console.log(line)
196
202
  return 0
197
203
  }
198
204
 
@@ -233,12 +239,70 @@ async function runDelete(args: string[], deps: WorkspaceDeps): Promise<number> {
233
239
 
234
240
  // ---------------------------------------------------------------- shared
235
241
 
242
+ /** Tinted status dot: green=active, yellow=transitional/suspended, dim=terminated. */
243
+ function statusDot(status: Workspace["status"], color: boolean): string {
244
+ if (!color) return `● ${status}`
245
+ const tint = status === "active" ? "\x1b[32m" : status === "terminated" ? "\x1b[2m" : "\x1b[33m"
246
+ return `${tint}● ${status}\x1b[0m`
247
+ }
248
+
249
+ function dim(text: string, color: boolean): string {
250
+ return color ? `\x1b[2m${text}\x1b[0m` : text
251
+ }
252
+
253
+ /** Connect hints shared by `get` and `create`: ssh command + web IDE URL. */
254
+ function connectLines(workspace: Workspace, env?: NodeJS.ProcessEnv): string[] {
255
+ if (!workspace.uri) return []
256
+ const domain = resolveSshDomain(undefined, env ?? process.env)
257
+ return [" Connect:", ` $ ssh ${workspace.alias}.${domain}`, ` $ https://${workspace.uri}/public/ide/`]
258
+ }
259
+
260
+ /** Hero-line card ("Option C"): name+status first, dim metadata, resources, connect block. */
261
+ function renderWorkspaceCard(
262
+ workspace: Workspace,
263
+ env: NodeJS.ProcessEnv | undefined,
264
+ color: boolean,
265
+ now: Date,
266
+ ): string[] {
267
+ const lines: string[] = [`${workspace.alias} ${statusDot(workspace.status, color)}`]
268
+ if (workspace.description) lines.push(dim(` ${workspace.description}`, color))
269
+
270
+ const meta = [
271
+ workspace.cluster ? `cluster ${workspace.cluster}` : "",
272
+ workspace.clientType,
273
+ `created ${formatAge(workspace.createdAt, now)} ago`,
274
+ ].filter(Boolean)
275
+ if (meta.length > 0) lines.push(dim(` ${meta.join(" · ")}`, color))
276
+
277
+ if (
278
+ workspace.cpuMillicores !== undefined ||
279
+ workspace.ramBytes !== undefined ||
280
+ workspace.pvcSizeBytes !== undefined
281
+ ) {
282
+ lines.push(
283
+ dim(
284
+ ` ${formatMillicores(workspace.cpuMillicores)} CPU · ${formatBytes(workspace.ramBytes)} memory · ${formatBytes(workspace.pvcSizeBytes)} storage`,
285
+ color,
286
+ ),
287
+ )
288
+ }
289
+
290
+ const connect = connectLines(workspace, env)
291
+ if (connect.length > 0) {
292
+ lines.push("")
293
+ lines.push(...connect)
294
+ }
295
+ return lines
296
+ }
297
+
236
298
  function serializeWorkspace(w: Workspace): Record<string, unknown> {
237
299
  return {
238
300
  id: w.id,
239
301
  alias: w.alias,
240
302
  ...(w.description ? { description: w.description } : {}),
241
303
  status: w.status,
304
+ ...(w.cluster ? { cluster: w.cluster } : {}),
305
+ ...(w.clientType ? { clientType: w.clientType } : {}),
242
306
  ...(w.uri ? { uri: w.uri } : {}),
243
307
  createdAt: w.createdAt.getTime() > 0 ? w.createdAt.toISOString() : undefined,
244
308
  resources: {
@@ -248,3 +312,11 @@ function serializeWorkspace(w: Workspace): Record<string, unknown> {
248
312
  },
249
313
  }
250
314
  }
315
+
316
+ /**
317
+ * Canonical harness-package entry: modules listed in the kimchi.commands
318
+ * manifest must export run(args) (kimchi-dev:src/commands/package-commands.ts).
319
+ * guardCommand maps usage/domain errors to exit codes 2/1, matching the
320
+ * CLI registry.
321
+ */
322
+ export const run: (args: string[], deps?: WorkspaceDeps) => Promise<number> = guardCommand(runWorkspace)
@@ -178,6 +178,11 @@ describe("resolveProxyCommandTarget", () => {
178
178
  expect(resolveProxyCommandTarget("/opt/kimchictl-v1.2.3")).toBe("/opt/kimchictl-v1.2.3")
179
179
  })
180
180
 
181
+ it("pins the kimchi harness binary when running as an installed package", () => {
182
+ expect(resolveProxyCommandTarget("/usr/local/bin/kimchi")).toBe("/usr/local/bin/kimchi")
183
+ expect(resolveProxyCommandTarget("/opt/kimchi-1.2.3")).toBe("/opt/kimchi-1.2.3")
184
+ })
185
+
181
186
  it("pins the runtime + absolute entry script under node/bun (no PATH reliance)", () => {
182
187
  expect(resolveProxyCommandTarget("/usr/local/bin/node", "/opt/app/dist/cli.js")).toBe(
183
188
  "/usr/local/bin/node /opt/app/dist/cli.js",
package/src/ssh/config.ts CHANGED
@@ -78,6 +78,12 @@ export function resolveProxyCommandTarget(execPath: string = process.execPath, e
78
78
  if (base === "kimchictl" || base.startsWith("kimchictl-")) {
79
79
  return shellQuote(execPath)
80
80
  }
81
+ // Running inside the kimchi harness (installed via `kimchi install npm:…`):
82
+ // the ProxyCommand routes through the harness binary, which dispatches
83
+ // `ssh proxy` to this package's exported runner.
84
+ if (base === "kimchi" || base.startsWith("kimchi-")) {
85
+ return shellQuote(execPath)
86
+ }
81
87
  const entry = entryScript ?? process.argv[1]
82
88
  if (entry) {
83
89
  return `${shellQuote(execPath)} ${shellQuote(resolve(entry))}`
package/src/version.ts CHANGED
@@ -3,4 +3,4 @@
3
3
  * version over this constant at build time; the committed value stays a
4
4
  * sentinel so source checkouts are recognizable.
5
5
  */
6
- export const VERSION = "0.0.2"
6
+ export const VERSION = "0.0.4"