@ordis-dev/ordis 0.1.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 (123) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +192 -0
  3. package/dist/__tests__/api.test.d.ts +5 -0
  4. package/dist/__tests__/api.test.d.ts.map +1 -0
  5. package/dist/__tests__/api.test.js +95 -0
  6. package/dist/__tests__/api.test.js.map +1 -0
  7. package/dist/__tests__/cli.test.d.ts +6 -0
  8. package/dist/__tests__/cli.test.d.ts.map +1 -0
  9. package/dist/__tests__/cli.test.js +103 -0
  10. package/dist/__tests__/cli.test.js.map +1 -0
  11. package/dist/cli/__tests__/cli.test.d.ts +5 -0
  12. package/dist/cli/__tests__/cli.test.d.ts.map +1 -0
  13. package/dist/cli/__tests__/cli.test.js +13 -0
  14. package/dist/cli/__tests__/cli.test.js.map +1 -0
  15. package/dist/cli.d.ts +7 -0
  16. package/dist/cli.d.ts.map +1 -0
  17. package/dist/cli.js +225 -0
  18. package/dist/cli.js.map +1 -0
  19. package/dist/core/__tests__/pipeline.test.d.ts +5 -0
  20. package/dist/core/__tests__/pipeline.test.d.ts.map +1 -0
  21. package/dist/core/__tests__/pipeline.test.js +334 -0
  22. package/dist/core/__tests__/pipeline.test.js.map +1 -0
  23. package/dist/core/__tests__/validator.test.d.ts +5 -0
  24. package/dist/core/__tests__/validator.test.d.ts.map +1 -0
  25. package/dist/core/__tests__/validator.test.js +124 -0
  26. package/dist/core/__tests__/validator.test.js.map +1 -0
  27. package/dist/core/errors.d.ts +27 -0
  28. package/dist/core/errors.d.ts.map +1 -0
  29. package/dist/core/errors.js +35 -0
  30. package/dist/core/errors.js.map +1 -0
  31. package/dist/core/index.d.ts +8 -0
  32. package/dist/core/index.d.ts.map +1 -0
  33. package/dist/core/index.js +7 -0
  34. package/dist/core/index.js.map +1 -0
  35. package/dist/core/pipeline.d.ts +28 -0
  36. package/dist/core/pipeline.d.ts.map +1 -0
  37. package/dist/core/pipeline.js +212 -0
  38. package/dist/core/pipeline.js.map +1 -0
  39. package/dist/core/types.d.ts +55 -0
  40. package/dist/core/types.d.ts.map +1 -0
  41. package/dist/core/types.js +5 -0
  42. package/dist/core/types.js.map +1 -0
  43. package/dist/core/validator.d.ts +19 -0
  44. package/dist/core/validator.d.ts.map +1 -0
  45. package/dist/core/validator.js +147 -0
  46. package/dist/core/validator.js.map +1 -0
  47. package/dist/index.d.ts +19 -0
  48. package/dist/index.d.ts.map +1 -0
  49. package/dist/index.js +18 -0
  50. package/dist/index.js.map +1 -0
  51. package/dist/llm/__tests__/client.test.d.ts +5 -0
  52. package/dist/llm/__tests__/client.test.d.ts.map +1 -0
  53. package/dist/llm/__tests__/client.test.js +350 -0
  54. package/dist/llm/__tests__/client.test.js.map +1 -0
  55. package/dist/llm/__tests__/prompt-builder.test.d.ts +5 -0
  56. package/dist/llm/__tests__/prompt-builder.test.d.ts.map +1 -0
  57. package/dist/llm/__tests__/prompt-builder.test.js +171 -0
  58. package/dist/llm/__tests__/prompt-builder.test.js.map +1 -0
  59. package/dist/llm/__tests__/retry.test.d.ts +5 -0
  60. package/dist/llm/__tests__/retry.test.d.ts.map +1 -0
  61. package/dist/llm/__tests__/retry.test.js +350 -0
  62. package/dist/llm/__tests__/retry.test.js.map +1 -0
  63. package/dist/llm/__tests__/token-counter.test.d.ts +5 -0
  64. package/dist/llm/__tests__/token-counter.test.d.ts.map +1 -0
  65. package/dist/llm/__tests__/token-counter.test.js +166 -0
  66. package/dist/llm/__tests__/token-counter.test.js.map +1 -0
  67. package/dist/llm/client.d.ts +56 -0
  68. package/dist/llm/client.d.ts.map +1 -0
  69. package/dist/llm/client.js +266 -0
  70. package/dist/llm/client.js.map +1 -0
  71. package/dist/llm/errors.d.ts +27 -0
  72. package/dist/llm/errors.d.ts.map +1 -0
  73. package/dist/llm/errors.js +35 -0
  74. package/dist/llm/errors.js.map +1 -0
  75. package/dist/llm/index.d.ts +10 -0
  76. package/dist/llm/index.d.ts.map +1 -0
  77. package/dist/llm/index.js +8 -0
  78. package/dist/llm/index.js.map +1 -0
  79. package/dist/llm/prompt-builder.d.ts +13 -0
  80. package/dist/llm/prompt-builder.d.ts.map +1 -0
  81. package/dist/llm/prompt-builder.js +107 -0
  82. package/dist/llm/prompt-builder.js.map +1 -0
  83. package/dist/llm/token-counter.d.ts +82 -0
  84. package/dist/llm/token-counter.d.ts.map +1 -0
  85. package/dist/llm/token-counter.js +109 -0
  86. package/dist/llm/token-counter.js.map +1 -0
  87. package/dist/llm/types.d.ts +96 -0
  88. package/dist/llm/types.d.ts.map +1 -0
  89. package/dist/llm/types.js +5 -0
  90. package/dist/llm/types.js.map +1 -0
  91. package/dist/schemas/__tests__/integration.test.d.ts +5 -0
  92. package/dist/schemas/__tests__/integration.test.d.ts.map +1 -0
  93. package/dist/schemas/__tests__/integration.test.js +366 -0
  94. package/dist/schemas/__tests__/integration.test.js.map +1 -0
  95. package/dist/schemas/__tests__/loader.test.d.ts +5 -0
  96. package/dist/schemas/__tests__/loader.test.d.ts.map +1 -0
  97. package/dist/schemas/__tests__/loader.test.js +271 -0
  98. package/dist/schemas/__tests__/loader.test.js.map +1 -0
  99. package/dist/schemas/__tests__/validator.test.d.ts +5 -0
  100. package/dist/schemas/__tests__/validator.test.d.ts.map +1 -0
  101. package/dist/schemas/__tests__/validator.test.js +592 -0
  102. package/dist/schemas/__tests__/validator.test.js.map +1 -0
  103. package/dist/schemas/errors.d.ts +38 -0
  104. package/dist/schemas/errors.d.ts.map +1 -0
  105. package/dist/schemas/errors.js +49 -0
  106. package/dist/schemas/errors.js.map +1 -0
  107. package/dist/schemas/index.d.ts +8 -0
  108. package/dist/schemas/index.d.ts.map +1 -0
  109. package/dist/schemas/index.js +7 -0
  110. package/dist/schemas/index.js.map +1 -0
  111. package/dist/schemas/loader.d.ts +29 -0
  112. package/dist/schemas/loader.d.ts.map +1 -0
  113. package/dist/schemas/loader.js +71 -0
  114. package/dist/schemas/loader.js.map +1 -0
  115. package/dist/schemas/types.d.ts +75 -0
  116. package/dist/schemas/types.d.ts.map +1 -0
  117. package/dist/schemas/types.js +7 -0
  118. package/dist/schemas/types.js.map +1 -0
  119. package/dist/schemas/validator.d.ts +12 -0
  120. package/dist/schemas/validator.d.ts.map +1 -0
  121. package/dist/schemas/validator.js +211 -0
  122. package/dist/schemas/validator.js.map +1 -0
  123. package/package.json +60 -0
@@ -0,0 +1,124 @@
1
+ /**
2
+ * Tests for output validator
3
+ */
4
+ import { describe, it, expect } from 'vitest';
5
+ import { validateExtractedData } from '../validator.js';
6
+ describe('Output Validator', () => {
7
+ describe('validateExtractedData', () => {
8
+ it('should validate correct data', () => {
9
+ const schema = {
10
+ fields: {
11
+ name: { type: 'string' },
12
+ age: { type: 'number' },
13
+ },
14
+ };
15
+ const data = {
16
+ name: 'John',
17
+ age: 30,
18
+ };
19
+ const result = validateExtractedData(data, schema);
20
+ expect(result.valid).toBe(true);
21
+ expect(result.errors).toHaveLength(0);
22
+ });
23
+ it('should detect missing required field', () => {
24
+ const schema = {
25
+ fields: {
26
+ name: { type: 'string' },
27
+ age: { type: 'number' },
28
+ },
29
+ };
30
+ const data = {
31
+ name: 'John',
32
+ };
33
+ const result = validateExtractedData(data, schema);
34
+ expect(result.valid).toBe(false);
35
+ expect(result.errors).toHaveLength(1);
36
+ expect(result.errors[0].field).toBe('age');
37
+ expect(result.errors[0].code).toBe('FIELD_MISSING');
38
+ });
39
+ it('should allow missing optional field', () => {
40
+ const schema = {
41
+ fields: {
42
+ name: { type: 'string' },
43
+ nickname: { type: 'string', optional: true },
44
+ },
45
+ };
46
+ const data = {
47
+ name: 'John',
48
+ };
49
+ const result = validateExtractedData(data, schema);
50
+ expect(result.valid).toBe(true);
51
+ });
52
+ it('should detect type mismatch', () => {
53
+ const schema = {
54
+ fields: {
55
+ age: { type: 'number' },
56
+ },
57
+ };
58
+ const data = {
59
+ age: '30',
60
+ };
61
+ const result = validateExtractedData(data, schema);
62
+ expect(result.valid).toBe(false);
63
+ expect(result.errors[0].code).toBe('TYPE_MISMATCH');
64
+ });
65
+ it('should validate string pattern', () => {
66
+ const schema = {
67
+ fields: {
68
+ email: { type: 'string', pattern: '^[a-z]+@[a-z]+\\.[a-z]+$' },
69
+ },
70
+ };
71
+ const validData = { email: 'test@example.com' };
72
+ expect(validateExtractedData(validData, schema).valid).toBe(true);
73
+ const invalidData = { email: 'invalid-email' };
74
+ expect(validateExtractedData(invalidData, schema).valid).toBe(false);
75
+ });
76
+ it('should validate number constraints', () => {
77
+ const schema = {
78
+ fields: {
79
+ age: { type: 'number', min: 0, max: 120 },
80
+ },
81
+ };
82
+ expect(validateExtractedData({ age: 30 }, schema).valid).toBe(true);
83
+ expect(validateExtractedData({ age: -5 }, schema).valid).toBe(false);
84
+ expect(validateExtractedData({ age: 150 }, schema).valid).toBe(false);
85
+ });
86
+ it('should validate enum values', () => {
87
+ const schema = {
88
+ fields: {
89
+ status: { type: 'enum', enum: ['active', 'inactive'] },
90
+ },
91
+ };
92
+ expect(validateExtractedData({ status: 'active' }, schema).valid).toBe(true);
93
+ expect(validateExtractedData({ status: 'pending' }, schema).valid).toBe(false);
94
+ });
95
+ it('should validate date fields', () => {
96
+ const schema = {
97
+ fields: {
98
+ date: { type: 'date' },
99
+ },
100
+ };
101
+ expect(validateExtractedData({ date: '2025-01-01' }, schema).valid).toBe(true);
102
+ expect(validateExtractedData({ date: new Date() }, schema).valid).toBe(true);
103
+ expect(validateExtractedData({ date: 'invalid-date' }, schema).valid).toBe(false);
104
+ });
105
+ it('should collect multiple errors', () => {
106
+ const schema = {
107
+ fields: {
108
+ name: { type: 'string' },
109
+ age: { type: 'number', min: 0 },
110
+ status: { type: 'enum', enum: ['active', 'inactive'] },
111
+ },
112
+ };
113
+ const data = {
114
+ name: 123,
115
+ age: -5,
116
+ status: 'pending',
117
+ };
118
+ const result = validateExtractedData(data, schema);
119
+ expect(result.valid).toBe(false);
120
+ expect(result.errors).toHaveLength(3);
121
+ });
122
+ });
123
+ });
124
+ //# sourceMappingURL=validator.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.test.js","sourceRoot":"","sources":["../../../src/core/__tests__/validator.test.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAGxD,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAC9B,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACnC,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACpC,MAAM,MAAM,GAAW;gBACnB,MAAM,EAAE;oBACJ,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACxB,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;iBAC1B;aACJ,CAAC;YAEF,MAAM,IAAI,GAAG;gBACT,IAAI,EAAE,MAAM;gBACZ,GAAG,EAAE,EAAE;aACV,CAAC;YAEF,MAAM,MAAM,GAAG,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACnD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC5C,MAAM,MAAM,GAAW;gBACnB,MAAM,EAAE;oBACJ,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACxB,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;iBAC1B;aACJ,CAAC;YAEF,MAAM,IAAI,GAAG;gBACT,IAAI,EAAE,MAAM;aACf,CAAC;YAEF,MAAM,MAAM,GAAG,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACnD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACtC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC3C,MAAM,MAAM,GAAW;gBACnB,MAAM,EAAE;oBACJ,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACxB,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;iBAC/C;aACJ,CAAC;YAEF,MAAM,IAAI,GAAG;gBACT,IAAI,EAAE,MAAM;aACf,CAAC;YAEF,MAAM,MAAM,GAAG,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACnD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;YACnC,MAAM,MAAM,GAAW;gBACnB,MAAM,EAAE;oBACJ,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;iBAC1B;aACJ,CAAC;YAEF,MAAM,IAAI,GAAG;gBACT,GAAG,EAAE,IAAI;aACZ,CAAC;YAEF,MAAM,MAAM,GAAG,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACnD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACtC,MAAM,MAAM,GAAW;gBACnB,MAAM,EAAE;oBACJ,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,0BAA0B,EAAE;iBACjE;aACJ,CAAC;YAEF,MAAM,SAAS,GAAG,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC;YAChD,MAAM,CAAC,qBAAqB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAElE,MAAM,WAAW,GAAG,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;YAC/C,MAAM,CAAC,qBAAqB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC1C,MAAM,MAAM,GAAW;gBACnB,MAAM,EAAE;oBACJ,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE;iBAC5C;aACJ,CAAC;YAEF,MAAM,CAAC,qBAAqB,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpE,MAAM,CAAC,qBAAqB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrE,MAAM,CAAC,qBAAqB,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;YACnC,MAAM,MAAM,GAAW;gBACnB,MAAM,EAAE;oBACJ,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE;iBACzD;aACJ,CAAC;YAEF,MAAM,CAAC,qBAAqB,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7E,MAAM,CAAC,qBAAqB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;YACnC,MAAM,MAAM,GAAW;gBACnB,MAAM,EAAE;oBACJ,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;iBACzB;aACJ,CAAC;YAEF,MAAM,CAAC,qBAAqB,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/E,MAAM,CAAC,qBAAqB,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7E,MAAM,CAAC,qBAAqB,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACtC,MAAM,MAAM,GAAW;gBACnB,MAAM,EAAE;oBACJ,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACxB,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE;oBAC/B,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE;iBACzD;aACJ,CAAC;YAEF,MAAM,IAAI,GAAG;gBACT,IAAI,EAAE,GAAG;gBACT,GAAG,EAAE,CAAC,CAAC;gBACP,MAAM,EAAE,SAAS;aACpB,CAAC;YAEF,MAAM,MAAM,GAAG,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACnD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Pipeline error codes and classes
3
+ */
4
+ export declare const PipelineErrorCodes: {
5
+ readonly SCHEMA_LOAD_ERROR: "SCHEMA_LOAD_ERROR";
6
+ readonly LLM_ERROR: "LLM_ERROR";
7
+ readonly VALIDATION_ERROR: "VALIDATION_ERROR";
8
+ readonly CONFIDENCE_ERROR: "CONFIDENCE_ERROR";
9
+ readonly FIELD_MISSING: "FIELD_MISSING";
10
+ readonly FIELD_INVALID: "FIELD_INVALID";
11
+ readonly TYPE_MISMATCH: "TYPE_MISMATCH";
12
+ };
13
+ export type PipelineErrorCode = (typeof PipelineErrorCodes)[keyof typeof PipelineErrorCodes];
14
+ export declare class PipelineError extends Error {
15
+ code: PipelineErrorCode;
16
+ step?: string | undefined;
17
+ details?: Record<string, unknown> | undefined;
18
+ constructor(message: string, code: PipelineErrorCode, step?: string | undefined, details?: Record<string, unknown> | undefined);
19
+ toJSON(): {
20
+ name: string;
21
+ message: string;
22
+ code: PipelineErrorCode;
23
+ step: string | undefined;
24
+ details: Record<string, unknown> | undefined;
25
+ };
26
+ }
27
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;CAQrB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,OAAO,kBAAkB,CAAC,CAAC;AAE7F,qBAAa,aAAc,SAAQ,KAAK;IAGzB,IAAI,EAAE,iBAAiB;IACvB,IAAI,CAAC,EAAE,MAAM;IACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBAHxC,OAAO,EAAE,MAAM,EACR,IAAI,EAAE,iBAAiB,EACvB,IAAI,CAAC,EAAE,MAAM,YAAA,EACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAA;IAO5C,MAAM;;;;;;;CAST"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Pipeline error codes and classes
3
+ */
4
+ export const PipelineErrorCodes = {
5
+ SCHEMA_LOAD_ERROR: 'SCHEMA_LOAD_ERROR',
6
+ LLM_ERROR: 'LLM_ERROR',
7
+ VALIDATION_ERROR: 'VALIDATION_ERROR',
8
+ CONFIDENCE_ERROR: 'CONFIDENCE_ERROR',
9
+ FIELD_MISSING: 'FIELD_MISSING',
10
+ FIELD_INVALID: 'FIELD_INVALID',
11
+ TYPE_MISMATCH: 'TYPE_MISMATCH',
12
+ };
13
+ export class PipelineError extends Error {
14
+ code;
15
+ step;
16
+ details;
17
+ constructor(message, code, step, details) {
18
+ super(message);
19
+ this.code = code;
20
+ this.step = step;
21
+ this.details = details;
22
+ this.name = 'PipelineError';
23
+ Object.setPrototypeOf(this, PipelineError.prototype);
24
+ }
25
+ toJSON() {
26
+ return {
27
+ name: this.name,
28
+ message: this.message,
29
+ code: this.code,
30
+ step: this.step,
31
+ details: this.details,
32
+ };
33
+ }
34
+ }
35
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAC9B,iBAAiB,EAAE,mBAAmB;IACtC,SAAS,EAAE,WAAW;IACtB,gBAAgB,EAAE,kBAAkB;IACpC,gBAAgB,EAAE,kBAAkB;IACpC,aAAa,EAAE,eAAe;IAC9B,aAAa,EAAE,eAAe;IAC9B,aAAa,EAAE,eAAe;CACxB,CAAC;AAIX,MAAM,OAAO,aAAc,SAAQ,KAAK;IAGzB;IACA;IACA;IAJX,YACI,OAAe,EACR,IAAuB,EACvB,IAAa,EACb,OAAiC;QAExC,KAAK,CAAC,OAAO,CAAC,CAAC;QAJR,SAAI,GAAJ,IAAI,CAAmB;QACvB,SAAI,GAAJ,IAAI,CAAS;QACb,YAAO,GAAP,OAAO,CAA0B;QAGxC,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IACzD,CAAC;IAED,MAAM;QACF,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;SACxB,CAAC;IACN,CAAC;CACJ"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Core pipeline module exports
3
+ */
4
+ export { ExtractionPipeline, extract } from './pipeline.js';
5
+ export { validateExtractedData } from './validator.js';
6
+ export { PipelineError, PipelineErrorCodes } from './errors.js';
7
+ export type { PipelineConfig, ExtractionRequest, PipelineResult, StepResult, } from './types.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAChE,YAAY,EACR,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,UAAU,GACb,MAAM,YAAY,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Core pipeline module exports
3
+ */
4
+ export { ExtractionPipeline, extract } from './pipeline.js';
5
+ export { validateExtractedData } from './validator.js';
6
+ export { PipelineError, PipelineErrorCodes } from './errors.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Extraction pipeline engine
3
+ */
4
+ import type { ExtractionRequest, PipelineResult } from './types.js';
5
+ /**
6
+ * Main extraction pipeline
7
+ */
8
+ export declare class ExtractionPipeline {
9
+ private debug;
10
+ constructor(debug?: boolean);
11
+ /**
12
+ * Executes complete extraction pipeline
13
+ */
14
+ extract(request: ExtractionRequest): Promise<PipelineResult>;
15
+ /**
16
+ * Records a synchronous step
17
+ */
18
+ private recordStep;
19
+ /**
20
+ * Records an async step
21
+ */
22
+ private recordStepAsync;
23
+ }
24
+ /**
25
+ * Convenience function to run extraction
26
+ */
27
+ export declare function extract(request: ExtractionRequest): Promise<PipelineResult>;
28
+ //# sourceMappingURL=pipeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/core/pipeline.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,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;IAsKlE;;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"}
@@ -0,0 +1,212 @@
1
+ /**
2
+ * Extraction pipeline engine
3
+ */
4
+ import { LLMClient } from '../llm/client.js';
5
+ import { validateExtractedData } from './validator.js';
6
+ import { PipelineError, PipelineErrorCodes } from './errors.js';
7
+ /**
8
+ * Main extraction pipeline
9
+ */
10
+ export class ExtractionPipeline {
11
+ debug;
12
+ constructor(debug = false) {
13
+ this.debug = debug;
14
+ }
15
+ /**
16
+ * Executes complete extraction pipeline
17
+ */
18
+ async extract(request) {
19
+ const startTime = Date.now();
20
+ const steps = [];
21
+ try {
22
+ // Step 1: Create LLM client
23
+ const clientStep = this.recordStep('create_client', () => {
24
+ return new LLMClient(request.llmConfig);
25
+ });
26
+ steps.push(clientStep);
27
+ if (!clientStep.success) {
28
+ throw new PipelineError('Failed to create LLM client', PipelineErrorCodes.LLM_ERROR, 'create_client');
29
+ }
30
+ const client = clientStep.data;
31
+ // Step 2: Call LLM for extraction
32
+ const extractStep = await this.recordStepAsync('llm_extract', async () => {
33
+ return await client.extract({
34
+ schema: request.schema,
35
+ input: request.input,
36
+ });
37
+ });
38
+ steps.push(extractStep);
39
+ if (!extractStep.success || !extractStep.data) {
40
+ throw new PipelineError('LLM extraction failed', PipelineErrorCodes.LLM_ERROR, 'llm_extract', { error: extractStep.error });
41
+ }
42
+ const extraction = extractStep.data;
43
+ // Step 3: Validate extracted data
44
+ const validateStep = this.recordStep('validate_data', () => {
45
+ return validateExtractedData(extraction.data, request.schema);
46
+ });
47
+ steps.push(validateStep);
48
+ const validation = validateStep.data;
49
+ if (!validation.valid) {
50
+ const duration = Date.now() - startTime;
51
+ return {
52
+ success: false,
53
+ meetsThreshold: false,
54
+ errors: validation.errors,
55
+ steps: this.debug ? steps : undefined,
56
+ metadata: {
57
+ duration,
58
+ model: request.llmConfig.model,
59
+ schemaName: request.schema.metadata?.name,
60
+ },
61
+ };
62
+ }
63
+ // Step 4: Check confidence threshold
64
+ const confidenceStep = this.recordStep('check_confidence', () => {
65
+ if (!request.schema.confidence) {
66
+ return { meetsThreshold: true };
67
+ }
68
+ const { threshold, failOnLowConfidence } = request.schema.confidence;
69
+ const meetsThreshold = extraction.confidence >= threshold;
70
+ return {
71
+ meetsThreshold,
72
+ shouldFail: !meetsThreshold && failOnLowConfidence,
73
+ };
74
+ });
75
+ steps.push(confidenceStep);
76
+ const confidenceCheck = confidenceStep.data;
77
+ if (confidenceCheck.shouldFail) {
78
+ const duration = Date.now() - startTime;
79
+ return {
80
+ success: false,
81
+ data: extraction.data,
82
+ confidence: extraction.confidence,
83
+ confidenceByField: extraction.confidenceByField,
84
+ meetsThreshold: false,
85
+ errors: [
86
+ {
87
+ message: `Confidence ${extraction.confidence}% below threshold ${request.schema.confidence?.threshold}%`,
88
+ code: PipelineErrorCodes.CONFIDENCE_ERROR,
89
+ },
90
+ ],
91
+ steps: this.debug ? steps : undefined,
92
+ metadata: {
93
+ duration,
94
+ model: request.llmConfig.model,
95
+ schemaName: request.schema.metadata?.name,
96
+ },
97
+ };
98
+ }
99
+ // Success!
100
+ const duration = Date.now() - startTime;
101
+ return {
102
+ success: true,
103
+ data: extraction.data,
104
+ confidence: extraction.confidence,
105
+ confidenceByField: extraction.confidenceByField,
106
+ meetsThreshold: confidenceCheck.meetsThreshold,
107
+ errors: [],
108
+ steps: this.debug ? steps : undefined,
109
+ metadata: {
110
+ duration,
111
+ model: request.llmConfig.model,
112
+ schemaName: request.schema.metadata?.name,
113
+ },
114
+ };
115
+ }
116
+ catch (error) {
117
+ const duration = Date.now() - startTime;
118
+ if (error instanceof PipelineError) {
119
+ return {
120
+ success: false,
121
+ meetsThreshold: false,
122
+ errors: [
123
+ {
124
+ message: error.message,
125
+ code: error.code,
126
+ },
127
+ ],
128
+ steps: this.debug ? steps : undefined,
129
+ metadata: {
130
+ duration,
131
+ model: request.llmConfig.model,
132
+ schemaName: request.schema.metadata?.name,
133
+ },
134
+ };
135
+ }
136
+ return {
137
+ success: false,
138
+ meetsThreshold: false,
139
+ errors: [
140
+ {
141
+ message: error.message,
142
+ code: 'UNKNOWN_ERROR',
143
+ },
144
+ ],
145
+ steps: this.debug ? steps : undefined,
146
+ metadata: {
147
+ duration,
148
+ model: request.llmConfig.model,
149
+ schemaName: request.schema.metadata?.name,
150
+ },
151
+ };
152
+ }
153
+ }
154
+ /**
155
+ * Records a synchronous step
156
+ */
157
+ recordStep(name, fn) {
158
+ const startTime = Date.now();
159
+ try {
160
+ const result = fn();
161
+ const duration = Date.now() - startTime;
162
+ return {
163
+ step: name,
164
+ success: true,
165
+ data: result,
166
+ duration,
167
+ };
168
+ }
169
+ catch (error) {
170
+ const duration = Date.now() - startTime;
171
+ return {
172
+ step: name,
173
+ success: false,
174
+ error: error.message,
175
+ duration,
176
+ };
177
+ }
178
+ }
179
+ /**
180
+ * Records an async step
181
+ */
182
+ async recordStepAsync(name, fn) {
183
+ const startTime = Date.now();
184
+ try {
185
+ const result = await fn();
186
+ const duration = Date.now() - startTime;
187
+ return {
188
+ step: name,
189
+ success: true,
190
+ data: result,
191
+ duration,
192
+ };
193
+ }
194
+ catch (error) {
195
+ const duration = Date.now() - startTime;
196
+ return {
197
+ step: name,
198
+ success: false,
199
+ error: error.message,
200
+ duration,
201
+ };
202
+ }
203
+ }
204
+ }
205
+ /**
206
+ * Convenience function to run extraction
207
+ */
208
+ export async function extract(request) {
209
+ const pipeline = new ExtractionPipeline(request.debug);
210
+ return await pipeline.extract(request);
211
+ }
212
+ //# sourceMappingURL=pipeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/core/pipeline.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Core pipeline type definitions
3
+ */
4
+ import type { Schema } from '../schemas/types.js';
5
+ import type { LLMConfig } from '../llm/types.js';
6
+ /**
7
+ * Pipeline configuration
8
+ */
9
+ export interface PipelineConfig {
10
+ schema: Schema;
11
+ llmConfig: LLMConfig;
12
+ debug?: boolean;
13
+ validateOutput?: boolean;
14
+ }
15
+ /**
16
+ * Extraction request
17
+ */
18
+ export interface ExtractionRequest {
19
+ input: string;
20
+ schema: Schema;
21
+ llmConfig: LLMConfig;
22
+ debug?: boolean;
23
+ }
24
+ /**
25
+ * Pipeline step result
26
+ */
27
+ export interface StepResult {
28
+ step: string;
29
+ success: boolean;
30
+ data?: unknown;
31
+ error?: string;
32
+ duration?: number;
33
+ }
34
+ /**
35
+ * Complete extraction result
36
+ */
37
+ export interface PipelineResult {
38
+ success: boolean;
39
+ data?: Record<string, unknown>;
40
+ confidence?: number;
41
+ confidenceByField?: Record<string, number>;
42
+ meetsThreshold: boolean;
43
+ errors: Array<{
44
+ field?: string;
45
+ message: string;
46
+ code: string;
47
+ }>;
48
+ steps?: StepResult[];
49
+ metadata: {
50
+ duration: number;
51
+ model?: string;
52
+ schemaName?: string;
53
+ };
54
+ }
55
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +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,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,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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Core pipeline type definitions
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Output validator - validates extracted data against schema
3
+ */
4
+ import type { Schema } from '../schemas/types.js';
5
+ export interface ValidationError {
6
+ field: string;
7
+ message: string;
8
+ code: string;
9
+ value?: unknown;
10
+ }
11
+ export interface ValidationResult {
12
+ valid: boolean;
13
+ errors: ValidationError[];
14
+ }
15
+ /**
16
+ * Validates extracted data against schema
17
+ */
18
+ export declare function validateExtractedData(data: Record<string, unknown>, schema: Schema): ValidationResult;
19
+ //# sourceMappingURL=validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/core/validator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAmB,MAAM,qBAAqB,CAAC;AAGnE,MAAM,WAAW,eAAe;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC7B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,eAAe,EAAE,CAAC;CAC7B;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACjC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,EAAE,MAAM,GACf,gBAAgB,CA4BlB"}