erosolar-cli 2.1.59 → 2.1.61

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 (66) hide show
  1. package/agents/erosolar-code.rules.json +29 -268
  2. package/dist/bin/erosolar.js +9 -0
  3. package/dist/bin/erosolar.js.map +1 -1
  4. package/dist/core/errors/networkErrors.d.ts +14 -0
  5. package/dist/core/errors/networkErrors.d.ts.map +1 -0
  6. package/dist/core/errors/networkErrors.js +53 -0
  7. package/dist/core/errors/networkErrors.js.map +1 -0
  8. package/dist/core/preferences.d.ts +2 -3
  9. package/dist/core/preferences.d.ts.map +1 -1
  10. package/dist/core/preferences.js +4 -4
  11. package/dist/core/preferences.js.map +1 -1
  12. package/dist/core/toolPreconditions.d.ts.map +1 -1
  13. package/dist/core/toolPreconditions.js +19 -0
  14. package/dist/core/toolPreconditions.js.map +1 -1
  15. package/dist/core/types.d.ts +14 -0
  16. package/dist/core/types.d.ts.map +1 -1
  17. package/dist/core/types.js.map +1 -1
  18. package/dist/headless/evalMode.d.ts +18 -0
  19. package/dist/headless/evalMode.d.ts.map +1 -0
  20. package/dist/headless/evalMode.js +194 -0
  21. package/dist/headless/evalMode.js.map +1 -0
  22. package/dist/plugins/providers/anthropic/index.d.ts.map +1 -1
  23. package/dist/plugins/providers/anthropic/index.js +2 -0
  24. package/dist/plugins/providers/anthropic/index.js.map +1 -1
  25. package/dist/plugins/providers/google/index.d.ts.map +1 -1
  26. package/dist/plugins/providers/google/index.js +4 -0
  27. package/dist/plugins/providers/google/index.js.map +1 -1
  28. package/dist/providers/anthropicProvider.d.ts +4 -1
  29. package/dist/providers/anthropicProvider.d.ts.map +1 -1
  30. package/dist/providers/anthropicProvider.js +80 -10
  31. package/dist/providers/anthropicProvider.js.map +1 -1
  32. package/dist/providers/googleProvider.d.ts +12 -1
  33. package/dist/providers/googleProvider.d.ts.map +1 -1
  34. package/dist/providers/googleProvider.js +144 -0
  35. package/dist/providers/googleProvider.js.map +1 -1
  36. package/dist/providers/openaiChatCompletionsProvider.js +43 -1
  37. package/dist/providers/openaiChatCompletionsProvider.js.map +1 -1
  38. package/dist/providers/openaiResponsesProvider.d.ts.map +1 -1
  39. package/dist/providers/openaiResponsesProvider.js +32 -4
  40. package/dist/providers/openaiResponsesProvider.js.map +1 -1
  41. package/dist/providers/providerFactory.d.ts +5 -1
  42. package/dist/providers/providerFactory.d.ts.map +1 -1
  43. package/dist/providers/providerFactory.js.map +1 -1
  44. package/dist/runtime/agentSession.d.ts +5 -1
  45. package/dist/runtime/agentSession.d.ts.map +1 -1
  46. package/dist/runtime/agentSession.js +3 -0
  47. package/dist/runtime/agentSession.js.map +1 -1
  48. package/dist/shell/interactiveShell.d.ts +17 -0
  49. package/dist/shell/interactiveShell.d.ts.map +1 -1
  50. package/dist/shell/interactiveShell.js +91 -1
  51. package/dist/shell/interactiveShell.js.map +1 -1
  52. package/dist/shell/systemPrompt.d.ts +10 -1
  53. package/dist/shell/systemPrompt.d.ts.map +1 -1
  54. package/dist/shell/systemPrompt.js +24 -63
  55. package/dist/shell/systemPrompt.js.map +1 -1
  56. package/dist/ui/PromptController.d.ts +1 -0
  57. package/dist/ui/PromptController.d.ts.map +1 -1
  58. package/dist/ui/PromptController.js +3 -0
  59. package/dist/ui/PromptController.js.map +1 -1
  60. package/dist/ui/UnifiedUIRenderer.d.ts +7 -0
  61. package/dist/ui/UnifiedUIRenderer.d.ts.map +1 -1
  62. package/dist/ui/UnifiedUIRenderer.js +33 -2
  63. package/dist/ui/UnifiedUIRenderer.js.map +1 -1
  64. package/dist/ui/richText.js +18 -2
  65. package/dist/ui/richText.js.map +1 -1
  66. package/package.json +1 -1
@@ -2,314 +2,75 @@
2
2
  "$schema": "../src/contracts/schemas/agent-rules.schema.json",
3
3
  "contractVersion": "1.0.0",
4
4
  "profile": "erosolar-code",
5
- "version": "2024-11-24",
6
- "label": "Erosolar Code Rulebook",
7
- "description": "Rules for the OpenAI-backed coding specialist optimized for fast, deterministic edits.",
5
+ "version": "2024-12-01",
6
+ "label": "Erosolar Code",
7
+ "description": "Lean, aggressive coding agent. Act first, ask only when blocked.",
8
8
  "globalPrinciples": [
9
9
  {
10
- "id": "guardrail.clarify_ambiguous",
11
- "summary": "CRITICAL: If user request is vague, single-word, or ambiguous (e.g., 'typing', 'fix it', 'help'), ASK for clarification FIRST. Do NOT explore or guess. Respond with: 'Could you clarify what you mean by [X]?'",
10
+ "id": "core.act",
11
+ "summary": "ACT by default. Execute tools immediately. Only ask if genuinely blocked or request is unsafe.",
12
12
  "severity": "critical"
13
13
  },
14
14
  {
15
- "id": "guardrail.concise_responses",
16
- "summary": "Keep responses concise. Avoid lengthy bullet lists, multiple headers, or verbose explanations unless explicitly requested.",
17
- "severity": "required"
18
- },
19
- {
20
- "id": "guardrail.snapshot_lock",
21
- "summary": "Require a workspace snapshot + repo tree before editing; request a refresh if files are missing.",
15
+ "id": "core.read_before_edit",
16
+ "summary": "Read before Edit. Copy exact text from read output. On mismatch: re-read, fix whitespace, retry.",
22
17
  "severity": "critical"
23
18
  },
24
19
  {
25
- "id": "guardrail.rulebook_visibility",
26
- "summary": "Reference this rulebook when explaining constraints or blocked actions so humans can audit decisions.",
27
- "severity": "required",
28
- "references": [
29
- { "label": "Code Rulebook", "file": "agents/erosolar-code.rules.json" }
30
- ]
31
- },
32
- {
33
- "id": "guardrail.workspace_grounding",
34
- "summary": "Quote exact files + line numbers from the repo snapshot instead of free-form speculation.",
35
- "severity": "critical",
36
- "references": [
37
- { "label": "README", "file": "README.md" },
38
- { "label": "package.json", "file": "package.json" }
39
- ]
40
- },
41
- {
42
- "id": "guardrail.tool_transparency",
43
- "summary": "Narrate intent before running tools/commands and summarize output afterward.",
44
- "severity": "required"
45
- },
46
- {
47
- "id": "guardrail.continuous_execution",
48
- "summary": "CRITICAL: Continue using tools until the task is complete. Do NOT stop after reading files—immediately proceed to make the requested edits. Do NOT describe what you WILL do—just DO it by calling the appropriate tools. After each tool call, continue with the next step until the task is fully accomplished.",
20
+ "id": "core.parallel",
21
+ "summary": "Parallelize. Multiple reads/commands in one response. Never serialize independent operations.",
49
22
  "severity": "critical"
50
23
  },
51
24
  {
52
- "id": "guardrail.manual_loop_supervision",
53
- "summary": "Stop if you lack evidence—surface blockers instead of guessing or editing blindly.",
54
- "severity": "required"
55
- },
56
- {
57
- "id": "guardrail.task_tracking",
58
- "summary": "Use TodoWrite tool proactively for complex multi-step tasks (3+ steps). Track progress in real-time, mark exactly ONE task as in_progress, and complete tasks immediately after finishing.",
59
- "severity": "required"
60
- },
61
- {
62
- "id": "guardrail.parallel_execution",
63
- "summary": "Execute multiple independent tool calls in parallel when possible. Use a single response with multiple tool uses to maximize efficiency.",
64
- "severity": "recommended"
65
- },
66
- {
67
- "id": "guardrail.efficient_searches",
68
- "summary": "Use specific search patterns to minimize context usage. Avoid broad patterns like Glob(.) or Glob(*). Use targeted patterns like '**/*.ts' or 'src/**/*.js'. Leverage head_limit parameter when searching large codebases.",
69
- "severity": "required"
70
- },
71
- {
72
- "id": "guardrail.context_efficiency",
73
- "summary": "Minimize context bloat by using targeted tool calls. Read specific files instead of searching everything. Use Grep with type or glob filters. Avoid sequential Read calls when parallel execution is possible.",
74
- "severity": "required"
75
- },
76
- {
77
- "id": "guardrail.context_summarization",
78
- "summary": "When reading multiple files or long outputs, provide a concise 3–5 bullet summary of key findings and planned next actions to keep context focused.",
79
- "severity": "recommended",
80
- "references": [
81
- { "label": "Tool Optimization Playbook", "file": "docs/TOOL_OPTIMIZATION_GUIDE.md" }
82
- ]
83
- },
84
- {
85
- "id": "guardrail.avoid_redundant_tools",
86
- "summary": "Do NOT use context_snapshot tool - workspace context is already in your system prompt. Do NOT use broad searches that return hundreds of results. Always specify head_limit for Grep/Glob when expecting many matches.",
87
- "severity": "required"
88
- },
89
- {
90
- "id": "guardrail.professional_tone",
91
- "summary": "Prioritize technical accuracy over validation. Avoid excessive praise, superlatives, or emotional validation. Disagree when necessary with objective, respectful corrections.",
92
- "severity": "required"
93
- },
94
- {
95
- "id": "guardrail.code_references",
96
- "summary": "When referencing specific functions or code, include file_path:line_number pattern to allow easy navigation (e.g., 'src/api.ts:42').",
97
- "severity": "recommended"
98
- },
99
- {
100
- "id": "guardrail.user_clarification",
101
- "summary": "Use AskUserQuestion tool when requirements are unclear, multiple approaches exist, or implementation choices need user input. Clarify before proceeding.",
102
- "severity": "required"
103
- },
104
- {
105
- "id": "guardrail.git_efficiency",
106
- "summary": "Do NOT run redundant git commands. Use single combined commands like 'git add -A && git commit -m msg && git push' instead of separate status/add/status/commit/push calls. Never run git status multiple times.",
25
+ "id": "core.retry",
26
+ "summary": "Self-correct. On failure: inspect adjust retry (2-3x). Fix whitespace/path issues yourself.",
107
27
  "severity": "critical"
108
28
  },
109
29
  {
110
- "id": "guardrail.npm_publish",
111
- "summary": "When publishing to npm, ensure a full release flow (auth, version bump, build/tests, publish, git push) and adapt to project scripts or the npm_publish tool instead of hard-coding one command chain.",
30
+ "id": "core.validate_once",
31
+ "summary": "Validate ONCE at end. Complete all edits first, then run build/test. Fix failures until green.",
112
32
  "severity": "critical"
113
33
  },
114
34
  {
115
- "id": "guardrail.sophisticated_solutions",
116
- "summary": "ALWAYS seek the most sophisticated, complete, and production-ready solution. Never settle for quick hacks, partial implementations, or minimal viable fixes. Choose architecturally sound approaches over expedient shortcuts.",
117
- "severity": "critical"
118
- },
119
- {
120
- "id": "guardrail.code_architecture",
121
- "summary": "When implementing features, consider architectural patterns (MVC, MVVM, Clean Architecture), separation of concerns, and maintainability. Prefer composition over inheritance, dependency injection, and immutable data structures.",
122
- "severity": "required"
123
- },
124
- {
125
- "id": "guardrail.type_safety",
126
- "summary": "Use strict TypeScript patterns - prefer interfaces over types for object shapes, use readonly for immutable data, leverage discriminated unions for complex state, and use utility types for better type safety.",
35
+ "id": "core.concise",
36
+ "summary": "Be concise. Cite file:line. No verbose explanations unless asked.",
127
37
  "severity": "required"
128
38
  },
129
39
  {
130
- "id": "guardrail.error_handling",
131
- "summary": "Use structured error handling with Result types for functional error handling, implement recovery strategies for common failures, and provide actionable error messages with recovery suggestions.",
132
- "severity": "required"
133
- },
134
- {
135
- "id": "guardrail.continuous_execution",
136
- "summary": "Execute continuously until the task is fully complete. Follow the full cycle: analyze → plan → implement → validate → report. Do not stop for confirmation unless genuinely blocked. Make informed decisions and proceed autonomously.",
137
- "severity": "critical"
138
- },
139
- {
140
- "id": "guardrail.deferred_validation",
141
- "summary": "Do NOT run validation (type-check, build, test, lint) after each edit. Complete ALL implementation work first. Only run a SINGLE validation pass at the very end when the assistant indicates task success.",
40
+ "id": "core.complete",
41
+ "summary": "Complete the task. Continue using tools until done. Don't stop after reading—edit immediately.",
142
42
  "severity": "critical"
143
- },
144
- {
145
- "id": "guardrail.validation_recovery",
146
- "summary": "After implementation, run validate_all_changes once. If it fails, immediately call get_validation_errors_for_fixing and suggest_fixes, fix issues, and re-run validation until clean.",
147
- "severity": "critical",
148
- "references": [
149
- { "label": "Validation Tools", "file": "src/tools/validationTools.ts" },
150
- { "label": "Tool Optimization Playbook", "file": "docs/TOOL_OPTIMIZATION_GUIDE.md" }
151
- ]
152
- },
153
- {
154
- "id": "guardrail.edge_destructive_ops",
155
- "summary": "EDGE CASE: For destructive operations (file deletion, database drops, force-push, overwriting user data), pause for explicit confirmation unless pre-authorized in the original request.",
156
- "severity": "critical"
157
- },
158
- {
159
- "id": "guardrail.edge_infinite_loops",
160
- "summary": "EDGE CASE: If circular dependencies, infinite loops, or repeated failures (3+ attempts on same issue) are detected, break the cycle immediately and report the blocking issue.",
161
- "severity": "critical"
162
- },
163
- {
164
- "id": "guardrail.edge_validation_impossible",
165
- "summary": "EDGE CASE: When validation is impossible (missing dependencies, no test suite, external service unavailable), document the validation gap clearly and provide manual verification steps.",
166
- "severity": "required"
167
43
  }
168
44
  ],
169
45
  "phases": [
170
46
  {
171
- "id": "phase.analysis",
172
- "label": "Analysis",
173
- "description": "Understand the bug/feature request and locate source material.",
174
- "steps": [
175
- {
176
- "id": "step.read_scope",
177
- "title": "Inspect current behavior",
178
- "intent": "Use read/search commands to locate relevant files.",
179
- "rules": [
180
- {
181
- "id": "rule.analysis.files",
182
- "summary": "List important files and cite their paths/lines before suggesting changes.",
183
- "severity": "required"
184
- },
185
- {
186
- "id": "rule.analysis.dependencies",
187
- "summary": "Check package.json scripts/dependencies for signals about tooling or frameworks.",
188
- "severity": "recommended",
189
- "references": [
190
- { "label": "package scripts", "file": "package.json" }
191
- ]
192
- },
193
- {
194
- "id": "rule.analysis.targeted_search",
195
- "summary": "Use specific file patterns when searching. Instead of Glob(.) or Glob(*), use targeted patterns like '**/*.ts', 'src/**/*.js', or 'test/**/*.test.ts'. This prevents context bloat from listing thousands of files.",
196
- "severity": "required"
197
- }
198
- ]
199
- }
200
- ]
201
- },
202
- {
203
- "id": "phase.planning",
204
- "label": "Plan",
205
- "description": "Lay out the editing strategy and validation path.",
206
- "steps": [
207
- {
208
- "id": "step.plan_diff",
209
- "title": "Describe intended diff",
210
- "intent": "Summarize the minimal set of files + code blocks that will change.",
211
- "rules": [
212
- {
213
- "id": "rule.plan.narrate",
214
- "summary": "Explain each edit before writing code; group steps logically.",
215
- "severity": "required"
216
- },
217
- {
218
- "id": "rule.plan.tests",
219
- "summary": "Call out npm/yarn/pnpm scripts or manual validation steps that prove success.",
220
- "severity": "required"
221
- }
222
- ]
223
- }
224
- ]
225
- },
226
- {
227
- "id": "phase.implementation",
228
- "label": "Implementation",
229
- "description": "Perform tightly scoped edits while maintaining reversible changes.",
47
+ "id": "phase.execute",
48
+ "label": "Execute",
49
+ "description": "Read Edit Validate",
230
50
  "steps": [
231
51
  {
232
- "id": "step.edit_code",
233
- "title": "Modify files",
234
- "intent": "Apply the planned diff, keeping commits small and well explained.",
52
+ "id": "step.do",
53
+ "title": "Do the task",
54
+ "intent": "Read files, make edits, run validation. All in one flow.",
235
55
  "rules": [
236
56
  {
237
- "id": "rule.implementation.atomic",
238
- "summary": "Edit one concern at a time; avoid sweeping refactors unless explicitly requested.",
57
+ "id": "rule.speculative_read",
58
+ "summary": "Pre-read target + related files (imports, tests) in parallel before editing.",
239
59
  "severity": "required"
240
60
  },
241
61
  {
242
- "id": "rule.implementation.confirm",
243
- "summary": "Re-open edited files or rerun explain tools to confirm the change matches the plan.",
244
- "severity": "required"
245
- }
246
- ]
247
- }
248
- ]
249
- },
250
- {
251
- "id": "phase.validation",
252
- "label": "Final Validation (End of Task Only)",
253
- "description": "Run validation ONCE at the very end, after ALL edits are complete and the assistant indicates success.",
254
- "steps": [
255
- {
256
- "id": "step.final_validation",
257
- "title": "Single final validation",
258
- "intent": "Only run validation after indicating task success. Do NOT run after each individual edit.",
259
- "rules": [
260
- {
261
- "id": "rule.validation.deferred",
262
- "summary": "CRITICAL: Do NOT run type-check, build, test, lint, quality-gate, or health-check after each tool call. Only run ONE validation at the END when you report success.",
263
- "severity": "critical"
264
- },
265
- {
266
- "id": "rule.validation.run_final",
267
- "summary": "Always run validate_all_changes for code edits (typescript + build + tests, add lint when relevant) unless explicitly instructed otherwise.",
268
- "severity": "required"
269
- },
270
- {
271
- "id": "rule.validation.recovery_flow",
272
- "summary": "On validation failure, fetch structured errors via get_validation_errors_for_fixing, use suggest_fixes to plan corrections, then re-run validation until it passes.",
62
+ "id": "rule.atomic_edit",
63
+ "summary": "One concern per edit. Small, focused changes.",
273
64
  "severity": "required"
274
65
  },
275
66
  {
276
- "id": "rule.validation.on_success_only",
277
- "summary": "Validation runs in a subsequent assistant turn AFTER reporting task completion. If validation fails, fix and re-validate.",
67
+ "id": "rule.final_check",
68
+ "summary": "After all edits: validate_all_changes or npm run build && npm test.",
278
69
  "severity": "required"
279
70
  }
280
71
  ]
281
72
  }
282
73
  ]
283
- },
284
- {
285
- "id": "phase.reporting",
286
- "label": "Reporting",
287
- "description": "Summarize edits, cite evidence, and highlight follow-ups.",
288
- "steps": [
289
- {
290
- "id": "step.report_code",
291
- "title": "Summarize outcome",
292
- "intent": "Describe the diff, tests executed, and remaining risks.",
293
- "rules": [
294
- {
295
- "id": "rule.reporting.delta",
296
- "summary": "List files changed with brief rationale and reference code blocks/line numbers.",
297
- "severity": "required"
298
- },
299
- {
300
- "id": "rule.reporting.next",
301
- "summary": "Document follow-up tasks, validation still needed, and any environment assumptions.",
302
- "severity": "recommended"
303
- },
304
- {
305
- "id": "rule.reporting.structured_actions",
306
- "summary": "When validation gaps, recommendations, or follow-ups exist, output them in structured format for auto-execution. Use clear markers: 'Validation Gap:', 'Recommendations:', 'Follow-Ups:' followed by specific commands in backticks.",
307
- "detail": "For auto-execution: validation gaps should include commands like `npm install`, recommendations should specify actions (e.g., 'remove file: .erosolar/cache/'), and follow-ups should include commands like `git status`. Only suggest auto-executable actions that are safe and reversible.",
308
- "severity": "recommended"
309
- }
310
- ]
311
- }
312
- ]
313
74
  }
314
75
  ]
315
76
  }
@@ -16,6 +16,7 @@ import { fileURLToPath } from 'node:url';
16
16
  import { dirname, join } from 'node:path';
17
17
  import { launchShell } from '../shell/shellApp.js';
18
18
  import { runHeadlessApp } from '../headless/headlessApp.js';
19
+ import { runEvalMode } from '../headless/evalMode.js';
19
20
  import { runSelfTest } from './selfTest.js';
20
21
  import { installGlobalWriteLock } from '../ui/globalWriteLock.js';
21
22
  const argv = process.argv.slice(2);
@@ -45,6 +46,7 @@ Usage: erosolar [options]
45
46
  Options:
46
47
  -v, --version Show version number
47
48
  -h, --help Show this help message
49
+ -e, --eval Evaluate a single prompt and exit (non-interactive)
48
50
  --json Run in headless/JSON mode
49
51
  --self-test Run self-tests in separate runtime
50
52
  --agents <json> Register inline subagents (same format as --agents flag in docs)
@@ -83,6 +85,13 @@ else if (argv.includes('--json')) {
83
85
  process.exit(1);
84
86
  });
85
87
  }
88
+ else if (argv.includes('--eval') || argv.includes('-e')) {
89
+ // Non-interactive eval mode: run a single prompt and exit with plain text output
90
+ runEvalMode({ argv }).catch((error) => {
91
+ console.error(error instanceof Error ? error.message : error);
92
+ process.exit(1);
93
+ });
94
+ }
86
95
  else {
87
96
  // Launch shell with persistent chat box (scroll regions enabled during streaming)
88
97
  launchShell('erosolar-code', { enableProfileSelection: true }).catch((error) => {
@@ -1 +1 @@
1
- {"version":3,"file":"erosolar.js","sourceRoot":"","sources":["../../src/bin/erosolar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"erosolar.js","sourceRoot":"","sources":["../../src/bin/erosolar.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { ProviderId } from '../types.js';
2
+ export interface NetworkErrorInfo {
3
+ type: 'network';
4
+ message: string;
5
+ code?: string;
6
+ provider?: ProviderId | string;
7
+ retryable: boolean;
8
+ }
9
+ /**
10
+ * Heuristically detect network connectivity errors from provider/client failures.
11
+ * Covers DNS, TLS, socket, fetch, and generic "connection error" cases.
12
+ */
13
+ export declare function detectNetworkError(error: unknown): NetworkErrorInfo | null;
14
+ //# sourceMappingURL=networkErrors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"networkErrors.d.ts","sourceRoot":"","sources":["../../../src/core/errors/networkErrors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;IAC/B,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,GAAG,IAAI,CAwD1E"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Heuristically detect network connectivity errors from provider/client failures.
3
+ * Covers DNS, TLS, socket, fetch, and generic "connection error" cases.
4
+ */
5
+ export function detectNetworkError(error) {
6
+ const toStringValue = (value) => typeof value === 'string' ? value : value instanceof Error ? value.message : '';
7
+ const code = typeof error?.code === 'string'
8
+ ? (error.code || '').toUpperCase()
9
+ : undefined;
10
+ const message = toStringValue(error).toLowerCase();
11
+ const causeCode = typeof error?.cause?.code === 'string'
12
+ ? error.cause.code.toUpperCase()
13
+ : undefined;
14
+ const text = `${code ?? ''} ${causeCode ?? ''} ${message}`;
15
+ const NETWORK_CODES = new Set([
16
+ 'ECONNREFUSED',
17
+ 'ECONNRESET',
18
+ 'EAI_AGAIN',
19
+ 'ENOTFOUND',
20
+ 'EHOSTUNREACH',
21
+ 'ENETUNREACH',
22
+ 'ETIMEDOUT',
23
+ 'EPIPE',
24
+ ]);
25
+ const NETWORK_PHRASES = [
26
+ 'network error',
27
+ 'connection error',
28
+ 'failed to fetch',
29
+ 'fetch failed',
30
+ 'socket hang up',
31
+ 'connect ECONNREFUSED',
32
+ 'getaddrinfo ENOTFOUND',
33
+ 'getaddrinfo EAI_AGAIN',
34
+ 'tls handshake timeout',
35
+ 'client network socket disconnected',
36
+ 'self signed certificate',
37
+ 'unexpected end of file',
38
+ 'unable to verify the first certificate',
39
+ 'network is unreachable',
40
+ ];
41
+ const isNetworkCode = (value) => Boolean(value && NETWORK_CODES.has(value));
42
+ const matchesPhrase = NETWORK_PHRASES.some((phrase) => text.includes(phrase));
43
+ if (!isNetworkCode(code) && !isNetworkCode(causeCode) && !matchesPhrase) {
44
+ return null;
45
+ }
46
+ return {
47
+ type: 'network',
48
+ message: toStringValue(error) || 'Network connectivity issue detected.',
49
+ code: code ?? causeCode,
50
+ retryable: true,
51
+ };
52
+ }
53
+ //# sourceMappingURL=networkErrors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"networkErrors.js","sourceRoot":"","sources":["../../../src/core/errors/networkErrors.ts"],"names":[],"mappings":"AAUA;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,MAAM,aAAa,GAAG,CAAC,KAAc,EAAU,EAAE,CAC/C,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAElF,MAAM,IAAI,GAAG,OAAQ,KAA4B,EAAE,IAAI,KAAK,QAAQ;QAClE,CAAC,CAAC,CAAE,KAA0B,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE;QACxD,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IACnD,MAAM,SAAS,GAAG,OAAQ,KAAuC,EAAE,KAAK,EAAE,IAAI,KAAK,QAAQ;QACzF,CAAC,CAAE,KAAqC,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE;QACjE,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,IAAI,GAAG,GAAG,IAAI,IAAI,EAAE,IAAI,SAAS,IAAI,EAAE,IAAI,OAAO,EAAE,CAAC;IAE3D,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;QAC5B,cAAc;QACd,YAAY;QACZ,WAAW;QACX,WAAW;QACX,cAAc;QACd,aAAa;QACb,WAAW;QACX,OAAO;KACR,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG;QACtB,eAAe;QACf,kBAAkB;QAClB,iBAAiB;QACjB,cAAc;QACd,gBAAgB;QAChB,sBAAsB;QACtB,uBAAuB;QACvB,uBAAuB;QACvB,uBAAuB;QACvB,oCAAoC;QACpC,yBAAyB;QACzB,wBAAwB;QACxB,wCAAwC;QACxC,wBAAwB;KACzB,CAAC;IAEF,MAAM,aAAa,GAAG,CAAC,KAAc,EAAW,EAAE,CAAC,OAAO,CAAC,KAAK,IAAI,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9F,MAAM,aAAa,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAE9E,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QACxE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,IAAI,sCAAsC;QACvE,IAAI,EAAE,IAAI,IAAI,SAAS;QACvB,SAAS,EAAE,IAAI;KAChB,CAAC;AACJ,CAAC"}
@@ -44,9 +44,8 @@ export declare function clearToolSettings(): void;
44
44
  export declare function loadSessionPreferences(): SessionPreferences;
45
45
  export declare function saveSessionPreferences(preferences: Partial<SessionPreferences>): void;
46
46
  /**
47
- * Default feature flags
48
- * - Verification is enabled by default to enforce the smart build/test/fix loop
49
- * - All other optional features start disabled
47
+ * Default feature flags - all off by default for lean operation.
48
+ * User can enable as needed via /features command.
50
49
  */
51
50
  export declare const DEFAULT_FEATURE_FLAGS: FeatureFlags;
52
51
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"preferences.d.ts","sourceRoot":"","sources":["../../src/core/preferences.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAMhD,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,UAAU,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,oBAAoB,CAAC;CACxC;AAwBD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAMD,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,UAAU,CAAC;AACnD,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,UAAU,CAAC;AAEvD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,YAAY,EAAE,YAAY,CAAC;IAC3B,oBAAoB,EAAE,oBAAoB,CAAC;CAC5C;AAED,wBAAgB,2BAA2B,IAAI,WAAW,GAAG,IAAI,CAMhE;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAUtE;AAED,wBAAgB,4BAA4B,IAAI,IAAI,CASnD;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,WAAW,GAAG,wBAAwB,GAAG,IAAI,CAazF;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,wBAAwB,GACnC,IAAI,CAMN;AAED,wBAAgB,gBAAgB,IAAI,YAAY,GAAG,IAAI,CAOtD;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAQ7D;AAED,wBAAgB,iBAAiB,IAAI,IAAI,CAWxC;AAED,wBAAgB,sBAAsB,IAAI,kBAAkB,CAc3D;AAED,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,IAAI,CA2BrF;AAmID;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,YASnC,CAAC;AAEF;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,YAAY,CAQ/C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAM1D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,YAAY,CAMxF;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,YAAY,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAiChG,CAAC"}
1
+ {"version":3,"file":"preferences.d.ts","sourceRoot":"","sources":["../../src/core/preferences.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAMhD,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,UAAU,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,oBAAoB,CAAC;CACxC;AAwBD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAMD,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,UAAU,CAAC;AACnD,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,UAAU,CAAC;AAEvD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,YAAY,EAAE,YAAY,CAAC;IAC3B,oBAAoB,EAAE,oBAAoB,CAAC;CAC5C;AAED,wBAAgB,2BAA2B,IAAI,WAAW,GAAG,IAAI,CAMhE;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAUtE;AAED,wBAAgB,4BAA4B,IAAI,IAAI,CASnD;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,WAAW,GAAG,wBAAwB,GAAG,IAAI,CAazF;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,wBAAwB,GACnC,IAAI,CAMN;AAED,wBAAgB,gBAAgB,IAAI,YAAY,GAAG,IAAI,CAOtD;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAQ7D;AAED,wBAAgB,iBAAiB,IAAI,IAAI,CAWxC;AAED,wBAAgB,sBAAsB,IAAI,kBAAkB,CAe3D;AAED,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,IAAI,CA2BrF;AAmID;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,YASnC,CAAC;AAEF;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,YAAY,CAQ/C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAM1D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,YAAY,CAMxF;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,YAAY,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAiChG,CAAC"}
@@ -86,6 +86,7 @@ export function loadSessionPreferences() {
86
86
  const payload = readSettingsFile();
87
87
  const section = payload?.session;
88
88
  return {
89
+ // All toggles default to false except thinking mode
89
90
  autosave: typeof section?.autosave === 'boolean' ? section.autosave : false,
90
91
  autoResume: typeof section?.autoResume === 'boolean' ? section.autoResume : false,
91
92
  autoContinue: typeof section?.autoContinue === 'boolean' ? section.autoContinue : false,
@@ -243,13 +244,12 @@ function normalizeProfileNameValue(value) {
243
244
  return trimmed;
244
245
  }
245
246
  /**
246
- * Default feature flags
247
- * - Verification is enabled by default to enforce the smart build/test/fix loop
248
- * - All other optional features start disabled
247
+ * Default feature flags - all off by default for lean operation.
248
+ * User can enable as needed via /features command.
249
249
  */
250
250
  export const DEFAULT_FEATURE_FLAGS = {
251
251
  alphaZeroDual: false,
252
- verification: true,
252
+ verification: false,
253
253
  autoCompact: false,
254
254
  mcpEnabled: false,
255
255
  metrics: false,
@@ -1 +1 @@
1
- {"version":3,"file":"preferences.js","sourceRoot":"","sources":["../../src/core/preferences.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preferences.js","sourceRoot":"","sources":["../../src/core/preferences.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"toolPreconditions.d.ts","sourceRoot":"","sources":["../../src/core/toolPreconditions.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC;IACnD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAGD,eAAO,MAAM,2BAA2B;;;;;;;;;;CA+B9B,CAAC;AAEX;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,gBAAgB,EAAE,CA8KpB;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,WAAW,EAAE,SAAS;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,GAC9F,gBAAgB,EAAE,CA6EpB"}
1
+ {"version":3,"file":"toolPreconditions.d.ts","sourceRoot":"","sources":["../../src/core/toolPreconditions.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC;IACnD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAGD,eAAO,MAAM,2BAA2B;;;;;;;;;;CA+B9B,CAAC;AAEX;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,gBAAgB,EAAE,CAkMpB;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,WAAW,EAAE,SAAS;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,GAC9F,gBAAgB,EAAE,CA6EpB"}
@@ -134,6 +134,25 @@ export function validateToolPreconditions(toolName, args) {
134
134
  suggestion: 'Short matches may hit multiple locations. Use more context in old_string.',
135
135
  });
136
136
  }
137
+ // PATTERN 7: Detect AI re-typing code instead of copying
138
+ // If old_string looks like valid code but has subtle formatting differences
139
+ const codePatterns = [
140
+ /^\s*(import|export|const|let|var|function|class|interface|type)\s/m,
141
+ /^\s*(if|else|for|while|switch|return|throw)\s*[\(\{]/m,
142
+ ];
143
+ const looksLikeCode = codePatterns.some((p) => p.test(oldString));
144
+ if (looksLikeCode && oldString.includes(' = ') && !oldString.includes('\t')) {
145
+ // Check for common retyping indicators: mixed quote styles, normalized spaces
146
+ const hasDoubleSpaces = / +/.test(oldString.replace(/\n/g, ''));
147
+ if (!hasDoubleSpaces && oldString.length > 30) {
148
+ warnings.push({
149
+ code: 'EDIT_POSSIBLY_RETYPED',
150
+ message: 'old_string looks like retyped code rather than copied from Read output',
151
+ severity: 'info',
152
+ suggestion: 'Ensure old_string is copied exactly from read_file output, including all whitespace.',
153
+ });
154
+ }
155
+ }
137
156
  }
138
157
  }
139
158
  // -------------------------------------------------------------------------