@kalphq/cli 0.1.0 → 0.2.0
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-UCN5EAL3.js → add-KRHLYYTO.js} +10 -37
- package/dist/add-KRHLYYTO.js.map +1 -0
- package/dist/chunk-INB3LG6O.js +25 -0
- package/dist/chunk-INB3LG6O.js.map +1 -0
- package/dist/chunk-MMS3GWBG.js +50 -0
- package/dist/chunk-MMS3GWBG.js.map +1 -0
- package/dist/{create-PENWHZ26.js → create-7J5R6OVF.js} +44 -35
- package/dist/create-7J5R6OVF.js.map +1 -0
- package/dist/{delete-6MKUQ3XK.js → delete-47ZP6XRB.js} +10 -27
- package/dist/delete-47ZP6XRB.js.map +1 -0
- package/dist/index.js +10 -11
- package/dist/index.js.map +1 -1
- package/dist/{link-YCIA4JJ3.js → link-WZQSR2TM.js} +1 -2
- package/dist/{link-YCIA4JJ3.js.map → link-WZQSR2TM.js.map} +1 -1
- package/dist/{list-BOE33VSI.js → list-3ZQIFUOT.js} +1 -2
- package/dist/list-3ZQIFUOT.js.map +1 -0
- package/dist/{login-22HHVS52.js → login-JYPWGL6P.js} +1 -2
- package/dist/login-JYPWGL6P.js.map +1 -0
- package/dist/{logout-OJM3VAOF.js → logout-V67DZZXO.js} +1 -2
- package/dist/{logout-OJM3VAOF.js.map → logout-V67DZZXO.js.map} +1 -1
- package/dist/push-RBTBXCP7.js +205 -0
- package/dist/push-RBTBXCP7.js.map +1 -0
- package/dist/{secrets-SIK6J5AF.js → secrets-KFMVBKJQ.js} +8 -5
- package/dist/secrets-KFMVBKJQ.js.map +1 -0
- package/dist/sync-YFM5P3IS.js +120 -0
- package/dist/sync-YFM5P3IS.js.map +1 -0
- package/package.json +5 -5
- package/dist/acorn-I3UGQPDC.js +0 -3132
- package/dist/acorn-I3UGQPDC.js.map +0 -1
- package/dist/add-UCN5EAL3.js.map +0 -1
- package/dist/agents/b2b-sales/signals/.gitkeep +0 -0
- package/dist/agents/b2b-sales/webhooks/.gitkeep +0 -0
- package/dist/agents/customer-support/signals/.gitkeep +0 -0
- package/dist/agents/customer-support/webhooks/.gitkeep +0 -0
- package/dist/agents/financial-agent/signals/.gitkeep +0 -0
- package/dist/agents/financial-agent/webhooks/.gitkeep +0 -0
- package/dist/agents/minimal/signals/.gitkeep +0 -0
- package/dist/agents/minimal/webhooks/.gitkeep +0 -0
- package/dist/angular-5QCYWYQS.js +0 -3032
- package/dist/angular-5QCYWYQS.js.map +0 -1
- package/dist/babel-VVMWCS4G.js +0 -7298
- package/dist/babel-VVMWCS4G.js.map +0 -1
- package/dist/chunk-2H7UOFLK.js +0 -11
- package/dist/chunk-2H7UOFLK.js.map +0 -1
- package/dist/chunk-EAMMDUE3.js +0 -298
- package/dist/chunk-EAMMDUE3.js.map +0 -1
- package/dist/chunk-MECZEYSU.js +0 -19963
- package/dist/chunk-MECZEYSU.js.map +0 -1
- package/dist/chunk-TPTPZH2W.js +0 -40
- package/dist/chunk-TPTPZH2W.js.map +0 -1
- package/dist/create-PENWHZ26.js.map +0 -1
- package/dist/delete-6MKUQ3XK.js.map +0 -1
- package/dist/estree-3QNQSWX3.js +0 -4614
- package/dist/estree-3QNQSWX3.js.map +0 -1
- package/dist/flow-CCY52CGJ.js +0 -27548
- package/dist/flow-CCY52CGJ.js.map +0 -1
- package/dist/glimmer-WEH5BTZ2.js +0 -2896
- package/dist/glimmer-WEH5BTZ2.js.map +0 -1
- package/dist/graphql-UERTLN2S.js +0 -1268
- package/dist/graphql-UERTLN2S.js.map +0 -1
- package/dist/html-2G7A573F.js +0 -2928
- package/dist/html-2G7A573F.js.map +0 -1
- package/dist/init-WOEW2QED.js +0 -73
- package/dist/init-WOEW2QED.js.map +0 -1
- package/dist/list-BOE33VSI.js.map +0 -1
- package/dist/login-22HHVS52.js.map +0 -1
- package/dist/markdown-XILCBMG4.js +0 -3553
- package/dist/markdown-XILCBMG4.js.map +0 -1
- package/dist/meriyah-THC5AUEQ.js +0 -2686
- package/dist/meriyah-THC5AUEQ.js.map +0 -1
- package/dist/migrate-GA7EHSDG.js +0 -80
- package/dist/migrate-GA7EHSDG.js.map +0 -1
- package/dist/postcss-WBGWHY5F.js +0 -5082
- package/dist/postcss-WBGWHY5F.js.map +0 -1
- package/dist/push-2B4NWFGC.js +0 -81
- package/dist/push-2B4NWFGC.js.map +0 -1
- package/dist/secrets-SIK6J5AF.js.map +0 -1
- package/dist/templates/agents/b2b-sales/signals/.gitkeep +0 -0
- package/dist/templates/agents/b2b-sales/webhooks/.gitkeep +0 -0
- package/dist/templates/agents/customer-support/signals/.gitkeep +0 -0
- package/dist/templates/agents/customer-support/webhooks/.gitkeep +0 -0
- package/dist/templates/agents/financial-agent/signals/.gitkeep +0 -0
- package/dist/templates/agents/financial-agent/webhooks/.gitkeep +0 -0
- package/dist/templates/agents/minimal/signals/.gitkeep +0 -0
- package/dist/templates/agents/minimal/webhooks/.gitkeep +0 -0
- package/dist/typescript-NS3CY6IL.js +0 -13205
- package/dist/typescript-NS3CY6IL.js.map +0 -1
- package/dist/yaml-2RE4A77K.js +0 -4226
- package/dist/yaml-2RE4A77K.js.map +0 -1
- package/templates/project/meta/snapshot.json +0 -1
- package/templates/project/package.json +0 -16
- package/templates/project/tsconfig.json +0 -14
package/dist/chunk-TPTPZH2W.js
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
// src/utils/fs.ts
|
|
4
|
-
import { access, mkdir } from "fs/promises";
|
|
5
|
-
import { join } from "path";
|
|
6
|
-
import { exec } from "child_process";
|
|
7
|
-
import { promisify } from "util";
|
|
8
|
-
var execAsync = promisify(exec);
|
|
9
|
-
async function isProjectInitialized(cwd) {
|
|
10
|
-
try {
|
|
11
|
-
await access(join(cwd, "kalp.config.ts"));
|
|
12
|
-
return true;
|
|
13
|
-
} catch {
|
|
14
|
-
return false;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
async function ensureConfig(cwd) {
|
|
18
|
-
const initialized = await isProjectInitialized(cwd);
|
|
19
|
-
if (!initialized) {
|
|
20
|
-
throw new Error("kalp.config.ts not found");
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
async function ensureDirectory(path) {
|
|
24
|
-
await mkdir(path, { recursive: true });
|
|
25
|
-
}
|
|
26
|
-
async function installDeps(cwd) {
|
|
27
|
-
try {
|
|
28
|
-
await execAsync("npx --no-install nci", { cwd });
|
|
29
|
-
} catch {
|
|
30
|
-
await execAsync("npm install", { cwd });
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
export {
|
|
35
|
-
isProjectInitialized,
|
|
36
|
-
ensureConfig,
|
|
37
|
-
ensureDirectory,
|
|
38
|
-
installDeps
|
|
39
|
-
};
|
|
40
|
-
//# sourceMappingURL=chunk-TPTPZH2W.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils/fs.ts"],"sourcesContent":["import { access, mkdir } from \"node:fs/promises\";\nimport { join } from \"node:path\";\nimport { exec } from \"node:child_process\";\nimport { promisify } from \"node:util\";\n\nconst execAsync = promisify(exec);\n\nexport async function isProjectInitialized(cwd: string): Promise<boolean> {\n try {\n await access(join(cwd, \"kalp.config.ts\"));\n return true;\n } catch {\n return false;\n }\n}\n\nexport async function ensureConfig(cwd: string): Promise<void> {\n const initialized = await isProjectInitialized(cwd);\n if (!initialized) {\n throw new Error(\"kalp.config.ts not found\");\n }\n}\n\nexport async function ensureDirectory(path: string): Promise<void> {\n await mkdir(path, { recursive: true });\n}\n\nexport async function installDeps(cwd: string): Promise<void> {\n try {\n await execAsync(\"npx --no-install nci\", { cwd });\n } catch {\n await execAsync(\"npm install\", { cwd });\n }\n}\n"],"mappings":";;;AAAA,SAAS,QAAQ,aAAa;AAC9B,SAAS,YAAY;AACrB,SAAS,YAAY;AACrB,SAAS,iBAAiB;AAE1B,IAAM,YAAY,UAAU,IAAI;AAEhC,eAAsB,qBAAqB,KAA+B;AACxE,MAAI;AACF,UAAM,OAAO,KAAK,KAAK,gBAAgB,CAAC;AACxC,WAAO;AAAA,EACT,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEA,eAAsB,aAAa,KAA4B;AAC7D,QAAM,cAAc,MAAM,qBAAqB,GAAG;AAClD,MAAI,CAAC,aAAa;AAChB,UAAM,IAAI,MAAM,0BAA0B;AAAA,EAC5C;AACF;AAEA,eAAsB,gBAAgB,MAA6B;AACjE,QAAM,MAAM,MAAM,EAAE,WAAW,KAAK,CAAC;AACvC;AAEA,eAAsB,YAAY,KAA4B;AAC5D,MAAI;AACF,UAAM,UAAU,wBAAwB,EAAE,IAAI,CAAC;AAAA,EACjD,QAAQ;AACN,UAAM,UAAU,eAAe,EAAE,IAAI,CAAC;AAAA,EACxC;AACF;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/create.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport * as p from \"@clack/prompts\";\nimport pc from \"picocolors\";\nimport { scaffoldProject, scaffoldAgent } from \"../scaffold.js\";\nimport { installDeps, isProjectInitialized } from \"../utils/fs.js\";\nimport { promptAgentDetails, promptProjectName } from \"../utils/ui.js\";\n\nconst LOGO = \"🦋\";\n\nexport default defineCommand({\n meta: { name: \"create\", description: \"Add a new agent to the project\" },\n async run() {\n const cwd = process.cwd();\n\n p.intro(`${LOGO} ${pc.bold(\"kalp create\")}`);\n\n // ── Check if project is initialized ─────────────────────────────────\n const needsInit = !(await isProjectInitialized(cwd));\n\n // ── Init phase (inline — one unified timeline) ───────────────────────\n let projectName: string | undefined;\n if (needsInit) {\n p.log.warn(\n `No ${pc.cyan(\"kalp.config.ts\")} found — initializing project first.`,\n );\n projectName = await promptProjectName({\n message: \"Project name?\",\n placeholder: \"my-project\",\n });\n }\n\n // ── Agent prompts ────────────────────────────────────────────────────\n const agentAnswers = await promptAgentDetails();\n\n const s = p.spinner();\n\n // ── Scaffold project if needed ───────────────────────────────────────\n if (needsInit && projectName) {\n s.start(\"Creating project structure\");\n await scaffoldProject({ projectName, targetDir: cwd });\n s.stop(\"Project structure created\");\n\n s.start(\"Installing Dependencies\");\n try {\n await installDeps(cwd);\n s.stop(\"Dependencies installed\");\n } catch {\n s.stop(pc.yellow(\"Install failed — run npm install manually.\"));\n }\n }\n\n // ── Scaffold agent ───────────────────────────────────────────────────\n s.start(`Scaffolding agent ${pc.cyan(agentAnswers.name)}`);\n await scaffoldAgent({\n agentName: agentAnswers.name,\n cwd,\n });\n s.stop(\"Agent created\");\n\n p.note(\n [\n `${pc.dim(\"•\")} ${pc.cyan(`agents/${agentAnswers.name}/index.ts`)}`,\n `${pc.dim(\"•\")} ${pc.cyan(`agents/${agentAnswers.name}/steps/`)}`,\n `${pc.dim(\"•\")} ${pc.cyan(`agents/${agentAnswers.name}/tools/`)}`,\n `${pc.dim(\"•\")} ${pc.cyan(`agents/${agentAnswers.name}/routes/`)}`,\n `${pc.dim(\"•\")} ${pc.cyan(`agents/${agentAnswers.name}/flows/`)}`,\n ].join(\"\\n\"),\n \"Created\",\n );\n\n p.outro(\n `${LOGO} ${pc.green(`Agent ${pc.bold(agentAnswers.name)} is ready.`)}`,\n );\n },\n});\n"],"mappings":";;;;;;;;;;;;;;AAAA,SAAS,qBAAqB;AAC9B,YAAY,OAAO;AACnB,OAAO,QAAQ;AAKf,IAAM,OAAO;AAEb,IAAO,iBAAQ,cAAc;AAAA,EAC3B,MAAM,EAAE,MAAM,UAAU,aAAa,iCAAiC;AAAA,EACtE,MAAM,MAAM;AACV,UAAM,MAAM,QAAQ,IAAI;AAExB,IAAE,QAAM,GAAG,IAAI,IAAI,GAAG,KAAK,aAAa,CAAC,EAAE;AAG3C,UAAM,YAAY,CAAE,MAAM,qBAAqB,GAAG;AAGlD,QAAI;AACJ,QAAI,WAAW;AACb,MAAE,MAAI;AAAA,QACJ,MAAM,GAAG,KAAK,gBAAgB,CAAC;AAAA,MACjC;AACA,oBAAc,MAAM,kBAAkB;AAAA,QACpC,SAAS;AAAA,QACT,aAAa;AAAA,MACf,CAAC;AAAA,IACH;AAGA,UAAM,eAAe,MAAM,mBAAmB;AAE9C,UAAM,IAAM,UAAQ;AAGpB,QAAI,aAAa,aAAa;AAC5B,QAAE,MAAM,4BAA4B;AACpC,YAAM,gBAAgB,EAAE,aAAa,WAAW,IAAI,CAAC;AACrD,QAAE,KAAK,2BAA2B;AAElC,QAAE,MAAM,yBAAyB;AACjC,UAAI;AACF,cAAM,YAAY,GAAG;AACrB,UAAE,KAAK,wBAAwB;AAAA,MACjC,QAAQ;AACN,UAAE,KAAK,GAAG,OAAO,iDAA4C,CAAC;AAAA,MAChE;AAAA,IACF;AAGA,MAAE,MAAM,qBAAqB,GAAG,KAAK,aAAa,IAAI,CAAC,EAAE;AACzD,UAAM,cAAc;AAAA,MAClB,WAAW,aAAa;AAAA,MACxB;AAAA,IACF,CAAC;AACD,MAAE,KAAK,eAAe;AAEtB,IAAE;AAAA,MACA;AAAA,QACE,GAAG,GAAG,IAAI,QAAG,CAAC,IAAI,GAAG,KAAK,UAAU,aAAa,IAAI,WAAW,CAAC;AAAA,QACjE,GAAG,GAAG,IAAI,QAAG,CAAC,IAAI,GAAG,KAAK,UAAU,aAAa,IAAI,SAAS,CAAC;AAAA,QAC/D,GAAG,GAAG,IAAI,QAAG,CAAC,IAAI,GAAG,KAAK,UAAU,aAAa,IAAI,SAAS,CAAC;AAAA,QAC/D,GAAG,GAAG,IAAI,QAAG,CAAC,IAAI,GAAG,KAAK,UAAU,aAAa,IAAI,UAAU,CAAC;AAAA,QAChE,GAAG,GAAG,IAAI,QAAG,CAAC,IAAI,GAAG,KAAK,UAAU,aAAa,IAAI,SAAS,CAAC;AAAA,MACjE,EAAE,KAAK,IAAI;AAAA,MACX;AAAA,IACF;AAEA,IAAE;AAAA,MACA,GAAG,IAAI,IAAI,GAAG,MAAM,SAAS,GAAG,KAAK,aAAa,IAAI,CAAC,YAAY,CAAC;AAAA,IACtE;AAAA,EACF;AACF,CAAC;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/commands/secrets/delete.ts"],"sourcesContent":["import { defineCommand } from \"citty\";\nimport * as p from \"@clack/prompts\";\nimport pc from \"picocolors\";\nimport { readFile, writeFile } from \"node:fs/promises\";\nimport { join } from \"node:path\";\nimport { getAuthToken } from \"../../utils/auth.js\";\n\nconst LOGO = \"🦋\";\n\ninterface CloudSecret {\n key: string;\n}\n\nasync function fetchSecretsFromCloud(): Promise<CloudSecret[]> {\n // TODO: Implement real API call to Kalp Cloud\n return [{ key: \"STRIPE_SECRET_KEY\" }, { key: \"OPENAI_API_KEY\" }];\n}\n\nasync function deleteSecretFromCloud(key: string): Promise<void> {\n // TODO: Implement real API call to Kalp Cloud\n console.log(pc.dim(`[Simulated] Deleting secret ${key} from Kalp Cloud...`));\n}\n\nasync function removeSecretFromLocalConfig(\n cwd: string,\n key: string,\n): Promise<void> {\n const configPath = join(cwd, \"kalp.config.ts\");\n let content: string;\n\n try {\n content = await readFile(configPath, \"utf-8\");\n } catch {\n throw new Error(\"kalp.config.ts not found. Run `kalp init` first.\");\n }\n\n // Check if key exists\n const regex = new RegExp(`[\"']${key}[\"']`);\n if (!regex.test(content)) {\n // Key not in local config, that's ok\n throw new Error(`Secret ${key} not found in local config`);\n }\n\n // Remove secret from array\n const match = content.match(/secrets:\\s*\\[([^\\]]*)\\]/);\n\n if (!match) {\n throw new Error(\"Could not find secrets array in kalp.config.ts\");\n }\n\n const currentArray = match[1];\n if (!currentArray) {\n throw new Error(\"Secrets array is empty in kalp.config.ts\");\n }\n\n // Remove the key and clean up commas\n let newArray = currentArray\n .replace(new RegExp(`[\"']${key}[\"']\\\\s*,?\\\\s*`), \"\")\n .trim();\n // Remove trailing comma if any\n newArray = newArray.replace(/,\\s*$/, \"\");\n\n content = content.replace(\n /secrets:\\s*\\[([^\\]]*)\\]/,\n `secrets: [${newArray}]`,\n );\n\n await writeFile(configPath, content, \"utf-8\");\n}\n\nasync function removeSecretFromTypes(cwd: string, key: string): Promise<void> {\n const dtsPath = join(cwd, \"kalp.d.ts\");\n let content: string;\n\n try {\n content = await readFile(dtsPath, \"utf-8\");\n } catch {\n // File doesn't exist, nothing to do\n return;\n }\n\n // Check if key exists\n if (!content.includes(`\"${key}\"`)) {\n return; // Not there, skip\n }\n\n // Remove key from the keys tuple\n const match = content.match(/keys:\\s*\\[([^\\]]*)\\]/);\n if (!match) {\n return; // No keys array found\n }\n\n const currentArray = match[1];\n if (!currentArray) {\n return;\n }\n\n // Remove the key and clean up commas\n let newArray = currentArray\n .replace(new RegExp(`[\"']${key}[\"']\\\\s*,?\\\\s*`), \"\")\n .trim();\n // Remove trailing comma if any\n newArray = newArray.replace(/,\\s*$/, \"\");\n\n content = content.replace(/keys:\\s*\\[([^\\]]*)\\]/, `keys: [${newArray}]`);\n\n await writeFile(dtsPath, content, \"utf-8\");\n}\n\nexport default defineCommand({\n meta: {\n name: \"delete\",\n description: \"Delete a secret from Kalp Cloud and local config\",\n },\n args: {\n key: {\n type: \"string\",\n alias: \"k\",\n description: \"Secret key name to delete\",\n },\n help: {\n type: \"boolean\",\n alias: \"h\",\n description: \"Show help\",\n default: false,\n },\n yes: {\n type: \"boolean\",\n alias: \"y\",\n description: \"Skip confirmation\",\n default: false,\n },\n },\n async run({ args }) {\n const cwd = process.cwd();\n\n if (args.help) {\n p.log.info(`${pc.bold(\"Usage\")}: kalp secrets delete -k <key>`);\n p.log.info(pc.dim(\"Example: kalp secrets delete -k STRIPE_SECRET_KEY\"));\n return;\n }\n\n p.intro(`${LOGO} ${pc.bold(\"kalp secrets delete\")}`);\n\n const token = await getAuthToken();\n if (!token) {\n p.log.warn(pc.yellow(\"Not logged in. Run `kalp login` first.\"));\n p.outro(\"Authentication required\");\n return;\n }\n\n let key = args.key;\n\n // Interactive selection if not provided\n if (!key) {\n const secrets = await fetchSecretsFromCloud();\n if (secrets.length === 0) {\n p.log.info(pc.dim(\"No secrets found in Kalp Cloud.\"));\n p.outro(\"Nothing to delete\");\n return;\n }\n\n const selected = await p.select({\n message: \"Select a secret to delete\",\n options: secrets.map((s) => ({ value: s.key, label: s.key })),\n });\n\n if (p.isCancel(selected)) {\n p.outro(\"Cancelled\");\n return;\n }\n\n key = selected as string;\n }\n\n // Confirmation unless --yes flag\n if (!args.yes) {\n const confirm = await p.confirm({\n message: `Are you sure you want to delete ${pc.cyan(key)}? This action cannot be undone.`,\n initialValue: false,\n });\n\n if (p.isCancel(confirm) || !confirm) {\n p.outro(\"Cancelled\");\n return;\n }\n }\n\n const s = p.spinner();\n s.start(`Deleting ${pc.cyan(key)}...`);\n\n try {\n // Delete from cloud (simulated)\n await deleteSecretFromCloud(key);\n\n // Remove from local config\n await removeSecretFromLocalConfig(cwd, key);\n\n // Remove from types\n await removeSecretFromTypes(cwd, key);\n\n s.stop(`Secret ${pc.cyan(key)} deleted successfully`);\n p.outro(\"Done\");\n } catch (error) {\n s.stop(\"Failed to delete secret\");\n p.log.error(\n pc.red(\n `Error: ${error instanceof Error ? error.message : String(error)}`,\n ),\n );\n p.outro(\"Failed\");\n process.exit(1);\n }\n },\n});\n"],"mappings":"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","names":["s","confirm"]}
|