@kimchi-dev/kimchictl 0.0.6 → 0.0.7
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/workspaces.d.ts +36 -5
- package/dist/api/workspaces.d.ts.map +1 -1
- package/dist/api/workspaces.js +50 -6
- package/dist/api/workspaces.js.map +1 -1
- package/dist/commands/flags.d.ts +1 -1
- package/dist/commands/flags.d.ts.map +1 -1
- package/dist/commands/guard.d.ts.map +1 -1
- package/dist/commands/guard.js +0 -2
- package/dist/commands/guard.js.map +1 -1
- package/dist/commands/workspace.d.ts.map +1 -1
- package/dist/commands/workspace.js +95 -11
- package/dist/commands/workspace.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/src/api/workspaces.ts +70 -10
- package/src/commands/flags.ts +1 -1
- package/src/commands/guard.ts +0 -2
- package/src/commands/workspace.test.ts +81 -4
- package/src/commands/workspace.ts +112 -11
- package/src/version.ts +1 -1
- package/dist/api/templates.d.ts +0 -19
- package/dist/api/templates.d.ts.map +0 -1
- package/dist/api/templates.js +0 -25
- package/dist/api/templates.js.map +0 -1
- package/src/api/templates.ts +0 -28
package/dist/api/workspaces.d.ts
CHANGED
|
@@ -25,13 +25,44 @@ export interface WorkspaceCommandOptions extends ApiOptions {
|
|
|
25
25
|
export declare function listWorkspaces(apiKey: string, options?: WorkspaceCommandOptions): Promise<Workspace[]>;
|
|
26
26
|
export declare function getWorkspace(apiKey: string, id: string, options?: WorkspaceCommandOptions): Promise<Workspace>;
|
|
27
27
|
/**
|
|
28
|
-
* Create
|
|
29
|
-
*
|
|
30
|
-
* "initializing"; callers may poll getWorkspace until "active").
|
|
28
|
+
* Create-time workspace parameters (mirrors the WorkspaceSpec proto).
|
|
29
|
+
* Set either template fields or spec fields — never both.
|
|
31
30
|
*/
|
|
32
|
-
export
|
|
31
|
+
export interface CreateWorkspaceSpec {
|
|
32
|
+
resources?: {
|
|
33
|
+
/** CPU request as a k8s quantity string, e.g. "500m", "2". */
|
|
34
|
+
cpu?: string;
|
|
35
|
+
/** Memory request as a k8s quantity string, e.g. "1Gi", "512Mi". */
|
|
36
|
+
memory?: string;
|
|
37
|
+
/** PVC size as a k8s quantity string, e.g. "20Gi". */
|
|
38
|
+
pvcSize?: string;
|
|
39
|
+
};
|
|
40
|
+
/** CLI tools to install at boot, e.g. ["jq", "node@22"]. */
|
|
41
|
+
dependencies?: string[];
|
|
42
|
+
egressPolicy?: {
|
|
43
|
+
denyByDefault?: boolean;
|
|
44
|
+
allowed?: string[];
|
|
45
|
+
denied?: string[];
|
|
46
|
+
};
|
|
47
|
+
/** Shell script executed at boot after dependency installation. */
|
|
48
|
+
initScript?: string;
|
|
49
|
+
}
|
|
50
|
+
export interface CreateWorkspaceOptions extends WorkspaceCommandOptions {
|
|
33
51
|
description?: string;
|
|
34
|
-
|
|
52
|
+
templateName?: string;
|
|
53
|
+
templateId?: string;
|
|
54
|
+
spec?: CreateWorkspaceSpec;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Create a workspace. Server generates the alias (like kap) — there is no
|
|
58
|
+
* client-side name input. Set either template fields (templateName or
|
|
59
|
+
* templateId) or explicit spec parameters, never both (the API rejects
|
|
60
|
+
* both — proto: "conflicts with spec: set either template fields or
|
|
61
|
+
* explicit parameters, never both"). Returns the created workspace
|
|
62
|
+
* (status likely "initializing"; callers may poll getWorkspace until
|
|
63
|
+
* "active").
|
|
64
|
+
*/
|
|
65
|
+
export declare function createWorkspace(apiKey: string, options: CreateWorkspaceOptions): Promise<Workspace>;
|
|
35
66
|
export declare function deleteWorkspace(apiKey: string, id: string, options?: WorkspaceCommandOptions): Promise<void>;
|
|
36
67
|
export declare function mapWorkspace(raw: unknown, endpoint: string): Workspace;
|
|
37
68
|
//# sourceMappingURL=workspaces.d.ts.map
|
|
@@ -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
|
|
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"}
|
package/dist/api/workspaces.js
CHANGED
|
@@ -69,21 +69,65 @@ export async function getWorkspace(apiKey, id, options) {
|
|
|
69
69
|
}
|
|
70
70
|
/**
|
|
71
71
|
* Create a workspace. Server generates the alias (like kap) — there is no
|
|
72
|
-
* client-side name input.
|
|
73
|
-
*
|
|
72
|
+
* client-side name input. Set either template fields (templateName or
|
|
73
|
+
* templateId) or explicit spec parameters, never both (the API rejects
|
|
74
|
+
* both — proto: "conflicts with spec: set either template fields or
|
|
75
|
+
* explicit parameters, never both"). Returns the created workspace
|
|
76
|
+
* (status likely "initializing"; callers may poll getWorkspace until
|
|
77
|
+
* "active").
|
|
74
78
|
*/
|
|
75
79
|
export async function createWorkspace(apiKey, options) {
|
|
76
80
|
const fetchImpl = options?.fetch ?? globalThis.fetch;
|
|
77
81
|
const endpoint = resolveEndpoint(options);
|
|
78
82
|
const orgId = await resolveOrgId(apiKey, options);
|
|
83
|
+
// Build the request body — the Workspace message (gRPC-gateway body: "workspace").
|
|
84
|
+
// gRPC-gateway maps proto field names to camelCase JSON keys.
|
|
85
|
+
const body = {
|
|
86
|
+
clientType: HARNESS_CLIENT_TYPE,
|
|
87
|
+
};
|
|
88
|
+
if (options.description)
|
|
89
|
+
body.description = options.description;
|
|
90
|
+
if (options.templateName)
|
|
91
|
+
body.templateName = options.templateName;
|
|
92
|
+
if (options.templateId)
|
|
93
|
+
body.templateId = options.templateId;
|
|
94
|
+
const spec = options.spec;
|
|
95
|
+
if (spec) {
|
|
96
|
+
const specBody = {};
|
|
97
|
+
if (spec.resources) {
|
|
98
|
+
const res = {};
|
|
99
|
+
if (spec.resources.cpu)
|
|
100
|
+
res.cpu = spec.resources.cpu;
|
|
101
|
+
if (spec.resources.memory)
|
|
102
|
+
res.memory = spec.resources.memory;
|
|
103
|
+
if (spec.resources.pvcSize)
|
|
104
|
+
res.pvcSize = spec.resources.pvcSize;
|
|
105
|
+
if (Object.keys(res).length > 0)
|
|
106
|
+
specBody.resources = res;
|
|
107
|
+
}
|
|
108
|
+
if (spec.dependencies && spec.dependencies.length > 0)
|
|
109
|
+
specBody.dependencies = spec.dependencies;
|
|
110
|
+
if (spec.egressPolicy) {
|
|
111
|
+
const eg = {};
|
|
112
|
+
if (spec.egressPolicy.denyByDefault !== undefined)
|
|
113
|
+
eg.denyByDefault = spec.egressPolicy.denyByDefault;
|
|
114
|
+
if (spec.egressPolicy.allowed && spec.egressPolicy.allowed.length > 0)
|
|
115
|
+
eg.allowed = spec.egressPolicy.allowed;
|
|
116
|
+
if (spec.egressPolicy.denied && spec.egressPolicy.denied.length > 0)
|
|
117
|
+
eg.denied = spec.egressPolicy.denied;
|
|
118
|
+
if (Object.keys(eg).length > 0)
|
|
119
|
+
specBody.egressPolicy = eg;
|
|
120
|
+
}
|
|
121
|
+
if (spec.initScript)
|
|
122
|
+
specBody.initScript = spec.initScript;
|
|
123
|
+
if (Object.keys(specBody).length > 0)
|
|
124
|
+
body.spec = specBody;
|
|
125
|
+
}
|
|
79
126
|
const url = `${endpoint}/ai-optimizer/v1beta/organizations/${encodeURIComponent(orgId)}/workspaces`;
|
|
80
127
|
const resp = await fetchWithTimeout(url, {
|
|
81
128
|
method: "POST",
|
|
82
129
|
headers: { Authorization: `Bearer ${apiKey}`, "Content-Type": "application/json" },
|
|
83
|
-
body: JSON.stringify(
|
|
84
|
-
...(options.description ? { description: options.description } : {}),
|
|
85
|
-
clientType: HARNESS_CLIENT_TYPE,
|
|
86
|
-
}),
|
|
130
|
+
body: JSON.stringify(body),
|
|
87
131
|
}, fetchImpl, 30_000, options?.signal);
|
|
88
132
|
await checkResponse(resp, url);
|
|
89
133
|
const data = await resp.json().catch(() => undefined);
|
|
@@ -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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"}
|
package/dist/commands/flags.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { type ParseArgsOptionsConfig } from "node:util";
|
|
|
3
3
|
export declare class UsageError extends Error {
|
|
4
4
|
constructor(message: string);
|
|
5
5
|
}
|
|
6
|
-
export type FlagValues = Record<string, string | boolean | undefined>;
|
|
6
|
+
export type FlagValues = Record<string, string | boolean | string[] | boolean[] | undefined>;
|
|
7
7
|
/**
|
|
8
8
|
* Strict flag parsing with a uniform usage-error shape across commands.
|
|
9
9
|
* Values keep their raw type (declared options are TypeScript-blind here —
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flags.d.ts","sourceRoot":"../src/","sources":["commands/flags.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,sBAAsB,EAAa,MAAM,WAAW,CAAA;AAElE,qFAAqF;AACrF,qBAAa,UAAW,SAAQ,KAAK;gBACxB,OAAO,EAAE,MAAM;CAI3B;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"flags.d.ts","sourceRoot":"../src/","sources":["commands/flags.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,sBAAsB,EAAa,MAAM,WAAW,CAAA;AAElE,qFAAqF;AACrF,qBAAa,UAAW,SAAQ,KAAK;gBACxB,OAAO,EAAE,MAAM;CAI3B;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,GAAG,OAAO,EAAE,GAAG,SAAS,CAAC,CAAA;AAE5F;;;;GAIG;AACH,wBAAgB,UAAU,CACzB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE,sBAAsB,GAC7B;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,WAAW,EAAE,MAAM,EAAE,CAAA;CAAE,CAO/C"}
|
|
@@ -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":"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"}
|
package/dist/commands/guard.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { AmbiguousWorkspaceError, WorkspaceNotFoundError } from "../api/resolver.js";
|
|
2
|
-
import { TemplatesUnavailableError } from "../api/templates.js";
|
|
3
2
|
import { RemoteAuthError, RemoteNetworkError } from "../api/types.js";
|
|
4
3
|
import { ModelsFetchError } from "../auth/models-providers.js";
|
|
5
4
|
import { NotLoggedInError } from "../auth/resolve.js";
|
|
@@ -25,7 +24,6 @@ export function guardCommand(handler) {
|
|
|
25
24
|
}
|
|
26
25
|
if (err instanceof NotLoggedInError ||
|
|
27
26
|
err instanceof ModelsFetchError ||
|
|
28
|
-
err instanceof TemplatesUnavailableError ||
|
|
29
27
|
err instanceof WorkspaceNotFoundError ||
|
|
30
28
|
err instanceof AmbiguousWorkspaceError ||
|
|
31
29
|
err instanceof BridgeError ||
|
|
@@ -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,
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace.d.ts","sourceRoot":"../src/","sources":["commands/workspace.ts"],"names":[],"mappings":"
|
|
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,8 +1,9 @@
|
|
|
1
|
+
import { readFileSync } from "node:fs";
|
|
2
|
+
import { resolve } from "node:path";
|
|
1
3
|
import { resolveWorkspace } from "../api/resolver.js";
|
|
2
4
|
import { formatAge, formatBytes, formatMillicores } from "../api/resources.js";
|
|
3
|
-
import { resolveTemplate } from "../api/templates.js";
|
|
4
5
|
import { waitForWorkspaceActive } from "../api/wait.js";
|
|
5
|
-
import { createWorkspace, deleteWorkspace, listWorkspaces } from "../api/workspaces.js";
|
|
6
|
+
import { createWorkspace, deleteWorkspace, listWorkspaces, } from "../api/workspaces.js";
|
|
6
7
|
import { requireApiKey } from "../auth/resolve.js";
|
|
7
8
|
import { resolveSshDomain } from "../ssh/config.js";
|
|
8
9
|
import { parseFlags, UsageError } from "./flags.js";
|
|
@@ -18,6 +19,21 @@ Verbs:
|
|
|
18
19
|
get Show workspace details
|
|
19
20
|
delete Delete a workspace (alias: rm)
|
|
20
21
|
|
|
22
|
+
Create options:
|
|
23
|
+
--desc <text> Description
|
|
24
|
+
--template <name> Workspace template (conflicts with spec flags)
|
|
25
|
+
--template-id <uuid> Template ID (alternative to --template)
|
|
26
|
+
--cpu <qty> CPU request (e.g. "500m", "2")
|
|
27
|
+
--memory <qty> Memory request (e.g. "1Gi", "512Mi")
|
|
28
|
+
--storage <qty> PVC size (e.g. "20Gi")
|
|
29
|
+
--dep <tool> CLI tool to install (repeatable, e.g. --dep jq --dep node@22)
|
|
30
|
+
--egress-allow <dest> Allow egress destination (repeatable)
|
|
31
|
+
--egress-deny <dest> Deny egress destination (repeatable)
|
|
32
|
+
--egress-default-allow Default-allow egress (instead of deny-by-default)
|
|
33
|
+
--init-script <script> Boot script (or @file to read from file)
|
|
34
|
+
--no-wait Skip waiting for ACTIVE
|
|
35
|
+
--timeout <seconds> Wait timeout (default 60)
|
|
36
|
+
|
|
21
37
|
Options:
|
|
22
38
|
--help Show this help`;
|
|
23
39
|
/** `kimchictl workspace <verb> …` — group command; also mounted as hidden alias `ws`. */
|
|
@@ -51,25 +67,93 @@ async function runCreate(args, deps) {
|
|
|
51
67
|
const { values, positionals } = parseFlags("workspace create", args, {
|
|
52
68
|
desc: { type: "string" },
|
|
53
69
|
template: { type: "string", short: "t" },
|
|
70
|
+
"template-id": { type: "string" },
|
|
71
|
+
cpu: { type: "string" },
|
|
72
|
+
memory: { type: "string" },
|
|
73
|
+
storage: { type: "string" },
|
|
74
|
+
dep: { type: "string", multiple: true },
|
|
75
|
+
"egress-allow": { type: "string", multiple: true },
|
|
76
|
+
"egress-deny": { type: "string", multiple: true },
|
|
77
|
+
"egress-default-allow": { type: "boolean" },
|
|
78
|
+
"init-script": { type: "string" },
|
|
54
79
|
"no-wait": { type: "boolean" },
|
|
55
80
|
timeout: { type: "string", default: "60" },
|
|
56
81
|
});
|
|
57
82
|
if (positionals.length > 0) {
|
|
58
83
|
throw new UsageError("kimchictl workspace create: unexpected positional argument (workspaces are named by the server)");
|
|
59
84
|
}
|
|
60
|
-
const template = values.template;
|
|
61
|
-
if (typeof template === "string" && template.length > 0) {
|
|
62
|
-
// Placeholder: errors gracefully until the templates API contract lands.
|
|
63
|
-
resolveTemplate(template);
|
|
64
|
-
}
|
|
65
|
-
if (values.template !== undefined && (typeof values.template !== "string" || values.template.length === 0)) {
|
|
66
|
-
throw new UsageError("kimchictl workspace create: --template must not be empty");
|
|
67
|
-
}
|
|
68
85
|
const timeoutSeconds = parseTimeoutSeconds(values.timeout, "workspace create");
|
|
69
86
|
const desc = typeof values.desc === "string" && values.desc.length > 0 ? values.desc : undefined;
|
|
87
|
+
const templateName = typeof values.template === "string" && values.template.length > 0 ? values.template : undefined;
|
|
88
|
+
const templateId = typeof values["template-id"] === "string" && values["template-id"].length > 0 ? values["template-id"] : undefined;
|
|
89
|
+
// Collect explicit spec parameters from the flags.
|
|
90
|
+
const resources = {};
|
|
91
|
+
if (typeof values.cpu === "string" && values.cpu.length > 0)
|
|
92
|
+
resources.cpu = values.cpu;
|
|
93
|
+
if (typeof values.memory === "string" && values.memory.length > 0)
|
|
94
|
+
resources.memory = values.memory;
|
|
95
|
+
if (typeof values.storage === "string" && values.storage.length > 0)
|
|
96
|
+
resources.pvcSize = values.storage;
|
|
97
|
+
const dependencies = (Array.isArray(values.dep) ? values.dep : []).filter((d) => typeof d === "string" && d.length > 0);
|
|
98
|
+
const egressAllowed = (Array.isArray(values["egress-allow"]) ? values["egress-allow"] : []).filter((d) => typeof d === "string" && d.length > 0);
|
|
99
|
+
const egressDenied = (Array.isArray(values["egress-deny"]) ? values["egress-deny"] : []).filter((d) => typeof d === "string" && d.length > 0);
|
|
100
|
+
const egressDefaultAllow = values["egress-default-allow"] === true;
|
|
101
|
+
const initScriptRaw = typeof values["init-script"] === "string" ? values["init-script"] : undefined;
|
|
102
|
+
// @file syntax for --init-script: read the script from a file.
|
|
103
|
+
let initScript;
|
|
104
|
+
if (initScriptRaw) {
|
|
105
|
+
if (initScriptRaw.startsWith("@")) {
|
|
106
|
+
const filePath = initScriptRaw.slice(1);
|
|
107
|
+
try {
|
|
108
|
+
initScript = readFileSync(resolve(filePath), "utf-8");
|
|
109
|
+
}
|
|
110
|
+
catch {
|
|
111
|
+
throw new UsageError(`kimchictl workspace create: --init-script: cannot read ${filePath}`);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
initScript = initScriptRaw;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
const hasSpec = Object.keys(resources).length > 0 ||
|
|
119
|
+
dependencies.length > 0 ||
|
|
120
|
+
egressAllowed.length > 0 ||
|
|
121
|
+
egressDenied.length > 0 ||
|
|
122
|
+
egressDefaultAllow ||
|
|
123
|
+
initScript !== undefined;
|
|
124
|
+
// Mutual exclusion: template fields and spec parameters cannot coexist
|
|
125
|
+
// (the API rejects both — proto: "conflicts with spec").
|
|
126
|
+
if ((templateName || templateId) && hasSpec) {
|
|
127
|
+
throw new UsageError("kimchictl workspace create: --template and spec flags (--cpu, --memory, --storage, --dep, --egress-*, --init-script) are mutually exclusive — a template provides these values");
|
|
128
|
+
}
|
|
129
|
+
if (templateName && templateId) {
|
|
130
|
+
throw new UsageError("kimchictl workspace create: --template and --template-id are mutually exclusive");
|
|
131
|
+
}
|
|
132
|
+
const spec = hasSpec
|
|
133
|
+
? {
|
|
134
|
+
...(Object.keys(resources).length > 0 ? { resources } : {}),
|
|
135
|
+
...(dependencies.length > 0 ? { dependencies } : {}),
|
|
136
|
+
...(egressAllowed.length > 0 || egressDenied.length > 0 || egressDefaultAllow
|
|
137
|
+
? {
|
|
138
|
+
egressPolicy: {
|
|
139
|
+
...(egressDefaultAllow ? { denyByDefault: false } : {}),
|
|
140
|
+
...(egressAllowed.length > 0 ? { allowed: egressAllowed } : {}),
|
|
141
|
+
...(egressDenied.length > 0 ? { denied: egressDenied } : {}),
|
|
142
|
+
},
|
|
143
|
+
}
|
|
144
|
+
: {}),
|
|
145
|
+
...(initScript !== undefined ? { initScript } : {}),
|
|
146
|
+
}
|
|
147
|
+
: undefined;
|
|
70
148
|
const { key } = requireApiKey(deps.env);
|
|
71
149
|
const sleep = deps.sleep ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms)));
|
|
72
|
-
const created = await createWorkspace(key, {
|
|
150
|
+
const created = await createWorkspace(key, {
|
|
151
|
+
description: desc,
|
|
152
|
+
templateName,
|
|
153
|
+
templateId,
|
|
154
|
+
spec,
|
|
155
|
+
fetch: deps.fetch,
|
|
156
|
+
});
|
|
73
157
|
// Success-path info goes to stdout (terminals that color stderr red made
|
|
74
158
|
// this look like an error); only warnings and the transient progress
|
|
75
159
|
// spinner stay on stderr.
|
|
@@ -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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"}
|
package/dist/version.d.ts
CHANGED
package/dist/version.js
CHANGED
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.
|
|
5
|
+
"version": "0.0.7",
|
|
6
6
|
"description": "Create and connect to kimchi remote workspaces from the terminal.",
|
|
7
7
|
"keywords": [
|
|
8
8
|
"kimchi",
|
package/src/api/workspaces.ts
CHANGED
|
@@ -121,29 +121,89 @@ export async function getWorkspace(apiKey: string, id: string, options?: Workspa
|
|
|
121
121
|
return mapWorkspace(data, endpoint)
|
|
122
122
|
}
|
|
123
123
|
|
|
124
|
+
/**
|
|
125
|
+
* Create-time workspace parameters (mirrors the WorkspaceSpec proto).
|
|
126
|
+
* Set either template fields or spec fields — never both.
|
|
127
|
+
*/
|
|
128
|
+
export interface CreateWorkspaceSpec {
|
|
129
|
+
resources?: {
|
|
130
|
+
/** CPU request as a k8s quantity string, e.g. "500m", "2". */
|
|
131
|
+
cpu?: string
|
|
132
|
+
/** Memory request as a k8s quantity string, e.g. "1Gi", "512Mi". */
|
|
133
|
+
memory?: string
|
|
134
|
+
/** PVC size as a k8s quantity string, e.g. "20Gi". */
|
|
135
|
+
pvcSize?: string
|
|
136
|
+
}
|
|
137
|
+
/** CLI tools to install at boot, e.g. ["jq", "node@22"]. */
|
|
138
|
+
dependencies?: string[]
|
|
139
|
+
egressPolicy?: {
|
|
140
|
+
denyByDefault?: boolean
|
|
141
|
+
allowed?: string[]
|
|
142
|
+
denied?: string[]
|
|
143
|
+
}
|
|
144
|
+
/** Shell script executed at boot after dependency installation. */
|
|
145
|
+
initScript?: string
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
export interface CreateWorkspaceOptions extends WorkspaceCommandOptions {
|
|
149
|
+
description?: string
|
|
150
|
+
templateName?: string
|
|
151
|
+
templateId?: string
|
|
152
|
+
spec?: CreateWorkspaceSpec
|
|
153
|
+
}
|
|
154
|
+
|
|
124
155
|
/**
|
|
125
156
|
* Create a workspace. Server generates the alias (like kap) — there is no
|
|
126
|
-
* client-side name input.
|
|
127
|
-
*
|
|
157
|
+
* client-side name input. Set either template fields (templateName or
|
|
158
|
+
* templateId) or explicit spec parameters, never both (the API rejects
|
|
159
|
+
* both — proto: "conflicts with spec: set either template fields or
|
|
160
|
+
* explicit parameters, never both"). Returns the created workspace
|
|
161
|
+
* (status likely "initializing"; callers may poll getWorkspace until
|
|
162
|
+
* "active").
|
|
128
163
|
*/
|
|
129
|
-
export async function createWorkspace(
|
|
130
|
-
apiKey: string,
|
|
131
|
-
options: WorkspaceCommandOptions & { description?: string },
|
|
132
|
-
): Promise<Workspace> {
|
|
164
|
+
export async function createWorkspace(apiKey: string, options: CreateWorkspaceOptions): Promise<Workspace> {
|
|
133
165
|
const fetchImpl = options?.fetch ?? globalThis.fetch
|
|
134
166
|
const endpoint = resolveEndpoint(options)
|
|
135
167
|
const orgId = await resolveOrgId(apiKey, options)
|
|
136
168
|
|
|
169
|
+
// Build the request body — the Workspace message (gRPC-gateway body: "workspace").
|
|
170
|
+
// gRPC-gateway maps proto field names to camelCase JSON keys.
|
|
171
|
+
const body: Record<string, unknown> = {
|
|
172
|
+
clientType: HARNESS_CLIENT_TYPE,
|
|
173
|
+
}
|
|
174
|
+
if (options.description) body.description = options.description
|
|
175
|
+
if (options.templateName) body.templateName = options.templateName
|
|
176
|
+
if (options.templateId) body.templateId = options.templateId
|
|
177
|
+
|
|
178
|
+
const spec = options.spec
|
|
179
|
+
if (spec) {
|
|
180
|
+
const specBody: Record<string, unknown> = {}
|
|
181
|
+
if (spec.resources) {
|
|
182
|
+
const res: Record<string, string> = {}
|
|
183
|
+
if (spec.resources.cpu) res.cpu = spec.resources.cpu
|
|
184
|
+
if (spec.resources.memory) res.memory = spec.resources.memory
|
|
185
|
+
if (spec.resources.pvcSize) res.pvcSize = spec.resources.pvcSize
|
|
186
|
+
if (Object.keys(res).length > 0) specBody.resources = res
|
|
187
|
+
}
|
|
188
|
+
if (spec.dependencies && spec.dependencies.length > 0) specBody.dependencies = spec.dependencies
|
|
189
|
+
if (spec.egressPolicy) {
|
|
190
|
+
const eg: Record<string, unknown> = {}
|
|
191
|
+
if (spec.egressPolicy.denyByDefault !== undefined) eg.denyByDefault = spec.egressPolicy.denyByDefault
|
|
192
|
+
if (spec.egressPolicy.allowed && spec.egressPolicy.allowed.length > 0) eg.allowed = spec.egressPolicy.allowed
|
|
193
|
+
if (spec.egressPolicy.denied && spec.egressPolicy.denied.length > 0) eg.denied = spec.egressPolicy.denied
|
|
194
|
+
if (Object.keys(eg).length > 0) specBody.egressPolicy = eg
|
|
195
|
+
}
|
|
196
|
+
if (spec.initScript) specBody.initScript = spec.initScript
|
|
197
|
+
if (Object.keys(specBody).length > 0) body.spec = specBody
|
|
198
|
+
}
|
|
199
|
+
|
|
137
200
|
const url = `${endpoint}/ai-optimizer/v1beta/organizations/${encodeURIComponent(orgId)}/workspaces`
|
|
138
201
|
const resp = await fetchWithTimeout(
|
|
139
202
|
url,
|
|
140
203
|
{
|
|
141
204
|
method: "POST",
|
|
142
205
|
headers: { Authorization: `Bearer ${apiKey}`, "Content-Type": "application/json" },
|
|
143
|
-
body: JSON.stringify(
|
|
144
|
-
...(options.description ? { description: options.description } : {}),
|
|
145
|
-
clientType: HARNESS_CLIENT_TYPE,
|
|
146
|
-
}),
|
|
206
|
+
body: JSON.stringify(body),
|
|
147
207
|
},
|
|
148
208
|
fetchImpl,
|
|
149
209
|
30_000,
|
package/src/commands/flags.ts
CHANGED
|
@@ -8,7 +8,7 @@ export class UsageError extends Error {
|
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
export type FlagValues = Record<string, string | boolean | undefined>
|
|
11
|
+
export type FlagValues = Record<string, string | boolean | string[] | boolean[] | undefined>
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* Strict flag parsing with a uniform usage-error shape across commands.
|
package/src/commands/guard.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { AmbiguousWorkspaceError, WorkspaceNotFoundError } from "../api/resolver.js"
|
|
2
|
-
import { TemplatesUnavailableError } from "../api/templates.js"
|
|
3
2
|
import { RemoteAuthError, RemoteNetworkError } from "../api/types.js"
|
|
4
3
|
import { ModelsFetchError } from "../auth/models-providers.js"
|
|
5
4
|
import { NotLoggedInError } from "../auth/resolve.js"
|
|
@@ -28,7 +27,6 @@ export function guardCommand<TDeps>(
|
|
|
28
27
|
if (
|
|
29
28
|
err instanceof NotLoggedInError ||
|
|
30
29
|
err instanceof ModelsFetchError ||
|
|
31
|
-
err instanceof TemplatesUnavailableError ||
|
|
32
30
|
err instanceof WorkspaceNotFoundError ||
|
|
33
31
|
err instanceof AmbiguousWorkspaceError ||
|
|
34
32
|
err instanceof BridgeError ||
|
|
@@ -198,11 +198,88 @@ describe("kimchictl workspace create", () => {
|
|
|
198
198
|
expect(lines[lines.length - 1]).toBe("bright-oak-otter")
|
|
199
199
|
})
|
|
200
200
|
|
|
201
|
-
it("--template
|
|
202
|
-
|
|
201
|
+
it("--template conflicts with spec flags (usage error)", async () => {
|
|
202
|
+
for (const specFlag of [
|
|
203
|
+
["--cpu", "2"],
|
|
204
|
+
["--memory", "4Gi"],
|
|
205
|
+
["--storage", "20Gi"],
|
|
206
|
+
["--dep", "jq"],
|
|
207
|
+
["--egress-allow", "*.example.com"],
|
|
208
|
+
["--init-script", "echo hi"],
|
|
209
|
+
]) {
|
|
210
|
+
const { code, errors } = await run(["create", "--template", "node", ...specFlag], apiFetch([]))
|
|
211
|
+
expect(code).toBe(2)
|
|
212
|
+
expect(errors.some((e) => e.includes("mutually exclusive"))).toBe(true)
|
|
213
|
+
}
|
|
214
|
+
})
|
|
203
215
|
|
|
204
|
-
|
|
205
|
-
|
|
216
|
+
it("--template and --template-id conflict (usage error)", async () => {
|
|
217
|
+
const { code, errors } = await run(
|
|
218
|
+
["create", "--template", "node", "--template-id", "11111111-2222-3333-4444-555555555555"],
|
|
219
|
+
apiFetch([]),
|
|
220
|
+
)
|
|
221
|
+
expect(code).toBe(2)
|
|
222
|
+
expect(errors.some((e) => e.includes("--template and --template-id"))).toBe(true)
|
|
223
|
+
})
|
|
224
|
+
|
|
225
|
+
it("sends templateName to the API", async () => {
|
|
226
|
+
const calls: { body?: unknown }[] = []
|
|
227
|
+
const rawFetch = stubFetch(async (url, init) => {
|
|
228
|
+
if (url.endsWith("workspace-tokens:verifyKey")) return jsonResponse({ organizationId: "org-1" })
|
|
229
|
+
if (url.endsWith("/workspaces") && init?.method === "POST") {
|
|
230
|
+
calls.push({ body: JSON.parse(String(init.body)) })
|
|
231
|
+
return jsonResponse(wsJson({ status: "ACTIVE" }))
|
|
232
|
+
}
|
|
233
|
+
throw new Error(`unexpected: ${init?.method ?? "GET"} ${url}`)
|
|
234
|
+
})
|
|
235
|
+
|
|
236
|
+
await run(["create", "--template", "rust", "--no-wait"], rawFetch as typeof globalThis.fetch)
|
|
237
|
+
|
|
238
|
+
expect(calls[0]?.body).toMatchObject({
|
|
239
|
+
templateName: "rust",
|
|
240
|
+
clientType: "harness",
|
|
241
|
+
})
|
|
242
|
+
})
|
|
243
|
+
|
|
244
|
+
it("sends spec fields to the API", async () => {
|
|
245
|
+
const calls: { body?: unknown }[] = []
|
|
246
|
+
const rawFetch = stubFetch(async (url, init) => {
|
|
247
|
+
if (url.endsWith("workspace-tokens:verifyKey")) return jsonResponse({ organizationId: "org-1" })
|
|
248
|
+
if (url.endsWith("/workspaces") && init?.method === "POST") {
|
|
249
|
+
calls.push({ body: JSON.parse(String(init.body)) })
|
|
250
|
+
return jsonResponse(wsJson({ status: "ACTIVE" }))
|
|
251
|
+
}
|
|
252
|
+
throw new Error(`unexpected: ${init?.method ?? "GET"} ${url}`)
|
|
253
|
+
})
|
|
254
|
+
|
|
255
|
+
await run(
|
|
256
|
+
[
|
|
257
|
+
"create",
|
|
258
|
+
"--cpu",
|
|
259
|
+
"500m",
|
|
260
|
+
"--memory",
|
|
261
|
+
"2Gi",
|
|
262
|
+
"--storage",
|
|
263
|
+
"10Gi",
|
|
264
|
+
"--dep",
|
|
265
|
+
"jq",
|
|
266
|
+
"--dep",
|
|
267
|
+
"node@22",
|
|
268
|
+
"--egress-allow",
|
|
269
|
+
"*.example.com",
|
|
270
|
+
"--egress-default-allow",
|
|
271
|
+
"--no-wait",
|
|
272
|
+
],
|
|
273
|
+
rawFetch as typeof globalThis.fetch,
|
|
274
|
+
)
|
|
275
|
+
|
|
276
|
+
expect(calls[0]?.body).toMatchObject({
|
|
277
|
+
spec: {
|
|
278
|
+
resources: { cpu: "500m", memory: "2Gi", pvcSize: "10Gi" },
|
|
279
|
+
dependencies: ["jq", "node@22"],
|
|
280
|
+
egressPolicy: { denyByDefault: false, allowed: ["*.example.com"] },
|
|
281
|
+
},
|
|
282
|
+
})
|
|
206
283
|
})
|
|
207
284
|
|
|
208
285
|
it("rejects positional arguments and bad timeouts as usage errors", async () => {
|
|
@@ -1,8 +1,15 @@
|
|
|
1
|
+
import { readFileSync } from "node:fs"
|
|
2
|
+
import { resolve } from "node:path"
|
|
1
3
|
import { resolveWorkspace } from "../api/resolver.js"
|
|
2
4
|
import { formatAge, formatBytes, formatMillicores } from "../api/resources.js"
|
|
3
|
-
import { resolveTemplate } from "../api/templates.js"
|
|
4
5
|
import { waitForWorkspaceActive } from "../api/wait.js"
|
|
5
|
-
import {
|
|
6
|
+
import {
|
|
7
|
+
type CreateWorkspaceSpec,
|
|
8
|
+
createWorkspace,
|
|
9
|
+
deleteWorkspace,
|
|
10
|
+
listWorkspaces,
|
|
11
|
+
type Workspace,
|
|
12
|
+
} from "../api/workspaces.js"
|
|
6
13
|
import { requireApiKey } from "../auth/resolve.js"
|
|
7
14
|
import { resolveSshDomain } from "../ssh/config.js"
|
|
8
15
|
import { parseFlags, UsageError } from "./flags.js"
|
|
@@ -34,6 +41,21 @@ Verbs:
|
|
|
34
41
|
get Show workspace details
|
|
35
42
|
delete Delete a workspace (alias: rm)
|
|
36
43
|
|
|
44
|
+
Create options:
|
|
45
|
+
--desc <text> Description
|
|
46
|
+
--template <name> Workspace template (conflicts with spec flags)
|
|
47
|
+
--template-id <uuid> Template ID (alternative to --template)
|
|
48
|
+
--cpu <qty> CPU request (e.g. "500m", "2")
|
|
49
|
+
--memory <qty> Memory request (e.g. "1Gi", "512Mi")
|
|
50
|
+
--storage <qty> PVC size (e.g. "20Gi")
|
|
51
|
+
--dep <tool> CLI tool to install (repeatable, e.g. --dep jq --dep node@22)
|
|
52
|
+
--egress-allow <dest> Allow egress destination (repeatable)
|
|
53
|
+
--egress-deny <dest> Deny egress destination (repeatable)
|
|
54
|
+
--egress-default-allow Default-allow egress (instead of deny-by-default)
|
|
55
|
+
--init-script <script> Boot script (or @file to read from file)
|
|
56
|
+
--no-wait Skip waiting for ACTIVE
|
|
57
|
+
--timeout <seconds> Wait timeout (default 60)
|
|
58
|
+
|
|
37
59
|
Options:
|
|
38
60
|
--help Show this help`
|
|
39
61
|
|
|
@@ -70,6 +92,15 @@ async function runCreate(args: string[], deps: WorkspaceDeps): Promise<number> {
|
|
|
70
92
|
const { values, positionals } = parseFlags("workspace create", args, {
|
|
71
93
|
desc: { type: "string" },
|
|
72
94
|
template: { type: "string", short: "t" },
|
|
95
|
+
"template-id": { type: "string" },
|
|
96
|
+
cpu: { type: "string" },
|
|
97
|
+
memory: { type: "string" },
|
|
98
|
+
storage: { type: "string" },
|
|
99
|
+
dep: { type: "string", multiple: true },
|
|
100
|
+
"egress-allow": { type: "string", multiple: true },
|
|
101
|
+
"egress-deny": { type: "string", multiple: true },
|
|
102
|
+
"egress-default-allow": { type: "boolean" },
|
|
103
|
+
"init-script": { type: "string" },
|
|
73
104
|
"no-wait": { type: "boolean" },
|
|
74
105
|
timeout: { type: "string", default: "60" },
|
|
75
106
|
})
|
|
@@ -79,22 +110,92 @@ async function runCreate(args: string[], deps: WorkspaceDeps): Promise<number> {
|
|
|
79
110
|
)
|
|
80
111
|
}
|
|
81
112
|
|
|
82
|
-
const
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
113
|
+
const timeoutSeconds = parseTimeoutSeconds(values.timeout, "workspace create")
|
|
114
|
+
const desc = typeof values.desc === "string" && values.desc.length > 0 ? values.desc : undefined
|
|
115
|
+
|
|
116
|
+
const templateName = typeof values.template === "string" && values.template.length > 0 ? values.template : undefined
|
|
117
|
+
const templateId =
|
|
118
|
+
typeof values["template-id"] === "string" && values["template-id"].length > 0 ? values["template-id"] : undefined
|
|
119
|
+
|
|
120
|
+
// Collect explicit spec parameters from the flags.
|
|
121
|
+
const resources: { cpu?: string; memory?: string; pvcSize?: string } = {}
|
|
122
|
+
if (typeof values.cpu === "string" && values.cpu.length > 0) resources.cpu = values.cpu
|
|
123
|
+
if (typeof values.memory === "string" && values.memory.length > 0) resources.memory = values.memory
|
|
124
|
+
if (typeof values.storage === "string" && values.storage.length > 0) resources.pvcSize = values.storage
|
|
125
|
+
|
|
126
|
+
const dependencies = (Array.isArray(values.dep) ? values.dep : []).filter(
|
|
127
|
+
(d): d is string => typeof d === "string" && d.length > 0,
|
|
128
|
+
)
|
|
129
|
+
const egressAllowed = (Array.isArray(values["egress-allow"]) ? values["egress-allow"] : []).filter(
|
|
130
|
+
(d): d is string => typeof d === "string" && d.length > 0,
|
|
131
|
+
)
|
|
132
|
+
const egressDenied = (Array.isArray(values["egress-deny"]) ? values["egress-deny"] : []).filter(
|
|
133
|
+
(d): d is string => typeof d === "string" && d.length > 0,
|
|
134
|
+
)
|
|
135
|
+
const egressDefaultAllow = values["egress-default-allow"] === true
|
|
136
|
+
const initScriptRaw = typeof values["init-script"] === "string" ? values["init-script"] : undefined
|
|
137
|
+
|
|
138
|
+
// @file syntax for --init-script: read the script from a file.
|
|
139
|
+
let initScript: string | undefined
|
|
140
|
+
if (initScriptRaw) {
|
|
141
|
+
if (initScriptRaw.startsWith("@")) {
|
|
142
|
+
const filePath = initScriptRaw.slice(1)
|
|
143
|
+
try {
|
|
144
|
+
initScript = readFileSync(resolve(filePath), "utf-8")
|
|
145
|
+
} catch {
|
|
146
|
+
throw new UsageError(`kimchictl workspace create: --init-script: cannot read ${filePath}`)
|
|
147
|
+
}
|
|
148
|
+
} else {
|
|
149
|
+
initScript = initScriptRaw
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
const hasSpec =
|
|
154
|
+
Object.keys(resources).length > 0 ||
|
|
155
|
+
dependencies.length > 0 ||
|
|
156
|
+
egressAllowed.length > 0 ||
|
|
157
|
+
egressDenied.length > 0 ||
|
|
158
|
+
egressDefaultAllow ||
|
|
159
|
+
initScript !== undefined
|
|
160
|
+
|
|
161
|
+
// Mutual exclusion: template fields and spec parameters cannot coexist
|
|
162
|
+
// (the API rejects both — proto: "conflicts with spec").
|
|
163
|
+
if ((templateName || templateId) && hasSpec) {
|
|
164
|
+
throw new UsageError(
|
|
165
|
+
"kimchictl workspace create: --template and spec flags (--cpu, --memory, --storage, --dep, --egress-*, --init-script) are mutually exclusive — a template provides these values",
|
|
166
|
+
)
|
|
86
167
|
}
|
|
87
|
-
if (
|
|
88
|
-
throw new UsageError("kimchictl workspace create: --template
|
|
168
|
+
if (templateName && templateId) {
|
|
169
|
+
throw new UsageError("kimchictl workspace create: --template and --template-id are mutually exclusive")
|
|
89
170
|
}
|
|
90
171
|
|
|
91
|
-
const
|
|
92
|
-
|
|
172
|
+
const spec: CreateWorkspaceSpec | undefined = hasSpec
|
|
173
|
+
? {
|
|
174
|
+
...(Object.keys(resources).length > 0 ? { resources } : {}),
|
|
175
|
+
...(dependencies.length > 0 ? { dependencies } : {}),
|
|
176
|
+
...(egressAllowed.length > 0 || egressDenied.length > 0 || egressDefaultAllow
|
|
177
|
+
? {
|
|
178
|
+
egressPolicy: {
|
|
179
|
+
...(egressDefaultAllow ? { denyByDefault: false } : {}),
|
|
180
|
+
...(egressAllowed.length > 0 ? { allowed: egressAllowed } : {}),
|
|
181
|
+
...(egressDenied.length > 0 ? { denied: egressDenied } : {}),
|
|
182
|
+
},
|
|
183
|
+
}
|
|
184
|
+
: {}),
|
|
185
|
+
...(initScript !== undefined ? { initScript } : {}),
|
|
186
|
+
}
|
|
187
|
+
: undefined
|
|
93
188
|
|
|
94
189
|
const { key } = requireApiKey(deps.env)
|
|
95
190
|
const sleep = deps.sleep ?? ((ms: number) => new Promise((resolve) => setTimeout(resolve, ms)))
|
|
96
191
|
|
|
97
|
-
const created = await createWorkspace(key, {
|
|
192
|
+
const created = await createWorkspace(key, {
|
|
193
|
+
description: desc,
|
|
194
|
+
templateName,
|
|
195
|
+
templateId,
|
|
196
|
+
spec,
|
|
197
|
+
fetch: deps.fetch,
|
|
198
|
+
})
|
|
98
199
|
// Success-path info goes to stdout (terminals that color stderr red made
|
|
99
200
|
// this look like an error); only warnings and the transient progress
|
|
100
201
|
// spinner stay on stderr.
|
package/src/version.ts
CHANGED
package/dist/api/templates.d.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Server-side workspace templates — PLACEHOLDER.
|
|
3
|
-
*
|
|
4
|
-
* Templates are created and stored in the API (they are not local files).
|
|
5
|
-
* The API contract is being finalised server-side; until it lands,
|
|
6
|
-
* `workspace create --template <name>` is accepted at the CLI and fails here
|
|
7
|
-
* with a graceful, actionable error instead of a 4xx surprise.
|
|
8
|
-
*/
|
|
9
|
-
export declare class TemplatesUnavailableError extends Error {
|
|
10
|
-
constructor(templateName: string);
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Resolve a template name to its create-time parameters.
|
|
14
|
-
*
|
|
15
|
-
* TODO(templates-api): replace with the real call once the contract lands —
|
|
16
|
-
* expected to return resources/dependencies applied at create time.
|
|
17
|
-
*/
|
|
18
|
-
export declare function resolveTemplate(templateName: string): never;
|
|
19
|
-
//# sourceMappingURL=templates.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"templates.d.ts","sourceRoot":"../src/","sources":["api/templates.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,qBAAa,yBAA0B,SAAQ,KAAK;gBACvC,YAAY,EAAE,MAAM;CAOhC;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,KAAK,CAE3D"}
|
package/dist/api/templates.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Server-side workspace templates — PLACEHOLDER.
|
|
3
|
-
*
|
|
4
|
-
* Templates are created and stored in the API (they are not local files).
|
|
5
|
-
* The API contract is being finalised server-side; until it lands,
|
|
6
|
-
* `workspace create --template <name>` is accepted at the CLI and fails here
|
|
7
|
-
* with a graceful, actionable error instead of a 4xx surprise.
|
|
8
|
-
*/
|
|
9
|
-
export class TemplatesUnavailableError extends Error {
|
|
10
|
-
constructor(templateName) {
|
|
11
|
-
super(`Workspace templates are not available yet (requested "${templateName}") — ` +
|
|
12
|
-
`the templates API is being finalised. Omit --template for now.`);
|
|
13
|
-
this.name = "TemplatesUnavailableError";
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Resolve a template name to its create-time parameters.
|
|
18
|
-
*
|
|
19
|
-
* TODO(templates-api): replace with the real call once the contract lands —
|
|
20
|
-
* expected to return resources/dependencies applied at create time.
|
|
21
|
-
*/
|
|
22
|
-
export function resolveTemplate(templateName) {
|
|
23
|
-
throw new TemplatesUnavailableError(templateName);
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=templates.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"templates.js","sourceRoot":"../src/","sources":["api/templates.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IACnD,YAAY,YAAoB;QAC/B,KAAK,CACJ,yDAAyD,YAAY,OAAO;YAC3E,gEAAgE,CACjE,CAAA;QACD,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAA;IACxC,CAAC;CACD;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,YAAoB;IACnD,MAAM,IAAI,yBAAyB,CAAC,YAAY,CAAC,CAAA;AAClD,CAAC"}
|
package/src/api/templates.ts
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Server-side workspace templates — PLACEHOLDER.
|
|
3
|
-
*
|
|
4
|
-
* Templates are created and stored in the API (they are not local files).
|
|
5
|
-
* The API contract is being finalised server-side; until it lands,
|
|
6
|
-
* `workspace create --template <name>` is accepted at the CLI and fails here
|
|
7
|
-
* with a graceful, actionable error instead of a 4xx surprise.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
export class TemplatesUnavailableError extends Error {
|
|
11
|
-
constructor(templateName: string) {
|
|
12
|
-
super(
|
|
13
|
-
`Workspace templates are not available yet (requested "${templateName}") — ` +
|
|
14
|
-
`the templates API is being finalised. Omit --template for now.`,
|
|
15
|
-
)
|
|
16
|
-
this.name = "TemplatesUnavailableError"
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Resolve a template name to its create-time parameters.
|
|
22
|
-
*
|
|
23
|
-
* TODO(templates-api): replace with the real call once the contract lands —
|
|
24
|
-
* expected to return resources/dependencies applied at create time.
|
|
25
|
-
*/
|
|
26
|
-
export function resolveTemplate(templateName: string): never {
|
|
27
|
-
throw new TemplatesUnavailableError(templateName)
|
|
28
|
-
}
|