antri_cli 1.57.28 → 1.57.31

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 (57) hide show
  1. package/dist/cli/banner.d.ts.map +1 -1
  2. package/dist/cli/banner.js +9 -2
  3. package/dist/cli/banner.js.map +1 -1
  4. package/dist/cli/prompt.d.ts.map +1 -1
  5. package/dist/cli/prompt.js +4 -0
  6. package/dist/cli/prompt.js.map +1 -1
  7. package/dist/cli/promptToolkit.d.ts.map +1 -1
  8. package/dist/cli/promptToolkit.js +1 -1
  9. package/dist/cli/promptToolkit.js.map +1 -1
  10. package/dist/cli/renderer.d.ts +8 -0
  11. package/dist/cli/renderer.d.ts.map +1 -1
  12. package/dist/cli/renderer.js +77 -0
  13. package/dist/cli/renderer.js.map +1 -1
  14. package/dist/core/agent.d.ts +5 -0
  15. package/dist/core/agent.d.ts.map +1 -1
  16. package/dist/core/agent.js +1122 -32
  17. package/dist/core/agent.js.map +1 -1
  18. package/dist/core/artifactManager.d.ts.map +1 -1
  19. package/dist/core/artifactManager.js +105 -21
  20. package/dist/core/artifactManager.js.map +1 -1
  21. package/dist/core/codebaseBreather.d.ts +46 -0
  22. package/dist/core/codebaseBreather.d.ts.map +1 -0
  23. package/dist/core/codebaseBreather.js +310 -0
  24. package/dist/core/codebaseBreather.js.map +1 -0
  25. package/dist/core/config.d.ts.map +1 -1
  26. package/dist/core/config.js +6 -2
  27. package/dist/core/config.js.map +1 -1
  28. package/dist/core/dialectic.d.ts.map +1 -1
  29. package/dist/core/dialectic.js +67 -45
  30. package/dist/core/dialectic.js.map +1 -1
  31. package/dist/core/tools.d.ts +5 -0
  32. package/dist/core/tools.d.ts.map +1 -1
  33. package/dist/core/tools.js +147 -46
  34. package/dist/core/tools.js.map +1 -1
  35. package/dist/core/updater.d.ts +1 -1
  36. package/dist/core/updater.js +1 -1
  37. package/dist/desktop/public/app.js +276 -6
  38. package/dist/desktop/public/index.html +149 -1
  39. package/dist/desktop/public/style.css +356 -0
  40. package/dist/desktop/server.d.ts.map +1 -1
  41. package/dist/desktop/server.js +75 -0
  42. package/dist/desktop/server.js.map +1 -1
  43. package/dist/index.js +8 -1
  44. package/dist/index.js.map +1 -1
  45. package/dist/mobile/public/app.js +1 -1
  46. package/dist/providers/index.js +1 -1
  47. package/dist/providers/index.js.map +1 -1
  48. package/dist/providers/models.d.ts.map +1 -1
  49. package/dist/providers/models.js +2 -4
  50. package/dist/providers/models.js.map +1 -1
  51. package/dist/providers/openai.d.ts.map +1 -1
  52. package/dist/providers/openai.js +19 -3
  53. package/dist/providers/openai.js.map +1 -1
  54. package/dist/skills/skillManager.d.ts.map +1 -1
  55. package/dist/skills/skillManager.js +216 -226
  56. package/dist/skills/skillManager.js.map +1 -1
  57. package/package.json +4 -1
@@ -23,14 +23,15 @@ export class DialecticEngine {
23
23
  // ==========================================
24
24
  // STAGE 1: The Proposer (Thesis)
25
25
  // ==========================================
26
- this.renderPersonaBanner('šŸ’” The Proposer (Thesis)', '#34d399', 'Generating primary hypothesis and architectural solution...');
27
- const thesisPrompt = `You are The Proposer in a dialectic consensus engine.
28
- User Query: "${query}"
26
+ this.renderPersonaBanner('šŸ’” The Proposer (Thesis)', '#34d399', 'Generating primary hypothesis and strategic argument...');
27
+ const thesisPrompt = `You are The Proposer & Chief Strategist in a multi-perspective dialectic consensus engine.
28
+ User Query / Debate Topic: "${query}"
29
29
 
30
30
  Your task:
31
- 1. Provide a comprehensive, creative, and well-structured initial solution, code implementation, or hypothesis.
32
- 2. Outline key architectural decisions and assumptions.
33
- 3. Be clear, precise, and practical.`;
31
+ 1. Provide a comprehensive, authoritative, and fact-grounded initial case, architectural proposal, or comparative hypothesis.
32
+ 2. Clearly articulate key strengths, distinct advantages (pros), and strategic value.
33
+ 3. Use real domain data, accurate metrics, structural principles, and empirical facts.
34
+ 4. Do NOT write toy boilerplate script files unless explicitly requested to write software. Focus deeply on domain substance, comparison factors, and mechanics.`;
34
35
  const thesisContent = await this.runPersona('proposer', thesisPrompt, []);
35
36
  stages.push({
36
37
  persona: 'proposer',
@@ -40,9 +41,9 @@ Your task:
40
41
  // ==========================================
41
42
  // STAGE 2: The Adversary / Critic (Antithesis)
42
43
  // ==========================================
43
- this.renderPersonaBanner('āš”ļø The Adversary / Critic (Antithesis)', '#f87171', 'Stress-testing thesis for vulnerabilities, flaws, and edge cases...');
44
- const antithesisPrompt = `You are The Adversary and Security/Logic Critic in a dialectic consensus engine.
45
- User Query: "${query}"
44
+ this.renderPersonaBanner('āš”ļø The Adversary / Critic (Antithesis)', '#f87171', 'Stress-testing thesis for vulnerabilities, flaws, and trade-offs...');
45
+ const antithesisPrompt = `You are The Adversary, Chief Security/Economics Critic, and Logic Inquisitor in a dialectic consensus engine.
46
+ User Query / Debate Topic: "${query}"
46
47
 
47
48
  Proposer's Thesis:
48
49
  """
@@ -50,10 +51,10 @@ ${thesisContent}
50
51
  """
51
52
 
52
53
  Your task:
53
- 1. Ruthlessly challenge the Proposer's assumptions and solution.
54
- 2. Hunt for edge cases, performance bottlenecks, concurrency/race conditions, security vulnerabilities, or API misuse.
55
- 3. Identify potential real-world failure points.
56
- 4. Be rigorous, objective, and constructive.`;
54
+ 1. Ruthlessly challenge the Proposer's assumptions, blind spots, and proposed direction.
55
+ 2. Detail critical vulnerabilities, disadvantages (cons), operational bottlenecks, scalability failure points, hidden costs, or superior alternative paradigms.
56
+ 3. Ground your critique in hard realities, real-world case studies, counter-metrics, and edge cases.
57
+ 4. Be rigorous, objective, and analytically sharp.`;
57
58
  const antithesisContent = await this.runPersona('adversary', antithesisPrompt, []);
58
59
  stages.push({
59
60
  persona: 'adversary',
@@ -68,7 +69,7 @@ Your task:
68
69
  if (depth === 'deep' || depth === 'rigorous') {
69
70
  this.renderPersonaBanner('šŸ”¬ The Researcher / Verifier', '#38bdf8', 'Autonomously deploying Level 2 web & workspace tools to verify contested claims...');
70
71
  const researchPrompt = `You are The Researcher and Empirical Verifier.
71
- User Query: "${query}"
72
+ User Query / Debate Topic: "${query}"
72
73
 
73
74
  Thesis:
74
75
  """
@@ -81,9 +82,9 @@ ${antithesisContent}
81
82
  """
82
83
 
83
84
  Your task:
84
- 1. Fact-check disputed claims between Thesis and Antithesis.
85
+ 1. Fact-check disputed claims between Thesis and Antithesis using empirical data and verifiable benchmarks.
85
86
  2. Use tools (web_search, scrape_url, run_command, read_file) if needed to verify documentation, library versions, or empirical behaviors.
86
- 3. Deliver a concise verification report summarizing what holds true and what is debunked.`;
87
+ 3. Deliver a concise verification report summarizing what holds true and what is debunked with concrete facts.`;
87
88
  verificationContent = await this.runPersonaWithTools('researcher', researchPrompt);
88
89
  stages.push({
89
90
  persona: 'researcher',
@@ -97,7 +98,7 @@ Your task:
97
98
  if (depth === 'rigorous') {
98
99
  this.renderPersonaBanner('šŸ’” The Proposer (Refined Thesis - Round 2)', '#34d399', 'Refining solution against adversarial critiques and empirical data...');
99
100
  const round2ProposerPrompt = `You are The Proposer incorporating feedback.
100
- User Query: "${query}"
101
+ User Query / Debate Topic: "${query}"
101
102
  Criticisms:
102
103
  """
103
104
  ${antithesisContent}
@@ -108,7 +109,7 @@ ${verificationContent}
108
109
  """
109
110
 
110
111
  Your task:
111
- Provide an updated, hardened revision of the solution addressing all valid points while defending key design choices.`;
112
+ Provide an updated, hardened revision of the argument addressing all valid points while defending key strengths.`;
112
113
  revisedThesisContent = await this.runPersona('proposer', round2ProposerPrompt, []);
113
114
  stages.push({
114
115
  persona: 'proposer',
@@ -120,15 +121,15 @@ Provide an updated, hardened revision of the solution addressing all valid point
120
121
  // FINAL STAGE: The Judge / Synthesizer (Synthesis)
121
122
  // ==========================================
122
123
  this.renderPersonaBanner('āš–ļø The Judge / Synthesizer (Final Consensus)', '#c084fc', 'Merging valid counterpoints, resolving contradictions, delivering final consensus...');
123
- const judgePrompt = `You are The Judge and Master Synthesizer.
124
- User Query: "${query}"
124
+ const judgePrompt = `You are The Supreme Judge and Master Synthesizer in a dialectic consensus engine.
125
+ User Query / Debate Topic: "${query}"
125
126
 
126
- 1. Original Thesis:
127
+ 1. Thesis (Primary Argument & Strengths):
127
128
  """
128
129
  ${thesisContent}
129
130
  """
130
131
 
131
- 2. Adversarial Critique:
132
+ 2. Antithesis (Adversarial Critique & Disadvantages):
132
133
  """
133
134
  ${antithesisContent}
134
135
  """
@@ -137,9 +138,18 @@ ${verificationContent ? `3. Empirical Verification:\n"""\n${verificationContent}
137
138
  ${revisedThesisContent ? `4. Revised Hardened Proposal:\n"""\n${revisedThesisContent}\n"""\n` : ''}
138
139
 
139
140
  Your task:
140
- 1. Deliver the authoritative, battle-tested FINAL SOLUTION and consensus answer.
141
- 2. Clearly explain which criticisms were integrated, which were resolved, and why the final design is robust.
142
- 3. Provide production-ready, clean code and architecture.`;
141
+ Deliver the definitive, high-impact, battle-tested EXECUTIVE CONSENSUS and comparative synthesis.
142
+ Structure your response into clear, comprehensive markdown sections:
143
+ 1. šŸ† **Executive Verdict & Core Takeaways**: Definitive summary and overarching outcome of the analysis.
144
+ 2. šŸ“Š **Side-by-Side Factor Comparison Matrix**: Comparative markdown table evaluating key dimensions (e.g. Performance, Scalability, Cost / Economic Output, Reliability, Labor / Talent, Maturity, Trade-offs).
145
+ 3. ⚔ **Core Strengths & Advantages (Pros)**: Deep domain breakdown of where each side excels.
146
+ 4. āš ļø **Critical Vulnerabilities & Limitations (Cons)**: Objective analysis of drawbacks, bottlenecks, failure modes, and trade-offs.
147
+ 5. šŸ”¬ **Empirical Reality & Real-World Precedents**: Verified metrics, official statistics, benchmark figures, or industry case studies.
148
+ 6. šŸŽÆ **Strategic Decision Framework**: Clear, actionable heuristics for when to choose or invest in each path.
149
+
150
+ CRITICAL INSTRUCTIONS:
151
+ - Do NOT output generic boilerplate code (such as mock pandas/sklearn toy models) unless explicitly requested to write software. Provide deep, authentic, substantive domain intelligence.
152
+ - Keep emojis tasteful and minimal — maximum 2 emojis in your entire response.`;
143
153
  const synthesisContent = await this.runPersona('judge', judgePrompt, []);
144
154
  stages.push({
145
155
  persona: 'judge',
@@ -313,17 +323,18 @@ Your task:
313
323
  }
314
324
  try {
315
325
  // 1. Proposer (Thesis)
316
- const thesisPrompt = `You are The Proposer in a dialectic consensus engine.
317
- User Query: "${query}"
326
+ const thesisPrompt = `You are The Proposer & Chief Strategist in a multi-perspective dialectic consensus engine.
327
+ User Query / Debate Topic: "${query}"
318
328
 
319
329
  Your task:
320
- 1. Provide a comprehensive, creative, and well-structured initial solution, code implementation, or hypothesis.
321
- 2. Outline key architectural decisions and assumptions.
322
- 3. Be clear, precise, and practical.`;
330
+ 1. Provide a comprehensive, authoritative, and fact-grounded initial case, architectural proposal, or comparative hypothesis.
331
+ 2. Clearly articulate key strengths, distinct advantages (pros), and strategic value.
332
+ 3. Use real domain data, accurate metrics, structural principles, and empirical facts.
333
+ 4. Do NOT write toy boilerplate script files (e.g. mock pandas/sklearn LinearRegression) unless the user explicitly requested code. Focus deeply on domain substance, comparison factors, and mechanics.`;
323
334
  const thesisContent = await provider.sendMessageStream([{ role: 'user', content: thesisPrompt }], [], { onToken: () => { } });
324
335
  // 2. Adversary (Antithesis)
325
- const antithesisPrompt = `You are The Adversary and Security/Logic Critic in a dialectic consensus engine.
326
- User Query: "${query}"
336
+ const antithesisPrompt = `You are The Adversary, Chief Security/Economics Critic, and Logic Inquisitor in a dialectic consensus engine.
337
+ User Query / Debate Topic: "${query}"
327
338
 
328
339
  Proposer's Thesis:
329
340
  """
@@ -331,15 +342,16 @@ ${thesisContent}
331
342
  """
332
343
 
333
344
  Your task:
334
- 1. Challenge the Proposer's assumptions and solution.
335
- 2. Hunt for edge cases, performance bottlenecks, race conditions, security vulnerabilities, or API misuse.
336
- 3. Identify real-world failure points.`;
345
+ 1. Ruthlessly challenge the Proposer's assumptions, blind spots, and proposed direction.
346
+ 2. Detail critical vulnerabilities, disadvantages (cons), operational bottlenecks, scalability failure points, hidden costs, or superior alternative paradigms.
347
+ 3. Ground your critique in hard realities, real-world case studies, counter-metrics, and edge cases.
348
+ 4. Be rigorous, objective, and analytically sharp.`;
337
349
  const antithesisContent = await provider.sendMessageStream([{ role: 'user', content: antithesisPrompt }], [], { onToken: () => { } });
338
350
  // 3. Researcher Verification (if deep or rigorous)
339
351
  let verificationContent = '';
340
352
  if (depth === 'deep' || depth === 'rigorous') {
341
353
  const researchPrompt = `You are The Researcher and Empirical Verifier.
342
- User Query: "${query}"
354
+ User Query / Debate Topic: "${query}"
343
355
 
344
356
  Thesis:
345
357
  """
@@ -352,19 +364,21 @@ ${antithesisContent}
352
364
  """
353
365
 
354
366
  Your task:
355
- Fact-check disputed claims between Thesis and Antithesis. Summarize what holds true and what is debunked.`;
367
+ 1. Fact-check disputed claims between Thesis and Antithesis using empirical data and verifiable benchmarks.
368
+ 2. Determine which claims are objectively true, which are exaggerated, and which are context-dependent.
369
+ 3. Summarize the validated empirical reality clearly with concrete numbers and facts.`;
356
370
  verificationContent = await provider.sendMessageStream([{ role: 'user', content: researchPrompt }], [], { onToken: () => { } });
357
371
  }
358
372
  // 4. Judge / Final Synthesizer
359
- const judgePrompt = `You are The Judge and Master Synthesizer.
360
- User Query: "${query}"
373
+ const judgePrompt = `You are The Supreme Judge and Master Synthesizer in a dialectic consensus engine.
374
+ User Query / Debate Topic: "${query}"
361
375
 
362
- 1. Original Thesis:
376
+ 1. Thesis (Primary Argument & Strengths):
363
377
  """
364
378
  ${thesisContent}
365
379
  """
366
380
 
367
- 2. Adversarial Critique:
381
+ 2. Antithesis (Adversarial Critique & Disadvantages):
368
382
  """
369
383
  ${antithesisContent}
370
384
  """
@@ -372,10 +386,18 @@ ${antithesisContent}
372
386
  ${verificationContent ? `3. Empirical Verification:\n"""\n${verificationContent}\n"""\n` : ''}
373
387
 
374
388
  Your task:
375
- 1. Deliver the authoritative, battle-tested FINAL SOLUTION and consensus answer.
376
- 2. Clearly explain which criticisms were integrated, which were resolved, and why the final design is robust.
377
- 3. Provide production-ready, clean code and architecture.
378
- 4. Emoji Usage Rule: Keep emojis tasteful and minimal — maximum 2 emojis in your entire response.`;
389
+ Deliver the definitive, high-impact, battle-tested EXECUTIVE CONSENSUS and comparative synthesis.
390
+ Structure your response into clear, comprehensive markdown sections:
391
+ 1. šŸ† **Executive Verdict & Core Takeaways**: Definitive summary and overarching outcome of the analysis.
392
+ 2. šŸ“Š **Side-by-Side Factor Comparison Matrix**: Comparative markdown table evaluating key dimensions (e.g. Performance, Scalability, Cost / Economic Output, Reliability, Labor / Talent, Maturity, Trade-offs).
393
+ 3. ⚔ **Core Strengths & Advantages (Pros)**: Deep domain breakdown of where each side excels.
394
+ 4. āš ļø **Critical Vulnerabilities & Limitations (Cons)**: Objective analysis of drawbacks, bottlenecks, failure modes, and trade-offs.
395
+ 5. šŸ”¬ **Empirical Reality & Real-World Precedents**: Verified metrics, official statistics, benchmark figures, or industry case studies.
396
+ 6. šŸŽÆ **Strategic Decision Framework**: Clear, actionable heuristics for when to choose or invest in each path.
397
+
398
+ CRITICAL INSTRUCTIONS:
399
+ - Do NOT output generic boilerplate code (such as mock pandas/sklearn toy models) unless explicitly requested to write software. Provide deep, authentic, substantive domain intelligence.
400
+ - Keep emojis tasteful and minimal — maximum 2 emojis in your entire response.`;
379
401
  const finalSynthesis = await provider.sendMessageStream([{ role: 'user', content: judgePrompt }], [], { onToken: () => { } });
380
402
  if (spinner)
381
403
  spinner.stop();
@@ -1 +1 @@
1
- {"version":3,"file":"dialectic.js","sourceRoot":"","sources":["../../src/core/dialectic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dialectic.js","sourceRoot":"","sources":["../../src/core/dialectic.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,11 @@ export declare class ToolExecutor {
17
17
  static materializeNextJsTodoList(workingDir: string): string[];
18
18
  static materializeNextJsPortfolio(workingDir: string): string[];
19
19
  promptForPermission(name: string, args: Record<string, any>): Promise<boolean>;
20
+ resolveWorkspacePath(rawPath: string): string;
20
21
  execute(name: string, args: Record<string, any>, toolCallId: string): Promise<ToolResult>;
22
+ /**
23
+ * Robust multi-command, multi-line, and daemon/server execution pipeline with real-time feedback
24
+ */
25
+ private executeCommandPipeline;
21
26
  }
22
27
  //# sourceMappingURL=tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/core/tools.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAWzD,eAAO,MAAM,eAAe,aAS1B,CAAC;AAEH;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAsCjE;AAED,eAAO,MAAM,eAAe,EAAE,cAAc,EAqX3C,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,cAAc,EAwB1C,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,gBAAgB,UAAQ,GAAG,cAAc,EAAE,CAa5E;AAED,MAAM,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAE9F,qBAAa,YAAY;IACvB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,uBAAuB,CAAC,CAAoB;gBAExC,UAAU,GAAE,MAAsB;IAIvC,oBAAoB,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,IAAI;WAIhD,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;WAIlC,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE;WAmdvD,0BAA0B,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE;IAsZzD,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAwD9E,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CAm7BvG"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/core/tools.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAWzD,eAAO,MAAM,eAAe,aAS1B,CAAC;AAEH;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAsCjE;AAED,eAAO,MAAM,eAAe,EAAE,cAAc,EAqX3C,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,cAAc,EAwB1C,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,gBAAgB,UAAQ,GAAG,cAAc,EAAE,CAa5E;AAED,MAAM,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAE9F,qBAAa,YAAY;IACvB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,uBAAuB,CAAC,CAAoB;gBAExC,UAAU,GAAE,MAAsB;IAIvC,oBAAoB,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,IAAI;WAIhD,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;WAIlC,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE;WAmdvD,0BAA0B,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE;IAsZzD,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAwDpF,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAgBvC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAm6BtG;;OAEG;YACW,sBAAsB;CA2GrC"}
@@ -2,7 +2,7 @@ import fs from 'fs';
2
2
  import path from 'path';
3
3
  import os from 'os';
4
4
  import readline from 'readline';
5
- import { exec } from 'child_process';
5
+ import { exec, spawn } from 'child_process';
6
6
  import util from 'util';
7
7
  import chalk from 'chalk';
8
8
  import { WebSearchEngine } from './search.js';
@@ -1361,6 +1361,21 @@ export default function Home() {
1361
1361
  console.log(chalk.red(`āœ• Tool execution for '${name}' denied by user.`));
1362
1362
  return false;
1363
1363
  }
1364
+ resolveWorkspacePath(rawPath) {
1365
+ if (!rawPath)
1366
+ return this.workingDir;
1367
+ let clean = String(rawPath).trim();
1368
+ const normalizedWorkingDir = path.resolve(this.workingDir);
1369
+ if (path.isAbsolute(clean)) {
1370
+ const resolved = path.resolve(clean);
1371
+ if (resolved.startsWith(normalizedWorkingDir)) {
1372
+ return resolved;
1373
+ }
1374
+ const base = path.basename(clean);
1375
+ return path.resolve(normalizedWorkingDir, base);
1376
+ }
1377
+ return path.resolve(normalizedWorkingDir, clean);
1378
+ }
1364
1379
  async execute(name, args, toolCallId) {
1365
1380
  try {
1366
1381
  const { AuthManager } = await import('../cloud/auth.js');
@@ -1538,12 +1553,9 @@ export default function Home() {
1538
1553
  error: true,
1539
1554
  };
1540
1555
  }
1541
- let resolvedPath = filePath;
1542
- if (resolvedPath.startsWith('~')) {
1543
- resolvedPath = path.join(os.homedir(), resolvedPath.slice(1));
1544
- }
1545
- else {
1546
- resolvedPath = path.resolve(this.workingDir, resolvedPath);
1556
+ let resolvedPath = this.resolveWorkspacePath(filePath);
1557
+ if (filePath.startsWith('~')) {
1558
+ resolvedPath = path.join(os.homedir(), filePath.slice(1));
1547
1559
  }
1548
1560
  if (!fs.existsSync(resolvedPath)) {
1549
1561
  // Check if file exists relative to cwd or home
@@ -1590,9 +1602,9 @@ export default function Home() {
1590
1602
  }
1591
1603
  }
1592
1604
  case 'write_file': {
1593
- const filePath = toolArgs.filePath || toolArgs.file_path || toolArgs.filename || toolArgs.path || toolArgs.name;
1605
+ const rawFilePath = toolArgs.filePath || toolArgs.file_path || toolArgs.filename || toolArgs.path || toolArgs.name;
1594
1606
  const content = toolArgs.content !== undefined ? toolArgs.content : toolArgs.code || toolArgs.text || '';
1595
- if (!filePath) {
1607
+ if (!rawFilePath) {
1596
1608
  return {
1597
1609
  tool_call_id: toolCallId,
1598
1610
  name: toolName,
@@ -1600,20 +1612,21 @@ export default function Home() {
1600
1612
  error: true,
1601
1613
  };
1602
1614
  }
1603
- const targetPath = path.resolve(this.workingDir, filePath);
1615
+ const targetPath = this.resolveWorkspacePath(rawFilePath);
1604
1616
  const dir = path.dirname(targetPath);
1605
1617
  if (!fs.existsSync(dir)) {
1606
1618
  fs.mkdirSync(dir, { recursive: true });
1607
1619
  }
1608
1620
  fs.writeFileSync(targetPath, content, 'utf-8');
1609
- if (filePath.endsWith('.html') || (typeof content === 'string' && content.includes('<html'))) {
1621
+ const relWritten = path.relative(this.workingDir, targetPath).replace(/\\/g, '/') || path.basename(targetPath);
1622
+ if (targetPath.endsWith('.html') || (typeof content === 'string' && content.includes('<html'))) {
1610
1623
  try {
1611
1624
  const { artifactManager } = await import('./artifactManager.js');
1612
1625
  const { sessionManager } = await import('./sessionManager.js');
1613
1626
  const activeSession = sessionManager.getActiveSession();
1614
- const baseName = path.basename(filePath, '.html').replace(/[_-]/g, ' ');
1627
+ const baseName = path.basename(targetPath, '.html').replace(/[_-]/g, ' ');
1615
1628
  const title = baseName.charAt(0).toUpperCase() + baseName.slice(1);
1616
- const id = 'art_' + path.basename(filePath, '.html').replace(/[^a-zA-Z0-9_]/g, '_');
1629
+ const id = 'art_' + path.basename(targetPath, '.html').replace(/[^a-zA-Z0-9_]/g, '_');
1617
1630
  artifactManager.saveArtifact({
1618
1631
  id,
1619
1632
  sessionId: activeSession?.id || 'workspace_files',
@@ -1629,7 +1642,7 @@ export default function Home() {
1629
1642
  return {
1630
1643
  tool_call_id: toolCallId,
1631
1644
  name: toolName,
1632
- output: `Successfully wrote ${content.length} characters to ${filePath}`,
1645
+ output: `Successfully wrote ${content.length} characters to ${relWritten} (Full path: ${targetPath})`,
1633
1646
  };
1634
1647
  }
1635
1648
  case 'edit_file': {
@@ -1642,12 +1655,9 @@ export default function Home() {
1642
1655
  error: true,
1643
1656
  };
1644
1657
  }
1645
- let resolvedPath = filePath;
1646
- if (resolvedPath.startsWith('~')) {
1647
- resolvedPath = path.join(os.homedir(), resolvedPath.slice(1));
1648
- }
1649
- else {
1650
- resolvedPath = path.resolve(this.workingDir, resolvedPath);
1658
+ let resolvedPath = this.resolveWorkspacePath(filePath);
1659
+ if (filePath.startsWith('~')) {
1660
+ resolvedPath = path.join(os.homedir(), filePath.slice(1));
1651
1661
  }
1652
1662
  if (!fs.existsSync(resolvedPath)) {
1653
1663
  return {
@@ -1730,12 +1740,13 @@ export default function Home() {
1730
1740
  error: true,
1731
1741
  };
1732
1742
  }
1733
- const targetPath = path.resolve(this.workingDir, dirPath);
1743
+ const targetPath = this.resolveWorkspacePath(dirPath);
1734
1744
  fs.mkdirSync(targetPath, { recursive: true });
1745
+ const relDir = path.relative(this.workingDir, targetPath).replace(/\\/g, '/') || path.basename(targetPath);
1735
1746
  return {
1736
1747
  tool_call_id: toolCallId,
1737
1748
  name: toolName,
1738
- output: `Successfully created directory: ${dirPath}`,
1749
+ output: `Successfully created directory: ${relDir}`,
1739
1750
  };
1740
1751
  }
1741
1752
  case 'delete_file': {
@@ -1748,7 +1759,7 @@ export default function Home() {
1748
1759
  error: true,
1749
1760
  };
1750
1761
  }
1751
- const targetPath = path.resolve(this.workingDir, filePath);
1762
+ const targetPath = this.resolveWorkspacePath(filePath);
1752
1763
  if (!fs.existsSync(targetPath)) {
1753
1764
  return {
1754
1765
  tool_call_id: toolCallId,
@@ -1979,29 +1990,13 @@ export default function Home() {
1979
1990
  output: 'Notice: Authentication commands must be executed interactively in the terminal by the user.',
1980
1991
  };
1981
1992
  }
1982
- try {
1983
- const { stdout, stderr } = await execPromise(cmd, {
1984
- cwd: this.workingDir,
1985
- timeout: 30000,
1986
- maxBuffer: 1024 * 1024,
1987
- });
1988
- const output = (stdout || '') + (stderr ? `\n[STDERR]: ${stderr}` : '');
1989
- const cleanOutput = output.trim() || '(command finished with no output)';
1990
- return {
1991
- tool_call_id: toolCallId,
1992
- name: toolName,
1993
- output: cleanOutput,
1994
- };
1995
- }
1996
- catch (execErr) {
1997
- const errOutput = (execErr.stdout || '') + (execErr.stderr ? `\n${execErr.stderr}` : '') || execErr.message || 'Execution error';
1998
- return {
1999
- tool_call_id: toolCallId,
2000
- name: toolName,
2001
- output: `Command failed (exit code ${execErr.code || 1}): ${errOutput.trim()}`,
2002
- error: true,
2003
- };
2004
- }
1993
+ const res = await this.executeCommandPipeline(cmd);
1994
+ return {
1995
+ tool_call_id: toolCallId,
1996
+ name: toolName,
1997
+ output: res.output,
1998
+ error: res.error ? true : undefined,
1999
+ };
2005
2000
  }
2006
2001
  case 'git_diff': {
2007
2002
  const stagedFlag = args.staged ? '--staged' : '';
@@ -2242,5 +2237,111 @@ export default function Home() {
2242
2237
  };
2243
2238
  }
2244
2239
  }
2240
+ /**
2241
+ * Robust multi-command, multi-line, and daemon/server execution pipeline with real-time feedback
2242
+ */
2243
+ async executeCommandPipeline(cmd) {
2244
+ const isWin = process.platform === 'win32';
2245
+ const shellExe = isWin ? 'powershell.exe' : '/bin/bash';
2246
+ // 1. Detect if this is a server or long-running daemon command
2247
+ const isServerCommand = /^(?:npm\s+start|npm\s+run\s+dev|node\s+.*server|python(?:3)?\s+.*app\.py|python(?:3)?\s+-m\s+http\.server|npx\s+http-server|npx\s+vite|vite|uvicorn|flask\s+run|nodemon)/i.test(cmd.trim());
2248
+ if (isServerCommand) {
2249
+ return new Promise((resolve) => {
2250
+ let stdout = '';
2251
+ let stderr = '';
2252
+ let exited = false;
2253
+ const child = spawn(cmd, {
2254
+ cwd: this.workingDir,
2255
+ shell: shellExe,
2256
+ stdio: ['pipe', 'pipe', 'pipe']
2257
+ });
2258
+ child.stdout?.on('data', (d) => { stdout += d.toString(); });
2259
+ child.stderr?.on('data', (d) => { stderr += d.toString(); });
2260
+ const timer = setTimeout(() => {
2261
+ if (!exited) {
2262
+ try {
2263
+ if (isWin) {
2264
+ spawn('taskkill', ['/pid', String(child.pid), '/f', '/t']);
2265
+ }
2266
+ else {
2267
+ child.kill('SIGTERM');
2268
+ }
2269
+ }
2270
+ catch (_) { }
2271
+ const combined = (stdout + (stderr ? `\n[STDERR]: ${stderr}` : '')).trim();
2272
+ resolve({
2273
+ output: `āœ” Server process started successfully (verified running for 3s):\n${combined || '(server listening with no stdout)'}`,
2274
+ error: false
2275
+ });
2276
+ }
2277
+ }, 3000);
2278
+ child.on('error', (err) => {
2279
+ exited = true;
2280
+ clearTimeout(timer);
2281
+ resolve({
2282
+ output: `Failed to spawn server process: ${err.message}`,
2283
+ error: true
2284
+ });
2285
+ });
2286
+ child.on('exit', (code) => {
2287
+ exited = true;
2288
+ clearTimeout(timer);
2289
+ const combined = (stdout + (stderr ? `\n[STDERR]: ${stderr}` : '')).trim();
2290
+ if (code === 0) {
2291
+ resolve({ output: combined || '(process exited successfully with code 0)', error: false });
2292
+ }
2293
+ else {
2294
+ resolve({ output: `Process exited with code ${code}:\n${combined}`, error: true });
2295
+ }
2296
+ });
2297
+ });
2298
+ }
2299
+ // 2. Check if multiple commands are given line by line
2300
+ const lines = cmd.split(/\r?\n/).map(l => l.trim()).filter(l => l.length > 0 && !l.startsWith('#'));
2301
+ if (lines.length > 1) {
2302
+ const results = [];
2303
+ for (let i = 0; i < lines.length; i++) {
2304
+ const line = lines[i];
2305
+ console.log(chalk.hex('#06b6d4')(` ⚔ [Step ${i + 1}/${lines.length}]: `) + chalk.hex('#38bdf8')(`"${line}"`));
2306
+ try {
2307
+ const { stdout, stderr } = await execPromise(line, {
2308
+ cwd: this.workingDir,
2309
+ timeout: 30000,
2310
+ maxBuffer: 1024 * 1024,
2311
+ shell: shellExe,
2312
+ });
2313
+ const out = (stdout || '') + (stderr ? `\n[STDERR]: ${stderr}` : '');
2314
+ results.push(`[Step ${i + 1}: ${line}]\n${out.trim() || '(no output)'}`);
2315
+ }
2316
+ catch (stepErr) {
2317
+ const errOut = (stepErr.stdout || '') + (stepErr.stderr ? `\n${stepErr.stderr}` : '') || stepErr.message;
2318
+ results.push(`[Step ${i + 1}: ${line} FAILED (exit code ${stepErr.code || 1})]\n${errOut.trim()}`);
2319
+ return {
2320
+ output: results.join('\n\n') + `\n\nāœ– Multi-command execution stopped at step ${i + 1} due to error.`,
2321
+ error: true
2322
+ };
2323
+ }
2324
+ }
2325
+ return { output: results.join('\n\n'), error: false };
2326
+ }
2327
+ // 3. Single command execution with shell support
2328
+ try {
2329
+ const { stdout, stderr } = await execPromise(cmd, {
2330
+ cwd: this.workingDir,
2331
+ timeout: 45000,
2332
+ maxBuffer: 2 * 1024 * 1024,
2333
+ shell: shellExe,
2334
+ });
2335
+ const output = (stdout || '') + (stderr ? `\n[STDERR]: ${stderr}` : '');
2336
+ return { output: output.trim() || '(command finished with no output)', error: false };
2337
+ }
2338
+ catch (execErr) {
2339
+ const errOutput = (execErr.stdout || '') + (execErr.stderr ? `\n${execErr.stderr}` : '') || execErr.message || 'Execution error';
2340
+ return {
2341
+ output: `Command failed (exit code ${execErr.code || 1}): ${errOutput.trim()}`,
2342
+ error: true,
2343
+ };
2344
+ }
2345
+ }
2245
2346
  }
2246
2347
  //# sourceMappingURL=tools.js.map