@tiangong-lca/tidas-sdk 0.1.20 → 0.1.21
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 +174 -451
- package/dist/core/base/TidasEntity.d.ts +190 -0
- package/dist/core/base/TidasEntity.d.ts.map +1 -0
- package/dist/core/base/TidasEntity.js +433 -0
- package/dist/core/base/TidasEntity.js.map +1 -0
- package/dist/core/config/GlobalConfig.d.ts +60 -0
- package/dist/core/config/GlobalConfig.d.ts.map +1 -0
- package/dist/core/config/GlobalConfig.js +110 -0
- package/dist/core/config/GlobalConfig.js.map +1 -0
- package/dist/core/config/ValidationConfig.d.ts +70 -0
- package/dist/core/config/ValidationConfig.d.ts.map +1 -0
- package/dist/core/config/ValidationConfig.js +157 -0
- package/dist/core/config/ValidationConfig.js.map +1 -0
- package/dist/core/copilot/ai.d.ts +150 -0
- package/dist/core/copilot/ai.d.ts.map +1 -0
- package/dist/core/copilot/ai.js +581 -0
- package/dist/core/copilot/ai.js.map +1 -0
- package/dist/core/copilot/base.d.ts +83 -0
- package/dist/core/copilot/base.d.ts.map +1 -0
- package/dist/core/copilot/base.js +193 -0
- package/dist/core/copilot/base.js.map +1 -0
- package/dist/core/copilot/index.d.ts +1 -0
- package/dist/core/copilot/index.d.ts.map +1 -0
- package/dist/core/copilot/index.js +2 -0
- package/dist/core/copilot/index.js.map +1 -0
- package/dist/core/entities/TidasContact.d.ts +14 -0
- package/dist/core/entities/TidasContact.d.ts.map +1 -0
- package/dist/core/entities/TidasContact.js +124 -0
- package/dist/core/entities/TidasContact.js.map +1 -0
- package/dist/core/entities/TidasFlow.d.ts +14 -0
- package/dist/core/entities/TidasFlow.d.ts.map +1 -0
- package/dist/core/entities/TidasFlow.js +143 -0
- package/dist/core/entities/TidasFlow.js.map +1 -0
- package/dist/core/entities/TidasFlowProperty.d.ts +14 -0
- package/dist/core/entities/TidasFlowProperty.d.ts.map +1 -0
- package/dist/core/entities/TidasFlowProperty.js +156 -0
- package/dist/core/entities/TidasFlowProperty.js.map +1 -0
- package/dist/core/entities/TidasLCIAMethod.d.ts +14 -0
- package/dist/core/entities/TidasLCIAMethod.d.ts.map +1 -0
- package/dist/core/entities/TidasLCIAMethod.js +177 -0
- package/dist/core/entities/TidasLCIAMethod.js.map +1 -0
- package/dist/core/entities/TidasLifeCycleModel.d.ts +14 -0
- package/dist/core/entities/TidasLifeCycleModel.d.ts.map +1 -0
- package/dist/core/entities/TidasLifeCycleModel.js +169 -0
- package/dist/core/entities/TidasLifeCycleModel.js.map +1 -0
- package/dist/core/entities/TidasProcess.d.ts +14 -0
- package/dist/core/entities/TidasProcess.d.ts.map +1 -0
- package/dist/core/entities/TidasProcess.js +191 -0
- package/dist/core/entities/TidasProcess.js.map +1 -0
- package/dist/core/entities/TidasSource.d.ts +14 -0
- package/dist/core/entities/TidasSource.d.ts.map +1 -0
- package/dist/core/entities/TidasSource.js +146 -0
- package/dist/core/entities/TidasSource.js.map +1 -0
- package/dist/core/entities/TidasUnitGroup.d.ts +14 -0
- package/dist/core/entities/TidasUnitGroup.d.ts.map +1 -0
- package/dist/core/entities/TidasUnitGroup.js +177 -0
- package/dist/core/entities/TidasUnitGroup.js.map +1 -0
- package/dist/core/factories/index.d.ts +46 -0
- package/dist/core/factories/index.d.ts.map +1 -0
- package/dist/core/factories/index.js +223 -0
- package/dist/core/factories/index.js.map +1 -0
- package/dist/core/index.d.ts +9 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +56 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/zod-factories.d.ts +71 -0
- package/dist/core/zod-factories.d.ts.map +1 -0
- package/dist/core/zod-factories.js +169 -0
- package/dist/core/zod-factories.js.map +1 -0
- package/dist/core/zod-proxy.d.ts +108 -0
- package/dist/core/zod-proxy.d.ts.map +1 -0
- package/dist/core/zod-proxy.js +382 -0
- package/dist/core/zod-proxy.js.map +1 -0
- package/dist/data/bundled-methodologies.json +1259 -0
- package/dist/index.d.ts +33 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +73 -0
- package/dist/index.js.map +1 -0
- package/dist/schemas/index.d.ts +48 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +112 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/tidas_contacts.schema.d.ts +124 -0
- package/dist/schemas/tidas_contacts.schema.d.ts.map +1 -0
- package/dist/schemas/tidas_contacts.schema.js +75 -0
- package/dist/schemas/tidas_contacts.schema.js.map +1 -0
- package/dist/schemas/tidas_contacts_category.schema.d.ts +3 -0
- package/dist/schemas/tidas_contacts_category.schema.d.ts.map +1 -0
- package/dist/schemas/tidas_contacts_category.schema.js +53 -0
- package/dist/schemas/tidas_contacts_category.schema.js.map +1 -0
- package/dist/schemas/tidas_data_types.schema.d.ts +34 -0
- package/dist/schemas/tidas_data_types.schema.d.ts.map +1 -0
- package/dist/schemas/tidas_data_types.schema.js +60 -0
- package/dist/schemas/tidas_data_types.schema.js.map +1 -0
- package/dist/schemas/tidas_flowproperties.schema.d.ts +152 -0
- package/dist/schemas/tidas_flowproperties.schema.d.ts.map +1 -0
- package/dist/schemas/tidas_flowproperties.schema.js +88 -0
- package/dist/schemas/tidas_flowproperties.schema.js.map +1 -0
- package/dist/schemas/tidas_flowproperties_category.schema.d.ts +3 -0
- package/dist/schemas/tidas_flowproperties_category.schema.d.ts.map +1 -0
- package/dist/schemas/tidas_flowproperties_category.schema.js +28 -0
- package/dist/schemas/tidas_flowproperties_category.schema.js.map +1 -0
- package/dist/schemas/tidas_flows.schema.d.ts +215 -0
- package/dist/schemas/tidas_flows.schema.d.ts.map +1 -0
- package/dist/schemas/tidas_flows.schema.js +165 -0
- package/dist/schemas/tidas_flows.schema.js.map +1 -0
- package/dist/schemas/tidas_flows_elementary_category.schema.d.ts +3 -0
- package/dist/schemas/tidas_flows_elementary_category.schema.d.ts.map +1 -0
- package/dist/schemas/tidas_flows_elementary_category.schema.js +309 -0
- package/dist/schemas/tidas_flows_elementary_category.schema.js.map +1 -0
- package/dist/schemas/tidas_flows_product_category.schema.d.ts +3 -0
- package/dist/schemas/tidas_flows_product_category.schema.d.ts.map +1 -0
- package/dist/schemas/tidas_flows_product_category.schema.js +28508 -0
- package/dist/schemas/tidas_flows_product_category.schema.js.map +1 -0
- package/dist/schemas/tidas_lciamethods.schema.d.ts +546 -0
- package/dist/schemas/tidas_lciamethods.schema.d.ts.map +1 -0
- package/dist/schemas/tidas_lciamethods.schema.js +513 -0
- package/dist/schemas/tidas_lciamethods.schema.js.map +1 -0
- package/dist/schemas/tidas_lciamethods_category.schema.d.ts +3 -0
- package/dist/schemas/tidas_lciamethods_category.schema.d.ts.map +1 -0
- package/dist/schemas/tidas_lciamethods_category.schema.js +278 -0
- package/dist/schemas/tidas_lciamethods_category.schema.js.map +1 -0
- package/dist/schemas/tidas_lifecyclemodels.schema.d.ts +465 -0
- package/dist/schemas/tidas_lifecyclemodels.schema.d.ts.map +1 -0
- package/dist/schemas/tidas_lifecyclemodels.schema.js +420 -0
- package/dist/schemas/tidas_lifecyclemodels.schema.js.map +1 -0
- package/dist/schemas/tidas_locations_category.schema.d.ts +3 -0
- package/dist/schemas/tidas_locations_category.schema.d.ts.map +1 -0
- package/dist/schemas/tidas_locations_category.schema.js +655 -0
- package/dist/schemas/tidas_locations_category.schema.js.map +1 -0
- package/dist/schemas/tidas_processes.schema.d.ts +626 -0
- package/dist/schemas/tidas_processes.schema.d.ts.map +1 -0
- package/dist/schemas/tidas_processes.schema.js +659 -0
- package/dist/schemas/tidas_processes.schema.js.map +1 -0
- package/dist/schemas/tidas_processes_category.schema.d.ts +3 -0
- package/dist/schemas/tidas_processes_category.schema.d.ts.map +1 -0
- package/dist/schemas/tidas_processes_category.schema.js +4904 -0
- package/dist/schemas/tidas_processes_category.schema.js.map +1 -0
- package/dist/schemas/tidas_sources.schema.d.ts +113 -0
- package/dist/schemas/tidas_sources.schema.d.ts.map +1 -0
- package/dist/schemas/tidas_sources.schema.js +73 -0
- package/dist/schemas/tidas_sources.schema.js.map +1 -0
- package/dist/schemas/tidas_sources_category.schema.d.ts +3 -0
- package/dist/schemas/tidas_sources_category.schema.d.ts.map +1 -0
- package/dist/schemas/tidas_sources_category.schema.js +43 -0
- package/dist/schemas/tidas_sources_category.schema.js.map +1 -0
- package/dist/schemas/tidas_unitgroups.schema.d.ts +140 -0
- package/dist/schemas/tidas_unitgroups.schema.d.ts.map +1 -0
- package/dist/schemas/tidas_unitgroups.schema.js +103 -0
- package/dist/schemas/tidas_unitgroups.schema.js.map +1 -0
- package/dist/schemas/tidas_unitgroups_category.schema.d.ts +3 -0
- package/dist/schemas/tidas_unitgroups_category.schema.d.ts.map +1 -0
- package/dist/schemas/tidas_unitgroups_category.schema.js +28 -0
- package/dist/schemas/tidas_unitgroups_category.schema.js.map +1 -0
- package/dist/services/copilot-service.d.ts +147 -0
- package/dist/services/copilot-service.d.ts.map +1 -0
- package/dist/services/copilot-service.js +259 -0
- package/dist/services/copilot-service.js.map +1 -0
- package/dist/services/index.d.ts +9 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +24 -0
- package/dist/services/index.js.map +1 -0
- package/dist/types/index.d.ts +22 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +21 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/multi-lang-types.d.ts +23 -0
- package/dist/types/multi-lang-types.d.ts.map +1 -0
- package/dist/types/multi-lang-types.js +40 -0
- package/dist/types/multi-lang-types.js.map +1 -0
- package/dist/types/tidas_contacts.d.ts +72 -0
- package/dist/types/tidas_contacts.d.ts.map +1 -0
- package/dist/types/tidas_contacts.js +8 -0
- package/dist/types/tidas_contacts.js.map +1 -0
- package/dist/types/tidas_contacts_category.d.ts +43 -0
- package/dist/types/tidas_contacts_category.d.ts.map +1 -0
- package/dist/types/tidas_contacts_category.js +8 -0
- package/dist/types/tidas_contacts_category.js.map +1 -0
- package/dist/types/tidas_data_types.d.ts +116 -0
- package/dist/types/tidas_data_types.d.ts.map +1 -0
- package/dist/types/tidas_data_types.js +8 -0
- package/dist/types/tidas_data_types.js.map +1 -0
- package/dist/types/tidas_flowproperties.d.ts +73 -0
- package/dist/types/tidas_flowproperties.d.ts.map +1 -0
- package/dist/types/tidas_flowproperties.js +8 -0
- package/dist/types/tidas_flowproperties.js.map +1 -0
- package/dist/types/tidas_flowproperties_category.d.ts +23 -0
- package/dist/types/tidas_flowproperties_category.d.ts.map +1 -0
- package/dist/types/tidas_flowproperties_category.js +8 -0
- package/dist/types/tidas_flowproperties_category.js.map +1 -0
- package/dist/types/tidas_flows.d.ts +113 -0
- package/dist/types/tidas_flows.d.ts.map +1 -0
- package/dist/types/tidas_flows.js +8 -0
- package/dist/types/tidas_flows.js.map +1 -0
- package/dist/types/tidas_flows_elementary_category.d.ts +227 -0
- package/dist/types/tidas_flows_elementary_category.d.ts.map +1 -0
- package/dist/types/tidas_flows_elementary_category.js +8 -0
- package/dist/types/tidas_flows_elementary_category.js.map +1 -0
- package/dist/types/tidas_flows_product_category.d.ts +18391 -0
- package/dist/types/tidas_flows_product_category.d.ts.map +1 -0
- package/dist/types/tidas_flows_product_category.js +8 -0
- package/dist/types/tidas_flows_product_category.js.map +1 -0
- package/dist/types/tidas_lciamethods.d.ts +231 -0
- package/dist/types/tidas_lciamethods.d.ts.map +1 -0
- package/dist/types/tidas_lciamethods.js +8 -0
- package/dist/types/tidas_lciamethods.js.map +1 -0
- package/dist/types/tidas_lciamethods_category.d.ts +215 -0
- package/dist/types/tidas_lciamethods_category.d.ts.map +1 -0
- package/dist/types/tidas_lciamethods_category.js +8 -0
- package/dist/types/tidas_lciamethods_category.js.map +1 -0
- package/dist/types/tidas_lifecyclemodels.d.ts +259 -0
- package/dist/types/tidas_lifecyclemodels.d.ts.map +1 -0
- package/dist/types/tidas_lifecyclemodels.js +8 -0
- package/dist/types/tidas_lifecyclemodels.js.map +1 -0
- package/dist/types/tidas_locations_category.d.ts +7 -0
- package/dist/types/tidas_locations_category.d.ts.map +1 -0
- package/dist/types/tidas_locations_category.js +8 -0
- package/dist/types/tidas_locations_category.js.map +1 -0
- package/dist/types/tidas_processes.d.ts +301 -0
- package/dist/types/tidas_processes.d.ts.map +1 -0
- package/dist/types/tidas_processes.js +8 -0
- package/dist/types/tidas_processes.js.map +1 -0
- package/dist/types/tidas_processes_category.d.ts +3327 -0
- package/dist/types/tidas_processes_category.d.ts.map +1 -0
- package/dist/types/tidas_processes_category.js +8 -0
- package/dist/types/tidas_processes_category.js.map +1 -0
- package/dist/types/tidas_sources.d.ts +58 -0
- package/dist/types/tidas_sources.d.ts.map +1 -0
- package/dist/types/tidas_sources.js +8 -0
- package/dist/types/tidas_sources.js.map +1 -0
- package/dist/types/tidas_sources_category.d.ts +35 -0
- package/dist/types/tidas_sources_category.d.ts.map +1 -0
- package/dist/types/tidas_sources_category.js +8 -0
- package/dist/types/tidas_sources_category.js.map +1 -0
- package/dist/types/tidas_unitgroups.d.ts +85 -0
- package/dist/types/tidas_unitgroups.d.ts.map +1 -0
- package/dist/types/tidas_unitgroups.js +8 -0
- package/dist/types/tidas_unitgroups.js.map +1 -0
- package/dist/types/tidas_unitgroups_category.d.ts +23 -0
- package/dist/types/tidas_unitgroups_category.d.ts.map +1 -0
- package/dist/types/tidas_unitgroups_category.js +8 -0
- package/dist/types/tidas_unitgroups_category.js.map +1 -0
- package/dist/utils/diff.d.ts +47 -0
- package/dist/utils/diff.d.ts.map +1 -0
- package/dist/utils/diff.js +263 -0
- package/dist/utils/diff.js.map +1 -0
- package/dist/utils/index.d.ts +7 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +31 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/object-utils.d.ts +47 -0
- package/dist/utils/object-utils.d.ts.map +1 -0
- package/dist/utils/object-utils.js +332 -0
- package/dist/utils/object-utils.js.map +1 -0
- package/package.json +4 -4
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { ValidationConfig, ValidationMode } from './ValidationConfig';
|
|
2
|
+
/**
|
|
3
|
+
* Global configuration for TIDAS SDK
|
|
4
|
+
*/
|
|
5
|
+
declare class TidasGlobalConfig {
|
|
6
|
+
private _defaultValidationConfig;
|
|
7
|
+
/**
|
|
8
|
+
* Get the current default validation configuration
|
|
9
|
+
*/
|
|
10
|
+
getDefaultValidationConfig(): ValidationConfig;
|
|
11
|
+
/**
|
|
12
|
+
* Set the default validation mode globally
|
|
13
|
+
*/
|
|
14
|
+
setDefaultValidationMode(mode: ValidationMode): void;
|
|
15
|
+
/**
|
|
16
|
+
* Set the complete default validation configuration
|
|
17
|
+
*/
|
|
18
|
+
setDefaultValidationConfig(config: Partial<ValidationConfig>): void;
|
|
19
|
+
/**
|
|
20
|
+
* Reset to default configuration
|
|
21
|
+
*/
|
|
22
|
+
resetToDefaults(): void;
|
|
23
|
+
/**
|
|
24
|
+
* Load configuration from environment variables
|
|
25
|
+
*/
|
|
26
|
+
loadFromEnvironment(): void;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Global configuration instance
|
|
30
|
+
*/
|
|
31
|
+
export declare const globalConfig: TidasGlobalConfig;
|
|
32
|
+
/**
|
|
33
|
+
* Convenience functions for global configuration
|
|
34
|
+
*/
|
|
35
|
+
/**
|
|
36
|
+
* Set global validation mode
|
|
37
|
+
*/
|
|
38
|
+
export declare function setGlobalValidationMode(mode: ValidationMode): void;
|
|
39
|
+
/**
|
|
40
|
+
* Get current global validation mode
|
|
41
|
+
*/
|
|
42
|
+
export declare function getGlobalValidationMode(): ValidationMode;
|
|
43
|
+
/**
|
|
44
|
+
* Set global validation configuration
|
|
45
|
+
*/
|
|
46
|
+
export declare function setGlobalValidationConfig(config: Partial<ValidationConfig>): void;
|
|
47
|
+
/**
|
|
48
|
+
* Get current global validation configuration
|
|
49
|
+
*/
|
|
50
|
+
export declare function getGlobalValidationConfig(): ValidationConfig;
|
|
51
|
+
/**
|
|
52
|
+
* Reset global configuration to defaults
|
|
53
|
+
*/
|
|
54
|
+
export declare function resetGlobalConfig(): void;
|
|
55
|
+
/**
|
|
56
|
+
* Load configuration from environment variables
|
|
57
|
+
*/
|
|
58
|
+
export declare function loadConfigFromEnvironment(): void;
|
|
59
|
+
export {};
|
|
60
|
+
//# sourceMappingURL=GlobalConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GlobalConfig.d.ts","sourceRoot":"","sources":["../../../src/core/config/GlobalConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAA6B,MAAM,oBAAoB,CAAC;AAEjG;;GAEG;AACH,cAAM,iBAAiB;IACrB,OAAO,CAAC,wBAAwB,CAAsD;IAEtF;;OAEG;IACH,0BAA0B,IAAI,gBAAgB;IAI9C;;OAEG;IACH,wBAAwB,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAIpD;;OAEG;IACH,0BAA0B,CAAC,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAOnE;;OAEG;IACH,eAAe,IAAI,IAAI;IAIvB;;OAEG;IACH,mBAAmB,IAAI,IAAI;CAgB5B;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,mBAA0B,CAAC;AAEpD;;GAEG;AAEH;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAElE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,cAAc,CAExD;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAEjF;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,gBAAgB,CAE5D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.globalConfig = void 0;
|
|
4
|
+
exports.setGlobalValidationMode = setGlobalValidationMode;
|
|
5
|
+
exports.getGlobalValidationMode = getGlobalValidationMode;
|
|
6
|
+
exports.setGlobalValidationConfig = setGlobalValidationConfig;
|
|
7
|
+
exports.getGlobalValidationConfig = getGlobalValidationConfig;
|
|
8
|
+
exports.resetGlobalConfig = resetGlobalConfig;
|
|
9
|
+
exports.loadConfigFromEnvironment = loadConfigFromEnvironment;
|
|
10
|
+
const ValidationConfig_1 = require("./ValidationConfig");
|
|
11
|
+
/**
|
|
12
|
+
* Global configuration for TIDAS SDK
|
|
13
|
+
*/
|
|
14
|
+
class TidasGlobalConfig {
|
|
15
|
+
constructor() {
|
|
16
|
+
this._defaultValidationConfig = { ...ValidationConfig_1.DEFAULT_VALIDATION_CONFIG };
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Get the current default validation configuration
|
|
20
|
+
*/
|
|
21
|
+
getDefaultValidationConfig() {
|
|
22
|
+
return { ...this._defaultValidationConfig };
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Set the default validation mode globally
|
|
26
|
+
*/
|
|
27
|
+
setDefaultValidationMode(mode) {
|
|
28
|
+
this._defaultValidationConfig.mode = mode;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Set the complete default validation configuration
|
|
32
|
+
*/
|
|
33
|
+
setDefaultValidationConfig(config) {
|
|
34
|
+
this._defaultValidationConfig = {
|
|
35
|
+
...this._defaultValidationConfig,
|
|
36
|
+
...config
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Reset to default configuration
|
|
41
|
+
*/
|
|
42
|
+
resetToDefaults() {
|
|
43
|
+
this._defaultValidationConfig = { ...ValidationConfig_1.DEFAULT_VALIDATION_CONFIG };
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Load configuration from environment variables
|
|
47
|
+
*/
|
|
48
|
+
loadFromEnvironment() {
|
|
49
|
+
const envMode = process.env.TIDAS_VALIDATION_MODE;
|
|
50
|
+
if (envMode && ['strict', 'weak', 'ignore'].includes(envMode)) {
|
|
51
|
+
this._defaultValidationConfig.mode = envMode;
|
|
52
|
+
}
|
|
53
|
+
const envThrowOnError = process.env.TIDAS_THROW_ON_ERROR;
|
|
54
|
+
if (envThrowOnError !== undefined) {
|
|
55
|
+
this._defaultValidationConfig.throwOnError = envThrowOnError === 'true';
|
|
56
|
+
}
|
|
57
|
+
const envIncludeWarnings = process.env.TIDAS_INCLUDE_WARNINGS;
|
|
58
|
+
if (envIncludeWarnings !== undefined) {
|
|
59
|
+
this._defaultValidationConfig.includeWarnings = envIncludeWarnings === 'true';
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Global configuration instance
|
|
65
|
+
*/
|
|
66
|
+
exports.globalConfig = new TidasGlobalConfig();
|
|
67
|
+
/**
|
|
68
|
+
* Convenience functions for global configuration
|
|
69
|
+
*/
|
|
70
|
+
/**
|
|
71
|
+
* Set global validation mode
|
|
72
|
+
*/
|
|
73
|
+
function setGlobalValidationMode(mode) {
|
|
74
|
+
exports.globalConfig.setDefaultValidationMode(mode);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Get current global validation mode
|
|
78
|
+
*/
|
|
79
|
+
function getGlobalValidationMode() {
|
|
80
|
+
return exports.globalConfig.getDefaultValidationConfig().mode;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Set global validation configuration
|
|
84
|
+
*/
|
|
85
|
+
function setGlobalValidationConfig(config) {
|
|
86
|
+
exports.globalConfig.setDefaultValidationConfig(config);
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Get current global validation configuration
|
|
90
|
+
*/
|
|
91
|
+
function getGlobalValidationConfig() {
|
|
92
|
+
return exports.globalConfig.getDefaultValidationConfig();
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Reset global configuration to defaults
|
|
96
|
+
*/
|
|
97
|
+
function resetGlobalConfig() {
|
|
98
|
+
exports.globalConfig.resetToDefaults();
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Load configuration from environment variables
|
|
102
|
+
*/
|
|
103
|
+
function loadConfigFromEnvironment() {
|
|
104
|
+
exports.globalConfig.loadFromEnvironment();
|
|
105
|
+
}
|
|
106
|
+
// Auto-load from environment on module initialization
|
|
107
|
+
if (typeof process !== 'undefined' && process.env) {
|
|
108
|
+
loadConfigFromEnvironment();
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=GlobalConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GlobalConfig.js","sourceRoot":"","sources":["../../../src/core/config/GlobalConfig.ts"],"names":[],"mappings":";;;AAwEA,0DAEC;AAKD,0DAEC;AAKD,8DAEC;AAKD,8DAEC;AAKD,8CAEC;AAKD,8DAEC;AA7GD,yDAAiG;AAEjG;;GAEG;AACH,MAAM,iBAAiB;IAAvB;QACU,6BAAwB,GAAqB,EAAE,GAAG,4CAAyB,EAAE,CAAC;IAoDxF,CAAC;IAlDC;;OAEG;IACH,0BAA0B;QACxB,OAAO,EAAE,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,wBAAwB,CAAC,IAAoB;QAC3C,IAAI,CAAC,wBAAwB,CAAC,IAAI,GAAG,IAAI,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,0BAA0B,CAAC,MAAiC;QAC1D,IAAI,CAAC,wBAAwB,GAAG;YAC9B,GAAG,IAAI,CAAC,wBAAwB;YAChC,GAAG,MAAM;SACV,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,eAAe;QACb,IAAI,CAAC,wBAAwB,GAAG,EAAE,GAAG,4CAAyB,EAAE,CAAC;IACnE,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAuC,CAAC;QACpE,IAAI,OAAO,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9D,IAAI,CAAC,wBAAwB,CAAC,IAAI,GAAG,OAAO,CAAC;QAC/C,CAAC;QAED,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;QACzD,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;YAClC,IAAI,CAAC,wBAAwB,CAAC,YAAY,GAAG,eAAe,KAAK,MAAM,CAAC;QAC1E,CAAC;QAED,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;QAC9D,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;YACrC,IAAI,CAAC,wBAAwB,CAAC,eAAe,GAAG,kBAAkB,KAAK,MAAM,CAAC;QAChF,CAAC;IACH,CAAC;CACF;AAED;;GAEG;AACU,QAAA,YAAY,GAAG,IAAI,iBAAiB,EAAE,CAAC;AAEpD;;GAEG;AAEH;;GAEG;AACH,SAAgB,uBAAuB,CAAC,IAAoB;IAC1D,oBAAY,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,SAAgB,uBAAuB;IACrC,OAAO,oBAAY,CAAC,0BAA0B,EAAE,CAAC,IAAI,CAAC;AACxD,CAAC;AAED;;GAEG;AACH,SAAgB,yBAAyB,CAAC,MAAiC;IACzE,oBAAY,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,SAAgB,yBAAyB;IACvC,OAAO,oBAAY,CAAC,0BAA0B,EAAE,CAAC;AACnD,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB;IAC/B,oBAAY,CAAC,eAAe,EAAE,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,SAAgB,yBAAyB;IACvC,oBAAY,CAAC,mBAAmB,EAAE,CAAC;AACrC,CAAC;AAED,sDAAsD;AACtD,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAClD,yBAAyB,EAAE,CAAC;AAC9B,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Validation mode types
|
|
4
|
+
*/
|
|
5
|
+
export type ValidationMode = 'strict' | 'weak' | 'ignore';
|
|
6
|
+
/**
|
|
7
|
+
* Validation configuration interface
|
|
8
|
+
*/
|
|
9
|
+
export interface ValidationConfig {
|
|
10
|
+
mode: ValidationMode;
|
|
11
|
+
throwOnError?: boolean;
|
|
12
|
+
includeWarnings?: boolean;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Validation warning interface
|
|
16
|
+
*/
|
|
17
|
+
export interface ValidationWarning {
|
|
18
|
+
path: string[];
|
|
19
|
+
message: string;
|
|
20
|
+
code: string;
|
|
21
|
+
severity: 'low' | 'medium' | 'high';
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Enhanced validation result type
|
|
25
|
+
*/
|
|
26
|
+
export type EnhancedValidationResult<T> = {
|
|
27
|
+
success: true;
|
|
28
|
+
data: T;
|
|
29
|
+
warnings?: ValidationWarning[];
|
|
30
|
+
mode: ValidationMode;
|
|
31
|
+
} | {
|
|
32
|
+
success: false;
|
|
33
|
+
error: z.ZodError;
|
|
34
|
+
warnings?: ValidationWarning[];
|
|
35
|
+
mode: ValidationMode;
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Error severity classification
|
|
39
|
+
*/
|
|
40
|
+
export declare enum ErrorSeverity {
|
|
41
|
+
CRITICAL = "critical",
|
|
42
|
+
WARNING = "warning",
|
|
43
|
+
INFO = "info"
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Validation utilities class
|
|
47
|
+
*/
|
|
48
|
+
export declare class ValidationUtils {
|
|
49
|
+
/**
|
|
50
|
+
* Categorize Zod error by severity
|
|
51
|
+
*/
|
|
52
|
+
static categorizeError(error: z.ZodIssue): ErrorSeverity;
|
|
53
|
+
/**
|
|
54
|
+
* Convert Zod issue to validation warning
|
|
55
|
+
*/
|
|
56
|
+
static issueToWarning(issue: z.ZodIssue): ValidationWarning;
|
|
57
|
+
/**
|
|
58
|
+
* Perform weak validation that returns warnings instead of errors
|
|
59
|
+
*/
|
|
60
|
+
static performWeakValidation<T>(schema: z.ZodSchema<T>, data: any, config: ValidationConfig): EnhancedValidationResult<T>;
|
|
61
|
+
/**
|
|
62
|
+
* Perform validation based on mode
|
|
63
|
+
*/
|
|
64
|
+
static performValidation<T>(schema: z.ZodSchema<T>, data: any, config: ValidationConfig): EnhancedValidationResult<T>;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Default validation configuration
|
|
68
|
+
*/
|
|
69
|
+
export declare const DEFAULT_VALIDATION_CONFIG: ValidationConfig;
|
|
70
|
+
//# sourceMappingURL=ValidationConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ValidationConfig.d.ts","sourceRoot":"","sources":["../../../src/core/config/ValidationConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,cAAc,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,MAAM,wBAAwB,CAAC,CAAC,IAAI;IACxC,OAAO,EAAE,IAAI,CAAC;IACd,IAAI,EAAE,CAAC,CAAC;IACR,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC/B,IAAI,EAAE,cAAc,CAAC;CACtB,GAAG;IACF,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC;IAClB,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC/B,IAAI,EAAE,cAAc,CAAC;CACtB,CAAC;AAEF;;GAEG;AACH,oBAAY,aAAa;IACvB,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,IAAI,SAAS;CACd;AAaD;;GAEG;AACH,qBAAa,eAAe;IAC1B;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,GAAG,aAAa;IAkCxD;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,GAAG,iBAAiB;IAY3D;;OAEG;IACH,MAAM,CAAC,qBAAqB,CAAC,CAAC,EAC5B,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EACtB,IAAI,EAAE,GAAG,EACT,MAAM,EAAE,gBAAgB,GACvB,wBAAwB,CAAC,CAAC,CAAC;IA6C9B;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,CAAC,EACxB,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EACtB,IAAI,EAAE,GAAG,EACT,MAAM,EAAE,gBAAgB,GACvB,wBAAwB,CAAC,CAAC,CAAC;CAiC/B;AAED;;GAEG;AACH,eAAO,MAAM,yBAAyB,EAAE,gBAIvC,CAAC"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DEFAULT_VALIDATION_CONFIG = exports.ValidationUtils = exports.ErrorSeverity = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
/**
|
|
6
|
+
* Error severity classification
|
|
7
|
+
*/
|
|
8
|
+
var ErrorSeverity;
|
|
9
|
+
(function (ErrorSeverity) {
|
|
10
|
+
ErrorSeverity["CRITICAL"] = "critical";
|
|
11
|
+
ErrorSeverity["WARNING"] = "warning";
|
|
12
|
+
ErrorSeverity["INFO"] = "info";
|
|
13
|
+
})(ErrorSeverity || (exports.ErrorSeverity = ErrorSeverity = {}));
|
|
14
|
+
/**
|
|
15
|
+
* Critical error patterns that should always cause validation failure
|
|
16
|
+
*/
|
|
17
|
+
const CRITICAL_ERROR_PATTERNS = [
|
|
18
|
+
'Required',
|
|
19
|
+
'Expected string, received undefined',
|
|
20
|
+
'Expected number, received undefined',
|
|
21
|
+
'Expected object, received undefined',
|
|
22
|
+
'Expected array, received undefined',
|
|
23
|
+
];
|
|
24
|
+
/**
|
|
25
|
+
* Validation utilities class
|
|
26
|
+
*/
|
|
27
|
+
class ValidationUtils {
|
|
28
|
+
/**
|
|
29
|
+
* Categorize Zod error by severity
|
|
30
|
+
*/
|
|
31
|
+
static categorizeError(error) {
|
|
32
|
+
const message = error.message;
|
|
33
|
+
// Check for critical patterns
|
|
34
|
+
for (const pattern of CRITICAL_ERROR_PATTERNS) {
|
|
35
|
+
if (message.includes(pattern)) {
|
|
36
|
+
return ErrorSeverity.CRITICAL;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
// Type-specific categorization
|
|
40
|
+
switch (error.code) {
|
|
41
|
+
case 'invalid_type':
|
|
42
|
+
// If input is undefined for required field, it's critical
|
|
43
|
+
if (error.input === undefined) {
|
|
44
|
+
return ErrorSeverity.CRITICAL;
|
|
45
|
+
}
|
|
46
|
+
return ErrorSeverity.WARNING;
|
|
47
|
+
case 'too_small':
|
|
48
|
+
case 'too_big':
|
|
49
|
+
return ErrorSeverity.WARNING;
|
|
50
|
+
case 'invalid_value':
|
|
51
|
+
return ErrorSeverity.WARNING;
|
|
52
|
+
case 'unrecognized_keys':
|
|
53
|
+
return ErrorSeverity.INFO;
|
|
54
|
+
default:
|
|
55
|
+
return ErrorSeverity.WARNING;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Convert Zod issue to validation warning
|
|
60
|
+
*/
|
|
61
|
+
static issueToWarning(issue) {
|
|
62
|
+
const severity = this.categorizeError(issue);
|
|
63
|
+
return {
|
|
64
|
+
path: issue.path.map(p => String(p)),
|
|
65
|
+
message: issue.message,
|
|
66
|
+
code: issue.code,
|
|
67
|
+
severity: severity === ErrorSeverity.CRITICAL ? 'high' :
|
|
68
|
+
severity === ErrorSeverity.WARNING ? 'medium' : 'low'
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Perform weak validation that returns warnings instead of errors
|
|
73
|
+
*/
|
|
74
|
+
static performWeakValidation(schema, data, config) {
|
|
75
|
+
const result = schema.safeParse(data);
|
|
76
|
+
if (result.success) {
|
|
77
|
+
return {
|
|
78
|
+
success: true,
|
|
79
|
+
data: result.data,
|
|
80
|
+
mode: config.mode
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
// Categorize errors
|
|
84
|
+
const criticalErrors = [];
|
|
85
|
+
const warnings = [];
|
|
86
|
+
for (const issue of result.error.issues) {
|
|
87
|
+
const severity = this.categorizeError(issue);
|
|
88
|
+
if (severity === ErrorSeverity.CRITICAL) {
|
|
89
|
+
criticalErrors.push(issue);
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
warnings.push(this.issueToWarning(issue));
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
// If there are critical errors, validation fails
|
|
96
|
+
if (criticalErrors.length > 0) {
|
|
97
|
+
const criticalError = new zod_1.z.ZodError(criticalErrors);
|
|
98
|
+
return {
|
|
99
|
+
success: false,
|
|
100
|
+
error: criticalError,
|
|
101
|
+
warnings: config.includeWarnings ? warnings : undefined,
|
|
102
|
+
mode: config.mode
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
// No critical errors - weak validation passes with warnings
|
|
106
|
+
return {
|
|
107
|
+
success: true,
|
|
108
|
+
data: data, // Accept data as-is for weak validation
|
|
109
|
+
warnings: config.includeWarnings ? warnings : undefined,
|
|
110
|
+
mode: config.mode
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Perform validation based on mode
|
|
115
|
+
*/
|
|
116
|
+
static performValidation(schema, data, config) {
|
|
117
|
+
switch (config.mode) {
|
|
118
|
+
case 'strict': {
|
|
119
|
+
const strictResult = schema.safeParse(data);
|
|
120
|
+
if (strictResult.success) {
|
|
121
|
+
return {
|
|
122
|
+
success: true,
|
|
123
|
+
data: strictResult.data,
|
|
124
|
+
mode: config.mode
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
return {
|
|
129
|
+
success: false,
|
|
130
|
+
error: strictResult.error,
|
|
131
|
+
mode: config.mode
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
case 'weak':
|
|
136
|
+
return this.performWeakValidation(schema, data, config);
|
|
137
|
+
case 'ignore':
|
|
138
|
+
return {
|
|
139
|
+
success: true,
|
|
140
|
+
data: data,
|
|
141
|
+
mode: config.mode
|
|
142
|
+
};
|
|
143
|
+
default:
|
|
144
|
+
throw new Error(`Unknown validation mode: ${config.mode}`);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
exports.ValidationUtils = ValidationUtils;
|
|
149
|
+
/**
|
|
150
|
+
* Default validation configuration
|
|
151
|
+
*/
|
|
152
|
+
exports.DEFAULT_VALIDATION_CONFIG = {
|
|
153
|
+
mode: 'strict',
|
|
154
|
+
throwOnError: false,
|
|
155
|
+
includeWarnings: true
|
|
156
|
+
};
|
|
157
|
+
//# sourceMappingURL=ValidationConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ValidationConfig.js","sourceRoot":"","sources":["../../../src/core/config/ValidationConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { ChatOpenAI } from '@langchain/openai';
|
|
2
|
+
import { Schema } from '../../utils/object-utils';
|
|
3
|
+
/**
|
|
4
|
+
* Model configuration object
|
|
5
|
+
* @param model - The model to use
|
|
6
|
+
* @param apiKey - The API key to use
|
|
7
|
+
* @param baseURL - The base URL to use
|
|
8
|
+
*/
|
|
9
|
+
export type ModelConfig = {
|
|
10
|
+
model?: string;
|
|
11
|
+
apiKey?: string;
|
|
12
|
+
baseURL?: string;
|
|
13
|
+
};
|
|
14
|
+
declare function getModel(modelConfig: ModelConfig): Promise<ChatOpenAI<import("@langchain/openai").ChatOpenAICallOptions>>;
|
|
15
|
+
/**
|
|
16
|
+
* Custom extractor
|
|
17
|
+
*
|
|
18
|
+
* Extracts JSON content from a string where
|
|
19
|
+
* JSON is embedded between ```json and ``` tags.
|
|
20
|
+
*/
|
|
21
|
+
declare const extractJson: (output: any, schema: Schema, returnSingle?: boolean) => any;
|
|
22
|
+
declare function fixJsonDataWithAI(data: any, originalData: any, modelConfig?: ModelConfig): Promise<any>;
|
|
23
|
+
/**
|
|
24
|
+
* Extracts valid JSON data from AI response with retry mechanism
|
|
25
|
+
* Combines extractJson and fixJsonDataWithAI functions to ensure the extracted data
|
|
26
|
+
* matches the original data structure
|
|
27
|
+
*
|
|
28
|
+
* @param data - The AI response or data containing JSON
|
|
29
|
+
* @param originalData - The original data structure to match
|
|
30
|
+
* @param schema - The schema to validate against
|
|
31
|
+
* @param maxRetries - Maximum number of retry attempts (default: 3)
|
|
32
|
+
* @returns The extracted and validated JSON data
|
|
33
|
+
*/
|
|
34
|
+
export declare function extractValidJsonWithRetry(data: any, originalData: any, schema?: Schema, maxRetries?: number): Promise<any>;
|
|
35
|
+
/**
|
|
36
|
+
* Suggests improvements to data based on TIDAS methodology rules.
|
|
37
|
+
*
|
|
38
|
+
* This function uses AI to analyze the provided data against TIDAS methodology rules
|
|
39
|
+
* and suggests optimized content that better complies with the methodology requirements.
|
|
40
|
+
* The function ensures that the data structure remains unchanged while improving the content.
|
|
41
|
+
*
|
|
42
|
+
* @param data - The original data object to be improved. Can be any JSON-serializable object
|
|
43
|
+
* such as process names, descriptions, or other TIDAS/ILCD data elements.
|
|
44
|
+
* @param methodology - The methodology rules to apply. Can be:
|
|
45
|
+
* - A complete methodology object loaded from YAML
|
|
46
|
+
* - A specific rule object extracted using getRuleFromMethodologyByPath
|
|
47
|
+
* - A custom rule object with description and rules properties
|
|
48
|
+
* @param modelConfig - The configuration for the AI model. Can be:
|
|
49
|
+
* - A complete model configuration object
|
|
50
|
+
* - A custom model configuration object with model, apiKey, and baseURL properties
|
|
51
|
+
* @returns Promise<any> - The improved data with the same structure as the input but with
|
|
52
|
+
* optimized content that better complies with the methodology.
|
|
53
|
+
* The returned data is guaranteed to match the original schema.
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* ```typescript
|
|
57
|
+
* // Example 1: Improve a process name using specific rules
|
|
58
|
+
* const nameData = [{ '@xml:lang': 'en', '#text': 'Process 1' }];
|
|
59
|
+
* const rule = getRuleFromMethodologyByPath(methodology, 'processDataSet.processInformation.dataSetInformation.name.baseName');
|
|
60
|
+
* const improvedName = await suggest(nameData, rule);
|
|
61
|
+
* // Returns: [{ '@xml:lang': 'en', '#text': 'Production of Product A using Technology X' }]
|
|
62
|
+
*
|
|
63
|
+
* // Example 2: Improve data using full methodology
|
|
64
|
+
* const processData = { name: 'test', description: 'simple desc' };
|
|
65
|
+
* const improvedData = await suggest(processData, fullMethodology);
|
|
66
|
+
* // Returns data with improved names and descriptions
|
|
67
|
+
* ```
|
|
68
|
+
*
|
|
69
|
+
* @throws {Error} If the AI model fails to generate valid JSON
|
|
70
|
+
* @throws {Error} If the OpenAI API is not configured properly
|
|
71
|
+
*/
|
|
72
|
+
declare function suggest(data: any, methodology: any, modelConfig?: ModelConfig): Promise<any>;
|
|
73
|
+
/**
|
|
74
|
+
* Reviews data against TIDAS methodology rules and provides structured feedback.
|
|
75
|
+
*
|
|
76
|
+
* This function uses AI to analyze the provided data against TIDAS methodology rules
|
|
77
|
+
* and provides a review with comments and a compliance score. Unlike the suggest function
|
|
78
|
+
* which modifies data, this function only provides assessment and feedback.
|
|
79
|
+
*
|
|
80
|
+
* @param data - The data object to be reviewed. Can be any JSON-serializable object
|
|
81
|
+
* such as process names, descriptions, or other TIDAS/ILCD data elements.
|
|
82
|
+
* @param methodology - The methodology rules to evaluate against. Can be:
|
|
83
|
+
* - A complete methodology object loaded from YAML
|
|
84
|
+
* - A specific rule object extracted using getRuleFromMethodologyByPath
|
|
85
|
+
* - A custom rule object with description and rules properties
|
|
86
|
+
* @param modelConfig - The configuration for the AI model. Can be:
|
|
87
|
+
* - A complete model configuration object
|
|
88
|
+
* - A custom model configuration object with model, apiKey, and baseURL properties
|
|
89
|
+
* @returns Promise<{review_comment: string, review_score: number}> - A structured review containing:
|
|
90
|
+
* - review_comment: Detailed feedback on compliance and suggestions for improvement
|
|
91
|
+
* - review_score: A numerical score from 0-100 indicating compliance level
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* ```typescript
|
|
95
|
+
* // Example 1: Review a process name against specific rules
|
|
96
|
+
* const nameData = [{ '@xml:lang': 'en', '#text': 'Process 1' }];
|
|
97
|
+
* const rule = getRuleFromMethodologyByPath(methodology, 'processDataSet.processInformation.dataSetInformation.name.baseName');
|
|
98
|
+
* const review = await reviewData(nameData, rule);
|
|
99
|
+
* // Returns: {
|
|
100
|
+
* // review_comment: "The process name 'Process 1' is too generic. It should include specific information about...",
|
|
101
|
+
* // review_score: 45
|
|
102
|
+
* // }
|
|
103
|
+
*
|
|
104
|
+
* // Example 2: Review complete process data
|
|
105
|
+
* const processData = { name: 'test', description: 'simple desc' };
|
|
106
|
+
* const review = await reviewData(processData, fullMethodology);
|
|
107
|
+
* // Returns comprehensive review with score
|
|
108
|
+
* ```
|
|
109
|
+
*
|
|
110
|
+
* @throws {Error} If the AI model fails to generate valid structured output
|
|
111
|
+
* @throws {Error} If the OpenAI API is not configured properly
|
|
112
|
+
*/
|
|
113
|
+
declare function reviewData(data: any, methodology: any, modelConfig?: ModelConfig): Promise<{
|
|
114
|
+
review_comment: string;
|
|
115
|
+
review_score: number;
|
|
116
|
+
}>;
|
|
117
|
+
/**
|
|
118
|
+
* Suggests improvements for an entire object based on all applicable methodology rules.
|
|
119
|
+
*
|
|
120
|
+
* This function analyzes a complete data object against all relevant methodology rules,
|
|
121
|
+
* applies AI suggestions to each applicable field, and returns a new object with improvements.
|
|
122
|
+
*
|
|
123
|
+
* @param data - The complete data object to improve (TidasEntity or plain object)
|
|
124
|
+
* @param methodologyType - The type of methodology to use:
|
|
125
|
+
* - A string key for available methodologies (e.g., 'processes', 'flows')
|
|
126
|
+
* - A methodology object already loaded
|
|
127
|
+
* @param options - Optional configuration:
|
|
128
|
+
* - parallelRequests: Number of parallel AI requests (default: 1)
|
|
129
|
+
* - skipPaths: Array of paths to skip
|
|
130
|
+
* - maxRetries: Maximum retries per rule (default: 1)
|
|
131
|
+
* @returns Promise<any> - Improved data object with the same structure as input
|
|
132
|
+
*
|
|
133
|
+
* @example
|
|
134
|
+
* ```typescript
|
|
135
|
+
* // Example: Improve an entire Process object
|
|
136
|
+
* const process = createProcess();
|
|
137
|
+
* process.processDataSet.processInformation.dataSetInformation['common:UUID'] = 'test-123';
|
|
138
|
+
* const improvedData = await suggestEntireObject(process, 'processes');
|
|
139
|
+
*
|
|
140
|
+
* // Create a new Process with improved data
|
|
141
|
+
* const improvedProcess = createProcess();
|
|
142
|
+
* Object.assign(improvedProcess, improvedData);
|
|
143
|
+
* ```
|
|
144
|
+
*/
|
|
145
|
+
export declare function suggestEntireObject(data: any, methodologyType: string | Record<string, any>, options?: {
|
|
146
|
+
skipPaths?: string[];
|
|
147
|
+
maxRetries?: number;
|
|
148
|
+
}): Promise<any>;
|
|
149
|
+
export { extractJson, fixJsonDataWithAI, suggest, reviewData, getModel };
|
|
150
|
+
//# sourceMappingURL=ai.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../../../src/core/copilot/ai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAG/C,OAAO,EAGL,MAAM,EACP,MAAM,0BAA0B,CAAC;AASlC;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,iBAAe,QAAQ,CAAC,WAAW,EAAE,WAAW,0EAS/C;AAED;;;;;GAKG;AACH,QAAA,MAAM,WAAW,GAAI,QAAQ,GAAG,EAAE,QAAQ,MAAM,EAAE,sBAAmB,KAAG,GA4CvE,CAAC;AAEF,iBAAe,iBAAiB,CAC9B,IAAI,EAAE,GAAG,EACT,YAAY,EAAE,GAAG,EACjB,WAAW,CAAC,EAAE,WAAW,gBA+B1B;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,GAAG,EACT,YAAY,EAAE,GAAG,EACjB,MAAM,CAAC,EAAE,MAAM,EACf,UAAU,GAAE,MAAU,GACrB,OAAO,CAAC,GAAG,CAAC,CAwEd;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,iBAAe,OAAO,CACpB,IAAI,EAAE,GAAG,EACT,WAAW,EAAE,GAAG,EAChB,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,GAAG,CAAC,CAsDd;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,iBAAe,UAAU,CACvB,IAAI,EAAE,GAAG,EACT,WAAW,EAAE,GAAG,EAChB,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC,CAqI3D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,GAAG,EACT,eAAe,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC7C,OAAO,CAAC,EAAE;IACR,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACA,OAAO,CAAC,GAAG,CAAC,CA8Jd;AAGD,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC"}
|