foon-sdk 1.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/LICENSE +21 -0
- package/README.md +574 -0
- package/dist/cache/LRUCache.d.ts +36 -0
- package/dist/cache/LRUCache.d.ts.map +1 -0
- package/dist/cache/LRUCache.js +54 -0
- package/dist/cache/LRUCache.js.map +1 -0
- package/dist/cache/cache-key-generator.d.ts +9 -0
- package/dist/cache/cache-key-generator.d.ts.map +1 -0
- package/dist/cache/cache-key-generator.js +50 -0
- package/dist/cache/cache-key-generator.js.map +1 -0
- package/dist/cache/index.d.ts +3 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +21 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/engine/MappingEngine.d.ts +29 -0
- package/dist/engine/MappingEngine.d.ts.map +1 -0
- package/dist/engine/MappingEngine.js +196 -0
- package/dist/engine/MappingEngine.js.map +1 -0
- package/dist/engine/executor.d.ts +15 -0
- package/dist/engine/executor.d.ts.map +1 -0
- package/dist/engine/executor.js +137 -0
- package/dist/engine/executor.js.map +1 -0
- package/dist/engine/index.d.ts +5 -0
- package/dist/engine/index.d.ts.map +1 -0
- package/dist/engine/index.js +23 -0
- package/dist/engine/index.js.map +1 -0
- package/dist/engine/jsonpath.d.ts +17 -0
- package/dist/engine/jsonpath.d.ts.map +1 -0
- package/dist/engine/jsonpath.js +73 -0
- package/dist/engine/jsonpath.js.map +1 -0
- package/dist/engine/type-converter.d.ts +12 -0
- package/dist/engine/type-converter.d.ts.map +1 -0
- package/dist/engine/type-converter.js +106 -0
- package/dist/engine/type-converter.js.map +1 -0
- package/dist/errors/error-factory.d.ts +30 -0
- package/dist/errors/error-factory.d.ts.map +1 -0
- package/dist/errors/error-factory.js +53 -0
- package/dist/errors/error-factory.js.map +1 -0
- package/dist/errors/index.d.ts +3 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +22 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/express/FonRouter.d.ts +56 -0
- package/dist/express/FonRouter.d.ts.map +1 -0
- package/dist/express/FonRouter.js +151 -0
- package/dist/express/FonRouter.js.map +1 -0
- package/dist/express/error-handler.d.ts +10 -0
- package/dist/express/error-handler.d.ts.map +1 -0
- package/dist/express/error-handler.js +55 -0
- package/dist/express/error-handler.js.map +1 -0
- package/dist/express/index.d.ts +33 -0
- package/dist/express/index.d.ts.map +1 -0
- package/dist/express/index.js +41 -0
- package/dist/express/index.js.map +1 -0
- package/dist/express/route-registry.d.ts +33 -0
- package/dist/express/route-registry.d.ts.map +1 -0
- package/dist/express/route-registry.js +52 -0
- package/dist/express/route-registry.js.map +1 -0
- package/dist/express/transform-middleware.d.ts +21 -0
- package/dist/express/transform-middleware.d.ts.map +1 -0
- package/dist/express/transform-middleware.js +62 -0
- package/dist/express/transform-middleware.js.map +1 -0
- package/dist/express/types.d.ts +73 -0
- package/dist/express/types.d.ts.map +1 -0
- package/dist/express/types.js +3 -0
- package/dist/express/types.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +29 -0
- package/dist/index.js.map +1 -0
- package/dist/providers/base/Provider.d.ts +17 -0
- package/dist/providers/base/Provider.d.ts.map +1 -0
- package/dist/providers/base/Provider.js +43 -0
- package/dist/providers/base/Provider.js.map +1 -0
- package/dist/providers/base/index.d.ts +3 -0
- package/dist/providers/base/index.d.ts.map +1 -0
- package/dist/providers/base/index.js +21 -0
- package/dist/providers/base/index.js.map +1 -0
- package/dist/providers/base/prompt-builder.d.ts +22 -0
- package/dist/providers/base/prompt-builder.d.ts.map +1 -0
- package/dist/providers/base/prompt-builder.js +105 -0
- package/dist/providers/base/prompt-builder.js.map +1 -0
- package/dist/providers/gemini/GeminiProvider.d.ts +16 -0
- package/dist/providers/gemini/GeminiProvider.d.ts.map +1 -0
- package/dist/providers/gemini/GeminiProvider.js +48 -0
- package/dist/providers/gemini/GeminiProvider.js.map +1 -0
- package/dist/providers/gemini/gemini-client.d.ts +16 -0
- package/dist/providers/gemini/gemini-client.d.ts.map +1 -0
- package/dist/providers/gemini/gemini-client.js +83 -0
- package/dist/providers/gemini/gemini-client.js.map +1 -0
- package/dist/providers/gemini/index.d.ts +3 -0
- package/dist/providers/gemini/index.d.ts.map +1 -0
- package/dist/providers/gemini/index.js +8 -0
- package/dist/providers/gemini/index.js.map +1 -0
- package/dist/providers/index.d.ts +6 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +27 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/ollama/OllamaProvider.d.ts +17 -0
- package/dist/providers/ollama/OllamaProvider.d.ts.map +1 -0
- package/dist/providers/ollama/OllamaProvider.js +47 -0
- package/dist/providers/ollama/OllamaProvider.js.map +1 -0
- package/dist/providers/ollama/index.d.ts +3 -0
- package/dist/providers/ollama/index.d.ts.map +1 -0
- package/dist/providers/ollama/index.js +8 -0
- package/dist/providers/ollama/index.js.map +1 -0
- package/dist/providers/ollama/ollama-client.d.ts +17 -0
- package/dist/providers/ollama/ollama-client.d.ts.map +1 -0
- package/dist/providers/ollama/ollama-client.js +83 -0
- package/dist/providers/ollama/ollama-client.js.map +1 -0
- package/dist/providers/openai/OpenAIProvider.d.ts +16 -0
- package/dist/providers/openai/OpenAIProvider.d.ts.map +1 -0
- package/dist/providers/openai/OpenAIProvider.js +48 -0
- package/dist/providers/openai/OpenAIProvider.js.map +1 -0
- package/dist/providers/openai/index.d.ts +3 -0
- package/dist/providers/openai/index.d.ts.map +1 -0
- package/dist/providers/openai/index.js +8 -0
- package/dist/providers/openai/index.js.map +1 -0
- package/dist/providers/openai/openai-client.d.ts +16 -0
- package/dist/providers/openai/openai-client.d.ts.map +1 -0
- package/dist/providers/openai/openai-client.js +85 -0
- package/dist/providers/openai/openai-client.js.map +1 -0
- package/dist/schema/SchemaAdapter.d.ts +34 -0
- package/dist/schema/SchemaAdapter.d.ts.map +1 -0
- package/dist/schema/SchemaAdapter.js +59 -0
- package/dist/schema/SchemaAdapter.js.map +1 -0
- package/dist/schema/field-extractor.d.ts +10 -0
- package/dist/schema/field-extractor.d.ts.map +1 -0
- package/dist/schema/field-extractor.js +58 -0
- package/dist/schema/field-extractor.js.map +1 -0
- package/dist/schema/index.d.ts +5 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +13 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/schema/normalizer.d.ts +6 -0
- package/dist/schema/normalizer.d.ts.map +1 -0
- package/dist/schema/normalizer.js +17 -0
- package/dist/schema/normalizer.js.map +1 -0
- package/dist/schema/validator.d.ts +17 -0
- package/dist/schema/validator.d.ts.map +1 -0
- package/dist/schema/validator.js +50 -0
- package/dist/schema/validator.js.map +1 -0
- package/dist/security/index.d.ts +5 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/security/index.js +21 -0
- package/dist/security/index.js.map +1 -0
- package/dist/security/input-validator.d.ts +6 -0
- package/dist/security/input-validator.d.ts.map +1 -0
- package/dist/security/input-validator.js +76 -0
- package/dist/security/input-validator.js.map +1 -0
- package/dist/security/prompt-sanitizer.d.ts +12 -0
- package/dist/security/prompt-sanitizer.d.ts.map +1 -0
- package/dist/security/prompt-sanitizer.js +66 -0
- package/dist/security/prompt-sanitizer.js.map +1 -0
- package/dist/security/redactor.d.ts +5 -0
- package/dist/security/redactor.d.ts.map +1 -0
- package/dist/security/redactor.js +37 -0
- package/dist/security/redactor.js.map +1 -0
- package/dist/security/security-config.d.ts +10 -0
- package/dist/security/security-config.d.ts.map +1 -0
- package/dist/security/security-config.js +26 -0
- package/dist/security/security-config.js.map +1 -0
- package/dist/trace/TraceBuilder.d.ts +58 -0
- package/dist/trace/TraceBuilder.d.ts.map +1 -0
- package/dist/trace/TraceBuilder.js +117 -0
- package/dist/trace/TraceBuilder.js.map +1 -0
- package/dist/trace/confidence-analyzer.d.ts +6 -0
- package/dist/trace/confidence-analyzer.d.ts.map +1 -0
- package/dist/trace/confidence-analyzer.js +30 -0
- package/dist/trace/confidence-analyzer.js.map +1 -0
- package/dist/trace/index.d.ts +4 -0
- package/dist/trace/index.d.ts.map +1 -0
- package/dist/trace/index.js +22 -0
- package/dist/trace/index.js.map +1 -0
- package/dist/trace/trace-utils.d.ts +20 -0
- package/dist/trace/trace-utils.d.ts.map +1 -0
- package/dist/trace/trace-utils.js +33 -0
- package/dist/trace/trace-utils.js.map +1 -0
- package/dist/transform.d.ts +30 -0
- package/dist/transform.d.ts.map +1 -0
- package/dist/transform.js +62 -0
- package/dist/transform.js.map +1 -0
- package/dist/types/cache.types.d.ts +41 -0
- package/dist/types/cache.types.d.ts.map +1 -0
- package/dist/types/cache.types.js +3 -0
- package/dist/types/cache.types.js.map +1 -0
- package/dist/types/errors.types.d.ts +22 -0
- package/dist/types/errors.types.d.ts.map +1 -0
- package/dist/types/errors.types.js +31 -0
- package/dist/types/errors.types.js.map +1 -0
- package/dist/types/index.d.ts +9 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +8 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/mapping.types.d.ts +48 -0
- package/dist/types/mapping.types.d.ts.map +1 -0
- package/dist/types/mapping.types.js +3 -0
- package/dist/types/mapping.types.js.map +1 -0
- package/dist/types/provider.types.d.ts +62 -0
- package/dist/types/provider.types.d.ts.map +1 -0
- package/dist/types/provider.types.js +3 -0
- package/dist/types/provider.types.js.map +1 -0
- package/dist/types/schema.types.d.ts +68 -0
- package/dist/types/schema.types.d.ts.map +1 -0
- package/dist/types/schema.types.js +3 -0
- package/dist/types/schema.types.js.map +1 -0
- package/dist/types/security.types.d.ts +32 -0
- package/dist/types/security.types.d.ts.map +1 -0
- package/dist/types/security.types.js +3 -0
- package/dist/types/security.types.js.map +1 -0
- package/dist/types/trace.types.d.ts +129 -0
- package/dist/types/trace.types.d.ts.map +1 -0
- package/dist/types/trace.types.js +3 -0
- package/dist/types/trace.types.js.map +1 -0
- package/dist/types/transform.types.d.ts +56 -0
- package/dist/types/transform.types.d.ts.map +1 -0
- package/dist/types/transform.types.js +3 -0
- package/dist/types/transform.types.js.map +1 -0
- package/package.json +107 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { RouteEntry, HttpMethod } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Registry for storing route schemas
|
|
4
|
+
*/
|
|
5
|
+
export declare class RouteRegistry {
|
|
6
|
+
private routes;
|
|
7
|
+
constructor();
|
|
8
|
+
/**
|
|
9
|
+
* Generate registry key from method and path
|
|
10
|
+
*/
|
|
11
|
+
private getKey;
|
|
12
|
+
/**
|
|
13
|
+
* Register a route with its schema
|
|
14
|
+
*/
|
|
15
|
+
register(entry: RouteEntry): void;
|
|
16
|
+
/**
|
|
17
|
+
* Get route entry by method and path
|
|
18
|
+
*/
|
|
19
|
+
get(method: HttpMethod, path: string): RouteEntry | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* Check if route is registered
|
|
22
|
+
*/
|
|
23
|
+
has(method: HttpMethod, path: string): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Get all registered routes
|
|
26
|
+
*/
|
|
27
|
+
getAll(): RouteEntry[];
|
|
28
|
+
/**
|
|
29
|
+
* Clear all routes
|
|
30
|
+
*/
|
|
31
|
+
clear(): void;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=route-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route-registry.d.ts","sourceRoot":"","sources":["../../src/express/route-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAEjD;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAA0B;;IAMxC;;OAEG;IACH,OAAO,CAAC,MAAM;IAId;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAKjC;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAK7D;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAK9C;;OAEG;IACH,MAAM,IAAI,UAAU,EAAE;IAItB;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RouteRegistry = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Registry for storing route schemas
|
|
6
|
+
*/
|
|
7
|
+
class RouteRegistry {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.routes = new Map();
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Generate registry key from method and path
|
|
13
|
+
*/
|
|
14
|
+
getKey(method, path) {
|
|
15
|
+
return `${method} ${path}`;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Register a route with its schema
|
|
19
|
+
*/
|
|
20
|
+
register(entry) {
|
|
21
|
+
const key = this.getKey(entry.method, entry.path);
|
|
22
|
+
this.routes.set(key, entry);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Get route entry by method and path
|
|
26
|
+
*/
|
|
27
|
+
get(method, path) {
|
|
28
|
+
const key = this.getKey(method, path);
|
|
29
|
+
return this.routes.get(key);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Check if route is registered
|
|
33
|
+
*/
|
|
34
|
+
has(method, path) {
|
|
35
|
+
const key = this.getKey(method, path);
|
|
36
|
+
return this.routes.has(key);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Get all registered routes
|
|
40
|
+
*/
|
|
41
|
+
getAll() {
|
|
42
|
+
return Array.from(this.routes.values());
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Clear all routes
|
|
46
|
+
*/
|
|
47
|
+
clear() {
|
|
48
|
+
this.routes.clear();
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
exports.RouteRegistry = RouteRegistry;
|
|
52
|
+
//# sourceMappingURL=route-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route-registry.js","sourceRoot":"","sources":["../../src/express/route-registry.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACH,MAAa,aAAa;IAGxB;QACE,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;IAC1B,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,MAAkB,EAAE,IAAY;QAC7C,OAAO,GAAG,MAAM,IAAI,IAAI,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,KAAiB;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,MAAkB,EAAE,IAAY;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,MAAkB,EAAE,IAAY;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;CACF;AAnDD,sCAmDC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { RequestHandler } from 'express';
|
|
2
|
+
import { Provider, SecurityOptions, Cache } from '../types';
|
|
3
|
+
import { ErrorHandler } from './types';
|
|
4
|
+
/**
|
|
5
|
+
* Options for transform middleware
|
|
6
|
+
*/
|
|
7
|
+
export interface TransformMiddlewareOptions {
|
|
8
|
+
schema: object;
|
|
9
|
+
provider: Provider;
|
|
10
|
+
confidenceThreshold?: number;
|
|
11
|
+
cache?: Cache;
|
|
12
|
+
security?: SecurityOptions;
|
|
13
|
+
traceHeader?: string;
|
|
14
|
+
errorHandler: ErrorHandler;
|
|
15
|
+
verbose?: boolean;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Create middleware that transforms request body using FOON
|
|
19
|
+
*/
|
|
20
|
+
export declare function createTransformMiddleware(options: TransformMiddlewareOptions): RequestHandler;
|
|
21
|
+
//# sourceMappingURL=transform-middleware.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transform-middleware.d.ts","sourceRoot":"","sources":["../../src/express/transform-middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmC,cAAc,EAAE,MAAM,SAAS,CAAC;AAE1E,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAE5D,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,QAAQ,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,YAAY,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,0BAA0B,GAAG,cAAc,CA+D7F"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createTransformMiddleware = createTransformMiddleware;
|
|
4
|
+
const transform_1 = require("../transform");
|
|
5
|
+
const errors_1 = require("../errors");
|
|
6
|
+
/**
|
|
7
|
+
* Create middleware that transforms request body using FOON
|
|
8
|
+
*/
|
|
9
|
+
function createTransformMiddleware(options) {
|
|
10
|
+
return async (req, res, next) => {
|
|
11
|
+
try {
|
|
12
|
+
// Skip if no body
|
|
13
|
+
if (!req.body || Object.keys(req.body).length === 0) {
|
|
14
|
+
return next();
|
|
15
|
+
}
|
|
16
|
+
// Run FOON transform
|
|
17
|
+
const result = await (0, transform_1.transform)(req.body, {
|
|
18
|
+
schema: options.schema,
|
|
19
|
+
provider: options.provider,
|
|
20
|
+
confidenceThreshold: options.confidenceThreshold,
|
|
21
|
+
cache: options.cache,
|
|
22
|
+
security: options.security,
|
|
23
|
+
verbose: options.verbose,
|
|
24
|
+
});
|
|
25
|
+
// Add trace ID to response header
|
|
26
|
+
const traceHeader = options.traceHeader || 'X-FON-Trace-Id';
|
|
27
|
+
res.setHeader(traceHeader, result.trace.traceId);
|
|
28
|
+
// If verbose, also add timing headers
|
|
29
|
+
if (options.verbose) {
|
|
30
|
+
res.setHeader('X-FON-Timing-Total', result.trace.timings.total.toString());
|
|
31
|
+
res.setHeader('X-FON-Timing-Proposal', result.trace.timings.proposal.toString());
|
|
32
|
+
res.setHeader('X-FON-Cache-Hit', result.trace.cache.hit ? 'true' : 'false');
|
|
33
|
+
}
|
|
34
|
+
// Check if transformation succeeded
|
|
35
|
+
if (result.ok && result.output) {
|
|
36
|
+
// Replace request body with transformed output
|
|
37
|
+
req.body = result.output;
|
|
38
|
+
// Attach trace to request for debugging (optional)
|
|
39
|
+
req.fonTrace = result.trace;
|
|
40
|
+
// Continue to next middleware/handler
|
|
41
|
+
return next();
|
|
42
|
+
}
|
|
43
|
+
else if (result.error) {
|
|
44
|
+
// Handle transformation error
|
|
45
|
+
return options.errorHandler(result.error, req, res, next);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
// This shouldn't happen, but handle it gracefully
|
|
49
|
+
const error = new errors_1.FONError('EXECUTION_ERROR', 'Transformation failed without error details');
|
|
50
|
+
return options.errorHandler(error, req, res, next);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
// Handle unexpected errors
|
|
55
|
+
const fonError = error instanceof errors_1.FONError
|
|
56
|
+
? error
|
|
57
|
+
: new errors_1.FONError('EXECUTION_ERROR', `Unexpected error: ${error instanceof Error ? error.message : String(error)}`);
|
|
58
|
+
return options.errorHandler(fonError, req, res, next);
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=transform-middleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transform-middleware.js","sourceRoot":"","sources":["../../src/express/transform-middleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { Request, Response, NextFunction, RequestHandler } from 'express';
|
|
2
|
+
import { Provider, SecurityOptions, Cache } from '../types';
|
|
3
|
+
import { FONError } from '../errors';
|
|
4
|
+
/**
|
|
5
|
+
* HTTP methods supported for FOON transformation
|
|
6
|
+
*/
|
|
7
|
+
export type HttpMethod = 'POST' | 'PUT' | 'PATCH' | 'DELETE';
|
|
8
|
+
/**
|
|
9
|
+
* Configuration for FOON Router
|
|
10
|
+
*/
|
|
11
|
+
export interface FonRouterConfig {
|
|
12
|
+
/** LLM provider instance (required) */
|
|
13
|
+
provider: Provider;
|
|
14
|
+
/** Route prefix for FOON routes (default: '/foon') */
|
|
15
|
+
prefix?: string;
|
|
16
|
+
/** HTTP methods to transform (default: ['POST', 'PUT', 'PATCH']) */
|
|
17
|
+
methods?: HttpMethod[];
|
|
18
|
+
/** Confidence threshold (default: 0.85) */
|
|
19
|
+
confidenceThreshold?: number;
|
|
20
|
+
/** Cache instance (optional) */
|
|
21
|
+
cache?: Cache;
|
|
22
|
+
/** Security options */
|
|
23
|
+
security?: SecurityOptions;
|
|
24
|
+
/** Header name for trace ID (default: 'X-FON-Trace-Id') */
|
|
25
|
+
traceHeader?: string;
|
|
26
|
+
/** Custom error handler */
|
|
27
|
+
onError?: ErrorHandler;
|
|
28
|
+
/** Create original routes alongside FOON routes (default: true) */
|
|
29
|
+
createOriginalRoutes?: boolean;
|
|
30
|
+
/** Verbose mode for debugging (default: false) */
|
|
31
|
+
verbose?: boolean;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Configuration for a single route
|
|
35
|
+
*/
|
|
36
|
+
export interface RouteConfig {
|
|
37
|
+
/** JSON Schema for this route */
|
|
38
|
+
schema: object;
|
|
39
|
+
/** Express request handler */
|
|
40
|
+
handler: RequestHandler | RequestHandler[];
|
|
41
|
+
/** Override: create original route for this specific route */
|
|
42
|
+
createOriginal?: boolean;
|
|
43
|
+
/** Override: confidence threshold for this specific route */
|
|
44
|
+
confidenceThreshold?: number;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Error handler function
|
|
48
|
+
*/
|
|
49
|
+
export type ErrorHandler = (error: FONError, req: Request, res: Response, next: NextFunction) => void | Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* Route registration entry
|
|
52
|
+
*/
|
|
53
|
+
export interface RouteEntry {
|
|
54
|
+
method: HttpMethod;
|
|
55
|
+
path: string;
|
|
56
|
+
schema: object;
|
|
57
|
+
handler: RequestHandler | RequestHandler[];
|
|
58
|
+
config: RouteConfig;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* FOON Router interface
|
|
62
|
+
*/
|
|
63
|
+
export interface IFonRouter {
|
|
64
|
+
/** Register POST route with schema */
|
|
65
|
+
post(path: string, config: RouteConfig): this;
|
|
66
|
+
/** Register PUT route with schema */
|
|
67
|
+
put(path: string, config: RouteConfig): this;
|
|
68
|
+
/** Register PATCH route with schema */
|
|
69
|
+
patch(path: string, config: RouteConfig): this;
|
|
70
|
+
/** Register DELETE route with schema */
|
|
71
|
+
delete(path: string, config: RouteConfig): this;
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/express/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAU,MAAM,SAAS,CAAC;AAClF,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE7D;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,uCAAuC;IACvC,QAAQ,EAAE,QAAQ,CAAC;IAEnB,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,oEAAoE;IACpE,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;IAEvB,2CAA2C;IAC3C,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B,gCAAgC;IAChC,KAAK,CAAC,EAAE,KAAK,CAAC;IAEd,uBAAuB;IACvB,QAAQ,CAAC,EAAE,eAAe,CAAC;IAE3B,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,2BAA2B;IAC3B,OAAO,CAAC,EAAE,YAAY,CAAC;IAEvB,mEAAmE;IACnE,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,kDAAkD;IAClD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,iCAAiC;IACjC,MAAM,EAAE,MAAM,CAAC;IAEf,8BAA8B;IAC9B,OAAO,EAAE,cAAc,GAAG,cAAc,EAAE,CAAC;IAE3C,8DAA8D;IAC9D,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,6DAA6D;IAC7D,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,CACzB,KAAK,EAAE,QAAQ,EACf,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,YAAY,KACf,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1B;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,cAAc,GAAG,cAAc,EAAE,CAAC;IAC3C,MAAM,EAAE,WAAW,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,sCAAsC;IACtC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAE9C,qCAAqC;IACrC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAE7C,uCAAuC;IACvC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAE/C,wCAAwC;IACxC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;CACjD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/express/types.ts"],"names":[],"mappings":""}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export { transform } from './transform';
|
|
2
|
+
export type { Mode, TransformOptions, TransformResult, TransformHooks, SchemaAdapter, NormalizedSchema, SchemaField, ValidationResult, ValidationError, MappingPlan, Assignment, Drop, Warning, Provider, ProviderConfig, ProviderMetrics, ProposalOptions, Cache, CachedMappingPlan, CacheMetadata, TraceReport, Timings, ExecutionTrace, AssignmentTrace, RejectedAssignment, Conflict, ValidationTrace, CacheTrace, ConfidenceSummary, SecurityOptions, InputValidationResult, } from './types';
|
|
3
|
+
export { FONError, ErrorCategory } from './errors';
|
|
4
|
+
export { GeminiProvider } from './providers/gemini';
|
|
5
|
+
export { OpenAIProvider } from './providers/openai';
|
|
6
|
+
export { OllamaProvider } from './providers/ollama';
|
|
7
|
+
export { Provider as BaseProvider } from './providers/base/Provider';
|
|
8
|
+
export { SchemaAdapter as SchemaAdapterClass } from './schema';
|
|
9
|
+
export { LRUCache } from './cache';
|
|
10
|
+
export { MappingEngine } from './engine/MappingEngine';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,YAAY,EAEV,IAAI,EACJ,gBAAgB,EAChB,eAAe,EACf,cAAc,EAEd,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EAChB,eAAe,EAEf,WAAW,EACX,UAAU,EACV,IAAI,EACJ,OAAO,EAEP,QAAQ,EACR,cAAc,EACd,eAAe,EACf,eAAe,EAEf,KAAK,EACL,iBAAiB,EACjB,aAAa,EAEb,WAAW,EACX,OAAO,EACP,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,QAAQ,EACR,eAAe,EACf,UAAU,EACV,iBAAiB,EAEjB,eAAe,EACf,qBAAqB,GACtB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGnD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGrE,OAAO,EAAE,aAAa,IAAI,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAG/D,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGnC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MappingEngine = exports.LRUCache = exports.SchemaAdapterClass = exports.BaseProvider = exports.OllamaProvider = exports.OpenAIProvider = exports.GeminiProvider = exports.ErrorCategory = exports.FONError = exports.transform = void 0;
|
|
4
|
+
// Main transform function
|
|
5
|
+
var transform_1 = require("./transform");
|
|
6
|
+
Object.defineProperty(exports, "transform", { enumerable: true, get: function () { return transform_1.transform; } });
|
|
7
|
+
// Error types and classes
|
|
8
|
+
var errors_1 = require("./errors");
|
|
9
|
+
Object.defineProperty(exports, "FONError", { enumerable: true, get: function () { return errors_1.FONError; } });
|
|
10
|
+
Object.defineProperty(exports, "ErrorCategory", { enumerable: true, get: function () { return errors_1.ErrorCategory; } });
|
|
11
|
+
// Providers
|
|
12
|
+
var gemini_1 = require("./providers/gemini");
|
|
13
|
+
Object.defineProperty(exports, "GeminiProvider", { enumerable: true, get: function () { return gemini_1.GeminiProvider; } });
|
|
14
|
+
var openai_1 = require("./providers/openai");
|
|
15
|
+
Object.defineProperty(exports, "OpenAIProvider", { enumerable: true, get: function () { return openai_1.OpenAIProvider; } });
|
|
16
|
+
var ollama_1 = require("./providers/ollama");
|
|
17
|
+
Object.defineProperty(exports, "OllamaProvider", { enumerable: true, get: function () { return ollama_1.OllamaProvider; } });
|
|
18
|
+
var Provider_1 = require("./providers/base/Provider");
|
|
19
|
+
Object.defineProperty(exports, "BaseProvider", { enumerable: true, get: function () { return Provider_1.Provider; } });
|
|
20
|
+
// Schema adapter (for advanced usage)
|
|
21
|
+
var schema_1 = require("./schema");
|
|
22
|
+
Object.defineProperty(exports, "SchemaAdapterClass", { enumerable: true, get: function () { return schema_1.SchemaAdapter; } });
|
|
23
|
+
// Cache implementations
|
|
24
|
+
var cache_1 = require("./cache");
|
|
25
|
+
Object.defineProperty(exports, "LRUCache", { enumerable: true, get: function () { return cache_1.LRUCache; } });
|
|
26
|
+
// Engine (for advanced usage)
|
|
27
|
+
var MappingEngine_1 = require("./engine/MappingEngine");
|
|
28
|
+
Object.defineProperty(exports, "MappingEngine", { enumerable: true, get: function () { return MappingEngine_1.MappingEngine; } });
|
|
29
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,0BAA0B;AAC1B,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AA4ClB,0BAA0B;AAC1B,mCAAmD;AAA1C,kGAAA,QAAQ,OAAA;AAAE,uGAAA,aAAa,OAAA;AAEhC,YAAY;AACZ,6CAAoD;AAA3C,wGAAA,cAAc,OAAA;AACvB,6CAAoD;AAA3C,wGAAA,cAAc,OAAA;AACvB,6CAAoD;AAA3C,wGAAA,cAAc,OAAA;AACvB,sDAAqE;AAA5D,wGAAA,QAAQ,OAAgB;AAEjC,sCAAsC;AACtC,mCAA+D;AAAtD,4GAAA,aAAa,OAAsB;AAE5C,wBAAwB;AACxB,iCAAmC;AAA1B,iGAAA,QAAQ,OAAA;AAEjB,8BAA8B;AAC9B,wDAAuD;AAA9C,8GAAA,aAAa,OAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Provider as IProvider, ProposalOptions, MappingPlan, NormalizedSchema } from '../../types';
|
|
2
|
+
/**
|
|
3
|
+
* Abstract base provider class
|
|
4
|
+
*/
|
|
5
|
+
export declare abstract class Provider implements IProvider {
|
|
6
|
+
abstract readonly name: string;
|
|
7
|
+
abstract readonly promptVersion: string;
|
|
8
|
+
/**
|
|
9
|
+
* Propose a mapping plan from input to schema
|
|
10
|
+
*/
|
|
11
|
+
abstract proposeMappingPlan(input: unknown, schema: NormalizedSchema, options: ProposalOptions): Promise<MappingPlan>;
|
|
12
|
+
/**
|
|
13
|
+
* Validate and parse LLM response as mapping plan
|
|
14
|
+
*/
|
|
15
|
+
protected parseMappingPlan(response: string): MappingPlan;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=Provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../../src/providers/base/Provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpG;;GAEG;AACH,8BAAsB,QAAS,YAAW,SAAS;IACjD,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAExC;;OAEG;IACH,QAAQ,CAAC,kBAAkB,CACzB,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,WAAW,CAAC;IAEvB;;OAEG;IACH,SAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW;CAyC1D"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Provider = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Abstract base provider class
|
|
6
|
+
*/
|
|
7
|
+
class Provider {
|
|
8
|
+
/**
|
|
9
|
+
* Validate and parse LLM response as mapping plan
|
|
10
|
+
*/
|
|
11
|
+
parseMappingPlan(response) {
|
|
12
|
+
try {
|
|
13
|
+
const parsed = JSON.parse(response);
|
|
14
|
+
// Validate structure
|
|
15
|
+
if (!parsed.assignments || !Array.isArray(parsed.assignments)) {
|
|
16
|
+
throw new Error('Missing or invalid "assignments" array');
|
|
17
|
+
}
|
|
18
|
+
if (!parsed.drops || !Array.isArray(parsed.drops)) {
|
|
19
|
+
throw new Error('Missing or invalid "drops" array');
|
|
20
|
+
}
|
|
21
|
+
if (!parsed.warnings || !Array.isArray(parsed.warnings)) {
|
|
22
|
+
throw new Error('Missing or invalid "warnings" array');
|
|
23
|
+
}
|
|
24
|
+
// Validate assignments
|
|
25
|
+
for (const assignment of parsed.assignments) {
|
|
26
|
+
if (!assignment.from || !assignment.to || assignment.confidence === undefined) {
|
|
27
|
+
throw new Error('Invalid assignment: must have "from", "to", and "confidence" properties');
|
|
28
|
+
}
|
|
29
|
+
if (typeof assignment.confidence !== 'number' ||
|
|
30
|
+
assignment.confidence < 0 ||
|
|
31
|
+
assignment.confidence > 1) {
|
|
32
|
+
throw new Error('Invalid confidence: must be a number between 0 and 1');
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return parsed;
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
throw new Error(`Failed to parse mapping plan: ${error instanceof Error ? error.message : String(error)}`);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.Provider = Provider;
|
|
43
|
+
//# sourceMappingURL=Provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../../src/providers/base/Provider.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACH,MAAsB,QAAQ;IAa5B;;OAEG;IACO,gBAAgB,CAAC,QAAgB;QACzC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAEpC,qBAAqB;YACrB,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC9D,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;YAC5D,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBAClD,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACtD,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACxD,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;YACzD,CAAC;YAED,uBAAuB;YACvB,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;gBAC5C,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,UAAU,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;oBAC9E,MAAM,IAAI,KAAK,CACb,yEAAyE,CAC1E,CAAC;gBACJ,CAAC;gBAED,IACE,OAAO,UAAU,CAAC,UAAU,KAAK,QAAQ;oBACzC,UAAU,CAAC,UAAU,GAAG,CAAC;oBACzB,UAAU,CAAC,UAAU,GAAG,CAAC,EACzB,CAAC;oBACD,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;gBAC1E,CAAC;YACH,CAAC;YAED,OAAO,MAAqB,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,iCAAiC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC1F,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AAzDD,4BAyDC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/base/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.Provider = void 0;
|
|
18
|
+
var Provider_1 = require("./Provider");
|
|
19
|
+
Object.defineProperty(exports, "Provider", { enumerable: true, get: function () { return Provider_1.Provider; } });
|
|
20
|
+
__exportStar(require("./prompt-builder"), exports);
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/base/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AACjB,mDAAiC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { NormalizedSchema } from '../../types';
|
|
2
|
+
/**
|
|
3
|
+
* Build field inventory prompt from schema
|
|
4
|
+
*/
|
|
5
|
+
export declare function buildSchemaFieldsPrompt(schema: NormalizedSchema): string;
|
|
6
|
+
/**
|
|
7
|
+
* Build input keys inventory from input payload
|
|
8
|
+
* Only includes structure, not values (for security)
|
|
9
|
+
*/
|
|
10
|
+
export declare function buildInputKeysPrompt(input: unknown, includeValues?: boolean): string;
|
|
11
|
+
/**
|
|
12
|
+
* Build system prompt for mapping plan generation
|
|
13
|
+
*/
|
|
14
|
+
export declare function buildSystemPrompt(confidenceThreshold: number): string;
|
|
15
|
+
/**
|
|
16
|
+
* Build complete prompt for LLM
|
|
17
|
+
*/
|
|
18
|
+
export declare function buildMappingPrompt(schema: NormalizedSchema, input: unknown, confidenceThreshold: number, includeValues?: boolean): {
|
|
19
|
+
systemPrompt: string;
|
|
20
|
+
userPrompt: string;
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=prompt-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-builder.d.ts","sourceRoot":"","sources":["../../../src/providers/base/prompt-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAe,MAAM,aAAa,CAAC;AAE5D;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAYxE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,GAAE,OAAe,GAAG,MAAM,CAO3F;AA4CD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,mBAAmB,EAAE,MAAM,GAAG,MAAM,CAwBrE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,gBAAgB,EACxB,KAAK,EAAE,OAAO,EACd,mBAAmB,EAAE,MAAM,EAC3B,aAAa,GAAE,OAAe,GAC7B;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAU9C"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildSchemaFieldsPrompt = buildSchemaFieldsPrompt;
|
|
4
|
+
exports.buildInputKeysPrompt = buildInputKeysPrompt;
|
|
5
|
+
exports.buildSystemPrompt = buildSystemPrompt;
|
|
6
|
+
exports.buildMappingPrompt = buildMappingPrompt;
|
|
7
|
+
/**
|
|
8
|
+
* Build field inventory prompt from schema
|
|
9
|
+
*/
|
|
10
|
+
function buildSchemaFieldsPrompt(schema) {
|
|
11
|
+
const lines = ['TARGET SCHEMA FIELDS:'];
|
|
12
|
+
for (const field of schema.fields) {
|
|
13
|
+
const required = field.required ? '[REQUIRED]' : '[optional]';
|
|
14
|
+
const type = Array.isArray(field.type) ? field.type.join('|') : field.type;
|
|
15
|
+
const desc = field.description ? ` - ${field.description}` : '';
|
|
16
|
+
lines.push(` ${field.path}: ${type} ${required}${desc}`);
|
|
17
|
+
}
|
|
18
|
+
return lines.join('\n');
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Build input keys inventory from input payload
|
|
22
|
+
* Only includes structure, not values (for security)
|
|
23
|
+
*/
|
|
24
|
+
function buildInputKeysPrompt(input, includeValues = false) {
|
|
25
|
+
const lines = ['INPUT PAYLOAD STRUCTURE:'];
|
|
26
|
+
const keys = extractKeys(input, '$', includeValues);
|
|
27
|
+
lines.push(...keys.map((k) => ` ${k}`));
|
|
28
|
+
return lines.join('\n');
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Extract keys from input payload recursively
|
|
32
|
+
*/
|
|
33
|
+
function extractKeys(obj, basePath, includeValues, depth = 0) {
|
|
34
|
+
if (depth > 10)
|
|
35
|
+
return []; // Prevent infinite recursion
|
|
36
|
+
const keys = [];
|
|
37
|
+
if (obj === null || obj === undefined) {
|
|
38
|
+
return [];
|
|
39
|
+
}
|
|
40
|
+
if (Array.isArray(obj)) {
|
|
41
|
+
keys.push(`${basePath}: array[${obj.length}]`);
|
|
42
|
+
if (obj.length > 0) {
|
|
43
|
+
// Sample first item to show array structure
|
|
44
|
+
keys.push(...extractKeys(obj[0], `${basePath}[*]`, includeValues, depth + 1));
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
else if (typeof obj === 'object') {
|
|
48
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
49
|
+
const path = basePath === '$' ? `$.${key}` : `${basePath}.${key}`;
|
|
50
|
+
if (value && typeof value === 'object' && !Array.isArray(value)) {
|
|
51
|
+
keys.push(`${path}: object`);
|
|
52
|
+
keys.push(...extractKeys(value, path, includeValues, depth + 1));
|
|
53
|
+
}
|
|
54
|
+
else if (Array.isArray(value)) {
|
|
55
|
+
keys.push(...extractKeys(value, path, includeValues, depth + 1));
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
const valueStr = includeValues ? ` = ${JSON.stringify(value)}` : '';
|
|
59
|
+
keys.push(`${path}: ${typeof value}${valueStr}`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return keys;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Build system prompt for mapping plan generation
|
|
67
|
+
*/
|
|
68
|
+
function buildSystemPrompt(confidenceThreshold) {
|
|
69
|
+
return `You are a JSON mapping expert. Your task is to generate a MAPPING PLAN (not the final JSON) that transforms input JSON to match a target schema.
|
|
70
|
+
|
|
71
|
+
CRITICAL: You must return ONLY valid JSON matching this exact structure:
|
|
72
|
+
{
|
|
73
|
+
"assignments": [
|
|
74
|
+
{ "from": "$.inputPath", "to": "$.targetPath", "confidence": 0.95 }
|
|
75
|
+
],
|
|
76
|
+
"drops": [
|
|
77
|
+
{ "path": "$.unusedField", "reason": "Not in schema", "confidence": 0.9 }
|
|
78
|
+
],
|
|
79
|
+
"warnings": [
|
|
80
|
+
{ "message": "Potential issue description", "confidence": 0.85 }
|
|
81
|
+
]
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
RULES:
|
|
85
|
+
1. Output ONLY the JSON mapping plan. No markdown, no prose, no explanations.
|
|
86
|
+
2. Each assignment must have "from" (input JSONPath), "to" (target JSONPath), and "confidence" (0-1).
|
|
87
|
+
3. Confidence threshold is ${confidenceThreshold}. Be accurate with confidence scores.
|
|
88
|
+
4. Drop any input fields that don't map to the schema.
|
|
89
|
+
5. Warn about potential issues (typos, ambiguous mappings, type mismatches).
|
|
90
|
+
6. Use JSONPath notation (e.g., "$.name.first", "$.items[*].id").
|
|
91
|
+
7. Be conservative: if unsure about a mapping, lower the confidence score.`;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Build complete prompt for LLM
|
|
95
|
+
*/
|
|
96
|
+
function buildMappingPrompt(schema, input, confidenceThreshold, includeValues = false) {
|
|
97
|
+
const systemPrompt = buildSystemPrompt(confidenceThreshold);
|
|
98
|
+
const userPrompt = `${buildSchemaFieldsPrompt(schema)}
|
|
99
|
+
|
|
100
|
+
${buildInputKeysPrompt(input, includeValues)}
|
|
101
|
+
|
|
102
|
+
Generate the mapping plan to transform the input to match the target schema.`;
|
|
103
|
+
return { systemPrompt, userPrompt };
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=prompt-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-builder.js","sourceRoot":"","sources":["../../../src/providers/base/prompt-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Provider } from '../base/Provider';
|
|
2
|
+
import { MappingPlan, NormalizedSchema, ProposalOptions, ProviderConfig } from '../../types';
|
|
3
|
+
/**
|
|
4
|
+
* Google Gemini provider implementation
|
|
5
|
+
*/
|
|
6
|
+
export declare class GeminiProvider extends Provider {
|
|
7
|
+
readonly name = "gemini";
|
|
8
|
+
readonly promptVersion = "v1.0.0";
|
|
9
|
+
private client;
|
|
10
|
+
constructor(config: ProviderConfig);
|
|
11
|
+
/**
|
|
12
|
+
* Propose a mapping plan using Gemini
|
|
13
|
+
*/
|
|
14
|
+
proposeMappingPlan(input: unknown, schema: NormalizedSchema, options: ProposalOptions): Promise<MappingPlan>;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=GeminiProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GeminiProvider.d.ts","sourceRoot":"","sources":["../../../src/providers/gemini/GeminiProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAK7F;;GAEG;AACH,qBAAa,cAAe,SAAQ,QAAQ;IAC1C,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,aAAa,YAAY;IAElC,OAAO,CAAC,MAAM,CAAe;gBAEjB,MAAM,EAAE,cAAc;IAUlC;;OAEG;IACG,kBAAkB,CACtB,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,WAAW,CAAC;CAsCxB"}
|