@jterrazz/intelligence 1.5.0 → 2.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 +199 -83
- package/dist/adapters/agents/{basic-agent.adapter.d.ts → chat-agent.adapter.d.ts} +6 -6
- package/dist/adapters/agents/{basic-agent.adapter.js → chat-agent.adapter.js} +54 -27
- package/dist/adapters/agents/chat-agent.adapter.js.map +1 -0
- package/dist/adapters/agents/{retryable-agent.adapter.d.ts → resilient-agent.adapter.d.ts} +4 -4
- package/dist/adapters/agents/{retryable-agent.adapter.js → resilient-agent.adapter.js} +22 -13
- package/dist/adapters/agents/resilient-agent.adapter.js.map +1 -0
- package/dist/adapters/agents/{autonomous-agent.adapter.d.ts → tool-agent.adapter.d.ts} +6 -6
- package/dist/adapters/agents/{autonomous-agent.adapter.js → tool-agent.adapter.js} +29 -18
- package/dist/adapters/agents/tool-agent.adapter.js.map +1 -0
- package/dist/adapters/models/openrouter-model.adapter.d.ts +17 -32
- package/dist/adapters/models/openrouter-model.adapter.js +84 -25
- package/dist/adapters/models/openrouter-model.adapter.js.map +1 -1
- package/dist/adapters/prompts/__tests__/presets.test.js +4 -4
- package/dist/adapters/prompts/__tests__/presets.test.js.map +1 -1
- package/dist/adapters/prompts/system-prompt.adapter.d.ts +2 -2
- package/dist/adapters/prompts/system-prompt.adapter.js +6 -6
- package/dist/adapters/prompts/system-prompt.adapter.js.map +1 -1
- package/dist/adapters/prompts/user-prompt.adapter.d.ts +2 -2
- package/dist/adapters/prompts/user-prompt.adapter.js +6 -6
- package/dist/adapters/prompts/user-prompt.adapter.js.map +1 -1
- package/dist/adapters/providers/openrouter-provider.adapter.d.ts +34 -0
- package/dist/adapters/providers/openrouter-provider.adapter.js +57 -0
- package/dist/adapters/providers/openrouter-provider.adapter.js.map +1 -0
- package/dist/adapters/tools/safe-tool.adapter.d.ts +2 -2
- package/dist/adapters/tools/safe-tool.adapter.js +6 -6
- package/dist/adapters/tools/safe-tool.adapter.js.map +1 -1
- package/dist/adapters/utils/__tests__/{ai-response-parser.test.js → structured-response-parser.test.js} +30 -30
- package/dist/adapters/utils/__tests__/structured-response-parser.test.js.map +1 -0
- package/dist/adapters/utils/{ai-response-parser-error.d.ts → structured-response-parser-error.d.ts} +2 -2
- package/dist/adapters/utils/{ai-response-parser-error.js → structured-response-parser-error.js} +9 -9
- package/dist/adapters/utils/structured-response-parser-error.js.map +1 -0
- package/dist/adapters/utils/{ai-response-parser.d.ts → structured-response-parser.d.ts} +1 -1
- package/dist/adapters/utils/{ai-response-parser.js → structured-response-parser.js} +13 -13
- package/dist/adapters/utils/structured-response-parser.js.map +1 -0
- package/dist/index.cjs +748 -342
- package/dist/index.d.ts +11 -8
- package/dist/index.js +29 -8
- package/dist/index.js.map +1 -1
- package/dist/ports/model.port.d.ts +30 -3
- package/dist/ports/model.port.js +1 -1
- package/dist/ports/model.port.js.map +1 -1
- package/dist/ports/provider.port.d.ts +13 -0
- package/dist/ports/provider.port.js +5 -0
- package/dist/ports/provider.port.js.map +1 -0
- package/package.json +11 -9
- package/dist/adapters/agents/autonomous-agent.adapter.js.map +0 -1
- package/dist/adapters/agents/basic-agent.adapter.js.map +0 -1
- package/dist/adapters/agents/retryable-agent.adapter.js.map +0 -1
- package/dist/adapters/utils/__tests__/ai-response-parser.test.js.map +0 -1
- package/dist/adapters/utils/ai-response-parser-error.js.map +0 -1
- package/dist/adapters/utils/ai-response-parser.js.map +0 -1
- /package/dist/adapters/utils/__tests__/{ai-response-parser.test.d.ts → structured-response-parser.test.d.ts} +0 -0
|
@@ -89,17 +89,17 @@ function _unsupported_iterable_to_array(o, minLen) {
|
|
|
89
89
|
}
|
|
90
90
|
import { jsonrepair } from 'jsonrepair';
|
|
91
91
|
import { z } from 'zod/v4';
|
|
92
|
-
import {
|
|
92
|
+
import { StructuredResponseParserError } from './structured-response-parser-error.js';
|
|
93
93
|
/**
|
|
94
94
|
* Parses AI response text into structured data based on Zod schema
|
|
95
|
-
*/ export var
|
|
95
|
+
*/ export var StructuredResponseParser = /*#__PURE__*/ function() {
|
|
96
96
|
"use strict";
|
|
97
|
-
function
|
|
98
|
-
_class_call_check(this,
|
|
97
|
+
function StructuredResponseParser(schema) {
|
|
98
|
+
_class_call_check(this, StructuredResponseParser);
|
|
99
99
|
_define_property(this, "schema", void 0);
|
|
100
100
|
this.schema = schema;
|
|
101
101
|
}
|
|
102
|
-
_create_class(
|
|
102
|
+
_create_class(StructuredResponseParser, [
|
|
103
103
|
{
|
|
104
104
|
key: "parse",
|
|
105
105
|
value: /**
|
|
@@ -112,7 +112,7 @@ import { AIResponseParserError } from './ai-response-parser-error.js';
|
|
|
112
112
|
return this.schema.parse(unescapedJson);
|
|
113
113
|
} catch (error) {
|
|
114
114
|
if (_instanceof(error, z.ZodError)) {
|
|
115
|
-
throw new
|
|
115
|
+
throw new StructuredResponseParserError('Failed to validate response against schema', error, text);
|
|
116
116
|
}
|
|
117
117
|
throw error;
|
|
118
118
|
}
|
|
@@ -174,14 +174,14 @@ import { AIResponseParserError } from './ai-response-parser-error.js';
|
|
|
174
174
|
var arrayStart = text.indexOf('[');
|
|
175
175
|
var arrayEnd = text.lastIndexOf(']');
|
|
176
176
|
if (arrayStart === -1 || arrayEnd === -1) {
|
|
177
|
-
throw new
|
|
177
|
+
throw new StructuredResponseParserError('No array found in response', undefined, text);
|
|
178
178
|
}
|
|
179
179
|
try {
|
|
180
180
|
var raw = text.slice(arrayStart, arrayEnd + 1);
|
|
181
181
|
var repaired = this.repairJson(raw);
|
|
182
182
|
return JSON.parse(repaired);
|
|
183
183
|
} catch (error) {
|
|
184
|
-
throw new
|
|
184
|
+
throw new StructuredResponseParserError('Failed to parse array JSON', error, text);
|
|
185
185
|
}
|
|
186
186
|
}
|
|
187
187
|
},
|
|
@@ -214,7 +214,7 @@ import { AIResponseParserError } from './ai-response-parser-error.js';
|
|
|
214
214
|
if (_instanceof(this.schema, z.ZodString) || _instanceof(this.schema, z.ZodNumber) || _instanceof(this.schema, z.ZodBoolean) || _instanceof(this.schema, z.ZodNull)) {
|
|
215
215
|
return this.extractPrimitive(text, this.schema);
|
|
216
216
|
}
|
|
217
|
-
throw new
|
|
217
|
+
throw new StructuredResponseParserError('Unsupported schema type', undefined, text);
|
|
218
218
|
}
|
|
219
219
|
},
|
|
220
220
|
{
|
|
@@ -225,14 +225,14 @@ import { AIResponseParserError } from './ai-response-parser-error.js';
|
|
|
225
225
|
var objectStart = text.indexOf('{');
|
|
226
226
|
var objectEnd = text.lastIndexOf('}');
|
|
227
227
|
if (objectStart === -1 || objectEnd === -1) {
|
|
228
|
-
throw new
|
|
228
|
+
throw new StructuredResponseParserError('No object found in response', undefined, text);
|
|
229
229
|
}
|
|
230
230
|
try {
|
|
231
231
|
var raw = text.slice(objectStart, objectEnd + 1);
|
|
232
232
|
var repaired = this.repairJson(raw);
|
|
233
233
|
return JSON.parse(repaired);
|
|
234
234
|
} catch (error) {
|
|
235
|
-
throw new
|
|
235
|
+
throw new StructuredResponseParserError('Failed to parse object JSON', error, text);
|
|
236
236
|
}
|
|
237
237
|
}
|
|
238
238
|
},
|
|
@@ -341,7 +341,7 @@ import { AIResponseParserError } from './ai-response-parser-error.js';
|
|
|
341
341
|
}
|
|
342
342
|
}
|
|
343
343
|
]);
|
|
344
|
-
return
|
|
344
|
+
return StructuredResponseParser;
|
|
345
345
|
}();
|
|
346
346
|
|
|
347
|
-
//# sourceMappingURL=
|
|
347
|
+
//# sourceMappingURL=structured-response-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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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"}
|