@futdevpro/nts-dynamo 1.15.111 → 1.15.112

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.
@@ -1,7 +1,7 @@
1
1
  {
2
- "pid": 51667,
3
- "startedAt": "2026-07-22T01:03:01.174Z",
4
- "startedAtMs": 1784682181174,
2
+ "pid": 59449,
3
+ "startedAt": "2026-07-22T03:56:16.068Z",
4
+ "startedAtMs": 1784692576068,
5
5
  "phase": "npm-publish",
6
6
  "pipelineComplete": false,
7
7
  "serverRunning": false,
@@ -10,76 +10,76 @@
10
10
  "steps": {
11
11
  "validate-secrets": {
12
12
  "status": "ok",
13
- "startedAt": "2026-07-22T01:03:01.205Z",
13
+ "startedAt": "2026-07-22T03:56:16.084Z",
14
14
  "logLineStart": 2,
15
15
  "logLineEnd": 8,
16
- "durationSec": 0.2
16
+ "durationSec": 0.4
17
17
  },
18
18
  "discord-start": {
19
19
  "status": "ok",
20
- "startedAt": "2026-07-22T01:03:02.442Z",
20
+ "startedAt": "2026-07-22T03:56:17.441Z",
21
21
  "logLineStart": 9,
22
22
  "logLineEnd": 14,
23
- "durationSec": 3.4
23
+ "durationSec": 3.1
24
24
  },
25
25
  "pre-flight": {
26
26
  "status": "ok",
27
- "startedAt": "2026-07-22T01:03:06.812Z",
27
+ "startedAt": "2026-07-22T03:56:21.557Z",
28
28
  "logLineStart": 15,
29
29
  "logLineEnd": 17,
30
30
  "durationSec": 0.2
31
31
  },
32
32
  "install": {
33
33
  "status": "ok",
34
- "startedAt": "2026-07-22T01:03:08.023Z",
34
+ "startedAt": "2026-07-22T03:56:22.757Z",
35
35
  "logLineStart": 18,
36
- "logLineEnd": 102,
37
- "durationSec": 22.2
36
+ "logLineEnd": 103,
37
+ "durationSec": 23.6
38
38
  },
39
39
  "check-dev-leftovers": {
40
40
  "status": "ok",
41
- "startedAt": "2026-07-22T01:03:31.234Z",
42
- "logLineStart": 103,
43
- "logLineEnd": 110,
44
- "durationSec": 4.1
41
+ "startedAt": "2026-07-22T03:56:47.330Z",
42
+ "logLineStart": 104,
43
+ "logLineEnd": 111,
44
+ "durationSec": 4.6
45
45
  },
46
46
  "build": {
47
47
  "status": "ok",
48
- "startedAt": "2026-07-22T01:03:36.895Z",
49
- "logLineStart": 111,
50
- "logLineEnd": 112,
51
- "durationSec": 25.7
48
+ "startedAt": "2026-07-22T03:56:52.929Z",
49
+ "logLineStart": 112,
50
+ "logLineEnd": 113,
51
+ "durationSec": 29.3
52
52
  },
53
53
  "test": {
54
54
  "status": "ok",
55
- "startedAt": "2026-07-22T01:04:03.563Z",
56
- "logLineStart": 113,
55
+ "startedAt": "2026-07-22T03:57:23.649Z",
56
+ "logLineStart": 114,
57
57
  "logLineEnd": 2807,
58
- "durationSec": 18.5,
58
+ "durationSec": 22.2,
59
59
  "testSummary": {
60
60
  "totalSpecs": 1569,
61
61
  "failures": 0,
62
62
  "passed": 1569,
63
- "testDurationSec": 5.111
63
+ "testDurationSec": 6.282
64
64
  },
65
65
  "errors": [
66
66
  {
67
- "line": 598,
67
+ "line": 267,
68
68
  "text": "(checkDbReadiness) diagnostics collection failed (non-fatal) Error: boom",
69
- "details": "at runNext (/tmp/pipeline-runs/5b804af2-0338-480b-a1fd-d943c06b3078/node_modules/.pnpm/jasmine-core@5.10.0/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:8355:16)\nat /tmp/pipeline-runs/5b804af2-0338-480b-a1fd-d943c06b3078/node_modules/.pnpm/jasmine-core@5.10.0/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:8361:11\nat /tmp/pipeline-runs/5b804af2-0338-480b-a1fd-d943c06b3078/node_modules/.pnpm/jasmine-core@5.10.0/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:8241:9\nat UserContext.<anonymous> (/tmp/pipeline-runs/5b804af2-0338-480b-a1fd-d943c06b3078/build/_modules/server/server-status/server-status.control-service.spec.js:465:68)\nat QueueRunner.attempt (/tmp/pipeline-runs/5b804af2-0338-480b-a1fd-d943c06b3078/node_modules/.pnpm/jasmine-core@5.10.0/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:8414:40)\nat QueueRunner.run (/tmp/pipeline-runs/5b804af2-0338-480b-a1fd-d943c06b3078/node_modules/.pnpm/jasmine-core@5.10.0/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:8452:27)\nat runNext (/tmp/pipeline-runs/5b804af2-0338-480b-a1fd-d943c06b3078/node_modules/.pnpm/jasmine-core@5.10.0/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:8355:16)\nat /tmp/pipeline-runs/5b804af2-0338-480b-a1fd-d943c06b3078/node_modules/.pnpm/jasmine-core@5.10.0/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:8361:11\nat /tmp/pipeline-runs/5b804af2-0338-480b-a1fd-d943c06b3078/node_modules/.pnpm/jasmine-core@5.10.0/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:8241:9",
70
- "detailLineEnd": 604
69
+ "details": "at runNext (/tmp/pipeline-runs/badfb619-593d-4707-8a3c-2c718c4425ee/node_modules/.pnpm/jasmine-core@5.10.0/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:8355:16)\nat /tmp/pipeline-runs/badfb619-593d-4707-8a3c-2c718c4425ee/node_modules/.pnpm/jasmine-core@5.10.0/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:8361:11\nat /tmp/pipeline-runs/badfb619-593d-4707-8a3c-2c718c4425ee/node_modules/.pnpm/jasmine-core@5.10.0/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:8241:9\nat UserContext.<anonymous> (/tmp/pipeline-runs/badfb619-593d-4707-8a3c-2c718c4425ee/build/_modules/server/server-status/server-status.control-service.spec.js:465:68)\nat QueueRunner.attempt (/tmp/pipeline-runs/badfb619-593d-4707-8a3c-2c718c4425ee/node_modules/.pnpm/jasmine-core@5.10.0/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:8414:40)\nat QueueRunner.run (/tmp/pipeline-runs/badfb619-593d-4707-8a3c-2c718c4425ee/node_modules/.pnpm/jasmine-core@5.10.0/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:8452:27)\nat runNext (/tmp/pipeline-runs/badfb619-593d-4707-8a3c-2c718c4425ee/node_modules/.pnpm/jasmine-core@5.10.0/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:8355:16)\nat /tmp/pipeline-runs/badfb619-593d-4707-8a3c-2c718c4425ee/node_modules/.pnpm/jasmine-core@5.10.0/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:8361:11\nat /tmp/pipeline-runs/badfb619-593d-4707-8a3c-2c718c4425ee/node_modules/.pnpm/jasmine-core@5.10.0/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:8241:9",
70
+ "detailLineEnd": 273
71
71
  },
72
72
  {
73
- "line": 605,
73
+ "line": 274,
74
74
  "text": "..(checkDbReadiness) diagnostics collection failed (non-fatal) Error: diag boom",
75
- "details": "at runNext (/tmp/pipeline-runs/5b804af2-0338-480b-a1fd-d943c06b3078/node_modules/.pnpm/jasmine-core@5.10.0/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:8355:16)\nat /tmp/pipeline-runs/5b804af2-0338-480b-a1fd-d943c06b3078/node_modules/.pnpm/jasmine-core@5.10.0/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:8361:11\nat /tmp/pipeline-runs/5b804af2-0338-480b-a1fd-d943c06b3078/node_modules/.pnpm/jasmine-core@5.10.0/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:8241:9\nat Object.get host [as host] (/tmp/pipeline-runs/5b804af2-0338-480b-a1fd-d943c06b3078/build/_modules/server/server-status/server-status.control-service.spec.js:445:36)\nat TestServerStatusControlService.checkDbReadiness (/tmp/pipeline-runs/5b804af2-0338-480b-a1fd-d943c06b3078/build/_modules/server/server-status/server-status.control-service.js:162:29)\nat async UserContext.<anonymous> (/tmp/pipeline-runs/5b804af2-0338-480b-a1fd-d943c06b3078/build/_modules/server/server-status/server-status.control-service.spec.js:448:28)",
76
- "detailLineEnd": 608
75
+ "details": "at runNext (/tmp/pipeline-runs/badfb619-593d-4707-8a3c-2c718c4425ee/node_modules/.pnpm/jasmine-core@5.10.0/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:8355:16)\nat /tmp/pipeline-runs/badfb619-593d-4707-8a3c-2c718c4425ee/node_modules/.pnpm/jasmine-core@5.10.0/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:8361:11\nat /tmp/pipeline-runs/badfb619-593d-4707-8a3c-2c718c4425ee/node_modules/.pnpm/jasmine-core@5.10.0/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:8241:9\nat Object.get host [as host] (/tmp/pipeline-runs/badfb619-593d-4707-8a3c-2c718c4425ee/build/_modules/server/server-status/server-status.control-service.spec.js:445:36)\nat TestServerStatusControlService.checkDbReadiness (/tmp/pipeline-runs/badfb619-593d-4707-8a3c-2c718c4425ee/build/_modules/server/server-status/server-status.control-service.js:162:29)\nat async UserContext.<anonymous> (/tmp/pipeline-runs/badfb619-593d-4707-8a3c-2c718c4425ee/build/_modules/server/server-status/server-status.control-service.spec.js:448:28)",
76
+ "detailLineEnd": 277
77
77
  }
78
78
  ]
79
79
  },
80
80
  "npm-publish": {
81
81
  "status": "running",
82
- "startedAt": "2026-07-22T01:04:23.140Z",
82
+ "startedAt": "2026-07-22T03:57:46.921Z",
83
83
  "logLineStart": 2808,
84
84
  "logLineEnd": null,
85
85
  "durationSec": null
@@ -1,16 +1,28 @@
1
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.
2
+ * Az AI-mock által kezelt modalitások.
3
+ *
4
+ * **NEM `enum`, hanem const-objektum + azonos nevű string-literal union** (declaration merging).
5
+ * Ok — a beégetett fixture-fájloknak EGYSZERRE kell két dolgot teljesíteniük:
6
+ * 1. **JSON-érvényesnek** maradniuk (`"modality": "text"`), mert erre épül a `dc ai-mock-list` beolvasója
7
+ * és az end-to-end pipeline-bizonyíték (capture → szerializálás → visszaolvasás → replay);
8
+ * 2. **típushelyesnek** lenniük a csomagon BELÜL is (`DyNTS_AIMock_Fixture[]`).
9
+ *
10
+ * Egy TS `enum` ezt kizárja: a `"text"` string nem értékadható enum-típusnak (`TS2322`), ezért a
11
+ * szerializált fixture nem fordult. A const-objektum + union mindkettőt megadja, és a hívó oldalon a
12
+ * megszokott `DyNTS_AIMock_Modality.text` írásmód VÁLTOZATLANUL működik.
13
+ *
14
+ * (A fájlnév `.enum.ts` marad: fogalmilag továbbra is felsorolás, csak a TS-megvalósítás más.)
5
15
  */
6
- export declare enum DyNTS_AIMock_Modality {
16
+ export declare const DyNTS_AIMock_Modality: {
7
17
  /** Szöveg-completion (chat / LLM). */
8
- text = "text",
18
+ readonly text: "text";
9
19
  /** Embedding-vektor kimenet. */
10
- embedding = "embedding",
20
+ readonly embedding: "embedding";
11
21
  /** Kép-generálás (base64 kimenet). */
12
- image = "image",
22
+ readonly image: "image";
13
23
  /** Hang: transcription (audio→szöveg) vagy TTS (szöveg→base64-audio). */
14
- audio = "audio"
15
- }
24
+ readonly audio: "audio";
25
+ };
26
+ /** A modalitás-értékek uniója — string-literálok, ezért JSON-ból is közvetlenül értékadható. */
27
+ export type DyNTS_AIMock_Modality = typeof DyNTS_AIMock_Modality[keyof typeof DyNTS_AIMock_Modality];
16
28
  //# sourceMappingURL=aim-modality.enum.d.ts.map
@@ -1 +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"}
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;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,qBAAqB;IAChC,sCAAsC;;IAEtC,gCAAgC;;IAEhC,sCAAsC;;IAEtC,yEAAyE;;CAEjE,CAAC;AAEX,gGAAgG;AAChG,MAAM,MAAM,qBAAqB,GAAG,OAAO,qBAAqB,CAAC,MAAM,OAAO,qBAAqB,CAAC,CAAC"}
@@ -2,19 +2,28 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DyNTS_AIMock_Modality = void 0;
4
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.
5
+ * Az AI-mock által kezelt modalitások.
6
+ *
7
+ * **NEM `enum`, hanem const-objektum + azonos nevű string-literal union** (declaration merging).
8
+ * Ok — a beégetett fixture-fájloknak EGYSZERRE kell két dolgot teljesíteniük:
9
+ * 1. **JSON-érvényesnek** maradniuk (`"modality": "text"`), mert erre épül a `dc ai-mock-list` beolvasója
10
+ * és az end-to-end pipeline-bizonyíték (capture → szerializálás → visszaolvasás → replay);
11
+ * 2. **típushelyesnek** lenniük a csomagon BELÜL is (`DyNTS_AIMock_Fixture[]`).
12
+ *
13
+ * Egy TS `enum` ezt kizárja: a `"text"` string nem értékadható enum-típusnak (`TS2322`), ezért a
14
+ * szerializált fixture nem fordult. A const-objektum + union mindkettőt megadja, és a hívó oldalon a
15
+ * megszokott `DyNTS_AIMock_Modality.text` írásmód VÁLTOZATLANUL működik.
16
+ *
17
+ * (A fájlnév `.enum.ts` marad: fogalmilag továbbra is felsorolás, csak a TS-megvalósítás más.)
8
18
  */
9
- var DyNTS_AIMock_Modality;
10
- (function (DyNTS_AIMock_Modality) {
19
+ exports.DyNTS_AIMock_Modality = {
11
20
  /** Szöveg-completion (chat / LLM). */
12
- DyNTS_AIMock_Modality["text"] = "text";
21
+ text: 'text',
13
22
  /** Embedding-vektor kimenet. */
14
- DyNTS_AIMock_Modality["embedding"] = "embedding";
23
+ embedding: 'embedding',
15
24
  /** Kép-generálás (base64 kimenet). */
16
- DyNTS_AIMock_Modality["image"] = "image";
25
+ image: 'image',
17
26
  /** 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 = {}));
27
+ audio: 'audio',
28
+ };
20
29
  //# sourceMappingURL=aim-modality.enum.js.map
@@ -1 +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"}
1
+ {"version":3,"file":"aim-modality.enum.js","sourceRoot":"","sources":["../../../../../../src/_modules/ai/_modules/ai-mock/_enums/aim-modality.enum.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;GAcG;AACU,QAAA,qBAAqB,GAAG;IACnC,sCAAsC;IACtC,IAAI,EAAE,MAAM;IACZ,gCAAgC;IAChC,SAAS,EAAE,WAAW;IACtB,sCAAsC;IACtC,KAAK,EAAE,OAAO;IACd,yEAAyE;IACzE,KAAK,EAAE,OAAO;CACN,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { DyNTS_AIMock_Fixture } from '../_models/interfaces/aim-fixture.interface';
2
+ /**
3
+ * Valodi AI-generalasbol beegetve (live capture 2026-07-21). Kezzel NE szerkeszd.
4
+ *
5
+ * Determinisztikus sorrend (match-kulcs szerint) + rendezett objektum-kulcsok, hogy az ujra-generalas
6
+ * ne okozzon zajos diff-et. Forras: `DyNTS_AIMock_FixtureSerializer_Util`.
7
+ */
8
+ export declare const DyNTS_AIMock_TextFixtures: DyNTS_AIMock_Fixture[];
9
+ //# sourceMappingURL=aim-text.fixtures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aim-text.fixtures.d.ts","sourceRoot":"","sources":["../../../../../../src/_modules/ai/_modules/ai-mock/fixtures/aim-text.fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AAEnF;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,EAAE,oBAAoB,EAwJ3D,CAAC"}
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DyNTS_AIMock_TextFixtures = void 0;
4
+ /**
5
+ * Valodi AI-generalasbol beegetve (live capture 2026-07-21). Kezzel NE szerkeszd.
6
+ *
7
+ * Determinisztikus sorrend (match-kulcs szerint) + rendezett objektum-kulcsok, hogy az ujra-generalas
8
+ * ne okozzon zajos diff-et. Forras: `DyNTS_AIMock_FixtureSerializer_Util`.
9
+ */
10
+ exports.DyNTS_AIMock_TextFixtures = [
11
+ {
12
+ "capturedAt": "2026-07-22T00:58:38.792Z",
13
+ "config": {
14
+ "temperature": 0
15
+ },
16
+ "input": "Reply with exactly: PONG",
17
+ "inputHash": "0fb5aed1b51b28b04409b7963b2453fe1597d198c3b8396fc8ebd072104511de",
18
+ "modality": "text",
19
+ "model": "gpt-4o-mini",
20
+ "output": {
21
+ "content": "PONG",
22
+ "finish_reason": "stop",
23
+ "usage": {
24
+ "completion_tokens": 2,
25
+ "completion_tokens_details": {
26
+ "accepted_prediction_tokens": 0,
27
+ "audio_tokens": 0,
28
+ "reasoning_tokens": 0,
29
+ "rejected_prediction_tokens": 0
30
+ },
31
+ "prompt_tokens": 13,
32
+ "prompt_tokens_details": {
33
+ "audio_tokens": 0,
34
+ "cached_tokens": 0
35
+ },
36
+ "total_tokens": 15
37
+ }
38
+ },
39
+ "provider": "open-ai",
40
+ "sourceModel": "gpt-4o-mini"
41
+ },
42
+ {
43
+ "capturedAt": "2026-07-22T00:58:37.828Z",
44
+ "config": {
45
+ "temperature": 0
46
+ },
47
+ "input": "Reply with exactly: PONG",
48
+ "inputHash": "0fb5aed1b51b28b04409b7963b2453fe1597d198c3b8396fc8ebd072104511de",
49
+ "modality": "text",
50
+ "model": "gpt-5.4-nano",
51
+ "output": {
52
+ "content": "PONG",
53
+ "finish_reason": "stop",
54
+ "usage": {
55
+ "completion_tokens": 5,
56
+ "completion_tokens_details": {
57
+ "accepted_prediction_tokens": 0,
58
+ "audio_tokens": 0,
59
+ "reasoning_tokens": 0,
60
+ "rejected_prediction_tokens": 0
61
+ },
62
+ "prompt_tokens": 12,
63
+ "prompt_tokens_details": {
64
+ "audio_tokens": 0,
65
+ "cached_tokens": 0
66
+ },
67
+ "total_tokens": 17
68
+ }
69
+ },
70
+ "provider": "open-ai",
71
+ "sourceModel": "gpt-5.4-nano"
72
+ },
73
+ {
74
+ "capturedAt": "2026-07-22T00:58:38.316Z",
75
+ "config": {
76
+ "temperature": 0
77
+ },
78
+ "input": "What is the capital of Hungary? One word.",
79
+ "inputHash": "85c5b3ea12c8e34d97a18cb75ae55936aeb2ef0af90eb2f395a44ace6ce997e8",
80
+ "modality": "text",
81
+ "model": "gpt-5.4-nano",
82
+ "output": {
83
+ "content": "Budapest",
84
+ "finish_reason": "stop",
85
+ "usage": {
86
+ "completion_tokens": 5,
87
+ "completion_tokens_details": {
88
+ "accepted_prediction_tokens": 0,
89
+ "audio_tokens": 0,
90
+ "reasoning_tokens": 0,
91
+ "rejected_prediction_tokens": 0
92
+ },
93
+ "prompt_tokens": 16,
94
+ "prompt_tokens_details": {
95
+ "audio_tokens": 0,
96
+ "cached_tokens": 0
97
+ },
98
+ "total_tokens": 21
99
+ }
100
+ },
101
+ "provider": "open-ai",
102
+ "sourceModel": "gpt-5.4-nano"
103
+ },
104
+ {
105
+ "capturedAt": "2026-07-22T00:58:39.151Z",
106
+ "config": {},
107
+ "input": "artificial intelligence",
108
+ "inputHash": "803b3eb2b6af027151950019f2d5ede506a6636a9eafd262b27c23e3f834056f",
109
+ "modality": "embedding",
110
+ "model": "text-embedding-3-small",
111
+ "output": {
112
+ "dimensions": 1536,
113
+ "embeddingHead": [
114
+ 0.0005774497985839844,
115
+ -0.012481689453125,
116
+ -0.01143646240234375,
117
+ -0.0247344970703125,
118
+ 0.011383056640625,
119
+ -0.006069183349609375,
120
+ -0.0209503173828125,
121
+ 0.03741455078125
122
+ ],
123
+ "model": "text-embedding-3-small",
124
+ "object": "list",
125
+ "usage": {
126
+ "prompt_tokens": 3,
127
+ "total_tokens": 3
128
+ }
129
+ },
130
+ "provider": "open-ai",
131
+ "sourceModel": "text-embedding-3-small"
132
+ },
133
+ {
134
+ "capturedAt": "2026-07-22T00:58:39.020Z",
135
+ "config": {},
136
+ "input": "the quick brown fox",
137
+ "inputHash": "9ecb36561341d18eb65484e833efea61edc74b84cf5e6ae1b81c63533e25fc8f",
138
+ "modality": "embedding",
139
+ "model": "text-embedding-3-small",
140
+ "output": {
141
+ "dimensions": 1536,
142
+ "embeddingHead": [
143
+ -0.033355712890625,
144
+ -0.00183868408203125,
145
+ 0.005237579345703125,
146
+ -0.06304931640625,
147
+ -0.04779052734375,
148
+ 0.0018625259399414062,
149
+ 0.016876220703125,
150
+ 0.034820556640625
151
+ ],
152
+ "model": "text-embedding-3-small",
153
+ "object": "list",
154
+ "usage": {
155
+ "prompt_tokens": 4,
156
+ "total_tokens": 4
157
+ }
158
+ },
159
+ "provider": "open-ai",
160
+ "sourceModel": "text-embedding-3-small"
161
+ }
162
+ ];
163
+ //# sourceMappingURL=aim-text.fixtures.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aim-text.fixtures.js","sourceRoot":"","sources":["../../../../../../src/_modules/ai/_modules/ai-mock/fixtures/aim-text.fixtures.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  export * from './_services/ai-embedding-mock.service';
2
2
  export * from './_enums/aim-modality.enum';
3
+ export * from './fixtures/aim-text.fixtures';
3
4
  export * from './_models/interfaces/aim-request.interface';
4
5
  export * from './_models/interfaces/aim-error.interface';
5
6
  export * from './_models/interfaces/aim-fixture.interface';
@@ -1 +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"}
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,8BAA8B,CAAC;AAG7C,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"}
@@ -19,6 +19,8 @@ const tslib_1 = require("tslib");
19
19
  tslib_1.__exportStar(require("./_services/ai-embedding-mock.service"), exports);
20
20
  // ENUMS
21
21
  tslib_1.__exportStar(require("./_enums/aim-modality.enum"), exports);
22
+ // FIXTURES — valódi AI-generálásból beégetve (live capture 2026-07-21). Git-tracked, determinisztikus (D6).
23
+ tslib_1.__exportStar(require("./fixtures/aim-text.fixtures"), exports);
22
24
  // MODELS / INTERFACES — fixture-shape (MP-3 SP-3.1)
23
25
  tslib_1.__exportStar(require("./_models/interfaces/aim-request.interface"), exports);
24
26
  tslib_1.__exportStar(require("./_models/interfaces/aim-error.interface"), exports);
@@ -1 +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"}
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,4GAA4G;AAC5G,uEAA6C;AAE7C,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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@futdevpro/nts-dynamo",
3
- "version": "01.15.111",
3
+ "version": "01.15.112",
4
4
  "description": "Dynamic NodeTS (NodeJS-Typescript), MongoDB Backend System Framework by Future Development Program Ltd.",
5
5
  "DyBu_settings": {
6
6
  "packageType": "server-package",
@@ -378,7 +378,7 @@
378
378
  "@anthropic-ai/sdk": "~0.39.0",
379
379
  "@modelcontextprotocol/sdk": "~1.29.0",
380
380
  "better-sqlite3": "~12.4.1",
381
- "@futdevpro/fsm-dynamo": "1.16.23",
381
+ "@futdevpro/fsm-dynamo": "1.16.24",
382
382
  "@types/express": "4.17.21",
383
383
  "@types/geoip-lite": "~1.4.1",
384
384
  "@types/node": "~24.1.0",
@@ -1,15 +1,28 @@
1
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.
2
+ * Az AI-mock által kezelt modalitások.
3
+ *
4
+ * **NEM `enum`, hanem const-objektum + azonos nevű string-literal union** (declaration merging).
5
+ * Ok — a beégetett fixture-fájloknak EGYSZERRE kell két dolgot teljesíteniük:
6
+ * 1. **JSON-érvényesnek** maradniuk (`"modality": "text"`), mert erre épül a `dc ai-mock-list` beolvasója
7
+ * és az end-to-end pipeline-bizonyíték (capture → szerializálás → visszaolvasás → replay);
8
+ * 2. **típushelyesnek** lenniük a csomagon BELÜL is (`DyNTS_AIMock_Fixture[]`).
9
+ *
10
+ * Egy TS `enum` ezt kizárja: a `"text"` string nem értékadható enum-típusnak (`TS2322`), ezért a
11
+ * szerializált fixture nem fordult. A const-objektum + union mindkettőt megadja, és a hívó oldalon a
12
+ * megszokott `DyNTS_AIMock_Modality.text` írásmód VÁLTOZATLANUL működik.
13
+ *
14
+ * (A fájlnév `.enum.ts` marad: fogalmilag továbbra is felsorolás, csak a TS-megvalósítás más.)
5
15
  */
6
- export enum DyNTS_AIMock_Modality {
16
+ export const DyNTS_AIMock_Modality = {
7
17
  /** Szöveg-completion (chat / LLM). */
8
- text = 'text',
18
+ text: 'text',
9
19
  /** Embedding-vektor kimenet. */
10
- embedding = 'embedding',
20
+ embedding: 'embedding',
11
21
  /** Kép-generálás (base64 kimenet). */
12
- image = 'image',
22
+ image: 'image',
13
23
  /** Hang: transcription (audio→szöveg) vagy TTS (szöveg→base64-audio). */
14
- audio = 'audio',
15
- }
24
+ audio: 'audio',
25
+ } as const;
26
+
27
+ /** A modalitás-értékek uniója — string-literálok, ezért JSON-ból is közvetlenül értékadható. */
28
+ export type DyNTS_AIMock_Modality = typeof DyNTS_AIMock_Modality[keyof typeof DyNTS_AIMock_Modality];