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.
Files changed (219) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +574 -0
  3. package/dist/cache/LRUCache.d.ts +36 -0
  4. package/dist/cache/LRUCache.d.ts.map +1 -0
  5. package/dist/cache/LRUCache.js +54 -0
  6. package/dist/cache/LRUCache.js.map +1 -0
  7. package/dist/cache/cache-key-generator.d.ts +9 -0
  8. package/dist/cache/cache-key-generator.d.ts.map +1 -0
  9. package/dist/cache/cache-key-generator.js +50 -0
  10. package/dist/cache/cache-key-generator.js.map +1 -0
  11. package/dist/cache/index.d.ts +3 -0
  12. package/dist/cache/index.d.ts.map +1 -0
  13. package/dist/cache/index.js +21 -0
  14. package/dist/cache/index.js.map +1 -0
  15. package/dist/engine/MappingEngine.d.ts +29 -0
  16. package/dist/engine/MappingEngine.d.ts.map +1 -0
  17. package/dist/engine/MappingEngine.js +196 -0
  18. package/dist/engine/MappingEngine.js.map +1 -0
  19. package/dist/engine/executor.d.ts +15 -0
  20. package/dist/engine/executor.d.ts.map +1 -0
  21. package/dist/engine/executor.js +137 -0
  22. package/dist/engine/executor.js.map +1 -0
  23. package/dist/engine/index.d.ts +5 -0
  24. package/dist/engine/index.d.ts.map +1 -0
  25. package/dist/engine/index.js +23 -0
  26. package/dist/engine/index.js.map +1 -0
  27. package/dist/engine/jsonpath.d.ts +17 -0
  28. package/dist/engine/jsonpath.d.ts.map +1 -0
  29. package/dist/engine/jsonpath.js +73 -0
  30. package/dist/engine/jsonpath.js.map +1 -0
  31. package/dist/engine/type-converter.d.ts +12 -0
  32. package/dist/engine/type-converter.d.ts.map +1 -0
  33. package/dist/engine/type-converter.js +106 -0
  34. package/dist/engine/type-converter.js.map +1 -0
  35. package/dist/errors/error-factory.d.ts +30 -0
  36. package/dist/errors/error-factory.d.ts.map +1 -0
  37. package/dist/errors/error-factory.js +53 -0
  38. package/dist/errors/error-factory.js.map +1 -0
  39. package/dist/errors/index.d.ts +3 -0
  40. package/dist/errors/index.d.ts.map +1 -0
  41. package/dist/errors/index.js +22 -0
  42. package/dist/errors/index.js.map +1 -0
  43. package/dist/express/FonRouter.d.ts +56 -0
  44. package/dist/express/FonRouter.d.ts.map +1 -0
  45. package/dist/express/FonRouter.js +151 -0
  46. package/dist/express/FonRouter.js.map +1 -0
  47. package/dist/express/error-handler.d.ts +10 -0
  48. package/dist/express/error-handler.d.ts.map +1 -0
  49. package/dist/express/error-handler.js +55 -0
  50. package/dist/express/error-handler.js.map +1 -0
  51. package/dist/express/index.d.ts +33 -0
  52. package/dist/express/index.d.ts.map +1 -0
  53. package/dist/express/index.js +41 -0
  54. package/dist/express/index.js.map +1 -0
  55. package/dist/express/route-registry.d.ts +33 -0
  56. package/dist/express/route-registry.d.ts.map +1 -0
  57. package/dist/express/route-registry.js +52 -0
  58. package/dist/express/route-registry.js.map +1 -0
  59. package/dist/express/transform-middleware.d.ts +21 -0
  60. package/dist/express/transform-middleware.d.ts.map +1 -0
  61. package/dist/express/transform-middleware.js +62 -0
  62. package/dist/express/transform-middleware.js.map +1 -0
  63. package/dist/express/types.d.ts +73 -0
  64. package/dist/express/types.d.ts.map +1 -0
  65. package/dist/express/types.js +3 -0
  66. package/dist/express/types.js.map +1 -0
  67. package/dist/index.d.ts +11 -0
  68. package/dist/index.d.ts.map +1 -0
  69. package/dist/index.js +29 -0
  70. package/dist/index.js.map +1 -0
  71. package/dist/providers/base/Provider.d.ts +17 -0
  72. package/dist/providers/base/Provider.d.ts.map +1 -0
  73. package/dist/providers/base/Provider.js +43 -0
  74. package/dist/providers/base/Provider.js.map +1 -0
  75. package/dist/providers/base/index.d.ts +3 -0
  76. package/dist/providers/base/index.d.ts.map +1 -0
  77. package/dist/providers/base/index.js +21 -0
  78. package/dist/providers/base/index.js.map +1 -0
  79. package/dist/providers/base/prompt-builder.d.ts +22 -0
  80. package/dist/providers/base/prompt-builder.d.ts.map +1 -0
  81. package/dist/providers/base/prompt-builder.js +105 -0
  82. package/dist/providers/base/prompt-builder.js.map +1 -0
  83. package/dist/providers/gemini/GeminiProvider.d.ts +16 -0
  84. package/dist/providers/gemini/GeminiProvider.d.ts.map +1 -0
  85. package/dist/providers/gemini/GeminiProvider.js +48 -0
  86. package/dist/providers/gemini/GeminiProvider.js.map +1 -0
  87. package/dist/providers/gemini/gemini-client.d.ts +16 -0
  88. package/dist/providers/gemini/gemini-client.d.ts.map +1 -0
  89. package/dist/providers/gemini/gemini-client.js +83 -0
  90. package/dist/providers/gemini/gemini-client.js.map +1 -0
  91. package/dist/providers/gemini/index.d.ts +3 -0
  92. package/dist/providers/gemini/index.d.ts.map +1 -0
  93. package/dist/providers/gemini/index.js +8 -0
  94. package/dist/providers/gemini/index.js.map +1 -0
  95. package/dist/providers/index.d.ts +6 -0
  96. package/dist/providers/index.d.ts.map +1 -0
  97. package/dist/providers/index.js +27 -0
  98. package/dist/providers/index.js.map +1 -0
  99. package/dist/providers/ollama/OllamaProvider.d.ts +17 -0
  100. package/dist/providers/ollama/OllamaProvider.d.ts.map +1 -0
  101. package/dist/providers/ollama/OllamaProvider.js +47 -0
  102. package/dist/providers/ollama/OllamaProvider.js.map +1 -0
  103. package/dist/providers/ollama/index.d.ts +3 -0
  104. package/dist/providers/ollama/index.d.ts.map +1 -0
  105. package/dist/providers/ollama/index.js +8 -0
  106. package/dist/providers/ollama/index.js.map +1 -0
  107. package/dist/providers/ollama/ollama-client.d.ts +17 -0
  108. package/dist/providers/ollama/ollama-client.d.ts.map +1 -0
  109. package/dist/providers/ollama/ollama-client.js +83 -0
  110. package/dist/providers/ollama/ollama-client.js.map +1 -0
  111. package/dist/providers/openai/OpenAIProvider.d.ts +16 -0
  112. package/dist/providers/openai/OpenAIProvider.d.ts.map +1 -0
  113. package/dist/providers/openai/OpenAIProvider.js +48 -0
  114. package/dist/providers/openai/OpenAIProvider.js.map +1 -0
  115. package/dist/providers/openai/index.d.ts +3 -0
  116. package/dist/providers/openai/index.d.ts.map +1 -0
  117. package/dist/providers/openai/index.js +8 -0
  118. package/dist/providers/openai/index.js.map +1 -0
  119. package/dist/providers/openai/openai-client.d.ts +16 -0
  120. package/dist/providers/openai/openai-client.d.ts.map +1 -0
  121. package/dist/providers/openai/openai-client.js +85 -0
  122. package/dist/providers/openai/openai-client.js.map +1 -0
  123. package/dist/schema/SchemaAdapter.d.ts +34 -0
  124. package/dist/schema/SchemaAdapter.d.ts.map +1 -0
  125. package/dist/schema/SchemaAdapter.js +59 -0
  126. package/dist/schema/SchemaAdapter.js.map +1 -0
  127. package/dist/schema/field-extractor.d.ts +10 -0
  128. package/dist/schema/field-extractor.d.ts.map +1 -0
  129. package/dist/schema/field-extractor.js +58 -0
  130. package/dist/schema/field-extractor.js.map +1 -0
  131. package/dist/schema/index.d.ts +5 -0
  132. package/dist/schema/index.d.ts.map +1 -0
  133. package/dist/schema/index.js +13 -0
  134. package/dist/schema/index.js.map +1 -0
  135. package/dist/schema/normalizer.d.ts +6 -0
  136. package/dist/schema/normalizer.d.ts.map +1 -0
  137. package/dist/schema/normalizer.js +17 -0
  138. package/dist/schema/normalizer.js.map +1 -0
  139. package/dist/schema/validator.d.ts +17 -0
  140. package/dist/schema/validator.d.ts.map +1 -0
  141. package/dist/schema/validator.js +50 -0
  142. package/dist/schema/validator.js.map +1 -0
  143. package/dist/security/index.d.ts +5 -0
  144. package/dist/security/index.d.ts.map +1 -0
  145. package/dist/security/index.js +21 -0
  146. package/dist/security/index.js.map +1 -0
  147. package/dist/security/input-validator.d.ts +6 -0
  148. package/dist/security/input-validator.d.ts.map +1 -0
  149. package/dist/security/input-validator.js +76 -0
  150. package/dist/security/input-validator.js.map +1 -0
  151. package/dist/security/prompt-sanitizer.d.ts +12 -0
  152. package/dist/security/prompt-sanitizer.d.ts.map +1 -0
  153. package/dist/security/prompt-sanitizer.js +66 -0
  154. package/dist/security/prompt-sanitizer.js.map +1 -0
  155. package/dist/security/redactor.d.ts +5 -0
  156. package/dist/security/redactor.d.ts.map +1 -0
  157. package/dist/security/redactor.js +37 -0
  158. package/dist/security/redactor.js.map +1 -0
  159. package/dist/security/security-config.d.ts +10 -0
  160. package/dist/security/security-config.d.ts.map +1 -0
  161. package/dist/security/security-config.js +26 -0
  162. package/dist/security/security-config.js.map +1 -0
  163. package/dist/trace/TraceBuilder.d.ts +58 -0
  164. package/dist/trace/TraceBuilder.d.ts.map +1 -0
  165. package/dist/trace/TraceBuilder.js +117 -0
  166. package/dist/trace/TraceBuilder.js.map +1 -0
  167. package/dist/trace/confidence-analyzer.d.ts +6 -0
  168. package/dist/trace/confidence-analyzer.d.ts.map +1 -0
  169. package/dist/trace/confidence-analyzer.js +30 -0
  170. package/dist/trace/confidence-analyzer.js.map +1 -0
  171. package/dist/trace/index.d.ts +4 -0
  172. package/dist/trace/index.d.ts.map +1 -0
  173. package/dist/trace/index.js +22 -0
  174. package/dist/trace/index.js.map +1 -0
  175. package/dist/trace/trace-utils.d.ts +20 -0
  176. package/dist/trace/trace-utils.d.ts.map +1 -0
  177. package/dist/trace/trace-utils.js +33 -0
  178. package/dist/trace/trace-utils.js.map +1 -0
  179. package/dist/transform.d.ts +30 -0
  180. package/dist/transform.d.ts.map +1 -0
  181. package/dist/transform.js +62 -0
  182. package/dist/transform.js.map +1 -0
  183. package/dist/types/cache.types.d.ts +41 -0
  184. package/dist/types/cache.types.d.ts.map +1 -0
  185. package/dist/types/cache.types.js +3 -0
  186. package/dist/types/cache.types.js.map +1 -0
  187. package/dist/types/errors.types.d.ts +22 -0
  188. package/dist/types/errors.types.d.ts.map +1 -0
  189. package/dist/types/errors.types.js +31 -0
  190. package/dist/types/errors.types.js.map +1 -0
  191. package/dist/types/index.d.ts +9 -0
  192. package/dist/types/index.d.ts.map +1 -0
  193. package/dist/types/index.js +8 -0
  194. package/dist/types/index.js.map +1 -0
  195. package/dist/types/mapping.types.d.ts +48 -0
  196. package/dist/types/mapping.types.d.ts.map +1 -0
  197. package/dist/types/mapping.types.js +3 -0
  198. package/dist/types/mapping.types.js.map +1 -0
  199. package/dist/types/provider.types.d.ts +62 -0
  200. package/dist/types/provider.types.d.ts.map +1 -0
  201. package/dist/types/provider.types.js +3 -0
  202. package/dist/types/provider.types.js.map +1 -0
  203. package/dist/types/schema.types.d.ts +68 -0
  204. package/dist/types/schema.types.d.ts.map +1 -0
  205. package/dist/types/schema.types.js +3 -0
  206. package/dist/types/schema.types.js.map +1 -0
  207. package/dist/types/security.types.d.ts +32 -0
  208. package/dist/types/security.types.d.ts.map +1 -0
  209. package/dist/types/security.types.js +3 -0
  210. package/dist/types/security.types.js.map +1 -0
  211. package/dist/types/trace.types.d.ts +129 -0
  212. package/dist/types/trace.types.d.ts.map +1 -0
  213. package/dist/types/trace.types.js +3 -0
  214. package/dist/types/trace.types.js.map +1 -0
  215. package/dist/types/transform.types.d.ts +56 -0
  216. package/dist/types/transform.types.d.ts.map +1 -0
  217. package/dist/types/transform.types.js +3 -0
  218. package/dist/types/transform.types.js.map +1 -0
  219. package/package.json +107 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redactor.d.ts","sourceRoot":"","sources":["../../src/security/redactor.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAwBnF"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.redactSensitiveFields = redactSensitiveFields;
4
+ /**
5
+ * Redact sensitive fields from input
6
+ */
7
+ function redactSensitiveFields(input, redactKeys) {
8
+ if (input === null || input === undefined)
9
+ return input;
10
+ if (Array.isArray(input)) {
11
+ return input.map((item) => redactSensitiveFields(item, redactKeys));
12
+ }
13
+ if (typeof input === 'object') {
14
+ const redacted = {};
15
+ for (const [key, value] of Object.entries(input)) {
16
+ if (shouldRedact(key, redactKeys)) {
17
+ redacted[key] = '***REDACTED***';
18
+ }
19
+ else if (value && typeof value === 'object') {
20
+ redacted[key] = redactSensitiveFields(value, redactKeys);
21
+ }
22
+ else {
23
+ redacted[key] = value;
24
+ }
25
+ }
26
+ return redacted;
27
+ }
28
+ return input;
29
+ }
30
+ /**
31
+ * Check if key should be redacted
32
+ */
33
+ function shouldRedact(key, redactKeys) {
34
+ const lowerKey = key.toLowerCase();
35
+ return redactKeys.some((redactKey) => lowerKey.includes(redactKey.toLowerCase()));
36
+ }
37
+ //# sourceMappingURL=redactor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redactor.js","sourceRoot":"","sources":["../../src/security/redactor.ts"],"names":[],"mappings":";;AAGA,sDAwBC;AA3BD;;GAEG;AACH,SAAgB,qBAAqB,CAAC,KAAc,EAAE,UAAoB;IACxE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAExD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAQ,EAAE,CAAC;QAEzB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,IAAI,YAAY,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,CAAC;gBAClC,QAAQ,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC;YACnC,CAAC;iBAAM,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9C,QAAQ,CAAC,GAAG,CAAC,GAAG,qBAAqB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YAC3D,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACxB,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,GAAW,EAAE,UAAoB;IACrD,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IACnC,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AACpF,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { SecurityOptions } from '../types';
2
+ /**
3
+ * Default security settings
4
+ */
5
+ export declare const DEFAULT_SECURITY_OPTIONS: Required<SecurityOptions>;
6
+ /**
7
+ * Merge user security options with defaults
8
+ */
9
+ export declare function mergeSecurityOptions(options?: SecurityOptions): Required<SecurityOptions>;
10
+ //# sourceMappingURL=security-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security-config.d.ts","sourceRoot":"","sources":["../../src/security/security-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC,eAAe,CAQ9D,CAAC;AAEF;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,QAAQ,CAAC,eAAe,CAAC,CAKzF"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_SECURITY_OPTIONS = void 0;
4
+ exports.mergeSecurityOptions = mergeSecurityOptions;
5
+ /**
6
+ * Default security settings
7
+ */
8
+ exports.DEFAULT_SECURITY_OPTIONS = {
9
+ maxInputSize: 1024 * 1024, // 1MB
10
+ maxDepth: 10,
11
+ maxKeys: 1000,
12
+ maxStringLength: 10000,
13
+ redactKeys: ['password', 'token', 'authorization', 'secret', 'apiKey', 'apiSecret', 'auth'],
14
+ sanitizePrompt: true,
15
+ includeValues: false,
16
+ };
17
+ /**
18
+ * Merge user security options with defaults
19
+ */
20
+ function mergeSecurityOptions(options) {
21
+ return {
22
+ ...exports.DEFAULT_SECURITY_OPTIONS,
23
+ ...options,
24
+ };
25
+ }
26
+ //# sourceMappingURL=security-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security-config.js","sourceRoot":"","sources":["../../src/security/security-config.ts"],"names":[],"mappings":";;;AAkBA,oDAKC;AArBD;;GAEG;AACU,QAAA,wBAAwB,GAA8B;IACjE,YAAY,EAAE,IAAI,GAAG,IAAI,EAAE,MAAM;IACjC,QAAQ,EAAE,EAAE;IACZ,OAAO,EAAE,IAAI;IACb,eAAe,EAAE,KAAK;IACtB,UAAU,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC;IAC3F,cAAc,EAAE,IAAI;IACpB,aAAa,EAAE,KAAK;CACrB,CAAC;AAEF;;GAEG;AACH,SAAgB,oBAAoB,CAAC,OAAyB;IAC5D,OAAO;QACL,GAAG,gCAAwB;QAC3B,GAAG,OAAO;KACX,CAAC;AACJ,CAAC"}
@@ -0,0 +1,58 @@
1
+ import { TraceReport, MappingPlan, ExecutionTrace, ValidationTrace, CacheTrace, ConfidenceSummary, Timings } from '../types';
2
+ /**
3
+ * Builder for constructing trace reports
4
+ */
5
+ export declare class TraceBuilder {
6
+ private traceId;
7
+ private mode;
8
+ private provider;
9
+ private promptVersion;
10
+ private timings;
11
+ private mappingPlan?;
12
+ private execution?;
13
+ private validation?;
14
+ private cache?;
15
+ private confidenceSummary?;
16
+ constructor();
17
+ /**
18
+ * Get the trace ID
19
+ */
20
+ getTraceId(): string;
21
+ /**
22
+ * Set provider information
23
+ */
24
+ setProvider(name: string, promptVersion: string): this;
25
+ /**
26
+ * Set timings
27
+ */
28
+ setTimings(timings: Timings): this;
29
+ /**
30
+ * Add partial timing
31
+ */
32
+ addTiming(key: keyof Timings, value: number): this;
33
+ /**
34
+ * Set mapping plan
35
+ */
36
+ setMappingPlan(raw: string, parsed: MappingPlan): this;
37
+ /**
38
+ * Set execution trace
39
+ */
40
+ setExecution(execution: ExecutionTrace): this;
41
+ /**
42
+ * Set validation trace
43
+ */
44
+ setValidation(validation: ValidationTrace): this;
45
+ /**
46
+ * Set cache trace
47
+ */
48
+ setCache(cache: CacheTrace): this;
49
+ /**
50
+ * Set confidence summary
51
+ */
52
+ setConfidenceSummary(summary: ConfidenceSummary): this;
53
+ /**
54
+ * Build the complete trace report
55
+ */
56
+ build(): TraceReport;
57
+ }
58
+ //# sourceMappingURL=TraceBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TraceBuilder.d.ts","sourceRoot":"","sources":["../../src/trace/TraceBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,WAAW,EACX,cAAc,EACd,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,OAAO,EACR,MAAM,UAAU,CAAC;AAGlB;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,IAAI,CAA0B;IACtC,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,WAAW,CAAC,CAAuC;IAC3D,OAAO,CAAC,SAAS,CAAC,CAAiB;IACnC,OAAO,CAAC,UAAU,CAAC,CAAkB;IACrC,OAAO,CAAC,KAAK,CAAC,CAAa;IAC3B,OAAO,CAAC,iBAAiB,CAAC,CAAoB;;IAM9C;;OAEG;IACH,UAAU,IAAI,MAAM;IAIpB;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI;IAMtD;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAKlC;;OAEG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAKlD;;OAEG;IACH,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI;IAKtD;;OAEG;IACH,YAAY,CAAC,SAAS,EAAE,cAAc,GAAG,IAAI;IAK7C;;OAEG;IACH,aAAa,CAAC,UAAU,EAAE,eAAe,GAAG,IAAI;IAKhD;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAKjC;;OAEG;IACH,oBAAoB,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAKtD;;OAEG;IACH,KAAK,IAAI,WAAW;CAuCrB"}
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TraceBuilder = void 0;
4
+ const trace_utils_1 = require("./trace-utils");
5
+ /**
6
+ * Builder for constructing trace reports
7
+ */
8
+ class TraceBuilder {
9
+ constructor() {
10
+ this.mode = 'SEMANTIC';
11
+ this.provider = '';
12
+ this.promptVersion = '';
13
+ this.timings = {};
14
+ this.traceId = (0, trace_utils_1.generateTraceId)();
15
+ }
16
+ /**
17
+ * Get the trace ID
18
+ */
19
+ getTraceId() {
20
+ return this.traceId;
21
+ }
22
+ /**
23
+ * Set provider information
24
+ */
25
+ setProvider(name, promptVersion) {
26
+ this.provider = name;
27
+ this.promptVersion = promptVersion;
28
+ return this;
29
+ }
30
+ /**
31
+ * Set timings
32
+ */
33
+ setTimings(timings) {
34
+ this.timings = timings;
35
+ return this;
36
+ }
37
+ /**
38
+ * Add partial timing
39
+ */
40
+ addTiming(key, value) {
41
+ this.timings[key] = value;
42
+ return this;
43
+ }
44
+ /**
45
+ * Set mapping plan
46
+ */
47
+ setMappingPlan(raw, parsed) {
48
+ this.mappingPlan = { raw, parsed };
49
+ return this;
50
+ }
51
+ /**
52
+ * Set execution trace
53
+ */
54
+ setExecution(execution) {
55
+ this.execution = execution;
56
+ return this;
57
+ }
58
+ /**
59
+ * Set validation trace
60
+ */
61
+ setValidation(validation) {
62
+ this.validation = validation;
63
+ return this;
64
+ }
65
+ /**
66
+ * Set cache trace
67
+ */
68
+ setCache(cache) {
69
+ this.cache = cache;
70
+ return this;
71
+ }
72
+ /**
73
+ * Set confidence summary
74
+ */
75
+ setConfidenceSummary(summary) {
76
+ this.confidenceSummary = summary;
77
+ return this;
78
+ }
79
+ /**
80
+ * Build the complete trace report
81
+ */
82
+ build() {
83
+ // Ensure all required fields are present
84
+ if (!this.provider) {
85
+ throw new Error('Provider not set in trace');
86
+ }
87
+ if (!this.mappingPlan) {
88
+ throw new Error('Mapping plan not set in trace');
89
+ }
90
+ if (!this.execution) {
91
+ throw new Error('Execution trace not set in trace');
92
+ }
93
+ if (!this.validation) {
94
+ throw new Error('Validation trace not set in trace');
95
+ }
96
+ if (!this.cache) {
97
+ throw new Error('Cache trace not set in trace');
98
+ }
99
+ if (!this.confidenceSummary) {
100
+ throw new Error('Confidence summary not set in trace');
101
+ }
102
+ return {
103
+ traceId: this.traceId,
104
+ mode: this.mode,
105
+ provider: this.provider,
106
+ promptVersion: this.promptVersion,
107
+ timings: this.timings,
108
+ mappingPlan: this.mappingPlan,
109
+ execution: this.execution,
110
+ validation: this.validation,
111
+ cache: this.cache,
112
+ confidenceSummary: this.confidenceSummary,
113
+ };
114
+ }
115
+ }
116
+ exports.TraceBuilder = TraceBuilder;
117
+ //# sourceMappingURL=TraceBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TraceBuilder.js","sourceRoot":"","sources":["../../src/trace/TraceBuilder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { AssignmentTrace, ConfidenceSummary } from '../types';
2
+ /**
3
+ * Analyze confidence scores from assignments
4
+ */
5
+ export declare function analyzeConfidence(assignments: AssignmentTrace[], threshold: number): ConfidenceSummary;
6
+ //# sourceMappingURL=confidence-analyzer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confidence-analyzer.d.ts","sourceRoot":"","sources":["../../src/trace/confidence-analyzer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE9D;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,eAAe,EAAE,EAC9B,SAAS,EAAE,MAAM,GAChB,iBAAiB,CAyBnB"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.analyzeConfidence = analyzeConfidence;
4
+ /**
5
+ * Analyze confidence scores from assignments
6
+ */
7
+ function analyzeConfidence(assignments, threshold) {
8
+ if (assignments.length === 0) {
9
+ return {
10
+ min: 0,
11
+ max: 0,
12
+ avg: 0,
13
+ countBelowThreshold: 0,
14
+ threshold,
15
+ };
16
+ }
17
+ const confidences = assignments.map((a) => a.assignment.confidence);
18
+ const min = Math.min(...confidences);
19
+ const max = Math.max(...confidences);
20
+ const avg = confidences.reduce((sum, c) => sum + c, 0) / confidences.length;
21
+ const countBelowThreshold = confidences.filter((c) => c < threshold).length;
22
+ return {
23
+ min,
24
+ max,
25
+ avg: Math.round(avg * 100) / 100, // Round to 2 decimal places
26
+ countBelowThreshold,
27
+ threshold,
28
+ };
29
+ }
30
+ //# sourceMappingURL=confidence-analyzer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confidence-analyzer.js","sourceRoot":"","sources":["../../src/trace/confidence-analyzer.ts"],"names":[],"mappings":";;AAKA,8CA4BC;AA/BD;;GAEG;AACH,SAAgB,iBAAiB,CAC/B,WAA8B,EAC9B,SAAiB;IAEjB,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO;YACL,GAAG,EAAE,CAAC;YACN,GAAG,EAAE,CAAC;YACN,GAAG,EAAE,CAAC;YACN,mBAAmB,EAAE,CAAC;YACtB,SAAS;SACV,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAEpE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC;IACrC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC;IACrC,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC;IAC5E,MAAM,mBAAmB,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,MAAM,CAAC;IAE5E,OAAO;QACL,GAAG;QACH,GAAG;QACH,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,4BAA4B;QAC9D,mBAAmB;QACnB,SAAS;KACV,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { TraceBuilder } from './TraceBuilder';
2
+ export * from './trace-utils';
3
+ export * from './confidence-analyzer';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/trace/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,22 @@
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.TraceBuilder = void 0;
18
+ var TraceBuilder_1 = require("./TraceBuilder");
19
+ Object.defineProperty(exports, "TraceBuilder", { enumerable: true, get: function () { return TraceBuilder_1.TraceBuilder; } });
20
+ __exportStar(require("./trace-utils"), exports);
21
+ __exportStar(require("./confidence-analyzer"), exports);
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/trace/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,gDAA8B;AAC9B,wDAAsC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Generate a unique trace ID
3
+ */
4
+ export declare function generateTraceId(): string;
5
+ /**
6
+ * Simple timer for measuring execution time
7
+ */
8
+ export declare class Timer {
9
+ private startTime;
10
+ constructor();
11
+ /**
12
+ * Get elapsed time in milliseconds
13
+ */
14
+ elapsed(): number;
15
+ /**
16
+ * Reset the timer
17
+ */
18
+ reset(): void;
19
+ }
20
+ //# sourceMappingURL=trace-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace-utils.d.ts","sourceRoot":"","sources":["../../src/trace/trace-utils.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED;;GAEG;AACH,qBAAa,KAAK;IAChB,OAAO,CAAC,SAAS,CAAS;;IAM1B;;OAEG;IACH,OAAO,IAAI,MAAM;IAIjB;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Timer = void 0;
4
+ exports.generateTraceId = generateTraceId;
5
+ const uuid_1 = require("uuid");
6
+ /**
7
+ * Generate a unique trace ID
8
+ */
9
+ function generateTraceId() {
10
+ return (0, uuid_1.v4)();
11
+ }
12
+ /**
13
+ * Simple timer for measuring execution time
14
+ */
15
+ class Timer {
16
+ constructor() {
17
+ this.startTime = Date.now();
18
+ }
19
+ /**
20
+ * Get elapsed time in milliseconds
21
+ */
22
+ elapsed() {
23
+ return Date.now() - this.startTime;
24
+ }
25
+ /**
26
+ * Reset the timer
27
+ */
28
+ reset() {
29
+ this.startTime = Date.now();
30
+ }
31
+ }
32
+ exports.Timer = Timer;
33
+ //# sourceMappingURL=trace-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace-utils.js","sourceRoot":"","sources":["../../src/trace/trace-utils.ts"],"names":[],"mappings":";;;AAKA,0CAEC;AAPD,+BAAoC;AAEpC;;GAEG;AACH,SAAgB,eAAe;IAC7B,OAAO,IAAA,SAAM,GAAE,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAa,KAAK;IAGhB;QACE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC9B,CAAC;CACF;AApBD,sBAoBC"}
@@ -0,0 +1,30 @@
1
+ import { TransformOptions, TransformResult } from './types';
2
+ /**
3
+ * Transform input JSON to schema-compliant output using semantic mapping
4
+ *
5
+ * @param input - The input JSON to transform
6
+ * @param options - Transformation options
7
+ * @returns Promise<TransformResult> - Result with output or error + trace
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * import { transform, GeminiProvider } from 'fon-sdk';
12
+ *
13
+ * const result = await transform(
14
+ * { firstname: 'John', lastname: 'Doe' },
15
+ * {
16
+ * schema: userSchema,
17
+ * provider: new GeminiProvider({ apiKey: process.env.GEMINI_API_KEY }),
18
+ * confidenceThreshold: 0.85
19
+ * }
20
+ * );
21
+ *
22
+ * if (result.ok) {
23
+ * console.log('Transformed:', result.output);
24
+ * } else {
25
+ * console.error('Error:', result.error);
26
+ * }
27
+ * ```
28
+ */
29
+ export declare function transform(input: unknown, options: TransformOptions): Promise<TransformResult>;
30
+ //# sourceMappingURL=transform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../src/transform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAG5D;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAsB,SAAS,CAC7B,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,eAAe,CAAC,CAmC1B"}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.transform = transform;
4
+ const MappingEngine_1 = require("./engine/MappingEngine");
5
+ /**
6
+ * Transform input JSON to schema-compliant output using semantic mapping
7
+ *
8
+ * @param input - The input JSON to transform
9
+ * @param options - Transformation options
10
+ * @returns Promise<TransformResult> - Result with output or error + trace
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * import { transform, GeminiProvider } from 'fon-sdk';
15
+ *
16
+ * const result = await transform(
17
+ * { firstname: 'John', lastname: 'Doe' },
18
+ * {
19
+ * schema: userSchema,
20
+ * provider: new GeminiProvider({ apiKey: process.env.GEMINI_API_KEY }),
21
+ * confidenceThreshold: 0.85
22
+ * }
23
+ * );
24
+ *
25
+ * if (result.ok) {
26
+ * console.log('Transformed:', result.output);
27
+ * } else {
28
+ * console.error('Error:', result.error);
29
+ * }
30
+ * ```
31
+ */
32
+ async function transform(input, options) {
33
+ // Validate required options
34
+ if (!options.provider) {
35
+ throw new Error('Provider is required');
36
+ }
37
+ if (!options.schema) {
38
+ throw new Error('Schema is required');
39
+ }
40
+ // Create mapping engine
41
+ const engine = new MappingEngine_1.MappingEngine({
42
+ provider: options.provider,
43
+ schema: options.schema,
44
+ confidenceThreshold: options.confidenceThreshold,
45
+ cache: options.cache,
46
+ security: options.security,
47
+ verbose: options.verbose,
48
+ });
49
+ // Execute transformation
50
+ const result = await engine.transform(input);
51
+ // Call hooks if provided
52
+ if (options.hooks) {
53
+ if (options.hooks.onTrace) {
54
+ options.hooks.onTrace(result.trace);
55
+ }
56
+ if (!result.ok && result.error && options.hooks.onError) {
57
+ options.hooks.onError(result.error, result.trace.traceId);
58
+ }
59
+ }
60
+ return result;
61
+ }
62
+ //# sourceMappingURL=transform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform.js","sourceRoot":"","sources":["../src/transform.ts"],"names":[],"mappings":";;AA8BA,8BAsCC;AAnED,0DAAuD;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACI,KAAK,UAAU,SAAS,CAC7B,KAAc,EACd,OAAyB;IAEzB,4BAA4B;IAC5B,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACxC,CAAC;IAED,wBAAwB;IACxB,MAAM,MAAM,GAAG,IAAI,6BAAa,CAAC;QAC/B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;QAChD,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC,CAAC;IAEH,yBAAyB;IACzB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAE7C,yBAAyB;IACzB,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YAC1B,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACxD,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { MappingPlan } from './mapping.types';
2
+ /**
3
+ * Cache interface for mapping plans
4
+ */
5
+ export interface Cache {
6
+ /** Get cached mapping plan */
7
+ get(key: string): Promise<CachedMappingPlan | null>;
8
+ /** Store mapping plan in cache */
9
+ set(key: string, value: CachedMappingPlan, ttl?: number): Promise<void>;
10
+ /** Check if key exists in cache */
11
+ has(key: string): Promise<boolean>;
12
+ /** Delete a cached entry */
13
+ delete(key: string): Promise<boolean>;
14
+ /** Clear all cached entries */
15
+ clear(): Promise<void>;
16
+ }
17
+ /**
18
+ * Cached mapping plan with metadata
19
+ */
20
+ export interface CachedMappingPlan {
21
+ /** The mapping plan */
22
+ mappingPlan: MappingPlan;
23
+ /** Metadata about the cached entry */
24
+ metadata: CacheMetadata;
25
+ }
26
+ /**
27
+ * Metadata stored with cached mapping plan
28
+ */
29
+ export interface CacheMetadata {
30
+ /** Timestamp when cached */
31
+ createdAt: number;
32
+ /** Provider name that generated the plan */
33
+ provider: string;
34
+ /** Prompt version used */
35
+ promptVersion: string;
36
+ /** Schema version/hash */
37
+ schemaVersion: string;
38
+ /** Input shape signature (hash of keys + structure) */
39
+ inputSignature: string;
40
+ }
41
+ //# sourceMappingURL=cache.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.types.d.ts","sourceRoot":"","sources":["../../src/types/cache.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,8BAA8B;IAC9B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IAEpD,kCAAkC;IAClC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExE,mCAAmC;IACnC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEnC,4BAA4B;IAC5B,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEtC,+BAA+B;IAC/B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,uBAAuB;IACvB,WAAW,EAAE,WAAW,CAAC;IAEzB,sCAAsC;IACtC,QAAQ,EAAE,aAAa,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAC;IAElB,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,CAAC;IAEjB,0BAA0B;IAC1B,aAAa,EAAE,MAAM,CAAC;IAEtB,0BAA0B;IAC1B,aAAa,EAAE,MAAM,CAAC;IAEtB,uDAAuD;IACvD,cAAc,EAAE,MAAM,CAAC;CACxB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=cache.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.types.js","sourceRoot":"","sources":["../../src/types/cache.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Error categories for FOON SDK errors
3
+ */
4
+ export declare enum ErrorCategory {
5
+ SCHEMA_LOAD_ERROR = "SCHEMA_LOAD_ERROR",
6
+ PROVIDER_ERROR = "PROVIDER_ERROR",
7
+ MAPPING_PLAN_PARSE_ERROR = "MAPPING_PLAN_PARSE_ERROR",
8
+ CONFIDENCE_TOO_LOW = "CONFIDENCE_TOO_LOW",
9
+ EXECUTION_ERROR = "EXECUTION_ERROR",
10
+ VALIDATION_ERROR = "VALIDATION_ERROR",
11
+ SECURITY_LIMIT_EXCEEDED = "SECURITY_LIMIT_EXCEEDED"
12
+ }
13
+ /**
14
+ * Base error class for all FOON SDK errors
15
+ */
16
+ export declare class FONError extends Error {
17
+ category: ErrorCategory;
18
+ details?: object | undefined;
19
+ traceId?: string | undefined;
20
+ constructor(category: ErrorCategory, message: string, details?: object | undefined, traceId?: string | undefined);
21
+ }
22
+ //# sourceMappingURL=errors.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.types.d.ts","sourceRoot":"","sources":["../../src/types/errors.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,aAAa;IACvB,iBAAiB,sBAAsB;IACvC,cAAc,mBAAmB;IACjC,wBAAwB,6BAA6B;IACrD,kBAAkB,uBAAuB;IACzC,eAAe,oBAAoB;IACnC,gBAAgB,qBAAqB;IACrC,uBAAuB,4BAA4B;CACpD;AAED;;GAEG;AACH,qBAAa,QAAS,SAAQ,KAAK;IAExB,QAAQ,EAAE,aAAa;IAEvB,OAAO,CAAC,EAAE,MAAM;IAChB,OAAO,CAAC,EAAE,MAAM;gBAHhB,QAAQ,EAAE,aAAa,EAC9B,OAAO,EAAE,MAAM,EACR,OAAO,CAAC,EAAE,MAAM,YAAA,EAChB,OAAO,CAAC,EAAE,MAAM,YAAA;CAM1B"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FONError = exports.ErrorCategory = void 0;
4
+ /**
5
+ * Error categories for FOON SDK errors
6
+ */
7
+ var ErrorCategory;
8
+ (function (ErrorCategory) {
9
+ ErrorCategory["SCHEMA_LOAD_ERROR"] = "SCHEMA_LOAD_ERROR";
10
+ ErrorCategory["PROVIDER_ERROR"] = "PROVIDER_ERROR";
11
+ ErrorCategory["MAPPING_PLAN_PARSE_ERROR"] = "MAPPING_PLAN_PARSE_ERROR";
12
+ ErrorCategory["CONFIDENCE_TOO_LOW"] = "CONFIDENCE_TOO_LOW";
13
+ ErrorCategory["EXECUTION_ERROR"] = "EXECUTION_ERROR";
14
+ ErrorCategory["VALIDATION_ERROR"] = "VALIDATION_ERROR";
15
+ ErrorCategory["SECURITY_LIMIT_EXCEEDED"] = "SECURITY_LIMIT_EXCEEDED";
16
+ })(ErrorCategory || (exports.ErrorCategory = ErrorCategory = {}));
17
+ /**
18
+ * Base error class for all FOON SDK errors
19
+ */
20
+ class FONError extends Error {
21
+ constructor(category, message, details, traceId) {
22
+ super(message);
23
+ this.category = category;
24
+ this.details = details;
25
+ this.traceId = traceId;
26
+ this.name = 'FONError';
27
+ Object.setPrototypeOf(this, FONError.prototype);
28
+ }
29
+ }
30
+ exports.FONError = FONError;
31
+ //# sourceMappingURL=errors.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.types.js","sourceRoot":"","sources":["../../src/types/errors.types.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,IAAY,aAQX;AARD,WAAY,aAAa;IACvB,wDAAuC,CAAA;IACvC,kDAAiC,CAAA;IACjC,sEAAqD,CAAA;IACrD,0DAAyC,CAAA;IACzC,oDAAmC,CAAA;IACnC,sDAAqC,CAAA;IACrC,oEAAmD,CAAA;AACrD,CAAC,EARW,aAAa,6BAAb,aAAa,QAQxB;AAED;;GAEG;AACH,MAAa,QAAS,SAAQ,KAAK;IACjC,YACS,QAAuB,EAC9B,OAAe,EACR,OAAgB,EAChB,OAAgB;QAEvB,KAAK,CAAC,OAAO,CAAC,CAAC;QALR,aAAQ,GAAR,QAAQ,CAAe;QAEvB,YAAO,GAAP,OAAO,CAAS;QAChB,YAAO,GAAP,OAAO,CAAS;QAGvB,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC;CACF;AAXD,4BAWC"}