erosolar-cli 1.7.428 → 1.7.429

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.
@@ -1,12 +1,11 @@
1
1
  /**
2
2
  * StreamingResponseFormatter
3
- * Styles streaming chunks with a simple vertical timeline (⏺ + indented text)
4
- * so live responses stay readable without the heavy box-drawing borders.
3
+ * Claude Code style: Streaming responses use bullet prefix with continuation indent
4
+ * First line gets the bullet, subsequent lines are indented to align
5
5
  */
6
6
  export declare class StreamingResponseFormatter {
7
7
  private readonly bulletPrefix;
8
8
  private readonly indentPrefix;
9
- private hasStartedEvent;
10
9
  private lineOpen;
11
10
  private currentLine;
12
11
  private nextLinePrefix;
@@ -17,10 +16,6 @@ export declare class StreamingResponseFormatter {
17
16
  note?: string;
18
17
  mode?: 'update' | 'complete' | 'stop' | 'quit';
19
18
  }): string;
20
- private decorateLine;
21
- private isThoughtBoundary;
22
- private isBlankLine;
23
- private lineDecoration;
24
19
  private resetState;
25
20
  private modeIcon;
26
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"streamingFormatter.d.ts","sourceRoot":"","sources":["../../src/ui/streamingFormatter.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,qBAAa,0BAA0B;IACrC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,cAAc,CAAS;gBAEnB,OAAO,CAAC,EAAE,MAAM;IAS5B,MAAM,IAAI,MAAM;IAMhB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAiClC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,MAAM;IA2BpG,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,QAAQ;CAajB"}
1
+ {"version":3,"file":"streamingFormatter.d.ts","sourceRoot":"","sources":["../../src/ui/streamingFormatter.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,qBAAa,0BAA0B;IACrC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,cAAc,CAAS;gBAEnB,OAAO,CAAC,EAAE,MAAM;IAO5B,MAAM,IAAI,MAAM;IAKhB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAgClC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,MAAM;IAuBpG,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,QAAQ;CAajB"}
@@ -1,27 +1,23 @@
1
1
  import { theme } from './theme.js';
2
2
  /**
3
3
  * StreamingResponseFormatter
4
- * Styles streaming chunks with a simple vertical timeline (⏺ + indented text)
5
- * so live responses stay readable without the heavy box-drawing borders.
4
+ * Claude Code style: Streaming responses use bullet prefix with continuation indent
5
+ * First line gets the bullet, subsequent lines are indented to align
6
6
  */
7
7
  export class StreamingResponseFormatter {
8
8
  bulletPrefix;
9
9
  indentPrefix;
10
- hasStartedEvent = false;
11
10
  lineOpen = false;
12
11
  currentLine = '';
13
12
  nextLinePrefix;
14
13
  constructor(columns) {
15
- // Columns are kept for compatibility with previous versions; currently unused
16
14
  clamp(columns ?? 80, 48, 110);
17
15
  this.bulletPrefix = `${theme.info('⏺')} `;
18
- // Indent aligns with the bullet width to create a simple vertical flow
19
- this.indentPrefix = ' ';
16
+ this.indentPrefix = ' '; // 2 spaces to align with bullet
20
17
  this.nextLinePrefix = this.bulletPrefix;
21
18
  }
22
19
  header() {
23
- this.resetState();
24
- // Keep header minimal so the first bullet is the thought itself
20
+ // Start with newline before first bullet
25
21
  return '\n';
26
22
  }
27
23
  formatChunk(chunk) {
@@ -34,16 +30,15 @@ export class StreamingResponseFormatter {
34
30
  if (!this.lineOpen) {
35
31
  result += this.nextLinePrefix;
36
32
  this.lineOpen = true;
37
- this.hasStartedEvent = true;
33
+ // After first line with bullet, use indent
38
34
  this.nextLinePrefix = this.indentPrefix;
39
35
  }
40
36
  if (char === '\n') {
41
37
  result += '\n';
42
- // Start a fresh bullet after status-bearing or blank lines
43
- const boundary = this.isThoughtBoundary(this.currentLine) || this.isBlankLine(this.currentLine);
44
38
  this.lineOpen = false;
45
39
  this.currentLine = '';
46
- this.nextLinePrefix = boundary ? this.bulletPrefix : this.indentPrefix;
40
+ // Continue with indent for next line
41
+ this.nextLinePrefix = this.indentPrefix;
47
42
  continue;
48
43
  }
49
44
  result += char;
@@ -56,41 +51,20 @@ export class StreamingResponseFormatter {
56
51
  const note = resolved.note?.trim();
57
52
  const mode = resolved.mode ?? 'complete';
58
53
  let output = '';
59
- // Close any open line with a single newline (and optional decoration)
54
+ // Close any open line
60
55
  if (this.lineOpen) {
61
- const decoration = this.lineDecoration();
62
- if (decoration) {
63
- output += decoration;
64
- }
65
56
  output += '\n';
66
57
  }
58
+ // Claude Code: Status notes shown with indent
67
59
  if (note) {
68
60
  const icon = this.modeIcon(mode);
69
- const prefix = this.hasStartedEvent ? this.indentPrefix : this.bulletPrefix;
70
61
  const statusText = icon ? `${icon} ${note}` : note;
71
- output += `${prefix}${statusText}\n`;
62
+ output += `${this.indentPrefix}${statusText}\n`;
72
63
  }
73
64
  this.resetState();
74
65
  return output;
75
66
  }
76
- decorateLine(line) {
77
- return '';
78
- }
79
- isThoughtBoundary(line) {
80
- const normalized = line.trim();
81
- if (!normalized) {
82
- return false;
83
- }
84
- return /⎿\s*(\d+\s+lines?|completed|done|stopped|cancelled)/i.test(normalized);
85
- }
86
- isBlankLine(line) {
87
- return line.trim().length === 0;
88
- }
89
- lineDecoration() {
90
- return this.decorateLine(this.currentLine);
91
- }
92
67
  resetState() {
93
- this.hasStartedEvent = false;
94
68
  this.lineOpen = false;
95
69
  this.currentLine = '';
96
70
  this.nextLinePrefix = this.bulletPrefix;
@@ -1 +1 @@
1
- {"version":3,"file":"streamingFormatter.js","sourceRoot":"","sources":["../../src/ui/streamingFormatter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"streamingFormatter.js","sourceRoot":"","sources":["../../src/ui/streamingFormatter.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "erosolar-cli",
3
- "version": "1.7.428",
3
+ "version": "1.7.429",
4
4
  "description": "Unified AI agent framework for the command line - Multi-provider support with schema-driven tools, code intelligence, and transparent reasoning",
5
5
  "main": "dist/bin/erosolar.js",
6
6
  "type": "module",