@kalphq/cli 0.0.0-dev-20260416062424 → 0.0.0-dev-20260416083945

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.
Files changed (61) hide show
  1. package/dist/{chunk-FBVCQTQN.js → chunk-AME2JH3Z.js} +90 -7
  2. package/dist/chunk-AME2JH3Z.js.map +1 -0
  3. package/dist/chunk-LAKPXKSS.js +37 -0
  4. package/dist/chunk-LAKPXKSS.js.map +1 -0
  5. package/dist/create-445EVHYA.js +71 -0
  6. package/dist/create-445EVHYA.js.map +1 -0
  7. package/dist/index.js +56 -3
  8. package/dist/index.js.map +1 -1
  9. package/dist/{init-FLJXMJQZ.js → init-O7CMWTZ6.js} +23 -36
  10. package/dist/init-O7CMWTZ6.js.map +1 -0
  11. package/dist/link-V3ZDZKDE.js +22 -0
  12. package/dist/link-V3ZDZKDE.js.map +1 -0
  13. package/dist/login-NLTYFJL7.js +26 -0
  14. package/dist/login-NLTYFJL7.js.map +1 -0
  15. package/dist/logout-6ZYZGGVI.js +26 -0
  16. package/dist/logout-6ZYZGGVI.js.map +1 -0
  17. package/dist/push-RUBMCAYR.js +103 -0
  18. package/dist/push-RUBMCAYR.js.map +1 -0
  19. package/package.json +5 -3
  20. package/templates/agents/b2b-sales/index.ts +32 -3
  21. package/templates/agents/b2b-sales/signals/deal-won.ts +31 -0
  22. package/templates/agents/b2b-sales/signals/hot-lead-alert.ts +29 -0
  23. package/templates/agents/b2b-sales/steps/qualify-prospect.ts +50 -0
  24. package/templates/agents/b2b-sales/tools/send-slack-notification.ts +26 -0
  25. package/templates/agents/b2b-sales/webhooks/crm-inbound.ts +27 -0
  26. package/templates/agents/b2b-sales/webhooks/stripe-payment.ts +27 -0
  27. package/templates/agents/customer-support/index.ts +37 -5
  28. package/templates/agents/customer-support/signals/escalation-needed.ts +28 -0
  29. package/templates/agents/customer-support/signals/ticket-resolved.ts +29 -0
  30. package/templates/agents/customer-support/steps/escalate-ticket.ts +53 -0
  31. package/templates/agents/customer-support/tools/create-jira-issue.ts +30 -0
  32. package/templates/agents/customer-support/webhooks/slack-escalation.ts +27 -0
  33. package/templates/agents/customer-support/webhooks/zendesk-ticket.ts +29 -0
  34. package/templates/agents/financial-agent/index.ts +24 -2
  35. package/templates/agents/financial-agent/signals/market-alert.ts +31 -0
  36. package/templates/agents/financial-agent/signals/portfolio-rebalance.ts +27 -0
  37. package/templates/agents/financial-agent/steps/rebalance-check.ts +55 -0
  38. package/templates/agents/financial-agent/tools/send-email-alert.ts +31 -0
  39. package/templates/agents/financial-agent/webhooks/exchange-webhook.ts +33 -0
  40. package/templates/agents/financial-agent/webhooks/tradingview-alert.ts +30 -0
  41. package/templates/agents/minimal/index.ts +10 -2
  42. package/templates/agents/minimal/signals/error-alert.ts +26 -0
  43. package/templates/agents/minimal/signals/task-complete.ts +25 -0
  44. package/templates/agents/minimal/steps/transform-data.ts +32 -0
  45. package/templates/agents/minimal/tools/http-request.ts +26 -0
  46. package/templates/agents/minimal/webhooks/generic-inbound.ts +25 -0
  47. package/templates/agents/minimal/webhooks/health-check.ts +23 -0
  48. package/dist/build-WJ6ZTDWJ.js +0 -121
  49. package/dist/build-WJ6ZTDWJ.js.map +0 -1
  50. package/dist/chunk-FBVCQTQN.js.map +0 -1
  51. package/dist/create-AMCRXGOA.js +0 -116
  52. package/dist/create-AMCRXGOA.js.map +0 -1
  53. package/dist/init-FLJXMJQZ.js.map +0 -1
  54. package/templates/agents/b2b-sales/signals/.gitkeep +0 -0
  55. package/templates/agents/b2b-sales/webhooks/.gitkeep +0 -0
  56. package/templates/agents/customer-support/signals/.gitkeep +0 -0
  57. package/templates/agents/customer-support/webhooks/.gitkeep +0 -0
  58. package/templates/agents/financial-agent/signals/.gitkeep +0 -0
  59. package/templates/agents/financial-agent/webhooks/.gitkeep +0 -0
  60. package/templates/agents/minimal/signals/.gitkeep +0 -0
  61. package/templates/agents/minimal/webhooks/.gitkeep +0 -0
@@ -1,116 +0,0 @@
1
- #!/usr/bin/env node
2
- import {
3
- TEMPLATES,
4
- scaffoldAgent,
5
- scaffoldProject
6
- } from "./chunk-FBVCQTQN.js";
7
-
8
- // src/commands/create.ts
9
- import { join } from "path";
10
- import { access } from "fs/promises";
11
- import { execSync } from "child_process";
12
- import { defineCommand } from "citty";
13
- import * as p from "@clack/prompts";
14
- import pc from "picocolors";
15
- var LOGO = "\u{1F98B}";
16
- var create_default = defineCommand({
17
- meta: { name: "create", description: "Add a new agent to the project" },
18
- async run() {
19
- const cwd = process.cwd();
20
- p.intro(`${LOGO} ${pc.bold("kalp create")}`);
21
- let needsInit = false;
22
- try {
23
- await access(join(cwd, "kalp.config.ts"));
24
- } catch {
25
- needsInit = true;
26
- }
27
- let projectName;
28
- if (needsInit) {
29
- p.log.warn(
30
- `No ${pc.cyan("kalp.config.ts")} found \u2014 initializing project first.`
31
- );
32
- const initAnswers = await p.group(
33
- {
34
- name: () => p.text({
35
- message: "Project name?",
36
- placeholder: "my-project",
37
- validate: (v) => {
38
- if (!v.trim()) return "Project name is required.";
39
- if (!/^[a-z0-9-]+$/.test(v))
40
- return "Use lowercase letters, numbers, and dashes only.";
41
- }
42
- })
43
- },
44
- {
45
- onCancel: () => {
46
- p.cancel("Cancelled.");
47
- process.exit(0);
48
- }
49
- }
50
- );
51
- projectName = initAnswers.name;
52
- }
53
- const agentAnswers = await p.group(
54
- {
55
- name: () => p.text({
56
- message: "Agent name?",
57
- placeholder: "my-agent",
58
- validate: (v) => {
59
- if (!v.trim()) return "Agent name is required.";
60
- if (!/^[a-z0-9-]+$/.test(v))
61
- return "Use lowercase letters, numbers, and dashes only.";
62
- }
63
- }),
64
- template: () => p.select({
65
- message: "Choose a template",
66
- options: TEMPLATES.map((t) => ({
67
- value: t.id,
68
- label: t.label,
69
- hint: pc.dim(t.hint)
70
- }))
71
- })
72
- },
73
- {
74
- onCancel: () => {
75
- p.cancel("Cancelled.");
76
- process.exit(0);
77
- }
78
- }
79
- );
80
- const s = p.spinner();
81
- if (needsInit && projectName) {
82
- s.start("Creating project structure");
83
- await scaffoldProject({ projectName, targetDir: cwd });
84
- s.stop("Project structure created");
85
- s.start("Installing dependencies");
86
- try {
87
- execSync("npm install", { cwd, stdio: "pipe" });
88
- s.stop("Dependencies installed");
89
- } catch {
90
- s.stop(pc.yellow("Install failed \u2014 run npm install manually."));
91
- }
92
- }
93
- s.start(`Scaffolding agent ${pc.cyan(agentAnswers.name)}`);
94
- await scaffoldAgent({
95
- agentName: agentAnswers.name,
96
- templateId: agentAnswers.template,
97
- cwd
98
- });
99
- s.stop("Agent created");
100
- p.note(
101
- [
102
- `${pc.dim("\u2022")} ${pc.cyan(`agents/${agentAnswers.name}/index.ts`)}`,
103
- `${pc.dim("\u2022")} ${pc.cyan(`agents/${agentAnswers.name}/steps/`)}`,
104
- `${pc.dim("\u2022")} ${pc.cyan(`agents/${agentAnswers.name}/tools/`)}`
105
- ].join("\n"),
106
- "Created"
107
- );
108
- p.outro(
109
- `${LOGO} ${pc.green(`Agent ${pc.bold(agentAnswers.name)} is ready.`)}`
110
- );
111
- }
112
- });
113
- export {
114
- create_default as default
115
- };
116
- //# sourceMappingURL=create-AMCRXGOA.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/commands/create.ts"],"sourcesContent":["import { join } from \"node:path\";\nimport { access } from \"node:fs/promises\";\nimport { execSync } from \"node:child_process\";\nimport { defineCommand } from \"citty\";\nimport * as p from \"@clack/prompts\";\nimport pc from \"picocolors\";\nimport { scaffoldProject, scaffoldAgent } from \"../scaffold.js\";\nimport { TEMPLATES, type TemplateId } from \"../templates/index.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 let needsInit = false;\n try {\n await access(join(cwd, \"kalp.config.ts\"));\n } catch {\n needsInit = true;\n }\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\n const initAnswers = await p.group(\n {\n name: () =>\n p.text({\n message: \"Project name?\",\n placeholder: \"my-project\",\n validate: (v) => {\n if (!v.trim()) return \"Project name is required.\";\n if (!/^[a-z0-9-]+$/.test(v))\n return \"Use lowercase letters, numbers, and dashes only.\";\n },\n }),\n },\n {\n onCancel: () => {\n p.cancel(\"Cancelled.\");\n process.exit(0);\n },\n },\n );\n\n projectName = initAnswers.name;\n }\n\n // ── Agent prompts ────────────────────────────────────────────────────\n const agentAnswers = await p.group(\n {\n name: () =>\n p.text({\n message: \"Agent name?\",\n placeholder: \"my-agent\",\n validate: (v) => {\n if (!v.trim()) return \"Agent name is required.\";\n if (!/^[a-z0-9-]+$/.test(v))\n return \"Use lowercase letters, numbers, and dashes only.\";\n },\n }),\n template: () =>\n p.select<TemplateId>({\n message: \"Choose a template\",\n options: TEMPLATES.map((t) => ({\n value: t.id,\n label: t.label,\n hint: pc.dim(t.hint),\n })),\n }),\n },\n {\n onCancel: () => {\n p.cancel(\"Cancelled.\");\n process.exit(0);\n },\n },\n );\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 execSync(\"npm install\", { cwd, stdio: \"pipe\" });\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 templateId: agentAnswers.template as TemplateId,\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 ].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":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/commands/init.ts"],"sourcesContent":["import { join, resolve, basename } from \"node:path\";\nimport { access, mkdir } from \"node:fs/promises\";\nimport { execSync } from \"node:child_process\";\nimport { defineCommand } from \"citty\";\nimport * as p from \"@clack/prompts\";\nimport pc from \"picocolors\";\nimport { scaffoldProject } from \"../scaffold.js\";\n\nconst LOGO = \"🦋\";\n\nexport default defineCommand({\n meta: { name: \"init\", description: \"Scaffold a new Kalp project\" },\n async run() {\n const cwd = process.cwd();\n\n p.intro(`${LOGO} ${pc.bold(\"kalp init\")}`);\n\n const answers = await p.group(\n {\n name: () =>\n p.text({\n message: \"What is the name of your project?\",\n placeholder: \"my-agent\",\n initialValue: \"\",\n validate: (v) => {\n if (!v.trim()) return \"Project name is required.\";\n if (v.trim() !== \".\" && !/^[a-z0-9-]+$/.test(v))\n return \"Use lowercase letters, numbers, and dashes only (or . for current directory).\";\n },\n }),\n },\n {\n onCancel: () => {\n p.cancel(\"Setup cancelled.\");\n process.exit(0);\n },\n },\n );\n\n const isCurrentDir = answers.name.trim() === \".\";\n const targetDir = isCurrentDir ? cwd : resolve(cwd, answers.name);\n const projectName = isCurrentDir ? basename(cwd) : answers.name;\n\n // ── Guard: already initialized ───────────────────────────────────────\n try {\n await access(join(targetDir, \"kalp.config.ts\"));\n p.log.error(\n `${pc.cyan(\"kalp.config.ts\")} already exists in ${pc.cyan(targetDir)}. Run ${pc.cyan(\"kalp create\")} to add an agent.`,\n );\n process.exit(1);\n } catch {\n // expected: file doesn't exist yet\n }\n\n // ── Create target directory if needed ─────────────────────────────────\n if (!isCurrentDir) {\n await mkdir(targetDir, { recursive: true });\n }\n\n const s = p.spinner();\n\n s.start(\"Creating project structure\");\n await scaffoldProject({ projectName, targetDir });\n s.stop(\"Project structure created\");\n\n s.start(\"Installing dependencies\");\n try {\n execSync(\"npm install\", { cwd: targetDir, stdio: \"pipe\" });\n s.stop(\"Dependencies installed\");\n } catch (err) {\n const msg = err instanceof Error ? err.message : String(err);\n s.stop(pc.yellow(\"Install failed\"));\n p.log.warn(\n `Run ${pc.cyan(\"npm install\")} manually in ${isCurrentDir ? \"this directory\" : answers.name + \"/\"}`,\n );\n p.log.info(pc.dim(msg.split(\"\\n\")[0] ?? \"Unknown error\"));\n }\n\n const cdHint = isCurrentDir\n ? \"\"\n : ` 1. ${pc.cyan(`cd ${answers.name}`)}\\n`;\n const nextStep = isCurrentDir ? \"1\" : \"2\";\n\n p.note(\n [\n `${pc.dim(\"•\")} ${pc.cyan(\"kalp.config.ts\")} ${pc.dim(\"— project config\")}`,\n `${pc.dim(\"•\")} ${pc.cyan(\"package.json\")} ${pc.dim(\"— dependencies\")}`,\n `${pc.dim(\"•\")} ${pc.cyan(\"agents/\")} ${pc.dim(\"— your agents live here\")}`,\n ``,\n `${pc.dim(\"Next:\")}`,\n `${cdHint} ${nextStep}. ${pc.cyan(\"kalp create\")} ${pc.dim(\"— add your first agent\")}`,\n ].join(\"\\n\"),\n \"You're ready 🦋\",\n );\n\n p.outro(pc.green(\"Kalp initialized successfully.\"));\n },\n});\n"],"mappings":"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","names":[]}
File without changes
File without changes
File without changes
File without changes
File without changes