@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,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DyNTS_AIMock_FixtureMatch_Util = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const crypto = tslib_1.__importStar(require("crypto"));
|
|
6
|
+
/**
|
|
7
|
+
* A fixture-match kulcs DETERMINISZTIKUS képzése. Cél: azonos „jelentésű" request → azonos kulcs,
|
|
8
|
+
* függetlenül a config-kulcsok sorrendjétől és az input whitespace-variánsaitól (különben false
|
|
9
|
+
* reject-on-unknown, l. HYPERPLAN D3 + MP-3 SP-3.1). NEM végez generálást — tiszta, hálózat-mentes.
|
|
10
|
+
*/
|
|
11
|
+
class DyNTS_AIMock_FixtureMatch_Util {
|
|
12
|
+
/**
|
|
13
|
+
* A teljes match-kulcs: `provider|model|modality|<config-hash>|<input-hash>`.
|
|
14
|
+
* @param request - a mock-hívás bemenete
|
|
15
|
+
*/
|
|
16
|
+
static buildMatchKey(request) {
|
|
17
|
+
const configHash = this.hash(this.canonicalizeConfig(request.config ?? {}));
|
|
18
|
+
const inputHash = this.buildInputHash(request.input);
|
|
19
|
+
return `${request.provider}|${request.model}|${request.modality}|${configHash}|${inputHash}`;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Csak az input-hash (a `DyNTS_AIMock_Fixture.inputHash`-hez): a kanonizált input SHA-256-ja.
|
|
23
|
+
* @param input - a modalitás-függő bemenet
|
|
24
|
+
*/
|
|
25
|
+
static buildInputHash(input) {
|
|
26
|
+
return this.hash(this.canonicalizeInput(input));
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Kulcs-rendezett, stabil szöveg egy config-objektumból (a config-kulcsok sorrend-függetlenségéhez).
|
|
30
|
+
* Megjegyzés: a nested-objektum mély-kanonizációja jövőbeli finomítás (a shallow key-sort a config-flat
|
|
31
|
+
* paramétereket — temperature/dimensions/size — fedi).
|
|
32
|
+
* @param config - a kanonizálandó config
|
|
33
|
+
*/
|
|
34
|
+
static canonicalizeConfig(config) {
|
|
35
|
+
const sortedKeys = Object.keys(config).sort();
|
|
36
|
+
const parts = sortedKeys.map((key) => `${key}:${JSON.stringify(config[key])}`);
|
|
37
|
+
return parts.join('|');
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Input-kanonizáció: string → trim + belső whitespace-összevonás; egyéb (pl. embedding-szöveg-tömb) →
|
|
41
|
+
* stabil JSON (a sorrend jelentős, pl. batch-embedding).
|
|
42
|
+
* @param input - a bemenet
|
|
43
|
+
*/
|
|
44
|
+
static canonicalizeInput(input) {
|
|
45
|
+
if (typeof input === 'string') {
|
|
46
|
+
return input.trim().replace(/\s+/g, ' ');
|
|
47
|
+
}
|
|
48
|
+
return JSON.stringify(input);
|
|
49
|
+
}
|
|
50
|
+
/** SHA-256 hex az adott szövegből. */
|
|
51
|
+
static hash(value) {
|
|
52
|
+
return crypto.createHash('sha256').update(value).digest('hex');
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
exports.DyNTS_AIMock_FixtureMatch_Util = DyNTS_AIMock_FixtureMatch_Util;
|
|
56
|
+
//# sourceMappingURL=aim-fixture-match.util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aim-fixture-match.util.js","sourceRoot":"","sources":["../../../../../../src/_modules/ai/_modules/ai-mock/_collections/aim-fixture-match.util.ts"],"names":[],"mappings":";;;;AAAA,uDAAiC;AAIjC;;;;GAIG;AACH,MAAa,8BAA8B;IACzC;;;OAGG;IACH,MAAM,CAAC,aAAa,CAAC,OAA6B;QAChD,MAAM,UAAU,GAAW,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;QACpF,MAAM,SAAS,GAAW,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAE7D,OAAO,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,QAAQ,IAAI,UAAU,IAAI,SAAS,EAAE,CAAC;IAC/F,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,cAAc,CAAC,KAAc;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;IAClD,CAAC;IAED;;;;;OAKG;IACK,MAAM,CAAC,kBAAkB,CAAC,MAA+B;QAC/D,MAAM,UAAU,GAAa,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QACxD,MAAM,KAAK,GAAa,UAAU,CAAC,GAAG,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;QAEjG,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACK,MAAM,CAAC,iBAAiB,CAAC,KAAc;QAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC3C,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,sCAAsC;IAC9B,MAAM,CAAC,IAAI,CAAC,KAAa;QAC/B,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjE,CAAC;CACF;AAlDD,wEAkDC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { DyNTS_AIMock_Fixture } from '../_models/interfaces/aim-fixture.interface';
|
|
2
|
+
/**
|
|
3
|
+
* Beegetett fixture-ok **determinisztikus** TS-konstans fajlla alakitasa (D6: git-tracked, NEM env-fuggo).
|
|
4
|
+
*
|
|
5
|
+
* A determinizmus itt nem kozmetika: a fixture-fajlok verziokezeltek, ezert ugyanaz a fixture-keszlet
|
|
6
|
+
* MINDIG ugyanazt a fajl-tartalmat kell adja — kulonben minden ujra-generalas zajos diff-et okoz, es a
|
|
7
|
+
* code-review hasznalhatatlanna valik. Ezert: a fixture-ok **match-kulcs szerint rendezve**, az objektum-
|
|
8
|
+
* kulcsok pedig **rekurzivan abc-sorrendben** kerulnek ki.
|
|
9
|
+
*/
|
|
10
|
+
export declare class DyNTS_AIMock_FixtureSerializer_Util {
|
|
11
|
+
/** Behuzas egy szintje. */
|
|
12
|
+
private static readonly indentUnit;
|
|
13
|
+
/**
|
|
14
|
+
* Fixture-tomb → teljes TS-konstans fajl tartalma (import + export const + JSDoc-fejlec).
|
|
15
|
+
* @param set - a konstans neve + a fixture-ok + opcionalis fejlec-megjegyzes
|
|
16
|
+
*/
|
|
17
|
+
static toConstantFile(set: {
|
|
18
|
+
constName: string;
|
|
19
|
+
fixtures: DyNTS_AIMock_Fixture[];
|
|
20
|
+
headerNote?: string;
|
|
21
|
+
}): string;
|
|
22
|
+
/** Fixture-ok stabil rendezese (provider|model|modality|inputHash). */
|
|
23
|
+
private static sortFixtures;
|
|
24
|
+
/** A rendezesi kulcs egy fixture-hoz. */
|
|
25
|
+
private static sortKeyOf;
|
|
26
|
+
/**
|
|
27
|
+
* Rekurziv, kulcs-rendezett stringify (a `JSON.stringify` a beszurasi sorrendet tartana meg — az nem stabil).
|
|
28
|
+
* @param value - a szerializalando ertek
|
|
29
|
+
* @param indent - az aktualis behuzas
|
|
30
|
+
*/
|
|
31
|
+
private static stringify;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=aim-fixture-serializer.util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aim-fixture-serializer.util.d.ts","sourceRoot":"","sources":["../../../../../../src/_modules/ai/_modules/ai-mock/_collections/aim-fixture-serializer.util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AAEnF;;;;;;;GAOG;AACH,qBAAa,mCAAmC;IAE9C,2BAA2B;IAC3B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAElD;;;OAGG;IACH,MAAM,CAAC,cAAc,CACnB,GAAG,EAAE;QACH,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,oBAAoB,EAAE,CAAC;QACjC,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GACA,MAAM;IAwBT,uEAAuE;IACvE,OAAO,CAAC,MAAM,CAAC,YAAY;IAM3B,yCAAyC;IACzC,OAAO,CAAC,MAAM,CAAC,SAAS;IAIxB;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,SAAS;CAwCzB"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DyNTS_AIMock_FixtureSerializer_Util = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Beegetett fixture-ok **determinisztikus** TS-konstans fajlla alakitasa (D6: git-tracked, NEM env-fuggo).
|
|
6
|
+
*
|
|
7
|
+
* A determinizmus itt nem kozmetika: a fixture-fajlok verziokezeltek, ezert ugyanaz a fixture-keszlet
|
|
8
|
+
* MINDIG ugyanazt a fajl-tartalmat kell adja — kulonben minden ujra-generalas zajos diff-et okoz, es a
|
|
9
|
+
* code-review hasznalhatatlanna valik. Ezert: a fixture-ok **match-kulcs szerint rendezve**, az objektum-
|
|
10
|
+
* kulcsok pedig **rekurzivan abc-sorrendben** kerulnek ki.
|
|
11
|
+
*/
|
|
12
|
+
class DyNTS_AIMock_FixtureSerializer_Util {
|
|
13
|
+
/** Behuzas egy szintje. */
|
|
14
|
+
static indentUnit = ' ';
|
|
15
|
+
/**
|
|
16
|
+
* Fixture-tomb → teljes TS-konstans fajl tartalma (import + export const + JSDoc-fejlec).
|
|
17
|
+
* @param set - a konstans neve + a fixture-ok + opcionalis fejlec-megjegyzes
|
|
18
|
+
*/
|
|
19
|
+
static toConstantFile(set) {
|
|
20
|
+
const sorted = this.sortFixtures(set.fixtures);
|
|
21
|
+
const body = sorted
|
|
22
|
+
.map((fixture) => this.stringify(fixture, this.indentUnit))
|
|
23
|
+
.join(',\n');
|
|
24
|
+
const note = set.headerNote ?? 'Auto-generalt fixture-keszlet — kezzel NE szerkeszd.';
|
|
25
|
+
return [
|
|
26
|
+
`import { DyNTS_AIMock_Fixture } from '@futdevpro/nts-dynamo/ai/ai-mock';`,
|
|
27
|
+
'',
|
|
28
|
+
'/**',
|
|
29
|
+
` * ${note}`,
|
|
30
|
+
' *',
|
|
31
|
+
' * Determinisztikus sorrend (match-kulcs szerint) + rendezett objektum-kulcsok, hogy az ujra-generalas',
|
|
32
|
+
' * ne okozzon zajos diff-et. Forras: `DyNTS_AIMock_FixtureSerializer_Util`.',
|
|
33
|
+
' */',
|
|
34
|
+
`export const ${set.constName}: DyNTS_AIMock_Fixture[] = [`,
|
|
35
|
+
body,
|
|
36
|
+
'];',
|
|
37
|
+
'',
|
|
38
|
+
].join('\n');
|
|
39
|
+
}
|
|
40
|
+
/** Fixture-ok stabil rendezese (provider|model|modality|inputHash). */
|
|
41
|
+
static sortFixtures(fixtures) {
|
|
42
|
+
return [...fixtures].sort((a, b) => {
|
|
43
|
+
return this.sortKeyOf(a).localeCompare(this.sortKeyOf(b));
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
/** A rendezesi kulcs egy fixture-hoz. */
|
|
47
|
+
static sortKeyOf(fixture) {
|
|
48
|
+
return `${fixture.provider}|${fixture.model}|${fixture.modality}|${fixture.inputHash}`;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Rekurziv, kulcs-rendezett stringify (a `JSON.stringify` a beszurasi sorrendet tartana meg — az nem stabil).
|
|
52
|
+
* @param value - a szerializalando ertek
|
|
53
|
+
* @param indent - az aktualis behuzas
|
|
54
|
+
*/
|
|
55
|
+
static stringify(value, indent) {
|
|
56
|
+
if (value === null || value === undefined) {
|
|
57
|
+
return `${indent}null`;
|
|
58
|
+
}
|
|
59
|
+
if (Array.isArray(value)) {
|
|
60
|
+
if (!value.length) {
|
|
61
|
+
return `${indent}[]`;
|
|
62
|
+
}
|
|
63
|
+
const items = value
|
|
64
|
+
.map((item) => this.stringify(item, indent + this.indentUnit))
|
|
65
|
+
.join(',\n');
|
|
66
|
+
return `${indent}[\n${items}\n${indent}]`;
|
|
67
|
+
}
|
|
68
|
+
if (typeof value === 'object') {
|
|
69
|
+
// `Object.entries` a generikus `object`-en is mukodik → nincs szukseg `as`-castra.
|
|
70
|
+
const source = new Map(Object.entries(value));
|
|
71
|
+
const keys = [...source.keys()]
|
|
72
|
+
.filter((key) => source.get(key) !== undefined)
|
|
73
|
+
.sort();
|
|
74
|
+
if (!keys.length) {
|
|
75
|
+
return `${indent}{}`;
|
|
76
|
+
}
|
|
77
|
+
const entries = keys
|
|
78
|
+
.map((key) => {
|
|
79
|
+
const rendered = this.stringify(source.get(key), indent + this.indentUnit).trimStart();
|
|
80
|
+
return `${indent}${this.indentUnit}${JSON.stringify(key)}: ${rendered}`;
|
|
81
|
+
})
|
|
82
|
+
.join(',\n');
|
|
83
|
+
return `${indent}{\n${entries}\n${indent}}`;
|
|
84
|
+
}
|
|
85
|
+
return `${indent}${JSON.stringify(value)}`;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
exports.DyNTS_AIMock_FixtureSerializer_Util = DyNTS_AIMock_FixtureSerializer_Util;
|
|
89
|
+
//# sourceMappingURL=aim-fixture-serializer.util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aim-fixture-serializer.util.js","sourceRoot":"","sources":["../../../../../../src/_modules/ai/_modules/ai-mock/_collections/aim-fixture-serializer.util.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Az AI-mock által kezelt modalitások. A mock MINDEN modalitásra ugyanazt a replay / reject-on-unknown
|
|
3
|
+
* viselkedést adja (l. `documentations/plans/ai-mocking-system/HYPERPLAN.md` D3). A `value` a beégetett
|
|
4
|
+
* fixture-ök + a match-kulcs modality-szegmense.
|
|
5
|
+
*/
|
|
6
|
+
export declare enum DyNTS_AIMock_Modality {
|
|
7
|
+
/** Szöveg-completion (chat / LLM). */
|
|
8
|
+
text = "text",
|
|
9
|
+
/** Embedding-vektor kimenet. */
|
|
10
|
+
embedding = "embedding",
|
|
11
|
+
/** Kép-generálás (base64 kimenet). */
|
|
12
|
+
image = "image",
|
|
13
|
+
/** Hang: transcription (audio→szöveg) vagy TTS (szöveg→base64-audio). */
|
|
14
|
+
audio = "audio"
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=aim-modality.enum.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aim-modality.enum.d.ts","sourceRoot":"","sources":["../../../../../../src/_modules/ai/_modules/ai-mock/_enums/aim-modality.enum.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,oBAAY,qBAAqB;IAC/B,sCAAsC;IACtC,IAAI,SAAS;IACb,gCAAgC;IAChC,SAAS,cAAc;IACvB,sCAAsC;IACtC,KAAK,UAAU;IACf,yEAAyE;IACzE,KAAK,UAAU;CAChB"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DyNTS_AIMock_Modality = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Az AI-mock által kezelt modalitások. A mock MINDEN modalitásra ugyanazt a replay / reject-on-unknown
|
|
6
|
+
* viselkedést adja (l. `documentations/plans/ai-mocking-system/HYPERPLAN.md` D3). A `value` a beégetett
|
|
7
|
+
* fixture-ök + a match-kulcs modality-szegmense.
|
|
8
|
+
*/
|
|
9
|
+
var DyNTS_AIMock_Modality;
|
|
10
|
+
(function (DyNTS_AIMock_Modality) {
|
|
11
|
+
/** Szöveg-completion (chat / LLM). */
|
|
12
|
+
DyNTS_AIMock_Modality["text"] = "text";
|
|
13
|
+
/** Embedding-vektor kimenet. */
|
|
14
|
+
DyNTS_AIMock_Modality["embedding"] = "embedding";
|
|
15
|
+
/** Kép-generálás (base64 kimenet). */
|
|
16
|
+
DyNTS_AIMock_Modality["image"] = "image";
|
|
17
|
+
/** Hang: transcription (audio→szöveg) vagy TTS (szöveg→base64-audio). */
|
|
18
|
+
DyNTS_AIMock_Modality["audio"] = "audio";
|
|
19
|
+
})(DyNTS_AIMock_Modality || (exports.DyNTS_AIMock_Modality = DyNTS_AIMock_Modality = {}));
|
|
20
|
+
//# sourceMappingURL=aim-modality.enum.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aim-modality.enum.js","sourceRoot":"","sources":["../../../../../../src/_modules/ai/_modules/ai-mock/_enums/aim-modality.enum.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACH,IAAY,qBASX;AATD,WAAY,qBAAqB;IAC/B,sCAAsC;IACtC,sCAAa,CAAA;IACb,gCAAgC;IAChC,gDAAuB,CAAA;IACvB,sCAAsC;IACtC,wCAAe,CAAA;IACf,yEAAyE;IACzE,wCAAe,CAAA;AACjB,CAAC,EATW,qBAAqB,qCAArB,qBAAqB,QAShC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Egy mock modalitás-hívás bemenete — a modalitást a hívott metódus adja (`chatCompletion` → text stb.),
|
|
3
|
+
* ezért itt NINCS `modality` mező (v.ö. `DyNTS_AIMock_Request`, ami a teljes match-kulcs bemenete).
|
|
4
|
+
*/
|
|
5
|
+
export interface DyNTS_AIMock_CallInput {
|
|
6
|
+
/** Provider-azonosító (pl. 'open-ai'). */
|
|
7
|
+
provider: string;
|
|
8
|
+
/** Pontos API modell-azonosító (pl. 'gpt-4o-mini'). */
|
|
9
|
+
model: string;
|
|
10
|
+
/** Provider-specifikus config-paraméterek. */
|
|
11
|
+
config?: Record<string, unknown>;
|
|
12
|
+
/** Modalitás-függő bemenet. */
|
|
13
|
+
input: unknown;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=aim-call-input.interface.d.ts.map
|
package/build/_modules/ai/_modules/ai-mock/_models/interfaces/aim-call-input.interface.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aim-call-input.interface.d.ts","sourceRoot":"","sources":["../../../../../../../src/_modules/ai/_modules/ai-mock/_models/interfaces/aim-call-input.interface.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,+BAA+B;IAC/B,KAAK,EAAE,OAAO,CAAC;CAChB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aim-call-input.interface.js","sourceRoot":"","sources":["../../../../../../../src/_modules/ai/_modules/ai-mock/_models/interfaces/aim-call-input.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { DyNTS_AI_ProviderError } from '../../../../_models/interfaces/dynts-ai-provider-error.interface';
|
|
2
|
+
/**
|
|
3
|
+
* Provider-faithful hiba egy fixture-höz — a mock UGYANEZT reprodukálja, mintha a valódi provider dobná
|
|
4
|
+
* (pl. reasoning-modell + `temperature` → OpenAI HTTP 400 `unsupported_parameter`).
|
|
5
|
+
*
|
|
6
|
+
* **Alias** a modul-szintű `DyNTS_AI_ProviderError`-ra (SSoT): a Layer A validátor
|
|
7
|
+
* (`DyNTS_AI_ModelConfig_Validator`) és a Layer B fixture-ök UGYANAZT a hiba-alakot használják — nincs
|
|
8
|
+
* párhuzamos shape. A név megmarad, hogy az ai-mock oldali olvashatóság ne romoljon.
|
|
9
|
+
*/
|
|
10
|
+
export type DyNTS_AIMock_Error = DyNTS_AI_ProviderError;
|
|
11
|
+
//# sourceMappingURL=aim-error.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aim-error.interface.d.ts","sourceRoot":"","sources":["../../../../../../../src/_modules/ai/_modules/ai-mock/_models/interfaces/aim-error.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kEAAkE,CAAC;AAE1G;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,GAAG,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aim-error.interface.js","sourceRoot":"","sources":["../../../../../../../src/_modules/ai/_modules/ai-mock/_models/interfaces/aim-error.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { DyNTS_AIMock_Modality } from '../../_enums/aim-modality.enum';
|
|
2
|
+
import { DyNTS_AIMock_Error } from './aim-error.interface';
|
|
3
|
+
/**
|
|
4
|
+
* Egy beégetett fixture-rekord (git-tracked konstans, D6). Az `output` XOR `error` közül PONTOSAN egy van:
|
|
5
|
+
* sikeres válasz VAGY provider-faithful hiba. Az `inputHash` a normalizált match-kulcs input-szegmense
|
|
6
|
+
* (l. `DyNTS_AIMock_FixtureMatch_Util.buildInputHash`). A `capturedAt` / `sourceModel` audit-nyomvonal (D4).
|
|
7
|
+
*/
|
|
8
|
+
export interface DyNTS_AIMock_Fixture {
|
|
9
|
+
/** Provider-azonosító. */
|
|
10
|
+
provider: string;
|
|
11
|
+
/** Pontos API modell-azonosító. */
|
|
12
|
+
model: string;
|
|
13
|
+
/** A fixture modalitása. */
|
|
14
|
+
modality: DyNTS_AIMock_Modality;
|
|
15
|
+
/** A rögzített config-paraméterek (a match-kulcs része). */
|
|
16
|
+
config?: Record<string, unknown>;
|
|
17
|
+
/** A normalizált input-hash (deterministic input→fixture feloldáshoz). */
|
|
18
|
+
inputHash: string;
|
|
19
|
+
/** A nyers bemenet (ember-olvasható referencia; a match az `inputHash`-en megy). */
|
|
20
|
+
input: unknown;
|
|
21
|
+
/** Sikeres kimenet (modalitás-függő). Az `error`-ral kölcsönösen kizáró. */
|
|
22
|
+
output?: unknown;
|
|
23
|
+
/** Provider-faithful hiba. Az `output`-tal kölcsönösen kizáró. */
|
|
24
|
+
error?: DyNTS_AIMock_Error;
|
|
25
|
+
/** A beégetés időbélyege (ISO). */
|
|
26
|
+
capturedAt: string;
|
|
27
|
+
/** A tényleges generáló modell (ha eltér a kért aliastól). */
|
|
28
|
+
sourceModel?: string;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=aim-fixture.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aim-fixture.interface.d.ts","sourceRoot":"","sources":["../../../../../../../src/_modules/ai/_modules/ai-mock/_models/interfaces/aim-fixture.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,0BAA0B;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,4BAA4B;IAC5B,QAAQ,EAAE,qBAAqB,CAAC;IAChC,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,0EAA0E;IAC1E,SAAS,EAAE,MAAM,CAAC;IAClB,oFAAoF;IACpF,KAAK,EAAE,OAAO,CAAC;IACf,4EAA4E;IAC5E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,kEAAkE;IAClE,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,mCAAmC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aim-fixture.interface.js","sourceRoot":"","sources":["../../../../../../../src/_modules/ai/_modules/ai-mock/_models/interfaces/aim-fixture.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { DyNTS_AIMock_Modality } from '../../_enums/aim-modality.enum';
|
|
2
|
+
/**
|
|
3
|
+
* Egy mock-hívás bemenete — EBBŐL képződik a fixture-match kulcs (`DyNTS_AIMock_FixtureMatch_Util`).
|
|
4
|
+
* A `config` a provider-specifikus hívás-paraméterek (a FR-048 `settingsSchema` ellen validálandó), az
|
|
5
|
+
* `input` modalitás-függő (prompt-szöveg / embedding-szöveg(ek) / kép-prompt / audio-referencia).
|
|
6
|
+
*/
|
|
7
|
+
export interface DyNTS_AIMock_Request {
|
|
8
|
+
/** Provider-azonosító (pl. 'open-ai', 'anthropic', 'fdp-ai'). */
|
|
9
|
+
provider: string;
|
|
10
|
+
/** Pontos API modell-azonosító (pl. 'gpt-4o-mini'). */
|
|
11
|
+
model: string;
|
|
12
|
+
/** A hívás modalitása. */
|
|
13
|
+
modality: DyNTS_AIMock_Modality;
|
|
14
|
+
/** Provider-specifikus config-paraméterek (temperature / dimensions / size / …). */
|
|
15
|
+
config?: Record<string, unknown>;
|
|
16
|
+
/** Modalitás-függő bemenet (prompt / szövegek / kép-prompt / audio-ref). */
|
|
17
|
+
input: unknown;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=aim-request.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aim-request.interface.d.ts","sourceRoot":"","sources":["../../../../../../../src/_modules/ai/_modules/ai-mock/_models/interfaces/aim-request.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAEvE;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,iEAAiE;IACjE,QAAQ,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,0BAA0B;IAC1B,QAAQ,EAAE,qBAAqB,CAAC;IAChC,oFAAoF;IACpF,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,4EAA4E;IAC5E,KAAK,EAAE,OAAO,CAAC;CAChB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aim-request.interface.js","sourceRoot":"","sources":["../../../../../../../src/_modules/ai/_modules/ai-mock/_models/interfaces/aim-request.interface.ts"],"names":[],"mappings":""}
|
package/build/_modules/ai/_modules/ai-mock/_models/interfaces/aim-service-collection.interface.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { DyFM_AI_ModelInfo } from '@futdevpro/fsm-dynamo/ai';
|
|
2
|
+
import { DyNTS_AIMock_FixtureStore_Service } from '../../_services/aim-fixture-store.service';
|
|
3
|
+
import { DyNTS_AIMock_Service } from '../../_services/aim-mock.service';
|
|
4
|
+
/**
|
|
5
|
+
* Egy kesz, osszedrotozott AI-mock keszlet (`getDefaultAiMockServiceCollection` kimenete): a fixture-tar,
|
|
6
|
+
* a ra epulo mock-provider, es a config-validaciohoz bekototott modell-registry.
|
|
7
|
+
*
|
|
8
|
+
* A `store` azert is publikus, hogy a teszt futas kozben tovabbi fixture-oket regisztralhasson
|
|
9
|
+
* (`store.register([...])`) anelkul, hogy ujra kellene epiteni a kollekciot.
|
|
10
|
+
*/
|
|
11
|
+
export interface DyNTS_AIMock_ServiceCollection {
|
|
12
|
+
/** A beegetett fixture-ok tara (futas kozben bovitheto). */
|
|
13
|
+
store: DyNTS_AIMock_FixtureStore_Service;
|
|
14
|
+
/** A mock provider-surface (chat / embedding / image / audio). */
|
|
15
|
+
service: DyNTS_AIMock_Service;
|
|
16
|
+
/** A bekototott modell-registry — ebbol jon a FR-048 `settingsSchema`-alapu config-validacio. */
|
|
17
|
+
registry: DyFM_AI_ModelInfo[];
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=aim-service-collection.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aim-service-collection.interface.d.ts","sourceRoot":"","sources":["../../../../../../../src/_modules/ai/_modules/ai-mock/_models/interfaces/aim-service-collection.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,EAAE,iCAAiC,EAAE,MAAM,2CAA2C,CAAC;AAC9F,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAExE;;;;;;GAMG;AACH,MAAM,WAAW,8BAA8B;IAC7C,4DAA4D;IAC5D,KAAK,EAAE,iCAAiC,CAAC;IACzC,kEAAkE;IAClE,OAAO,EAAE,oBAAoB,CAAC;IAC9B,iGAAiG;IACjG,QAAQ,EAAE,iBAAiB,EAAE,CAAC;CAC/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aim-service-collection.interface.js","sourceRoot":"","sources":["../../../../../../../src/_modules/ai/_modules/ai-mock/_models/interfaces/aim-service-collection.interface.ts"],"names":[],"mappings":""}
|
package/build/_modules/ai/{_services → _modules/ai-mock/_services}/ai-embedding-mock.service.d.ts
RENAMED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { CreateEmbeddingResponse } from 'openai/resources';
|
|
2
2
|
import { DyFM_AI_Provider, DyFM_AI_ProviderCapabilities, DyFM_AI_Config } from '@futdevpro/fsm-dynamo/ai';
|
|
3
3
|
import { DyFM_DAI_EmbeddingInfo } from '@futdevpro/fsm-dynamo/ai/document-ai';
|
|
4
|
-
import { DyNTS_AI_CostEventCallback } from '
|
|
5
|
-
import { DyNTS_AI_Embedding_ServiceBase } from '
|
|
4
|
+
import { DyNTS_AI_CostEventCallback } from '../../../_models/interfaces/dynts-ai-cost-event-callback.interface';
|
|
5
|
+
import { DyNTS_AI_Embedding_ServiceBase } from '../../../_services/ai-embedding.service-base';
|
|
6
6
|
/** A mock-embedding default dimenziója (kicsi, hogy a teszt-pool gyors legyen, de elég a koszinuszhoz). */
|
|
7
7
|
export declare const DyNTS_AI_MOCK_EMBEDDING_DIMS: number;
|
|
8
8
|
/**
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-embedding-mock.service.d.ts","sourceRoot":"","sources":["../../../../../../src/_modules/ai/_modules/ai-mock/_services/ai-embedding-mock.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,OAAO,EAAE,gBAAgB,EAAE,4BAA4B,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1G,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAE9E,OAAO,EAAE,0BAA0B,EAAE,MAAM,oEAAoE,CAAC;AAChH,OAAO,EAAE,8BAA8B,EAAE,MAAM,8CAA8C,CAAC;AAE9F,2GAA2G;AAC3G,eAAO,MAAM,4BAA4B,EAAE,MAAW,CAAC;AAEvD;;;GAGG;AACH,MAAM,WAAW,+BAA+B;IAC9C,6EAA6E;IAC7E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kGAAkG;IAClG,WAAW,CAAC,EAAE,0BAA0B,CAAC;CAC1C;AAED;;;;;;;;;;GAUG;AACH,qBAAa,8BAA+B,SAAQ,8BAA8B;IAEhF,yEAAyE;IACzE,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAA4B;IAEjE,8FAA8F;IAC9F,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAU;IAEjD,4DAA4D;IAC5D,QAAQ,CAAC,YAAY,EAAE,4BAA4B,CAWjD;IAEF,oCAAoC;IACpC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;IAEvB,gDAAgD;gBACpC,GAAG,CAAC,EAAE,+BAA+B;IASjD,wGAAwG;IACxG,KAAK,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IAQnC;;;OAGG;IACG,eAAe,CACnB,GAAG,EAAE;QACH,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,MAAM,EAAE,MAAM,CAAC;KAChB,GACA,OAAO,CAAC,MAAM,EAAE,GAAG,uBAAuB,CAAC;IAc9C;;;OAGG;IACG,gBAAgB,CACpB,GAAG,EAAE;QACH,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,MAAM,EAAE,MAAM,CAAC;KAChB,GACA,OAAO,CAAC,MAAM,EAAE,EAAE,GAAG,uBAAuB,CAAC;IAehD,4EAA4E;IAC5E,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,sBAAsB;IAOvD,qDAAqD;IAC/C,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQvD;;;;OAIG;IACH,SAAS,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAerD,wFAAwF;IACxF,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IAejD,gFAAgF;IAChF,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,uBAAuB;IAclG,wFAAwF;IACxF,SAAS,CAAC,iBAAiB,CACzB,QAAQ,EAAE,kBAAkB,GAAG,iBAAiB,EAChD,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EAAE,EACf,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,IAAI;IAkBP,mDAAmD;IACnD,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;CASlD"}
|
package/build/_modules/ai/{_services → _modules/ai-mock/_services}/ai-embedding-mock.service.js
RENAMED
|
@@ -4,7 +4,7 @@ exports.DyNTS_AI_Embedding_MockService = exports.DyNTS_AI_MOCK_EMBEDDING_DIMS =
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const crypto = tslib_1.__importStar(require("crypto"));
|
|
6
6
|
const ai_1 = require("@futdevpro/fsm-dynamo/ai");
|
|
7
|
-
const ai_embedding_service_base_1 = require("
|
|
7
|
+
const ai_embedding_service_base_1 = require("../../../_services/ai-embedding.service-base");
|
|
8
8
|
/** A mock-embedding default dimenziója (kicsi, hogy a teszt-pool gyors legyen, de elég a koszinuszhoz). */
|
|
9
9
|
exports.DyNTS_AI_MOCK_EMBEDDING_DIMS = 64;
|
|
10
10
|
/**
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-embedding-mock.service.js","sourceRoot":"","sources":["../../../../../../src/_modules/ai/_modules/ai-mock/_services/ai-embedding-mock.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { DyFM_AI_ModelInfo } from '@futdevpro/fsm-dynamo/ai';
|
|
2
|
+
import { DyNTS_AIMock_Request } from '../_models/interfaces/aim-request.interface';
|
|
3
|
+
import { DyNTS_AIMock_Fixture } from '../_models/interfaces/aim-fixture.interface';
|
|
4
|
+
/**
|
|
5
|
+
* **Fixture-generalo harness** (MP-3 SP-3.2) — VALODI provider-valaszbol keszit beegetheto fixture-t.
|
|
6
|
+
*
|
|
7
|
+
* **Ket egymastol fuggetlen biztonsagi zar, mert ez az egyetlen pont, ahol valodi PENZ folyhat el:**
|
|
8
|
+
* 1. **Spend-guard** — az `allowRealSpend` alapertelmezese `false`. Amig nincs EXPLICIT bekapcsolva, a harness
|
|
9
|
+
* **el sem hivja** az injektalt generatort. Igy meg egy veletlenul bekototott valodi generator sem tud
|
|
10
|
+
* hivast inditani. (G1 kapu: a bekapcsolas user-jovahagyashoz kotott.)
|
|
11
|
+
* 2. **D2 tier-cap** — a Pro / Opus / flagship tier-u modelleket elutasitja MEG a generator hivasa elott.
|
|
12
|
+
*
|
|
13
|
+
* A generator INJEKTALT (`(request) => Promise<unknown>`), ezert a harness maga soha nem fuggo halozattol —
|
|
14
|
+
* a tesztek stub-generatorral futnak, valodi hivas nelkul.
|
|
15
|
+
*/
|
|
16
|
+
export declare class DyNTS_AIMock_FixtureHarness_Service {
|
|
17
|
+
/** A valodi (vagy stub) generalo fuggveny — a harness NEM tud halozatot hivni sajat maga. */
|
|
18
|
+
private readonly generator;
|
|
19
|
+
/** Modell-registry a tier-cap ellenorzeshez. */
|
|
20
|
+
private readonly registry;
|
|
21
|
+
/** Spend-guard: amig `false`, a generator NEM hivodik meg. Default: `false`. */
|
|
22
|
+
private readonly allowRealSpend;
|
|
23
|
+
/** Tiltott tier-ek (default: a D2 keszlet). */
|
|
24
|
+
private readonly blockedTiers;
|
|
25
|
+
/** ISO-timestamp forras (injektalhato a determinisztikus tesztekhez). */
|
|
26
|
+
private readonly nowIso;
|
|
27
|
+
/**
|
|
28
|
+
* @param set - generator + registry + a ket biztonsagi zar beallitasa.
|
|
29
|
+
*/
|
|
30
|
+
constructor(set: {
|
|
31
|
+
generator: (request: DyNTS_AIMock_Request) => Promise<unknown>;
|
|
32
|
+
registry?: DyFM_AI_ModelInfo[];
|
|
33
|
+
/** CSAK explicit `true` eseten hivodik meg a generator (G1). Default: `false`. */
|
|
34
|
+
allowRealSpend?: boolean;
|
|
35
|
+
blockedTiers?: string[];
|
|
36
|
+
nowIso?: () => string;
|
|
37
|
+
});
|
|
38
|
+
/**
|
|
39
|
+
* Egy fixture rogzitese valodi generalasbol. A ket zar sorrendje: spend-guard → tier-cap → generator.
|
|
40
|
+
* @param request - a rogzitendo hivas (provider + model + modality + config + input)
|
|
41
|
+
*/
|
|
42
|
+
capture(request: DyNTS_AIMock_Request): Promise<DyNTS_AIMock_Fixture>;
|
|
43
|
+
/** 1. zar — a spend-guard. */
|
|
44
|
+
private assertSpendAllowed;
|
|
45
|
+
/** 2. zar — a D2 tier-cap. Ismeretlen modell (nincs registry-ben) → NEM engedjuk (honesty). */
|
|
46
|
+
private assertTierAllowed;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=aim-fixture-harness.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aim-fixture-harness.service.d.ts","sourceRoot":"","sources":["../../../../../../src/_modules/ai/_modules/ai-mock/_services/aim-fixture-harness.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAA8B,MAAM,0BAA0B,CAAC;AAEzF,OAAO,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AAanF;;;;;;;;;;;GAWG;AACH,qBAAa,mCAAmC;IAE9C,6FAA6F;IAC7F,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsD;IAEhF,gDAAgD;IAChD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsB;IAE/C,gFAAgF;IAChF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAU;IAEzC,+CAA+C;IAC/C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAW;IAExC,yEAAyE;IACzE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IAEtC;;OAEG;gBAED,GAAG,EAAE;QACH,SAAS,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;QAC/D,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAC;QAC/B,kFAAkF;QAClF,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC;KACvB;IASH;;;OAGG;IACG,OAAO,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAmB3E,8BAA8B;IAC9B,OAAO,CAAC,kBAAkB;IAa1B,+FAA+F;IAC/F,OAAO,CAAC,iBAAiB;CAsB1B"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DyNTS_AIMock_FixtureHarness_Service = void 0;
|
|
4
|
+
const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
|
|
5
|
+
const ai_1 = require("@futdevpro/fsm-dynamo/ai");
|
|
6
|
+
const aim_fixture_match_util_1 = require("../_collections/aim-fixture-match.util");
|
|
7
|
+
/**
|
|
8
|
+
* A D2 kolseg-cap altal TILTOTT modell-tier-ek (kisbetusen hasonlitva).
|
|
9
|
+
*
|
|
10
|
+
* Forras — a FR (`USER-INPUT.md`, 2026-06-22): „nem megyunk el a legmagasabb szintu modellekig, illetve nem
|
|
11
|
+
* megyunk el peldaul OpenAI Pro modellekig, de az alap, default es mini mikro modelleket szeretnem".
|
|
12
|
+
* Ezert tiltott: `pro` (gpt-5.5-pro / o3-pro / gemini-pro), `opus` (claude-opus), `flagship` (a legmagasabb
|
|
13
|
+
* szintu alap-modell). Engedett: mini / nano / legacy / flash / flash-lite / sonnet / haiku.
|
|
14
|
+
*/
|
|
15
|
+
const D2_BLOCKED_TIERS = ['pro', 'opus', 'flagship'];
|
|
16
|
+
/**
|
|
17
|
+
* **Fixture-generalo harness** (MP-3 SP-3.2) — VALODI provider-valaszbol keszit beegetheto fixture-t.
|
|
18
|
+
*
|
|
19
|
+
* **Ket egymastol fuggetlen biztonsagi zar, mert ez az egyetlen pont, ahol valodi PENZ folyhat el:**
|
|
20
|
+
* 1. **Spend-guard** — az `allowRealSpend` alapertelmezese `false`. Amig nincs EXPLICIT bekapcsolva, a harness
|
|
21
|
+
* **el sem hivja** az injektalt generatort. Igy meg egy veletlenul bekototott valodi generator sem tud
|
|
22
|
+
* hivast inditani. (G1 kapu: a bekapcsolas user-jovahagyashoz kotott.)
|
|
23
|
+
* 2. **D2 tier-cap** — a Pro / Opus / flagship tier-u modelleket elutasitja MEG a generator hivasa elott.
|
|
24
|
+
*
|
|
25
|
+
* A generator INJEKTALT (`(request) => Promise<unknown>`), ezert a harness maga soha nem fuggo halozattol —
|
|
26
|
+
* a tesztek stub-generatorral futnak, valodi hivas nelkul.
|
|
27
|
+
*/
|
|
28
|
+
class DyNTS_AIMock_FixtureHarness_Service {
|
|
29
|
+
/** A valodi (vagy stub) generalo fuggveny — a harness NEM tud halozatot hivni sajat maga. */
|
|
30
|
+
generator;
|
|
31
|
+
/** Modell-registry a tier-cap ellenorzeshez. */
|
|
32
|
+
registry;
|
|
33
|
+
/** Spend-guard: amig `false`, a generator NEM hivodik meg. Default: `false`. */
|
|
34
|
+
allowRealSpend;
|
|
35
|
+
/** Tiltott tier-ek (default: a D2 keszlet). */
|
|
36
|
+
blockedTiers;
|
|
37
|
+
/** ISO-timestamp forras (injektalhato a determinisztikus tesztekhez). */
|
|
38
|
+
nowIso;
|
|
39
|
+
/**
|
|
40
|
+
* @param set - generator + registry + a ket biztonsagi zar beallitasa.
|
|
41
|
+
*/
|
|
42
|
+
constructor(set) {
|
|
43
|
+
this.generator = set.generator;
|
|
44
|
+
this.registry = set.registry ?? [];
|
|
45
|
+
this.allowRealSpend = set.allowRealSpend === true;
|
|
46
|
+
this.blockedTiers = set.blockedTiers ?? D2_BLOCKED_TIERS;
|
|
47
|
+
this.nowIso = set.nowIso ?? (() => new Date().toISOString());
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Egy fixture rogzitese valodi generalasbol. A ket zar sorrendje: spend-guard → tier-cap → generator.
|
|
51
|
+
* @param request - a rogzitendo hivas (provider + model + modality + config + input)
|
|
52
|
+
*/
|
|
53
|
+
async capture(request) {
|
|
54
|
+
this.assertSpendAllowed(request);
|
|
55
|
+
this.assertTierAllowed(request);
|
|
56
|
+
const output = await this.generator(request);
|
|
57
|
+
return {
|
|
58
|
+
provider: request.provider,
|
|
59
|
+
model: request.model,
|
|
60
|
+
modality: request.modality,
|
|
61
|
+
config: request.config,
|
|
62
|
+
input: request.input,
|
|
63
|
+
inputHash: aim_fixture_match_util_1.DyNTS_AIMock_FixtureMatch_Util.buildInputHash(request.input),
|
|
64
|
+
output: output,
|
|
65
|
+
capturedAt: this.nowIso(),
|
|
66
|
+
sourceModel: request.model,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
/** 1. zar — a spend-guard. */
|
|
70
|
+
assertSpendAllowed(request) {
|
|
71
|
+
if (this.allowRealSpend) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
throw new fsm_dynamo_1.DyFM_Error({
|
|
75
|
+
message: `[ai-mock] real generation is DISABLED (spend-guard). Model '${request.provider}:${request.model}'. ` +
|
|
76
|
+
'Set allowRealSpend=true only with explicit approval (G1 gate).',
|
|
77
|
+
userMessage: 'Real AI generation is disabled.',
|
|
78
|
+
errorCode: 'DyNTS-AIMOCK-SPEND',
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
/** 2. zar — a D2 tier-cap. Ismeretlen modell (nincs registry-ben) → NEM engedjuk (honesty). */
|
|
82
|
+
assertTierAllowed(request) {
|
|
83
|
+
const modelInfo = ai_1.DyFM_AI_ModelRegistry_Util.findModelInfo(this.registry, request.model);
|
|
84
|
+
const tier = (modelInfo?.tier ?? '').toLowerCase();
|
|
85
|
+
if (!modelInfo) {
|
|
86
|
+
throw new fsm_dynamo_1.DyFM_Error({
|
|
87
|
+
message: `[ai-mock] model '${request.model}' is not in the registry — tier cannot be verified, ` +
|
|
88
|
+
'refusing to generate (D2 cost-cap, honesty).',
|
|
89
|
+
userMessage: 'Unknown AI model for fixture generation.',
|
|
90
|
+
errorCode: 'DyNTS-AIMOCK-TIER',
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
if (this.blockedTiers.includes(tier)) {
|
|
94
|
+
throw new fsm_dynamo_1.DyFM_Error({
|
|
95
|
+
message: `[ai-mock] model '${request.model}' has blocked tier '${modelInfo.tier}' (D2 cost-cap: ` +
|
|
96
|
+
`${this.blockedTiers.join(', ')}). Use a mini/nano/flash tier model for fixtures.`,
|
|
97
|
+
userMessage: 'This AI model tier is not allowed for fixture generation.',
|
|
98
|
+
errorCode: 'DyNTS-AIMOCK-TIER',
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
exports.DyNTS_AIMock_FixtureHarness_Service = DyNTS_AIMock_FixtureHarness_Service;
|
|
104
|
+
//# sourceMappingURL=aim-fixture-harness.service.js.map
|