eucode-cli 0.1.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.
Files changed (157) hide show
  1. package/dist/agentFinish.d.ts +10 -0
  2. package/dist/agentFinish.d.ts.map +1 -0
  3. package/dist/agentFinish.js +9 -0
  4. package/dist/agentFinish.js.map +1 -0
  5. package/dist/agentHost.d.ts +29 -0
  6. package/dist/agentHost.d.ts.map +1 -0
  7. package/dist/agentHost.js +94 -0
  8. package/dist/agentHost.js.map +1 -0
  9. package/dist/backgroundJobs.d.ts +12 -0
  10. package/dist/backgroundJobs.d.ts.map +1 -0
  11. package/dist/backgroundJobs.js +66 -0
  12. package/dist/backgroundJobs.js.map +1 -0
  13. package/dist/capabilities.d.ts +9 -0
  14. package/dist/capabilities.d.ts.map +1 -0
  15. package/dist/capabilities.js +46 -0
  16. package/dist/capabilities.js.map +1 -0
  17. package/dist/cliErrors.d.ts +3 -0
  18. package/dist/cliErrors.d.ts.map +1 -0
  19. package/dist/cliErrors.js +16 -0
  20. package/dist/cliErrors.js.map +1 -0
  21. package/dist/cloud.d.ts +17 -0
  22. package/dist/cloud.d.ts.map +1 -0
  23. package/dist/cloud.js +78 -0
  24. package/dist/cloud.js.map +1 -0
  25. package/dist/codeReview.d.ts +8 -0
  26. package/dist/codeReview.d.ts.map +1 -0
  27. package/dist/codeReview.js +64 -0
  28. package/dist/codeReview.js.map +1 -0
  29. package/dist/commands/agent.d.ts +7 -0
  30. package/dist/commands/agent.d.ts.map +1 -0
  31. package/dist/commands/agent.js +86 -0
  32. package/dist/commands/agent.js.map +1 -0
  33. package/dist/commands/capabilities.d.ts +2 -0
  34. package/dist/commands/capabilities.d.ts.map +1 -0
  35. package/dist/commands/capabilities.js +22 -0
  36. package/dist/commands/capabilities.js.map +1 -0
  37. package/dist/commands/chat.d.ts +7 -0
  38. package/dist/commands/chat.d.ts.map +1 -0
  39. package/dist/commands/chat.js +426 -0
  40. package/dist/commands/chat.js.map +1 -0
  41. package/dist/commands/db.d.ts +6 -0
  42. package/dist/commands/db.d.ts.map +1 -0
  43. package/dist/commands/db.js +17 -0
  44. package/dist/commands/db.js.map +1 -0
  45. package/dist/commands/docker.d.ts +5 -0
  46. package/dist/commands/docker.d.ts.map +1 -0
  47. package/dist/commands/docker.js +35 -0
  48. package/dist/commands/docker.js.map +1 -0
  49. package/dist/commands/init.d.ts +3 -0
  50. package/dist/commands/init.d.ts.map +1 -0
  51. package/dist/commands/init.js +34 -0
  52. package/dist/commands/init.js.map +1 -0
  53. package/dist/commands/login.d.ts +5 -0
  54. package/dist/commands/login.d.ts.map +1 -0
  55. package/dist/commands/login.js +32 -0
  56. package/dist/commands/login.js.map +1 -0
  57. package/dist/commands/mcp.d.ts +3 -0
  58. package/dist/commands/mcp.d.ts.map +1 -0
  59. package/dist/commands/mcp.js +65 -0
  60. package/dist/commands/mcp.js.map +1 -0
  61. package/dist/commands/models.d.ts +2 -0
  62. package/dist/commands/models.d.ts.map +1 -0
  63. package/dist/commands/models.js +30 -0
  64. package/dist/commands/models.js.map +1 -0
  65. package/dist/commands/new.d.ts +5 -0
  66. package/dist/commands/new.d.ts.map +1 -0
  67. package/dist/commands/new.js +31 -0
  68. package/dist/commands/new.js.map +1 -0
  69. package/dist/commands/plan.d.ts +6 -0
  70. package/dist/commands/plan.d.ts.map +1 -0
  71. package/dist/commands/plan.js +82 -0
  72. package/dist/commands/plan.js.map +1 -0
  73. package/dist/commands/pr.d.ts +6 -0
  74. package/dist/commands/pr.d.ts.map +1 -0
  75. package/dist/commands/pr.js +29 -0
  76. package/dist/commands/pr.js.map +1 -0
  77. package/dist/commands/test.d.ts +5 -0
  78. package/dist/commands/test.d.ts.map +1 -0
  79. package/dist/commands/test.js +49 -0
  80. package/dist/commands/test.js.map +1 -0
  81. package/dist/config.d.ts +18 -0
  82. package/dist/config.d.ts.map +1 -0
  83. package/dist/config.js +75 -0
  84. package/dist/config.js.map +1 -0
  85. package/dist/createProject.d.ts +5 -0
  86. package/dist/createProject.d.ts.map +1 -0
  87. package/dist/createProject.js +53 -0
  88. package/dist/createProject.js.map +1 -0
  89. package/dist/delegateAgent.d.ts +6 -0
  90. package/dist/delegateAgent.d.ts.map +1 -0
  91. package/dist/delegateAgent.js +34 -0
  92. package/dist/delegateAgent.js.map +1 -0
  93. package/dist/fileContext.d.ts +4 -0
  94. package/dist/fileContext.d.ts.map +1 -0
  95. package/dist/fileContext.js +98 -0
  96. package/dist/fileContext.js.map +1 -0
  97. package/dist/index.d.ts +3 -0
  98. package/dist/index.d.ts.map +1 -0
  99. package/dist/index.js +207 -0
  100. package/dist/index.js.map +1 -0
  101. package/dist/intensity.d.ts +13 -0
  102. package/dist/intensity.d.ts.map +1 -0
  103. package/dist/intensity.js +33 -0
  104. package/dist/intensity.js.map +1 -0
  105. package/dist/mcpConfig.d.ts +3 -0
  106. package/dist/mcpConfig.d.ts.map +1 -0
  107. package/dist/mcpConfig.js +29 -0
  108. package/dist/mcpConfig.js.map +1 -0
  109. package/dist/memory.d.ts +3 -0
  110. package/dist/memory.d.ts.map +1 -0
  111. package/dist/memory.js +16 -0
  112. package/dist/memory.js.map +1 -0
  113. package/dist/modelCatalog.d.ts +9 -0
  114. package/dist/modelCatalog.d.ts.map +1 -0
  115. package/dist/modelCatalog.js +45 -0
  116. package/dist/modelCatalog.js.map +1 -0
  117. package/dist/nodeToolHost.d.ts +4 -0
  118. package/dist/nodeToolHost.d.ts.map +1 -0
  119. package/dist/nodeToolHost.js +320 -0
  120. package/dist/nodeToolHost.js.map +1 -0
  121. package/dist/projectRules.d.ts +2 -0
  122. package/dist/projectRules.d.ts.map +1 -0
  123. package/dist/projectRules.js +57 -0
  124. package/dist/projectRules.js.map +1 -0
  125. package/dist/replOutput.d.ts +21 -0
  126. package/dist/replOutput.d.ts.map +1 -0
  127. package/dist/replOutput.js +84 -0
  128. package/dist/replOutput.js.map +1 -0
  129. package/dist/sqliteQuery.d.ts +3 -0
  130. package/dist/sqliteQuery.d.ts.map +1 -0
  131. package/dist/sqliteQuery.js +40 -0
  132. package/dist/sqliteQuery.js.map +1 -0
  133. package/dist/synthesizeAgentReply.d.ts +32 -0
  134. package/dist/synthesizeAgentReply.d.ts.map +1 -0
  135. package/dist/synthesizeAgentReply.js +173 -0
  136. package/dist/synthesizeAgentReply.js.map +1 -0
  137. package/dist/synthesizeAgentReply.test.d.ts +2 -0
  138. package/dist/synthesizeAgentReply.test.d.ts.map +1 -0
  139. package/dist/synthesizeAgentReply.test.js +35 -0
  140. package/dist/synthesizeAgentReply.test.js.map +1 -0
  141. package/dist/terminalOutput.d.ts +4 -0
  142. package/dist/terminalOutput.d.ts.map +1 -0
  143. package/dist/terminalOutput.js +34 -0
  144. package/dist/terminalOutput.js.map +1 -0
  145. package/dist/ui.d.ts +17 -0
  146. package/dist/ui.d.ts.map +1 -0
  147. package/dist/ui.js +121 -0
  148. package/dist/ui.js.map +1 -0
  149. package/dist/webFetch.d.ts +2 -0
  150. package/dist/webFetch.d.ts.map +1 -0
  151. package/dist/webFetch.js +29 -0
  152. package/dist/webFetch.js.map +1 -0
  153. package/dist/workspace.d.ts +2 -0
  154. package/dist/workspace.d.ts.map +1 -0
  155. package/dist/workspace.js +30 -0
  156. package/dist/workspace.js.map +1 -0
  157. package/package.json +49 -0
@@ -0,0 +1,5 @@
1
+ import { type ProjectTemplateId } from "@eucode/templates";
2
+ export declare function parseProjectTemplate(raw: string): ProjectTemplateId | null;
3
+ export declare function createProjectOnDisk(parentDir: string, folderName: string, template: ProjectTemplateId): Promise<string>;
4
+ export declare function executeCreateProjectTool(cwd: string, args: Record<string, unknown>): Promise<string>;
5
+ //# sourceMappingURL=createProject.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createProject.d.ts","sourceRoot":"","sources":["../src/createProject.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,mBAAmB,CAAC;AAS3B,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAG1E;AAED,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,iBAAiB,GAC1B,OAAO,CAAC,MAAM,CAAC,CAmBjB;AAED,wBAAsB,wBAAwB,CAC5C,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,MAAM,CAAC,CAqBjB"}
@@ -0,0 +1,53 @@
1
+ import { access, mkdir, writeFile } from "node:fs/promises";
2
+ import { dirname, join, resolve } from "node:path";
3
+ import { getProjectTemplate, sanitizeProjectFolderName, } from "@eucode/templates";
4
+ const VALID_TEMPLATES = [
5
+ "empty",
6
+ "landing-restaurant",
7
+ "butcher-shop",
8
+ "landing-3d",
9
+ ];
10
+ export function parseProjectTemplate(raw) {
11
+ const id = raw.trim();
12
+ return VALID_TEMPLATES.includes(id) ? id : null;
13
+ }
14
+ export async function createProjectOnDisk(parentDir, folderName, template) {
15
+ const name = sanitizeProjectFolderName(folderName);
16
+ const tpl = getProjectTemplate(template);
17
+ const projectRoot = resolve(parentDir, name);
18
+ try {
19
+ await access(projectRoot);
20
+ throw new Error(`Esiste già: ${projectRoot}`);
21
+ }
22
+ catch (e) {
23
+ if (e.code !== "ENOENT")
24
+ throw e;
25
+ }
26
+ await mkdir(projectRoot, { recursive: true });
27
+ for (const file of tpl.files) {
28
+ const target = join(projectRoot, file.path);
29
+ await mkdir(dirname(target), { recursive: true });
30
+ await writeFile(target, file.content, "utf8");
31
+ }
32
+ return projectRoot;
33
+ }
34
+ export async function executeCreateProjectTool(cwd, args) {
35
+ const template = parseProjectTemplate(String(args.template ?? "landing-3d"));
36
+ if (!template) {
37
+ return `Template non valido. Usa: ${VALID_TEMPLATES.join(", ")}.`;
38
+ }
39
+ const pathArg = String(args.path ?? "").trim();
40
+ const nameArg = String(args.name ?? "").trim();
41
+ if (pathArg.includes("/") || pathArg.includes("\\")) {
42
+ const normalized = pathArg.replace(/\\/g, "/");
43
+ const idx = normalized.lastIndexOf("/");
44
+ const parentDir = resolve(normalized.slice(0, idx) || cwd);
45
+ const folderName = nameArg || normalized.slice(idx + 1);
46
+ const root = await createProjectOnDisk(parentDir, folderName, template);
47
+ return `Progetto creato in ${root}`;
48
+ }
49
+ const folderName = nameArg || pathArg || "nuovo-progetto";
50
+ const root = await createProjectOnDisk(cwd, folderName, template);
51
+ return `Progetto creato in ${root}`;
52
+ }
53
+ //# sourceMappingURL=createProject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createProject.js","sourceRoot":"","sources":["../src/createProject.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare function delegateAgentTask(task: string, options: {
2
+ cwd: string;
3
+ model?: string;
4
+ maxSteps?: number;
5
+ }): Promise<string>;
6
+ //# sourceMappingURL=delegateAgent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegateAgent.d.ts","sourceRoot":"","sources":["../src/delegateAgent.ts"],"names":[],"mappings":"AAIA,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1D,OAAO,CAAC,MAAM,CAAC,CA4BjB"}
@@ -0,0 +1,34 @@
1
+ import { spawn } from "node:child_process";
2
+ import { dirname, join } from "node:path";
3
+ import { fileURLToPath } from "node:url";
4
+ export async function delegateAgentTask(task, options) {
5
+ const cliEntry = join(dirname(fileURLToPath(import.meta.url)), "index.js");
6
+ const args = ["agent", task, "-C", options.cwd];
7
+ if (options.model)
8
+ args.push("-m", options.model);
9
+ if (options.maxSteps)
10
+ args.push("--max-steps", String(options.maxSteps));
11
+ return new Promise((resolve, reject) => {
12
+ let output = "";
13
+ const child = spawn(process.execPath, [cliEntry, ...args], {
14
+ cwd: options.cwd,
15
+ env: process.env,
16
+ stdio: ["ignore", "pipe", "pipe"],
17
+ });
18
+ child.stdout.on("data", (c) => {
19
+ output += c.toString();
20
+ });
21
+ child.stderr.on("data", (c) => {
22
+ output += c.toString();
23
+ });
24
+ child.on("error", reject);
25
+ child.on("close", (code) => {
26
+ if (code !== 0 && !output.trim()) {
27
+ reject(new Error(`Sub-agent exit ${code ?? 1}`));
28
+ return;
29
+ }
30
+ resolve(output.trim().slice(-4000) || "Sub-agent completato.");
31
+ });
32
+ });
33
+ }
34
+ //# sourceMappingURL=delegateAgent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegateAgent.js","sourceRoot":"","sources":["../src/delegateAgent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,IAAY,EACZ,OAA2D;IAE3D,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAC3E,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IAChD,IAAI,OAAO,CAAC,KAAK;QAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAClD,IAAI,OAAO,CAAC,QAAQ;QAAE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEzE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,EAAE;YACzD,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;SAClC,CAAC,CAAC;QACH,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE;YACpC,MAAM,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE;YACpC,MAAM,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC1B,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACzB,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;gBACjC,MAAM,CAAC,IAAI,KAAK,CAAC,kBAAkB,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBACjD,OAAO;YACT,CAAC;YACD,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,uBAAuB,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { type FileReader } from "@eucode/context";
2
+ export declare function createCliFileReader(cwd: string): FileReader;
3
+ export declare function enrichPromptWithFileContext(cwd: string, userText: string): Promise<string>;
4
+ //# sourceMappingURL=fileContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileContext.d.ts","sourceRoot":"","sources":["../src/fileContext.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,UAAU,EAEhB,MAAM,iBAAiB,CAAC;AASzB,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAiC3D;AAqCD,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,CAWjB"}
@@ -0,0 +1,98 @@
1
+ import { readdir, readFile } from "node:fs/promises";
2
+ import { join, relative, resolve } from "node:path";
3
+ import { buildContextPrompt, parseMentions, } from "@eucode/context";
4
+ function safePath(root, rel) {
5
+ const abs = resolve(root, rel.replace(/^\.\//, ""));
6
+ const relPath = relative(root, abs);
7
+ if (relPath.startsWith("..") || relPath.includes(".."))
8
+ return null;
9
+ return abs;
10
+ }
11
+ export function createCliFileReader(cwd) {
12
+ return {
13
+ async readFile(rel) {
14
+ const p = safePath(cwd, rel);
15
+ if (!p)
16
+ return null;
17
+ try {
18
+ return await readFile(p, "utf8");
19
+ }
20
+ catch {
21
+ return null;
22
+ }
23
+ },
24
+ getActiveFile() {
25
+ return null;
26
+ },
27
+ async listFiles(glob) {
28
+ const files = [];
29
+ async function walk(dir, prefix = "") {
30
+ const entries = await readdir(dir, { withFileTypes: true });
31
+ for (const ent of entries) {
32
+ if (ent.name.startsWith(".") || ent.name === "node_modules")
33
+ continue;
34
+ const rel = prefix ? `${prefix}/${ent.name}` : ent.name;
35
+ if (ent.isDirectory())
36
+ await walk(join(dir, ent.name), rel);
37
+ else if (!glob || rel.includes(glob))
38
+ files.push(rel);
39
+ }
40
+ }
41
+ try {
42
+ await walk(cwd);
43
+ }
44
+ catch {
45
+ return [];
46
+ }
47
+ return files.slice(0, 500);
48
+ },
49
+ };
50
+ }
51
+ function createCliWorkspaceSearch(cwd) {
52
+ return {
53
+ async grep(pattern, maxResults = 20) {
54
+ const hits = [];
55
+ async function scan(dir, prefix = "") {
56
+ if (hits.length >= maxResults)
57
+ return;
58
+ const entries = await readdir(dir, { withFileTypes: true });
59
+ for (const ent of entries) {
60
+ if (hits.length >= maxResults)
61
+ return;
62
+ if (ent.name.startsWith(".") || ent.name === "node_modules")
63
+ continue;
64
+ const rel = prefix ? `${prefix}/${ent.name}` : ent.name;
65
+ const abs = join(dir, ent.name);
66
+ if (ent.isDirectory()) {
67
+ await scan(abs, rel);
68
+ continue;
69
+ }
70
+ try {
71
+ const text = await readFile(abs, "utf8");
72
+ for (const [i, line] of text.split("\n").entries()) {
73
+ if (hits.length >= maxResults)
74
+ return;
75
+ if (line.includes(pattern)) {
76
+ hits.push({ path: rel, line: i + 1, text: line.trim() });
77
+ }
78
+ }
79
+ }
80
+ catch {
81
+ /* skip binary */
82
+ }
83
+ }
84
+ }
85
+ await scan(cwd);
86
+ return hits;
87
+ },
88
+ };
89
+ }
90
+ export async function enrichPromptWithFileContext(cwd, userText) {
91
+ const hasMentions = parseMentions(userText).length > 0 ||
92
+ userText.includes("@file") ||
93
+ userText.includes("@codebase");
94
+ if (!hasMentions)
95
+ return userText;
96
+ return buildContextPrompt(userText, createCliFileReader(cwd), createCliWorkspaceSearch(cwd));
97
+ }
98
+ //# sourceMappingURL=fileContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileContext.js","sourceRoot":"","sources":["../src/fileContext.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js ADDED
@@ -0,0 +1,207 @@
1
+ #!/usr/bin/env node
2
+ import { Command } from "commander";
3
+ import { runChatCommand } from "./commands/chat.js";
4
+ import { runAgentCommand } from "./commands/agent.js";
5
+ import { runPlanCommand } from "./commands/plan.js";
6
+ import { runModelsCommand } from "./commands/models.js";
7
+ import { runLoginCommand } from "./commands/login.js";
8
+ import { runInitCommand } from "./commands/init.js";
9
+ import { runNewCommand } from "./commands/new.js";
10
+ import { runMcpListCommand, runMcpTestCommand } from "./commands/mcp.js";
11
+ import { runTestCommand } from "./commands/test.js";
12
+ import { runDockerCommand } from "./commands/docker.js";
13
+ import { runDbCommand } from "./commands/db.js";
14
+ import { runPrCommand } from "./commands/pr.js";
15
+ import { runCapabilitiesCommand } from "./commands/capabilities.js";
16
+ import { printBanner, printHelpHint } from "./ui.js";
17
+ import { loadIntensity } from "./intensity.js";
18
+ import { loadCliConfigFile, resolveModel } from "./config.js";
19
+ const program = new Command();
20
+ program
21
+ .name("eucoder")
22
+ .description("EUCoder CLI — chat e agent AI via cloud EU")
23
+ .version("0.2.0")
24
+ .option("--no-banner", "Nascondi banner all'avvio")
25
+ .hook("preAction", (_thisCommand, actionCommand) => {
26
+ const root = program.opts();
27
+ const isHelp = process.argv.some((a) => a === "--help" || a === "-h");
28
+ const isRepl = actionCommand.name() === "chat" || actionCommand.name() === "start";
29
+ if (root.banner !== false && !isHelp && isRepl) {
30
+ return;
31
+ }
32
+ if (root.banner !== false && !isHelp && actionCommand.name() !== "help") {
33
+ printBanner("groq-llama4-scout", "bilanciato");
34
+ }
35
+ });
36
+ async function runChatLikeAction(opts) {
37
+ const file = await loadCliConfigFile();
38
+ const modelId = resolveModel(file, opts.model);
39
+ const intensity = await loadIntensity();
40
+ const root = program.opts();
41
+ if (root.banner !== false && !opts.prompt?.trim()) {
42
+ printBanner(modelId, intensity);
43
+ }
44
+ await runChatCommand({
45
+ model: opts.model,
46
+ once: opts.prompt,
47
+ local: opts.local,
48
+ dir: opts.dir,
49
+ });
50
+ }
51
+ function registerReplCommand(name, description) {
52
+ program
53
+ .command(name)
54
+ .description(description)
55
+ .option("-m, --model <id>", "Modello cloud (default: groq-llama4-scout)")
56
+ .option("-p, --prompt <text>", "Singolo messaggio (non interattivo)")
57
+ .option("-C, --dir <path>", "Cartella di lavoro (default: cwd)")
58
+ .option("--local", "Usa Ollama locale (http://127.0.0.1:11434) invece dell'API cloud")
59
+ .action((opts) => runChatLikeAction(opts));
60
+ }
61
+ registerReplCommand("chat", "Chat interattiva con streaming (tool automatici se sei in un progetto)");
62
+ registerReplCommand("start", "Avvia la REPL interattiva (alias di chat)");
63
+ program
64
+ .command("agent")
65
+ .description("Esegui un task agent con tool file/terminal/git/MCP")
66
+ .argument("[task]", "Descrizione del task")
67
+ .option("-p, --prompt <text>", "Task (alternativa all'argomento posizionale)")
68
+ .option("-m, --model <id>", "Modello cloud")
69
+ .option("-C, --cwd <dir>", "Cartella di lavoro", process.cwd())
70
+ .option("--max-steps <n>", "Limite step agent (12-32)", "24")
71
+ .option("--delegate", "Esegui come sub-agent in subprocess e restituisci summary")
72
+ .action(async (task, opts) => {
73
+ const text = (opts.prompt ?? task ?? "").trim();
74
+ if (!text) {
75
+ console.error('Specifica un task: eucoder agent "fix i test" oppure eucoder agent -p "git status"');
76
+ process.exitCode = 1;
77
+ return;
78
+ }
79
+ const maxSteps = Math.min(32, Math.max(12, Number.parseInt(opts.maxSteps ?? "24", 10) || 24));
80
+ await runAgentCommand(text, { ...opts, maxSteps });
81
+ });
82
+ program
83
+ .command("run")
84
+ .description("Esegui un task agent (alias di agent)")
85
+ .argument("[task]", "Descrizione del task")
86
+ .option("-p, --prompt <text>", "Task (alternativa all'argomento)")
87
+ .option("-m, --model <id>", "Modello cloud")
88
+ .option("-C, --cwd <dir>", "Cartella di lavoro", process.cwd())
89
+ .action(async (task, opts) => {
90
+ const text = (opts.prompt ?? task ?? "").trim();
91
+ if (!text) {
92
+ console.error('Specifica un task: eucoder run "fix i test"');
93
+ process.exitCode = 1;
94
+ return;
95
+ }
96
+ await runAgentCommand(text, { ...opts, maxSteps: 24 });
97
+ });
98
+ program
99
+ .command("plan")
100
+ .description("Analisi e pianificazione senza modifiche al codice (read-only)")
101
+ .argument("[task]", "Descrizione dell'analisi")
102
+ .option("-p, --prompt <text>", "Task (alternativa all'argomento)")
103
+ .option("-m, --model <id>", "Modello cloud")
104
+ .option("-C, --cwd <dir>", "Cartella di lavoro", process.cwd())
105
+ .action(async (task, opts) => {
106
+ const text = (opts.prompt ?? task ?? "").trim();
107
+ if (!text) {
108
+ console.error('Specifica un task: eucoder plan "analizza il codice"');
109
+ process.exitCode = 1;
110
+ return;
111
+ }
112
+ await runPlanCommand(text, opts);
113
+ });
114
+ program
115
+ .command("mcp")
116
+ .description("Server MCP configurati")
117
+ .argument("[action]", "list | test", "list")
118
+ .option("-C, --cwd <dir>", "Cartella di lavoro", process.cwd())
119
+ .option("-s, --server <name>", "Server MCP da testare (solo con test)")
120
+ .action(async (action, opts) => {
121
+ const cwd = opts.cwd ?? process.cwd();
122
+ const cmd = (action ?? "list").toLowerCase();
123
+ if (cmd === "test")
124
+ await runMcpTestCommand(cwd, opts.server);
125
+ else
126
+ await runMcpListCommand(cwd);
127
+ });
128
+ program
129
+ .command("test")
130
+ .description("Esegue test del progetto (pnpm test, con --filter in monorepo)")
131
+ .option("-C, --cwd <dir>", "Cartella di lavoro", process.cwd())
132
+ .option("-f, --filter <pkg>", "Filtro pnpm (es. @eucode/cli)")
133
+ .action(async (opts) => {
134
+ await runTestCommand(opts);
135
+ });
136
+ program
137
+ .command("docker")
138
+ .description("Wrapper Docker sicuro (ps, compose up/down, logs)")
139
+ .argument("[sub]", "ps | up | down | logs | images | compose", "ps")
140
+ .option("-C, --cwd <dir>", "Cartella di lavoro", process.cwd())
141
+ .action(async (sub, opts) => {
142
+ await runDockerCommand(sub, opts);
143
+ });
144
+ program
145
+ .command("db")
146
+ .description("Query SQLite readonly su file .db nel progetto")
147
+ .option("-C, --cwd <dir>", "Cartella di lavoro", process.cwd())
148
+ .option("-p, --path <file>", "Percorso file .db")
149
+ .option("-q, --sql <query>", "Query SELECT")
150
+ .action(async (opts) => {
151
+ await runDbCommand(opts);
152
+ });
153
+ program
154
+ .command("pr")
155
+ .description("Crea pull request con gh CLI (se installato)")
156
+ .option("-C, --cwd <dir>", "Cartella di lavoro", process.cwd())
157
+ .option("-t, --title <title>", "Titolo PR")
158
+ .option("-b, --body <body>", "Corpo PR")
159
+ .action(async (opts) => {
160
+ await runPrCommand(opts);
161
+ });
162
+ program
163
+ .command("capabilities")
164
+ .description("Elenco tool realmente disponibili in CLI")
165
+ .option("-C, --cwd <dir>", "Cartella di lavoro", process.cwd())
166
+ .action(async (opts) => {
167
+ await runCapabilitiesCommand(opts.cwd ?? process.cwd());
168
+ });
169
+ program
170
+ .command("init")
171
+ .description("Crea AGENTS.md nella cartella corrente se mancante")
172
+ .option("-C, --cwd <dir>", "Cartella di lavoro", process.cwd())
173
+ .action(async (opts) => {
174
+ await runInitCommand(opts.cwd ?? process.cwd());
175
+ });
176
+ program
177
+ .command("new")
178
+ .description("Scaffold nuovo progetto (template landing-3d, vite-like static)")
179
+ .argument("<name>", "Nome cartella progetto")
180
+ .option("-t, --template <id>", "Template: empty, landing-restaurant, butcher-shop, landing-3d", "landing-3d")
181
+ .option("-C, --cwd <dir>", "Cartella genitore", process.cwd())
182
+ .action(async (name, opts) => {
183
+ await runNewCommand(name, opts);
184
+ });
185
+ program
186
+ .command("models")
187
+ .description("Elenca modelli disponibili sul cloud API")
188
+ .action(async () => {
189
+ await runModelsCommand();
190
+ });
191
+ program
192
+ .command("login")
193
+ .description("Salva token API in ~/.config/eucoder/config.json")
194
+ .option("-t, --token <token>", "Token Bearer")
195
+ .option("-u, --api-url <url>", "URL API cloud")
196
+ .action(async (opts) => {
197
+ await runLoginCommand(opts);
198
+ });
199
+ program.addHelpText("after", () => {
200
+ printHelpHint();
201
+ return "";
202
+ });
203
+ program.parseAsync(process.argv).catch((err) => {
204
+ console.error(err instanceof Error ? err.message : String(err));
205
+ process.exit(1);
206
+ });
207
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE9D,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,SAAS,CAAC;KACf,WAAW,CAAC,4CAA4C,CAAC;KACzD,OAAO,CAAC,OAAO,CAAC;KAChB,MAAM,CAAC,aAAa,EAAE,2BAA2B,CAAC;KAClD,IAAI,CAAC,WAAW,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,EAAE;IACjD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAwB,CAAC;IAClD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;IACtE,MAAM,MAAM,GACV,aAAa,CAAC,IAAI,EAAE,KAAK,MAAM,IAAI,aAAa,CAAC,IAAI,EAAE,KAAK,OAAO,CAAC;IACtE,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC;QAC/C,OAAO;IACT,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,MAAM,IAAI,aAAa,CAAC,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;QACxE,WAAW,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAC;IACjD,CAAC;AACH,CAAC,CAAC,CAAC;AASL,KAAK,UAAU,iBAAiB,CAAC,IAAqB;IACpD,MAAM,IAAI,GAAG,MAAM,iBAAiB,EAAE,CAAC;IACvC,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,MAAM,aAAa,EAAE,CAAC;IACxC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAwB,CAAC;IAClD,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;QAClD,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAClC,CAAC;IACD,MAAM,cAAc,CAAC;QACnB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,IAAI,EAAE,IAAI,CAAC,MAAM;QACjB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,GAAG,EAAE,IAAI,CAAC,GAAG;KACd,CAAC,CAAC;AACL,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAsB,EAAE,WAAmB;IACtE,OAAO;SACJ,OAAO,CAAC,IAAI,CAAC;SACb,WAAW,CAAC,WAAW,CAAC;SACxB,MAAM,CAAC,kBAAkB,EAAE,4CAA4C,CAAC;SACxE,MAAM,CAAC,qBAAqB,EAAE,qCAAqC,CAAC;SACpE,MAAM,CAAC,kBAAkB,EAAE,mCAAmC,CAAC;SAC/D,MAAM,CACL,SAAS,EACT,kEAAkE,CACnE;SACA,MAAM,CAAC,CAAC,IAAqB,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,mBAAmB,CACjB,MAAM,EACN,wEAAwE,CACzE,CAAC;AACF,mBAAmB,CACjB,OAAO,EACP,2CAA2C,CAC5C,CAAC;AAEF,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,qDAAqD,CAAC;KAClE,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC;KAC1C,MAAM,CAAC,qBAAqB,EAAE,8CAA8C,CAAC;KAC7E,MAAM,CAAC,kBAAkB,EAAE,eAAe,CAAC;KAC3C,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;KAC9D,MAAM,CAAC,iBAAiB,EAAE,2BAA2B,EAAE,IAAI,CAAC;KAC5D,MAAM,CAAC,YAAY,EAAE,2DAA2D,CAAC;KACjF,MAAM,CACL,KAAK,EACH,IAAwB,EACxB,IAMC,EACD,EAAE;IACF,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAChD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,KAAK,CACX,oFAAoF,CACrF,CAAC;QACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CACvB,EAAE,EACF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAC/D,CAAC;IACF,MAAM,eAAe,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;AACrD,CAAC,CACF,CAAC;AAEJ,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,uCAAuC,CAAC;KACpD,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC;KAC1C,MAAM,CAAC,qBAAqB,EAAE,kCAAkC,CAAC;KACjE,MAAM,CAAC,kBAAkB,EAAE,eAAe,CAAC;KAC3C,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;KAC9D,MAAM,CACL,KAAK,EACH,IAAwB,EACxB,IAAuD,EACvD,EAAE;IACF,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAChD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;QAC7D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IACD,MAAM,eAAe,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AACzD,CAAC,CACF,CAAC;AAEJ,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,gEAAgE,CAAC;KAC7E,QAAQ,CAAC,QAAQ,EAAE,0BAA0B,CAAC;KAC9C,MAAM,CAAC,qBAAqB,EAAE,kCAAkC,CAAC;KACjE,MAAM,CAAC,kBAAkB,EAAE,eAAe,CAAC;KAC3C,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;KAC9D,MAAM,CACL,KAAK,EACH,IAAwB,EACxB,IAAuD,EACvD,EAAE;IACF,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAChD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;QACtE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IACD,MAAM,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACnC,CAAC,CACF,CAAC;AAEJ,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,wBAAwB,CAAC;KACrC,QAAQ,CAAC,UAAU,EAAE,aAAa,EAAE,MAAM,CAAC;KAC3C,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;KAC9D,MAAM,CAAC,qBAAqB,EAAE,uCAAuC,CAAC;KACtE,MAAM,CACL,KAAK,EACH,MAA0B,EAC1B,IAAuC,EACvC,EAAE;IACF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACtC,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;IAC7C,IAAI,GAAG,KAAK,MAAM;QAAE,MAAM,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;;QACzD,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC;AACpC,CAAC,CACF,CAAC;AAEJ,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,gEAAgE,CAAC;KAC7E,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;KAC9D,MAAM,CAAC,oBAAoB,EAAE,+BAA+B,CAAC;KAC7D,MAAM,CAAC,KAAK,EAAE,IAAuC,EAAE,EAAE;IACxD,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,mDAAmD,CAAC;KAChE,QAAQ,CAAC,OAAO,EAAE,0CAA0C,EAAE,IAAI,CAAC;KACnE,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;KAC9D,MAAM,CAAC,KAAK,EAAE,GAAuB,EAAE,IAAsB,EAAE,EAAE;IAChE,MAAM,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,IAAI,CAAC;KACb,WAAW,CAAC,gDAAgD,CAAC;KAC7D,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;KAC9D,MAAM,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;KAChD,MAAM,CAAC,mBAAmB,EAAE,cAAc,CAAC;KAC3C,MAAM,CAAC,KAAK,EAAE,IAAmD,EAAE,EAAE;IACpE,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,IAAI,CAAC;KACb,WAAW,CAAC,8CAA8C,CAAC;KAC3D,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;KAC9D,MAAM,CAAC,qBAAqB,EAAE,WAAW,CAAC;KAC1C,MAAM,CAAC,mBAAmB,EAAE,UAAU,CAAC;KACvC,MAAM,CAAC,KAAK,EAAE,IAAqD,EAAE,EAAE;IACtE,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,cAAc,CAAC;KACvB,WAAW,CAAC,0CAA0C,CAAC;KACvD,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;KAC9D,MAAM,CAAC,KAAK,EAAE,IAAsB,EAAE,EAAE;IACvC,MAAM,sBAAsB,CAAC,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AAC1D,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,oDAAoD,CAAC;KACjE,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;KAC9D,MAAM,CAAC,KAAK,EAAE,IAAsB,EAAE,EAAE;IACvC,MAAM,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AAClD,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,iEAAiE,CAAC;KAC9E,QAAQ,CAAC,QAAQ,EAAE,wBAAwB,CAAC;KAC5C,MAAM,CACL,qBAAqB,EACrB,+DAA+D,EAC/D,YAAY,CACb;KACA,MAAM,CAAC,iBAAiB,EAAE,mBAAmB,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;KAC7D,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,IAAyC,EAAE,EAAE;IACxE,MAAM,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAClC,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,0CAA0C,CAAC;KACvD,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,gBAAgB,EAAE,CAAC;AAC3B,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,kDAAkD,CAAC;KAC/D,MAAM,CAAC,qBAAqB,EAAE,cAAc,CAAC;KAC7C,MAAM,CAAC,qBAAqB,EAAE,eAAe,CAAC;KAC9C,MAAM,CAAC,KAAK,EAAE,IAAyC,EAAE,EAAE;IAC1D,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE;IAChC,aAAa,EAAE,CAAC;IAChB,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;IACtD,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ export type IntensityMode = "veloce" | "bilanciato" | "profondo";
2
+ export declare const INTENSITY_OPTIONS: {
3
+ id: IntensityMode;
4
+ label: string;
5
+ icon: string;
6
+ maxTokens: number;
7
+ }[];
8
+ export declare function intensityLabel(mode: IntensityMode): string;
9
+ export declare function maxTokensForIntensity(mode: IntensityMode): number;
10
+ export declare function parseIntensity(value: string): IntensityMode | undefined;
11
+ export declare function loadIntensity(): Promise<IntensityMode>;
12
+ export declare function saveIntensity(mode: IntensityMode): Promise<void>;
13
+ //# sourceMappingURL=intensity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intensity.d.ts","sourceRoot":"","sources":["../src/intensity.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,YAAY,GAAG,UAAU,CAAC;AAEjE,eAAO,MAAM,iBAAiB,EAAE;IAC9B,EAAE,EAAE,aAAa,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB,EAIA,CAAC;AAEF,wBAAgB,cAAc,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAE1D;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAEjE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAMvE;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC,CAK5D;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAEtE"}
@@ -0,0 +1,33 @@
1
+ import { loadCliConfigFile, saveCliConfigFile } from "./config.js";
2
+ export const INTENSITY_OPTIONS = [
3
+ { id: "veloce", label: "Veloce", icon: "⚡", maxTokens: 1024 },
4
+ { id: "bilanciato", label: "Bilanciato", icon: "◎", maxTokens: 2048 },
5
+ { id: "profondo", label: "Profondo", icon: "◈", maxTokens: 4096 },
6
+ ];
7
+ export function intensityLabel(mode) {
8
+ return INTENSITY_OPTIONS.find((o) => o.id === mode)?.label ?? mode;
9
+ }
10
+ export function maxTokensForIntensity(mode) {
11
+ return INTENSITY_OPTIONS.find((o) => o.id === mode)?.maxTokens ?? 2048;
12
+ }
13
+ export function parseIntensity(value) {
14
+ const v = value.trim().toLowerCase();
15
+ if (v === "veloce" || v === "fast")
16
+ return "veloce";
17
+ if (v === "bilanciato" || v === "balanced")
18
+ return "bilanciato";
19
+ if (v === "profondo" || v === "deep")
20
+ return "profondo";
21
+ return undefined;
22
+ }
23
+ export async function loadIntensity() {
24
+ const file = await loadCliConfigFile();
25
+ const v = file.intensity;
26
+ if (v === "veloce" || v === "bilanciato" || v === "profondo")
27
+ return v;
28
+ return "bilanciato";
29
+ }
30
+ export async function saveIntensity(mode) {
31
+ await saveCliConfigFile({ intensity: mode });
32
+ }
33
+ //# sourceMappingURL=intensity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intensity.js","sourceRoot":"","sources":["../src/intensity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAInE,MAAM,CAAC,MAAM,iBAAiB,GAKxB;IACJ,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE;IAC7D,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE;IACrE,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE;CAClE,CAAC;AAEF,MAAM,UAAU,cAAc,CAAC,IAAmB;IAChD,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAmB;IACvD,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,SAAS,IAAI,IAAI,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,MAAM;QAAE,OAAO,QAAQ,CAAC;IACpD,IAAI,CAAC,KAAK,YAAY,IAAI,CAAC,KAAK,UAAU;QAAE,OAAO,YAAY,CAAC;IAChE,IAAI,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,MAAM;QAAE,OAAO,UAAU,CAAC;IACxD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,MAAM,IAAI,GAAG,MAAM,iBAAiB,EAAE,CAAC;IACvC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;IACzB,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,YAAY,IAAI,CAAC,KAAK,UAAU;QAAE,OAAO,CAAC,CAAC;IACvE,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAmB;IACrD,MAAM,iBAAiB,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC/C,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type ConnectorsFileConfig } from "@eucode/agent";
2
+ export declare function loadMcpConfig(cwd: string): Promise<ConnectorsFileConfig>;
3
+ //# sourceMappingURL=mcpConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcpConfig.d.ts","sourceRoot":"","sources":["../src/mcpConfig.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,eAAe,CAAC;AAEvB,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAuB9E"}
@@ -0,0 +1,29 @@
1
+ import { readFile } from "node:fs/promises";
2
+ import { homedir } from "node:os";
3
+ import { join } from "node:path";
4
+ import { parseConnectorsJson, } from "@eucode/agent";
5
+ export async function loadMcpConfig(cwd) {
6
+ const paths = [
7
+ join(homedir(), ".config", "eucoder", "mcp.json"),
8
+ join(cwd, ".eucode", "mcp.json"),
9
+ join(cwd, ".eucode", "connectors.json"),
10
+ ];
11
+ let merged = { mcpServers: {} };
12
+ for (const filePath of paths) {
13
+ try {
14
+ const raw = await readFile(filePath, "utf8");
15
+ const parsed = parseConnectorsJson(raw);
16
+ merged = {
17
+ mcpServers: {
18
+ ...merged.mcpServers,
19
+ ...(parsed.mcpServers ?? {}),
20
+ },
21
+ };
22
+ }
23
+ catch {
24
+ /* file missing */
25
+ }
26
+ }
27
+ return merged;
28
+ }
29
+ //# sourceMappingURL=mcpConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcpConfig.js","sourceRoot":"","sources":["../src/mcpConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EACL,mBAAmB,GAEpB,MAAM,eAAe,CAAC;AAEvB,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAW;IAC7C,MAAM,KAAK,GAAG;QACZ,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC;QACjD,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,CAAC;QAChC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,iBAAiB,CAAC;KACxC,CAAC;IAEF,IAAI,MAAM,GAAyB,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;IACtD,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC7C,MAAM,MAAM,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;YACxC,MAAM,GAAG;gBACP,UAAU,EAAE;oBACV,GAAG,MAAM,CAAC,UAAU;oBACpB,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;iBAC7B;aACF,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,kBAAkB;QACpB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function memoryFilePath(cwd: string): string;
2
+ export declare function appendProjectMemory(cwd: string, note: string): Promise<string>;
3
+ //# sourceMappingURL=memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"AAGA,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,CAAC,CAQjB"}
package/dist/memory.js ADDED
@@ -0,0 +1,16 @@
1
+ import { appendFile, mkdir } from "node:fs/promises";
2
+ import { join } from "node:path";
3
+ export function memoryFilePath(cwd) {
4
+ return join(cwd, ".eucode", "memory.md");
5
+ }
6
+ export async function appendProjectMemory(cwd, note) {
7
+ const trimmed = note.trim();
8
+ if (!trimmed)
9
+ throw new Error("Nota vuota.");
10
+ const file = memoryFilePath(cwd);
11
+ await mkdir(join(cwd, ".eucode"), { recursive: true });
12
+ const stamp = new Date().toISOString().slice(0, 19).replace("T", " ");
13
+ await appendFile(file, `\n## ${stamp}\n\n${trimmed}\n`, "utf8");
14
+ return file;
15
+ }
16
+ //# sourceMappingURL=memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,OAAO,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,GAAW,EACX,IAAY;IAEZ,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACtE,MAAM,UAAU,CAAC,IAAI,EAAE,QAAQ,KAAK,OAAO,OAAO,IAAI,EAAE,MAAM,CAAC,CAAC;IAChE,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { Plan, SelectableModelGroup } from "@eucode/shared";
2
+ export declare function loadSelectableModelGroups(): Promise<{
3
+ groups: SelectableModelGroup[];
4
+ plan: Plan;
5
+ hint?: string;
6
+ }>;
7
+ export declare function modelDisplayName(modelId: string, groups?: SelectableModelGroup[]): string;
8
+ export declare function resolveModelFromInput(input: string, groups: SelectableModelGroup[]): string | undefined;
9
+ //# sourceMappingURL=modelCatalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modelCatalog.d.ts","sourceRoot":"","sources":["../src/modelCatalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EAEJ,oBAAoB,EACrB,MAAM,gBAAgB,CAAC;AAcxB,wBAAsB,yBAAyB,IAAI,OAAO,CAAC;IACzD,MAAM,EAAE,oBAAoB,EAAE,CAAC;IAC/B,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC,CAcD;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,oBAAoB,EAAE,GAC9B,MAAM,CAMR;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,oBAAoB,EAAE,GAC7B,MAAM,GAAG,SAAS,CAiBpB"}