@trenchwork/erosolar 1.1.63 → 1.2.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 (183) hide show
  1. package/dist/core/agent.d.ts.map +1 -1
  2. package/dist/core/agent.js +4 -48
  3. package/dist/core/agent.js.map +1 -1
  4. package/dist/core/contextManager.d.ts.map +1 -1
  5. package/dist/core/contextManager.js +5 -2
  6. package/dist/core/contextManager.js.map +1 -1
  7. package/dist/core/errorClassification.d.ts +44 -0
  8. package/dist/core/errorClassification.d.ts.map +1 -0
  9. package/dist/core/errorClassification.js +333 -0
  10. package/dist/core/errorClassification.js.map +1 -0
  11. package/dist/core/hitl.d.ts.map +1 -1
  12. package/dist/core/hitl.js +8 -0
  13. package/dist/core/hitl.js.map +1 -1
  14. package/dist/core/hostedAuth.d.ts +33 -0
  15. package/dist/core/hostedAuth.d.ts.map +1 -1
  16. package/dist/core/hostedAuth.js +85 -0
  17. package/dist/core/hostedAuth.js.map +1 -1
  18. package/dist/core/quota.d.ts +61 -0
  19. package/dist/core/quota.d.ts.map +1 -0
  20. package/dist/core/quota.js +104 -0
  21. package/dist/core/quota.js.map +1 -0
  22. package/dist/core/quotaErrors.d.ts.map +1 -1
  23. package/dist/core/quotaErrors.js +3 -5
  24. package/dist/core/quotaErrors.js.map +1 -1
  25. package/dist/core/resultVerification.d.ts +3 -2
  26. package/dist/core/resultVerification.d.ts.map +1 -1
  27. package/dist/core/resultVerification.js +3 -2
  28. package/dist/core/resultVerification.js.map +1 -1
  29. package/dist/core/slashCommands.d.ts.map +1 -1
  30. package/dist/core/slashCommands.js +3 -0
  31. package/dist/core/slashCommands.js.map +1 -1
  32. package/dist/core/updateChecker.d.ts.map +1 -1
  33. package/dist/core/updateChecker.js +5 -1
  34. package/dist/core/updateChecker.js.map +1 -1
  35. package/dist/core/usage.d.ts +28 -0
  36. package/dist/core/usage.d.ts.map +1 -0
  37. package/dist/core/usage.js +77 -0
  38. package/dist/core/usage.js.map +1 -0
  39. package/dist/headless/interactiveShell.d.ts +2 -0
  40. package/dist/headless/interactiveShell.d.ts.map +1 -1
  41. package/dist/headless/interactiveShell.js +99 -9
  42. package/dist/headless/interactiveShell.js.map +1 -1
  43. package/dist/plugins/providers/deepseek/index.d.ts.map +1 -1
  44. package/dist/plugins/providers/deepseek/index.js +8 -5
  45. package/dist/plugins/providers/deepseek/index.js.map +1 -1
  46. package/dist/providers/baseProvider.d.ts +5 -13
  47. package/dist/providers/baseProvider.d.ts.map +1 -1
  48. package/dist/providers/baseProvider.js +12 -66
  49. package/dist/providers/baseProvider.js.map +1 -1
  50. package/dist/providers/openaiChatCompletionsProvider.d.ts.map +1 -1
  51. package/dist/providers/openaiChatCompletionsProvider.js +27 -76
  52. package/dist/providers/openaiChatCompletionsProvider.js.map +1 -1
  53. package/dist/providers/resilientProvider.d.ts +2 -9
  54. package/dist/providers/resilientProvider.d.ts.map +1 -1
  55. package/dist/providers/resilientProvider.js +13 -199
  56. package/dist/providers/resilientProvider.js.map +1 -1
  57. package/dist/shell/toolPresentation.d.ts.map +1 -1
  58. package/dist/shell/toolPresentation.js +27 -3
  59. package/dist/shell/toolPresentation.js.map +1 -1
  60. package/dist/tools/bashTools.d.ts.map +1 -1
  61. package/dist/tools/bashTools.js +9 -3
  62. package/dist/tools/bashTools.js.map +1 -1
  63. package/dist/tools/grepTools.d.ts.map +1 -1
  64. package/dist/tools/grepTools.js +10 -1
  65. package/dist/tools/grepTools.js.map +1 -1
  66. package/dist/tools/searchTools.d.ts.map +1 -1
  67. package/dist/tools/searchTools.js +5 -4
  68. package/dist/tools/searchTools.js.map +1 -1
  69. package/dist/tools/webTools.d.ts.map +1 -1
  70. package/dist/tools/webTools.js +3 -1
  71. package/dist/tools/webTools.js.map +1 -1
  72. package/dist/ui/ink/ChatStatic.d.ts.map +1 -1
  73. package/dist/ui/ink/ChatStatic.js +21 -5
  74. package/dist/ui/ink/ChatStatic.js.map +1 -1
  75. package/dist/ui/ink/InkPromptController.d.ts +3 -0
  76. package/dist/ui/ink/InkPromptController.d.ts.map +1 -1
  77. package/dist/ui/ink/InkPromptController.js +12 -6
  78. package/dist/ui/ink/InkPromptController.js.map +1 -1
  79. package/dist/ui/ink/Prompt.d.ts +4 -0
  80. package/dist/ui/ink/Prompt.d.ts.map +1 -1
  81. package/dist/ui/ink/Prompt.js +62 -10
  82. package/dist/ui/ink/Prompt.js.map +1 -1
  83. package/dist/ui/ink/pasteBuffer.d.ts +44 -0
  84. package/dist/ui/ink/pasteBuffer.d.ts.map +1 -0
  85. package/dist/ui/ink/pasteBuffer.js +73 -0
  86. package/dist/ui/ink/pasteBuffer.js.map +1 -0
  87. package/package.json +1 -1
  88. package/dist/core/index.d.ts +0 -7
  89. package/dist/core/index.d.ts.map +0 -1
  90. package/dist/core/index.js +0 -7
  91. package/dist/core/index.js.map +0 -1
  92. package/dist/core/providerKeys.d.ts +0 -20
  93. package/dist/core/providerKeys.d.ts.map +0 -1
  94. package/dist/core/providerKeys.js +0 -40
  95. package/dist/core/providerKeys.js.map +0 -1
  96. package/dist/plugins/index.d.ts +0 -49
  97. package/dist/plugins/index.d.ts.map +0 -1
  98. package/dist/plugins/index.js +0 -104
  99. package/dist/plugins/index.js.map +0 -1
  100. package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.d.ts +0 -10
  101. package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.d.ts.map +0 -1
  102. package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.js +0 -110
  103. package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.js.map +0 -1
  104. package/dist/plugins/tools/bash/localBashPlugin.d.ts +0 -3
  105. package/dist/plugins/tools/bash/localBashPlugin.d.ts.map +0 -1
  106. package/dist/plugins/tools/bash/localBashPlugin.js +0 -14
  107. package/dist/plugins/tools/bash/localBashPlugin.js.map +0 -1
  108. package/dist/plugins/tools/edit/editPlugin.d.ts +0 -9
  109. package/dist/plugins/tools/edit/editPlugin.d.ts.map +0 -1
  110. package/dist/plugins/tools/edit/editPlugin.js +0 -15
  111. package/dist/plugins/tools/edit/editPlugin.js.map +0 -1
  112. package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.d.ts +0 -3
  113. package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.d.ts.map +0 -1
  114. package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.js +0 -9
  115. package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.js.map +0 -1
  116. package/dist/plugins/tools/filesystem/localFilesystemPlugin.d.ts +0 -3
  117. package/dist/plugins/tools/filesystem/localFilesystemPlugin.d.ts.map +0 -1
  118. package/dist/plugins/tools/filesystem/localFilesystemPlugin.js +0 -14
  119. package/dist/plugins/tools/filesystem/localFilesystemPlugin.js.map +0 -1
  120. package/dist/plugins/tools/gitHistory/gitHistoryPlugin.d.ts +0 -3
  121. package/dist/plugins/tools/gitHistory/gitHistoryPlugin.d.ts.map +0 -1
  122. package/dist/plugins/tools/gitHistory/gitHistoryPlugin.js +0 -9
  123. package/dist/plugins/tools/gitHistory/gitHistoryPlugin.js.map +0 -1
  124. package/dist/plugins/tools/index.d.ts +0 -3
  125. package/dist/plugins/tools/index.d.ts.map +0 -1
  126. package/dist/plugins/tools/index.js +0 -3
  127. package/dist/plugins/tools/index.js.map +0 -1
  128. package/dist/plugins/tools/integrity/integrityPlugin.d.ts +0 -3
  129. package/dist/plugins/tools/integrity/integrityPlugin.d.ts.map +0 -1
  130. package/dist/plugins/tools/integrity/integrityPlugin.js +0 -31
  131. package/dist/plugins/tools/integrity/integrityPlugin.js.map +0 -1
  132. package/dist/plugins/tools/mcp/mcpPlugin.d.ts +0 -3
  133. package/dist/plugins/tools/mcp/mcpPlugin.d.ts.map +0 -1
  134. package/dist/plugins/tools/mcp/mcpPlugin.js +0 -27
  135. package/dist/plugins/tools/mcp/mcpPlugin.js.map +0 -1
  136. package/dist/plugins/tools/nodeDefaults.d.ts +0 -13
  137. package/dist/plugins/tools/nodeDefaults.d.ts.map +0 -1
  138. package/dist/plugins/tools/nodeDefaults.js +0 -33
  139. package/dist/plugins/tools/nodeDefaults.js.map +0 -1
  140. package/dist/plugins/tools/orchestration/orchestrationPlugin.d.ts +0 -3
  141. package/dist/plugins/tools/orchestration/orchestrationPlugin.d.ts.map +0 -1
  142. package/dist/plugins/tools/orchestration/orchestrationPlugin.js +0 -340
  143. package/dist/plugins/tools/orchestration/orchestrationPlugin.js.map +0 -1
  144. package/dist/plugins/tools/registry.d.ts +0 -22
  145. package/dist/plugins/tools/registry.d.ts.map +0 -1
  146. package/dist/plugins/tools/registry.js +0 -58
  147. package/dist/plugins/tools/registry.js.map +0 -1
  148. package/dist/plugins/tools/search/localSearchPlugin.d.ts +0 -3
  149. package/dist/plugins/tools/search/localSearchPlugin.d.ts.map +0 -1
  150. package/dist/plugins/tools/search/localSearchPlugin.js +0 -14
  151. package/dist/plugins/tools/search/localSearchPlugin.js.map +0 -1
  152. package/dist/plugins/tools/skills/skillPlugin.d.ts +0 -3
  153. package/dist/plugins/tools/skills/skillPlugin.d.ts.map +0 -1
  154. package/dist/plugins/tools/skills/skillPlugin.js +0 -27
  155. package/dist/plugins/tools/skills/skillPlugin.js.map +0 -1
  156. package/dist/plugins/tools/todo/todoPlugin.d.ts +0 -3
  157. package/dist/plugins/tools/todo/todoPlugin.d.ts.map +0 -1
  158. package/dist/plugins/tools/todo/todoPlugin.js +0 -10
  159. package/dist/plugins/tools/todo/todoPlugin.js.map +0 -1
  160. package/dist/runtime/agentWorkerPool.d.ts +0 -167
  161. package/dist/runtime/agentWorkerPool.d.ts.map +0 -1
  162. package/dist/runtime/agentWorkerPool.js +0 -435
  163. package/dist/runtime/agentWorkerPool.js.map +0 -1
  164. package/dist/shell/autoExecutor.d.ts +0 -70
  165. package/dist/shell/autoExecutor.d.ts.map +0 -1
  166. package/dist/shell/autoExecutor.js +0 -320
  167. package/dist/shell/autoExecutor.js.map +0 -1
  168. package/dist/shell/commandRegistry.d.ts +0 -122
  169. package/dist/shell/commandRegistry.d.ts.map +0 -1
  170. package/dist/shell/commandRegistry.js +0 -355
  171. package/dist/shell/commandRegistry.js.map +0 -1
  172. package/dist/shell/composableMessage.d.ts +0 -178
  173. package/dist/shell/composableMessage.d.ts.map +0 -1
  174. package/dist/shell/composableMessage.js +0 -384
  175. package/dist/shell/composableMessage.js.map +0 -1
  176. package/dist/shell/vimMode.d.ts +0 -66
  177. package/dist/shell/vimMode.d.ts.map +0 -1
  178. package/dist/shell/vimMode.js +0 -435
  179. package/dist/shell/vimMode.js.map +0 -1
  180. package/dist/tools/localExplore.d.ts +0 -38
  181. package/dist/tools/localExplore.d.ts.map +0 -1
  182. package/dist/tools/localExplore.js +0 -30
  183. package/dist/tools/localExplore.js.map +0 -1
@@ -0,0 +1,333 @@
1
+ /**
2
+ * Canonical home for provider error classification (audit Rank 5, Phase 1).
3
+ *
4
+ * Behaviour-PRESERVING extraction: each call site's predicate + pattern set is
5
+ * moved here VERBATIM under a site-specific name — NOT merged into a superset.
6
+ * A superset would change which errors each provider retries or falls back on,
7
+ * a behaviour change the audit Do-NOT list forbids ("don't ship a behaviour
8
+ * change dressed as a refactor"). The providers import these and re-export under
9
+ * their existing public names, so importers + tests are untouched. agent.ts's
10
+ * classifier is a THIRD semantics (rate-limit + 5xx folded into "transient") and
11
+ * is deliberately NOT folded in here yet (deferred per the roadmap).
12
+ *
13
+ * test/error-classification.test.ts pins every predicate against a battery of
14
+ * real error shapes captured from the pre-extraction code, so any drift is red.
15
+ */
16
+ // ════════════════════════════════════════════════════════════════════════════
17
+ // resilientProvider classifiers — LIVE (the fallback path in agentController +
18
+ // the retry loop in withProviderResilience). Patterns + logic verbatim.
19
+ // ════════════════════════════════════════════════════════════════════════════
20
+ export const RESILIENT_RATE_LIMIT_PATTERNS = [
21
+ 'rate limit',
22
+ 'rate_limit',
23
+ 'ratelimit',
24
+ 'too many requests',
25
+ '429',
26
+ 'quota exceeded',
27
+ 'request limit',
28
+ 'throttled',
29
+ 'overloaded',
30
+ 'capacity',
31
+ ];
32
+ export const RESILIENT_TRANSIENT_ERROR_PATTERNS = [
33
+ 'timeout',
34
+ 'timed out',
35
+ 'network',
36
+ 'connection',
37
+ 'econnrefused',
38
+ 'econnreset',
39
+ 'enotfound',
40
+ 'epipe',
41
+ 'econnaborted',
42
+ 'ehostunreach',
43
+ 'enetunreach',
44
+ 'socket',
45
+ 'temporarily unavailable',
46
+ '502',
47
+ '503',
48
+ '504',
49
+ 'bad gateway',
50
+ 'service unavailable',
51
+ 'gateway timeout',
52
+ 'internal server error',
53
+ '500',
54
+ // Stream and fetch errors
55
+ 'premature close',
56
+ 'premature end',
57
+ 'unexpected end',
58
+ 'stream',
59
+ 'aborted',
60
+ 'fetcherror',
61
+ 'fetch error',
62
+ 'invalid response body',
63
+ 'response body',
64
+ 'gunzip',
65
+ 'decompress',
66
+ 'zlib',
67
+ 'content-encoding',
68
+ 'chunked encoding',
69
+ 'transfer-encoding',
70
+ // SSL/TLS errors
71
+ 'ssl',
72
+ 'tls',
73
+ 'certificate',
74
+ 'cert',
75
+ 'handshake',
76
+ ];
77
+ export const FALLBACK_ELIGIBLE_PATTERNS = [
78
+ // Quota/billing errors
79
+ 'insufficient_quota',
80
+ 'quota exceeded',
81
+ 'exceeded your current quota',
82
+ 'billing',
83
+ 'payment required',
84
+ 'account suspended',
85
+ 'account disabled',
86
+ // API key errors
87
+ 'api key expired',
88
+ 'api_key_invalid',
89
+ 'invalid api key',
90
+ 'invalid_api_key',
91
+ 'api key not valid',
92
+ // Model availability errors
93
+ 'model not found',
94
+ 'model_not_found',
95
+ 'does not exist',
96
+ 'not available',
97
+ 'deprecated',
98
+ 'access denied',
99
+ 'permission denied',
100
+ 'unauthorized',
101
+ '401',
102
+ '403',
103
+ '400',
104
+ 'invalid_argument',
105
+ // Regional/access restrictions
106
+ 'region',
107
+ 'not supported in your',
108
+ 'country',
109
+ 'restricted',
110
+ ];
111
+ /**
112
+ * Check if an error warrants trying a different provider (fallback).
113
+ * These are non-transient errors that won't be fixed by retrying the same provider.
114
+ */
115
+ export function isFallbackEligibleError(error) {
116
+ if (!(error instanceof Error))
117
+ return false;
118
+ const message = error.message.toLowerCase();
119
+ // Check message for fallback patterns
120
+ if (FALLBACK_ELIGIBLE_PATTERNS.some(pattern => message.includes(pattern))) {
121
+ return true;
122
+ }
123
+ // Check error code/type/reason if present (OpenAI and Google style errors).
124
+ // The TypeScript types here are aspirational — provider SDKs throw errors
125
+ // with `.status` as a number (HTTP code) or `.code`/`.type` as objects, so
126
+ // every lookup must be coerced through String() before .toLowerCase() or
127
+ // the whole error path crashes with `(...).toLowerCase is not a function`.
128
+ // Bug seen in 1.1.7: a DeepSeek error's numeric `.status` killed the
129
+ // submission flow on the first prompt of a fresh session.
130
+ const errorWithCode = error;
131
+ const code = String(errorWithCode.code ?? '').toLowerCase();
132
+ const type = String(errorWithCode.type ?? '').toLowerCase();
133
+ const reason = String(errorWithCode.reason ?? '').toLowerCase();
134
+ const status = String(errorWithCode.status ?? '').toLowerCase();
135
+ // OpenAI style errors
136
+ if (code === 'insufficient_quota' || type === 'insufficient_quota') {
137
+ return true;
138
+ }
139
+ if (code === 'model_not_found' || type === 'model_not_found') {
140
+ return true;
141
+ }
142
+ if (code === 'invalid_api_key' || type === 'invalid_api_key') {
143
+ return true;
144
+ }
145
+ // Google style errors
146
+ if (reason === 'api_key_invalid' || status === 'invalid_argument') {
147
+ return true;
148
+ }
149
+ if (code === '400' || code === '401' || code === '403') {
150
+ return true;
151
+ }
152
+ return false;
153
+ }
154
+ /**
155
+ * Get a user-friendly description of why fallback is needed
156
+ */
157
+ export function getFallbackReason(error) {
158
+ if (!(error instanceof Error))
159
+ return 'Unknown error';
160
+ const message = error.message.toLowerCase();
161
+ if (message.includes('quota') || message.includes('billing')) {
162
+ return 'API quota exceeded or billing issue';
163
+ }
164
+ if (message.includes('expired') || message.includes('api_key_invalid') || message.includes('api key')) {
165
+ return 'API key expired or invalid';
166
+ }
167
+ if (message.includes('model') && (message.includes('not found') || message.includes('not exist'))) {
168
+ return 'Model not available';
169
+ }
170
+ if (message.includes('unauthorized') || message.includes('401') || message.includes('invalid_api_key')) {
171
+ return 'Invalid API key';
172
+ }
173
+ if (message.includes('403') || message.includes('permission') || message.includes('access denied')) {
174
+ return 'Access denied';
175
+ }
176
+ if (message.includes('400') || message.includes('invalid_argument')) {
177
+ return 'Invalid request or API key';
178
+ }
179
+ if (message.includes('region') || message.includes('country') || message.includes('restricted')) {
180
+ return 'Regional restriction';
181
+ }
182
+ return 'Provider error';
183
+ }
184
+ export function isResilientRateLimitError(error) {
185
+ if (!(error instanceof Error))
186
+ return false;
187
+ const message = error.message.toLowerCase();
188
+ return RESILIENT_RATE_LIMIT_PATTERNS.some(pattern => message.includes(pattern));
189
+ }
190
+ export function isResilientTransientError(error) {
191
+ if (!(error instanceof Error))
192
+ return false;
193
+ // Check message
194
+ const message = error.message.toLowerCase();
195
+ if (RESILIENT_TRANSIENT_ERROR_PATTERNS.some(pattern => message.includes(pattern))) {
196
+ return true;
197
+ }
198
+ // Check error name/type (FetchError, AbortError, etc.)
199
+ const errorName = error.name?.toLowerCase() ?? '';
200
+ if (errorName.includes('fetch') || errorName.includes('abort') || errorName.includes('network')) {
201
+ return true;
202
+ }
203
+ // Check error code if present (Node.js style)
204
+ const errorCode = error.code?.toLowerCase() ?? '';
205
+ if (errorCode && RESILIENT_TRANSIENT_ERROR_PATTERNS.some(pattern => errorCode.includes(pattern))) {
206
+ return true;
207
+ }
208
+ // Check cause chain for nested errors
209
+ const cause = error.cause;
210
+ if (cause instanceof Error) {
211
+ return isResilientTransientError(cause);
212
+ }
213
+ return false;
214
+ }
215
+ export function shouldRetryResilient(error) {
216
+ return isResilientRateLimitError(error) || isResilientTransientError(error);
217
+ }
218
+ // ════════════════════════════════════════════════════════════════════════════
219
+ // baseProvider classifiers — kept DISTINCT from the resilient set (e.g. base
220
+ // has no enotfound/ssl). Currently consumed only by tests + baseProvider's own
221
+ // withRetry default. Patterns + logic verbatim.
222
+ // ════════════════════════════════════════════════════════════════════════════
223
+ /** Patterns that indicate transient/retryable errors */
224
+ export const BASE_TRANSIENT_ERROR_PATTERNS = [
225
+ 'premature close',
226
+ 'premature end',
227
+ 'unexpected end',
228
+ 'aborted',
229
+ 'fetcherror',
230
+ 'invalid response body',
231
+ 'gunzip',
232
+ 'decompress',
233
+ 'econnreset',
234
+ 'econnrefused',
235
+ 'epipe',
236
+ 'socket hang up',
237
+ 'network',
238
+ 'timeout',
239
+ '500',
240
+ '502',
241
+ '503',
242
+ '504',
243
+ 'overloaded',
244
+ ];
245
+ /** Check if an error is transient and can be retried */
246
+ export function isBaseTransientError(error) {
247
+ if (!(error instanceof Error))
248
+ return false;
249
+ const message = error.message.toLowerCase();
250
+ const errorName = error.name?.toLowerCase() ?? '';
251
+ const errorCode = error.code?.toLowerCase() ?? '';
252
+ const allText = `${message} ${errorName} ${errorCode}`;
253
+ return BASE_TRANSIENT_ERROR_PATTERNS.some((pattern) => allText.includes(pattern));
254
+ }
255
+ /** Check if an error is a rate limit error */
256
+ export function isBaseRateLimitError(error) {
257
+ if (!(error instanceof Error))
258
+ return false;
259
+ const message = error.message.toLowerCase();
260
+ // Check for common rate limit indicators
261
+ if (message.includes('rate limit') ||
262
+ message.includes('rate_limit') ||
263
+ message.includes('too many requests') ||
264
+ message.includes('429')) {
265
+ return true;
266
+ }
267
+ // Check for status code
268
+ const status = error.status;
269
+ return status === 429;
270
+ }
271
+ /** Check if an error is an authentication error */
272
+ export function isAuthError(error) {
273
+ if (!(error instanceof Error))
274
+ return false;
275
+ const message = error.message.toLowerCase();
276
+ const status = error.status;
277
+ return (status === 401 ||
278
+ status === 403 ||
279
+ message.includes('unauthorized') ||
280
+ message.includes('invalid api key') ||
281
+ message.includes('authentication'));
282
+ }
283
+ // ════════════════════════════════════════════════════════════════════════════
284
+ // agent.ts classifiers — a THIRD semantics: isAgentTransientError folds rate
285
+ // limits + 5xx + "server error" INTO "transient" (the agent retries all of them
286
+ // the same way), unlike the base/resilient split. Kept distinct. Verbatim.
287
+ // ════════════════════════════════════════════════════════════════════════════
288
+ /** Check if an error is a context overflow error */
289
+ export function isContextOverflowError(error) {
290
+ if (!(error instanceof Error))
291
+ return false;
292
+ const message = error.message.toLowerCase();
293
+ return (message.includes('context length') ||
294
+ message.includes('token') && (message.includes('limit') || message.includes('exceed') || message.includes('maximum')) ||
295
+ message.includes('too long') ||
296
+ message.includes('too many tokens') ||
297
+ message.includes('max_tokens') ||
298
+ message.includes('context window'));
299
+ }
300
+ /** Check if an error is transient/retryable from the agent loop's perspective
301
+ * (network issues, rate limits, AND server errors all fold into "transient"). */
302
+ export function isAgentTransientError(error) {
303
+ if (!(error instanceof Error))
304
+ return false;
305
+ const message = error.message.toLowerCase();
306
+ // Network errors (including streaming-specific termination patterns from undici/node-fetch)
307
+ const networkPatterns = [
308
+ 'econnrefused', 'econnreset', 'enotfound', 'etimedout', 'epipe',
309
+ 'network error', 'connection error', 'fetch failed', 'socket hang up',
310
+ 'network is unreachable', 'connection refused', 'connection reset',
311
+ // Streaming-specific: server closes connection mid-stream
312
+ 'premature close', 'premature end', 'unexpected end',
313
+ 'aborted', 'fetcherror', 'invalid response body',
314
+ ];
315
+ if (networkPatterns.some(p => message.includes(p))) {
316
+ return true;
317
+ }
318
+ // Rate limit errors
319
+ if (message.includes('rate limit') || message.includes('429') || message.includes('too many requests')) {
320
+ return true;
321
+ }
322
+ // Server errors (5xx)
323
+ if (message.includes('500') || message.includes('502') || message.includes('503') || message.includes('504')) {
324
+ return true;
325
+ }
326
+ // Temporary service errors
327
+ if (message.includes('service unavailable') || message.includes('temporarily unavailable') ||
328
+ message.includes('overloaded') || message.includes('server error')) {
329
+ return true;
330
+ }
331
+ return false;
332
+ }
333
+ //# sourceMappingURL=errorClassification.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errorClassification.js","sourceRoot":"","sources":["../../src/core/errorClassification.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,+EAA+E;AAC/E,+EAA+E;AAC/E,wEAAwE;AACxE,+EAA+E;AAE/E,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,YAAY;IACZ,YAAY;IACZ,WAAW;IACX,mBAAmB;IACnB,KAAK;IACL,gBAAgB;IAChB,eAAe;IACf,WAAW;IACX,YAAY;IACZ,UAAU;CACX,CAAC;AAEF,MAAM,CAAC,MAAM,kCAAkC,GAAG;IAChD,SAAS;IACT,WAAW;IACX,SAAS;IACT,YAAY;IACZ,cAAc;IACd,YAAY;IACZ,WAAW;IACX,OAAO;IACP,cAAc;IACd,cAAc;IACd,aAAa;IACb,QAAQ;IACR,yBAAyB;IACzB,KAAK;IACL,KAAK;IACL,KAAK;IACL,aAAa;IACb,qBAAqB;IACrB,iBAAiB;IACjB,uBAAuB;IACvB,KAAK;IACL,0BAA0B;IAC1B,iBAAiB;IACjB,eAAe;IACf,gBAAgB;IAChB,QAAQ;IACR,SAAS;IACT,YAAY;IACZ,aAAa;IACb,uBAAuB;IACvB,eAAe;IACf,QAAQ;IACR,YAAY;IACZ,MAAM;IACN,kBAAkB;IAClB,kBAAkB;IAClB,mBAAmB;IACnB,iBAAiB;IACjB,KAAK;IACL,KAAK;IACL,aAAa;IACb,MAAM;IACN,WAAW;CACZ,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,uBAAuB;IACvB,oBAAoB;IACpB,gBAAgB;IAChB,6BAA6B;IAC7B,SAAS;IACT,kBAAkB;IAClB,mBAAmB;IACnB,kBAAkB;IAClB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,mBAAmB;IACnB,4BAA4B;IAC5B,iBAAiB;IACjB,iBAAiB;IACjB,gBAAgB;IAChB,eAAe;IACf,YAAY;IACZ,eAAe;IACf,mBAAmB;IACnB,cAAc;IACd,KAAK;IACL,KAAK;IACL,KAAK;IACL,kBAAkB;IAClB,+BAA+B;IAC/B,QAAQ;IACR,uBAAuB;IACvB,SAAS;IACT,YAAY;CACb,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAc;IACpD,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IAE5C,sCAAsC;IACtC,IAAI,0BAA0B,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QAC1E,OAAO,IAAI,CAAC;IACd,CAAC;IAED,4EAA4E;IAC5E,0EAA0E;IAC1E,2EAA2E;IAC3E,yEAAyE;IACzE,2EAA2E;IAC3E,qEAAqE;IACrE,0DAA0D;IAC1D,MAAM,aAAa,GAAG,KAA+E,CAAC;IACtG,MAAM,IAAI,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC5D,MAAM,IAAI,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC5D,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAChE,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAEhE,sBAAsB;IACtB,IAAI,IAAI,KAAK,oBAAoB,IAAI,IAAI,KAAK,oBAAoB,EAAE,CAAC;QACnE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,IAAI,KAAK,iBAAiB,IAAI,IAAI,KAAK,iBAAiB,EAAE,CAAC;QAC7D,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,IAAI,KAAK,iBAAiB,IAAI,IAAI,KAAK,iBAAiB,EAAE,CAAC;QAC7D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,sBAAsB;IACtB,IAAI,MAAM,KAAK,iBAAiB,IAAI,MAAM,KAAK,kBAAkB,EAAE,CAAC;QAClE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACvD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC;QAAE,OAAO,eAAe,CAAC;IACtD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IAE5C,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7D,OAAO,qCAAqC,CAAC;IAC/C,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACtG,OAAO,4BAA4B,CAAC;IACtC,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;QAClG,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACvG,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QACnG,OAAO,eAAe,CAAC;IACzB,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACpE,OAAO,4BAA4B,CAAC;IACtC,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QAChG,OAAO,sBAAsB,CAAC;IAChC,CAAC;IAED,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,KAAc;IACtD,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IAC5C,OAAO,6BAA6B,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AAClF,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,KAAc;IACtD,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAE5C,gBAAgB;IAChB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IAC5C,IAAI,kCAAkC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QAClF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uDAAuD;IACvD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAClD,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAChG,OAAO,IAAI,CAAC;IACd,CAAC;IAED,8CAA8C;IAC9C,MAAM,SAAS,GAAI,KAA2B,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IACzE,IAAI,SAAS,IAAI,kCAAkC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QACjG,OAAO,IAAI,CAAC;IACd,CAAC;IAED,sCAAsC;IACtC,MAAM,KAAK,GAAI,KAA6B,CAAC,KAAK,CAAC;IACnD,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,yBAAyB,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,OAAO,yBAAyB,CAAC,KAAK,CAAC,IAAI,yBAAyB,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,+EAA+E;AAC/E,6EAA6E;AAC7E,+EAA+E;AAC/E,gDAAgD;AAChD,+EAA+E;AAE/E,wDAAwD;AACxD,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,iBAAiB;IACjB,eAAe;IACf,gBAAgB;IAChB,SAAS;IACT,YAAY;IACZ,uBAAuB;IACvB,QAAQ;IACR,YAAY;IACZ,YAAY;IACZ,cAAc;IACd,OAAO;IACP,gBAAgB;IAChB,SAAS;IACT,SAAS;IACT,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,YAAY;CACJ,CAAC;AAEX,wDAAwD;AACxD,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAE5C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IAC5C,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAClD,MAAM,SAAS,GAAI,KAA2B,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IACzE,MAAM,OAAO,GAAG,GAAG,OAAO,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;IAEvD,OAAO,6BAA6B,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AACpF,CAAC;AAED,8CAA8C;AAC9C,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAE5C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IAE5C,yCAAyC;IACzC,IACE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC9B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC9B,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QACrC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EACvB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,wBAAwB;IACxB,MAAM,MAAM,GAAI,KAA6B,CAAC,MAAM,CAAC;IACrD,OAAO,MAAM,KAAK,GAAG,CAAC;AACxB,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAE5C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IAC5C,MAAM,MAAM,GAAI,KAA6B,CAAC,MAAM,CAAC;IAErD,OAAO,CACL,MAAM,KAAK,GAAG;QACd,MAAM,KAAK,GAAG;QACd,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;QAChC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QACnC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CACnC,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,6EAA6E;AAC7E,gFAAgF;AAChF,2EAA2E;AAC3E,+EAA+E;AAE/E,oDAAoD;AACpD,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACnD,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IAC5C,OAAO,CACL,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACrH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC5B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC9B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CACnC,CAAC;AACJ,CAAC;AAED;kFACkF;AAClF,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAClD,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IAE5C,4FAA4F;IAC5F,MAAM,eAAe,GAAG;QACtB,cAAc,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO;QAC/D,eAAe,EAAE,kBAAkB,EAAE,cAAc,EAAE,gBAAgB;QACrE,wBAAwB,EAAE,oBAAoB,EAAE,kBAAkB;QAClE,0DAA0D;QAC1D,iBAAiB,EAAE,eAAe,EAAE,gBAAgB;QACpD,SAAS,EAAE,YAAY,EAAE,uBAAuB;KACjD,CAAC;IACF,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oBAAoB;IACpB,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACvG,OAAO,IAAI,CAAC;IACd,CAAC;IAED,sBAAsB;IACtB,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7G,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2BAA2B;IAC3B,IAAI,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QACtF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QACvE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"hitl.d.ts","sourceRoot":"","sources":["../../src/core/hitl.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C;;;;;;;;;;GAUG;AACH,eAAO,MAAM,UAAU,mBAAqB,CAAC;AAK7C,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sBAAsB,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB;;;OAGG;IACH,SAAS,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC;;OAEG;IACH,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;CAC3C;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,gBAAgB,CAA2C;IACnE,OAAO,CAAC,eAAe,CAA0B;IACjD,OAAO,CAAC,EAAE,CAAC,CAAqB;gBAEpB,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC;IASxC;;;OAGG;IACG,eAAe,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IAoChE;;OAEG;YACW,qBAAqB;IA6LnC,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,cAAc;IAgBtB;;OAEG;IACH,UAAU,IAAI,gBAAgB,EAAE;IAIhC;;OAEG;IACH,YAAY,IAAI,IAAI;IAIpB;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI;CAGhD;AAKD;;GAEG;AACH,wBAAgB,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,CAUhE;AAED;;GAEG;AACH,eAAO,MAAM,IAAI;IACf;;OAEG;oBACmB,MAAM,eAAe,MAAM,YAAW,MAAM,eAAmB,OAAO,GAAU,OAAO,CAAC,OAAO,CAAC;IA6BtH;;OAEG;wBACuB,MAAM,eAAe,MAAM,WAAW,KAAK,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAC,CAAC,YAAW,MAAM,oBAAyB,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAmBzL;;OAEG;2BAC0B,MAAM,mBAAmB,MAAM,oBAAoB,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAQ1G,CAAC"}
1
+ {"version":3,"file":"hitl.d.ts","sourceRoot":"","sources":["../../src/core/hitl.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C;;;;;;;;;;GAUG;AACH,eAAO,MAAM,UAAU,mBAAqB,CAAC;AAK7C,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sBAAsB,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB;;;OAGG;IACH,SAAS,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC;;OAEG;IACH,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;CAC3C;AAQD,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,gBAAgB,CAA2C;IACnE,OAAO,CAAC,eAAe,CAA0B;IACjD,OAAO,CAAC,EAAE,CAAC,CAAqB;gBAEpB,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC;IASxC;;;OAGG;IACG,eAAe,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IAoChE;;OAEG;YACW,qBAAqB;IA6LnC,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,cAAc;IAmBtB;;OAEG;IACH,UAAU,IAAI,gBAAgB,EAAE;IAIhC;;OAEG;IACH,YAAY,IAAI,IAAI;IAIpB;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI;CAGhD;AAKD;;GAEG;AACH,wBAAgB,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,CAUhE;AAED;;GAEG;AACH,eAAO,MAAM,IAAI;IACf;;OAEG;oBACmB,MAAM,eAAe,MAAM,YAAW,MAAM,eAAmB,OAAO,GAAU,OAAO,CAAC,OAAO,CAAC;IA6BtH;;OAEG;wBACuB,MAAM,eAAe,MAAM,WAAW,KAAK,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAC,CAAC,YAAW,MAAM,oBAAyB,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAmBzL;;OAEG;2BAC0B,MAAM,mBAAmB,MAAM,oBAAoB,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAQ1G,CAAC"}
package/dist/core/hitl.js CHANGED
@@ -25,6 +25,11 @@ let activePromptCount = 0;
25
25
  export function isHITLPromptActive() {
26
26
  return activePromptCount > 0;
27
27
  }
28
+ /**
29
+ * Cap the in-memory decision log so a long-lived HITL singleton can't grow it
30
+ * without bound over a multi-hour agent run. FIFO: oldest decisions drop first.
31
+ */
32
+ const MAX_DECISION_HISTORY = 100;
28
33
  export class HITLSystem {
29
34
  config;
30
35
  pendingDecisions = new Map();
@@ -281,6 +286,9 @@ export class HITLSystem {
281
286
  }
282
287
  recordDecision(response) {
283
288
  this.decisionHistory.push(response);
289
+ if (this.decisionHistory.length > MAX_DECISION_HISTORY) {
290
+ this.decisionHistory.shift();
291
+ }
284
292
  this.pendingDecisions.delete(response.requestId);
285
293
  // Log the decision
286
294
  if (this.config.logLevel === 'detailed') {
@@ -1 +1 @@
1
- {"version":3,"file":"hitl.js","sourceRoot":"","sources":["../../src/core/hitl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hitl.js","sourceRoot":"","sources":["../../src/core/hitl.ts"],"names":[],"mappings":"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"}
@@ -52,4 +52,37 @@ export declare function resolveKeyMode(): KeyModeStatus;
52
52
  * their own. Returns null in 'none' mode (the welcome already shows key setup).
53
53
  */
54
54
  export declare function keyModeLine(status?: KeyModeStatus): string | null;
55
+ /**
56
+ * Resolve the DeepSeek endpoint the provider should use. Hosted mode routes
57
+ * through the ero.solar proxy authenticated by the short-lived sign-in token
58
+ * (the real key lives only server-side, Glasswing); otherwise the user's own
59
+ * key hits the API directly. `apiKey` is '' in 'none' mode (caller errors).
60
+ */
61
+ export declare function resolveDeepSeekEndpoint(): {
62
+ apiKey: string;
63
+ baseURL: string;
64
+ mode: KeyMode;
65
+ };
66
+ export interface LoginResult {
67
+ ok: boolean;
68
+ session?: HostedSession;
69
+ error?: string;
70
+ }
71
+ /**
72
+ * Loopback-OAuth sign-in (the contract's increment 2). Starts a one-shot
73
+ * 127.0.0.1 server on an ephemeral port, opens the browser to the ero.solar
74
+ * Google-SSO login URL with that port + a CSRF state, and waits for the
75
+ * redirect back to /cb?token=&email=&state=. On match it persists the hosted
76
+ * session. The browser launch is injected (`open`) so the flow is testable
77
+ * against the REAL loopback server without a real browser.
78
+ *
79
+ * Requires the ero.solar backend (SSO + token mint + redirect) to be live; with
80
+ * no backend the browser opens to a not-yet-served endpoint and the wait times
81
+ * out — the caller surfaces that honestly.
82
+ */
83
+ export declare function loginViaLoopback(opts: {
84
+ open: (url: string) => void | Promise<void>;
85
+ timeoutMs?: number;
86
+ loginUrl?: string;
87
+ }): Promise<LoginResult>;
55
88
  //# sourceMappingURL=hostedAuth.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hostedAuth.d.ts","sourceRoot":"","sources":["../../src/core/hostedAuth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAQH,eAAO,MAAM,gBAAgB,gCAAgC,CAAC;AAC9D,eAAO,MAAM,qBAAqB,mCAAmC,CAAC;AAWtE,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AASD,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;AAEhD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;CACxB;AA+BD,0EAA0E;AAC1E,wBAAgB,gBAAgB,IAAI,aAAa,GAAG,IAAI,CAGvD;AAED,oFAAoF;AACpF,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAG7D;AAED,mEAAmE;AACnE,wBAAgB,kBAAkB,IAAI,IAAI,CAMzC;AAED,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAErD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,aAAa,CAa9C;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,GAAE,aAAgC,GAAG,MAAM,GAAG,IAAI,CAanF"}
1
+ {"version":3,"file":"hostedAuth.d.ts","sourceRoot":"","sources":["../../src/core/hostedAuth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAUH,eAAO,MAAM,gBAAgB,gCAAgC,CAAC;AAC9D,eAAO,MAAM,qBAAqB,mCAAmC,CAAC;AAWtE,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AASD,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;AAEhD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;CACxB;AA+BD,0EAA0E;AAC1E,wBAAgB,gBAAgB,IAAI,aAAa,GAAG,IAAI,CAGvD;AAED,oFAAoF;AACpF,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAG7D;AAED,mEAAmE;AACnE,wBAAgB,kBAAkB,IAAI,IAAI,CAMzC;AAED,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAErD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,aAAa,CAa9C;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,GAAE,aAAgC,GAAG,MAAM,GAAG,IAAI,CAanF;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,IAAI;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAW5F;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IACrC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,WAAW,CAAC,CAuCvB"}
@@ -18,6 +18,8 @@
18
18
  * sign-in flow and the provider→proxy wiring are increment 2 (backend-gated).
19
19
  */
20
20
  import { existsSync, mkdirSync, readFileSync, renameSync, writeFileSync, rmSync } from 'node:fs';
21
+ import { createServer } from 'node:http';
22
+ import { randomBytes } from 'node:crypto';
21
23
  import { homedir } from 'node:os';
22
24
  import { join, resolve } from 'node:path';
23
25
  import { getSecretValue } from './secretStore.js';
@@ -131,4 +133,87 @@ export function keyModeLine(status = resolveKeyMode()) {
131
133
  return null;
132
134
  }
133
135
  }
136
+ /**
137
+ * Resolve the DeepSeek endpoint the provider should use. Hosted mode routes
138
+ * through the ero.solar proxy authenticated by the short-lived sign-in token
139
+ * (the real key lives only server-side, Glasswing); otherwise the user's own
140
+ * key hits the API directly. `apiKey` is '' in 'none' mode (caller errors).
141
+ */
142
+ export function resolveDeepSeekEndpoint() {
143
+ const status = resolveKeyMode();
144
+ if (status.mode === 'hosted') {
145
+ const session = getHostedSession();
146
+ if (session)
147
+ return { apiKey: session.token, baseURL: HOSTED_DEEPSEEK_PROXY, mode: 'hosted' };
148
+ }
149
+ const userKey = (process.env['DEEPSEEK_API_KEY'] || '').trim();
150
+ if (userKey) {
151
+ return { apiKey: userKey, baseURL: process.env['DEEPSEEK_BASE_URL'] || 'https://api.deepseek.com', mode: 'own' };
152
+ }
153
+ return { apiKey: '', baseURL: '', mode: 'none' };
154
+ }
155
+ /**
156
+ * Loopback-OAuth sign-in (the contract's increment 2). Starts a one-shot
157
+ * 127.0.0.1 server on an ephemeral port, opens the browser to the ero.solar
158
+ * Google-SSO login URL with that port + a CSRF state, and waits for the
159
+ * redirect back to /cb?token=&email=&state=. On match it persists the hosted
160
+ * session. The browser launch is injected (`open`) so the flow is testable
161
+ * against the REAL loopback server without a real browser.
162
+ *
163
+ * Requires the ero.solar backend (SSO + token mint + redirect) to be live; with
164
+ * no backend the browser opens to a not-yet-served endpoint and the wait times
165
+ * out — the caller surfaces that honestly.
166
+ */
167
+ export function loginViaLoopback(opts) {
168
+ const state = randomBytes(16).toString('hex');
169
+ const loginUrl = opts.loginUrl ?? HOSTED_LOGIN_URL;
170
+ return new Promise((resolveP) => {
171
+ let settled = false;
172
+ const finish = (result) => {
173
+ if (settled)
174
+ return;
175
+ settled = true;
176
+ clearTimeout(timer);
177
+ try {
178
+ server.close();
179
+ }
180
+ catch { /* ignore */ }
181
+ resolveP(result);
182
+ };
183
+ const server = createServer((req, res) => {
184
+ const url = new URL(req.url ?? '/', 'http://127.0.0.1');
185
+ if (url.pathname !== '/cb') {
186
+ res.writeHead(404);
187
+ res.end('not found');
188
+ return;
189
+ }
190
+ const token = url.searchParams.get('token') ?? '';
191
+ const email = url.searchParams.get('email') ?? '';
192
+ const gotState = url.searchParams.get('state') ?? '';
193
+ const okPage = '<!doctype html><meta charset="utf-8"><body style="font:16px system-ui;padding:3rem">'
194
+ + 'Signed in to Erosolar Coder. You can close this tab and return to the terminal.</body>';
195
+ res.writeHead(200, { 'content-type': 'text/html' });
196
+ res.end(okPage);
197
+ if (gotState !== state) {
198
+ finish({ ok: false, error: 'state mismatch — sign-in rejected (possible CSRF)' });
199
+ return;
200
+ }
201
+ if (!token) {
202
+ finish({ ok: false, error: 'sign-in returned no token' });
203
+ return;
204
+ }
205
+ const session = { token, email: email || 'you@hosted' };
206
+ setHostedSession(session);
207
+ finish({ ok: true, session });
208
+ });
209
+ const timer = setTimeout(() => finish({ ok: false, error: 'timed out waiting for sign-in' }), opts.timeoutMs ?? 120_000);
210
+ server.on('error', (e) => finish({ ok: false, error: `loopback server failed: ${e.message}` }));
211
+ server.listen(0, '127.0.0.1', () => {
212
+ const addr = server.address();
213
+ const port = addr && typeof addr === 'object' ? addr.port : 0;
214
+ const url = `${loginUrl}?port=${port}&state=${state}`;
215
+ Promise.resolve(opts.open(url)).catch(() => { });
216
+ });
217
+ });
218
+ }
134
219
  //# sourceMappingURL=hostedAuth.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hostedAuth.js","sourceRoot":"","sources":["../../src/core/hostedAuth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hostedAuth.js","sourceRoot":"","sources":["../../src/core/hostedAuth.ts"],"names":[],"mappings":"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"}