@jterrazz/intelligence 2.0.0 → 3.0.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.
- package/README.md +56 -268
- package/dist/index.cjs +656 -2017
- package/dist/index.d.ts +5 -15
- package/dist/index.js +5 -33
- package/dist/index.js.map +1 -1
- package/dist/middleware/__tests__/logging.middleware.test.js +390 -0
- package/dist/middleware/__tests__/logging.middleware.test.js.map +1 -0
- package/dist/middleware/logging.middleware.d.ts +21 -0
- package/dist/middleware/logging.middleware.js +296 -0
- package/dist/middleware/logging.middleware.js.map +1 -0
- package/dist/parsing/__tests__/create-schema-prompt.test.js +53 -0
- package/dist/parsing/__tests__/create-schema-prompt.test.js.map +1 -0
- package/dist/parsing/__tests__/parse-object.test.d.ts +1 -0
- package/dist/parsing/__tests__/parse-object.test.js +193 -0
- package/dist/parsing/__tests__/parse-object.test.js.map +1 -0
- package/dist/parsing/__tests__/parse-text.test.d.ts +1 -0
- package/dist/parsing/__tests__/parse-text.test.js +159 -0
- package/dist/parsing/__tests__/parse-text.test.js.map +1 -0
- package/dist/parsing/create-schema-prompt.d.ts +28 -0
- package/dist/parsing/create-schema-prompt.js +42 -0
- package/dist/parsing/create-schema-prompt.js.map +1 -0
- package/dist/parsing/parse-object.d.ts +33 -0
- package/dist/parsing/parse-object.js +360 -0
- package/dist/parsing/parse-object.js.map +1 -0
- package/dist/parsing/parse-text.d.ts +14 -0
- package/dist/parsing/parse-text.js +80 -0
- package/dist/parsing/parse-text.js.map +1 -0
- package/dist/providers/openrouter.provider.d.ts +36 -0
- package/dist/providers/openrouter.provider.js +58 -0
- package/dist/providers/openrouter.provider.js.map +1 -0
- package/package.json +14 -15
- package/dist/adapters/agents/chat-agent.adapter.d.ts +0 -27
- package/dist/adapters/agents/chat-agent.adapter.js +0 -356
- package/dist/adapters/agents/chat-agent.adapter.js.map +0 -1
- package/dist/adapters/agents/resilient-agent.adapter.d.ts +0 -20
- package/dist/adapters/agents/resilient-agent.adapter.js +0 -263
- package/dist/adapters/agents/resilient-agent.adapter.js.map +0 -1
- package/dist/adapters/agents/tool-agent.adapter.d.ts +0 -30
- package/dist/adapters/agents/tool-agent.adapter.js +0 -400
- package/dist/adapters/agents/tool-agent.adapter.js.map +0 -1
- package/dist/adapters/models/openrouter-model.adapter.d.ts +0 -23
- package/dist/adapters/models/openrouter-model.adapter.js +0 -148
- package/dist/adapters/models/openrouter-model.adapter.js.map +0 -1
- package/dist/adapters/prompts/__tests__/__snapshots__/presets.test.ts.snap +0 -120
- package/dist/adapters/prompts/__tests__/presets.test.js +0 -31
- package/dist/adapters/prompts/__tests__/presets.test.js.map +0 -1
- package/dist/adapters/prompts/library/categories/domain.d.ts +0 -11
- package/dist/adapters/prompts/library/categories/domain.js +0 -12
- package/dist/adapters/prompts/library/categories/domain.js.map +0 -1
- package/dist/adapters/prompts/library/categories/format.d.ts +0 -10
- package/dist/adapters/prompts/library/categories/format.js +0 -11
- package/dist/adapters/prompts/library/categories/format.js.map +0 -1
- package/dist/adapters/prompts/library/categories/foundations.d.ts +0 -12
- package/dist/adapters/prompts/library/categories/foundations.js +0 -13
- package/dist/adapters/prompts/library/categories/foundations.js.map +0 -1
- package/dist/adapters/prompts/library/categories/language.d.ts +0 -11
- package/dist/adapters/prompts/library/categories/language.js +0 -12
- package/dist/adapters/prompts/library/categories/language.js.map +0 -1
- package/dist/adapters/prompts/library/categories/persona.d.ts +0 -13
- package/dist/adapters/prompts/library/categories/persona.js +0 -14
- package/dist/adapters/prompts/library/categories/persona.js.map +0 -1
- package/dist/adapters/prompts/library/categories/response.d.ts +0 -9
- package/dist/adapters/prompts/library/categories/response.js +0 -10
- package/dist/adapters/prompts/library/categories/response.js.map +0 -1
- package/dist/adapters/prompts/library/categories/tone.d.ts +0 -9
- package/dist/adapters/prompts/library/categories/tone.js +0 -10
- package/dist/adapters/prompts/library/categories/tone.js.map +0 -1
- package/dist/adapters/prompts/library/categories/verbosity.d.ts +0 -8
- package/dist/adapters/prompts/library/categories/verbosity.js +0 -9
- package/dist/adapters/prompts/library/categories/verbosity.js.map +0 -1
- package/dist/adapters/prompts/library/index.d.ts +0 -68
- package/dist/adapters/prompts/library/index.js +0 -26
- package/dist/adapters/prompts/library/index.js.map +0 -1
- package/dist/adapters/prompts/library/presets.d.ts +0 -17
- package/dist/adapters/prompts/library/presets.js +0 -45
- package/dist/adapters/prompts/library/presets.js.map +0 -1
- package/dist/adapters/prompts/system-prompt.adapter.d.ts +0 -9
- package/dist/adapters/prompts/system-prompt.adapter.js +0 -57
- package/dist/adapters/prompts/system-prompt.adapter.js.map +0 -1
- package/dist/adapters/prompts/user-prompt.adapter.d.ts +0 -9
- package/dist/adapters/prompts/user-prompt.adapter.js +0 -57
- package/dist/adapters/prompts/user-prompt.adapter.js.map +0 -1
- package/dist/adapters/providers/openrouter-provider.adapter.d.ts +0 -34
- package/dist/adapters/providers/openrouter-provider.adapter.js +0 -57
- package/dist/adapters/providers/openrouter-provider.adapter.js.map +0 -1
- package/dist/adapters/tools/safe-tool.adapter.d.ts +0 -27
- package/dist/adapters/tools/safe-tool.adapter.js +0 -283
- package/dist/adapters/tools/safe-tool.adapter.js.map +0 -1
- package/dist/adapters/utils/__tests__/structured-response-parser.test.js +0 -289
- package/dist/adapters/utils/__tests__/structured-response-parser.test.js.map +0 -1
- package/dist/adapters/utils/structured-response-parser-error.d.ts +0 -8
- package/dist/adapters/utils/structured-response-parser-error.js +0 -136
- package/dist/adapters/utils/structured-response-parser-error.js.map +0 -1
- package/dist/adapters/utils/structured-response-parser.d.ts +0 -60
- package/dist/adapters/utils/structured-response-parser.js +0 -347
- package/dist/adapters/utils/structured-response-parser.js.map +0 -1
- package/dist/ports/agent.port.d.ts +0 -17
- package/dist/ports/agent.port.js +0 -7
- package/dist/ports/agent.port.js.map +0 -1
- package/dist/ports/model.port.d.ts +0 -37
- package/dist/ports/model.port.js +0 -5
- package/dist/ports/model.port.js.map +0 -1
- package/dist/ports/prompt.port.d.ts +0 -9
- package/dist/ports/prompt.port.js +0 -5
- package/dist/ports/prompt.port.js.map +0 -1
- package/dist/ports/provider.port.d.ts +0 -13
- package/dist/ports/provider.port.js +0 -5
- package/dist/ports/provider.port.js.map +0 -1
- package/dist/ports/tool.port.d.ts +0 -11
- package/dist/ports/tool.port.js +0 -5
- package/dist/ports/tool.port.js.map +0 -1
- /package/dist/{adapters/prompts/__tests__/presets.test.d.ts → middleware/__tests__/logging.middleware.test.d.ts} +0 -0
- /package/dist/{adapters/utils/__tests__/structured-response-parser.test.d.ts → parsing/__tests__/create-schema-prompt.test.d.ts} +0 -0
|
@@ -1,347 +0,0 @@
|
|
|
1
|
-
function _array_like_to_array(arr, len) {
|
|
2
|
-
if (len == null || len > arr.length) len = arr.length;
|
|
3
|
-
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
4
|
-
return arr2;
|
|
5
|
-
}
|
|
6
|
-
function _array_with_holes(arr) {
|
|
7
|
-
if (Array.isArray(arr)) return arr;
|
|
8
|
-
}
|
|
9
|
-
function _class_call_check(instance, Constructor) {
|
|
10
|
-
if (!(instance instanceof Constructor)) {
|
|
11
|
-
throw new TypeError("Cannot call a class as a function");
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
function _defineProperties(target, props) {
|
|
15
|
-
for(var i = 0; i < props.length; i++){
|
|
16
|
-
var descriptor = props[i];
|
|
17
|
-
descriptor.enumerable = descriptor.enumerable || false;
|
|
18
|
-
descriptor.configurable = true;
|
|
19
|
-
if ("value" in descriptor) descriptor.writable = true;
|
|
20
|
-
Object.defineProperty(target, descriptor.key, descriptor);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
function _create_class(Constructor, protoProps, staticProps) {
|
|
24
|
-
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
25
|
-
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
26
|
-
return Constructor;
|
|
27
|
-
}
|
|
28
|
-
function _define_property(obj, key, value) {
|
|
29
|
-
if (key in obj) {
|
|
30
|
-
Object.defineProperty(obj, key, {
|
|
31
|
-
value: value,
|
|
32
|
-
enumerable: true,
|
|
33
|
-
configurable: true,
|
|
34
|
-
writable: true
|
|
35
|
-
});
|
|
36
|
-
} else {
|
|
37
|
-
obj[key] = value;
|
|
38
|
-
}
|
|
39
|
-
return obj;
|
|
40
|
-
}
|
|
41
|
-
function _instanceof(left, right) {
|
|
42
|
-
if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
|
|
43
|
-
return !!right[Symbol.hasInstance](left);
|
|
44
|
-
} else {
|
|
45
|
-
return left instanceof right;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
function _iterable_to_array_limit(arr, i) {
|
|
49
|
-
var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
|
|
50
|
-
if (_i == null) return;
|
|
51
|
-
var _arr = [];
|
|
52
|
-
var _n = true;
|
|
53
|
-
var _d = false;
|
|
54
|
-
var _s, _e;
|
|
55
|
-
try {
|
|
56
|
-
for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
|
|
57
|
-
_arr.push(_s.value);
|
|
58
|
-
if (i && _arr.length === i) break;
|
|
59
|
-
}
|
|
60
|
-
} catch (err) {
|
|
61
|
-
_d = true;
|
|
62
|
-
_e = err;
|
|
63
|
-
} finally{
|
|
64
|
-
try {
|
|
65
|
-
if (!_n && _i["return"] != null) _i["return"]();
|
|
66
|
-
} finally{
|
|
67
|
-
if (_d) throw _e;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
return _arr;
|
|
71
|
-
}
|
|
72
|
-
function _non_iterable_rest() {
|
|
73
|
-
throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
74
|
-
}
|
|
75
|
-
function _sliced_to_array(arr, i) {
|
|
76
|
-
return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
|
|
77
|
-
}
|
|
78
|
-
function _type_of(obj) {
|
|
79
|
-
"@swc/helpers - typeof";
|
|
80
|
-
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
81
|
-
}
|
|
82
|
-
function _unsupported_iterable_to_array(o, minLen) {
|
|
83
|
-
if (!o) return;
|
|
84
|
-
if (typeof o === "string") return _array_like_to_array(o, minLen);
|
|
85
|
-
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
86
|
-
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
87
|
-
if (n === "Map" || n === "Set") return Array.from(n);
|
|
88
|
-
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
89
|
-
}
|
|
90
|
-
import { jsonrepair } from 'jsonrepair';
|
|
91
|
-
import { z } from 'zod/v4';
|
|
92
|
-
import { StructuredResponseParserError } from './structured-response-parser-error.js';
|
|
93
|
-
/**
|
|
94
|
-
* Parses AI response text into structured data based on Zod schema
|
|
95
|
-
*/ export var StructuredResponseParser = /*#__PURE__*/ function() {
|
|
96
|
-
"use strict";
|
|
97
|
-
function StructuredResponseParser(schema) {
|
|
98
|
-
_class_call_check(this, StructuredResponseParser);
|
|
99
|
-
_define_property(this, "schema", void 0);
|
|
100
|
-
this.schema = schema;
|
|
101
|
-
}
|
|
102
|
-
_create_class(StructuredResponseParser, [
|
|
103
|
-
{
|
|
104
|
-
key: "parse",
|
|
105
|
-
value: /**
|
|
106
|
-
* Parses the AI response text based on the configured schema
|
|
107
|
-
*/ function parse(text) {
|
|
108
|
-
try {
|
|
109
|
-
var cleanedText = this.cleanText(text);
|
|
110
|
-
var json = this.extractJsonFromText(cleanedText);
|
|
111
|
-
var unescapedJson = this.unescapeJsonValues(json);
|
|
112
|
-
return this.schema.parse(unescapedJson);
|
|
113
|
-
} catch (error) {
|
|
114
|
-
if (_instanceof(error, z.ZodError)) {
|
|
115
|
-
throw new StructuredResponseParserError('Failed to validate response against schema', error, text);
|
|
116
|
-
}
|
|
117
|
-
throw error;
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
},
|
|
121
|
-
{
|
|
122
|
-
key: "cleanText",
|
|
123
|
-
value: /**
|
|
124
|
-
* Cleans text and finds the largest schema-compatible structure
|
|
125
|
-
*/ function cleanText(text) {
|
|
126
|
-
var _this = this;
|
|
127
|
-
// First try to extract from markdown code blocks
|
|
128
|
-
var codeBlocks = text.match(/```(?:json)?\r?\n([^`]*?)\r?\n```/g);
|
|
129
|
-
if (codeBlocks) {
|
|
130
|
-
// Try each code block and return the largest valid one
|
|
131
|
-
var validBlocks = codeBlocks.map(function(block) {
|
|
132
|
-
return _this.extractJsonFromCodeBlock(block);
|
|
133
|
-
}).filter(function(block) {
|
|
134
|
-
return block !== null;
|
|
135
|
-
});
|
|
136
|
-
if (validBlocks.length > 0) {
|
|
137
|
-
return this.findLargestString(validBlocks);
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
// If no valid code blocks, try to find JSON-like structures in the text
|
|
141
|
-
var jsonMatches = this.findJsonStructures(text);
|
|
142
|
-
if (jsonMatches.length > 0) {
|
|
143
|
-
return this.findLargestString(jsonMatches);
|
|
144
|
-
}
|
|
145
|
-
// If no JSON structures found, clean and return the original text
|
|
146
|
-
return text.replace(/\s+/g, ' ').trim();
|
|
147
|
-
}
|
|
148
|
-
},
|
|
149
|
-
{
|
|
150
|
-
key: "convertToPrimitive",
|
|
151
|
-
value: /**
|
|
152
|
-
* Converts value to appropriate primitive type based on schema
|
|
153
|
-
*/ function convertToPrimitive(value, schema) {
|
|
154
|
-
if (_instanceof(schema, z.ZodString)) {
|
|
155
|
-
return String(value);
|
|
156
|
-
}
|
|
157
|
-
if (_instanceof(schema, z.ZodNumber)) {
|
|
158
|
-
return Number(value);
|
|
159
|
-
}
|
|
160
|
-
if (_instanceof(schema, z.ZodBoolean)) {
|
|
161
|
-
return Boolean(value);
|
|
162
|
-
}
|
|
163
|
-
if (_instanceof(schema, z.ZodNull)) {
|
|
164
|
-
return null;
|
|
165
|
-
}
|
|
166
|
-
return value;
|
|
167
|
-
}
|
|
168
|
-
},
|
|
169
|
-
{
|
|
170
|
-
key: "extractArray",
|
|
171
|
-
value: /**
|
|
172
|
-
* Extracts array from text
|
|
173
|
-
*/ function extractArray(text) {
|
|
174
|
-
var arrayStart = text.indexOf('[');
|
|
175
|
-
var arrayEnd = text.lastIndexOf(']');
|
|
176
|
-
if (arrayStart === -1 || arrayEnd === -1) {
|
|
177
|
-
throw new StructuredResponseParserError('No array found in response', undefined, text);
|
|
178
|
-
}
|
|
179
|
-
try {
|
|
180
|
-
var raw = text.slice(arrayStart, arrayEnd + 1);
|
|
181
|
-
var repaired = this.repairJson(raw);
|
|
182
|
-
return JSON.parse(repaired);
|
|
183
|
-
} catch (error) {
|
|
184
|
-
throw new StructuredResponseParserError('Failed to parse array JSON', error, text);
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
},
|
|
188
|
-
{
|
|
189
|
-
key: "extractJsonFromCodeBlock",
|
|
190
|
-
value: /**
|
|
191
|
-
* Extracts and validates JSON content from a code block
|
|
192
|
-
*/ function extractJsonFromCodeBlock(block) {
|
|
193
|
-
var content = block.replace(/```(?:json)?\r?\n([^`]*?)\r?\n```/, '$1').trim();
|
|
194
|
-
try {
|
|
195
|
-
// Attempt to parse as JSON to validate structure
|
|
196
|
-
JSON.parse(content);
|
|
197
|
-
return content;
|
|
198
|
-
} catch (e) {
|
|
199
|
-
return null;
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
},
|
|
203
|
-
{
|
|
204
|
-
key: "extractJsonFromText",
|
|
205
|
-
value: /**
|
|
206
|
-
* Extracts and parses JSON from text based on schema type
|
|
207
|
-
*/ function extractJsonFromText(text) {
|
|
208
|
-
if (_instanceof(this.schema, z.ZodArray)) {
|
|
209
|
-
return this.extractArray(text);
|
|
210
|
-
}
|
|
211
|
-
if (_instanceof(this.schema, z.ZodObject)) {
|
|
212
|
-
return this.extractObject(text);
|
|
213
|
-
}
|
|
214
|
-
if (_instanceof(this.schema, z.ZodString) || _instanceof(this.schema, z.ZodNumber) || _instanceof(this.schema, z.ZodBoolean) || _instanceof(this.schema, z.ZodNull)) {
|
|
215
|
-
return this.extractPrimitive(text, this.schema);
|
|
216
|
-
}
|
|
217
|
-
throw new StructuredResponseParserError('Unsupported schema type', undefined, text);
|
|
218
|
-
}
|
|
219
|
-
},
|
|
220
|
-
{
|
|
221
|
-
key: "extractObject",
|
|
222
|
-
value: /**
|
|
223
|
-
* Extracts object from text
|
|
224
|
-
*/ function extractObject(text) {
|
|
225
|
-
var objectStart = text.indexOf('{');
|
|
226
|
-
var objectEnd = text.lastIndexOf('}');
|
|
227
|
-
if (objectStart === -1 || objectEnd === -1) {
|
|
228
|
-
throw new StructuredResponseParserError('No object found in response', undefined, text);
|
|
229
|
-
}
|
|
230
|
-
try {
|
|
231
|
-
var raw = text.slice(objectStart, objectEnd + 1);
|
|
232
|
-
var repaired = this.repairJson(raw);
|
|
233
|
-
return JSON.parse(repaired);
|
|
234
|
-
} catch (error) {
|
|
235
|
-
throw new StructuredResponseParserError('Failed to parse object JSON', error, text);
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
},
|
|
239
|
-
{
|
|
240
|
-
key: "extractPrimitive",
|
|
241
|
-
value: /**
|
|
242
|
-
* Extracts and converts primitive value from text
|
|
243
|
-
*/ function extractPrimitive(text, schema) {
|
|
244
|
-
var trimmed = text.trim();
|
|
245
|
-
// Try to parse as JSON first in case it's quoted
|
|
246
|
-
try {
|
|
247
|
-
var parsed = JSON.parse(trimmed);
|
|
248
|
-
return this.convertToPrimitive(parsed, schema);
|
|
249
|
-
} catch (e) {
|
|
250
|
-
// If not valid JSON, use the raw string
|
|
251
|
-
return this.convertToPrimitive(trimmed, schema);
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
},
|
|
255
|
-
{
|
|
256
|
-
key: "findJsonStructures",
|
|
257
|
-
value: /**
|
|
258
|
-
* Finds valid JSON structures in raw text
|
|
259
|
-
*/ function findJsonStructures(text) {
|
|
260
|
-
var jsonMatches = [];
|
|
261
|
-
var depth = 0;
|
|
262
|
-
var start = -1;
|
|
263
|
-
for(var i = 0; i < text.length; i++){
|
|
264
|
-
var char = text[i];
|
|
265
|
-
if (char === '{' || char === '[') {
|
|
266
|
-
if (depth === 0) start = i;
|
|
267
|
-
depth++;
|
|
268
|
-
} else if (char === '}' || char === ']') {
|
|
269
|
-
depth--;
|
|
270
|
-
if (depth === 0 && start !== -1) {
|
|
271
|
-
var potentialJson = text.slice(start, i + 1);
|
|
272
|
-
try {
|
|
273
|
-
JSON.parse(potentialJson);
|
|
274
|
-
jsonMatches.push(potentialJson);
|
|
275
|
-
} catch (e) {
|
|
276
|
-
// Invalid JSON, ignore
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
return jsonMatches;
|
|
282
|
-
}
|
|
283
|
-
},
|
|
284
|
-
{
|
|
285
|
-
key: "findLargestString",
|
|
286
|
-
value: /**
|
|
287
|
-
* Returns the largest string from an array of strings
|
|
288
|
-
*/ function findLargestString(strings) {
|
|
289
|
-
return strings.reduce(function(largest, current) {
|
|
290
|
-
return current.length > largest.length ? current : largest;
|
|
291
|
-
}, strings[0]);
|
|
292
|
-
}
|
|
293
|
-
},
|
|
294
|
-
{
|
|
295
|
-
key: "repairJson",
|
|
296
|
-
value: /**
|
|
297
|
-
* Repairs common JSON issues using jsonrepair library
|
|
298
|
-
*/ function repairJson(jsonString) {
|
|
299
|
-
return jsonrepair(jsonString);
|
|
300
|
-
}
|
|
301
|
-
},
|
|
302
|
-
{
|
|
303
|
-
key: "unescapeJsonValues",
|
|
304
|
-
value: /**
|
|
305
|
-
* Recursively unescapes all string values in a JSON object/array
|
|
306
|
-
*/ function unescapeJsonValues(json) {
|
|
307
|
-
var _this = this;
|
|
308
|
-
if (typeof json === 'string') {
|
|
309
|
-
return this.unescapeText(json);
|
|
310
|
-
}
|
|
311
|
-
if (Array.isArray(json)) {
|
|
312
|
-
return json.map(function(item) {
|
|
313
|
-
return _this.unescapeJsonValues(item);
|
|
314
|
-
});
|
|
315
|
-
}
|
|
316
|
-
if ((typeof json === "undefined" ? "undefined" : _type_of(json)) === 'object' && json !== null) {
|
|
317
|
-
return Object.fromEntries(Object.entries(json).map(function(param) {
|
|
318
|
-
var _param = _sliced_to_array(param, 2), key = _param[0], value = _param[1];
|
|
319
|
-
return [
|
|
320
|
-
key,
|
|
321
|
-
_this.unescapeJsonValues(value)
|
|
322
|
-
];
|
|
323
|
-
}));
|
|
324
|
-
}
|
|
325
|
-
return json;
|
|
326
|
-
}
|
|
327
|
-
},
|
|
328
|
-
{
|
|
329
|
-
key: "unescapeText",
|
|
330
|
-
value: /**
|
|
331
|
-
* Unescapes common escaped characters in text
|
|
332
|
-
*/ function unescapeText(text) {
|
|
333
|
-
return text.replace(/\\"/g, '"') // Unescape quotes
|
|
334
|
-
.replace(/\\n/g, '\n') // Unescape newlines
|
|
335
|
-
.replace(/\\r/g, '\r') // Unescape carriage returns
|
|
336
|
-
.replace(/\\t/g, '\t') // Unescape tabs
|
|
337
|
-
.replace(/\\\\/g, '\\') // Unescape backslashes
|
|
338
|
-
.replace(/\\u([0-9a-fA-F]{4})/g, function(_, code) {
|
|
339
|
-
return String.fromCharCode(parseInt(code, 16));
|
|
340
|
-
}); // Unescape unicode
|
|
341
|
-
}
|
|
342
|
-
}
|
|
343
|
-
]);
|
|
344
|
-
return StructuredResponseParser;
|
|
345
|
-
}();
|
|
346
|
-
|
|
347
|
-
//# sourceMappingURL=structured-response-parser.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/adapters/utils/structured-response-parser.ts"],"sourcesContent":["import { jsonrepair } from 'jsonrepair';\nimport { z } from 'zod/v4';\n\nimport { StructuredResponseParserError } from './structured-response-parser-error.js';\n\n/**\n * Parses AI response text into structured data based on Zod schema\n */\nexport class StructuredResponseParser<T> {\n constructor(private readonly schema: z.ZodSchema<T>) {}\n\n /**\n * Parses the AI response text based on the configured schema\n */\n public parse(text: string): T {\n try {\n const cleanedText = this.cleanText(text);\n const json = this.extractJsonFromText(cleanedText);\n const unescapedJson = this.unescapeJsonValues(json);\n return this.schema.parse(unescapedJson);\n } catch (error) {\n if (error instanceof z.ZodError) {\n throw new StructuredResponseParserError(\n 'Failed to validate response against schema',\n error,\n text,\n );\n }\n throw error;\n }\n }\n\n /**\n * Cleans text and finds the largest schema-compatible structure\n */\n private cleanText(text: string): string {\n // First try to extract from markdown code blocks\n const codeBlocks = text.match(/```(?:json)?\\r?\\n([^`]*?)\\r?\\n```/g);\n if (codeBlocks) {\n // Try each code block and return the largest valid one\n const validBlocks = codeBlocks\n .map((block) => this.extractJsonFromCodeBlock(block))\n .filter((block): block is string => block !== null);\n\n if (validBlocks.length > 0) {\n return this.findLargestString(validBlocks);\n }\n }\n\n // If no valid code blocks, try to find JSON-like structures in the text\n const jsonMatches = this.findJsonStructures(text);\n if (jsonMatches.length > 0) {\n return this.findLargestString(jsonMatches);\n }\n\n // If no JSON structures found, clean and return the original text\n return text.replace(/\\s+/g, ' ').trim();\n }\n\n /**\n * Converts value to appropriate primitive type based on schema\n */\n private convertToPrimitive(value: unknown, schema: z.ZodType): unknown {\n if (schema instanceof z.ZodString) {\n return String(value);\n }\n if (schema instanceof z.ZodNumber) {\n return Number(value);\n }\n if (schema instanceof z.ZodBoolean) {\n return Boolean(value);\n }\n if (schema instanceof z.ZodNull) {\n return null;\n }\n return value;\n }\n\n /**\n * Extracts array from text\n */\n private extractArray(text: string): unknown {\n const arrayStart = text.indexOf('[');\n const arrayEnd = text.lastIndexOf(']');\n if (arrayStart === -1 || arrayEnd === -1) {\n throw new StructuredResponseParserError('No array found in response', undefined, text);\n }\n try {\n const raw = text.slice(arrayStart, arrayEnd + 1);\n const repaired = this.repairJson(raw);\n return JSON.parse(repaired);\n } catch (error) {\n throw new StructuredResponseParserError('Failed to parse array JSON', error, text);\n }\n }\n\n /**\n * Extracts and validates JSON content from a code block\n */\n private extractJsonFromCodeBlock(block: string): null | string {\n const content = block.replace(/```(?:json)?\\r?\\n([^`]*?)\\r?\\n```/, '$1').trim();\n try {\n // Attempt to parse as JSON to validate structure\n JSON.parse(content);\n return content;\n } catch {\n return null;\n }\n }\n\n /**\n * Extracts and parses JSON from text based on schema type\n */\n private extractJsonFromText(text: string): unknown {\n if (this.schema instanceof z.ZodArray) {\n return this.extractArray(text);\n }\n\n if (this.schema instanceof z.ZodObject) {\n return this.extractObject(text);\n }\n\n if (\n this.schema instanceof z.ZodString ||\n this.schema instanceof z.ZodNumber ||\n this.schema instanceof z.ZodBoolean ||\n this.schema instanceof z.ZodNull\n ) {\n return this.extractPrimitive(text, this.schema);\n }\n\n throw new StructuredResponseParserError('Unsupported schema type', undefined, text);\n }\n\n /**\n * Extracts object from text\n */\n private extractObject(text: string): unknown {\n const objectStart = text.indexOf('{');\n const objectEnd = text.lastIndexOf('}');\n if (objectStart === -1 || objectEnd === -1) {\n throw new StructuredResponseParserError('No object found in response', undefined, text);\n }\n try {\n const raw = text.slice(objectStart, objectEnd + 1);\n const repaired = this.repairJson(raw);\n return JSON.parse(repaired);\n } catch (error) {\n throw new StructuredResponseParserError('Failed to parse object JSON', error, text);\n }\n }\n\n /**\n * Extracts and converts primitive value from text\n */\n private extractPrimitive(text: string, schema: z.ZodType): unknown {\n const trimmed = text.trim();\n\n // Try to parse as JSON first in case it's quoted\n try {\n const parsed = JSON.parse(trimmed);\n return this.convertToPrimitive(parsed, schema);\n } catch {\n // If not valid JSON, use the raw string\n return this.convertToPrimitive(trimmed, schema);\n }\n }\n\n /**\n * Finds valid JSON structures in raw text\n */\n private findJsonStructures(text: string): string[] {\n const jsonMatches: string[] = [];\n let depth = 0;\n let start = -1;\n\n for (let i = 0; i < text.length; i++) {\n const char = text[i];\n if (char === '{' || char === '[') {\n if (depth === 0) start = i;\n depth++;\n } else if (char === '}' || char === ']') {\n depth--;\n if (depth === 0 && start !== -1) {\n const potentialJson = text.slice(start, i + 1);\n try {\n JSON.parse(potentialJson);\n jsonMatches.push(potentialJson);\n } catch {\n // Invalid JSON, ignore\n }\n }\n }\n }\n\n return jsonMatches;\n }\n\n /**\n * Returns the largest string from an array of strings\n */\n private findLargestString(strings: string[]): string {\n return strings.reduce(\n (largest, current) => (current.length > largest.length ? current : largest),\n strings[0],\n );\n }\n\n /**\n * Repairs common JSON issues using jsonrepair library\n */\n private repairJson(jsonString: string): string {\n return jsonrepair(jsonString);\n }\n\n /**\n * Recursively unescapes all string values in a JSON object/array\n */\n private unescapeJsonValues(json: unknown): unknown {\n if (typeof json === 'string') {\n return this.unescapeText(json);\n }\n if (Array.isArray(json)) {\n return json.map((item) => this.unescapeJsonValues(item));\n }\n if (typeof json === 'object' && json !== null) {\n return Object.fromEntries(\n Object.entries(json).map(([key, value]) => [key, this.unescapeJsonValues(value)]),\n );\n }\n return json;\n }\n\n /**\n * Unescapes common escaped characters in text\n */\n private unescapeText(text: string): string {\n return text\n .replace(/\\\\\"/g, '\"') // Unescape quotes\n .replace(/\\\\n/g, '\\n') // Unescape newlines\n .replace(/\\\\r/g, '\\r') // Unescape carriage returns\n .replace(/\\\\t/g, '\\t') // Unescape tabs\n .replace(/\\\\\\\\/g, '\\\\') // Unescape backslashes\n .replace(/\\\\u([0-9a-fA-F]{4})/g, (_, code) => String.fromCharCode(parseInt(code, 16))); // Unescape unicode\n }\n}\n"],"names":["jsonrepair","z","StructuredResponseParserError","StructuredResponseParser","schema","parse","text","cleanedText","cleanText","json","extractJsonFromText","unescapedJson","unescapeJsonValues","error","ZodError","codeBlocks","match","validBlocks","map","block","extractJsonFromCodeBlock","filter","length","findLargestString","jsonMatches","findJsonStructures","replace","trim","convertToPrimitive","value","ZodString","String","ZodNumber","Number","ZodBoolean","Boolean","ZodNull","extractArray","arrayStart","indexOf","arrayEnd","lastIndexOf","undefined","raw","slice","repaired","repairJson","JSON","content","ZodArray","ZodObject","extractObject","extractPrimitive","objectStart","objectEnd","trimmed","parsed","depth","start","i","char","potentialJson","push","strings","reduce","largest","current","jsonString","unescapeText","Array","isArray","item","Object","fromEntries","entries","key","_","code","fromCharCode","parseInt"],"mappings":"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"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import type { PromptPort } from './prompt.port.js';
|
|
2
|
-
/**
|
|
3
|
-
* Port for chat agents with generic input and output types
|
|
4
|
-
* @template TInput - The type of input parameters the agent accepts
|
|
5
|
-
* @template TOutput - The type of output the agent returns
|
|
6
|
-
*/
|
|
7
|
-
export interface AgentPort<TInput = PromptPort, TOutput = string> {
|
|
8
|
-
/**
|
|
9
|
-
* A descriptive name for the agent, used for logging and identification.
|
|
10
|
-
*/
|
|
11
|
-
readonly name: string;
|
|
12
|
-
/**
|
|
13
|
-
* Run the agent with optional input and return optional response
|
|
14
|
-
* @param input - The input to process
|
|
15
|
-
*/
|
|
16
|
-
run(input?: TInput): Promise<null | TOutput>;
|
|
17
|
-
}
|
package/dist/ports/agent.port.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/ports/agent.port.ts"],"sourcesContent":["import type { PromptPort } from './prompt.port.js';\n\n/**\n * Port for chat agents with generic input and output types\n * @template TInput - The type of input parameters the agent accepts\n * @template TOutput - The type of output the agent returns\n */\nexport interface AgentPort<TInput = PromptPort, TOutput = string> {\n /**\n * A descriptive name for the agent, used for logging and identification.\n */\n readonly name: string;\n\n /**\n * Run the agent with optional input and return optional response\n * @param input - The input to process\n */\n run(input?: TInput): Promise<null | TOutput>;\n}\n"],"names":[],"mappings":"AAEA;;;;CAIC,GACD,WAWC"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import type { BaseLanguageModel } from '@langchain/core/language_models/base';
|
|
2
|
-
import type { LanguageModelV1 } from 'ai';
|
|
3
|
-
/**
|
|
4
|
-
* General model configuration for reasoning and token limits
|
|
5
|
-
*/
|
|
6
|
-
export interface ModelConfig {
|
|
7
|
-
/**
|
|
8
|
-
* The maximum number of tokens to generate
|
|
9
|
-
*/
|
|
10
|
-
maxTokens?: number;
|
|
11
|
-
/**
|
|
12
|
-
* Reasoning configuration for models that support it
|
|
13
|
-
*/
|
|
14
|
-
reasoning?: {
|
|
15
|
-
/**
|
|
16
|
-
* Reasoning effort level (e.g., 'low', 'medium', 'high')
|
|
17
|
-
*/
|
|
18
|
-
effort?: string;
|
|
19
|
-
/**
|
|
20
|
-
* Whether to exclude reasoning from the response
|
|
21
|
-
*/
|
|
22
|
-
exclude?: boolean;
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Port for models supporting both LangChain and Vercel AI SDK
|
|
27
|
-
*/
|
|
28
|
-
export interface ModelPort {
|
|
29
|
-
/**
|
|
30
|
-
* Get the configured LangChain language model instance
|
|
31
|
-
*/
|
|
32
|
-
getLangchainModel(): BaseLanguageModel;
|
|
33
|
-
/**
|
|
34
|
-
* Get the configured Vercel AI SDK language model instance
|
|
35
|
-
*/
|
|
36
|
-
getVercelModel(): LanguageModelV1;
|
|
37
|
-
}
|
package/dist/ports/model.port.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/ports/model.port.ts"],"sourcesContent":["import type { BaseLanguageModel } from '@langchain/core/language_models/base';\nimport type { LanguageModelV1 } from 'ai';\n\n/**\n * General model configuration for reasoning and token limits\n */\nexport interface ModelConfig {\n /**\n * The maximum number of tokens to generate\n */\n maxTokens?: number;\n /**\n * Reasoning configuration for models that support it\n */\n reasoning?: {\n /**\n * Reasoning effort level (e.g., 'low', 'medium', 'high')\n */\n effort?: string;\n /**\n * Whether to exclude reasoning from the response\n */\n exclude?: boolean;\n };\n}\n\n/**\n * Port for models supporting both LangChain and Vercel AI SDK\n */\nexport interface ModelPort {\n /**\n * Get the configured LangChain language model instance\n */\n getLangchainModel(): BaseLanguageModel;\n\n /**\n * Get the configured Vercel AI SDK language model instance\n */\n getVercelModel(): LanguageModelV1;\n}\n"],"names":[],"mappings":"AA0BA;;CAEC,GACD,WAUC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/ports/prompt.port.ts"],"sourcesContent":["/**\n * Port for prompt generation\n */\nexport interface PromptPort {\n /**\n * Generate the prompt text\n */\n generate(): string;\n}\n"],"names":[],"mappings":"AAAA;;CAEC,GACD,WAKC"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { ModelConfig } from './model.port.js';
|
|
2
|
-
import type { ModelPort } from './model.port.js';
|
|
3
|
-
/**
|
|
4
|
-
* Provider port interface for model providers
|
|
5
|
-
*/
|
|
6
|
-
export interface ProviderPort {
|
|
7
|
-
/**
|
|
8
|
-
* Get a model instance configured with this provider
|
|
9
|
-
* @param modelName - The model to use (e.g., 'openai/gpt-4o')
|
|
10
|
-
* @param modelConfig - Optional model configuration
|
|
11
|
-
*/
|
|
12
|
-
getModel(modelName: string, modelConfig?: ModelConfig): ModelPort;
|
|
13
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/ports/provider.port.ts"],"sourcesContent":["import type { ModelConfig } from './model.port.js';\nimport type { ModelPort } from './model.port.js';\n\n/**\n * Provider port interface for model providers\n */\nexport interface ProviderPort {\n /**\n * Get a model instance configured with this provider\n * @param modelName - The model to use (e.g., 'openai/gpt-4o')\n * @param modelConfig - Optional model configuration\n */\n getModel(modelName: string, modelConfig?: ModelConfig): ModelPort;\n}\n"],"names":[],"mappings":"AAGA;;CAEC,GACD,WAOC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { DynamicStructuredTool, DynamicTool } from 'langchain/tools';
|
|
2
|
-
import type { z } from 'zod/v4';
|
|
3
|
-
/**
|
|
4
|
-
* Port for tools
|
|
5
|
-
*/
|
|
6
|
-
export interface ToolPort {
|
|
7
|
-
/**
|
|
8
|
-
* Get the underlying LangChain tool instance
|
|
9
|
-
*/
|
|
10
|
-
getDynamicTool(): DynamicStructuredTool<z.ZodSchema<unknown>> | DynamicTool;
|
|
11
|
-
}
|
package/dist/ports/tool.port.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/ports/tool.port.ts"],"sourcesContent":["import type { DynamicStructuredTool, DynamicTool } from 'langchain/tools';\nimport type { z } from 'zod/v4';\n\n/**\n * Port for tools\n */\nexport interface ToolPort {\n /**\n * Get the underlying LangChain tool instance\n */\n getDynamicTool(): DynamicStructuredTool<z.ZodSchema<unknown>> | DynamicTool;\n}\n"],"names":[],"mappings":"AAGA;;CAEC,GACD,WAKC"}
|
|
File without changes
|