@ordis-dev/ordis 0.2.0 → 0.4.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 (75) hide show
  1. package/README.md +47 -0
  2. package/dist/cli.js +20 -4
  3. package/dist/cli.js.map +1 -1
  4. package/dist/core/error-formatter.d.ts +35 -0
  5. package/dist/core/error-formatter.d.ts.map +1 -0
  6. package/dist/core/error-formatter.js +319 -0
  7. package/dist/core/error-formatter.js.map +1 -0
  8. package/dist/core/pipeline.d.ts.map +1 -1
  9. package/dist/core/pipeline.js +3 -2
  10. package/dist/core/pipeline.js.map +1 -1
  11. package/dist/core/types.d.ts +2 -1
  12. package/dist/core/types.d.ts.map +1 -1
  13. package/dist/core/validator.d.ts +3 -1
  14. package/dist/core/validator.d.ts.map +1 -1
  15. package/dist/core/validator.js.map +1 -1
  16. package/dist/index.d.ts +1 -0
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +1 -0
  19. package/dist/index.js.map +1 -1
  20. package/dist/llm/client.d.ts.map +1 -1
  21. package/dist/llm/client.js +23 -3
  22. package/dist/llm/client.js.map +1 -1
  23. package/dist/llm/types.d.ts +2 -0
  24. package/dist/llm/types.d.ts.map +1 -1
  25. package/dist/schemas/types.d.ts +3 -1
  26. package/dist/schemas/types.d.ts.map +1 -1
  27. package/package.json +1 -1
  28. package/dist/__tests__/api.test.d.ts +0 -5
  29. package/dist/__tests__/api.test.d.ts.map +0 -1
  30. package/dist/__tests__/api.test.js +0 -95
  31. package/dist/__tests__/api.test.js.map +0 -1
  32. package/dist/__tests__/cli.test.d.ts +0 -6
  33. package/dist/__tests__/cli.test.d.ts.map +0 -1
  34. package/dist/__tests__/cli.test.js +0 -103
  35. package/dist/__tests__/cli.test.js.map +0 -1
  36. package/dist/cli/__tests__/cli.test.d.ts +0 -5
  37. package/dist/cli/__tests__/cli.test.d.ts.map +0 -1
  38. package/dist/cli/__tests__/cli.test.js +0 -13
  39. package/dist/cli/__tests__/cli.test.js.map +0 -1
  40. package/dist/core/__tests__/pipeline.test.d.ts +0 -5
  41. package/dist/core/__tests__/pipeline.test.d.ts.map +0 -1
  42. package/dist/core/__tests__/pipeline.test.js +0 -334
  43. package/dist/core/__tests__/pipeline.test.js.map +0 -1
  44. package/dist/core/__tests__/validator.test.d.ts +0 -5
  45. package/dist/core/__tests__/validator.test.d.ts.map +0 -1
  46. package/dist/core/__tests__/validator.test.js +0 -124
  47. package/dist/core/__tests__/validator.test.js.map +0 -1
  48. package/dist/llm/__tests__/client.test.d.ts +0 -5
  49. package/dist/llm/__tests__/client.test.d.ts.map +0 -1
  50. package/dist/llm/__tests__/client.test.js +0 -350
  51. package/dist/llm/__tests__/client.test.js.map +0 -1
  52. package/dist/llm/__tests__/prompt-builder.test.d.ts +0 -5
  53. package/dist/llm/__tests__/prompt-builder.test.d.ts.map +0 -1
  54. package/dist/llm/__tests__/prompt-builder.test.js +0 -171
  55. package/dist/llm/__tests__/prompt-builder.test.js.map +0 -1
  56. package/dist/llm/__tests__/retry.test.d.ts +0 -5
  57. package/dist/llm/__tests__/retry.test.d.ts.map +0 -1
  58. package/dist/llm/__tests__/retry.test.js +0 -350
  59. package/dist/llm/__tests__/retry.test.js.map +0 -1
  60. package/dist/llm/__tests__/token-counter.test.d.ts +0 -5
  61. package/dist/llm/__tests__/token-counter.test.d.ts.map +0 -1
  62. package/dist/llm/__tests__/token-counter.test.js +0 -166
  63. package/dist/llm/__tests__/token-counter.test.js.map +0 -1
  64. package/dist/schemas/__tests__/integration.test.d.ts +0 -5
  65. package/dist/schemas/__tests__/integration.test.d.ts.map +0 -1
  66. package/dist/schemas/__tests__/integration.test.js +0 -366
  67. package/dist/schemas/__tests__/integration.test.js.map +0 -1
  68. package/dist/schemas/__tests__/loader.test.d.ts +0 -5
  69. package/dist/schemas/__tests__/loader.test.d.ts.map +0 -1
  70. package/dist/schemas/__tests__/loader.test.js +0 -271
  71. package/dist/schemas/__tests__/loader.test.js.map +0 -1
  72. package/dist/schemas/__tests__/validator.test.d.ts +0 -5
  73. package/dist/schemas/__tests__/validator.test.d.ts.map +0 -1
  74. package/dist/schemas/__tests__/validator.test.js +0 -592
  75. package/dist/schemas/__tests__/validator.test.js.map +0 -1
package/README.md CHANGED
@@ -16,6 +16,7 @@ Ordis is a local-first tool and library that turns messy, unstructured text into
16
16
  - **Schema-first workflow**: Define your data structure upfront
17
17
  - **Deterministic output**: Returns validated records or structured failures
18
18
  - **Token budget awareness**: Automatic token counting with warnings and limits
19
+ - **HTML preprocessing**: Strip noise from web pages before extraction
19
20
  - **Dual-purpose**: Use as a CLI or import as a library
20
21
  - **TypeScript support**: Full type definitions included
21
22
 
@@ -167,6 +168,30 @@ const result = await extract({
167
168
  });
168
169
  ```
169
170
 
171
+ **Extracting from HTML:**
172
+
173
+ ```typescript
174
+ import { extract, loadSchema } from '@ordis-dev/ordis';
175
+
176
+ const schema = await loadSchema('./schema.json');
177
+
178
+ // Strip HTML noise before extraction
179
+ const result = await extract({
180
+ input: rawHtmlContent,
181
+ schema,
182
+ llmConfig: { baseURL: 'http://localhost:11434/v1', model: 'llama3.2:3b' },
183
+ preprocessing: {
184
+ stripHtml: true // Removes scripts, styles, nav, ads, etc.
185
+ // Or with options:
186
+ // stripHtml: {
187
+ // preserveStructure: true, // Convert headings/lists to markdown
188
+ // removeSelectors: ['.sidebar', '#comments'],
189
+ // maxLength: 10000
190
+ // }
191
+ }
192
+ });
193
+ ```
194
+
170
195
  ## What Works
171
196
 
172
197
  - āœ… Schema loader and validator
@@ -179,6 +204,7 @@ const result = await extract({
179
204
  - āœ… Field-level confidence tracking
180
205
  - āœ… TypeScript type definitions
181
206
  - āœ… Performance benchmarks
207
+ - āœ… HTML preprocessing for noisy web content
182
208
 
183
209
  ## Performance
184
210
 
@@ -191,6 +217,26 @@ npm run benchmark
191
217
 
192
218
  ## Roadmap
193
219
 
220
+ **Completed in v0.4.0:**
221
+ - āœ… User-friendly error messages ([#63](https://github.com/ordis-dev/ordis/issues/63))
222
+ - Emoji indicators (āŒ, šŸ’”, ā„¹ļø) for quick scanning
223
+ - Expected vs. actual values for validation errors
224
+ - Actionable suggestions for common issues
225
+ - Service-specific troubleshooting (Ollama, LM Studio, OpenAI)
226
+ - File system error handling (ENOENT, EACCES)
227
+ - āœ… Debug mode enhancements
228
+ - Full LLM request/response logging
229
+ - Token usage breakdown
230
+ - System and user prompt visibility
231
+ - Detailed error context
232
+
233
+ **Completed in v0.2.0:**
234
+ - āœ… HTML stripping/preprocessing before extraction ([#59](https://github.com/ordis-dev/ordis/issues/59))
235
+ - `stripHtml: true` removes HTML tags, keeps text content
236
+ - `preserveStructure: true` converts headings/lists to markdown-like format
237
+ - `removeSelectors` for custom element removal
238
+ - Automatic removal of scripts, styles, nav, footer, ads
239
+
194
240
  **Completed in v0.1.0:**
195
241
  - āœ… Core extraction pipeline with schema validation
196
242
  - āœ… Token budget awareness and management
@@ -201,6 +247,7 @@ npm run benchmark
201
247
  - āœ… Support for any OpenAI-compatible API
202
248
 
203
249
  **Upcoming:**
250
+ - [ ] Schema validation error line numbers ([#64](https://github.com/ordis-dev/ordis/issues/64))
204
251
  - [ ] Smart input truncation ([#40](https://github.com/ordis-dev/ordis/issues/40))
205
252
  - [ ] Multi-pass extraction for large inputs ([#41](https://github.com/ordis-dev/ordis/issues/41))
206
253
  - [ ] Config file support ([#16](https://github.com/ordis-dev/ordis/issues/16))
package/dist/cli.js CHANGED
@@ -8,6 +8,7 @@ import * as fs from 'node:fs/promises';
8
8
  import * as path from 'node:path';
9
9
  import { loadSchema } from './schemas/loader.js';
10
10
  import { extract } from './core/pipeline.js';
11
+ import { formatError } from './core/error-formatter.js';
11
12
  import packageJson from '../package.json' with { type: 'json' };
12
13
  function parseArgs(args) {
13
14
  const parsed = {};
@@ -130,6 +131,7 @@ async function runExtraction(args) {
130
131
  baseURL: args.base,
131
132
  model: args.model,
132
133
  ...(args.apiKey && { apiKey: args.apiKey }),
134
+ debug: args.debug,
133
135
  };
134
136
  if (args.debug) {
135
137
  console.log('[DEBUG] LLM config:', {
@@ -171,10 +173,23 @@ async function runExtraction(args) {
171
173
  process.exit(0);
172
174
  }
173
175
  else {
174
- // Output failure with errors
176
+ // Output failure with formatted errors
177
+ const formattedErrors = result.errors.map((err) => {
178
+ // If we have the original error in details, format that
179
+ const errorToFormat = err.details?.error || err;
180
+ const formatted = formatError(errorToFormat, {
181
+ model: args.model,
182
+ baseURL: args.base,
183
+ });
184
+ return {
185
+ message: formatted,
186
+ code: err.code,
187
+ field: err.field,
188
+ };
189
+ });
175
190
  const output = {
176
191
  success: false,
177
- errors: result.errors,
192
+ errors: formattedErrors,
178
193
  data: result.data, // May be partial
179
194
  confidence: result.confidence,
180
195
  meetsThreshold: result.meetsThreshold,
@@ -185,15 +200,16 @@ async function runExtraction(args) {
185
200
  }
186
201
  }
187
202
  catch (error) {
188
- // Handle unexpected errors
203
+ // Handle unexpected errors with formatted messages
189
204
  if (args.debug && error instanceof Error) {
190
205
  console.error('[DEBUG] Stack trace:', error.stack);
191
206
  }
207
+ const formattedMessage = formatError(error);
192
208
  const errorOutput = {
193
209
  success: false,
194
210
  errors: [
195
211
  {
196
- message: error instanceof Error ? error.message : String(error),
212
+ message: formattedMessage,
197
213
  code: error.code || 'UNKNOWN_ERROR',
198
214
  },
199
215
  ],
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Error formatting utilities for user-friendly error messages
3
+ */
4
+ import type { ValidationError } from './validator.js';
5
+ import type { Schema } from '../schemas/types.js';
6
+ import type { LLMError } from '../llm/errors.js';
7
+ export interface FormattedError {
8
+ title: string;
9
+ message: string;
10
+ suggestion?: string;
11
+ details?: string[];
12
+ }
13
+ /**
14
+ * Format validation error with context and suggestions
15
+ * Returns a formatted string with title, message, and suggestions
16
+ */
17
+ export declare function formatValidationError(error: ValidationError, schema?: Schema, value?: unknown): string;
18
+ /**
19
+ * Format LLM error with context and recovery suggestions
20
+ * Returns a formatted string with title, message, suggestions, and details
21
+ */
22
+ export declare function formatLLMError(error: LLMError, context?: {
23
+ model?: string;
24
+ baseURL?: string;
25
+ inputLength?: number;
26
+ }): string;
27
+ /**
28
+ * Format multiple validation errors into a readable message
29
+ */
30
+ export declare function formatValidationErrors(errors: ValidationError[], schema?: Schema): string;
31
+ /**
32
+ * Format any error into a user-friendly message
33
+ */
34
+ export declare function formatError(error: unknown, context?: Record<string, unknown>): string;
35
+ //# sourceMappingURL=error-formatter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-formatter.d.ts","sourceRoot":"","sources":["../../src/core/error-formatter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,EAAmB,MAAM,qBAAqB,CAAC;AACnE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAIjD,MAAM,WAAW,cAAc;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACjC,KAAK,EAAE,eAAe,EACtB,MAAM,CAAC,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,OAAO,GAChB,MAAM,CAuGR;AAuBD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE;IACtD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG,MAAM,CA4HT;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAClC,MAAM,EAAE,eAAe,EAAE,EACzB,MAAM,CAAC,EAAE,MAAM,GAChB,MAAM,CAcR;AAED;;GAEG;AACH,wBAAgB,WAAW,CACvB,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,MAAM,CAwDR"}
@@ -0,0 +1,319 @@
1
+ /**
2
+ * Error formatting utilities for user-friendly error messages
3
+ */
4
+ import { LLMErrorCodes } from '../llm/errors.js';
5
+ import { PipelineErrorCodes } from './errors.js';
6
+ /**
7
+ * Format validation error with context and suggestions
8
+ * Returns a formatted string with title, message, and suggestions
9
+ */
10
+ export function formatValidationError(error, schema, value) {
11
+ const field = error.field ? schema?.fields?.[error.field] : undefined;
12
+ const fieldDesc = field?.description ? ` (${field.description})` : '';
13
+ const formatted = {
14
+ title: 'Field Validation Error',
15
+ message: '',
16
+ details: [],
17
+ };
18
+ switch (error.code) {
19
+ case PipelineErrorCodes.FIELD_MISSING:
20
+ formatted.message = `Required field '${error.field}' is missing${fieldDesc}`;
21
+ formatted.suggestion = field?.optional
22
+ ? `This field was expected but not marked as optional in the schema.`
23
+ : `The LLM didn't extract this field. Try:\n` +
24
+ ` • Make the field description more explicit\n` +
25
+ ` • Ensure the input text contains this information\n` +
26
+ ` • Mark the field as optional if it's not always present`;
27
+ break;
28
+ case PipelineErrorCodes.TYPE_MISMATCH:
29
+ // Use expected/actual from error if provided, otherwise infer from schema
30
+ const expectedType = error.expected || field?.type || 'unknown';
31
+ const actualType = error.actual || typeof error.value;
32
+ const gotValue = JSON.stringify(error.value);
33
+ formatted.message = `Field '${error.field}'${fieldDesc}\n` +
34
+ ` Expected: ${expectedType}\n` +
35
+ ` Got: ${gotValue} (${actualType})`;
36
+ // Type-specific suggestions
37
+ if (expectedType === 'number' && actualType === 'string') {
38
+ formatted.suggestion = `The LLM returned a string instead of a number.\n` +
39
+ ` • Check if the value contains formatting (e.g., "$1,250.00")\n` +
40
+ ` • Update schema description to request "raw number without formatting"\n` +
41
+ ` • Example: "amount as a number (e.g., 1250, not $1,250.00)"`;
42
+ }
43
+ else if (expectedType === 'string' && actualType === 'number') {
44
+ formatted.suggestion = `The LLM returned a number instead of a string.\n` +
45
+ ` • Update schema to use type: "number" if numeric data is expected\n` +
46
+ ` • Or clarify in description that quotes are required`;
47
+ }
48
+ else if (expectedType === 'integer' && actualType === 'number') {
49
+ formatted.suggestion = `Got a decimal number but expected an integer.\n` +
50
+ ` • Ask for "whole number" or "integer" in the field description`;
51
+ }
52
+ break;
53
+ case PipelineErrorCodes.FIELD_INVALID:
54
+ // Check if expected is an array (enum values) or string (pattern)
55
+ const expectedValue = error.expected;
56
+ if (Array.isArray(expectedValue)) {
57
+ // Enum validation error
58
+ formatted.message = `Field '${error.field}' has invalid value\n` +
59
+ ` Allowed: ${expectedValue.join(', ')}\n` +
60
+ ` Got: ${JSON.stringify(error.value)}`;
61
+ formatted.suggestion = `The LLM returned a value not in the allowed list.\n` +
62
+ ` • Add the value to the enum list if it's valid\n` +
63
+ ` • Provide examples in the field description\n` +
64
+ ` • Use pattern matching if exact values aren't required`;
65
+ }
66
+ else if (typeof expectedValue === 'string' && expectedValue.startsWith('^')) {
67
+ // Pattern validation error
68
+ formatted.message = `Field '${error.field}' doesn't match required pattern\n` +
69
+ ` Pattern: ${expectedValue}\n` +
70
+ ` Got: ${JSON.stringify(error.value)}`;
71
+ formatted.suggestion = `The value doesn't match the regex pattern.\n` +
72
+ ` • Provide an example in the field description\n` +
73
+ ` • Simplify the pattern if it's too strict`;
74
+ }
75
+ else if (field?.enum) {
76
+ formatted.message = `Field '${error.field}' has invalid value\n` +
77
+ ` Allowed: ${field.enum.join(', ')}\n` +
78
+ ` Got: ${JSON.stringify(error.value)}`;
79
+ formatted.suggestion = `The LLM returned a value not in the allowed list.\n` +
80
+ ` • Add the value to the enum list if it's valid\n` +
81
+ ` • Provide examples in the field description\n` +
82
+ ` • Use pattern matching if exact values aren't required`;
83
+ }
84
+ else if (field?.pattern) {
85
+ formatted.message = `Field '${error.field}' doesn't match required pattern\n` +
86
+ ` Pattern: ${field.pattern}\n` +
87
+ ` Got: ${JSON.stringify(error.value)}`;
88
+ formatted.suggestion = `The value doesn't match the regex pattern.\n` +
89
+ ` • Provide an example in the field description\n` +
90
+ ` • Simplify the pattern if it's too strict`;
91
+ }
92
+ else if (field?.min !== undefined || field?.max !== undefined) {
93
+ formatted.message = error.message;
94
+ formatted.suggestion = `Value is out of the allowed range.\n` +
95
+ ` • Check if the constraint is correct\n` +
96
+ ` • Mention the range in the field description`;
97
+ }
98
+ else {
99
+ // Generic field invalid error
100
+ formatted.message = error.message;
101
+ }
102
+ break;
103
+ default:
104
+ formatted.message = error.message;
105
+ }
106
+ // Add field location in schema
107
+ if (schema?.metadata?.name) {
108
+ formatted.details = [` Field: ${error.field}`, `Schema: ${schema.metadata.name}`];
109
+ }
110
+ return formatFormattedError(formatted);
111
+ }
112
+ /**
113
+ * Helper to format a FormattedError into a string
114
+ */
115
+ function formatFormattedError(error) {
116
+ const lines = [`āŒ ${error.title}`, ` ${error.message.replace(/\n/g, '\n ')}`];
117
+ if (error.suggestion) {
118
+ lines.push('', `šŸ’” Tip:`);
119
+ lines.push(` ${error.suggestion.replace(/\n/g, '\n ')}`);
120
+ }
121
+ if (error.details && error.details.length > 0) {
122
+ lines.push('', `ā„¹ļø Details:`);
123
+ for (const detail of error.details) {
124
+ lines.push(` • ${detail}`);
125
+ }
126
+ }
127
+ return lines.join('\n');
128
+ }
129
+ /**
130
+ * Format LLM error with context and recovery suggestions
131
+ * Returns a formatted string with title, message, suggestions, and details
132
+ */
133
+ export function formatLLMError(error, context) {
134
+ const formatted = {
135
+ title: 'LLM Service Error',
136
+ message: error.message,
137
+ details: [],
138
+ };
139
+ switch (error.code) {
140
+ case LLMErrorCodes.NETWORK_ERROR:
141
+ formatted.title = 'Network Connection Error';
142
+ formatted.suggestion = `Cannot reach the LLM service.\n` +
143
+ ` • Check if the service is running (${context?.baseURL || 'unknown URL'})\n` +
144
+ ` • For Ollama: run 'ollama serve'\n` +
145
+ ` • For LM Studio: ensure the server is started\n` +
146
+ ` • Check firewall settings`;
147
+ break;
148
+ case LLMErrorCodes.AUTHENTICATION_ERROR:
149
+ formatted.title = 'Authentication Failed';
150
+ formatted.suggestion = `Invalid or missing API key.\n` +
151
+ ` • Check your API key is correct\n` +
152
+ ` • Use --api-key option or set in config\n` +
153
+ ` • For local models (Ollama/LM Studio), API key is not needed`;
154
+ break;
155
+ case LLMErrorCodes.RATE_LIMIT:
156
+ formatted.title = 'Rate Limit Exceeded';
157
+ const retryAfter = error.details?.retryAfter;
158
+ formatted.suggestion = retryAfter
159
+ ? `Too many requests. Retry after ${retryAfter} seconds.`
160
+ : `Too many requests.\n` +
161
+ ` • Wait a moment and try again\n` +
162
+ ` • Reduce request frequency\n` +
163
+ ` • Check your API plan limits`;
164
+ break;
165
+ case LLMErrorCodes.TIMEOUT:
166
+ formatted.title = 'Request Timeout';
167
+ formatted.suggestion = `The LLM service didn't respond in time.\n` +
168
+ ` • Local models: this is normal for long inputs or slower hardware\n` +
169
+ ` • Try a faster model (e.g., llama3.2:3b instead of 70b)\n` +
170
+ ` • Reduce input size\n` +
171
+ ` • Increase timeout in config`;
172
+ break;
173
+ case LLMErrorCodes.TOKEN_LIMIT_EXCEEDED:
174
+ formatted.title = 'Context Window Exceeded';
175
+ formatted.message = error.message;
176
+ formatted.suggestion = `The input is too large for this model's context window.\n` +
177
+ ` • Model: ${context?.model || 'unknown'}\n` +
178
+ ` • Input length: ~${context?.inputLength || 'unknown'} characters\n` +
179
+ `\n` +
180
+ ` Solutions:\n` +
181
+ ` • Reduce input size (extract relevant sections only)\n` +
182
+ ` • Use HTML preprocessing to strip noise: --strip-html\n` +
183
+ ` • Switch to a model with larger context window\n` +
184
+ ` • Split extraction into multiple passes (coming soon)`;
185
+ break;
186
+ case LLMErrorCodes.INVALID_RESPONSE:
187
+ formatted.title = 'Invalid LLM Response';
188
+ if (error.message.includes('JSON')) {
189
+ formatted.suggestion = `The LLM didn't return valid JSON.\n` +
190
+ ` • This usually happens with smaller or undertrained models\n` +
191
+ ` • Try a more capable model (e.g., llama3.1:8b instead of 3b)\n` +
192
+ ` • Simplify your schema\n` +
193
+ ` • Reduce input complexity`;
194
+ }
195
+ else if (error.message.includes('confidence')) {
196
+ formatted.suggestion = `The LLM response is missing the confidence score.\n` +
197
+ ` • This is a model capability issue\n` +
198
+ ` • Try a different model`;
199
+ }
200
+ break;
201
+ case LLMErrorCodes.API_ERROR:
202
+ // Check for common API error patterns
203
+ const msg = error.message.toLowerCase();
204
+ if (msg.includes('context') || msg.includes('token') || msg.includes('length')) {
205
+ formatted.title = 'Context Window Exceeded';
206
+ formatted.suggestion = `The input is too large for this model's context window.\n` +
207
+ ` • Model: ${context?.model || 'unknown'}\n` +
208
+ ` • Input length: ~${context?.inputLength || 'unknown'} characters\n` +
209
+ `\n` +
210
+ ` Solutions:\n` +
211
+ ` • Reduce input size (extract relevant sections only)\n` +
212
+ ` • Use HTML preprocessing to strip noise: --strip-html\n` +
213
+ ` • Switch to a model with larger context window\n` +
214
+ ` • Split extraction into multiple passes (coming soon)`;
215
+ }
216
+ else if (msg.includes('model') && msg.includes('not found')) {
217
+ formatted.title = 'Model Not Found';
218
+ formatted.suggestion = `The specified model is not available.\n` +
219
+ ` • Model: ${context?.model || 'unknown'}\n` +
220
+ ` • For Ollama: run 'ollama list' to see available models\n` +
221
+ ` • Pull the model: 'ollama pull ${context?.model}'\n` +
222
+ ` • For LM Studio: check loaded models in the UI`;
223
+ }
224
+ else if (error.statusCode === 404) {
225
+ formatted.title = 'Endpoint Not Found';
226
+ formatted.suggestion = `The API endpoint doesn't exist.\n` +
227
+ ` • Check the base URL: ${context?.baseURL || 'unknown'}\n` +
228
+ ` • Ensure /v1 suffix for Ollama/LM Studio\n` +
229
+ ` • Verify the service supports OpenAI-compatible API`;
230
+ }
231
+ else if (error.statusCode && error.statusCode >= 500) {
232
+ formatted.title = 'Service Error';
233
+ formatted.suggestion = `The LLM service encountered an internal error.\n` +
234
+ ` • Check service logs for details\n` +
235
+ ` • Try again in a moment\n` +
236
+ ` • Report to service provider if persistent`;
237
+ }
238
+ break;
239
+ }
240
+ // Add error details
241
+ if (error.statusCode) {
242
+ formatted.details?.push(`Status: ${error.statusCode}`);
243
+ }
244
+ if (context?.model) {
245
+ formatted.details?.push(`Model: ${context.model}`);
246
+ }
247
+ if (context?.baseURL) {
248
+ formatted.details?.push(`URL: ${context.baseURL}`);
249
+ }
250
+ return formatFormattedError(formatted);
251
+ }
252
+ /**
253
+ * Format multiple validation errors into a readable message
254
+ */
255
+ export function formatValidationErrors(errors, schema) {
256
+ if (errors.length === 0) {
257
+ return 'Validation passed';
258
+ }
259
+ const lines = [`Found ${errors.length} validation error${errors.length > 1 ? 's' : ''}:\n`];
260
+ for (const error of errors) {
261
+ const formatted = formatValidationError(error, schema, error.value);
262
+ lines.push(formatted);
263
+ lines.push('');
264
+ }
265
+ return lines.join('\n');
266
+ }
267
+ /**
268
+ * Format any error into a user-friendly message
269
+ */
270
+ export function formatError(error, context) {
271
+ // Handle null/undefined
272
+ if (error === null || error === undefined) {
273
+ return 'Unknown error occurred';
274
+ }
275
+ // Handle string
276
+ if (typeof error === 'string') {
277
+ return error;
278
+ }
279
+ // Handle non-object types
280
+ if (typeof error !== 'object') {
281
+ return `Unknown error: ${String(error)}`;
282
+ }
283
+ // Handle validation error plain objects from pipeline
284
+ if ('field' in error && 'code' in error && 'message' in error) {
285
+ const validationError = error;
286
+ return formatValidationError(validationError, undefined, validationError.value);
287
+ }
288
+ // Handle LLMError
289
+ if (error instanceof Error && 'code' in error && typeof error.code === 'string' && error.code in LLMErrorCodes) {
290
+ return formatLLMError(error, context);
291
+ }
292
+ // Handle SchemaValidationError
293
+ if (error instanceof Error && 'errors' in error && Array.isArray(error.errors)) {
294
+ const schemaError = error;
295
+ return `Schema validation failed:\n\n${formatValidationErrors(schemaError.errors)}`;
296
+ }
297
+ // Handle FormattedError
298
+ if ('title' in error && 'message' in error) {
299
+ return formatFormattedError(error);
300
+ }
301
+ // Handle common Node.js errors
302
+ if (error instanceof Error && 'code' in error) {
303
+ const nodeError = error;
304
+ if (nodeError.code === 'ENOENT') {
305
+ const path = nodeError.path || 'file';
306
+ return `āŒ File Not Found\n Cannot find: ${path}\n\nšŸ’” Tip:\n • Check the file path is correct\n • Verify the file exists\n • Use absolute path or check current directory`;
307
+ }
308
+ else if (nodeError.code === 'EACCES' || nodeError.code === 'EPERM') {
309
+ return `āŒ Permission Denied\n ${error.message}\n\nšŸ’” Tip:\n • Check file permissions\n • Make sure you have read access\n • Try running with appropriate permissions`;
310
+ }
311
+ }
312
+ // Handle generic Error
313
+ if (error instanceof Error) {
314
+ return error.message;
315
+ }
316
+ // Fallback
317
+ return `Unknown error: ${JSON.stringify(error)}`;
318
+ }
319
+ //# sourceMappingURL=error-formatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-formatter.js","sourceRoot":"","sources":["../../src/core/error-formatter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/core/pipeline.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAc,MAAM,YAAY,CAAC;AAEhF;;GAEG;AACH,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,KAAK,CAAU;gBAEX,KAAK,GAAE,OAAe;IAIlC;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,cAAc,CAAC;IAoLlE;;OAEG;IACH,OAAO,CAAC,UAAU;IAsBlB;;OAEG;YACW,eAAe;CAqBhC;AAED;;GAEG;AACH,wBAAsB,OAAO,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,cAAc,CAAC,CAGjF"}
1
+ {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/core/pipeline.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAc,MAAM,YAAY,CAAC;AAEhF;;GAEG;AACH,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,KAAK,CAAU;gBAEX,KAAK,GAAE,OAAe;IAIlC;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,cAAc,CAAC;IAqLlE;;OAEG;IACH,OAAO,CAAC,UAAU;IAsBlB;;OAEG;YACW,eAAe;CAqBhC;AAED;;GAEG;AACH,wBAAsB,OAAO,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,cAAc,CAAC,CAGjF"}
@@ -136,6 +136,7 @@ export class ExtractionPipeline {
136
136
  {
137
137
  message: error.message,
138
138
  code: error.code,
139
+ details: error.details, // Include original error details
139
140
  },
140
141
  ],
141
142
  steps: this.debug ? steps : undefined,
@@ -184,7 +185,7 @@ export class ExtractionPipeline {
184
185
  return {
185
186
  step: name,
186
187
  success: false,
187
- error: error.message,
188
+ error, // Preserve full error object for formatting
188
189
  duration,
189
190
  };
190
191
  }
@@ -209,7 +210,7 @@ export class ExtractionPipeline {
209
210
  return {
210
211
  step: name,
211
212
  success: false,
212
- error: error.message,
213
+ error, // Preserve full error object for formatting
213
214
  duration,
214
215
  };
215
216
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/core/pipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/core/pipeline.ts"],"names":[],"mappings":"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"}
@@ -50,7 +50,7 @@ export interface StepResult {
50
50
  step: string;
51
51
  success: boolean;
52
52
  data?: unknown;
53
- error?: string;
53
+ error?: unknown;
54
54
  duration?: number;
55
55
  }
56
56
  /**
@@ -66,6 +66,7 @@ export interface PipelineResult {
66
66
  field?: string;
67
67
  message: string;
68
68
  code: string;
69
+ details?: Record<string, unknown>;
69
70
  }>;
70
71
  steps?: StepResult[];
71
72
  metadata: {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B,6CAA6C;IAC7C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,0FAA0F;IAC1F,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,+EAA+E;IAC/E,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC,mEAAmE;IACnE,SAAS,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAAC;CAC1C;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,CAAC;IACrB,2CAA2C;IAC3C,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE,KAAK,CAAC;QACV,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,QAAQ,EAAE;QACN,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACL"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B,6CAA6C;IAC7C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,0FAA0F;IAC1F,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,+EAA+E;IAC/E,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC,mEAAmE;IACnE,SAAS,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAAC;CAC1C;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,CAAC;IACrB,2CAA2C;IAC3C,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE,KAAK,CAAC;QACV,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACrC,CAAC,CAAC;IACH,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,QAAQ,EAAE;QACN,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACL"}