erosolar-cli 2.1.167 → 2.1.168

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 (128) hide show
  1. package/agents/erosolar-code.rules.json +2 -2
  2. package/agents/general.rules.json +3 -21
  3. package/dist/StringUtils.d.ts +8 -0
  4. package/dist/StringUtils.d.ts.map +1 -0
  5. package/dist/StringUtils.js +11 -0
  6. package/dist/StringUtils.js.map +1 -0
  7. package/dist/capabilities/statusCapability.js +2 -2
  8. package/dist/capabilities/statusCapability.js.map +1 -1
  9. package/dist/contracts/agent-schemas.json +0 -5
  10. package/dist/core/agent.d.ts +11 -72
  11. package/dist/core/agent.d.ts.map +1 -1
  12. package/dist/core/agent.js +182 -869
  13. package/dist/core/agent.js.map +1 -1
  14. package/dist/core/aiFlowSupervisor.d.ts +44 -0
  15. package/dist/core/aiFlowSupervisor.d.ts.map +1 -0
  16. package/dist/core/aiFlowSupervisor.js +299 -0
  17. package/dist/core/aiFlowSupervisor.js.map +1 -0
  18. package/dist/core/cliTestHarness.d.ts +200 -0
  19. package/dist/core/cliTestHarness.d.ts.map +1 -0
  20. package/dist/core/cliTestHarness.js +549 -0
  21. package/dist/core/cliTestHarness.js.map +1 -0
  22. package/dist/core/preferences.d.ts +0 -1
  23. package/dist/core/preferences.d.ts.map +1 -1
  24. package/dist/core/preferences.js +2 -9
  25. package/dist/core/preferences.js.map +1 -1
  26. package/dist/core/schemaValidator.js +3 -3
  27. package/dist/core/schemaValidator.js.map +1 -1
  28. package/dist/core/testUtils.d.ts +121 -0
  29. package/dist/core/testUtils.d.ts.map +1 -0
  30. package/dist/core/testUtils.js +235 -0
  31. package/dist/core/testUtils.js.map +1 -0
  32. package/dist/core/toolPreconditions.d.ts +11 -0
  33. package/dist/core/toolPreconditions.d.ts.map +1 -1
  34. package/dist/core/toolPreconditions.js +164 -33
  35. package/dist/core/toolPreconditions.js.map +1 -1
  36. package/dist/core/toolRuntime.d.ts.map +1 -1
  37. package/dist/core/toolRuntime.js +114 -9
  38. package/dist/core/toolRuntime.js.map +1 -1
  39. package/dist/core/toolValidation.d.ts +116 -0
  40. package/dist/core/toolValidation.d.ts.map +1 -0
  41. package/dist/core/toolValidation.js +282 -0
  42. package/dist/core/toolValidation.js.map +1 -0
  43. package/dist/core/updateChecker.d.ts +1 -61
  44. package/dist/core/updateChecker.d.ts.map +1 -1
  45. package/dist/core/updateChecker.js +3 -147
  46. package/dist/core/updateChecker.js.map +1 -1
  47. package/dist/headless/headlessApp.d.ts.map +1 -1
  48. package/dist/headless/headlessApp.js +39 -0
  49. package/dist/headless/headlessApp.js.map +1 -1
  50. package/dist/plugins/tools/nodeDefaults.d.ts.map +1 -1
  51. package/dist/plugins/tools/nodeDefaults.js +2 -0
  52. package/dist/plugins/tools/nodeDefaults.js.map +1 -1
  53. package/dist/providers/openaiResponsesProvider.d.ts.map +1 -1
  54. package/dist/providers/openaiResponsesProvider.js +74 -79
  55. package/dist/providers/openaiResponsesProvider.js.map +1 -1
  56. package/dist/runtime/agentController.d.ts.map +1 -1
  57. package/dist/runtime/agentController.js +0 -6
  58. package/dist/runtime/agentController.js.map +1 -1
  59. package/dist/runtime/agentSession.d.ts.map +1 -1
  60. package/dist/runtime/agentSession.js +2 -3
  61. package/dist/runtime/agentSession.js.map +1 -1
  62. package/dist/shell/interactiveShell.d.ts +8 -16
  63. package/dist/shell/interactiveShell.d.ts.map +1 -1
  64. package/dist/shell/interactiveShell.js +159 -388
  65. package/dist/shell/interactiveShell.js.map +1 -1
  66. package/dist/shell/systemPrompt.d.ts.map +1 -1
  67. package/dist/shell/systemPrompt.js +15 -4
  68. package/dist/shell/systemPrompt.js.map +1 -1
  69. package/dist/subagents/taskRunner.js +1 -2
  70. package/dist/subagents/taskRunner.js.map +1 -1
  71. package/dist/tools/bashTools.d.ts.map +1 -1
  72. package/dist/tools/bashTools.js +8 -101
  73. package/dist/tools/bashTools.js.map +1 -1
  74. package/dist/tools/diffUtils.d.ts +2 -8
  75. package/dist/tools/diffUtils.d.ts.map +1 -1
  76. package/dist/tools/diffUtils.js +13 -72
  77. package/dist/tools/diffUtils.js.map +1 -1
  78. package/dist/tools/grepTools.d.ts.map +1 -1
  79. package/dist/tools/grepTools.js +2 -10
  80. package/dist/tools/grepTools.js.map +1 -1
  81. package/dist/tools/searchTools.d.ts.map +1 -1
  82. package/dist/tools/searchTools.js +2 -4
  83. package/dist/tools/searchTools.js.map +1 -1
  84. package/dist/ui/PromptController.d.ts +0 -2
  85. package/dist/ui/PromptController.d.ts.map +1 -1
  86. package/dist/ui/PromptController.js +0 -2
  87. package/dist/ui/PromptController.js.map +1 -1
  88. package/dist/ui/ShellUIAdapter.d.ts +18 -71
  89. package/dist/ui/ShellUIAdapter.d.ts.map +1 -1
  90. package/dist/ui/ShellUIAdapter.js +139 -237
  91. package/dist/ui/ShellUIAdapter.js.map +1 -1
  92. package/dist/ui/UnifiedUIController.d.ts +1 -0
  93. package/dist/ui/UnifiedUIController.d.ts.map +1 -1
  94. package/dist/ui/UnifiedUIController.js +1 -0
  95. package/dist/ui/UnifiedUIController.js.map +1 -1
  96. package/dist/ui/UnifiedUIRenderer.d.ts +5 -122
  97. package/dist/ui/UnifiedUIRenderer.d.ts.map +1 -1
  98. package/dist/ui/UnifiedUIRenderer.js +125 -830
  99. package/dist/ui/UnifiedUIRenderer.js.map +1 -1
  100. package/dist/ui/compactRenderer.d.ts +139 -0
  101. package/dist/ui/compactRenderer.d.ts.map +1 -0
  102. package/dist/ui/compactRenderer.js +398 -0
  103. package/dist/ui/compactRenderer.js.map +1 -0
  104. package/dist/ui/display.d.ts +48 -13
  105. package/dist/ui/display.d.ts.map +1 -1
  106. package/dist/ui/display.js +105 -22
  107. package/dist/ui/display.js.map +1 -1
  108. package/dist/ui/streamingFormatter.d.ts +30 -0
  109. package/dist/ui/streamingFormatter.d.ts.map +1 -0
  110. package/dist/ui/streamingFormatter.js +91 -0
  111. package/dist/ui/streamingFormatter.js.map +1 -0
  112. package/dist/ui/unified/index.d.ts +1 -1
  113. package/dist/ui/unified/index.d.ts.map +1 -1
  114. package/dist/ui/unified/index.js +2 -0
  115. package/dist/ui/unified/index.js.map +1 -1
  116. package/dist/utils/errorUtils.d.ts +16 -0
  117. package/dist/utils/errorUtils.d.ts.map +1 -0
  118. package/dist/utils/errorUtils.js +66 -0
  119. package/dist/utils/errorUtils.js.map +1 -0
  120. package/package.json +2 -1
  121. package/dist/core/reliabilityPrompt.d.ts +0 -9
  122. package/dist/core/reliabilityPrompt.d.ts.map +0 -1
  123. package/dist/core/reliabilityPrompt.js +0 -31
  124. package/dist/core/reliabilityPrompt.js.map +0 -1
  125. package/dist/ui/animatedStatus.d.ts +0 -129
  126. package/dist/ui/animatedStatus.d.ts.map +0 -1
  127. package/dist/ui/animatedStatus.js +0 -384
  128. package/dist/ui/animatedStatus.js.map +0 -1
@@ -0,0 +1,200 @@
1
+ /**
2
+ * CLI Test Harness - PTY-based interactive CLI testing
3
+ *
4
+ * This module provides real runtime verification of CLI behavior by:
5
+ * 1. Spawning the CLI in a pseudo-terminal (PTY)
6
+ * 2. Sending simulated user input (including paste sequences)
7
+ * 3. Capturing and analyzing output
8
+ * 4. Verifying expected behaviors
9
+ *
10
+ * @license MIT
11
+ */
12
+ import { EventEmitter } from 'node:events';
13
+ export interface CLITestConfig {
14
+ /** Working directory for the CLI */
15
+ cwd: string;
16
+ /** Environment variables */
17
+ env?: Record<string, string>;
18
+ /** Timeout for the entire test (ms) */
19
+ timeout?: number;
20
+ /** Whether to use PTY mode (requires node-pty) */
21
+ usePty?: boolean;
22
+ /** Path to CLI entry point */
23
+ cliPath?: string;
24
+ }
25
+ export interface TestInput {
26
+ /** Type of input to send */
27
+ type: 'text' | 'paste' | 'key' | 'wait';
28
+ /** The content to send */
29
+ content?: string;
30
+ /** For 'key' type: special key name */
31
+ key?: 'enter' | 'tab' | 'escape' | 'ctrl-c' | 'ctrl-d';
32
+ /** For 'wait' type: milliseconds to wait */
33
+ delay?: number;
34
+ }
35
+ export interface TestExpectation {
36
+ /** Type of expectation */
37
+ type: 'output_contains' | 'output_matches' | 'output_not_contains' | 'exit_code';
38
+ /** Pattern or value to check */
39
+ value: string | number | RegExp;
40
+ /** Description for error messages */
41
+ description?: string;
42
+ /** Timeout for this specific expectation (ms) */
43
+ timeout?: number;
44
+ }
45
+ export interface CLITestScenario {
46
+ /** Unique test identifier */
47
+ id: string;
48
+ /** Human-readable description */
49
+ description: string;
50
+ /** Category of test */
51
+ category: 'paste' | 'input' | 'command' | 'output' | 'behavior';
52
+ /** Sequence of inputs to send */
53
+ inputs: TestInput[];
54
+ /** Expected outcomes */
55
+ expectations: TestExpectation[];
56
+ /** Setup commands to run before test */
57
+ setup?: string[];
58
+ /** Cleanup commands to run after test */
59
+ cleanup?: string[];
60
+ }
61
+ export interface TestResult {
62
+ scenario: CLITestScenario;
63
+ passed: boolean;
64
+ duration: number;
65
+ output: string;
66
+ errors: string[];
67
+ expectations: Array<{
68
+ expectation: TestExpectation;
69
+ passed: boolean;
70
+ actual?: string;
71
+ reason?: string;
72
+ }>;
73
+ }
74
+ declare const SPECIAL_KEYS: Record<string, string>;
75
+ export declare class CLITestHarness extends EventEmitter {
76
+ private config;
77
+ private process;
78
+ private output;
79
+ private errors;
80
+ private exitCode;
81
+ private ptyModule;
82
+ constructor(config: CLITestConfig);
83
+ /**
84
+ * Try to load node-pty for true PTY support
85
+ */
86
+ private loadPtyModule;
87
+ /**
88
+ * Start the CLI process
89
+ */
90
+ start(): Promise<void>;
91
+ /**
92
+ * Start CLI with PTY (for interactive features like bracketed paste)
93
+ */
94
+ private startWithPty;
95
+ /**
96
+ * Start CLI with standard stdio (fallback, limited interactive support)
97
+ */
98
+ private startWithStdio;
99
+ /**
100
+ * Send input to the CLI
101
+ */
102
+ write(input: string): void;
103
+ /**
104
+ * Send a bracketed paste sequence
105
+ */
106
+ paste(content: string): void;
107
+ /**
108
+ * Send a special key
109
+ */
110
+ sendKey(key: keyof typeof SPECIAL_KEYS): void;
111
+ /**
112
+ * Wait for output matching a pattern
113
+ */
114
+ waitForOutput(pattern: string | RegExp, timeout?: number): Promise<string>;
115
+ /**
116
+ * Wait for a specified duration
117
+ */
118
+ wait(ms: number): Promise<void>;
119
+ /**
120
+ * Get current output
121
+ */
122
+ getOutput(): string;
123
+ /**
124
+ * Get current errors
125
+ */
126
+ getErrors(): string;
127
+ /**
128
+ * Stop the CLI process
129
+ */
130
+ stop(): Promise<number>;
131
+ /**
132
+ * Run a complete test scenario
133
+ */
134
+ runScenario(scenario: CLITestScenario): Promise<TestResult>;
135
+ /**
136
+ * Execute a single input action
137
+ */
138
+ private executeInput;
139
+ /**
140
+ * Check a single expectation
141
+ */
142
+ private checkExpectation;
143
+ }
144
+ /**
145
+ * Create a paste handling test scenario
146
+ */
147
+ export declare function createPasteTestScenario(content: string, expectedLineCount: number): CLITestScenario;
148
+ /**
149
+ * Create a multi-line input test scenario
150
+ */
151
+ export declare function createMultiLineInputScenario(): CLITestScenario;
152
+ /**
153
+ * Create a slash command test scenario
154
+ */
155
+ export declare function createSlashCommandScenario(command: string): CLITestScenario;
156
+ /**
157
+ * Run verification tests for a specific claim type
158
+ */
159
+ export declare function runVerificationTests(claimType: string, workingDir: string): Promise<{
160
+ passed: boolean;
161
+ results: TestResult[];
162
+ summary: string;
163
+ }>;
164
+ /**
165
+ * Claim structure for unified verification
166
+ */
167
+ export interface VerificationClaim {
168
+ id: string;
169
+ statement: string;
170
+ category: string;
171
+ context: Record<string, unknown>;
172
+ }
173
+ /**
174
+ * Result of verifying a single claim
175
+ */
176
+ export interface UnifiedClaimResult {
177
+ claim: VerificationClaim;
178
+ passed: boolean;
179
+ method: 'pty' | 'shell' | 'file_check' | 'unit_test';
180
+ output: string;
181
+ error?: string;
182
+ duration: number;
183
+ }
184
+ /**
185
+ * Verify a single claim using the appropriate method (PTY-based)
186
+ */
187
+ export declare function verifyClaim(claim: VerificationClaim, workingDir: string): Promise<UnifiedClaimResult>;
188
+ /**
189
+ * Verify all claims using unified PTY harness
190
+ */
191
+ export declare function verifyAllClaims(claims: VerificationClaim[], workingDir: string): Promise<{
192
+ results: UnifiedClaimResult[];
193
+ summary: {
194
+ total: number;
195
+ passed: number;
196
+ failed: number;
197
+ };
198
+ }>;
199
+ export default CLITestHarness;
200
+ //# sourceMappingURL=cliTestHarness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cliTestHarness.d.ts","sourceRoot":"","sources":["../../src/core/cliTestHarness.ts"],"names":[],"mappings":"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"}