@kalphq/cli 0.0.0-dev-20260420061515 → 0.0.0-dev-20260420063836
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/{add-LCDZNMNK.js → add-TSWPTKEC.js} +2 -2
- package/dist/{chunk-KI5J6MOO.js → chunk-BQOY6ZUE.js} +2 -2
- package/dist/{chunk-W4ZIAVWI.js → chunk-KD6MYE65.js} +3 -10
- package/dist/chunk-KD6MYE65.js.map +1 -0
- package/dist/{create-GQZGNPQ7.js → create-2G3FCCZT.js} +3 -3
- package/dist/{delete-ZYPUY7GC.js → delete-IDNFBWDW.js} +2 -2
- package/dist/index.js +7 -4
- package/dist/index.js.map +1 -1
- package/dist/{init-LUNBE3EX.js → init-2RJWFHB2.js} +3 -3
- package/dist/{secrets-HTLXE6OC.js → secrets-FHVISDYJ.js} +4 -4
- package/dist/{sync-Y3YT5GCV.js → sync-2UR3KCWW.js} +2 -2
- package/package.json +2 -2
- package/dist/chunk-W4ZIAVWI.js.map +0 -1
- /package/dist/{add-LCDZNMNK.js.map → add-TSWPTKEC.js.map} +0 -0
- /package/dist/{chunk-KI5J6MOO.js.map → chunk-BQOY6ZUE.js.map} +0 -0
- /package/dist/{create-GQZGNPQ7.js.map → create-2G3FCCZT.js.map} +0 -0
- /package/dist/{delete-ZYPUY7GC.js.map → delete-IDNFBWDW.js.map} +0 -0
- /package/dist/{init-LUNBE3EX.js.map → init-2RJWFHB2.js.map} +0 -0
- /package/dist/{secrets-HTLXE6OC.js.map → secrets-FHVISDYJ.js.map} +0 -0
- /package/dist/{sync-Y3YT5GCV.js.map → sync-2UR3KCWW.js.map} +0 -0
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
} from "./chunk-6LLXGS2P.js";
|
|
5
5
|
import {
|
|
6
6
|
generateTypes
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-KD6MYE65.js";
|
|
8
8
|
import "./chunk-2H7UOFLK.js";
|
|
9
9
|
|
|
10
10
|
// src/commands/secrets/add.ts
|
|
@@ -134,4 +134,4 @@ var add_default = defineCommand({
|
|
|
134
134
|
export {
|
|
135
135
|
add_default as default
|
|
136
136
|
};
|
|
137
|
-
//# sourceMappingURL=add-
|
|
137
|
+
//# sourceMappingURL=add-TSWPTKEC.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
generateTypes,
|
|
4
4
|
updateKalpDts,
|
|
5
5
|
updateTsconfig
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-KD6MYE65.js";
|
|
7
7
|
import {
|
|
8
8
|
__export
|
|
9
9
|
} from "./chunk-2H7UOFLK.js";
|
|
@@ -19952,4 +19952,4 @@ export {
|
|
|
19952
19952
|
promptProjectName,
|
|
19953
19953
|
promptAgentDetails
|
|
19954
19954
|
};
|
|
19955
|
-
//# sourceMappingURL=chunk-
|
|
19955
|
+
//# sourceMappingURL=chunk-BQOY6ZUE.js.map
|
|
@@ -6,8 +6,6 @@ import { join } from "path";
|
|
|
6
6
|
import { access } from "fs/promises";
|
|
7
7
|
var GENERATED_HEADER = `// \u{1F98B} Kalp Generated Types
|
|
8
8
|
// This file is auto-generated. Do not edit manually.
|
|
9
|
-
// Run \`kalp create\` or update kalp.config.ts to regenerate.
|
|
10
|
-
|
|
11
9
|
`;
|
|
12
10
|
function parseSecretsFromConfig(configContent) {
|
|
13
11
|
const secretsMatch = configContent.match(/secrets:\s*\[([^\]]*)\]/);
|
|
@@ -50,10 +48,8 @@ async function updateKalpDts(cwd) {
|
|
|
50
48
|
try {
|
|
51
49
|
await access(kalpDtsPath);
|
|
52
50
|
} catch {
|
|
53
|
-
const content =
|
|
54
|
-
import "@kalphq/sdk";
|
|
51
|
+
const content = `import "@kalphq/sdk";
|
|
55
52
|
|
|
56
|
-
// Import generated types (auto-updated by \`kalp create\`)
|
|
57
53
|
import type { RegisteredSecretKeys } from "./.kalp/types";
|
|
58
54
|
|
|
59
55
|
declare module "@kalphq/sdk" {
|
|
@@ -69,10 +65,7 @@ declare module "@kalphq/sdk" {
|
|
|
69
65
|
if (existingContent.includes("./.kalp/types")) {
|
|
70
66
|
return;
|
|
71
67
|
}
|
|
72
|
-
const updatedContent =
|
|
73
|
-
import "@kalphq/sdk";
|
|
74
|
-
|
|
75
|
-
// Import generated types (auto-updated by \`kalp create\`)
|
|
68
|
+
const updatedContent = `import "@kalphq/sdk";
|
|
76
69
|
import type { RegisteredSecretKeys } from "./.kalp/types";
|
|
77
70
|
|
|
78
71
|
declare module "@kalphq/sdk" {
|
|
@@ -105,4 +98,4 @@ export {
|
|
|
105
98
|
updateKalpDts,
|
|
106
99
|
updateTsconfig
|
|
107
100
|
};
|
|
108
|
-
//# sourceMappingURL=chunk-
|
|
101
|
+
//# sourceMappingURL=chunk-KD6MYE65.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/codegen.ts"],"sourcesContent":["import { readFile, writeFile, mkdir } from \"node:fs/promises\";\nimport { join } from \"node:path\";\nimport { access } from \"node:fs/promises\";\n\nconst GENERATED_HEADER = `// 🦋 Kalp Generated Types\n// This file is auto-generated. Do not edit manually.\n`;\n\n/**\n * Parse secrets from kalp.config.ts content using regex\n * Looks for: secrets: [\"KEY1\", \"KEY2\"] or secrets: []\n */\nfunction parseSecretsFromConfig(configContent: string): string[] | null {\n // Match secrets: [...] array\n const secretsMatch = configContent.match(/secrets:\\s*\\[([^\\]]*)\\]/);\n if (!secretsMatch) return null;\n\n const secretsArray = secretsMatch[1] ?? \"\";\n if (!secretsArray.trim()) return [];\n\n // Extract quoted strings from the array\n const secretMatches = secretsArray.match(/\"([^\"]+)\"/g);\n if (!secretMatches) return [];\n\n return secretMatches.map((match) => match.replace(/\"/g, \"\"));\n}\n\n/**\n * Generate types file based on secrets from kalp.config.ts\n */\nexport async function generateTypes(cwd: string): Promise<void> {\n const configPath = join(cwd, \"kalp.config.ts\");\n const kalpDir = join(cwd, \".kalp\");\n const typesPath = join(kalpDir, \"types.d.ts\");\n\n let secrets: string[] = [];\n\n try {\n const configContent = await readFile(configPath, \"utf-8\");\n const parsed = parseSecretsFromConfig(configContent);\n if (parsed !== null) {\n secrets = parsed;\n }\n } catch {\n // Config doesn't exist yet, use empty array\n secrets = [];\n }\n\n // Ensure .kalp directory exists\n try {\n await mkdir(kalpDir, { recursive: true });\n } catch {\n // Directory might already exist\n }\n\n // Generate the types content\n const secretsTuple =\n secrets.length > 0 ? `[${secrets.map((s) => `\"${s}\"`).join(\", \")}]` : \"[]\";\n\n const typesContent = `${GENERATED_HEADER}/**\n * Registered secrets from kalp.config.ts\n * @generated\n */\nexport type RegisteredSecretKeys = ${secretsTuple};\n`;\n\n await writeFile(typesPath, typesContent, \"utf-8\");\n}\n\n/**\n * Update kalp.d.ts to import and use generated types\n */\nexport async function updateKalpDts(cwd: string): Promise<void> {\n const kalpDtsPath = join(cwd, \"kalp.d.ts\");\n\n // Check if kalp.d.ts exists\n try {\n await access(kalpDtsPath);\n } catch {\n // Create new kalp.d.ts if it doesn't exist\n const content = `import \"@kalphq/sdk\";\n\nimport type { RegisteredSecretKeys } from \"./.kalp/types\";\n\ndeclare module \"@kalphq/sdk\" {\n interface SecretsRegistry {\n keys: RegisteredSecretKeys;\n }\n}\n`;\n await writeFile(kalpDtsPath, content, \"utf-8\");\n return;\n }\n\n // Read existing content\n const existingContent = await readFile(kalpDtsPath, \"utf-8\");\n\n // Check if it already imports from .kalp/types\n if (existingContent.includes(\"./.kalp/types\")) {\n // Already using generated types, no need to update\n return;\n }\n\n // Update to use generated types\n const updatedContent = `import \"@kalphq/sdk\";\nimport type { RegisteredSecretKeys } from \"./.kalp/types\";\n\ndeclare module \"@kalphq/sdk\" {\n interface SecretsRegistry {\n keys: RegisteredSecretKeys;\n }\n}\n`;\n\n await writeFile(kalpDtsPath, updatedContent, \"utf-8\");\n}\n\n/**\n * Ensure tsconfig.json includes .kalp/types.d.ts\n */\nexport async function updateTsconfig(cwd: string): Promise<void> {\n const tsconfigPath = join(cwd, \"tsconfig.json\");\n\n try {\n const content = await readFile(tsconfigPath, \"utf-8\");\n const config = JSON.parse(content);\n\n if (!config.include) {\n config.include = [];\n }\n\n const typesPath = \".kalp/types.d.ts\";\n if (!config.include.includes(typesPath)) {\n config.include.unshift(typesPath);\n await writeFile(tsconfigPath, JSON.stringify(config, null, 2), \"utf-8\");\n }\n } catch {}\n}\n"],"mappings":";;;AAAA,SAAS,UAAU,WAAW,aAAa;AAC3C,SAAS,YAAY;AACrB,SAAS,cAAc;AAEvB,IAAM,mBAAmB;AAAA;AAAA;AAQzB,SAAS,uBAAuB,eAAwC;AAEtE,QAAM,eAAe,cAAc,MAAM,yBAAyB;AAClE,MAAI,CAAC,aAAc,QAAO;AAE1B,QAAM,eAAe,aAAa,CAAC,KAAK;AACxC,MAAI,CAAC,aAAa,KAAK,EAAG,QAAO,CAAC;AAGlC,QAAM,gBAAgB,aAAa,MAAM,YAAY;AACrD,MAAI,CAAC,cAAe,QAAO,CAAC;AAE5B,SAAO,cAAc,IAAI,CAAC,UAAU,MAAM,QAAQ,MAAM,EAAE,CAAC;AAC7D;AAKA,eAAsB,cAAc,KAA4B;AAC9D,QAAM,aAAa,KAAK,KAAK,gBAAgB;AAC7C,QAAM,UAAU,KAAK,KAAK,OAAO;AACjC,QAAM,YAAY,KAAK,SAAS,YAAY;AAE5C,MAAI,UAAoB,CAAC;AAEzB,MAAI;AACF,UAAM,gBAAgB,MAAM,SAAS,YAAY,OAAO;AACxD,UAAM,SAAS,uBAAuB,aAAa;AACnD,QAAI,WAAW,MAAM;AACnB,gBAAU;AAAA,IACZ;AAAA,EACF,QAAQ;AAEN,cAAU,CAAC;AAAA,EACb;AAGA,MAAI;AACF,UAAM,MAAM,SAAS,EAAE,WAAW,KAAK,CAAC;AAAA,EAC1C,QAAQ;AAAA,EAER;AAGA,QAAM,eACJ,QAAQ,SAAS,IAAI,IAAI,QAAQ,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE,KAAK,IAAI,CAAC,MAAM;AAExE,QAAM,eAAe,GAAG,gBAAgB;AAAA;AAAA;AAAA;AAAA,qCAIL,YAAY;AAAA;AAG/C,QAAM,UAAU,WAAW,cAAc,OAAO;AAClD;AAKA,eAAsB,cAAc,KAA4B;AAC9D,QAAM,cAAc,KAAK,KAAK,WAAW;AAGzC,MAAI;AACF,UAAM,OAAO,WAAW;AAAA,EAC1B,QAAQ;AAEN,UAAM,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUhB,UAAM,UAAU,aAAa,SAAS,OAAO;AAC7C;AAAA,EACF;AAGA,QAAM,kBAAkB,MAAM,SAAS,aAAa,OAAO;AAG3D,MAAI,gBAAgB,SAAS,eAAe,GAAG;AAE7C;AAAA,EACF;AAGA,QAAM,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUvB,QAAM,UAAU,aAAa,gBAAgB,OAAO;AACtD;AAKA,eAAsB,eAAe,KAA4B;AAC/D,QAAM,eAAe,KAAK,KAAK,eAAe;AAE9C,MAAI;AACF,UAAM,UAAU,MAAM,SAAS,cAAc,OAAO;AACpD,UAAM,SAAS,KAAK,MAAM,OAAO;AAEjC,QAAI,CAAC,OAAO,SAAS;AACnB,aAAO,UAAU,CAAC;AAAA,IACpB;AAEA,UAAM,YAAY;AAClB,QAAI,CAAC,OAAO,QAAQ,SAAS,SAAS,GAAG;AACvC,aAAO,QAAQ,QAAQ,SAAS;AAChC,YAAM,UAAU,cAAc,KAAK,UAAU,QAAQ,MAAM,CAAC,GAAG,OAAO;AAAA,IACxE;AAAA,EACF,QAAQ;AAAA,EAAC;AACX;","names":[]}
|
|
@@ -4,12 +4,12 @@ import {
|
|
|
4
4
|
promptProjectName,
|
|
5
5
|
scaffoldAgent,
|
|
6
6
|
scaffoldProject
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-BQOY6ZUE.js";
|
|
8
8
|
import {
|
|
9
9
|
installDeps,
|
|
10
10
|
isProjectInitialized
|
|
11
11
|
} from "./chunk-TPTPZH2W.js";
|
|
12
|
-
import "./chunk-
|
|
12
|
+
import "./chunk-KD6MYE65.js";
|
|
13
13
|
import "./chunk-2H7UOFLK.js";
|
|
14
14
|
|
|
15
15
|
// src/commands/create.ts
|
|
@@ -71,4 +71,4 @@ var create_default = defineCommand({
|
|
|
71
71
|
export {
|
|
72
72
|
create_default as default
|
|
73
73
|
};
|
|
74
|
-
//# sourceMappingURL=create-
|
|
74
|
+
//# sourceMappingURL=create-2G3FCCZT.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
} from "./chunk-6LLXGS2P.js";
|
|
5
5
|
import {
|
|
6
6
|
generateTypes
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-KD6MYE65.js";
|
|
8
8
|
import "./chunk-2H7UOFLK.js";
|
|
9
9
|
|
|
10
10
|
// src/commands/secrets/delete.ts
|
|
@@ -140,4 +140,4 @@ var delete_default = defineCommand({
|
|
|
140
140
|
export {
|
|
141
141
|
delete_default as default
|
|
142
142
|
};
|
|
143
|
-
//# sourceMappingURL=delete-
|
|
143
|
+
//# sourceMappingURL=delete-IDNFBWDW.js.map
|
package/dist/index.js
CHANGED
|
@@ -4,6 +4,9 @@
|
|
|
4
4
|
import { defineCommand, runMain } from "citty";
|
|
5
5
|
import * as p from "@clack/prompts";
|
|
6
6
|
import pc from "picocolors";
|
|
7
|
+
import { createRequire } from "module";
|
|
8
|
+
var require2 = createRequire(import.meta.url);
|
|
9
|
+
var pkg = require2("../package.json");
|
|
7
10
|
var LOGO = "\u{1F98B}";
|
|
8
11
|
var COMMANDS = [
|
|
9
12
|
["init", "Create a new Kalp project"],
|
|
@@ -28,7 +31,7 @@ function printHelp() {
|
|
|
28
31
|
var main = defineCommand({
|
|
29
32
|
meta: {
|
|
30
33
|
name: "kalp",
|
|
31
|
-
version:
|
|
34
|
+
version: pkg.version,
|
|
32
35
|
description: "\u{1F98B} Zero-config agent infrastructure"
|
|
33
36
|
},
|
|
34
37
|
args: {
|
|
@@ -40,12 +43,12 @@ var main = defineCommand({
|
|
|
40
43
|
}
|
|
41
44
|
},
|
|
42
45
|
subCommands: {
|
|
43
|
-
init: () => import("./init-
|
|
44
|
-
create: () => import("./create-
|
|
46
|
+
init: () => import("./init-2RJWFHB2.js").then((r) => r.default),
|
|
47
|
+
create: () => import("./create-2G3FCCZT.js").then((r) => r.default),
|
|
45
48
|
migrate: () => import("./migrate-3PX52XLP.js").then((r) => r.default),
|
|
46
49
|
push: () => import("./push-Q4WIPJV3.js").then((r) => r.default),
|
|
47
50
|
link: () => import("./link-YCIA4JJ3.js").then((r) => r.default),
|
|
48
|
-
secrets: () => import("./secrets-
|
|
51
|
+
secrets: () => import("./secrets-FHVISDYJ.js").then((r) => r.default),
|
|
49
52
|
login: () => import("./login-SIKUBDGO.js").then((r) => r.default),
|
|
50
53
|
logout: () => import("./logout-OJM3VAOF.js").then((r) => r.default)
|
|
51
54
|
},
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import { defineCommand, runMain } from \"citty\";\nimport * as p from \"@clack/prompts\";\nimport pc from \"picocolors\";\n\nconst LOGO = \"🦋\";\n\nconst COMMANDS = [\n [\"init\", \"Create a new Kalp project\"],\n [\"create\", \"Add a new agent\"],\n [\"migrate\", \"Migrate agent schema\"],\n [\"push\", \"Push agent to Kalp\"],\n [\"link\", \"Link project to Kalp cloud\"],\n [\"secrets\", \"Manage secrets\"],\n [\"login\", \"Authenticate with Kalp\"],\n [\"logout\", \"Sign out from Kalp\"],\n] as const;\n\nfunction printHelp(): void {\n p.log.info(`${pc.bold(\"Usage\")}: kalp <command> [options]`);\n console.log(\"\");\n p.log.info(pc.bold(\"Commands\"));\n\n for (const [name, desc] of COMMANDS) {\n console.log(` ${pc.cyan(name.padEnd(10))}${desc}`);\n }\n\n console.log(\"\");\n p.log.info(`Run ${pc.cyan(\"kalp <command> --help\")} for more info.`);\n}\n\nconst main = defineCommand({\n meta: {\n name: \"kalp\",\n version:
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import { defineCommand, runMain } from \"citty\";\nimport * as p from \"@clack/prompts\";\nimport pc from \"picocolors\";\nimport { createRequire } from \"node:module\";\n\nconst require = createRequire(import.meta.url);\nconst pkg = require(\"../package.json\");\n\nconst LOGO = \"🦋\";\n\nconst COMMANDS = [\n [\"init\", \"Create a new Kalp project\"],\n [\"create\", \"Add a new agent\"],\n [\"migrate\", \"Migrate agent schema\"],\n [\"push\", \"Push agent to Kalp\"],\n [\"link\", \"Link project to Kalp cloud\"],\n [\"secrets\", \"Manage secrets\"],\n [\"login\", \"Authenticate with Kalp\"],\n [\"logout\", \"Sign out from Kalp\"],\n] as const;\n\nfunction printHelp(): void {\n p.log.info(`${pc.bold(\"Usage\")}: kalp <command> [options]`);\n console.log(\"\");\n p.log.info(pc.bold(\"Commands\"));\n\n for (const [name, desc] of COMMANDS) {\n console.log(` ${pc.cyan(name.padEnd(10))}${desc}`);\n }\n\n console.log(\"\");\n p.log.info(`Run ${pc.cyan(\"kalp <command> --help\")} for more info.`);\n}\n\nconst main = defineCommand({\n meta: {\n name: \"kalp\",\n version: pkg.version,\n description: \"🦋 Zero-config agent infrastructure\",\n },\n args: {\n help: {\n type: \"boolean\",\n alias: \"h\",\n description: \"Show help\",\n default: false,\n },\n },\n subCommands: {\n init: () => import(\"./commands/init\").then((r) => r.default),\n create: () => import(\"./commands/create\").then((r) => r.default),\n migrate: () => import(\"./commands/migrate\").then((r) => r.default),\n push: () => import(\"./commands/push\").then((r) => r.default),\n link: () => import(\"./commands/link\").then((r) => r.default),\n secrets: () => import(\"./commands/secrets\").then((r) => r.default),\n login: () => import(\"./commands/login\").then((r) => r.default),\n logout: () => import(\"./commands/logout\").then((r) => r.default),\n },\n run({ args }) {\n const firstArg = process.argv[2];\n\n if (args.help) {\n p.intro(`${LOGO} ${pc.bold(\"kalp\")}`);\n printHelp();\n p.outro(\"Happy coding 🦋\");\n return;\n }\n\n if (firstArg) {\n return;\n }\n\n p.intro(`${LOGO} ${pc.bold(\"kalp\")}`);\n printHelp();\n p.outro(\"Happy coding 🦋\");\n },\n});\n\nrunMain(main);\n"],"mappings":";;;AAAA,SAAS,eAAe,eAAe;AACvC,YAAY,OAAO;AACnB,OAAO,QAAQ;AACf,SAAS,qBAAqB;AAE9B,IAAMA,WAAU,cAAc,YAAY,GAAG;AAC7C,IAAM,MAAMA,SAAQ,iBAAiB;AAErC,IAAM,OAAO;AAEb,IAAM,WAAW;AAAA,EACf,CAAC,QAAQ,2BAA2B;AAAA,EACpC,CAAC,UAAU,iBAAiB;AAAA,EAC5B,CAAC,WAAW,sBAAsB;AAAA,EAClC,CAAC,QAAQ,oBAAoB;AAAA,EAC7B,CAAC,QAAQ,4BAA4B;AAAA,EACrC,CAAC,WAAW,gBAAgB;AAAA,EAC5B,CAAC,SAAS,wBAAwB;AAAA,EAClC,CAAC,UAAU,oBAAoB;AACjC;AAEA,SAAS,YAAkB;AACzB,EAAE,MAAI,KAAK,GAAG,GAAG,KAAK,OAAO,CAAC,4BAA4B;AAC1D,UAAQ,IAAI,EAAE;AACd,EAAE,MAAI,KAAK,GAAG,KAAK,UAAU,CAAC;AAE9B,aAAW,CAAC,MAAM,IAAI,KAAK,UAAU;AACnC,YAAQ,IAAI,KAAK,GAAG,KAAK,KAAK,OAAO,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE;AAAA,EACpD;AAEA,UAAQ,IAAI,EAAE;AACd,EAAE,MAAI,KAAK,OAAO,GAAG,KAAK,uBAAuB,CAAC,iBAAiB;AACrE;AAEA,IAAM,OAAO,cAAc;AAAA,EACzB,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,SAAS,IAAI;AAAA,IACb,aAAa;AAAA,EACf;AAAA,EACA,MAAM;AAAA,IACJ,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,aAAa;AAAA,MACb,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EACA,aAAa;AAAA,IACX,MAAM,MAAM,OAAO,oBAAiB,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,IAC3D,QAAQ,MAAM,OAAO,sBAAmB,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,IAC/D,SAAS,MAAM,OAAO,uBAAoB,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,IACjE,MAAM,MAAM,OAAO,oBAAiB,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,IAC3D,MAAM,MAAM,OAAO,oBAAiB,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,IAC3D,SAAS,MAAM,OAAO,uBAAoB,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,IACjE,OAAO,MAAM,OAAO,qBAAkB,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,IAC7D,QAAQ,MAAM,OAAO,sBAAmB,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,EACjE;AAAA,EACA,IAAI,EAAE,KAAK,GAAG;AACZ,UAAM,WAAW,QAAQ,KAAK,CAAC;AAE/B,QAAI,KAAK,MAAM;AACb,MAAE,QAAM,GAAG,IAAI,IAAI,GAAG,KAAK,MAAM,CAAC,EAAE;AACpC,gBAAU;AACV,MAAE,QAAM,wBAAiB;AACzB;AAAA,IACF;AAEA,QAAI,UAAU;AACZ;AAAA,IACF;AAEA,IAAE,QAAM,GAAG,IAAI,IAAI,GAAG,KAAK,MAAM,CAAC,EAAE;AACpC,cAAU;AACV,IAAE,QAAM,wBAAiB;AAAA,EAC3B;AACF,CAAC;AAED,QAAQ,IAAI;","names":["require"]}
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
import {
|
|
3
3
|
promptProjectName,
|
|
4
4
|
scaffoldProject
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-BQOY6ZUE.js";
|
|
6
6
|
import {
|
|
7
7
|
ensureDirectory,
|
|
8
8
|
installDeps,
|
|
9
9
|
isProjectInitialized
|
|
10
10
|
} from "./chunk-TPTPZH2W.js";
|
|
11
|
-
import "./chunk-
|
|
11
|
+
import "./chunk-KD6MYE65.js";
|
|
12
12
|
import "./chunk-2H7UOFLK.js";
|
|
13
13
|
|
|
14
14
|
// src/commands/init.ts
|
|
@@ -71,4 +71,4 @@ var init_default = defineCommand({
|
|
|
71
71
|
export {
|
|
72
72
|
init_default as default
|
|
73
73
|
};
|
|
74
|
-
//# sourceMappingURL=init-
|
|
74
|
+
//# sourceMappingURL=init-2RJWFHB2.js.map
|
|
@@ -21,9 +21,9 @@ var secrets_default = defineCommand({
|
|
|
21
21
|
},
|
|
22
22
|
subCommands: {
|
|
23
23
|
list: () => import("./list-OKKHGKJA.js").then((r) => r.default),
|
|
24
|
-
add: () => import("./add-
|
|
25
|
-
delete: () => import("./delete-
|
|
26
|
-
sync: () => import("./sync-
|
|
24
|
+
add: () => import("./add-TSWPTKEC.js").then((r) => r.default),
|
|
25
|
+
delete: () => import("./delete-IDNFBWDW.js").then((r) => r.default),
|
|
26
|
+
sync: () => import("./sync-2UR3KCWW.js").then((r) => r.default)
|
|
27
27
|
},
|
|
28
28
|
run({ args }) {
|
|
29
29
|
if (!args.help) {
|
|
@@ -47,4 +47,4 @@ var secrets_default = defineCommand({
|
|
|
47
47
|
export {
|
|
48
48
|
secrets_default as default
|
|
49
49
|
};
|
|
50
|
-
//# sourceMappingURL=secrets-
|
|
50
|
+
//# sourceMappingURL=secrets-FHVISDYJ.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
} from "./chunk-6LLXGS2P.js";
|
|
5
5
|
import {
|
|
6
6
|
generateTypes
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-KD6MYE65.js";
|
|
8
8
|
import "./chunk-2H7UOFLK.js";
|
|
9
9
|
|
|
10
10
|
// src/commands/secrets/sync.ts
|
|
@@ -118,4 +118,4 @@ var sync_default = defineCommand({
|
|
|
118
118
|
export {
|
|
119
119
|
sync_default as default
|
|
120
120
|
};
|
|
121
|
-
//# sourceMappingURL=sync-
|
|
121
|
+
//# sourceMappingURL=sync-2UR3KCWW.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kalphq/cli",
|
|
3
|
-
"version": "0.0.0-dev-
|
|
3
|
+
"version": "0.0.0-dev-20260420063836",
|
|
4
4
|
"description": "Zero-config CLI for deploying Kalp agents",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"picocolors": "1.1.1",
|
|
25
25
|
"zod": "3.25.76",
|
|
26
26
|
"zod-to-json-schema": "3.25.2",
|
|
27
|
-
"@kalphq/sdk": "0.0.0-dev-
|
|
27
|
+
"@kalphq/sdk": "0.0.0-dev-20260420063836"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"@types/node": "^22.15.3",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils/codegen.ts"],"sourcesContent":["import { readFile, writeFile, mkdir } from \"node:fs/promises\";\nimport { join } from \"node:path\";\nimport { access } from \"node:fs/promises\";\n\nconst GENERATED_HEADER = `// 🦋 Kalp Generated Types\n// This file is auto-generated. Do not edit manually.\n// Run \\`kalp create\\` or update kalp.config.ts to regenerate.\n\n`;\n\n/**\n * Parse secrets from kalp.config.ts content using regex\n * Looks for: secrets: [\"KEY1\", \"KEY2\"] or secrets: []\n */\nfunction parseSecretsFromConfig(configContent: string): string[] | null {\n // Match secrets: [...] array\n const secretsMatch = configContent.match(/secrets:\\s*\\[([^\\]]*)\\]/);\n if (!secretsMatch) return null;\n\n const secretsArray = secretsMatch[1] ?? \"\";\n if (!secretsArray.trim()) return [];\n\n // Extract quoted strings from the array\n const secretMatches = secretsArray.match(/\"([^\"]+)\"/g);\n if (!secretMatches) return [];\n\n return secretMatches.map((match) => match.replace(/\"/g, \"\"));\n}\n\n/**\n * Generate types file based on secrets from kalp.config.ts\n */\nexport async function generateTypes(cwd: string): Promise<void> {\n const configPath = join(cwd, \"kalp.config.ts\");\n const kalpDir = join(cwd, \".kalp\");\n const typesPath = join(kalpDir, \"types.d.ts\");\n\n let secrets: string[] = [];\n\n try {\n const configContent = await readFile(configPath, \"utf-8\");\n const parsed = parseSecretsFromConfig(configContent);\n if (parsed !== null) {\n secrets = parsed;\n }\n } catch {\n // Config doesn't exist yet, use empty array\n secrets = [];\n }\n\n // Ensure .kalp directory exists\n try {\n await mkdir(kalpDir, { recursive: true });\n } catch {\n // Directory might already exist\n }\n\n // Generate the types content\n const secretsTuple =\n secrets.length > 0 ? `[${secrets.map((s) => `\"${s}\"`).join(\", \")}]` : \"[]\";\n\n const typesContent = `${GENERATED_HEADER}/**\n * Registered secrets from kalp.config.ts\n * @generated\n */\nexport type RegisteredSecretKeys = ${secretsTuple};\n`;\n\n await writeFile(typesPath, typesContent, \"utf-8\");\n}\n\n/**\n * Update kalp.d.ts to import and use generated types\n */\nexport async function updateKalpDts(cwd: string): Promise<void> {\n const kalpDtsPath = join(cwd, \"kalp.d.ts\");\n\n // Check if kalp.d.ts exists\n try {\n await access(kalpDtsPath);\n } catch {\n // Create new kalp.d.ts if it doesn't exist\n const content = `// Import SDK types\nimport \"@kalphq/sdk\";\n\n// Import generated types (auto-updated by \\`kalp create\\`)\nimport type { RegisteredSecretKeys } from \"./.kalp/types\";\n\ndeclare module \"@kalphq/sdk\" {\n interface SecretsRegistry {\n keys: RegisteredSecretKeys;\n }\n}\n`;\n await writeFile(kalpDtsPath, content, \"utf-8\");\n return;\n }\n\n // Read existing content\n const existingContent = await readFile(kalpDtsPath, \"utf-8\");\n\n // Check if it already imports from .kalp/types\n if (existingContent.includes(\"./.kalp/types\")) {\n // Already using generated types, no need to update\n return;\n }\n\n // Update to use generated types\n const updatedContent = `// Import SDK types\nimport \"@kalphq/sdk\";\n\n// Import generated types (auto-updated by \\`kalp create\\`)\nimport type { RegisteredSecretKeys } from \"./.kalp/types\";\n\ndeclare module \"@kalphq/sdk\" {\n interface SecretsRegistry {\n keys: RegisteredSecretKeys;\n }\n}\n`;\n\n await writeFile(kalpDtsPath, updatedContent, \"utf-8\");\n}\n\n/**\n * Ensure tsconfig.json includes .kalp/types.d.ts\n */\nexport async function updateTsconfig(cwd: string): Promise<void> {\n const tsconfigPath = join(cwd, \"tsconfig.json\");\n\n try {\n const content = await readFile(tsconfigPath, \"utf-8\");\n const config = JSON.parse(content);\n\n if (!config.include) {\n config.include = [];\n }\n\n // Add .kalp/types.d.ts if not already present\n const typesPath = \".kalp/types.d.ts\";\n if (!config.include.includes(typesPath)) {\n // Add at the beginning to ensure it loads first\n config.include.unshift(typesPath);\n await writeFile(tsconfigPath, JSON.stringify(config, null, 2), \"utf-8\");\n }\n } catch {\n // tsconfig.json doesn't exist or can't be parsed, skip\n }\n}\n"],"mappings":";;;AAAA,SAAS,UAAU,WAAW,aAAa;AAC3C,SAAS,YAAY;AACrB,SAAS,cAAc;AAEvB,IAAM,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAUzB,SAAS,uBAAuB,eAAwC;AAEtE,QAAM,eAAe,cAAc,MAAM,yBAAyB;AAClE,MAAI,CAAC,aAAc,QAAO;AAE1B,QAAM,eAAe,aAAa,CAAC,KAAK;AACxC,MAAI,CAAC,aAAa,KAAK,EAAG,QAAO,CAAC;AAGlC,QAAM,gBAAgB,aAAa,MAAM,YAAY;AACrD,MAAI,CAAC,cAAe,QAAO,CAAC;AAE5B,SAAO,cAAc,IAAI,CAAC,UAAU,MAAM,QAAQ,MAAM,EAAE,CAAC;AAC7D;AAKA,eAAsB,cAAc,KAA4B;AAC9D,QAAM,aAAa,KAAK,KAAK,gBAAgB;AAC7C,QAAM,UAAU,KAAK,KAAK,OAAO;AACjC,QAAM,YAAY,KAAK,SAAS,YAAY;AAE5C,MAAI,UAAoB,CAAC;AAEzB,MAAI;AACF,UAAM,gBAAgB,MAAM,SAAS,YAAY,OAAO;AACxD,UAAM,SAAS,uBAAuB,aAAa;AACnD,QAAI,WAAW,MAAM;AACnB,gBAAU;AAAA,IACZ;AAAA,EACF,QAAQ;AAEN,cAAU,CAAC;AAAA,EACb;AAGA,MAAI;AACF,UAAM,MAAM,SAAS,EAAE,WAAW,KAAK,CAAC;AAAA,EAC1C,QAAQ;AAAA,EAER;AAGA,QAAM,eACJ,QAAQ,SAAS,IAAI,IAAI,QAAQ,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE,KAAK,IAAI,CAAC,MAAM;AAExE,QAAM,eAAe,GAAG,gBAAgB;AAAA;AAAA;AAAA;AAAA,qCAIL,YAAY;AAAA;AAG/C,QAAM,UAAU,WAAW,cAAc,OAAO;AAClD;AAKA,eAAsB,cAAc,KAA4B;AAC9D,QAAM,cAAc,KAAK,KAAK,WAAW;AAGzC,MAAI;AACF,UAAM,OAAO,WAAW;AAAA,EAC1B,QAAQ;AAEN,UAAM,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYhB,UAAM,UAAU,aAAa,SAAS,OAAO;AAC7C;AAAA,EACF;AAGA,QAAM,kBAAkB,MAAM,SAAS,aAAa,OAAO;AAG3D,MAAI,gBAAgB,SAAS,eAAe,GAAG;AAE7C;AAAA,EACF;AAGA,QAAM,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAavB,QAAM,UAAU,aAAa,gBAAgB,OAAO;AACtD;AAKA,eAAsB,eAAe,KAA4B;AAC/D,QAAM,eAAe,KAAK,KAAK,eAAe;AAE9C,MAAI;AACF,UAAM,UAAU,MAAM,SAAS,cAAc,OAAO;AACpD,UAAM,SAAS,KAAK,MAAM,OAAO;AAEjC,QAAI,CAAC,OAAO,SAAS;AACnB,aAAO,UAAU,CAAC;AAAA,IACpB;AAGA,UAAM,YAAY;AAClB,QAAI,CAAC,OAAO,QAAQ,SAAS,SAAS,GAAG;AAEvC,aAAO,QAAQ,QAAQ,SAAS;AAChC,YAAM,UAAU,cAAc,KAAK,UAAU,QAAQ,MAAM,CAAC,GAAG,OAAO;AAAA,IACxE;AAAA,EACF,QAAQ;AAAA,EAER;AACF;","names":[]}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|