@futdevpro/nts-dynamo 1.15.105 → 1.15.110
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/.dynamo/logs/cicd-pipeline/output.log +1621 -1669
- package/.dynamo/logs/cicd-pipeline/status.json +43 -29
- package/build/_modules/ai/_collections/ai-model-config-validator.util.d.ts +32 -0
- package/build/_modules/ai/_collections/ai-model-config-validator.util.d.ts.map +1 -0
- package/build/_modules/ai/_collections/ai-model-config-validator.util.js +95 -0
- package/build/_modules/ai/_collections/ai-model-config-validator.util.js.map +1 -0
- package/build/_modules/ai/_collections/ai-provider-error.util.d.ts +44 -0
- package/build/_modules/ai/_collections/ai-provider-error.util.d.ts.map +1 -0
- package/build/_modules/ai/_collections/ai-provider-error.util.js +121 -0
- package/build/_modules/ai/_collections/ai-provider-error.util.js.map +1 -0
- package/build/_modules/ai/_models/interfaces/dynts-ai-provider-error.interface.d.ts +17 -0
- package/build/_modules/ai/_models/interfaces/dynts-ai-provider-error.interface.d.ts.map +1 -0
- package/build/_modules/ai/_models/interfaces/dynts-ai-provider-error.interface.js +3 -0
- package/build/_modules/ai/_models/interfaces/dynts-ai-provider-error.interface.js.map +1 -0
- package/build/_modules/ai/_modules/ai-mock/_collections/aim-default-collection.util.d.ts +23 -0
- package/build/_modules/ai/_modules/ai-mock/_collections/aim-default-collection.util.d.ts.map +1 -0
- package/build/_modules/ai/_modules/ai-mock/_collections/aim-default-collection.util.js +52 -0
- package/build/_modules/ai/_modules/ai-mock/_collections/aim-default-collection.util.js.map +1 -0
- package/build/_modules/ai/_modules/ai-mock/_collections/aim-fixture-match.util.d.ts +34 -0
- package/build/_modules/ai/_modules/ai-mock/_collections/aim-fixture-match.util.d.ts.map +1 -0
- package/build/_modules/ai/_modules/ai-mock/_collections/aim-fixture-match.util.js +56 -0
- package/build/_modules/ai/_modules/ai-mock/_collections/aim-fixture-match.util.js.map +1 -0
- package/build/_modules/ai/_modules/ai-mock/_collections/aim-fixture-serializer.util.d.ts +33 -0
- package/build/_modules/ai/_modules/ai-mock/_collections/aim-fixture-serializer.util.d.ts.map +1 -0
- package/build/_modules/ai/_modules/ai-mock/_collections/aim-fixture-serializer.util.js +89 -0
- package/build/_modules/ai/_modules/ai-mock/_collections/aim-fixture-serializer.util.js.map +1 -0
- package/build/_modules/ai/_modules/ai-mock/_enums/aim-modality.enum.d.ts +16 -0
- package/build/_modules/ai/_modules/ai-mock/_enums/aim-modality.enum.d.ts.map +1 -0
- package/build/_modules/ai/_modules/ai-mock/_enums/aim-modality.enum.js +20 -0
- package/build/_modules/ai/_modules/ai-mock/_enums/aim-modality.enum.js.map +1 -0
- package/build/_modules/ai/_modules/ai-mock/_models/interfaces/aim-call-input.interface.d.ts +15 -0
- package/build/_modules/ai/_modules/ai-mock/_models/interfaces/aim-call-input.interface.d.ts.map +1 -0
- package/build/_modules/ai/_modules/ai-mock/_models/interfaces/aim-call-input.interface.js +3 -0
- package/build/_modules/ai/_modules/ai-mock/_models/interfaces/aim-call-input.interface.js.map +1 -0
- package/build/_modules/ai/_modules/ai-mock/_models/interfaces/aim-error.interface.d.ts +11 -0
- package/build/_modules/ai/_modules/ai-mock/_models/interfaces/aim-error.interface.d.ts.map +1 -0
- package/build/_modules/ai/_modules/ai-mock/_models/interfaces/aim-error.interface.js +3 -0
- package/build/_modules/ai/_modules/ai-mock/_models/interfaces/aim-error.interface.js.map +1 -0
- package/build/_modules/ai/_modules/ai-mock/_models/interfaces/aim-fixture.interface.d.ts +30 -0
- package/build/_modules/ai/_modules/ai-mock/_models/interfaces/aim-fixture.interface.d.ts.map +1 -0
- package/build/_modules/ai/_modules/ai-mock/_models/interfaces/aim-fixture.interface.js +3 -0
- package/build/_modules/ai/_modules/ai-mock/_models/interfaces/aim-fixture.interface.js.map +1 -0
- package/build/_modules/ai/_modules/ai-mock/_models/interfaces/aim-request.interface.d.ts +19 -0
- package/build/_modules/ai/_modules/ai-mock/_models/interfaces/aim-request.interface.d.ts.map +1 -0
- package/build/_modules/ai/_modules/ai-mock/_models/interfaces/aim-request.interface.js +3 -0
- package/build/_modules/ai/_modules/ai-mock/_models/interfaces/aim-request.interface.js.map +1 -0
- package/build/_modules/ai/_modules/ai-mock/_models/interfaces/aim-service-collection.interface.d.ts +19 -0
- package/build/_modules/ai/_modules/ai-mock/_models/interfaces/aim-service-collection.interface.d.ts.map +1 -0
- package/build/_modules/ai/_modules/ai-mock/_models/interfaces/aim-service-collection.interface.js +3 -0
- package/build/_modules/ai/_modules/ai-mock/_models/interfaces/aim-service-collection.interface.js.map +1 -0
- package/build/_modules/ai/{_services → _modules/ai-mock/_services}/ai-embedding-mock.service.d.ts +2 -2
- package/build/_modules/ai/_modules/ai-mock/_services/ai-embedding-mock.service.d.ts.map +1 -0
- package/build/_modules/ai/{_services → _modules/ai-mock/_services}/ai-embedding-mock.service.js +1 -1
- package/build/_modules/ai/_modules/ai-mock/_services/ai-embedding-mock.service.js.map +1 -0
- package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-harness.service.d.ts +48 -0
- package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-harness.service.d.ts.map +1 -0
- package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-harness.service.js +104 -0
- package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-harness.service.js.map +1 -0
- package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-store.service.d.ts +35 -0
- package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-store.service.d.ts.map +1 -0
- package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-store.service.js +60 -0
- package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-store.service.js.map +1 -0
- package/build/_modules/ai/_modules/ai-mock/_services/aim-mock.service.d.ts +60 -0
- package/build/_modules/ai/_modules/ai-mock/_services/aim-mock.service.d.ts.map +1 -0
- package/build/_modules/ai/_modules/ai-mock/_services/aim-mock.service.js +121 -0
- package/build/_modules/ai/_modules/ai-mock/_services/aim-mock.service.js.map +1 -0
- package/build/_modules/ai/_modules/ai-mock/index.d.ts +14 -0
- package/build/_modules/ai/_modules/ai-mock/index.d.ts.map +1 -0
- package/build/_modules/ai/_modules/ai-mock/index.js +41 -0
- package/build/_modules/ai/_modules/ai-mock/index.js.map +1 -0
- package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.d.ts +31 -3
- package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.d.ts.map +1 -1
- package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.js +71 -33
- package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.js.map +1 -1
- package/build/_modules/ai/_services/ai-embedding-provider.registry.d.ts +1 -1
- package/build/_modules/ai/_services/ai-embedding-provider.registry.d.ts.map +1 -1
- package/build/_modules/ai/_services/ai-embedding-provider.registry.js +1 -1
- package/build/_modules/ai/_services/ai-embedding-provider.registry.js.map +1 -1
- package/build/_modules/ai/_services/ai-llm.service-base.d.ts +16 -0
- package/build/_modules/ai/_services/ai-llm.service-base.d.ts.map +1 -1
- package/build/_modules/ai/_services/ai-llm.service-base.js +65 -0
- package/build/_modules/ai/_services/ai-llm.service-base.js.map +1 -1
- package/build/_modules/ai/index.d.ts +4 -1
- package/build/_modules/ai/index.d.ts.map +1 -1
- package/build/_modules/ai/index.js +9 -1
- package/build/_modules/ai/index.js.map +1 -1
- package/build/_modules/server/server-status/server-status.control-service.d.ts +10 -0
- package/build/_modules/server/server-status/server-status.control-service.d.ts.map +1 -1
- package/build/_modules/server/server-status/server-status.control-service.js +21 -0
- package/build/_modules/server/server-status/server-status.control-service.js.map +1 -1
- package/package.json +11 -2
- package/src/_modules/ai/_collections/ai-model-config-validator.util.spec.ts +150 -0
- package/src/_modules/ai/_collections/ai-model-config-validator.util.ts +131 -0
- package/src/_modules/ai/_collections/ai-provider-error.util.ts +144 -0
- package/src/_modules/ai/_models/interfaces/dynts-ai-provider-error.interface.ts +16 -0
- package/src/_modules/ai/_modules/ai-mock/_collections/aim-default-collection.util.spec.ts +72 -0
- package/src/_modules/ai/_modules/ai-mock/_collections/aim-default-collection.util.ts +71 -0
- package/src/_modules/ai/_modules/ai-mock/_collections/aim-fixture-match.util.spec.ts +57 -0
- package/src/_modules/ai/_modules/ai-mock/_collections/aim-fixture-match.util.ts +60 -0
- package/src/_modules/ai/_modules/ai-mock/_collections/aim-fixture-serializer.util.spec.ts +56 -0
- package/src/_modules/ai/_modules/ai-mock/_collections/aim-fixture-serializer.util.ts +107 -0
- package/src/_modules/ai/_modules/ai-mock/_enums/aim-modality.enum.ts +15 -0
- package/src/_modules/ai/_modules/ai-mock/_models/interfaces/aim-call-input.interface.ts +14 -0
- package/src/_modules/ai/_modules/ai-mock/_models/interfaces/aim-error.interface.ts +11 -0
- package/src/_modules/ai/_modules/ai-mock/_models/interfaces/aim-fixture.interface.ts +30 -0
- package/src/_modules/ai/_modules/ai-mock/_models/interfaces/aim-request.interface.ts +19 -0
- package/src/_modules/ai/_modules/ai-mock/_models/interfaces/aim-service-collection.interface.ts +20 -0
- package/src/_modules/ai/{_services → _modules/ai-mock/_services}/ai-embedding-mock.service.spec.ts +1 -1
- package/src/_modules/ai/{_services → _modules/ai-mock/_services}/ai-embedding-mock.service.ts +2 -2
- package/src/_modules/ai/_modules/ai-mock/_services/aim-fixture-harness.service.spec.ts +134 -0
- package/src/_modules/ai/_modules/ai-mock/_services/aim-fixture-harness.service.ts +127 -0
- package/src/_modules/ai/_modules/ai-mock/_services/aim-fixture-pipeline.spec.ts +105 -0
- package/src/_modules/ai/_modules/ai-mock/_services/aim-fixture-store.service.spec.ts +50 -0
- package/src/_modules/ai/_modules/ai-mock/_services/aim-fixture-store.service.ts +65 -0
- package/src/_modules/ai/_modules/ai-mock/_services/aim-mock.service.spec.ts +112 -0
- package/src/_modules/ai/_modules/ai-mock/_services/aim-mock.service.ts +142 -0
- package/src/_modules/ai/_modules/ai-mock/index.ts +44 -0
- package/src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.ts +90 -38
- package/src/_modules/ai/_services/ai-embedding-provider.registry.spec.ts +1 -1
- package/src/_modules/ai/_services/ai-embedding-provider.registry.ts +1 -1
- package/src/_modules/ai/_services/ai-llm.service-base.reconciler.spec.ts +133 -0
- package/src/_modules/ai/_services/ai-llm.service-base.ts +80 -0
- package/src/_modules/ai/index.ts +11 -1
- package/src/_modules/server/server-status/server-status.control-service.spec.ts +40 -0
- package/src/_modules/server/server-status/server-status.control-service.ts +40 -0
- package/build/_modules/ai/_services/ai-embedding-mock.service.d.ts.map +0 -1
- package/build/_modules/ai/_services/ai-embedding-mock.service.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aim-fixture-harness.service.js","sourceRoot":"","sources":["../../../../../../src/_modules/ai/_modules/ai-mock/_services/aim-fixture-harness.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { DyNTS_AIMock_Request } from '../_models/interfaces/aim-request.interface';
|
|
2
|
+
import { DyNTS_AIMock_Fixture } from '../_models/interfaces/aim-fixture.interface';
|
|
3
|
+
/**
|
|
4
|
+
* A beégetett fixture-ök tára — match-kulcs → fixture Map (lazy-cache; a Map MAGA a cache). A fixture-öket
|
|
5
|
+
* konstans-blob-fájlokból (D6, git-tracked) importáljuk és `register`-rel adjuk be; a runtime-feloldás a
|
|
6
|
+
* `DyNTS_AIMock_FixtureMatch_Util.buildMatchKey`-en megy (config-sorrend- + input-whitespace-független).
|
|
7
|
+
* A reject-on-unknown (D3) NEM itt dől el — a `resolve` `undefined`-et ad, a hívó (`DyNTS_AIMock_Service`)
|
|
8
|
+
* dob strukturált „no-fixture" hibát. Ez a réteg tiszta, hálózat-mentes — NEM generál (SP-3.2 = G1 gate).
|
|
9
|
+
*/
|
|
10
|
+
export declare class DyNTS_AIMock_FixtureStore_Service {
|
|
11
|
+
/** match-kulcs → fixture. */
|
|
12
|
+
private readonly fixturesByKey;
|
|
13
|
+
/** @param fixtures opcionális kezdő-készlet (konstans-blob-okból). */
|
|
14
|
+
constructor(fixtures?: DyNTS_AIMock_Fixture[]);
|
|
15
|
+
/**
|
|
16
|
+
* Fixture-ök beindexelése (match-kulcs szerint). Azonos kulcsú fixture felülírja a korábbit (last-wins).
|
|
17
|
+
* @param fixtures - a beégetett fixture-rekordok
|
|
18
|
+
*/
|
|
19
|
+
register(fixtures: DyNTS_AIMock_Fixture[]): void;
|
|
20
|
+
/**
|
|
21
|
+
* Input-match feloldás: hit → fixture; miss → `undefined` (a reject-on-unknown a hívó dolga).
|
|
22
|
+
* @param request - a mock-hívás bemenete
|
|
23
|
+
*/
|
|
24
|
+
resolve(request: DyNTS_AIMock_Request): DyNTS_AIMock_Fixture | undefined;
|
|
25
|
+
/**
|
|
26
|
+
* Van-e fixture az adott request-re.
|
|
27
|
+
* @param request - a mock-hívás bemenete
|
|
28
|
+
*/
|
|
29
|
+
has(request: DyNTS_AIMock_Request): boolean;
|
|
30
|
+
/** A beindexelt fixture-ök száma. */
|
|
31
|
+
get size(): number;
|
|
32
|
+
/** A fixture match-kulcsa a saját nyers mezőiből (a `resolve`-val szimmetrikusan képezve). */
|
|
33
|
+
private keyOf;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=aim-fixture-store.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aim-fixture-store.service.d.ts","sourceRoot":"","sources":["../../../../../../src/_modules/ai/_modules/ai-mock/_services/aim-fixture-store.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AAGnF;;;;;;GAMG;AACH,qBAAa,iCAAiC;IAE5C,6BAA6B;IAC7B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgD;IAE9E,sEAAsE;gBAC1D,QAAQ,CAAC,EAAE,oBAAoB,EAAE;IAM7C;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,EAAE,GAAG,IAAI;IAMhD;;;OAGG;IACH,OAAO,CAAC,OAAO,EAAE,oBAAoB,GAAG,oBAAoB,GAAG,SAAS;IAIxE;;;OAGG;IACH,GAAG,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO;IAI3C,qCAAqC;IACrC,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,8FAA8F;IAC9F,OAAO,CAAC,KAAK;CASd"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DyNTS_AIMock_FixtureStore_Service = void 0;
|
|
4
|
+
const aim_fixture_match_util_1 = require("../_collections/aim-fixture-match.util");
|
|
5
|
+
/**
|
|
6
|
+
* A beégetett fixture-ök tára — match-kulcs → fixture Map (lazy-cache; a Map MAGA a cache). A fixture-öket
|
|
7
|
+
* konstans-blob-fájlokból (D6, git-tracked) importáljuk és `register`-rel adjuk be; a runtime-feloldás a
|
|
8
|
+
* `DyNTS_AIMock_FixtureMatch_Util.buildMatchKey`-en megy (config-sorrend- + input-whitespace-független).
|
|
9
|
+
* A reject-on-unknown (D3) NEM itt dől el — a `resolve` `undefined`-et ad, a hívó (`DyNTS_AIMock_Service`)
|
|
10
|
+
* dob strukturált „no-fixture" hibát. Ez a réteg tiszta, hálózat-mentes — NEM generál (SP-3.2 = G1 gate).
|
|
11
|
+
*/
|
|
12
|
+
class DyNTS_AIMock_FixtureStore_Service {
|
|
13
|
+
/** match-kulcs → fixture. */
|
|
14
|
+
fixturesByKey = new Map();
|
|
15
|
+
/** @param fixtures opcionális kezdő-készlet (konstans-blob-okból). */
|
|
16
|
+
constructor(fixtures) {
|
|
17
|
+
if (fixtures?.length) {
|
|
18
|
+
this.register(fixtures);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Fixture-ök beindexelése (match-kulcs szerint). Azonos kulcsú fixture felülírja a korábbit (last-wins).
|
|
23
|
+
* @param fixtures - a beégetett fixture-rekordok
|
|
24
|
+
*/
|
|
25
|
+
register(fixtures) {
|
|
26
|
+
for (const fixture of fixtures) {
|
|
27
|
+
this.fixturesByKey.set(this.keyOf(fixture), fixture);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Input-match feloldás: hit → fixture; miss → `undefined` (a reject-on-unknown a hívó dolga).
|
|
32
|
+
* @param request - a mock-hívás bemenete
|
|
33
|
+
*/
|
|
34
|
+
resolve(request) {
|
|
35
|
+
return this.fixturesByKey.get(aim_fixture_match_util_1.DyNTS_AIMock_FixtureMatch_Util.buildMatchKey(request));
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Van-e fixture az adott request-re.
|
|
39
|
+
* @param request - a mock-hívás bemenete
|
|
40
|
+
*/
|
|
41
|
+
has(request) {
|
|
42
|
+
return this.fixturesByKey.has(aim_fixture_match_util_1.DyNTS_AIMock_FixtureMatch_Util.buildMatchKey(request));
|
|
43
|
+
}
|
|
44
|
+
/** A beindexelt fixture-ök száma. */
|
|
45
|
+
get size() {
|
|
46
|
+
return this.fixturesByKey.size;
|
|
47
|
+
}
|
|
48
|
+
/** A fixture match-kulcsa a saját nyers mezőiből (a `resolve`-val szimmetrikusan képezve). */
|
|
49
|
+
keyOf(fixture) {
|
|
50
|
+
return aim_fixture_match_util_1.DyNTS_AIMock_FixtureMatch_Util.buildMatchKey({
|
|
51
|
+
provider: fixture.provider,
|
|
52
|
+
model: fixture.model,
|
|
53
|
+
modality: fixture.modality,
|
|
54
|
+
config: fixture.config,
|
|
55
|
+
input: fixture.input,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
exports.DyNTS_AIMock_FixtureStore_Service = DyNTS_AIMock_FixtureStore_Service;
|
|
60
|
+
//# sourceMappingURL=aim-fixture-store.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aim-fixture-store.service.js","sourceRoot":"","sources":["../../../../../../src/_modules/ai/_modules/ai-mock/_services/aim-fixture-store.service.ts"],"names":[],"mappings":";;;AAEA,mFAAwF;AAExF;;;;;;GAMG;AACH,MAAa,iCAAiC;IAE5C,6BAA6B;IACZ,aAAa,GAAsC,IAAI,GAAG,EAAE,CAAC;IAE9E,sEAAsE;IACtE,YAAY,QAAiC;QAC3C,IAAI,QAAQ,EAAE,MAAM,EAAE,CAAC;YACrB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,QAAQ,CAAC,QAAgC;QACvC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,OAAO,CAAC,OAA6B;QACnC,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,uDAA8B,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IACvF,CAAC;IAED;;;OAGG;IACH,GAAG,CAAC,OAA6B;QAC/B,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,uDAA8B,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IACvF,CAAC;IAED,qCAAqC;IACrC,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;IACjC,CAAC;IAED,8FAA8F;IACtF,KAAK,CAAC,OAA6B;QACzC,OAAO,uDAA8B,CAAC,aAAa,CAAC;YAClD,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC,CAAC;IACL,CAAC;CACF;AArDD,8EAqDC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { DyFM_AI_ModelInfo } from '@futdevpro/fsm-dynamo/ai';
|
|
2
|
+
import { DyNTS_AIMock_CallInput } from '../_models/interfaces/aim-call-input.interface';
|
|
3
|
+
import { DyNTS_AIMock_FixtureStore_Service } from './aim-fixture-store.service';
|
|
4
|
+
/**
|
|
5
|
+
* A mock provider-surface (MP-4 SP-4.1) — a valódi AI-hívás kiváltása beégetett fixture-ökkel, outbound
|
|
6
|
+
* hívás NÉLKÜL. Négy modalitás-metódus (`chatCompletion`/`embed`/`generateImage`/`generateAudio`), mind a
|
|
7
|
+
* `DyNTS_AIMock_FixtureStore`-ból replay-el: hit → a beégetett kimenet; miss → strukturált reject-on-unknown
|
|
8
|
+
* (D3, NEM silent-fallback, NEM outbound); beégetett provider-faithful hiba → ugyanaz a hiba, mint a valódi
|
|
9
|
+
* providernél. A config-validáció (FR-048 reconciler validate-mode) a `settingsSchema` populálása UTÁN
|
|
10
|
+
* kötendő be (G4) — l. a `replay` TODO-ját; addig SZÁNDÉKOSAN nem validálunk (nem fake-elünk provider-error-t).
|
|
11
|
+
*/
|
|
12
|
+
export declare class DyNTS_AIMock_Service {
|
|
13
|
+
/** A fixture-tár, amiből a replay megy. */
|
|
14
|
+
private readonly store;
|
|
15
|
+
/**
|
|
16
|
+
* A modell-registry a config-validaciohoz (FR-048 `settingsSchema`). Ures registry → NINCS
|
|
17
|
+
* config-validacio (permissziv), csak fixture-replay — igy a mock a schema kikerulese elott is hasznalhato.
|
|
18
|
+
*/
|
|
19
|
+
private readonly modelRegistry;
|
|
20
|
+
/**
|
|
21
|
+
* @param store a beégetett fixture-ök tára.
|
|
22
|
+
* @param modelRegistry opcionális modell-registry (pl. `DyFM_OAI_Models`) a FR-048 config-validációhoz.
|
|
23
|
+
*/
|
|
24
|
+
constructor(store: DyNTS_AIMock_FixtureStore_Service, modelRegistry?: DyFM_AI_ModelInfo[]);
|
|
25
|
+
/**
|
|
26
|
+
* Chat/completion replay a beégetett fixture-ből.
|
|
27
|
+
* @param set - provider + model + opcionális config + prompt-input
|
|
28
|
+
*/
|
|
29
|
+
chatCompletion(set: DyNTS_AIMock_CallInput): Promise<unknown>;
|
|
30
|
+
/**
|
|
31
|
+
* Embedding replay a beégetett fixture-ből.
|
|
32
|
+
* @param set - provider + model + opcionális config + szöveg(ek)-input
|
|
33
|
+
*/
|
|
34
|
+
embed(set: DyNTS_AIMock_CallInput): Promise<unknown>;
|
|
35
|
+
/**
|
|
36
|
+
* Kép-generálás replay a beégetett fixture-ből.
|
|
37
|
+
* @param set - provider + model + opcionális config + kép-prompt-input
|
|
38
|
+
*/
|
|
39
|
+
generateImage(set: DyNTS_AIMock_CallInput): Promise<unknown>;
|
|
40
|
+
/**
|
|
41
|
+
* Hang (transcription / TTS) replay a beégetett fixture-ből.
|
|
42
|
+
* @param set - provider + model + opcionális config + audio/szöveg-input
|
|
43
|
+
*/
|
|
44
|
+
generateAudio(set: DyNTS_AIMock_CallInput): Promise<unknown>;
|
|
45
|
+
/** A modalitás-metódus bemenetéből teljes `DyNTS_AIMock_Request`. */
|
|
46
|
+
private toRequest;
|
|
47
|
+
/** A közös replay/reject-mag. */
|
|
48
|
+
private replay;
|
|
49
|
+
/**
|
|
50
|
+
* FR-048 config-validáció — **delegál** a modul-szintű `DyNTS_AI_ModelConfig_Validator`-ra, hogy EGY
|
|
51
|
+
* validációs út legyen (SSoT): ugyanaz a kód dönt a production pre-validációnál és a mockban.
|
|
52
|
+
* Üres registry / schema-mentes modell → permisszív (nem találgatunk).
|
|
53
|
+
*/
|
|
54
|
+
private validateConfig;
|
|
55
|
+
/** Egy `DyNTS_AIMock_Error` leíróból a dobandó `DyFM_Error`. */
|
|
56
|
+
private toProviderFaithfulError;
|
|
57
|
+
/** Strukturált „no-fixture" hiba (D3) — beszédes, a hiányzó kulccsal + az extend-recepttel (MP-6). */
|
|
58
|
+
private rejectOnUnknown;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=aim-mock.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aim-mock.service.d.ts","sourceRoot":"","sources":["../../../../../../src/_modules/ai/_modules/ai-mock/_services/aim-mock.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAO7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAC;AAExF,OAAO,EAAE,iCAAiC,EAAE,MAAM,6BAA6B,CAAC;AAEhF;;;;;;;GAOG;AACH,qBAAa,oBAAoB;IAE/B,2CAA2C;IAC3C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoC;IAE1D;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsB;IAEpD;;;OAGG;gBACS,KAAK,EAAE,iCAAiC,EAAE,aAAa,CAAC,EAAE,iBAAiB,EAAE;IAKzF;;;OAGG;IACG,cAAc,CAAC,GAAG,EAAE,sBAAsB,GAAG,OAAO,CAAC,OAAO,CAAC;IAInE;;;OAGG;IACG,KAAK,CAAC,GAAG,EAAE,sBAAsB,GAAG,OAAO,CAAC,OAAO,CAAC;IAI1D;;;OAGG;IACG,aAAa,CAAC,GAAG,EAAE,sBAAsB,GAAG,OAAO,CAAC,OAAO,CAAC;IAIlE;;;OAGG;IACG,aAAa,CAAC,GAAG,EAAE,sBAAsB,GAAG,OAAO,CAAC,OAAO,CAAC;IAIlE,qEAAqE;IACrE,OAAO,CAAC,SAAS;IAUjB,iCAAiC;IACjC,OAAO,CAAC,MAAM;IAkBd;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAatB,gEAAgE;IAChE,OAAO,CAAC,uBAAuB;IAS/B,sGAAsG;IACtG,OAAO,CAAC,eAAe;CAUxB"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DyNTS_AIMock_Service = void 0;
|
|
4
|
+
const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
|
|
5
|
+
const aim_modality_enum_1 = require("../_enums/aim-modality.enum");
|
|
6
|
+
const ai_model_config_validator_util_1 = require("../../../_collections/ai-model-config-validator.util");
|
|
7
|
+
const aim_fixture_match_util_1 = require("../_collections/aim-fixture-match.util");
|
|
8
|
+
/**
|
|
9
|
+
* A mock provider-surface (MP-4 SP-4.1) — a valódi AI-hívás kiváltása beégetett fixture-ökkel, outbound
|
|
10
|
+
* hívás NÉLKÜL. Négy modalitás-metódus (`chatCompletion`/`embed`/`generateImage`/`generateAudio`), mind a
|
|
11
|
+
* `DyNTS_AIMock_FixtureStore`-ból replay-el: hit → a beégetett kimenet; miss → strukturált reject-on-unknown
|
|
12
|
+
* (D3, NEM silent-fallback, NEM outbound); beégetett provider-faithful hiba → ugyanaz a hiba, mint a valódi
|
|
13
|
+
* providernél. A config-validáció (FR-048 reconciler validate-mode) a `settingsSchema` populálása UTÁN
|
|
14
|
+
* kötendő be (G4) — l. a `replay` TODO-ját; addig SZÁNDÉKOSAN nem validálunk (nem fake-elünk provider-error-t).
|
|
15
|
+
*/
|
|
16
|
+
class DyNTS_AIMock_Service {
|
|
17
|
+
/** A fixture-tár, amiből a replay megy. */
|
|
18
|
+
store;
|
|
19
|
+
/**
|
|
20
|
+
* A modell-registry a config-validaciohoz (FR-048 `settingsSchema`). Ures registry → NINCS
|
|
21
|
+
* config-validacio (permissziv), csak fixture-replay — igy a mock a schema kikerulese elott is hasznalhato.
|
|
22
|
+
*/
|
|
23
|
+
modelRegistry;
|
|
24
|
+
/**
|
|
25
|
+
* @param store a beégetett fixture-ök tára.
|
|
26
|
+
* @param modelRegistry opcionális modell-registry (pl. `DyFM_OAI_Models`) a FR-048 config-validációhoz.
|
|
27
|
+
*/
|
|
28
|
+
constructor(store, modelRegistry) {
|
|
29
|
+
this.store = store;
|
|
30
|
+
this.modelRegistry = modelRegistry ?? [];
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Chat/completion replay a beégetett fixture-ből.
|
|
34
|
+
* @param set - provider + model + opcionális config + prompt-input
|
|
35
|
+
*/
|
|
36
|
+
async chatCompletion(set) {
|
|
37
|
+
return this.replay(this.toRequest(set, aim_modality_enum_1.DyNTS_AIMock_Modality.text));
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Embedding replay a beégetett fixture-ből.
|
|
41
|
+
* @param set - provider + model + opcionális config + szöveg(ek)-input
|
|
42
|
+
*/
|
|
43
|
+
async embed(set) {
|
|
44
|
+
return this.replay(this.toRequest(set, aim_modality_enum_1.DyNTS_AIMock_Modality.embedding));
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Kép-generálás replay a beégetett fixture-ből.
|
|
48
|
+
* @param set - provider + model + opcionális config + kép-prompt-input
|
|
49
|
+
*/
|
|
50
|
+
async generateImage(set) {
|
|
51
|
+
return this.replay(this.toRequest(set, aim_modality_enum_1.DyNTS_AIMock_Modality.image));
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Hang (transcription / TTS) replay a beégetett fixture-ből.
|
|
55
|
+
* @param set - provider + model + opcionális config + audio/szöveg-input
|
|
56
|
+
*/
|
|
57
|
+
async generateAudio(set) {
|
|
58
|
+
return this.replay(this.toRequest(set, aim_modality_enum_1.DyNTS_AIMock_Modality.audio));
|
|
59
|
+
}
|
|
60
|
+
/** A modalitás-metódus bemenetéből teljes `DyNTS_AIMock_Request`. */
|
|
61
|
+
toRequest(set, modality) {
|
|
62
|
+
return {
|
|
63
|
+
provider: set.provider,
|
|
64
|
+
model: set.model,
|
|
65
|
+
modality: modality,
|
|
66
|
+
config: set.config,
|
|
67
|
+
input: set.input,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
/** A közös replay/reject-mag. */
|
|
71
|
+
replay(request) {
|
|
72
|
+
// FR-048: a config-validáció a modell `settingsSchema.unsupported`-ja alapján — MÉG a fixture-lookup
|
|
73
|
+
// ELŐTT, ahogy a valódi providernél is a szerver utasítja el a rossz paramétert.
|
|
74
|
+
this.validateConfig(request);
|
|
75
|
+
const fixture = this.store.resolve(request);
|
|
76
|
+
if (!fixture) {
|
|
77
|
+
throw this.rejectOnUnknown(request);
|
|
78
|
+
}
|
|
79
|
+
if (fixture.error) {
|
|
80
|
+
throw this.toProviderFaithfulError(fixture.error);
|
|
81
|
+
}
|
|
82
|
+
return fixture.output;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* FR-048 config-validáció — **delegál** a modul-szintű `DyNTS_AI_ModelConfig_Validator`-ra, hogy EGY
|
|
86
|
+
* validációs út legyen (SSoT): ugyanaz a kód dönt a production pre-validációnál és a mockban.
|
|
87
|
+
* Üres registry / schema-mentes modell → permisszív (nem találgatunk).
|
|
88
|
+
*/
|
|
89
|
+
validateConfig(request) {
|
|
90
|
+
const error = ai_model_config_validator_util_1.DyNTS_AI_ModelConfig_Validator.validate({
|
|
91
|
+
provider: request.provider,
|
|
92
|
+
model: request.model,
|
|
93
|
+
config: request.config,
|
|
94
|
+
registry: this.modelRegistry,
|
|
95
|
+
});
|
|
96
|
+
if (error) {
|
|
97
|
+
throw error;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/** Egy `DyNTS_AIMock_Error` leíróból a dobandó `DyFM_Error`. */
|
|
101
|
+
toProviderFaithfulError(error) {
|
|
102
|
+
return new fsm_dynamo_1.DyFM_Error({
|
|
103
|
+
message: `[ai-mock] provider-faithful error (HTTP ${error.httpStatus}): ${error.reason}`,
|
|
104
|
+
userMessage: 'AI request rejected (mock).',
|
|
105
|
+
errorCode: 'DyNTS-AIMOCK-PERR',
|
|
106
|
+
additionalContent: { providerErrorBody: error.providerErrorBody },
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
/** Strukturált „no-fixture" hiba (D3) — beszédes, a hiányzó kulccsal + az extend-recepttel (MP-6). */
|
|
110
|
+
rejectOnUnknown(request) {
|
|
111
|
+
const matchKey = aim_fixture_match_util_1.DyNTS_AIMock_FixtureMatch_Util.buildMatchKey(request);
|
|
112
|
+
return new fsm_dynamo_1.DyFM_Error({
|
|
113
|
+
message: `[ai-mock] no fixture for '${request.provider}:${request.model}' (${request.modality}). ` +
|
|
114
|
+
`Match-key: ${matchKey}. Beégetés: 'dc ai-mock-extend' (MP-6).`,
|
|
115
|
+
userMessage: 'No mock fixture is registered for this AI request.',
|
|
116
|
+
errorCode: 'DyNTS-AIMOCK-NOFIX',
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
exports.DyNTS_AIMock_Service = DyNTS_AIMock_Service;
|
|
121
|
+
//# sourceMappingURL=aim-mock.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aim-mock.service.js","sourceRoot":"","sources":["../../../../../../src/_modules/ai/_modules/ai-mock/_services/aim-mock.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export * from './_services/ai-embedding-mock.service';
|
|
2
|
+
export * from './_enums/aim-modality.enum';
|
|
3
|
+
export * from './_models/interfaces/aim-request.interface';
|
|
4
|
+
export * from './_models/interfaces/aim-error.interface';
|
|
5
|
+
export * from './_models/interfaces/aim-fixture.interface';
|
|
6
|
+
export * from './_models/interfaces/aim-call-input.interface';
|
|
7
|
+
export * from './_models/interfaces/aim-service-collection.interface';
|
|
8
|
+
export * from './_collections/aim-fixture-match.util';
|
|
9
|
+
export * from './_collections/aim-default-collection.util';
|
|
10
|
+
export * from './_collections/aim-fixture-serializer.util';
|
|
11
|
+
export * from './_services/aim-fixture-store.service';
|
|
12
|
+
export * from './_services/aim-mock.service';
|
|
13
|
+
export * from './_services/aim-fixture-harness.service';
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/ai/_modules/ai-mock/index.ts"],"names":[],"mappings":"AAgBA,cAAc,uCAAuC,CAAC;AAGtD,cAAc,4BAA4B,CAAC;AAG3C,cAAc,4CAA4C,CAAC;AAC3D,cAAc,0CAA0C,CAAC;AACzD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,uDAAuD,CAAC;AAKtE,cAAc,uCAAuC,CAAC;AAGtD,cAAc,4CAA4C,CAAC;AAG3D,cAAc,4CAA4C,CAAC;AAI3D,cAAc,uCAAuC,CAAC;AACtD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yCAAyC,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
//
|
|
3
|
+
// ai-mock module (@futdevpro/nts-dynamo/ai/ai-mock)
|
|
4
|
+
//
|
|
5
|
+
// AI Mocking System — provider-faithful mock-service + fixture-store (Layer B) a valódi AI-hívások
|
|
6
|
+
// kiváltására teszt/CI/lokál-fejlesztésben. A Layer A (per-model config-registry + validátor) a FR-048
|
|
7
|
+
// (`DyFM_AI_ModelSettingsSchema` + reconciler) — az ai-mock azt FOGYASZTJA a provider-faithful
|
|
8
|
+
// error-reprodukcióhoz. Terv: `documentations/plans/ai-mocking-system/HYPERPLAN.md`.
|
|
9
|
+
//
|
|
10
|
+
// SCAFFOLD (Cikl. 2, 2026-07-21): a modul-váz + a meglévő determinisztikus embedding-mock re-exportja.
|
|
11
|
+
// A további szolgáltatások (fixture-store, mock-service, coverage) MP-3..MP-6 során kerülnek ide;
|
|
12
|
+
// almappák (_collections/_enums/_models/_services) csak 3-5+ elemnél jönnek létre (FDP folder-rule).
|
|
13
|
+
//
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
const tslib_1 = require("tslib");
|
|
16
|
+
// Layer B embedding-mag: a determinisztikus embedding-mock (BFR-AM-008) — MP-5 SP-5.1 során FIZIKAILAG
|
|
17
|
+
// ide költözött (`_services/ai-embedding-mock.service.ts`). A régi `@futdevpro/nts-dynamo/ai` útvonal
|
|
18
|
+
// backward-compat re-exportként tovább él, így a FAM-consumer nem törik.
|
|
19
|
+
tslib_1.__exportStar(require("./_services/ai-embedding-mock.service"), exports);
|
|
20
|
+
// ENUMS
|
|
21
|
+
tslib_1.__exportStar(require("./_enums/aim-modality.enum"), exports);
|
|
22
|
+
// MODELS / INTERFACES — fixture-shape (MP-3 SP-3.1)
|
|
23
|
+
tslib_1.__exportStar(require("./_models/interfaces/aim-request.interface"), exports);
|
|
24
|
+
tslib_1.__exportStar(require("./_models/interfaces/aim-error.interface"), exports);
|
|
25
|
+
tslib_1.__exportStar(require("./_models/interfaces/aim-fixture.interface"), exports);
|
|
26
|
+
tslib_1.__exportStar(require("./_models/interfaces/aim-call-input.interface"), exports);
|
|
27
|
+
tslib_1.__exportStar(require("./_models/interfaces/aim-service-collection.interface"), exports);
|
|
28
|
+
// COLLECTIONS — input-match normalizáció (MP-3 SP-3.1).
|
|
29
|
+
// A provider-faithful hiba-alak + a validate-mode a MODUL-SZINTŰ `ai/` alatt él (SSoT), mert production
|
|
30
|
+
// pre-validációra is kell — nem az ai-mock-ból importálandó: `@futdevpro/nts-dynamo/ai`.
|
|
31
|
+
tslib_1.__exportStar(require("./_collections/aim-fixture-match.util"), exports);
|
|
32
|
+
// DEFAULT-BUNDLE factory (MP-7 SP-7.1) — egy hívással álló mock-készlet.
|
|
33
|
+
tslib_1.__exportStar(require("./_collections/aim-default-collection.util"), exports);
|
|
34
|
+
// FIXTURE-SERIALIZER (MP-3 SP-3.1) — determinisztikus, diff-barát konstans-fájl generálás.
|
|
35
|
+
tslib_1.__exportStar(require("./_collections/aim-fixture-serializer.util"), exports);
|
|
36
|
+
// SERVICES — fixture-store (MP-3) + mock-service surface (MP-4 SP-4.1) + generáló harness (MP-3 SP-3.2).
|
|
37
|
+
// A harness KÉT biztonsági zárral véd a véletlen pénzköltés ellen (spend-guard default OFF + D2 tier-cap).
|
|
38
|
+
tslib_1.__exportStar(require("./_services/aim-fixture-store.service"), exports);
|
|
39
|
+
tslib_1.__exportStar(require("./_services/aim-mock.service"), exports);
|
|
40
|
+
tslib_1.__exportStar(require("./_services/aim-fixture-harness.service"), exports);
|
|
41
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/_modules/ai/_modules/ai-mock/index.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,oDAAoD;AACpD,EAAE;AACF,mGAAmG;AACnG,uGAAuG;AACvG,+FAA+F;AAC/F,qFAAqF;AACrF,EAAE;AACF,uGAAuG;AACvG,kGAAkG;AAClG,qGAAqG;AACrG,EAAE;;;AAEF,uGAAuG;AACvG,sGAAsG;AACtG,yEAAyE;AACzE,gFAAsD;AAEtD,QAAQ;AACR,qEAA2C;AAE3C,oDAAoD;AACpD,qFAA2D;AAC3D,mFAAyD;AACzD,qFAA2D;AAC3D,wFAA8D;AAC9D,gGAAsE;AAEtE,wDAAwD;AACxD,wGAAwG;AACxG,yFAAyF;AACzF,gFAAsD;AAEtD,yEAAyE;AACzE,qFAA2D;AAE3D,2FAA2F;AAC3F,qFAA2D;AAE3D,yGAAyG;AACzG,2GAA2G;AAC3G,gFAAsD;AACtD,uEAA6C;AAC7C,kFAAwD"}
|
|
@@ -193,10 +193,38 @@ export declare class DyNTS_OAI_LLM_ServiceBase extends DyNTS_AI_LLM_ServiceBase
|
|
|
193
193
|
/** Tool-argumentumok parse-olasa (OpenAI JSON-string → object); hibas JSON eseten ures object. */
|
|
194
194
|
protected parseToolArguments(raw: string): Record<string, unknown>;
|
|
195
195
|
/**
|
|
196
|
-
*
|
|
197
|
-
*
|
|
198
|
-
*
|
|
196
|
+
* ⚠️ **TUL TAG HEURISZTIKA — csak FALLBACK, ne ez legyen az igazsag forrasa.**
|
|
197
|
+
*
|
|
198
|
+
* Eredetileg (FR-047) azt felteteleztuk, hogy MINDEN `gpt-5.x` + o-series modell elutasitja a
|
|
199
|
+
* sampling-parametereket. **Live capture 2026-07-21 ezt MEGCAFOLTA:**
|
|
200
|
+
* - elutasit: `gpt-5.5`, `o3-mini`, `o4-mini`
|
|
201
|
+
* - **ELFOGADJA**: `gpt-5.4-mini`, `gpt-5.4-nano` (HTTP 200, `reasoning_tokens: 0`)
|
|
202
|
+
*
|
|
203
|
+
* Vagyis erre a ket modellre ez a regex **NEMAN kidobna ervenyes parametereket** — halkan rontva a
|
|
204
|
+
* kimenetet. Ezert az `applySamplingParams` a **registry `settingsSchema`-t reszesiti elonyben**, es ezt
|
|
205
|
+
* a heurisztikat CSAK akkor hasznalja, ha az adott modellhez nincs schema (regi fsm-verzio / ismeretlen
|
|
206
|
+
* modell). Amint a populalt schema mindenhol elerheto, ez a metodus elhagyhato.
|
|
207
|
+
*
|
|
208
|
+
* Reszletek: `documentations/plans/ai-mocking-system/CAPTURE-FINDINGS.md` §1.
|
|
199
209
|
*/
|
|
200
210
|
protected isReasoningModel(modelId: string): boolean;
|
|
211
|
+
/**
|
|
212
|
+
* FR-048 §3 — feloldja az agnosztikus sampling-settingseket (hivas-settings > default), atengedi a
|
|
213
|
+
* per-model reconciler-en (`settingsSchema` szerinti drop/clamp), majd RAKEPZI a natív OpenAI mezokre.
|
|
214
|
+
* Csak azok a natív mezok kerulnek az input-ra, amik a reconcile utan MEGMARADTAK.
|
|
215
|
+
*
|
|
216
|
+
* Ezzel a "melyik modell mit fogad el" tudas a registry `settingsSchema`-jaban (SSoT) el, nem
|
|
217
|
+
* provider-translatoronkent duplikalva.
|
|
218
|
+
*
|
|
219
|
+
* **Atmeneti fallback (szandekos):** ha a registry-bejegyzesnek MEG NINCS `settingsSchema`-ja (regebbi
|
|
220
|
+
* fsm-verzio, vagy registry-ben nem szereplo modell), a korabbi lokalis `isReasoningModel`-drop marad
|
|
221
|
+
* ervenyben — igy a FR-047 `514153f` fix NEM regresszal, amig a schema ki nem kerul a fsm-bol. Amint a
|
|
222
|
+
* schema mindenhol elerheto, ez a fallback (es az `isReasoningModel`) elhagyhato.
|
|
223
|
+
*/
|
|
224
|
+
protected applySamplingParams(set: {
|
|
225
|
+
input: ChatCompletionCreateParamsBase;
|
|
226
|
+
useModel: string;
|
|
227
|
+
settings?: DyFM_OAI_CallSettings;
|
|
228
|
+
}): void;
|
|
201
229
|
}
|
|
202
230
|
//# sourceMappingURL=oai-llm.service-base.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oai-llm.service-base.d.ts","sourceRoot":"","sources":["../../../../../../src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,qBAAqB,EAAmB,MAAM,kCAAkC,CAAC;AAE7H,OAAO,EACL,eAAe,EAEf,gBAAgB,EAChB,4BAA4B,EAE5B,cAAc,EACd,oBAAoB,EACpB,YAAY,EAEZ,iBAAiB,
|
|
1
|
+
{"version":3,"file":"oai-llm.service-base.d.ts","sourceRoot":"","sources":["../../../../../../src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.ts"],"names":[],"mappings":"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"}
|
|
@@ -384,28 +384,15 @@ class DyNTS_OAI_LLM_ServiceBase extends ai_llm_service_base_1.DyNTS_AI_LLM_Servi
|
|
|
384
384
|
getMessageCreateInput(set) {
|
|
385
385
|
try {
|
|
386
386
|
const settings = set.settings ?? this.defaultSettings;
|
|
387
|
+
const useModel = String(settings?.useModel ?? this.defaultModel);
|
|
387
388
|
const result = {
|
|
388
|
-
model:
|
|
389
|
+
model: useModel,
|
|
389
390
|
messages: set.conversation,
|
|
390
391
|
};
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
settings.maxTokens :
|
|
396
|
-
this.defaultSettings.maxTokens; */
|
|
397
|
-
result.max_completion_tokens = (0, fsm_dynamo_1.DyFM_notNull)(settings?.maxTokens) ?
|
|
398
|
-
settings.maxTokens :
|
|
399
|
-
this.defaultSettings.maxTokens;
|
|
400
|
-
result.top_p = (0, fsm_dynamo_1.DyFM_notNull)(settings?.topP) ?
|
|
401
|
-
settings.topP :
|
|
402
|
-
this.defaultSettings.topP;
|
|
403
|
-
result.frequency_penalty = (0, fsm_dynamo_1.DyFM_notNull)(settings?.frequencyPenalty) ?
|
|
404
|
-
settings.frequencyPenalty :
|
|
405
|
-
this.defaultSettings.frequencyPenalty;
|
|
406
|
-
result.presence_penalty = (0, fsm_dynamo_1.DyFM_notNull)(settings?.presencePenalty) ?
|
|
407
|
-
settings.presencePenalty :
|
|
408
|
-
this.defaultSettings.presencePenalty;
|
|
392
|
+
// FR-048 §3: a sampling-parameterek (+ max_completion_tokens) a per-model `settingsSchema` szerint
|
|
393
|
+
// kerulnek ra (drop/clamp). KORABBAN ez a NEM-tool ag FELTETEL NELKUL kuldte a sampling-parametereket,
|
|
394
|
+
// ezert reasoning modellen (GPT-5.x / o-series) 400-zal elhasalt volna — ezt itt zarjuk le.
|
|
395
|
+
this.applySamplingParams({ input: result, useModel: useModel, settings: set.settings });
|
|
409
396
|
return result;
|
|
410
397
|
}
|
|
411
398
|
catch (error) {
|
|
@@ -454,18 +441,11 @@ class DyNTS_OAI_LLM_ServiceBase extends ai_llm_service_base_1.DyNTS_AI_LLM_Servi
|
|
|
454
441
|
const input = {
|
|
455
442
|
model: useModel,
|
|
456
443
|
messages: messages,
|
|
457
|
-
max_completion_tokens: (0, fsm_dynamo_1.DyFM_notNull)(settings?.maxTokens) ? settings.maxTokens : this.defaultSettings.maxTokens,
|
|
458
444
|
};
|
|
459
|
-
//
|
|
460
|
-
//
|
|
461
|
-
//
|
|
462
|
-
|
|
463
|
-
if (!this.isReasoningModel(String(useModel))) {
|
|
464
|
-
input.temperature = (0, fsm_dynamo_1.DyFM_notNull)(settings?.temperature) ? settings.temperature : this.defaultSettings.temperature;
|
|
465
|
-
input.top_p = (0, fsm_dynamo_1.DyFM_notNull)(settings?.topP) ? settings.topP : this.defaultSettings.topP;
|
|
466
|
-
input.frequency_penalty = (0, fsm_dynamo_1.DyFM_notNull)(settings?.frequencyPenalty) ? settings.frequencyPenalty : this.defaultSettings.frequencyPenalty;
|
|
467
|
-
input.presence_penalty = (0, fsm_dynamo_1.DyFM_notNull)(settings?.presencePenalty) ? settings.presencePenalty : this.defaultSettings.presencePenalty;
|
|
468
|
-
}
|
|
445
|
+
// FR-048 §3: a sampling-parameterek + `max_completion_tokens` a per-model `settingsSchema` szerint
|
|
446
|
+
// kerulnek ra. A korabbi lokalis `isReasoningModel`-drop atmeneti fallback-kent bent maradt a
|
|
447
|
+
// helper-ben (l. `applySamplingParams`), amig a schema ki nem kerul a fsm-bol — igy nincs regresszio.
|
|
448
|
+
this.applySamplingParams({ input: input, useModel: String(useModel), settings: set.settings });
|
|
469
449
|
// Ures tools-tomb -> 400 ("tools must have minimum length 1"). Csak akkor kuldjuk, ha van tool.
|
|
470
450
|
if (set.tools.length) {
|
|
471
451
|
input.tools = set.tools.map((tool) => this.toOpenAITool(tool));
|
|
@@ -568,13 +548,71 @@ class DyNTS_OAI_LLM_ServiceBase extends ai_llm_service_base_1.DyNTS_AI_LLM_Servi
|
|
|
568
548
|
}
|
|
569
549
|
}
|
|
570
550
|
/**
|
|
571
|
-
*
|
|
572
|
-
*
|
|
573
|
-
*
|
|
551
|
+
* ⚠️ **TUL TAG HEURISZTIKA — csak FALLBACK, ne ez legyen az igazsag forrasa.**
|
|
552
|
+
*
|
|
553
|
+
* Eredetileg (FR-047) azt felteteleztuk, hogy MINDEN `gpt-5.x` + o-series modell elutasitja a
|
|
554
|
+
* sampling-parametereket. **Live capture 2026-07-21 ezt MEGCAFOLTA:**
|
|
555
|
+
* - elutasit: `gpt-5.5`, `o3-mini`, `o4-mini`
|
|
556
|
+
* - **ELFOGADJA**: `gpt-5.4-mini`, `gpt-5.4-nano` (HTTP 200, `reasoning_tokens: 0`)
|
|
557
|
+
*
|
|
558
|
+
* Vagyis erre a ket modellre ez a regex **NEMAN kidobna ervenyes parametereket** — halkan rontva a
|
|
559
|
+
* kimenetet. Ezert az `applySamplingParams` a **registry `settingsSchema`-t reszesiti elonyben**, es ezt
|
|
560
|
+
* a heurisztikat CSAK akkor hasznalja, ha az adott modellhez nincs schema (regi fsm-verzio / ismeretlen
|
|
561
|
+
* modell). Amint a populalt schema mindenhol elerheto, ez a metodus elhagyhato.
|
|
562
|
+
*
|
|
563
|
+
* Reszletek: `documentations/plans/ai-mocking-system/CAPTURE-FINDINGS.md` §1.
|
|
574
564
|
*/
|
|
575
565
|
isReasoningModel(modelId) {
|
|
576
566
|
return /^gpt-5/.test(modelId) || /^o[0-9]/.test(modelId);
|
|
577
567
|
}
|
|
568
|
+
/**
|
|
569
|
+
* FR-048 §3 — feloldja az agnosztikus sampling-settingseket (hivas-settings > default), atengedi a
|
|
570
|
+
* per-model reconciler-en (`settingsSchema` szerinti drop/clamp), majd RAKEPZI a natív OpenAI mezokre.
|
|
571
|
+
* Csak azok a natív mezok kerulnek az input-ra, amik a reconcile utan MEGMARADTAK.
|
|
572
|
+
*
|
|
573
|
+
* Ezzel a "melyik modell mit fogad el" tudas a registry `settingsSchema`-jaban (SSoT) el, nem
|
|
574
|
+
* provider-translatoronkent duplikalva.
|
|
575
|
+
*
|
|
576
|
+
* **Atmeneti fallback (szandekos):** ha a registry-bejegyzesnek MEG NINCS `settingsSchema`-ja (regebbi
|
|
577
|
+
* fsm-verzio, vagy registry-ben nem szereplo modell), a korabbi lokalis `isReasoningModel`-drop marad
|
|
578
|
+
* ervenyben — igy a FR-047 `514153f` fix NEM regresszal, amig a schema ki nem kerul a fsm-bol. Amint a
|
|
579
|
+
* schema mindenhol elerheto, ez a fallback (es az `isReasoningModel`) elhagyhato.
|
|
580
|
+
*/
|
|
581
|
+
applySamplingParams(set) {
|
|
582
|
+
const source = set.settings ?? this.defaultSettings;
|
|
583
|
+
const resolved = {
|
|
584
|
+
...source,
|
|
585
|
+
useModel: set.useModel,
|
|
586
|
+
temperature: (0, fsm_dynamo_1.DyFM_notNull)(source?.temperature) ? source.temperature : this.defaultSettings.temperature,
|
|
587
|
+
maxTokens: (0, fsm_dynamo_1.DyFM_notNull)(source?.maxTokens) ? source.maxTokens : this.defaultSettings.maxTokens,
|
|
588
|
+
topP: (0, fsm_dynamo_1.DyFM_notNull)(source?.topP) ? source.topP : this.defaultSettings.topP,
|
|
589
|
+
frequencyPenalty: (0, fsm_dynamo_1.DyFM_notNull)(source?.frequencyPenalty) ?
|
|
590
|
+
source.frequencyPenalty : this.defaultSettings.frequencyPenalty,
|
|
591
|
+
presencePenalty: (0, fsm_dynamo_1.DyFM_notNull)(source?.presencePenalty) ?
|
|
592
|
+
source.presencePenalty : this.defaultSettings.presencePenalty,
|
|
593
|
+
};
|
|
594
|
+
const final = this.reconcileCallSettings(set.useModel, resolved);
|
|
595
|
+
const modelInfo = ai_1.DyFM_AI_ModelRegistry_Util.findModelInfo(this.getModelRegistry(), set.useModel);
|
|
596
|
+
const dropSampling = !modelInfo?.settingsSchema && this.isReasoningModel(set.useModel);
|
|
597
|
+
if ((0, fsm_dynamo_1.DyFM_notNull)(final?.maxTokens)) {
|
|
598
|
+
set.input.max_completion_tokens = final.maxTokens;
|
|
599
|
+
}
|
|
600
|
+
if (dropSampling) {
|
|
601
|
+
return;
|
|
602
|
+
}
|
|
603
|
+
if ((0, fsm_dynamo_1.DyFM_notNull)(final?.temperature)) {
|
|
604
|
+
set.input.temperature = final.temperature;
|
|
605
|
+
}
|
|
606
|
+
if ((0, fsm_dynamo_1.DyFM_notNull)(final?.topP)) {
|
|
607
|
+
set.input.top_p = final.topP;
|
|
608
|
+
}
|
|
609
|
+
if ((0, fsm_dynamo_1.DyFM_notNull)(final?.frequencyPenalty)) {
|
|
610
|
+
set.input.frequency_penalty = final.frequencyPenalty;
|
|
611
|
+
}
|
|
612
|
+
if ((0, fsm_dynamo_1.DyFM_notNull)(final?.presencePenalty)) {
|
|
613
|
+
set.input.presence_penalty = final.presencePenalty;
|
|
614
|
+
}
|
|
615
|
+
}
|
|
578
616
|
}
|
|
579
617
|
exports.DyNTS_OAI_LLM_ServiceBase = DyNTS_OAI_LLM_ServiceBase;
|
|
580
618
|
//# sourceMappingURL=oai-llm.service-base.js.map
|