@futdevpro/nts-dynamo 1.15.113 → 1.15.114
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":
|
|
3
|
-
"startedAt": "2026-07-22T04:
|
|
4
|
-
"startedAtMs":
|
|
2
|
+
"pid": 66541,
|
|
3
|
+
"startedAt": "2026-07-22T04:48:25.016Z",
|
|
4
|
+
"startedAtMs": 1784695705016,
|
|
5
5
|
"phase": "npm-publish",
|
|
6
6
|
"pipelineComplete": false,
|
|
7
7
|
"serverRunning": false,
|
|
@@ -10,77 +10,77 @@
|
|
|
10
10
|
"steps": {
|
|
11
11
|
"validate-secrets": {
|
|
12
12
|
"status": "ok",
|
|
13
|
-
"startedAt": "2026-07-22T04:
|
|
13
|
+
"startedAt": "2026-07-22T04:48:25.032Z",
|
|
14
14
|
"logLineStart": 2,
|
|
15
15
|
"logLineEnd": 8,
|
|
16
|
-
"durationSec": 0.
|
|
16
|
+
"durationSec": 0.6
|
|
17
17
|
},
|
|
18
18
|
"discord-start": {
|
|
19
19
|
"status": "ok",
|
|
20
|
-
"startedAt": "2026-07-22T04:
|
|
20
|
+
"startedAt": "2026-07-22T04:48:26.599Z",
|
|
21
21
|
"logLineStart": 9,
|
|
22
22
|
"logLineEnd": 14,
|
|
23
|
-
"durationSec":
|
|
23
|
+
"durationSec": 3.2
|
|
24
24
|
},
|
|
25
25
|
"pre-flight": {
|
|
26
26
|
"status": "ok",
|
|
27
|
-
"startedAt": "2026-07-22T04:
|
|
27
|
+
"startedAt": "2026-07-22T04:48:30.822Z",
|
|
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-22T04:
|
|
34
|
+
"startedAt": "2026-07-22T04:48:32.014Z",
|
|
35
35
|
"logLineStart": 18,
|
|
36
|
-
"logLineEnd":
|
|
37
|
-
"durationSec":
|
|
36
|
+
"logLineEnd": 101,
|
|
37
|
+
"durationSec": 21.5
|
|
38
38
|
},
|
|
39
39
|
"check-dev-leftovers": {
|
|
40
40
|
"status": "ok",
|
|
41
|
-
"startedAt": "2026-07-22T04:
|
|
42
|
-
"logLineStart":
|
|
43
|
-
"logLineEnd":
|
|
44
|
-
"durationSec": 4.
|
|
41
|
+
"startedAt": "2026-07-22T04:48:54.507Z",
|
|
42
|
+
"logLineStart": 102,
|
|
43
|
+
"logLineEnd": 109,
|
|
44
|
+
"durationSec": 4.5
|
|
45
45
|
},
|
|
46
46
|
"build": {
|
|
47
47
|
"status": "ok",
|
|
48
|
-
"startedAt": "2026-07-22T04:
|
|
49
|
-
"logLineStart":
|
|
50
|
-
"logLineEnd":
|
|
51
|
-
"durationSec":
|
|
48
|
+
"startedAt": "2026-07-22T04:49:00.035Z",
|
|
49
|
+
"logLineStart": 110,
|
|
50
|
+
"logLineEnd": 111,
|
|
51
|
+
"durationSec": 35.5
|
|
52
52
|
},
|
|
53
53
|
"test": {
|
|
54
54
|
"status": "ok",
|
|
55
|
-
"startedAt": "2026-07-22T04:
|
|
56
|
-
"logLineStart":
|
|
57
|
-
"logLineEnd":
|
|
58
|
-
"durationSec":
|
|
55
|
+
"startedAt": "2026-07-22T04:49:38.854Z",
|
|
56
|
+
"logLineStart": 112,
|
|
57
|
+
"logLineEnd": 2802,
|
|
58
|
+
"durationSec": 46,
|
|
59
59
|
"testSummary": {
|
|
60
|
-
"totalSpecs":
|
|
60
|
+
"totalSpecs": 1575,
|
|
61
61
|
"failures": 0,
|
|
62
|
-
"passed":
|
|
63
|
-
"testDurationSec":
|
|
62
|
+
"passed": 1575,
|
|
63
|
+
"testDurationSec": 9.682
|
|
64
64
|
},
|
|
65
65
|
"errors": [
|
|
66
66
|
{
|
|
67
|
-
"line":
|
|
67
|
+
"line": 2151,
|
|
68
68
|
"text": "(checkDbReadiness) diagnostics collection failed (non-fatal) Error: boom",
|
|
69
|
-
"details": "at runNext (/tmp/pipeline-runs/
|
|
70
|
-
"detailLineEnd":
|
|
69
|
+
"details": "at runNext (/tmp/pipeline-runs/315298a8-c46b-402b-901c-65c812d93bef/node_modules/.pnpm/jasmine-core@5.10.0/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:8355:16)\nat /tmp/pipeline-runs/315298a8-c46b-402b-901c-65c812d93bef/node_modules/.pnpm/jasmine-core@5.10.0/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:8361:11\nat /tmp/pipeline-runs/315298a8-c46b-402b-901c-65c812d93bef/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/315298a8-c46b-402b-901c-65c812d93bef/build/_modules/server/server-status/server-status.control-service.spec.js:507:68)\nat QueueRunner.attempt (/tmp/pipeline-runs/315298a8-c46b-402b-901c-65c812d93bef/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/315298a8-c46b-402b-901c-65c812d93bef/node_modules/.pnpm/jasmine-core@5.10.0/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:8452:27)\nat runNext (/tmp/pipeline-runs/315298a8-c46b-402b-901c-65c812d93bef/node_modules/.pnpm/jasmine-core@5.10.0/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:8355:16)\nat /tmp/pipeline-runs/315298a8-c46b-402b-901c-65c812d93bef/node_modules/.pnpm/jasmine-core@5.10.0/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:8361:11\nat /tmp/pipeline-runs/315298a8-c46b-402b-901c-65c812d93bef/node_modules/.pnpm/jasmine-core@5.10.0/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:8241:9",
|
|
70
|
+
"detailLineEnd": 2157
|
|
71
71
|
},
|
|
72
72
|
{
|
|
73
|
-
"line":
|
|
74
|
-
"text": "(checkDbReadiness) diagnostics collection failed (non-fatal) Error: diag boom",
|
|
75
|
-
"details": "at runNext (/tmp/pipeline-runs/
|
|
76
|
-
"detailLineEnd":
|
|
73
|
+
"line": 2158,
|
|
74
|
+
"text": ".(checkDbReadiness) diagnostics collection failed (non-fatal) Error: diag boom",
|
|
75
|
+
"details": "at runNext (/tmp/pipeline-runs/315298a8-c46b-402b-901c-65c812d93bef/node_modules/.pnpm/jasmine-core@5.10.0/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:8355:16)\nat /tmp/pipeline-runs/315298a8-c46b-402b-901c-65c812d93bef/node_modules/.pnpm/jasmine-core@5.10.0/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:8361:11\nat /tmp/pipeline-runs/315298a8-c46b-402b-901c-65c812d93bef/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/315298a8-c46b-402b-901c-65c812d93bef/build/_modules/server/server-status/server-status.control-service.spec.js:487:36)\nat TestServerStatusControlService.checkDbReadiness (/tmp/pipeline-runs/315298a8-c46b-402b-901c-65c812d93bef/build/_modules/server/server-status/server-status.control-service.js:177:29)\nat async UserContext.<anonymous> (/tmp/pipeline-runs/315298a8-c46b-402b-901c-65c812d93bef/build/_modules/server/server-status/server-status.control-service.spec.js:490:28)",
|
|
76
|
+
"detailLineEnd": 2161
|
|
77
77
|
}
|
|
78
78
|
]
|
|
79
79
|
},
|
|
80
80
|
"npm-publish": {
|
|
81
81
|
"status": "running",
|
|
82
|
-
"startedAt": "2026-07-22T04:
|
|
83
|
-
"logLineStart":
|
|
82
|
+
"startedAt": "2026-07-22T04:50:25.869Z",
|
|
83
|
+
"logLineStart": 2803,
|
|
84
84
|
"logLineEnd": null,
|
|
85
85
|
"durationSec": null
|
|
86
86
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@futdevpro/nts-dynamo",
|
|
3
|
-
"version": "01.15.
|
|
3
|
+
"version": "01.15.114",
|
|
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",
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { DyFM_Error } from '@futdevpro/fsm-dynamo';
|
|
2
|
+
|
|
3
|
+
import { DyNTS_AIMock_Modality } from '../_enums/aim-modality.enum';
|
|
4
|
+
import { DyNTS_AIMock_Fixture } from '../_models/interfaces/aim-fixture.interface';
|
|
5
|
+
import { DyNTS_AIMock_ServiceCollection } from '../_models/interfaces/aim-service-collection.interface';
|
|
6
|
+
import { getDefaultAiMockServiceCollection } from '../_collections/aim-default-collection.util';
|
|
7
|
+
import { DyNTS_AIMock_TextFixtures } from '../fixtures/aim-text.fixtures';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* **MP-8 SP-8.2 — integracios bizonyitas, NULLA halozattal.**
|
|
11
|
+
*
|
|
12
|
+
* Ez a spec a TENYLEGESEN COMMITOLT, valodi AI-generalasbol beegetett fixture-oket (`DyNTS_AIMock_TextFixtures`)
|
|
13
|
+
* tolti be a `getDefaultAiMockServiceCollection` factory-n keresztul — vagyis pontosan azon az uton, ahogy egy
|
|
14
|
+
* consumer hasznalna —, es igazolja a rendszer ket alapigeretet:
|
|
15
|
+
* 1. **replay**: a beegetett valasz visszajon, outbound hivas NELKUL,
|
|
16
|
+
* 2. **reject-on-unknown**: a nem beegetett input strukturalt hibat kap (D3 — sosem csendes fallback).
|
|
17
|
+
*
|
|
18
|
+
* Ha ez a spec zold, akkor a lanc `valodi generalas → determinisztikus beegetes → offline replay` mukodik.
|
|
19
|
+
*/
|
|
20
|
+
describe('| ai-mock INTEGRACIOS BIZONYITAS (commitolt fixture-ok, halozat nelkul)', () => {
|
|
21
|
+
|
|
22
|
+
/** A beegetett keszlet legyen tenylegesen jelen — ures fixture-keszlet eseten a spec hamis-zold lenne. */
|
|
23
|
+
it('| a commitolt fixture-keszlet NEM ures (kulonben a tobbi allitas ertelmetlen)', () => {
|
|
24
|
+
expect(DyNTS_AIMock_TextFixtures.length).toBeGreaterThan(0);
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
it('| a factory-n keresztul betoltve a beegetett valasz VISSZAJATSZHATO (outbound hivas nelkul)', async () => {
|
|
28
|
+
const collection: DyNTS_AIMock_ServiceCollection = getDefaultAiMockServiceCollection({
|
|
29
|
+
fixtures: DyNTS_AIMock_TextFixtures,
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
const chat: DyNTS_AIMock_Fixture = DyNTS_AIMock_TextFixtures.find(
|
|
33
|
+
(fixture: DyNTS_AIMock_Fixture) => fixture.modality === DyNTS_AIMock_Modality.text && !!fixture.output
|
|
34
|
+
);
|
|
35
|
+
|
|
36
|
+
expect(chat).toBeDefined();
|
|
37
|
+
|
|
38
|
+
const replayed: unknown = await collection.service.chatCompletion({
|
|
39
|
+
provider: chat.provider,
|
|
40
|
+
model: chat.model,
|
|
41
|
+
config: chat.config,
|
|
42
|
+
input: chat.input,
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
expect(replayed).toEqual(chat.output);
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
it('| embedding-fixture is visszajatszhato ugyanazon a felületen', async () => {
|
|
49
|
+
const collection: DyNTS_AIMock_ServiceCollection = getDefaultAiMockServiceCollection({
|
|
50
|
+
fixtures: DyNTS_AIMock_TextFixtures,
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
const embedding: DyNTS_AIMock_Fixture = DyNTS_AIMock_TextFixtures.find(
|
|
54
|
+
(fixture: DyNTS_AIMock_Fixture) => fixture.modality === DyNTS_AIMock_Modality.embedding
|
|
55
|
+
);
|
|
56
|
+
|
|
57
|
+
if (!embedding) {
|
|
58
|
+
pending('nincs embedding-fixture a beegetett keszletben');
|
|
59
|
+
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
const replayed: unknown = await collection.service.embed({
|
|
64
|
+
provider: embedding.provider,
|
|
65
|
+
model: embedding.model,
|
|
66
|
+
config: embedding.config,
|
|
67
|
+
input: embedding.input,
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
expect(replayed).toEqual(embedding.output);
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
it('| NEM beegetett input → strukturalt reject-on-unknown (D3: sosem csendes fallback)', async () => {
|
|
74
|
+
const collection: DyNTS_AIMock_ServiceCollection = getDefaultAiMockServiceCollection({
|
|
75
|
+
fixtures: DyNTS_AIMock_TextFixtures,
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
try {
|
|
79
|
+
await collection.service.chatCompletion({
|
|
80
|
+
provider: 'open-ai',
|
|
81
|
+
model: 'gpt-4o-mini',
|
|
82
|
+
input: 'ezt a bemenetet SOHA nem egettuk be',
|
|
83
|
+
});
|
|
84
|
+
fail('reject-on-unknown-t vartunk');
|
|
85
|
+
} catch (error) {
|
|
86
|
+
expect(error instanceof DyFM_Error).toBe(true);
|
|
87
|
+
if (error instanceof DyFM_Error) {
|
|
88
|
+
expect(error.message).toContain('no fixture');
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
});
|