@kimchi-dev/kimchictl 0.0.9 → 0.0.11

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.
@@ -41,6 +41,13 @@ export declare class TemplateNotFoundError extends Error {
41
41
  export declare class AmbiguousTemplateError extends Error {
42
42
  constructor(ref: string, candidates: string[]);
43
43
  }
44
+ /** Input shape for creating a template — a subset of WorkspaceTemplate. */
45
+ export interface CreateTemplateInput {
46
+ name: string;
47
+ description?: string;
48
+ spec?: WorkspaceTemplateSpec;
49
+ }
50
+ export declare function createWorkspaceTemplate(apiKey: string, input: CreateTemplateInput, options?: WorkspaceTemplateOptions): Promise<WorkspaceTemplate>;
44
51
  export declare function listWorkspaceTemplates(apiKey: string, options?: WorkspaceTemplateOptions): Promise<WorkspaceTemplate[]>;
45
52
  export declare function getWorkspaceTemplate(apiKey: string, id: string, options?: WorkspaceTemplateOptions): Promise<WorkspaceTemplate>;
46
53
  //# sourceMappingURL=templates.d.ts.map
@@ -1 +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"}
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,2EAA2E;AAC3E,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,qBAAqB,CAAA;CAC5B;AAED,wBAAsB,uBAAuB,CAC5C,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,mBAAmB,EAC1B,OAAO,CAAC,EAAE,wBAAwB,GAChC,OAAO,CAAC,iBAAiB,CAAC,CAyB5B;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"}
@@ -16,6 +16,25 @@ export class AmbiguousTemplateError extends Error {
16
16
  this.name = "AmbiguousTemplateError";
17
17
  }
18
18
  }
19
+ export async function createWorkspaceTemplate(apiKey, input, options) {
20
+ const fetchImpl = options?.fetch ?? globalThis.fetch;
21
+ const endpoint = resolveEndpoint(options);
22
+ const orgId = await resolveOrgId(apiKey, options);
23
+ const body = { name: input.name };
24
+ if (input.description)
25
+ body.description = input.description;
26
+ if (input.spec)
27
+ body.spec = input.spec;
28
+ const url = `${endpoint}/ai-optimizer/v1beta/organizations/${encodeURIComponent(orgId)}/workspace-templates`;
29
+ const resp = await fetchWithTimeout(url, {
30
+ method: "POST",
31
+ headers: { Authorization: `Bearer ${apiKey}`, "Content-Type": "application/json" },
32
+ body: JSON.stringify(body),
33
+ }, fetchImpl, 30_000, options?.signal);
34
+ await checkResponse(resp, url);
35
+ const data = await resp.json().catch(() => undefined);
36
+ return mapWorkspaceTemplate(data, endpoint);
37
+ }
19
38
  export async function listWorkspaceTemplates(apiKey, options) {
20
39
  const fetchImpl = options?.fetch ?? globalThis.fetch;
21
40
  const endpoint = resolveEndpoint(options);
@@ -1 +1 @@
1
- {"version":3,"file":"templates.js","sourceRoot":"../src/","sources":["api/templates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"templates.js","sourceRoot":"../src/","sources":["api/templates.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,8 @@ export declare class UsageError extends Error {
6
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
+ * `--help` and `-h` are always accepted (boolean); callers check
10
+ * `values.help` to print their verb-specific usage before doing any work.
9
11
  * Values keep their raw type (declared options are TypeScript-blind here —
10
12
  * narrow at the call site, relying on the declared option `type`).
11
13
  */
@@ -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,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
+ {"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;;;;;;GAMG;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,CAW/C"}
@@ -8,12 +8,18 @@ export class UsageError extends Error {
8
8
  }
9
9
  /**
10
10
  * Strict flag parsing with a uniform usage-error shape across commands.
11
+ * `--help` and `-h` are always accepted (boolean); callers check
12
+ * `values.help` to print their verb-specific usage before doing any work.
11
13
  * Values keep their raw type (declared options are TypeScript-blind here —
12
14
  * narrow at the call site, relying on the declared option `type`).
13
15
  */
14
16
  export function parseFlags(command, args, options) {
17
+ const withHelp = {
18
+ help: { type: "boolean", short: "h" },
19
+ ...options,
20
+ };
15
21
  try {
16
- const parsed = parseArgs({ args, options, strict: true, allowPositionals: true });
22
+ const parsed = parseArgs({ args, options: withHelp, strict: true, allowPositionals: true });
17
23
  return { values: parsed.values, positionals: parsed.positionals };
18
24
  }
19
25
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"flags.js","sourceRoot":"../src/","sources":["commands/flags.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,SAAS,EAAE,MAAM,WAAW,CAAA;AAElE,qFAAqF;AACrF,MAAM,OAAO,UAAW,SAAQ,KAAK;IACpC,YAAY,OAAe;QAC1B,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,YAAY,CAAA;IACzB,CAAC;CACD;AAID;;;;GAIG;AACH,MAAM,UAAU,UAAU,CACzB,OAAe,EACf,IAAc,EACd,OAA+B;IAE/B,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAA;QACjF,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAoB,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAA;IAChF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,MAAM,IAAI,UAAU,CAAC,aAAa,OAAO,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAClG,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"flags.js","sourceRoot":"../src/","sources":["commands/flags.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,SAAS,EAAE,MAAM,WAAW,CAAA;AAElE,qFAAqF;AACrF,MAAM,OAAO,UAAW,SAAQ,KAAK;IACpC,YAAY,OAAe;QAC1B,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,YAAY,CAAA;IACzB,CAAC;CACD;AAID;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CACzB,OAAe,EACf,IAAc,EACd,OAA+B;IAE/B,MAAM,QAAQ,GAA2B;QACxC,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE;QACrC,GAAG,OAAO;KACV,CAAA;IACD,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAA;QAC3F,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAoB,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAA;IAChF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,MAAM,IAAI,UAAU,CAAC,aAAa,OAAO,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAClG,CAAC;AACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ssh.d.ts","sourceRoot":"../src/","sources":["commands/ssh.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,OAAO;IACvB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;IACvB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,yBAAyB;IACzB,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,MAAM,CAAA;IACjC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACrC;AAMD;;;;GAIG;AACH,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,GAAE,OAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAkBhF;AA+DD,mEAAmE;AACnE,eAAO,MAAM,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,MAAM,CAAwB,CAAA"}
1
+ {"version":3,"file":"ssh.d.ts","sourceRoot":"../src/","sources":["commands/ssh.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,OAAO;IACvB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;IACvB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,yBAAyB;IACzB,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,MAAM,CAAA;IACjC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACrC;AAMD;;;;GAIG;AACH,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,GAAE,OAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAkBhF;AAkFD,mEAAmE;AACnE,eAAO,MAAM,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,MAAM,CAAwB,CAAA"}
@@ -39,6 +39,16 @@ async function runSetup(args, deps) {
39
39
  uninstall: { type: "boolean" },
40
40
  domain: { type: "string" },
41
41
  });
42
+ if (values.help) {
43
+ console.log(`Usage:
44
+ kimchictl ssh setup [options]
45
+
46
+ Options:
47
+ --uninstall Remove the SSH integration
48
+ --domain <name> Override the workspace wildcard domain
49
+ --help Show this help`);
50
+ return 0;
51
+ }
42
52
  if (positionals.length > 0) {
43
53
  throw new UsageError("kimchictl ssh setup: unexpected positional argument");
44
54
  }
@@ -73,6 +83,15 @@ async function runProxy(args, deps) {
73
83
  const { values, positionals } = parseFlags("ssh proxy", args, {
74
84
  port: { type: "string", default: "443" },
75
85
  });
86
+ if (values.help) {
87
+ console.log(`Usage:
88
+ kimchictl ssh proxy <host> [options]
89
+
90
+ Options:
91
+ --port <n> WebSocket port (default: 443)
92
+ --help Show this help`);
93
+ return 0;
94
+ }
76
95
  const host = positionals[0];
77
96
  if (!host || positionals.length > 1) {
78
97
  throw new UsageError("kimchictl ssh proxy: expected one host");
@@ -1 +1 @@
1
- {"version":3,"file":"ssh.js","sourceRoot":"../src/","sources":["commands/ssh.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ssh.js","sourceRoot":"../src/","sources":["commands/ssh.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,EACN,0BAA0B,EAC1B,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,uBAAuB,GACvB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAWzC,MAAM,WAAW,GAAG;;wEAEoD,CAAA;AAExE;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAc,EAAE,OAAgB,EAAE;IAC9D,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAA;IAC5B,QAAQ,IAAI,EAAE,CAAC;QACd,KAAK,OAAO;YACX,OAAO,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAC5B,KAAK,OAAO;YACX,OAAO,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAC5B,KAAK,MAAM,CAAC;QACZ,KAAK,QAAQ,CAAC;QACd,KAAK,IAAI;YACR,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;YACxB,OAAO,CAAC,CAAA;QACT,KAAK,SAAS;YACb,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;YAC1B,OAAO,CAAC,CAAA;QACT;YACC,OAAO,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IAC7C,CAAC;AACF,CAAC;AAED,yEAAyE;AAEzE,KAAK,UAAU,QAAQ,CAAC,IAAc,EAAE,IAAa;IACpD,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,UAAU,CAAC,WAAW,EAAE,IAAI,EAAE;QAC7D,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAC9B,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KAC1B,CAAC,CAAA;IACF,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC;;;;;;kCAMoB,CAAC,CAAA;QACjC,OAAO,CAAC,CAAA;IACT,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,UAAU,CAAC,qDAAqD,CAAC,CAAA;IAC5E,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAA;IACnC,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,CAAA;IAElC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACtB,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,uBAAuB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;QAC1D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAA;YACtE,OAAO,CAAC,CAAA;QACT,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAA;QACxC,KAAK,MAAM,IAAI,IAAI,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAA;QAClD,OAAO,CAAC,CAAA;IACT,CAAC;IAED,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;IACpH,IAAI,MAAM,0BAA0B,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,4CAA4C,MAAM,0CAA0C,CAAC,CAAA;QACzG,OAAO,CAAC,CAAA;IACT,CAAC;IAED,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,mBAAmB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;IAC9D,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAA;IAC3C,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAA;IAClD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA,CAAC,mCAAmC;IACnD,OAAO,CAAC,GAAG,CAAC,yCAAyC,MAAM,iCAAiC,CAAC,CAAA;IAC7F,OAAO,CAAC,CAAA;AACT,CAAC;AAED,kFAAkF;AAElF,KAAK,UAAU,QAAQ,CAAC,IAAc,EAAE,IAAa;IACpD,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,UAAU,CAAC,WAAW,EAAE,IAAI,EAAE;QAC7D,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE;KACxC,CAAC,CAAA;IACF,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC;;;;;8BAKgB,CAAC,CAAA;QAC7B,OAAO,CAAC,CAAA;IACT,CAAC;IACD,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;IAC3B,IAAI,CAAC,IAAI,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,UAAU,CAAC,wCAAwC,CAAC,CAAA;IAC/D,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAChC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC;QAC1D,MAAM,IAAI,UAAU,CAAC,wDAAwD,CAAC,CAAA;IAC/E,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAA;IACnC,MAAM,EAAE,GAAG,EAAE,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;IAClC,MAAM,YAAY,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;IAC9C,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;IACzE,MAAM,sBAAsB,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAA;IACxE,OAAO,CAAC,CAAA;AACT,CAAC;AAED,mEAAmE;AACnE,MAAM,CAAC,MAAM,GAAG,GAAwD,YAAY,CAAC,MAAM,CAAC,CAAA"}
@@ -1 +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"}
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"../src/","sources":["commands/templates.ts"],"names":[],"mappings":"AAkBA,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;AAoCD,gFAAgF;AAChF,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,GAAE,aAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAuB5F;AAmSD,0FAA0F;AAC1F,eAAO,MAAM,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,aAAa,KAAK,OAAO,CAAC,MAAM,CAA8B,CAAA"}
@@ -1,5 +1,7 @@
1
+ import { readFileSync } from "node:fs";
2
+ import { resolve } from "node:path";
1
3
  import { formatAge, formatBytes, formatMillicores } from "../api/resources.js";
2
- import { AmbiguousTemplateError, getWorkspaceTemplate, listWorkspaceTemplates, TemplateNotFoundError, } from "../api/templates.js";
4
+ import { AmbiguousTemplateError, createWorkspaceTemplate, getWorkspaceTemplate, listWorkspaceTemplates, TemplateNotFoundError, } from "../api/templates.js";
3
5
  import { requireApiKey } from "../auth/resolve.js";
4
6
  import { parseFlags, UsageError } from "./flags.js";
5
7
  import { guardCommand } from "./guard.js";
@@ -8,11 +10,34 @@ const TEMPLATES_USAGE = `Usage:
8
10
  kimchictl templates <verb> [options]
9
11
 
10
12
  Verbs:
11
- list List workspace templates (alias: ls)
12
- get Show template details
13
+ list List workspace templates (alias: ls)
14
+ get Show template details
15
+ create Create a workspace template
13
16
 
14
17
  Options:
15
18
  --help Show this help`;
19
+ const CREATE_USAGE = `Usage:
20
+ kimchictl templates create [options]
21
+
22
+ Create a template from a JSON file or from inline flags (not both).
23
+
24
+ File:
25
+ --file <path> Read the full template from a JSON file
26
+ (same shape as 'templates get --output json')
27
+
28
+ Inline:
29
+ --name <name> Template name (required, immutable, lowercase)
30
+ --desc <text> Description
31
+ --cpu <qty> CPU request (e.g. "500m", "2")
32
+ --memory <qty> Memory request (e.g. "1Gi", "512Mi")
33
+ --storage <qty> PVC size (e.g. "20Gi")
34
+ --dep <tool> CLI tool to install (repeatable, e.g. --dep jq --dep node@22)
35
+ --egress-allow <dest> Allow egress destination (repeatable)
36
+ --egress-deny <dest> Deny egress destination (repeatable)
37
+ --egress-default-allow Default-allow egress (instead of deny-by-default)
38
+ --init-script <script> Boot script (or @file to read from file)
39
+
40
+ --help Show this help`;
16
41
  /** `kimchictl templates <verb> …` — read-only browse of workspace templates. */
17
42
  export async function runTemplates(args, deps = {}) {
18
43
  const [verb, ...rest] = args;
@@ -22,6 +47,8 @@ export async function runTemplates(args, deps = {}) {
22
47
  return runTemplatesList(rest, deps);
23
48
  case "get":
24
49
  return runTemplatesGet(rest, deps);
50
+ case "create":
51
+ return runTemplatesCreate(rest, deps);
25
52
  case "help":
26
53
  case "--help":
27
54
  case "-h":
@@ -40,6 +67,15 @@ async function runTemplatesList(args, deps) {
40
67
  const { values, positionals } = parseFlags("templates list", args, {
41
68
  output: { type: "string", short: "o", default: "table" },
42
69
  });
70
+ if (values.help) {
71
+ console.log(`Usage:
72
+ kimchictl templates list [options]
73
+
74
+ Options:
75
+ --output <format> Output format: table | json (default: table)
76
+ --help Show this help`);
77
+ return 0;
78
+ }
43
79
  if (positionals.length > 0) {
44
80
  throw new UsageError("kimchictl templates list: unexpected positional argument");
45
81
  }
@@ -68,6 +104,15 @@ async function runTemplatesGet(args, deps) {
68
104
  const { values, positionals } = parseFlags("templates get", args, {
69
105
  output: { type: "string", short: "o", default: "text" },
70
106
  });
107
+ if (values.help) {
108
+ console.log(`Usage:
109
+ kimchictl templates get <name-or-id> [options]
110
+
111
+ Options:
112
+ --output <format> Output format: text | json (default: text)
113
+ --help Show this help`);
114
+ return 0;
115
+ }
71
116
  if (positionals.length !== 1) {
72
117
  throw new UsageError("kimchictl templates get: expected exactly one template name or ID");
73
118
  }
@@ -102,6 +147,120 @@ async function runTemplatesGet(args, deps) {
102
147
  }
103
148
  return 0;
104
149
  }
150
+ async function runTemplatesCreate(args, deps) {
151
+ const { values, positionals } = parseFlags("templates create", args, {
152
+ file: { type: "string", short: "f" },
153
+ name: { type: "string" },
154
+ desc: { type: "string" },
155
+ cpu: { type: "string" },
156
+ memory: { type: "string" },
157
+ storage: { type: "string" },
158
+ dep: { type: "string", multiple: true },
159
+ "egress-allow": { type: "string", multiple: true },
160
+ "egress-deny": { type: "string", multiple: true },
161
+ "egress-default-allow": { type: "boolean" },
162
+ "init-script": { type: "string" },
163
+ });
164
+ if (values.help) {
165
+ console.log(CREATE_USAGE);
166
+ return 0;
167
+ }
168
+ if (positionals.length > 0) {
169
+ throw new UsageError("kimchictl templates create: unexpected positional argument");
170
+ }
171
+ let input;
172
+ const file = typeof values.file === "string" && values.file.length > 0 ? values.file : undefined;
173
+ if (file) {
174
+ // --file and inline spec flags are mutually exclusive
175
+ const inlineFlags = [
176
+ "cpu",
177
+ "memory",
178
+ "storage",
179
+ "dep",
180
+ "egress-allow",
181
+ "egress-deny",
182
+ "egress-default-allow",
183
+ "init-script",
184
+ ];
185
+ const usedInline = inlineFlags.some((f) => values[f] !== undefined);
186
+ if (usedInline) {
187
+ throw new UsageError("kimchictl templates create: --file and inline spec flags are mutually exclusive — the file carries the full definition");
188
+ }
189
+ if (typeof values.name === "string" && values.name.length > 0) {
190
+ throw new UsageError("kimchictl templates create: --file and --name are mutually exclusive (the file carries the name)");
191
+ }
192
+ try {
193
+ const raw = JSON.parse(readFileSync(resolve(file), "utf-8"));
194
+ if (typeof raw.name !== "string" || raw.name.length === 0) {
195
+ throw new UsageError(`kimchictl templates create: --file: missing required field "name"`);
196
+ }
197
+ input = raw;
198
+ }
199
+ catch (err) {
200
+ if (err instanceof UsageError)
201
+ throw err;
202
+ throw new UsageError(`kimchictl templates create: --file: ${err instanceof Error ? err.message : String(err)}`);
203
+ }
204
+ }
205
+ else {
206
+ // Inline flags
207
+ const name = typeof values.name === "string" && values.name.length > 0 ? values.name : undefined;
208
+ if (!name) {
209
+ throw new UsageError("kimchictl templates create: --name is required (or use --file)");
210
+ }
211
+ const spec = {};
212
+ const resources = {};
213
+ if (typeof values.cpu === "string" && values.cpu.length > 0)
214
+ resources.cpu = values.cpu;
215
+ if (typeof values.memory === "string" && values.memory.length > 0)
216
+ resources.memory = values.memory;
217
+ if (typeof values.storage === "string" && values.storage.length > 0)
218
+ resources.pvcSize = values.storage;
219
+ if (Object.keys(resources).length > 0)
220
+ spec.resources = resources;
221
+ const dependencies = (Array.isArray(values.dep) ? values.dep : []).filter((d) => typeof d === "string" && d.length > 0);
222
+ if (dependencies.length > 0)
223
+ spec.dependencies = dependencies;
224
+ const egressAllowed = (Array.isArray(values["egress-allow"]) ? values["egress-allow"] : []).filter((d) => typeof d === "string" && d.length > 0);
225
+ const egressDenied = (Array.isArray(values["egress-deny"]) ? values["egress-deny"] : []).filter((d) => typeof d === "string" && d.length > 0);
226
+ const egressDefaultAllow = values["egress-default-allow"] === true;
227
+ if (egressAllowed.length > 0 || egressDenied.length > 0 || egressDefaultAllow) {
228
+ spec.egressPolicy = {
229
+ ...(egressDefaultAllow ? { denyByDefault: false } : {}),
230
+ ...(egressAllowed.length > 0 ? { allowed: egressAllowed } : {}),
231
+ ...(egressDenied.length > 0 ? { denied: egressDenied } : {}),
232
+ };
233
+ }
234
+ const initScriptRaw = typeof values["init-script"] === "string" ? values["init-script"] : undefined;
235
+ if (initScriptRaw) {
236
+ if (initScriptRaw.startsWith("@")) {
237
+ const scriptPath = initScriptRaw.slice(1);
238
+ try {
239
+ spec.initScript = readFileSync(resolve(scriptPath), "utf-8");
240
+ }
241
+ catch {
242
+ throw new UsageError(`kimchictl templates create: --init-script: cannot read ${scriptPath}`);
243
+ }
244
+ }
245
+ else {
246
+ spec.initScript = initScriptRaw;
247
+ }
248
+ }
249
+ input = {
250
+ name,
251
+ description: typeof values.desc === "string" && values.desc.length > 0 ? values.desc : undefined,
252
+ spec: Object.keys(spec).length > 0 ? spec : undefined,
253
+ };
254
+ }
255
+ // Validate the name pattern client-side (must match the proto's validation)
256
+ if (!/^[a-z0-9]([a-z0-9.-]*[a-z0-9])?$/.test(input.name)) {
257
+ throw new UsageError(`kimchictl templates create: name "${input.name}" is invalid — must be lowercase alphanumeric, dots, and dashes (e.g. "rust", "python-django")`);
258
+ }
259
+ const { key } = requireApiKey(deps.env);
260
+ const created = await createWorkspaceTemplate(key, input, { fetch: deps.fetch });
261
+ console.log(`✓ created template ${created.name}`);
262
+ return 0;
263
+ }
105
264
  function renderTemplateCard(template, color, now) {
106
265
  const dimText = (text) => (color ? `\x1b[2m${text}\x1b[0m` : text);
107
266
  const lines = [`${template.name || template.id.slice(0, 12)} ${dimText("template")}`];
@@ -1 +1 @@
1
- {"version":3,"file":"templates.js","sourceRoot":"../src/","sources":["commands/templates.ts"],"names":[],"mappings":"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"}
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;AA6UD;;;;;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;AA+XD;;;;;GAKG;AACH,eAAO,MAAM,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,aAAa,KAAK,OAAO,CAAC,MAAM,CAA8B,CAAA"}
@@ -23,7 +23,7 @@ Create options:
23
23
  --desc <text> Description
24
24
  --template <name> Workspace template (conflicts with spec flags)
25
25
  --template-id <uuid> Template ID (alternative to --template)
26
- --cpu <qty> CPU request (e.g. "500m", "2")
26
+ --cpu <qty> CPU request (e.g. "500m", "2")
27
27
  --memory <qty> Memory request (e.g. "1Gi", "512Mi")
28
28
  --storage <qty> PVC size (e.g. "20Gi")
29
29
  --dep <tool> CLI tool to install (repeatable, e.g. --dep jq --dep node@22)
@@ -63,6 +63,24 @@ export async function runWorkspace(args, deps = {}) {
63
63
  }
64
64
  }
65
65
  // ---------------------------------------------------------------- create
66
+ const CREATE_USAGE = `Usage:
67
+ kimchictl workspace create [options]
68
+
69
+ Options:
70
+ --desc <text> Description
71
+ --template <name> Workspace template (conflicts with spec flags)
72
+ --template-id <uuid> Template ID (alternative to --template)
73
+ --cpu <qty> CPU request (e.g. "500m", "2")
74
+ --memory <qty> Memory request (e.g. "1Gi", "512Mi")
75
+ --storage <qty> PVC size (e.g. "20Gi")
76
+ --dep <tool> CLI tool to install (repeatable, e.g. --dep jq --dep node@22)
77
+ --egress-allow <dest> Allow egress destination (repeatable)
78
+ --egress-deny <dest> Deny egress destination (repeatable)
79
+ --egress-default-allow Default-allow egress (instead of deny-by-default)
80
+ --init-script <script> Boot script (or @file to read from file)
81
+ --no-wait Skip waiting for ACTIVE
82
+ --timeout <seconds> Wait timeout (default 60)
83
+ --help Show this help`;
66
84
  async function runCreate(args, deps) {
67
85
  const { values, positionals } = parseFlags("workspace create", args, {
68
86
  desc: { type: "string" },
@@ -79,6 +97,10 @@ async function runCreate(args, deps) {
79
97
  "no-wait": { type: "boolean" },
80
98
  timeout: { type: "string", default: "60" },
81
99
  });
100
+ if (values.help) {
101
+ console.log(CREATE_USAGE);
102
+ return 0;
103
+ }
82
104
  if (positionals.length > 0) {
83
105
  throw new UsageError("kimchictl workspace create: unexpected positional argument (workspaces are named by the server)");
84
106
  }
@@ -194,6 +216,15 @@ async function runList(args, deps) {
194
216
  const { values, positionals } = parseFlags("workspace list", args, {
195
217
  output: { type: "string", short: "o", default: "table" },
196
218
  });
219
+ if (values.help) {
220
+ console.log(`Usage:
221
+ kimchictl workspace list [options]
222
+
223
+ Options:
224
+ --output <format> Output format: table | json (default: table)
225
+ --help Show this help`);
226
+ return 0;
227
+ }
197
228
  if (positionals.length > 0) {
198
229
  throw new UsageError("kimchictl workspace list: unexpected positional argument");
199
230
  }
@@ -227,6 +258,15 @@ async function runGet(args, deps) {
227
258
  const { values, positionals } = parseFlags("workspace get", args, {
228
259
  output: { type: "string", short: "o", default: "text" },
229
260
  });
261
+ if (values.help) {
262
+ console.log(`Usage:
263
+ kimchictl workspace get <name> [options]
264
+
265
+ Options:
266
+ --output <format> Output format: text | json (default: text)
267
+ --help Show this help`);
268
+ return 0;
269
+ }
230
270
  if (positionals.length !== 1) {
231
271
  throw new UsageError("kimchictl workspace get: expected exactly one workspace name");
232
272
  }
@@ -251,6 +291,15 @@ async function runDelete(args, deps) {
251
291
  const { values, positionals } = parseFlags("workspace delete", args, {
252
292
  force: { type: "boolean", short: "f" },
253
293
  });
294
+ if (values.help) {
295
+ console.log(`Usage:
296
+ kimchictl workspace delete <name> [options]
297
+
298
+ Options:
299
+ --force, -f Skip the confirmation prompt
300
+ --help Show this help`);
301
+ return 0;
302
+ }
254
303
  if (positionals.length !== 1) {
255
304
  throw new UsageError("kimchictl workspace delete: expected exactly one workspace name");
256
305
  }
@@ -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
@@ -3,5 +3,5 @@
3
3
  * version over this constant at build time; the committed value stays a
4
4
  * sentinel so source checkouts are recognizable.
5
5
  */
6
- export declare const VERSION = "0.0.9";
6
+ export declare const VERSION = "0.0.11";
7
7
  //# sourceMappingURL=version.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"../src/","sources":["version.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,OAAO,UAAU,CAAA"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"../src/","sources":["version.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,OAAO,WAAW,CAAA"}
package/dist/version.js CHANGED
@@ -3,5 +3,5 @@
3
3
  * version over this constant at build time; the committed value stays a
4
4
  * sentinel so source checkouts are recognizable.
5
5
  */
6
- export const VERSION = "0.0.9";
6
+ export const VERSION = "0.0.11";
7
7
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"../src/","sources":["version.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAA"}
1
+ {"version":3,"file":"version.js","sourceRoot":"../src/","sources":["version.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAA"}
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.9",
5
+ "version": "0.0.11",
6
6
  "description": "Create and connect to kimchi remote workspaces from the terminal.",
7
7
  "keywords": [
8
8
  "kimchi",
@@ -61,6 +61,44 @@ export class AmbiguousTemplateError extends Error {
61
61
  }
62
62
  }
63
63
 
64
+ /** Input shape for creating a template — a subset of WorkspaceTemplate. */
65
+ export interface CreateTemplateInput {
66
+ name: string
67
+ description?: string
68
+ spec?: WorkspaceTemplateSpec
69
+ }
70
+
71
+ export async function createWorkspaceTemplate(
72
+ apiKey: string,
73
+ input: CreateTemplateInput,
74
+ options?: WorkspaceTemplateOptions,
75
+ ): Promise<WorkspaceTemplate> {
76
+ const fetchImpl = options?.fetch ?? globalThis.fetch
77
+ const endpoint = resolveEndpoint(options)
78
+ const orgId = await resolveOrgId(apiKey, options)
79
+
80
+ const body: Record<string, unknown> = { name: input.name }
81
+ if (input.description) body.description = input.description
82
+ if (input.spec) body.spec = input.spec
83
+
84
+ const url = `${endpoint}/ai-optimizer/v1beta/organizations/${encodeURIComponent(orgId)}/workspace-templates`
85
+ const resp = await fetchWithTimeout(
86
+ url,
87
+ {
88
+ method: "POST",
89
+ headers: { Authorization: `Bearer ${apiKey}`, "Content-Type": "application/json" },
90
+ body: JSON.stringify(body),
91
+ },
92
+ fetchImpl,
93
+ 30_000,
94
+ options?.signal,
95
+ )
96
+ await checkResponse(resp, url)
97
+
98
+ const data: unknown = await resp.json().catch(() => undefined)
99
+ return mapWorkspaceTemplate(data, endpoint)
100
+ }
101
+
64
102
  export async function listWorkspaceTemplates(
65
103
  apiKey: string,
66
104
  options?: WorkspaceTemplateOptions,
@@ -12,6 +12,8 @@ export type FlagValues = Record<string, string | boolean | string[] | boolean[]
12
12
 
13
13
  /**
14
14
  * Strict flag parsing with a uniform usage-error shape across commands.
15
+ * `--help` and `-h` are always accepted (boolean); callers check
16
+ * `values.help` to print their verb-specific usage before doing any work.
15
17
  * Values keep their raw type (declared options are TypeScript-blind here —
16
18
  * narrow at the call site, relying on the declared option `type`).
17
19
  */
@@ -20,8 +22,12 @@ export function parseFlags(
20
22
  args: string[],
21
23
  options: ParseArgsOptionsConfig,
22
24
  ): { values: FlagValues; positionals: string[] } {
25
+ const withHelp: ParseArgsOptionsConfig = {
26
+ help: { type: "boolean", short: "h" },
27
+ ...options,
28
+ }
23
29
  try {
24
- const parsed = parseArgs({ args, options, strict: true, allowPositionals: true })
30
+ const parsed = parseArgs({ args, options: withHelp, strict: true, allowPositionals: true })
25
31
  return { values: parsed.values as FlagValues, positionals: parsed.positionals }
26
32
  } catch (err) {
27
33
  throw new UsageError(`kimchictl ${command}: ${err instanceof Error ? err.message : String(err)}`)
@@ -58,6 +58,16 @@ async function runSetup(args: string[], deps: SshDeps): Promise<number> {
58
58
  uninstall: { type: "boolean" },
59
59
  domain: { type: "string" },
60
60
  })
61
+ if (values.help) {
62
+ console.log(`Usage:
63
+ kimchictl ssh setup [options]
64
+
65
+ Options:
66
+ --uninstall Remove the SSH integration
67
+ --domain <name> Override the workspace wildcard domain
68
+ --help Show this help`)
69
+ return 0
70
+ }
61
71
  if (positionals.length > 0) {
62
72
  throw new UsageError("kimchictl ssh setup: unexpected positional argument")
63
73
  }
@@ -95,6 +105,15 @@ async function runProxy(args: string[], deps: SshDeps): Promise<number> {
95
105
  const { values, positionals } = parseFlags("ssh proxy", args, {
96
106
  port: { type: "string", default: "443" },
97
107
  })
108
+ if (values.help) {
109
+ console.log(`Usage:
110
+ kimchictl ssh proxy <host> [options]
111
+
112
+ Options:
113
+ --port <n> WebSocket port (default: 443)
114
+ --help Show this help`)
115
+ return 0
116
+ }
98
117
  const host = positionals[0]
99
118
  if (!host || positionals.length > 1) {
100
119
  throw new UsageError("kimchictl ssh proxy: expected one host")
@@ -1,10 +1,15 @@
1
+ import { readFileSync } from "node:fs"
2
+ import { resolve } from "node:path"
1
3
  import { formatAge, formatBytes, formatMillicores } from "../api/resources.js"
2
4
  import {
3
5
  AmbiguousTemplateError,
6
+ type CreateTemplateInput,
7
+ createWorkspaceTemplate,
4
8
  getWorkspaceTemplate,
5
9
  listWorkspaceTemplates,
6
10
  TemplateNotFoundError,
7
11
  type WorkspaceTemplate,
12
+ type WorkspaceTemplateSpec,
8
13
  } from "../api/templates.js"
9
14
  import { requireApiKey } from "../auth/resolve.js"
10
15
  import { parseFlags, UsageError } from "./flags.js"
@@ -26,12 +31,36 @@ const TEMPLATES_USAGE = `Usage:
26
31
  kimchictl templates <verb> [options]
27
32
 
28
33
  Verbs:
29
- list List workspace templates (alias: ls)
30
- get Show template details
34
+ list List workspace templates (alias: ls)
35
+ get Show template details
36
+ create Create a workspace template
31
37
 
32
38
  Options:
33
39
  --help Show this help`
34
40
 
41
+ const CREATE_USAGE = `Usage:
42
+ kimchictl templates create [options]
43
+
44
+ Create a template from a JSON file or from inline flags (not both).
45
+
46
+ File:
47
+ --file <path> Read the full template from a JSON file
48
+ (same shape as 'templates get --output json')
49
+
50
+ Inline:
51
+ --name <name> Template name (required, immutable, lowercase)
52
+ --desc <text> Description
53
+ --cpu <qty> CPU request (e.g. "500m", "2")
54
+ --memory <qty> Memory request (e.g. "1Gi", "512Mi")
55
+ --storage <qty> PVC size (e.g. "20Gi")
56
+ --dep <tool> CLI tool to install (repeatable, e.g. --dep jq --dep node@22)
57
+ --egress-allow <dest> Allow egress destination (repeatable)
58
+ --egress-deny <dest> Deny egress destination (repeatable)
59
+ --egress-default-allow Default-allow egress (instead of deny-by-default)
60
+ --init-script <script> Boot script (or @file to read from file)
61
+
62
+ --help Show this help`
63
+
35
64
  /** `kimchictl templates <verb> …` — read-only browse of workspace templates. */
36
65
  export async function runTemplates(args: string[], deps: TemplatesDeps = {}): Promise<number> {
37
66
  const [verb, ...rest] = args
@@ -41,6 +70,8 @@ export async function runTemplates(args: string[], deps: TemplatesDeps = {}): Pr
41
70
  return runTemplatesList(rest, deps)
42
71
  case "get":
43
72
  return runTemplatesGet(rest, deps)
73
+ case "create":
74
+ return runTemplatesCreate(rest, deps)
44
75
  case "help":
45
76
  case "--help":
46
77
  case "-h":
@@ -60,6 +91,15 @@ async function runTemplatesList(args: string[], deps: TemplatesDeps): Promise<nu
60
91
  const { values, positionals } = parseFlags("templates list", args, {
61
92
  output: { type: "string", short: "o", default: "table" },
62
93
  })
94
+ if (values.help) {
95
+ console.log(`Usage:
96
+ kimchictl templates list [options]
97
+
98
+ Options:
99
+ --output <format> Output format: table | json (default: table)
100
+ --help Show this help`)
101
+ return 0
102
+ }
63
103
  if (positionals.length > 0) {
64
104
  throw new UsageError("kimchictl templates list: unexpected positional argument")
65
105
  }
@@ -94,6 +134,15 @@ async function runTemplatesGet(args: string[], deps: TemplatesDeps): Promise<num
94
134
  const { values, positionals } = parseFlags("templates get", args, {
95
135
  output: { type: "string", short: "o", default: "text" },
96
136
  })
137
+ if (values.help) {
138
+ console.log(`Usage:
139
+ kimchictl templates get <name-or-id> [options]
140
+
141
+ Options:
142
+ --output <format> Output format: text | json (default: text)
143
+ --help Show this help`)
144
+ return 0
145
+ }
97
146
  if (positionals.length !== 1) {
98
147
  throw new UsageError("kimchictl templates get: expected exactly one template name or ID")
99
148
  }
@@ -135,6 +184,133 @@ async function runTemplatesGet(args: string[], deps: TemplatesDeps): Promise<num
135
184
  return 0
136
185
  }
137
186
 
187
+ async function runTemplatesCreate(args: string[], deps: TemplatesDeps): Promise<number> {
188
+ const { values, positionals } = parseFlags("templates create", args, {
189
+ file: { type: "string", short: "f" },
190
+ name: { type: "string" },
191
+ desc: { type: "string" },
192
+ cpu: { type: "string" },
193
+ memory: { type: "string" },
194
+ storage: { type: "string" },
195
+ dep: { type: "string", multiple: true },
196
+ "egress-allow": { type: "string", multiple: true },
197
+ "egress-deny": { type: "string", multiple: true },
198
+ "egress-default-allow": { type: "boolean" },
199
+ "init-script": { type: "string" },
200
+ })
201
+ if (values.help) {
202
+ console.log(CREATE_USAGE)
203
+ return 0
204
+ }
205
+ if (positionals.length > 0) {
206
+ throw new UsageError("kimchictl templates create: unexpected positional argument")
207
+ }
208
+
209
+ let input: CreateTemplateInput
210
+
211
+ const file = typeof values.file === "string" && values.file.length > 0 ? values.file : undefined
212
+ if (file) {
213
+ // --file and inline spec flags are mutually exclusive
214
+ const inlineFlags = [
215
+ "cpu",
216
+ "memory",
217
+ "storage",
218
+ "dep",
219
+ "egress-allow",
220
+ "egress-deny",
221
+ "egress-default-allow",
222
+ "init-script",
223
+ ]
224
+ const usedInline = inlineFlags.some((f) => values[f] !== undefined)
225
+ if (usedInline) {
226
+ throw new UsageError(
227
+ "kimchictl templates create: --file and inline spec flags are mutually exclusive — the file carries the full definition",
228
+ )
229
+ }
230
+ if (typeof values.name === "string" && values.name.length > 0) {
231
+ throw new UsageError(
232
+ "kimchictl templates create: --file and --name are mutually exclusive (the file carries the name)",
233
+ )
234
+ }
235
+ try {
236
+ const raw = JSON.parse(readFileSync(resolve(file), "utf-8")) as CreateTemplateInput
237
+ if (typeof raw.name !== "string" || raw.name.length === 0) {
238
+ throw new UsageError(`kimchictl templates create: --file: missing required field "name"`)
239
+ }
240
+ input = raw
241
+ } catch (err) {
242
+ if (err instanceof UsageError) throw err
243
+ throw new UsageError(`kimchictl templates create: --file: ${err instanceof Error ? err.message : String(err)}`)
244
+ }
245
+ } else {
246
+ // Inline flags
247
+ const name = typeof values.name === "string" && values.name.length > 0 ? values.name : undefined
248
+ if (!name) {
249
+ throw new UsageError("kimchictl templates create: --name is required (or use --file)")
250
+ }
251
+
252
+ const spec: WorkspaceTemplateSpec = {}
253
+
254
+ const resources: { cpu?: string; memory?: string; pvcSize?: string } = {}
255
+ if (typeof values.cpu === "string" && values.cpu.length > 0) resources.cpu = values.cpu
256
+ if (typeof values.memory === "string" && values.memory.length > 0) resources.memory = values.memory
257
+ if (typeof values.storage === "string" && values.storage.length > 0) resources.pvcSize = values.storage
258
+ if (Object.keys(resources).length > 0) spec.resources = resources
259
+
260
+ const dependencies = (Array.isArray(values.dep) ? values.dep : []).filter(
261
+ (d): d is string => typeof d === "string" && d.length > 0,
262
+ )
263
+ if (dependencies.length > 0) spec.dependencies = dependencies
264
+
265
+ const egressAllowed = (Array.isArray(values["egress-allow"]) ? values["egress-allow"] : []).filter(
266
+ (d): d is string => typeof d === "string" && d.length > 0,
267
+ )
268
+ const egressDenied = (Array.isArray(values["egress-deny"]) ? values["egress-deny"] : []).filter(
269
+ (d): d is string => typeof d === "string" && d.length > 0,
270
+ )
271
+ const egressDefaultAllow = values["egress-default-allow"] === true
272
+ if (egressAllowed.length > 0 || egressDenied.length > 0 || egressDefaultAllow) {
273
+ spec.egressPolicy = {
274
+ ...(egressDefaultAllow ? { denyByDefault: false } : {}),
275
+ ...(egressAllowed.length > 0 ? { allowed: egressAllowed } : {}),
276
+ ...(egressDenied.length > 0 ? { denied: egressDenied } : {}),
277
+ }
278
+ }
279
+
280
+ const initScriptRaw = typeof values["init-script"] === "string" ? values["init-script"] : undefined
281
+ if (initScriptRaw) {
282
+ if (initScriptRaw.startsWith("@")) {
283
+ const scriptPath = initScriptRaw.slice(1)
284
+ try {
285
+ spec.initScript = readFileSync(resolve(scriptPath), "utf-8")
286
+ } catch {
287
+ throw new UsageError(`kimchictl templates create: --init-script: cannot read ${scriptPath}`)
288
+ }
289
+ } else {
290
+ spec.initScript = initScriptRaw
291
+ }
292
+ }
293
+
294
+ input = {
295
+ name,
296
+ description: typeof values.desc === "string" && values.desc.length > 0 ? values.desc : undefined,
297
+ spec: Object.keys(spec).length > 0 ? spec : undefined,
298
+ }
299
+ }
300
+
301
+ // Validate the name pattern client-side (must match the proto's validation)
302
+ if (!/^[a-z0-9]([a-z0-9.-]*[a-z0-9])?$/.test(input.name)) {
303
+ throw new UsageError(
304
+ `kimchictl templates create: name "${input.name}" is invalid — must be lowercase alphanumeric, dots, and dashes (e.g. "rust", "python-django")`,
305
+ )
306
+ }
307
+
308
+ const { key } = requireApiKey(deps.env)
309
+ const created = await createWorkspaceTemplate(key, input, { fetch: deps.fetch })
310
+ console.log(`✓ created template ${created.name}`)
311
+ return 0
312
+ }
313
+
138
314
  function renderTemplateCard(template: WorkspaceTemplate, color: boolean, now: Date): string[] {
139
315
  const dimText = (text: string) => (color ? `\x1b[2m${text}\x1b[0m` : text)
140
316
  const lines: string[] = [`${template.name || template.id.slice(0, 12)} ${dimText("template")}`]
@@ -45,7 +45,7 @@ Create options:
45
45
  --desc <text> Description
46
46
  --template <name> Workspace template (conflicts with spec flags)
47
47
  --template-id <uuid> Template ID (alternative to --template)
48
- --cpu <qty> CPU request (e.g. "500m", "2")
48
+ --cpu <qty> CPU request (e.g. "500m", "2")
49
49
  --memory <qty> Memory request (e.g. "1Gi", "512Mi")
50
50
  --storage <qty> PVC size (e.g. "20Gi")
51
51
  --dep <tool> CLI tool to install (repeatable, e.g. --dep jq --dep node@22)
@@ -88,6 +88,25 @@ export async function runWorkspace(args: string[], deps: WorkspaceDeps = {}): Pr
88
88
 
89
89
  // ---------------------------------------------------------------- create
90
90
 
91
+ const CREATE_USAGE = `Usage:
92
+ kimchictl workspace create [options]
93
+
94
+ Options:
95
+ --desc <text> Description
96
+ --template <name> Workspace template (conflicts with spec flags)
97
+ --template-id <uuid> Template ID (alternative to --template)
98
+ --cpu <qty> CPU request (e.g. "500m", "2")
99
+ --memory <qty> Memory request (e.g. "1Gi", "512Mi")
100
+ --storage <qty> PVC size (e.g. "20Gi")
101
+ --dep <tool> CLI tool to install (repeatable, e.g. --dep jq --dep node@22)
102
+ --egress-allow <dest> Allow egress destination (repeatable)
103
+ --egress-deny <dest> Deny egress destination (repeatable)
104
+ --egress-default-allow Default-allow egress (instead of deny-by-default)
105
+ --init-script <script> Boot script (or @file to read from file)
106
+ --no-wait Skip waiting for ACTIVE
107
+ --timeout <seconds> Wait timeout (default 60)
108
+ --help Show this help`
109
+
91
110
  async function runCreate(args: string[], deps: WorkspaceDeps): Promise<number> {
92
111
  const { values, positionals } = parseFlags("workspace create", args, {
93
112
  desc: { type: "string" },
@@ -104,6 +123,10 @@ async function runCreate(args: string[], deps: WorkspaceDeps): Promise<number> {
104
123
  "no-wait": { type: "boolean" },
105
124
  timeout: { type: "string", default: "60" },
106
125
  })
126
+ if (values.help) {
127
+ console.log(CREATE_USAGE)
128
+ return 0
129
+ }
107
130
  if (positionals.length > 0) {
108
131
  throw new UsageError(
109
132
  "kimchictl workspace create: unexpected positional argument (workspaces are named by the server)",
@@ -240,6 +263,15 @@ async function runList(args: string[], deps: WorkspaceDeps): Promise<number> {
240
263
  const { values, positionals } = parseFlags("workspace list", args, {
241
264
  output: { type: "string", short: "o", default: "table" },
242
265
  })
266
+ if (values.help) {
267
+ console.log(`Usage:
268
+ kimchictl workspace list [options]
269
+
270
+ Options:
271
+ --output <format> Output format: table | json (default: table)
272
+ --help Show this help`)
273
+ return 0
274
+ }
243
275
  if (positionals.length > 0) {
244
276
  throw new UsageError("kimchictl workspace list: unexpected positional argument")
245
277
  }
@@ -280,6 +312,15 @@ async function runGet(args: string[], deps: WorkspaceDeps): Promise<number> {
280
312
  const { values, positionals } = parseFlags("workspace get", args, {
281
313
  output: { type: "string", short: "o", default: "text" },
282
314
  })
315
+ if (values.help) {
316
+ console.log(`Usage:
317
+ kimchictl workspace get <name> [options]
318
+
319
+ Options:
320
+ --output <format> Output format: text | json (default: text)
321
+ --help Show this help`)
322
+ return 0
323
+ }
283
324
  if (positionals.length !== 1) {
284
325
  throw new UsageError("kimchictl workspace get: expected exactly one workspace name")
285
326
  }
@@ -310,6 +351,15 @@ async function runDelete(args: string[], deps: WorkspaceDeps): Promise<number> {
310
351
  const { values, positionals } = parseFlags("workspace delete", args, {
311
352
  force: { type: "boolean", short: "f" },
312
353
  })
354
+ if (values.help) {
355
+ console.log(`Usage:
356
+ kimchictl workspace delete <name> [options]
357
+
358
+ Options:
359
+ --force, -f Skip the confirmation prompt
360
+ --help Show this help`)
361
+ return 0
362
+ }
313
363
  if (positionals.length !== 1) {
314
364
  throw new UsageError("kimchictl workspace delete: expected exactly one workspace name")
315
365
  }
package/src/version.ts CHANGED
@@ -3,4 +3,4 @@
3
3
  * version over this constant at build time; the committed value stays a
4
4
  * sentinel so source checkouts are recognizable.
5
5
  */
6
- export const VERSION = "0.0.9"
6
+ export const VERSION = "0.0.11"