@kimchi-dev/kimchictl 0.0.7 → 0.0.9

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.
@@ -0,0 +1,46 @@
1
+ import type { ApiOptions } from "./types.js";
2
+ /**
3
+ * Workspace-template client — read-only surface against the
4
+ * WorkspaceTemplatesAPI (proto: workspacetemplates_api.proto).
5
+ *
6
+ * Templates are named, organization-scoped presets of workspace creation
7
+ * parameters (resources, dependencies, egress policy, init script). They are
8
+ * curated by admins; `workspace create --template <name>` resolves them.
9
+ */
10
+ export interface WorkspaceTemplateSpec {
11
+ resources?: {
12
+ cpu?: string;
13
+ memory?: string;
14
+ pvcSize?: string;
15
+ };
16
+ dependencies?: string[];
17
+ egressPolicy?: {
18
+ denyByDefault?: boolean;
19
+ allowed?: string[];
20
+ denied?: string[];
21
+ };
22
+ initScript?: string;
23
+ }
24
+ export interface WorkspaceTemplate {
25
+ id: string;
26
+ organizationId: string;
27
+ name: string;
28
+ description: string;
29
+ spec?: WorkspaceTemplateSpec;
30
+ createdBy: string;
31
+ updatedBy: string;
32
+ createTime: Date;
33
+ updateTime: Date;
34
+ }
35
+ export interface WorkspaceTemplateOptions extends ApiOptions {
36
+ orgId?: string;
37
+ }
38
+ export declare class TemplateNotFoundError extends Error {
39
+ constructor(ref: string);
40
+ }
41
+ export declare class AmbiguousTemplateError extends Error {
42
+ constructor(ref: string, candidates: string[]);
43
+ }
44
+ export declare function listWorkspaceTemplates(apiKey: string, options?: WorkspaceTemplateOptions): Promise<WorkspaceTemplate[]>;
45
+ export declare function getWorkspaceTemplate(apiKey: string, id: string, options?: WorkspaceTemplateOptions): Promise<WorkspaceTemplate>;
46
+ //# sourceMappingURL=templates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"../src/","sources":["api/templates.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAG5C;;;;;;;GAOG;AAEH,MAAM,WAAW,qBAAqB;IACrC,SAAS,CAAC,EAAE;QACX,GAAG,CAAC,EAAE,MAAM,CAAA;QACZ,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,OAAO,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;IACD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,YAAY,CAAC,EAAE;QACd,aAAa,CAAC,EAAE,OAAO,CAAA;QACvB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;QAClB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;KACjB,CAAA;IACD,UAAU,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,iBAAiB;IACjC,EAAE,EAAE,MAAM,CAAA;IACV,cAAc,EAAE,MAAM,CAAA;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,qBAAqB,CAAA;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,IAAI,CAAA;IAChB,UAAU,EAAE,IAAI,CAAA;CAChB;AAED,MAAM,WAAW,wBAAyB,SAAQ,UAAU;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAMD,qBAAa,qBAAsB,SAAQ,KAAK;gBACnC,GAAG,EAAE,MAAM;CAIvB;AAED,qBAAa,sBAAuB,SAAQ,KAAK;gBACpC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE;CAI7C;AAED,wBAAsB,sBAAsB,CAC3C,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,wBAAwB,GAChC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CA2B9B;AAED,wBAAsB,oBAAoB,CACzC,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,MAAM,EACV,OAAO,CAAC,EAAE,wBAAwB,GAChC,OAAO,CAAC,iBAAiB,CAAC,CAiB5B"}
@@ -0,0 +1,110 @@
1
+ import { checkResponse, fetchWithTimeout, resolveEndpoint } from "./http.js";
2
+ import { verifyApiKey } from "./keys.js";
3
+ import { RemoteNetworkError } from "./types.js";
4
+ async function resolveOrgId(apiKey, options) {
5
+ return options?.orgId ?? (await verifyApiKey(apiKey, options));
6
+ }
7
+ export class TemplateNotFoundError extends Error {
8
+ constructor(ref) {
9
+ super(`No workspace template matches "${ref}" — list with: kimchictl workspace templates list`);
10
+ this.name = "TemplateNotFoundError";
11
+ }
12
+ }
13
+ export class AmbiguousTemplateError extends Error {
14
+ constructor(ref, candidates) {
15
+ super(`Multiple workspace templates match "${ref}": ${candidates.join(", ")} — use the full name`);
16
+ this.name = "AmbiguousTemplateError";
17
+ }
18
+ }
19
+ export async function listWorkspaceTemplates(apiKey, options) {
20
+ const fetchImpl = options?.fetch ?? globalThis.fetch;
21
+ const endpoint = resolveEndpoint(options);
22
+ const orgId = await resolveOrgId(apiKey, options);
23
+ const params = new URLSearchParams();
24
+ params.set("page.limit", "200");
25
+ const url = `${endpoint}/ai-optimizer/v1beta/organizations/${encodeURIComponent(orgId)}/workspace-templates?${params}`;
26
+ const resp = await fetchWithTimeout(url, { method: "GET", headers: { Authorization: `Bearer ${apiKey}`, Accept: "application/json" } }, fetchImpl, 30_000, options?.signal);
27
+ await checkResponse(resp, url);
28
+ const data = await resp.json().catch(() => undefined);
29
+ if (typeof data !== "object" || data === null) {
30
+ throw new RemoteNetworkError(`Unexpected response from ${endpoint}`);
31
+ }
32
+ const items = data.items;
33
+ if (!Array.isArray(items)) {
34
+ throw new RemoteNetworkError(`Missing items array in workspace-templates response from ${endpoint}`);
35
+ }
36
+ return items.map((item) => mapWorkspaceTemplate(item, endpoint));
37
+ }
38
+ export async function getWorkspaceTemplate(apiKey, id, options) {
39
+ const fetchImpl = options?.fetch ?? globalThis.fetch;
40
+ const endpoint = resolveEndpoint(options);
41
+ const orgId = await resolveOrgId(apiKey, options);
42
+ const url = `${endpoint}/ai-optimizer/v1beta/organizations/${encodeURIComponent(orgId)}/workspace-templates/${encodeURIComponent(id)}`;
43
+ const resp = await fetchWithTimeout(url, { method: "GET", headers: { Authorization: `Bearer ${apiKey}` } }, fetchImpl, 30_000, options?.signal);
44
+ await checkResponse(resp, url);
45
+ const data = await resp.json().catch(() => undefined);
46
+ return mapWorkspaceTemplate(data, endpoint);
47
+ }
48
+ function mapWorkspaceTemplate(raw, endpoint) {
49
+ if (typeof raw !== "object" || raw === null) {
50
+ throw new RemoteNetworkError(`Invalid workspace-template entry in response from ${endpoint}`);
51
+ }
52
+ const r = raw;
53
+ const id = typeof r.id === "string" && r.id.length > 0 ? r.id : undefined;
54
+ if (!id) {
55
+ throw new RemoteNetworkError(`Missing workspace-template id in response from ${endpoint}`);
56
+ }
57
+ let createTime = new Date(0);
58
+ if (typeof r.createTime === "string") {
59
+ const parsed = new Date(r.createTime);
60
+ if (!Number.isNaN(parsed.getTime()))
61
+ createTime = parsed;
62
+ }
63
+ let updateTime = new Date(0);
64
+ if (typeof r.updateTime === "string") {
65
+ const parsed = new Date(r.updateTime);
66
+ if (!Number.isNaN(parsed.getTime()))
67
+ updateTime = parsed;
68
+ }
69
+ return {
70
+ id,
71
+ organizationId: typeof r.organizationId === "string" ? r.organizationId : "",
72
+ name: typeof r.name === "string" ? r.name : "",
73
+ description: typeof r.description === "string" ? r.description : "",
74
+ spec: mapTemplateSpec(r.spec),
75
+ createdBy: typeof r.createdBy === "string" ? r.createdBy : "",
76
+ updatedBy: typeof r.updatedBy === "string" ? r.updatedBy : "",
77
+ createTime,
78
+ updateTime,
79
+ };
80
+ }
81
+ function mapTemplateSpec(raw) {
82
+ if (typeof raw !== "object" || raw === null)
83
+ return undefined;
84
+ const s = raw;
85
+ const spec = {};
86
+ if (typeof s.resources === "object" && s.resources !== null) {
87
+ const res = s.resources;
88
+ spec.resources = {
89
+ cpu: typeof res.cpu === "string" ? res.cpu : undefined,
90
+ memory: typeof res.memory === "string" ? res.memory : undefined,
91
+ pvcSize: typeof res.pvcSize === "string" ? res.pvcSize : undefined,
92
+ };
93
+ }
94
+ if (Array.isArray(s.dependencies)) {
95
+ spec.dependencies = s.dependencies.filter((d) => typeof d === "string");
96
+ }
97
+ if (typeof s.egressPolicy === "object" && s.egressPolicy !== null) {
98
+ const eg = s.egressPolicy;
99
+ spec.egressPolicy = {
100
+ denyByDefault: typeof eg.denyByDefault === "boolean" ? eg.denyByDefault : undefined,
101
+ allowed: Array.isArray(eg.allowed) ? eg.allowed.filter((d) => typeof d === "string") : undefined,
102
+ denied: Array.isArray(eg.denied) ? eg.denied.filter((d) => typeof d === "string") : undefined,
103
+ };
104
+ }
105
+ if (typeof s.initScript === "string") {
106
+ spec.initScript = s.initScript;
107
+ }
108
+ return Object.keys(spec).length > 0 ? spec : undefined;
109
+ }
110
+ //# sourceMappingURL=templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.js","sourceRoot":"../src/","sources":["api/templates.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,8 @@ export interface Workspace {
14
14
  cluster: string;
15
15
  /** Client that owns the workspace (e.g. harness). */
16
16
  clientType: string;
17
+ /** Template the workspace was created from, when set. */
18
+ templateName: string;
17
19
  cpuMillicores?: number;
18
20
  ramBytes?: number;
19
21
  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,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;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IACnC,SAAS,CAAC,EAAE;QACX,8DAA8D;QAC9D,GAAG,CAAC,EAAE,MAAM,CAAA;QACZ,oEAAoE;QACpE,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,sDAAsD;QACtD,OAAO,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;IACD,4DAA4D;IAC5D,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,YAAY,CAAC,EAAE;QACd,aAAa,CAAC,EAAE,OAAO,CAAA;QACvB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;QAClB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;KACjB,CAAA;IACD,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,sBAAuB,SAAQ,uBAAuB;IACtE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,mBAAmB,CAAA;CAC1B;AAED;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,SAAS,CAAC,CAoDzG;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"}
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,yDAAyD;IACzD,YAAY,EAAE,MAAM,CAAA;IACpB,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;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IACnC,SAAS,CAAC,EAAE;QACX,8DAA8D;QAC9D,GAAG,CAAC,EAAE,MAAM,CAAA;QACZ,oEAAoE;QACpE,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,sDAAsD;QACtD,OAAO,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;IACD,4DAA4D;IAC5D,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,YAAY,CAAC,EAAE;QACd,aAAa,CAAC,EAAE,OAAO,CAAA;QACvB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;QAClB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;KACjB,CAAA;IACD,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,sBAAuB,SAAQ,uBAAuB;IACtE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,mBAAmB,CAAA;CAC1B;AAED;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,SAAS,CAAC,CAoDzG;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,CAoDtE"}
@@ -183,6 +183,7 @@ export function mapWorkspace(raw, endpoint) {
183
183
  createdAt: createdAt ?? new Date(0),
184
184
  cluster: typeof r.cluster === "string" ? r.cluster : "",
185
185
  clientType: typeof r.clientType === "string" ? r.clientType : "",
186
+ templateName: typeof r.templateName === "string" ? r.templateName : "",
186
187
  cpuMillicores: cpuQuantityToMillicores(res?.cpu),
187
188
  ramBytes: byteQuantityToBytes(res?.memory),
188
189
  pvcSizeBytes: byteQuantityToBytes(res?.pvcSize),
@@ -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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"guard.d.ts","sourceRoot":"../src/","sources":["commands/guard.ts"],"names":[],"mappings":"AAOA;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,KAAK,EACjC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,KAAK,KAAK,OAAO,CAAC,MAAM,CAAC,GACxD,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,KAAK,KAAK,OAAO,CAAC,MAAM,CAAC,CAwBnD"}
1
+ {"version":3,"file":"guard.d.ts","sourceRoot":"../src/","sources":["commands/guard.ts"],"names":[],"mappings":"AAQA;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,KAAK,EACjC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,KAAK,KAAK,OAAO,CAAC,MAAM,CAAC,GACxD,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,KAAK,KAAK,OAAO,CAAC,MAAM,CAAC,CA0BnD"}
@@ -1,4 +1,5 @@
1
1
  import { AmbiguousWorkspaceError, WorkspaceNotFoundError } from "../api/resolver.js";
2
+ import { AmbiguousTemplateError, TemplateNotFoundError } from "../api/templates.js";
2
3
  import { RemoteAuthError, RemoteNetworkError } from "../api/types.js";
3
4
  import { ModelsFetchError } from "../auth/models-providers.js";
4
5
  import { NotLoggedInError } from "../auth/resolve.js";
@@ -26,6 +27,8 @@ export function guardCommand(handler) {
26
27
  err instanceof ModelsFetchError ||
27
28
  err instanceof WorkspaceNotFoundError ||
28
29
  err instanceof AmbiguousWorkspaceError ||
30
+ err instanceof TemplateNotFoundError ||
31
+ err instanceof AmbiguousTemplateError ||
29
32
  err instanceof BridgeError ||
30
33
  err instanceof RemoteAuthError ||
31
34
  err instanceof RemoteNetworkError) {
@@ -1 +1 @@
1
- {"version":3,"file":"guard.js","sourceRoot":"../src/","sources":["commands/guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AACpF,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAEvC;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAC3B,OAA0D;IAE1D,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;QAC3B,IAAI,CAAC;YACJ,OAAO,MAAM,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QACjC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,IAAI,GAAG,YAAY,UAAU,EAAE,CAAC;gBAC/B,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;gBAC1B,OAAO,CAAC,CAAA;YACT,CAAC;YACD,IACC,GAAG,YAAY,gBAAgB;gBAC/B,GAAG,YAAY,gBAAgB;gBAC/B,GAAG,YAAY,sBAAsB;gBACrC,GAAG,YAAY,uBAAuB;gBACtC,GAAG,YAAY,WAAW;gBAC1B,GAAG,YAAY,eAAe;gBAC9B,GAAG,YAAY,kBAAkB,EAChC,CAAC;gBACF,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;gBACjC,OAAO,CAAC,CAAA;YACT,CAAC;YACD,MAAM,GAAG,CAAA;QACV,CAAC;IACF,CAAC,CAAA;AACF,CAAC"}
1
+ {"version":3,"file":"guard.js","sourceRoot":"../src/","sources":["commands/guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AACpF,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AACnF,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAEvC;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAC3B,OAA0D;IAE1D,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;QAC3B,IAAI,CAAC;YACJ,OAAO,MAAM,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QACjC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,IAAI,GAAG,YAAY,UAAU,EAAE,CAAC;gBAC/B,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;gBAC1B,OAAO,CAAC,CAAA;YACT,CAAC;YACD,IACC,GAAG,YAAY,gBAAgB;gBAC/B,GAAG,YAAY,gBAAgB;gBAC/B,GAAG,YAAY,sBAAsB;gBACrC,GAAG,YAAY,uBAAuB;gBACtC,GAAG,YAAY,qBAAqB;gBACpC,GAAG,YAAY,sBAAsB;gBACrC,GAAG,YAAY,WAAW;gBAC1B,GAAG,YAAY,eAAe;gBAC9B,GAAG,YAAY,kBAAkB,EAChC,CAAC;gBACF,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;gBACjC,OAAO,CAAC,CAAA;YACT,CAAC;YACD,MAAM,GAAG,CAAA;QACV,CAAC;IACF,CAAC,CAAA;AACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"../src/","sources":["commands/registry.ts"],"names":[],"mappings":"AAUA;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,qGAAqG;IACrG,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,uGAAuG;IACvG,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,GAAG,SAAS,CAAA;CACzE;AAED,eAAO,MAAM,QAAQ,EAAE,iBAAiB,EAkBvC,CAAA;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAEvE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEhE"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"../src/","sources":["commands/registry.ts"],"names":[],"mappings":"AAWA;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,qGAAqG;IACrG,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,uGAAuG;IACvG,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,GAAG,SAAS,CAAA;CACzE;AAED,eAAO,MAAM,QAAQ,EAAE,iBAAiB,EAmBvC,CAAA;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAEvE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEhE"}
@@ -3,6 +3,7 @@ import { guardCommand } from "./guard.js";
3
3
  import { runLogin } from "./login.js";
4
4
  import { runLogout } from "./logout.js";
5
5
  import { runSsh } from "./ssh.js";
6
+ import { runTemplates } from "./templates.js";
6
7
  import { runUpdate } from "./update.js";
7
8
  import { runVersion } from "./version.js";
8
9
  import { runWhoami } from "./whoami.js";
@@ -18,6 +19,7 @@ export const COMMANDS = [
18
19
  },
19
20
  { name: "ws", summary: "Alias for workspace", hidden: true, run: guardCommand(runWorkspace) },
20
21
  { name: "ssh", summary: "Connect to a workspace over SSH", run: guardCommand(runSsh) },
22
+ { name: "templates", summary: "Browse workspace templates (list | get)", run: guardCommand(runTemplates) },
21
23
  { name: "update", summary: "Check for and install a newer kimchictl release", run: guardCommand(runUpdate) },
22
24
  {
23
25
  name: "completion",
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"../src/","sources":["commands/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAe7C,MAAM,CAAC,MAAM,QAAQ,GAAwB;IAC5C,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,2DAA2D,EAAE,GAAG,EAAE,YAAY,CAAC,QAAQ,CAAC,EAAE;IACpH,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,kDAAkD,EAAE,GAAG,EAAE,YAAY,CAAC,SAAS,CAAC,EAAE;IAC7G,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,6BAA6B,EAAE,GAAG,EAAE,YAAY,CAAC,SAAS,CAAC,EAAE;IACxF;QACC,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,mDAAmD;QAC5D,GAAG,EAAE,YAAY,CAAC,YAAY,CAAC;KAC/B;IACD,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,qBAAqB,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,CAAC,YAAY,CAAC,EAAE;IAC7F,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,iCAAiC,EAAE,GAAG,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE;IACtF,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,iDAAiD,EAAE,GAAG,EAAE,YAAY,CAAC,SAAS,CAAC,EAAE;IAC5G;QACC,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,8DAA8D;QACvE,GAAG,EAAE,YAAY,CAAC,aAAa,CAAC;KAChC;IACD,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,6BAA6B,EAAE,GAAG,EAAE,UAAU,EAAE;CAC5E,CAAA;AAED,MAAM,UAAU,WAAW,CAAC,IAAY;IACvC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;AAC7C,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAwB;IACtD,OAAO,IAAI,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;AACnE,CAAC"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"../src/","sources":["commands/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAe7C,MAAM,CAAC,MAAM,QAAQ,GAAwB;IAC5C,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,2DAA2D,EAAE,GAAG,EAAE,YAAY,CAAC,QAAQ,CAAC,EAAE;IACpH,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,kDAAkD,EAAE,GAAG,EAAE,YAAY,CAAC,SAAS,CAAC,EAAE;IAC7G,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,6BAA6B,EAAE,GAAG,EAAE,YAAY,CAAC,SAAS,CAAC,EAAE;IACxF;QACC,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,mDAAmD;QAC5D,GAAG,EAAE,YAAY,CAAC,YAAY,CAAC;KAC/B;IACD,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,qBAAqB,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,CAAC,YAAY,CAAC,EAAE;IAC7F,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,iCAAiC,EAAE,GAAG,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE;IACtF,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,yCAAyC,EAAE,GAAG,EAAE,YAAY,CAAC,YAAY,CAAC,EAAE;IAC1G,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,iDAAiD,EAAE,GAAG,EAAE,YAAY,CAAC,SAAS,CAAC,EAAE;IAC5G;QACC,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,8DAA8D;QACvE,GAAG,EAAE,YAAY,CAAC,aAAa,CAAC;KAChC;IACD,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,6BAA6B,EAAE,GAAG,EAAE,UAAU,EAAE;CAC5E,CAAA;AAED,MAAM,UAAU,WAAW,CAAC,IAAY;IACvC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;AAC7C,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAwB;IACtD,OAAO,IAAI,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;AACnE,CAAC"}
@@ -0,0 +1,15 @@
1
+ export interface TemplatesDeps {
2
+ fetch?: typeof globalThis.fetch;
3
+ env?: NodeJS.ProcessEnv;
4
+ /** Override TTY interactivity detection (tests). */
5
+ interactive?: boolean;
6
+ /** Clock override for deterministic AGE columns (tests). */
7
+ now?: () => Date;
8
+ /** ANSI colors on stdout (tests); defaults to stdout being a TTY. */
9
+ color?: boolean;
10
+ }
11
+ /** `kimchictl templates <verb> …` — read-only browse of workspace templates. */
12
+ export declare function runTemplates(args: string[], deps?: TemplatesDeps): Promise<number>;
13
+ /** Canonical harness-package entry: guard exit codes for the kimchi.commands manifest. */
14
+ export declare const run: (args: string[], deps?: TemplatesDeps) => Promise<number>;
15
+ //# sourceMappingURL=templates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"../src/","sources":["commands/templates.ts"],"names":[],"mappings":"AAaA,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,4DAA4D;IAC5D,GAAG,CAAC,EAAE,MAAM,IAAI,CAAA;IAChB,qEAAqE;IACrE,KAAK,CAAC,EAAE,OAAO,CAAA;CACf;AAYD,gFAAgF;AAChF,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,GAAE,aAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAqB5F;AAkJD,0FAA0F;AAC1F,eAAO,MAAM,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,aAAa,KAAK,OAAO,CAAC,MAAM,CAA8B,CAAA"}
@@ -0,0 +1,174 @@
1
+ import { formatAge, formatBytes, formatMillicores } from "../api/resources.js";
2
+ import { AmbiguousTemplateError, getWorkspaceTemplate, listWorkspaceTemplates, TemplateNotFoundError, } from "../api/templates.js";
3
+ import { requireApiKey } from "../auth/resolve.js";
4
+ import { parseFlags, UsageError } from "./flags.js";
5
+ import { guardCommand } from "./guard.js";
6
+ import { formatTable } from "./table.js";
7
+ const TEMPLATES_USAGE = `Usage:
8
+ kimchictl templates <verb> [options]
9
+
10
+ Verbs:
11
+ list List workspace templates (alias: ls)
12
+ get Show template details
13
+
14
+ Options:
15
+ --help Show this help`;
16
+ /** `kimchictl templates <verb> …` — read-only browse of workspace templates. */
17
+ export async function runTemplates(args, deps = {}) {
18
+ const [verb, ...rest] = args;
19
+ switch (verb) {
20
+ case "list":
21
+ case "ls":
22
+ return runTemplatesList(rest, deps);
23
+ case "get":
24
+ return runTemplatesGet(rest, deps);
25
+ case "help":
26
+ case "--help":
27
+ case "-h":
28
+ console.log(TEMPLATES_USAGE);
29
+ return 0;
30
+ case undefined:
31
+ console.error(TEMPLATES_USAGE);
32
+ return 2;
33
+ default:
34
+ console.error(`kimchictl templates: unknown verb "${verb}"`);
35
+ console.error(TEMPLATES_USAGE);
36
+ return 2;
37
+ }
38
+ }
39
+ async function runTemplatesList(args, deps) {
40
+ const { values, positionals } = parseFlags("templates list", args, {
41
+ output: { type: "string", short: "o", default: "table" },
42
+ });
43
+ if (positionals.length > 0) {
44
+ throw new UsageError("kimchictl templates list: unexpected positional argument");
45
+ }
46
+ if (values.output !== "json" && values.output !== "table") {
47
+ throw new UsageError(`kimchictl templates list: unsupported --output "${String(values.output)}" (expected table|json)`);
48
+ }
49
+ const { key } = requireApiKey(deps.env);
50
+ const templates = await listWorkspaceTemplates(key, { fetch: deps.fetch });
51
+ if (values.output === "json") {
52
+ console.log(JSON.stringify(templates.map(serializeTemplate), null, 2));
53
+ return 0;
54
+ }
55
+ const now = deps.now?.() ?? new Date();
56
+ const rows = templates.map((t) => [
57
+ t.name || t.id.slice(0, 12),
58
+ t.description.length > 40 ? `${t.description.slice(0, 37)}…` : t.description || "-",
59
+ formatMillicores(t.spec?.resources?.cpu ? parseQuantity(t.spec.resources.cpu) : undefined),
60
+ formatBytes(t.spec?.resources?.memory ? parseByteQuantity(t.spec.resources.memory) : undefined),
61
+ formatBytes(t.spec?.resources?.pvcSize ? parseByteQuantity(t.spec.resources.pvcSize) : undefined),
62
+ formatAge(t.createTime, now),
63
+ ]);
64
+ console.log(formatTable(["NAME", "DESCRIPTION", "CPU", "MEMORY", "STORAGE", "AGE"], rows));
65
+ return 0;
66
+ }
67
+ async function runTemplatesGet(args, deps) {
68
+ const { values, positionals } = parseFlags("templates get", args, {
69
+ output: { type: "string", short: "o", default: "text" },
70
+ });
71
+ if (positionals.length !== 1) {
72
+ throw new UsageError("kimchictl templates get: expected exactly one template name or ID");
73
+ }
74
+ if (values.output !== "json" && values.output !== "text") {
75
+ throw new UsageError(`kimchictl templates get: unsupported --output "${String(values.output)}" (expected text|json)`);
76
+ }
77
+ const { key } = requireApiKey(deps.env);
78
+ const ref = positionals[0] ?? "";
79
+ // Templates are addressed by ID in the API; when the ref is a name,
80
+ // list-and-match (the API has no by-name lookup).
81
+ let template;
82
+ if (/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(ref)) {
83
+ template = await getWorkspaceTemplate(key, ref, { fetch: deps.fetch });
84
+ }
85
+ else {
86
+ const all = await listWorkspaceTemplates(key, { fetch: deps.fetch });
87
+ const matches = all.filter((t) => t.name === ref || t.name.startsWith(ref));
88
+ if (matches.length === 0)
89
+ throw new TemplateNotFoundError(ref);
90
+ if (matches.length > 1)
91
+ throw new AmbiguousTemplateError(ref, matches.map((t) => t.name));
92
+ template = matches[0];
93
+ }
94
+ if (!template)
95
+ throw new TemplateNotFoundError(ref);
96
+ if (values.output === "json") {
97
+ console.log(JSON.stringify(serializeTemplate(template), null, 2));
98
+ return 0;
99
+ }
100
+ for (const line of renderTemplateCard(template, deps.color ?? false, deps.now?.() ?? new Date())) {
101
+ console.log(line);
102
+ }
103
+ return 0;
104
+ }
105
+ function renderTemplateCard(template, color, now) {
106
+ const dimText = (text) => (color ? `\x1b[2m${text}\x1b[0m` : text);
107
+ const lines = [`${template.name || template.id.slice(0, 12)} ${dimText("template")}`];
108
+ if (template.description)
109
+ lines.push(dimText(` ${template.description}`));
110
+ const parts = [];
111
+ const res = template.spec?.resources;
112
+ if (res) {
113
+ if (res.cpu)
114
+ parts.push(formatMillicores(parseQuantity(res.cpu)));
115
+ if (res.memory)
116
+ parts.push(formatBytes(parseByteQuantity(res.memory)));
117
+ }
118
+ if (parts.length > 0) {
119
+ lines.push(dimText(` ${parts.join(" · ")}`));
120
+ }
121
+ const dependencies = template.spec?.dependencies;
122
+ if (dependencies && dependencies.length > 0) {
123
+ lines.push(` deps ${dependencies.join(", ")}`);
124
+ }
125
+ const eg = template.spec?.egressPolicy;
126
+ if (eg) {
127
+ const egParts = [];
128
+ if (eg.denyByDefault === false)
129
+ egParts.push("default-allow");
130
+ if (eg.allowed && eg.allowed.length > 0)
131
+ egParts.push(`allow: ${eg.allowed.join(", ")}`);
132
+ if (eg.denied && eg.denied.length > 0)
133
+ egParts.push(`deny: ${eg.denied.join(", ")}`);
134
+ if (egParts.length > 0)
135
+ lines.push(dimText(` egress ${egParts.join(" · ")}`));
136
+ }
137
+ lines.push(dimText(` updated ${formatAge(template.updateTime, now)} ago`));
138
+ return lines;
139
+ }
140
+ function serializeTemplate(t) {
141
+ return {
142
+ id: t.id,
143
+ name: t.name,
144
+ ...(t.description ? { description: t.description } : {}),
145
+ spec: t.spec,
146
+ ...(t.createdBy ? { createdBy: t.createdBy } : {}),
147
+ ...(t.updateTime.getTime() > 0 ? { updateTime: t.updateTime.toISOString() } : {}),
148
+ };
149
+ }
150
+ /** Parse a k8s CPU quantity string ("500m", "2") to millicores. */
151
+ function parseQuantity(q) {
152
+ const value = Number.parseFloat(q.replace(/m$/, ""));
153
+ if (Number.isNaN(value))
154
+ return undefined;
155
+ return q.endsWith("m") ? value : value * 1000;
156
+ }
157
+ /** Parse a k8s memory/storage quantity string ("1Gi", "512Mi") to bytes. */
158
+ function parseByteQuantity(q) {
159
+ const units = { Ki: 1024, Mi: 1024 ** 2, Gi: 1024 ** 3, Ti: 1024 ** 4 };
160
+ for (const [suffix, mult] of Object.entries(units)) {
161
+ if (q.endsWith(suffix)) {
162
+ const value = Number.parseFloat(q.slice(0, -suffix.length));
163
+ if (!Number.isNaN(value))
164
+ return value * mult;
165
+ }
166
+ }
167
+ const value = Number.parseFloat(q);
168
+ if (!Number.isNaN(value))
169
+ return value;
170
+ return undefined;
171
+ }
172
+ /** Canonical harness-package entry: guard exit codes for the kimchi.commands manifest. */
173
+ export const run = guardCommand(runTemplates);
174
+ //# sourceMappingURL=templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.js","sourceRoot":"../src/","sources":["commands/templates.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.d.ts","sourceRoot":"../src/","sources":["commands/workspace.ts"],"names":[],"mappings":"AAmBA,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;AA6BD,yFAAyF;AACzF,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,GAAE,aAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAwB5F;AA0UD;;;;;GAKG;AACH,eAAO,MAAM,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,aAAa,KAAK,OAAO,CAAC,MAAM,CAA8B,CAAA"}
1
+ {"version":3,"file":"workspace.d.ts","sourceRoot":"../src/","sources":["commands/workspace.ts"],"names":[],"mappings":"AAmBA,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;AA6BD,yFAAyF;AACzF,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,GAAE,aAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAwB5F;AA6UD;;;;;GAKG;AACH,eAAO,MAAM,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,aAAa,KAAK,OAAO,CAAC,MAAM,CAA8B,CAAA"}
@@ -212,13 +212,14 @@ async function runList(args, deps) {
212
212
  w.alias,
213
213
  w.status,
214
214
  w.cluster,
215
+ w.templateName || "-",
215
216
  formatAge(w.createdAt, now),
216
217
  formatMillicores(w.cpuMillicores),
217
218
  formatBytes(w.ramBytes),
218
219
  formatBytes(w.pvcSizeBytes),
219
220
  w.uri ?? "",
220
221
  ]);
221
- console.log(formatTable(["NAME", "STATUS", "CLUSTER", "AGE", "CPU", "RAM", "PVC", "URI"], rows));
222
+ console.log(formatTable(["NAME", "STATUS", "CLUSTER", "TEMPLATE", "AGE", "CPU", "RAM", "PVC", "URI"], rows));
222
223
  return 0;
223
224
  }
224
225
  // ---------------------------------------------------------------- get
@@ -301,6 +302,7 @@ function renderWorkspaceCard(workspace, env, color, now) {
301
302
  const meta = [
302
303
  workspace.cluster ? `cluster ${workspace.cluster}` : "",
303
304
  workspace.clientType,
305
+ workspace.templateName ? `from ${workspace.templateName}` : "",
304
306
  `created ${formatAge(workspace.createdAt, now)} ago`,
305
307
  ].filter(Boolean);
306
308
  if (meta.length > 0)
@@ -325,6 +327,7 @@ function serializeWorkspace(w) {
325
327
  status: w.status,
326
328
  ...(w.cluster ? { cluster: w.cluster } : {}),
327
329
  ...(w.clientType ? { clientType: w.clientType } : {}),
330
+ ...(w.templateName ? { templateName: w.templateName } : {}),
328
331
  ...(w.uri ? { uri: w.uri } : {}),
329
332
  createdAt: w.createdAt.getTime() > 0 ? w.createdAt.toISOString() : undefined,
330
333
  resources: {