erosolar-cli 2.1.170 → 2.1.172

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 (172) hide show
  1. package/README.md +1 -1
  2. package/agents/erosolar-code.rules.json +2 -2
  3. package/agents/general.rules.json +3 -21
  4. package/dist/StringUtils.d.ts +8 -0
  5. package/dist/StringUtils.d.ts.map +1 -0
  6. package/dist/StringUtils.js +11 -0
  7. package/dist/StringUtils.js.map +1 -0
  8. package/dist/capabilities/statusCapability.js +2 -2
  9. package/dist/capabilities/statusCapability.js.map +1 -1
  10. package/dist/contracts/agent-schemas.json +5 -5
  11. package/dist/core/agent.d.ts +24 -83
  12. package/dist/core/agent.d.ts.map +1 -1
  13. package/dist/core/agent.js +248 -499
  14. package/dist/core/agent.js.map +1 -1
  15. package/dist/core/aiFlowSupervisor.d.ts +44 -0
  16. package/dist/core/aiFlowSupervisor.d.ts.map +1 -0
  17. package/dist/core/aiFlowSupervisor.js +299 -0
  18. package/dist/core/aiFlowSupervisor.js.map +1 -0
  19. package/dist/core/cliTestHarness.d.ts +200 -0
  20. package/dist/core/cliTestHarness.d.ts.map +1 -0
  21. package/dist/core/cliTestHarness.js +549 -0
  22. package/dist/core/cliTestHarness.js.map +1 -0
  23. package/dist/core/preferences.d.ts +0 -1
  24. package/dist/core/preferences.d.ts.map +1 -1
  25. package/dist/core/preferences.js +1 -8
  26. package/dist/core/preferences.js.map +1 -1
  27. package/dist/core/schemaValidator.js +3 -3
  28. package/dist/core/schemaValidator.js.map +1 -1
  29. package/dist/core/testUtils.d.ts +121 -0
  30. package/dist/core/testUtils.d.ts.map +1 -0
  31. package/dist/core/testUtils.js +235 -0
  32. package/dist/core/testUtils.js.map +1 -0
  33. package/dist/core/toolPreconditions.d.ts +11 -0
  34. package/dist/core/toolPreconditions.d.ts.map +1 -1
  35. package/dist/core/toolPreconditions.js +164 -33
  36. package/dist/core/toolPreconditions.js.map +1 -1
  37. package/dist/core/toolRuntime.d.ts.map +1 -1
  38. package/dist/core/toolRuntime.js +114 -9
  39. package/dist/core/toolRuntime.js.map +1 -1
  40. package/dist/core/toolValidation.d.ts +116 -0
  41. package/dist/core/toolValidation.d.ts.map +1 -0
  42. package/dist/core/toolValidation.js +282 -0
  43. package/dist/core/toolValidation.js.map +1 -0
  44. package/dist/core/updateChecker.d.ts +1 -61
  45. package/dist/core/updateChecker.d.ts.map +1 -1
  46. package/dist/core/updateChecker.js +3 -147
  47. package/dist/core/updateChecker.js.map +1 -1
  48. package/dist/headless/headlessApp.d.ts.map +1 -1
  49. package/dist/headless/headlessApp.js +39 -0
  50. package/dist/headless/headlessApp.js.map +1 -1
  51. package/dist/plugins/tools/nodeDefaults.d.ts.map +1 -1
  52. package/dist/plugins/tools/nodeDefaults.js +2 -0
  53. package/dist/plugins/tools/nodeDefaults.js.map +1 -1
  54. package/dist/providers/openaiResponsesProvider.d.ts.map +1 -1
  55. package/dist/providers/openaiResponsesProvider.js +74 -79
  56. package/dist/providers/openaiResponsesProvider.js.map +1 -1
  57. package/dist/runtime/agentController.d.ts.map +1 -1
  58. package/dist/runtime/agentController.js +3 -6
  59. package/dist/runtime/agentController.js.map +1 -1
  60. package/dist/runtime/agentSession.d.ts +2 -0
  61. package/dist/runtime/agentSession.d.ts.map +1 -1
  62. package/dist/runtime/agentSession.js +2 -2
  63. package/dist/runtime/agentSession.js.map +1 -1
  64. package/dist/shell/interactiveShell.d.ts +18 -11
  65. package/dist/shell/interactiveShell.d.ts.map +1 -1
  66. package/dist/shell/interactiveShell.js +291 -273
  67. package/dist/shell/interactiveShell.js.map +1 -1
  68. package/dist/shell/shellApp.d.ts.map +1 -1
  69. package/dist/shell/shellApp.js +1 -7
  70. package/dist/shell/shellApp.js.map +1 -1
  71. package/dist/shell/systemPrompt.d.ts.map +1 -1
  72. package/dist/shell/systemPrompt.js +15 -4
  73. package/dist/shell/systemPrompt.js.map +1 -1
  74. package/dist/subagents/taskRunner.js +1 -2
  75. package/dist/subagents/taskRunner.js.map +1 -1
  76. package/dist/tools/bashTools.d.ts.map +1 -1
  77. package/dist/tools/bashTools.js +8 -101
  78. package/dist/tools/bashTools.js.map +1 -1
  79. package/dist/tools/diffUtils.d.ts +2 -8
  80. package/dist/tools/diffUtils.d.ts.map +1 -1
  81. package/dist/tools/diffUtils.js +13 -72
  82. package/dist/tools/diffUtils.js.map +1 -1
  83. package/dist/tools/grepTools.d.ts.map +1 -1
  84. package/dist/tools/grepTools.js +2 -10
  85. package/dist/tools/grepTools.js.map +1 -1
  86. package/dist/tools/planningTools.d.ts +10 -0
  87. package/dist/tools/planningTools.d.ts.map +1 -1
  88. package/dist/tools/planningTools.js +16 -0
  89. package/dist/tools/planningTools.js.map +1 -1
  90. package/dist/tools/searchTools.d.ts.map +1 -1
  91. package/dist/tools/searchTools.js +2 -4
  92. package/dist/tools/searchTools.js.map +1 -1
  93. package/dist/ui/PromptController.d.ts +4 -1
  94. package/dist/ui/PromptController.d.ts.map +1 -1
  95. package/dist/ui/PromptController.js +7 -1
  96. package/dist/ui/PromptController.js.map +1 -1
  97. package/dist/ui/ShellUIAdapter.d.ts +28 -292
  98. package/dist/ui/ShellUIAdapter.d.ts.map +1 -1
  99. package/dist/ui/ShellUIAdapter.js +121 -1513
  100. package/dist/ui/ShellUIAdapter.js.map +1 -1
  101. package/dist/ui/UnifiedUIRenderer.d.ts +30 -133
  102. package/dist/ui/UnifiedUIRenderer.d.ts.map +1 -1
  103. package/dist/ui/UnifiedUIRenderer.js +370 -939
  104. package/dist/ui/UnifiedUIRenderer.js.map +1 -1
  105. package/dist/ui/animatedStatus.d.ts +6 -128
  106. package/dist/ui/animatedStatus.d.ts.map +1 -1
  107. package/dist/ui/animatedStatus.js +50 -383
  108. package/dist/ui/animatedStatus.js.map +1 -1
  109. package/dist/ui/display.d.ts +26 -182
  110. package/dist/ui/display.d.ts.map +1 -1
  111. package/dist/ui/display.js +97 -678
  112. package/dist/ui/display.js.map +1 -1
  113. package/dist/ui/layout.d.ts +1 -0
  114. package/dist/ui/layout.d.ts.map +1 -1
  115. package/dist/ui/layout.js +12 -0
  116. package/dist/ui/layout.js.map +1 -1
  117. package/dist/ui/orchestration/UIUpdateCoordinator.d.ts +7 -61
  118. package/dist/ui/orchestration/UIUpdateCoordinator.d.ts.map +1 -1
  119. package/dist/ui/orchestration/UIUpdateCoordinator.js +20 -232
  120. package/dist/ui/orchestration/UIUpdateCoordinator.js.map +1 -1
  121. package/dist/ui/planOverlay.d.ts +28 -0
  122. package/dist/ui/planOverlay.d.ts.map +1 -0
  123. package/dist/ui/planOverlay.js +156 -0
  124. package/dist/ui/planOverlay.js.map +1 -0
  125. package/dist/ui/shortcutsHelp.d.ts.map +1 -1
  126. package/dist/ui/shortcutsHelp.js +1 -0
  127. package/dist/ui/shortcutsHelp.js.map +1 -1
  128. package/dist/ui/streamingFormatter.d.ts +30 -0
  129. package/dist/ui/streamingFormatter.d.ts.map +1 -0
  130. package/dist/ui/streamingFormatter.js +91 -0
  131. package/dist/ui/streamingFormatter.js.map +1 -0
  132. package/dist/ui/unified/index.d.ts +1 -30
  133. package/dist/ui/unified/index.d.ts.map +1 -1
  134. package/dist/ui/unified/index.js +2 -45
  135. package/dist/ui/unified/index.js.map +1 -1
  136. package/dist/utils/errorUtils.d.ts +16 -0
  137. package/dist/utils/errorUtils.d.ts.map +1 -0
  138. package/dist/utils/errorUtils.js +66 -0
  139. package/dist/utils/errorUtils.js.map +1 -0
  140. package/package.json +2 -1
  141. package/dist/core/reliabilityPrompt.d.ts +0 -9
  142. package/dist/core/reliabilityPrompt.d.ts.map +0 -1
  143. package/dist/core/reliabilityPrompt.js +0 -31
  144. package/dist/core/reliabilityPrompt.js.map +0 -1
  145. package/dist/ui/UnifiedUIController.d.ts +0 -81
  146. package/dist/ui/UnifiedUIController.d.ts.map +0 -1
  147. package/dist/ui/UnifiedUIController.js +0 -212
  148. package/dist/ui/UnifiedUIController.js.map +0 -1
  149. package/dist/ui/animation/AnimationScheduler.d.ts +0 -192
  150. package/dist/ui/animation/AnimationScheduler.d.ts.map +0 -1
  151. package/dist/ui/animation/AnimationScheduler.js +0 -432
  152. package/dist/ui/animation/AnimationScheduler.js.map +0 -1
  153. package/dist/ui/inPlaceUpdater.d.ts +0 -181
  154. package/dist/ui/inPlaceUpdater.d.ts.map +0 -1
  155. package/dist/ui/inPlaceUpdater.js +0 -515
  156. package/dist/ui/inPlaceUpdater.js.map +0 -1
  157. package/dist/ui/interrupts/InterruptManager.d.ts +0 -142
  158. package/dist/ui/interrupts/InterruptManager.d.ts.map +0 -1
  159. package/dist/ui/interrupts/InterruptManager.js +0 -439
  160. package/dist/ui/interrupts/InterruptManager.js.map +0 -1
  161. package/dist/ui/telemetry/ResponseTracker.d.ts +0 -22
  162. package/dist/ui/telemetry/ResponseTracker.d.ts.map +0 -1
  163. package/dist/ui/telemetry/ResponseTracker.js +0 -60
  164. package/dist/ui/telemetry/ResponseTracker.js.map +0 -1
  165. package/dist/ui/telemetry/UITelemetry.d.ts +0 -181
  166. package/dist/ui/telemetry/UITelemetry.d.ts.map +0 -1
  167. package/dist/ui/telemetry/UITelemetry.js +0 -446
  168. package/dist/ui/telemetry/UITelemetry.js.map +0 -1
  169. package/dist/ui/unified/layout.d.ts +0 -12
  170. package/dist/ui/unified/layout.d.ts.map +0 -1
  171. package/dist/ui/unified/layout.js +0 -96
  172. package/dist/ui/unified/layout.js.map +0 -1
@@ -0,0 +1,156 @@
1
+ import { theme } from './theme.js';
2
+ /**
3
+ * Renders a compact, persistent plan panel similar to the Codex CLI todo strip.
4
+ * Keeps status-aware progress and a short note without consuming scrollback.
5
+ */
6
+ export class PlanOverlay {
7
+ state = null;
8
+ setPlan(steps, explanation) {
9
+ const normalized = (steps || [])
10
+ .map((step) => ({
11
+ step: step.step.trim(),
12
+ status: normalizeStatus(step.status),
13
+ }))
14
+ .filter((step) => step.step.length > 0);
15
+ if (!normalized.length) {
16
+ this.state = null;
17
+ return;
18
+ }
19
+ this.state = {
20
+ steps: normalized,
21
+ explanation: explanation?.trim() || undefined,
22
+ updatedAt: Date.now(),
23
+ visible: true,
24
+ };
25
+ }
26
+ clear() {
27
+ this.state = null;
28
+ }
29
+ show() {
30
+ if (!this.state)
31
+ return;
32
+ this.state.visible = true;
33
+ }
34
+ hide() {
35
+ if (!this.state)
36
+ return;
37
+ this.state.visible = false;
38
+ }
39
+ toggle(show) {
40
+ if (!this.state)
41
+ return;
42
+ if (typeof show === 'boolean') {
43
+ this.state.visible = show;
44
+ return;
45
+ }
46
+ this.state.visible = !this.state.visible;
47
+ }
48
+ hasPlan() {
49
+ return Boolean(this.state && this.state.steps.length > 0);
50
+ }
51
+ getProgressLabel() {
52
+ if (!this.state || !this.state.steps.length) {
53
+ return null;
54
+ }
55
+ const total = this.state.steps.length;
56
+ const completed = this.state.steps.filter((step) => step.status === 'completed').length;
57
+ const inProgress = this.state.steps.filter((step) => step.status === 'in_progress').length;
58
+ if (total === 0) {
59
+ return null;
60
+ }
61
+ const segments = [`${completed}/${total} done`];
62
+ if (inProgress > 0) {
63
+ segments.push(`${inProgress} in flight`);
64
+ }
65
+ return segments.join(', ');
66
+ }
67
+ /**
68
+ * Render a short, persistent panel that sits in the control bar overlay.
69
+ * Kept intentionally short so it fits under the prompt without crowding.
70
+ */
71
+ render(maxSteps = 7) {
72
+ if (!this.state || !this.state.visible || this.state.steps.length === 0) {
73
+ return [];
74
+ }
75
+ const lines = [];
76
+ const progress = this.getProgressLabel();
77
+ const stamp = formatRelative(this.state.updatedAt);
78
+ const headerParts = [
79
+ theme.gradient.primary('Plan'),
80
+ progress ? theme.ui.muted(`(${progress})`) : null,
81
+ stamp ? theme.ui.muted(`· ${stamp}`) : null,
82
+ ].filter(Boolean);
83
+ lines.push(headerParts.join(' '));
84
+ const cappedSteps = this.state.steps.slice(0, Math.max(1, maxSteps));
85
+ for (const step of cappedSteps) {
86
+ lines.push(` ${formatStatus(step.status)} ${step.step}`);
87
+ }
88
+ const remaining = this.state.steps.length - cappedSteps.length;
89
+ if (remaining > 0) {
90
+ lines.push(theme.ui.muted(` … plus ${remaining} more step${remaining === 1 ? '' : 's'}`));
91
+ }
92
+ if (this.state.explanation) {
93
+ lines.push(theme.ui.muted(` note: ${truncate(this.state.explanation, 64)}`));
94
+ }
95
+ return lines;
96
+ }
97
+ asText() {
98
+ if (!this.state || this.state.steps.length === 0) {
99
+ return 'No active plan.';
100
+ }
101
+ const lines = [];
102
+ const progress = this.getProgressLabel();
103
+ const stamp = formatRelative(this.state.updatedAt);
104
+ const header = ['Plan', progress ? `(${progress})` : null, stamp ? `- ${stamp}` : null]
105
+ .filter(Boolean)
106
+ .join(' ');
107
+ lines.push(header);
108
+ for (const step of this.state.steps) {
109
+ lines.push(` ${formatStatus(step.status)} ${step.step}`);
110
+ }
111
+ if (this.state.explanation) {
112
+ lines.push('');
113
+ lines.push(`note: ${this.state.explanation}`);
114
+ }
115
+ return lines.join('\n');
116
+ }
117
+ }
118
+ function formatStatus(status) {
119
+ switch (status) {
120
+ case 'completed':
121
+ return theme.success('✓');
122
+ case 'in_progress':
123
+ return theme.info('•');
124
+ default:
125
+ return theme.ui.muted('∙');
126
+ }
127
+ }
128
+ function normalizeStatus(status) {
129
+ if (status === 'completed' || status === 'in_progress' || status === 'pending') {
130
+ return status;
131
+ }
132
+ return 'pending';
133
+ }
134
+ function truncate(text, maxLength) {
135
+ const normalized = (text || '').trim();
136
+ if (normalized.length <= maxLength) {
137
+ return normalized;
138
+ }
139
+ return `${normalized.slice(0, Math.max(0, maxLength - 1))}…`;
140
+ }
141
+ function formatRelative(timestamp) {
142
+ const deltaMs = Date.now() - timestamp;
143
+ if (deltaMs < 5_000)
144
+ return 'just now';
145
+ const minutes = Math.floor(deltaMs / 60_000);
146
+ if (minutes < 1)
147
+ return 'seconds ago';
148
+ if (minutes < 60)
149
+ return `${minutes}m ago`;
150
+ const hours = Math.floor(minutes / 60);
151
+ if (hours < 24)
152
+ return `${hours}h ago`;
153
+ const days = Math.floor(hours / 24);
154
+ return `${days}d ago`;
155
+ }
156
+ //# sourceMappingURL=planOverlay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planOverlay.js","sourceRoot":"","sources":["../../src/ui/planOverlay.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"shortcutsHelp.d.ts","sourceRoot":"","sources":["../../src/ui/shortcutsHelp.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,KAAK,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;CACJ;AA2DD;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CA8B5C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAE5E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAS7C;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAiB7E;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAY5E;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAMrE"}
1
+ {"version":3,"file":"shortcutsHelp.d.ts","sourceRoot":"","sources":["../../src/ui/shortcutsHelp.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,KAAK,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;CACJ;AA4DD;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CA8B5C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAE5E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAS7C;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAiB7E;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAY5E;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAMrE"}
@@ -10,6 +10,7 @@ const EROSOLAR_SHORTCUTS = [
10
10
  { keys: 'Shift+Tab', description: 'Cycle edit mode (auto/ask/plan)' },
11
11
  { keys: 'Tab', description: 'Toggle thinking (balanced/longer)' },
12
12
  { keys: 'Ctrl+Shift+V', description: 'Toggle verification' },
13
+ { keys: 'Ctrl+Shift+C', description: 'Toggle auto-continue' },
13
14
  { keys: 'Ctrl+Shift+A', description: 'Toggle approvals for high-impact actions' },
14
15
  { keys: 'Ctrl+Shift+E', description: 'Toggle edit permission mode' },
15
16
  { keys: 'Ctrl+Shift+X', description: 'Clear/compact context' },
@@ -1 +1 @@
1
- {"version":3,"file":"shortcutsHelp.js","sourceRoot":"","sources":["../../src/ui/shortcutsHelp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shortcutsHelp.js","sourceRoot":"","sources":["../../src/ui/shortcutsHelp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * StreamingResponseFormatter
3
+ * Claude Code style: Stream plain text without forcing ⏺ bullets.
4
+ * Keeps formatting lightweight so responses flow naturally.
5
+ */
6
+ export declare class StreamingResponseFormatter {
7
+ private lineOpen;
8
+ private currentLine;
9
+ private mode;
10
+ constructor(columns?: number);
11
+ header(): string;
12
+ /**
13
+ * Set the streaming mode (content vs reasoning)
14
+ * Reasoning chunks are visually distinguished with muted styling
15
+ */
16
+ setMode(mode: 'content' | 'reasoning'): void;
17
+ formatChunk(chunk: string): string;
18
+ /**
19
+ * Format reasoning chunk with visual indicator
20
+ * Used for extended thinking mode
21
+ */
22
+ formatReasoningChunk(chunk: string): string;
23
+ finish(options?: string | {
24
+ note?: string;
25
+ mode?: 'update' | 'complete' | 'stop' | 'quit';
26
+ }): string;
27
+ private resetState;
28
+ private modeIcon;
29
+ }
30
+ //# sourceMappingURL=streamingFormatter.d.ts.map
@@ -0,0 +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,CAAS;IACzB,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,IAAI,CAAsC;gBAEtC,OAAO,CAAC,EAAE,MAAM;IAI5B,MAAM,IAAI,MAAM;IAKhB;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,SAAS,GAAG,WAAW,GAAG,IAAI;IAI5C,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAkBlC;;;OAGG;IACH,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAa3C,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;IAsBpG,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,QAAQ;CAajB"}
@@ -0,0 +1,91 @@
1
+ import { theme } from './theme.js';
2
+ /**
3
+ * StreamingResponseFormatter
4
+ * Claude Code style: Stream plain text without forcing ⏺ bullets.
5
+ * Keeps formatting lightweight so responses flow naturally.
6
+ */
7
+ export class StreamingResponseFormatter {
8
+ lineOpen = false;
9
+ currentLine = '';
10
+ mode = 'content';
11
+ constructor(columns) {
12
+ clamp(columns ?? 80, 48, 110);
13
+ }
14
+ header() {
15
+ // Start on a clean line before streaming content
16
+ return '\n';
17
+ }
18
+ /**
19
+ * Set the streaming mode (content vs reasoning)
20
+ * Reasoning chunks are visually distinguished with muted styling
21
+ */
22
+ setMode(mode) {
23
+ this.mode = mode;
24
+ }
25
+ formatChunk(chunk) {
26
+ if (!chunk) {
27
+ return '';
28
+ }
29
+ const normalized = chunk.replace(/\r\n/g, '\n').replace(/\r/g, '\n');
30
+ // Apply visual distinction for reasoning blocks
31
+ const formatted = this.mode === 'reasoning'
32
+ ? theme.ui.muted(normalized)
33
+ : normalized;
34
+ // Track whether the line ended cleanly so finish() can close it if needed
35
+ this.lineOpen = !normalized.endsWith('\n');
36
+ this.currentLine = normalized.split('\n').pop() ?? '';
37
+ return formatted;
38
+ }
39
+ /**
40
+ * Format reasoning chunk with visual indicator
41
+ * Used for extended thinking mode
42
+ */
43
+ formatReasoningChunk(chunk) {
44
+ if (!chunk) {
45
+ return '';
46
+ }
47
+ const normalized = chunk.replace(/\r\n/g, '\n').replace(/\r/g, '\n');
48
+ const formatted = theme.ui.muted(normalized);
49
+ this.lineOpen = !normalized.endsWith('\n');
50
+ this.currentLine = normalized.split('\n').pop() ?? '';
51
+ return formatted;
52
+ }
53
+ finish(options) {
54
+ const resolved = typeof options === 'string' ? { note: options } : options ?? {};
55
+ const note = resolved.note?.trim();
56
+ const mode = resolved.mode ?? 'complete';
57
+ let output = '';
58
+ // Close any open line so the status note lands on its own line
59
+ if (this.lineOpen) {
60
+ output += '\n';
61
+ }
62
+ if (note) {
63
+ const icon = this.modeIcon(mode);
64
+ const statusText = icon ? `${icon} ${note}` : note;
65
+ output += `${statusText}\n`;
66
+ }
67
+ this.resetState();
68
+ return output;
69
+ }
70
+ resetState() {
71
+ this.lineOpen = false;
72
+ this.currentLine = '';
73
+ }
74
+ modeIcon(mode) {
75
+ switch (mode) {
76
+ case 'update':
77
+ return theme.info('↺');
78
+ case 'stop':
79
+ return theme.warning('■');
80
+ case 'quit':
81
+ return theme.error('■');
82
+ case 'complete':
83
+ default:
84
+ return null;
85
+ }
86
+ }
87
+ }
88
+ function clamp(value, min, max) {
89
+ return Math.max(min, Math.min(max, value));
90
+ }
91
+ //# sourceMappingURL=streamingFormatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streamingFormatter.js","sourceRoot":"","sources":["../../src/ui/streamingFormatter.ts"],"names":[],"mappings":"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"}
@@ -1,26 +1,11 @@
1
+ import type { ToolRuntimeObserver } from '../../core/toolRuntime.js';
1
2
  import type { Display } from '../display.js';
2
3
  import { ShellUIAdapter } from '../ShellUIAdapter.js';
3
4
  import { UIUpdateCoordinator } from '../orchestration/UIUpdateCoordinator.js';
4
- import type { ToolRuntimeObserver } from '../../core/toolRuntime.js';
5
- import type { ToolCallRequest } from '../../core/types.js';
6
- export { type ToolOperation, type Badge, type BadgeStyle } from '../ShellUIAdapter.js';
7
- export { inPlaceUpdater, InPlaceUpdater, updateInPlace, showProgress, finishProgress } from '../inPlaceUpdater.js';
8
- export { theme, icons, spinnerFrames, progressChars, boxChars } from '../theme.js';
9
5
  export interface UnifiedUiOptions {
10
- writeStream?: NodeJS.WriteStream;
11
6
  display?: Display;
12
- enableTelemetry?: boolean;
13
- debugMode?: boolean;
14
- plainOutput?: boolean;
15
7
  updateCoordinator?: UIUpdateCoordinator;
16
8
  }
17
- /**
18
- * UnifiedUiLayer - single entry point for all terminal UI wiring.
19
- *
20
- * This layer standardizes how the shell interacts with the Unified UI Controller,
21
- * the Display system, and update coordination/telemetry. It ensures both the
22
- * TypeScript and Python CLIs share the same conceptual contract.
23
- */
24
9
  export declare class UnifiedUiLayer {
25
10
  readonly display: Display;
26
11
  readonly adapter: ShellUIAdapter;
@@ -31,20 +16,6 @@ export declare class UnifiedUiLayer {
31
16
  startProcessing(message?: string): void;
32
17
  endProcessing(message?: string): void;
33
18
  updateContextUsage(percentage: number): void;
34
- setOverlayEnabled(enabled: boolean): void;
35
- getTelemetry(): ReturnType<ShellUIAdapter['getTelemetry']>;
36
- getState(): ReturnType<ShellUIAdapter['getState']>;
37
- showInterrupt(message: string, type?: 'confirmation' | 'alert' | 'question', handler?: () => void | Promise<void>): string;
38
- completeInterrupt(id: string): void;
39
- onToolStart(toolCall: ToolCallRequest): void;
40
- /**
41
- * Set file change tracking callback
42
- */
43
- setFileChangeCallback(callback: (path: string, type: 'edit' | 'write' | 'delete', additions: number, removals: number) => void): void;
44
- /**
45
- * Set tool status callback for dynamic status updates
46
- */
47
- setToolStatusCallback(callback: (status: string | null) => void): void;
48
19
  dispose(): void;
49
20
  }
50
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/unified/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,cAAc,EAA6B,MAAM,sBAAsB,CAAC;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAC9E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAG3D,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvF,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACnH,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEnF,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iBAAiB,CAAC,EAAE,mBAAmB,CAAC;CACzC;AAED;;;;;;GAMG;AACH,qBAAa,cAAc;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,CAAC;IACjE,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;gBAE1B,OAAO,GAAE,gBAAqB;IAoB1C,kBAAkB,IAAI,mBAAmB;IAIzC,eAAe,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAIvC,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAIrC,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAI5C,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIzC,YAAY,IAAI,UAAU,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;IAI1D,QAAQ,IAAI,UAAU,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IAIlD,aAAa,CACX,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,cAAc,GAAG,OAAO,GAAG,UAAoB,EACrD,OAAO,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GACnC,MAAM;IAIT,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAInC,WAAW,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAI5C;;OAEG;IACH,qBAAqB,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAIrI;;OAEG;IACH,qBAAqB,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI;IAItE,OAAO,IAAI,IAAI;CAGhB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/unified/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAE9E,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iBAAiB,CAAC,EAAE,mBAAmB,CAAC;CACzC;AAED,qBAAa,cAAc;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,CAAC;IACjE,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;gBAE1B,OAAO,GAAE,gBAAqB;IAO1C,kBAAkB,IAAI,mBAAmB;IAIzC,eAAe,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAIvC,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAIrC,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAI5C,OAAO,IAAI,IAAI;CAIhB"}
@@ -1,15 +1,6 @@
1
1
  import { display as defaultDisplay } from '../display.js';
2
2
  import { ShellUIAdapter } from '../ShellUIAdapter.js';
3
3
  import { UIUpdateCoordinator } from '../orchestration/UIUpdateCoordinator.js';
4
- export { inPlaceUpdater, InPlaceUpdater, updateInPlace, showProgress, finishProgress } from '../inPlaceUpdater.js';
5
- export { theme, icons, spinnerFrames, progressChars, boxChars } from '../theme.js';
6
- /**
7
- * UnifiedUiLayer - single entry point for all terminal UI wiring.
8
- *
9
- * This layer standardizes how the shell interacts with the Unified UI Controller,
10
- * the Display system, and update coordination/telemetry. It ensures both the
11
- * TypeScript and Python CLIs share the same conceptual contract.
12
- */
13
4
  export class UnifiedUiLayer {
14
5
  display;
15
6
  adapter;
@@ -18,12 +9,7 @@ export class UnifiedUiLayer {
18
9
  constructor(options = {}) {
19
10
  this.display = options.display ?? defaultDisplay;
20
11
  this.updates = options.updateCoordinator ?? new UIUpdateCoordinator();
21
- const adapterConfig = {
22
- enableOverlay: !options.plainOutput,
23
- enableTelemetry: options.enableTelemetry ?? true,
24
- debugMode: options.debugMode ?? false,
25
- };
26
- this.adapter = new ShellUIAdapter((options.writeStream ?? process.stdout), this.display, adapterConfig, this.updates);
12
+ this.adapter = new ShellUIAdapter(this.display, {});
27
13
  this.controller = this.adapter.getController();
28
14
  }
29
15
  createToolObserver() {
@@ -38,38 +24,9 @@ export class UnifiedUiLayer {
38
24
  updateContextUsage(percentage) {
39
25
  this.adapter.updateContextUsage(percentage);
40
26
  }
41
- setOverlayEnabled(enabled) {
42
- this.adapter.setOverlayEnabled(enabled);
43
- }
44
- getTelemetry() {
45
- return this.adapter.getTelemetry();
46
- }
47
- getState() {
48
- return this.adapter.getState();
49
- }
50
- showInterrupt(message, type = 'alert', handler) {
51
- return this.adapter.showInterrupt(message, type, handler);
52
- }
53
- completeInterrupt(id) {
54
- this.adapter.completeInterrupt(id);
55
- }
56
- onToolStart(toolCall) {
57
- this.controller.onToolStart(toolCall);
58
- }
59
- /**
60
- * Set file change tracking callback
61
- */
62
- setFileChangeCallback(callback) {
63
- this.adapter.setFileChangeCallback(callback);
64
- }
65
- /**
66
- * Set tool status callback for dynamic status updates
67
- */
68
- setToolStatusCallback(callback) {
69
- this.adapter.setToolStatusCallback(callback);
70
- }
71
27
  dispose() {
72
28
  this.adapter.dispose();
29
+ this.updates.dispose();
73
30
  }
74
31
  }
75
32
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/unified/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/unified/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAO9E,MAAM,OAAO,cAAc;IAChB,OAAO,CAAU;IACjB,OAAO,CAAiB;IACxB,UAAU,CAA8C;IACxD,OAAO,CAAsB;IAEtC,YAAY,UAA4B,EAAE;QACxC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,cAAc,CAAC;QACjD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,iBAAiB,IAAI,IAAI,mBAAmB,EAAE,CAAC;QACtE,IAAI,CAAC,OAAO,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;IACjD,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAC3C,CAAC;IAED,eAAe,CAAC,OAAgB;QAC9B,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,aAAa,CAAC,OAAgB;QAC5B,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,kBAAkB,CAAC,UAAkB;QACnC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO;QACL,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACvB,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IACzB,CAAC;CACF"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Enhanced error utilities for better debugging and error reporting
3
+ */
4
+ import type { ErrorContext } from '../core/errors.js';
5
+ export interface ErrorDetails {
6
+ message: string;
7
+ code?: string;
8
+ context?: ErrorContext;
9
+ stack?: string;
10
+ timestamp: string;
11
+ }
12
+ export declare function createErrorDetails(error: unknown, context?: ErrorContext, code?: string): ErrorDetails;
13
+ export declare function formatErrorForLogging(error: unknown, context?: ErrorContext): string;
14
+ export declare function isRetryableError(error: unknown): boolean;
15
+ export declare function withRetry<T>(operation: () => Promise<T>, maxRetries?: number, delayMs?: number): Promise<T>;
16
+ //# sourceMappingURL=errorUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errorUtils.d.ts","sourceRoot":"","sources":["../../src/utils/errorUtils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAcD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,YAAY,EACtB,IAAI,CAAC,EAAE,MAAM,GACZ,YAAY,CAWd;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,MAAM,CAkBpF;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAOxD;AAED,wBAAsB,SAAS,CAAC,CAAC,EAC/B,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,UAAU,GAAE,MAAU,EACtB,OAAO,GAAE,MAAa,GACrB,OAAO,CAAC,CAAC,CAAC,CAkBZ"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Enhanced error utilities for better debugging and error reporting
3
+ */
4
+ // Centralized configuration for retryable error patterns
5
+ const RETRYABLE_ERROR_PATTERNS = [
6
+ 'timeout',
7
+ 'network',
8
+ 'rate limit',
9
+ 'too many requests',
10
+ 'service unavailable',
11
+ 'gateway timeout',
12
+ 'bad gateway',
13
+ 'internal server error',
14
+ ];
15
+ export function createErrorDetails(error, context, code) {
16
+ const message = error instanceof Error ? error.message : String(error);
17
+ const stack = error instanceof Error ? error.stack : undefined;
18
+ return {
19
+ message,
20
+ code,
21
+ context,
22
+ stack,
23
+ timestamp: new Date().toISOString(),
24
+ };
25
+ }
26
+ export function formatErrorForLogging(error, context) {
27
+ const details = createErrorDetails(error, context);
28
+ const parts = [
29
+ `[${details.timestamp}]`,
30
+ details.code ? `[${details.code}]` : '',
31
+ details.message,
32
+ ];
33
+ if (details.context && Object.keys(details.context).length > 0) {
34
+ parts.push(`Context: ${JSON.stringify(details.context)}`);
35
+ }
36
+ if (details.stack) {
37
+ parts.push(`Stack: ${details.stack}`);
38
+ }
39
+ return parts.filter(Boolean).join(' ');
40
+ }
41
+ export function isRetryableError(error) {
42
+ if (!(error instanceof Error)) {
43
+ return false;
44
+ }
45
+ const message = error.message.toLowerCase();
46
+ return RETRYABLE_ERROR_PATTERNS.some(pattern => message.includes(pattern));
47
+ }
48
+ export async function withRetry(operation, maxRetries = 3, delayMs = 1000) {
49
+ for (let attempt = 0; attempt <= maxRetries; attempt++) {
50
+ try {
51
+ return await operation();
52
+ }
53
+ catch (error) {
54
+ // Don't retry if we've exhausted attempts or error is not retryable
55
+ if (attempt === maxRetries || !isRetryableError(error)) {
56
+ throw error;
57
+ }
58
+ // Exponential backoff
59
+ const backoffDelay = delayMs * Math.pow(2, attempt);
60
+ await new Promise(resolve => setTimeout(resolve, backoffDelay));
61
+ }
62
+ }
63
+ // This should never be reached due to the throw above, but TypeScript needs it
64
+ throw new Error('Retry logic failed unexpectedly');
65
+ }
66
+ //# sourceMappingURL=errorUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errorUtils.js","sourceRoot":"","sources":["../../src/utils/errorUtils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "erosolar-cli",
3
- "version": "2.1.170",
3
+ "version": "2.1.172",
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",
@@ -124,6 +124,7 @@
124
124
  "boxen": "^5.1.2",
125
125
  "chalk": "^4.1.2",
126
126
  "cli-spinners": "^2.9.2",
127
+ "erosolar-cli": "^2.1.168",
127
128
  "gradient-string": "^2.0.2",
128
129
  "nanospinner": "^1.1.0",
129
130
  "nodemailer": "^7.0.10",
@@ -1,9 +0,0 @@
1
- /**
2
- * Shared reliability directives applied to all erosolar-cli runtimes.
3
- * Ensures the agent keeps working, acknowledges the user before tools,
4
- * and surfaces useful insights instead of stalling.
5
- */
6
- declare const RELIABILITY_SENTINEL = "[EROSOLAR_RELIABILITY_RULES]";
7
- export declare function applyReliabilityDirectives(basePrompt: string): string;
8
- export { RELIABILITY_SENTINEL };
9
- //# sourceMappingURL=reliabilityPrompt.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reliabilityPrompt.d.ts","sourceRoot":"","sources":["../../src/core/reliabilityPrompt.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,QAAA,MAAM,oBAAoB,iCAAiC,CAAC;AAgB5D,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CASrE;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
@@ -1,31 +0,0 @@
1
- /**
2
- * Shared reliability directives applied to all erosolar-cli runtimes.
3
- * Ensures the agent keeps working, acknowledges the user before tools,
4
- * and surfaces useful insights instead of stalling.
5
- */
6
- const RELIABILITY_SENTINEL = '[EROSOLAR_RELIABILITY_RULES]';
7
- const RELIABILITY_DIRECTIVES = `${RELIABILITY_SENTINEL}
8
- CRITICAL RELIABILITY RULES:
9
- 1) COMPLETE THE TASK end-to-end. Do not stop until you have concrete results with file:line citations.
10
- 2) NEVER stop after calling a tool if the task is still unfinished. Keep going without prompting the user.
11
- 3) NEVER say "I need to do X" and then stop. Actually do the work in the same response.
12
- 4) Prefer multiple tool calls in a single response when needed; avoid unnecessary waits between steps.
13
- 5) Do not call the same tool with identical arguments twice in a row; use previous results to move forward.
14
- 6) ALWAYS acknowledge the user's request before the first tool call with a brief, actionable insight tied to their command (no filler like "Noted").
15
- 7) Keep planning internal: avoid dumping long "Understanding/Plan" sections; share only a one-line intent when truly helpful, then act with tools.
16
- 8) Only show user-facing text when it conveys useful state or next actions; omit boilerplate and redundant prefaces.
17
- 9) If a tool fails or a plan stalls, immediately choose an alternative approach and continue.
18
- 10) Surface concise insights or progress updates to the UI whenever they help the user stay oriented.
19
- `;
20
- export function applyReliabilityDirectives(basePrompt) {
21
- const prompt = (basePrompt ?? '').trim();
22
- if (prompt.includes(RELIABILITY_SENTINEL)) {
23
- return prompt;
24
- }
25
- if (!prompt) {
26
- return RELIABILITY_DIRECTIVES.trim();
27
- }
28
- return `${prompt}\n\n${RELIABILITY_DIRECTIVES}`.trim();
29
- }
30
- export { RELIABILITY_SENTINEL };
31
- //# sourceMappingURL=reliabilityPrompt.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reliabilityPrompt.js","sourceRoot":"","sources":["../../src/core/reliabilityPrompt.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,oBAAoB,GAAG,8BAA8B,CAAC;AAE5D,MAAM,sBAAsB,GAAG,GAAG,oBAAoB;;;;;;;;;;;;CAYrD,CAAC;AAEF,MAAM,UAAU,0BAA0B,CAAC,UAAkB;IAC3D,MAAM,MAAM,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACzC,IAAI,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;QAC1C,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,sBAAsB,CAAC,IAAI,EAAE,CAAC;IACvC,CAAC;IACD,OAAO,GAAG,MAAM,OAAO,sBAAsB,EAAE,CAAC,IAAI,EAAE,CAAC;AACzD,CAAC;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC"}