@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.
- package/dist/api/templates.d.ts +46 -0
- package/dist/api/templates.d.ts.map +1 -0
- package/dist/api/templates.js +110 -0
- package/dist/api/templates.js.map +1 -0
- package/dist/api/workspaces.d.ts +2 -0
- package/dist/api/workspaces.d.ts.map +1 -1
- package/dist/api/workspaces.js +1 -0
- package/dist/api/workspaces.js.map +1 -1
- package/dist/commands/guard.d.ts.map +1 -1
- package/dist/commands/guard.js +3 -0
- package/dist/commands/guard.js.map +1 -1
- package/dist/commands/registry.d.ts.map +1 -1
- package/dist/commands/registry.js +2 -0
- package/dist/commands/registry.js.map +1 -1
- package/dist/commands/templates.d.ts +15 -0
- package/dist/commands/templates.d.ts.map +1 -0
- package/dist/commands/templates.js +174 -0
- package/dist/commands/templates.js.map +1 -0
- package/dist/commands/workspace.d.ts.map +1 -1
- package/dist/commands/workspace.js +4 -1
- package/dist/commands/workspace.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +3 -2
- package/src/api/templates.ts +187 -0
- package/src/api/workspaces.ts +3 -0
- package/src/commands/guard.ts +3 -0
- package/src/commands/registry.ts +2 -0
- package/src/commands/templates.test.ts +126 -0
- package/src/commands/templates.ts +204 -0
- package/src/commands/workspace.test.ts +4 -4
- package/src/commands/workspace.ts +4 -1
- package/src/version.ts +1 -1
|
@@ -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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"}
|
package/dist/api/workspaces.d.ts
CHANGED
|
@@ -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,
|
|
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"}
|
package/dist/api/workspaces.js
CHANGED
|
@@ -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":"AAAA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA;AAE7E,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAEhE;;;;;;GAMG;AAEH,MAAM,mBAAmB,GAAG,SAAS,CAAA,CAAC,8CAA8C;AACpF,MAAM,0BAA0B,GAAG,GAAG,CAAA;AACtC,MAAM,6BAA6B,GAAG,EAAE,CAAA;
|
|
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":"
|
|
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"}
|
package/dist/commands/guard.js
CHANGED
|
@@ -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":"
|
|
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;
|
|
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: {
|