@linklabjs/core 0.1.1 → 0.1.3
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/package.json +1 -1
- package/dist/scenarios/test-metro-paris/config.json +0 -6
- package/dist/scenarios/test-metro-paris/graph.json +0 -16325
- package/dist/scenarios/test-metro-paris/queries.d.ts +0 -22
- package/dist/scenarios/test-metro-paris/queries.d.ts.map +0 -1
- package/dist/scenarios/test-metro-paris/queries.js +0 -128
- package/dist/scenarios/test-metro-paris/queries.js.map +0 -1
- package/dist/scenarios/test-metro-paris/stack.json +0 -1
- package/dist/scenarios/test-musicians/config.json +0 -10
- package/dist/scenarios/test-musicians/graph.json +0 -20
- package/dist/scenarios/test-musicians/stack.json +0 -1
- package/dist/scenarios/test-netflix/actions.d.ts +0 -14
- package/dist/scenarios/test-netflix/actions.d.ts.map +0 -1
- package/dist/scenarios/test-netflix/actions.js +0 -86
- package/dist/scenarios/test-netflix/actions.js.map +0 -1
- package/dist/scenarios/test-netflix/config.json +0 -6
- package/dist/scenarios/test-netflix/data/categories.json +0 -1
- package/dist/scenarios/test-netflix/data/companies.json +0 -1
- package/dist/scenarios/test-netflix/data/credits.json +0 -19797
- package/dist/scenarios/test-netflix/data/departments.json +0 -18
- package/dist/scenarios/test-netflix/data/jobs.json +0 -142
- package/dist/scenarios/test-netflix/data/movies.json +0 -3497
- package/dist/scenarios/test-netflix/data/people.json +0 -1
- package/dist/scenarios/test-netflix/data/synonyms.json +0 -7
- package/dist/scenarios/test-netflix/data/users.json +0 -70
- package/dist/scenarios/test-netflix/graph.json +0 -1017
- package/dist/scenarios/test-netflix/queries.d.ts +0 -29
- package/dist/scenarios/test-netflix/queries.d.ts.map +0 -1
- package/dist/scenarios/test-netflix/queries.js +0 -134
- package/dist/scenarios/test-netflix/queries.js.map +0 -1
- package/dist/scenarios/test-netflix/stack.json +0 -14
- package/dist/scripts/dictionary.json +0 -796
- package/dist/scripts/graph.json +0 -664
- package/dist/scripts/regenerate.d.ts +0 -23
- package/dist/scripts/regenerate.d.ts.map +0 -1
- package/dist/scripts/regenerate.js +0 -206
- package/dist/scripts/regenerate.js.map +0 -1
- package/src/scenarios/test-metro-paris/config.json +0 -6
- package/src/scenarios/test-metro-paris/graph.json +0 -16325
- package/src/scenarios/test-metro-paris/queries.ts +0 -152
- package/src/scenarios/test-metro-paris/stack.json +0 -1
- package/src/scenarios/test-musicians/config.json +0 -10
- package/src/scenarios/test-musicians/graph.json +0 -20
- package/src/scenarios/test-musicians/stack.json +0 -1
- package/src/scenarios/test-netflix/MIGRATION.md +0 -23
- package/src/scenarios/test-netflix/README.md +0 -138
- package/src/scenarios/test-netflix/actions.ts +0 -92
- package/src/scenarios/test-netflix/config.json +0 -6
- package/src/scenarios/test-netflix/data/categories.json +0 -1
- package/src/scenarios/test-netflix/data/companies.json +0 -1
- package/src/scenarios/test-netflix/data/credits.json +0 -19797
- package/src/scenarios/test-netflix/data/departments.json +0 -18
- package/src/scenarios/test-netflix/data/jobs.json +0 -142
- package/src/scenarios/test-netflix/data/movies.json +0 -3497
- package/src/scenarios/test-netflix/data/people.json +0 -1
- package/src/scenarios/test-netflix/data/synonyms.json +0 -8
- package/src/scenarios/test-netflix/data/users.json +0 -70
- package/src/scenarios/test-netflix/graph.json +0 -1017
- package/src/scenarios/test-netflix/queries.ts +0 -159
- package/src/scenarios/test-netflix/stack.json +0 -14
- package/src/scripts/dictionary.json +0 -796
- package/src/scripts/graph.json +0 -664
- package/src/scripts/regenerate.ts +0 -248
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* queries.ts — Requêtes métro Paris
|
|
3
|
-
*
|
|
4
|
-
* Remplace les config*.json éparpillés.
|
|
5
|
-
* Chaque requête a un nom, une description, et des paramètres typés.
|
|
6
|
-
*
|
|
7
|
-
* Usage :
|
|
8
|
-
* tsx cli/run-scenario.ts scenarios/test-metro-paris --query chatelet-opera
|
|
9
|
-
* tsx cli/run-scenario.ts scenarios/test-metro-paris --query all
|
|
10
|
-
*/
|
|
11
|
-
import type { PathQuery } from '../../types/index.js';
|
|
12
|
-
export interface NamedQuery {
|
|
13
|
-
name: string;
|
|
14
|
-
description: string;
|
|
15
|
-
query: PathQuery;
|
|
16
|
-
}
|
|
17
|
-
export declare const metroQueries: NamedQuery[];
|
|
18
|
-
/**
|
|
19
|
-
* Requête par défaut (utilisée sans --query)
|
|
20
|
-
*/
|
|
21
|
-
export declare const defaultQuery: NamedQuery;
|
|
22
|
-
//# sourceMappingURL=queries.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../../src/scenarios/test-metro-paris/queries.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAErD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,SAAS,CAAA;CACjB;AAED,eAAO,MAAM,YAAY,EAAE,UAAU,EA+HpC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,YAAuD,CAAA"}
|
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* queries.ts — Requêtes métro Paris
|
|
3
|
-
*
|
|
4
|
-
* Remplace les config*.json éparpillés.
|
|
5
|
-
* Chaque requête a un nom, une description, et des paramètres typés.
|
|
6
|
-
*
|
|
7
|
-
* Usage :
|
|
8
|
-
* tsx cli/run-scenario.ts scenarios/test-metro-paris --query chatelet-opera
|
|
9
|
-
* tsx cli/run-scenario.ts scenarios/test-metro-paris --query all
|
|
10
|
-
*/
|
|
11
|
-
export const metroQueries = [
|
|
12
|
-
// ============================================================
|
|
13
|
-
// TRAJETS SIMPLES — Une seule ligne, pas de correspondance
|
|
14
|
-
// ============================================================
|
|
15
|
-
{
|
|
16
|
-
name: 'chatelet-opera',
|
|
17
|
-
description: 'Châtelet → Opéra (Ligne 7, 2 stations, ~3 min)',
|
|
18
|
-
query: {
|
|
19
|
-
from: 'Station-chatelet',
|
|
20
|
-
to: 'Station-opera',
|
|
21
|
-
maxPaths: 3
|
|
22
|
-
}
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
name: 'ligne1-terminus',
|
|
26
|
-
description: 'La Défense → Château de Vincennes (Ligne 1 complète, ~45 min)',
|
|
27
|
-
query: {
|
|
28
|
-
from: 'Station-la-defense-grande-arche',
|
|
29
|
-
to: 'Station-chateau-de-vincennes',
|
|
30
|
-
maxPaths: 1
|
|
31
|
-
}
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
name: 'ligne4-nord-sud',
|
|
35
|
-
description: 'Porte de Clignancourt → Mairie de Montrouge (Ligne 4 complète)',
|
|
36
|
-
query: {
|
|
37
|
-
from: 'Station-porte-de-clignancourt',
|
|
38
|
-
to: 'Station-mairie-de-montrouge',
|
|
39
|
-
maxPaths: 1
|
|
40
|
-
}
|
|
41
|
-
},
|
|
42
|
-
// ============================================================
|
|
43
|
-
// TRAJETS AVEC CORRESPONDANCES — Teste le pathfinder
|
|
44
|
-
// ============================================================
|
|
45
|
-
{
|
|
46
|
-
name: 'republique-bastille',
|
|
47
|
-
description: 'République → Bastille (plusieurs chemins via L5, L8, L9)',
|
|
48
|
-
query: {
|
|
49
|
-
from: 'Station-republique',
|
|
50
|
-
to: 'Station-bastille',
|
|
51
|
-
maxPaths: 5
|
|
52
|
-
}
|
|
53
|
-
},
|
|
54
|
-
{
|
|
55
|
-
name: 'gare-du-nord-montparnasse',
|
|
56
|
-
description: 'Gare du Nord → Montparnasse (correspondance obligatoire)',
|
|
57
|
-
query: {
|
|
58
|
-
from: 'Station-gare-du-nord',
|
|
59
|
-
to: 'Station-montparnasse-bienvenue',
|
|
60
|
-
maxPaths: 3
|
|
61
|
-
}
|
|
62
|
-
},
|
|
63
|
-
{
|
|
64
|
-
name: 'defense-nation',
|
|
65
|
-
description: 'La Défense → Nation (traversée Est-Ouest, Ligne 1)',
|
|
66
|
-
query: {
|
|
67
|
-
from: 'Station-la-defense-grande-arche',
|
|
68
|
-
to: 'Station-nation',
|
|
69
|
-
maxPaths: 3
|
|
70
|
-
}
|
|
71
|
-
},
|
|
72
|
-
// ============================================================
|
|
73
|
-
// TRAJETS COMPLEXES — Hubs majeurs, longue distance
|
|
74
|
-
// ============================================================
|
|
75
|
-
{
|
|
76
|
-
name: 'saint-denis-chatillon',
|
|
77
|
-
description: 'Saint-Denis Université → Châtillon-Montrouge (Ligne 13 complète)',
|
|
78
|
-
query: {
|
|
79
|
-
from: 'Station-saint-denis-universite',
|
|
80
|
-
to: 'Station-chatillon-montrouge',
|
|
81
|
-
maxPaths: 2
|
|
82
|
-
}
|
|
83
|
-
},
|
|
84
|
-
{
|
|
85
|
-
name: 'vincennes-defense',
|
|
86
|
-
description: 'Château de Vincennes → La Défense (traversée complète Ligne 1)',
|
|
87
|
-
query: {
|
|
88
|
-
from: 'Station-chateau-de-vincennes',
|
|
89
|
-
to: 'Station-la-defense-grande-arche',
|
|
90
|
-
maxPaths: 1
|
|
91
|
-
}
|
|
92
|
-
},
|
|
93
|
-
{
|
|
94
|
-
name: 'clignancourt-vincennes',
|
|
95
|
-
description: 'Porte de Clignancourt → Château de Vincennes (diagonale NW→SE)',
|
|
96
|
-
query: {
|
|
97
|
-
from: 'Station-porte-de-clignancourt',
|
|
98
|
-
to: 'Station-chateau-de-vincennes',
|
|
99
|
-
maxPaths: 5
|
|
100
|
-
}
|
|
101
|
-
},
|
|
102
|
-
// ============================================================
|
|
103
|
-
// TOURISME — Stations emblématiques
|
|
104
|
-
// ============================================================
|
|
105
|
-
{
|
|
106
|
-
name: 'louvre-tour-eiffel',
|
|
107
|
-
description: 'Louvre-Rivoli → Trocadéro (musées)',
|
|
108
|
-
query: {
|
|
109
|
-
from: 'Station-louvre-rivoli',
|
|
110
|
-
to: 'Station-trocadero',
|
|
111
|
-
maxPaths: 3
|
|
112
|
-
}
|
|
113
|
-
},
|
|
114
|
-
{
|
|
115
|
-
name: 'notre-dame-sacre-coeur',
|
|
116
|
-
description: 'Cité → Abbesses (Notre-Dame → Sacré-Cœur)',
|
|
117
|
-
query: {
|
|
118
|
-
from: 'Station-cite',
|
|
119
|
-
to: 'Station-abbesses',
|
|
120
|
-
maxPaths: 3
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
];
|
|
124
|
-
/**
|
|
125
|
-
* Requête par défaut (utilisée sans --query)
|
|
126
|
-
*/
|
|
127
|
-
export const defaultQuery = metroQueries.find(q => q.name === 'chatelet-opera');
|
|
128
|
-
//# sourceMappingURL=queries.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../src/scenarios/test-metro-paris/queries.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAUH,MAAM,CAAC,MAAM,YAAY,GAAiB;IAExC,+DAA+D;IAC/D,2DAA2D;IAC3D,+DAA+D;IAE/D;QACE,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,gDAAgD;QAC7D,KAAK,EAAE;YACL,IAAI,EAAE,kBAAkB;YACxB,EAAE,EAAE,eAAe;YACnB,QAAQ,EAAE,CAAC;SACZ;KACF;IAED;QACE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,+DAA+D;QAC5E,KAAK,EAAE;YACL,IAAI,EAAE,iCAAiC;YACvC,EAAE,EAAE,8BAA8B;YAClC,QAAQ,EAAE,CAAC;SACZ;KACF;IAED;QACE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,gEAAgE;QAC7E,KAAK,EAAE;YACL,IAAI,EAAE,+BAA+B;YACrC,EAAE,EAAE,6BAA6B;YACjC,QAAQ,EAAE,CAAC;SACZ;KACF;IAED,+DAA+D;IAC/D,qDAAqD;IACrD,+DAA+D;IAE/D;QACE,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,0DAA0D;QACvE,KAAK,EAAE;YACL,IAAI,EAAE,oBAAoB;YAC1B,EAAE,EAAE,kBAAkB;YACtB,QAAQ,EAAE,CAAC;SACZ;KACF;IAED;QACE,IAAI,EAAE,2BAA2B;QACjC,WAAW,EAAE,0DAA0D;QACvE,KAAK,EAAE;YACL,IAAI,EAAE,sBAAsB;YAC5B,EAAE,EAAE,gCAAgC;YACpC,QAAQ,EAAE,CAAC;SACZ;KACF;IAED;QACE,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,oDAAoD;QACjE,KAAK,EAAE;YACL,IAAI,EAAE,iCAAiC;YACvC,EAAE,EAAE,gBAAgB;YACpB,QAAQ,EAAE,CAAC;SACZ;KACF;IAED,+DAA+D;IAC/D,oDAAoD;IACpD,+DAA+D;IAE/D;QACE,IAAI,EAAE,uBAAuB;QAC7B,WAAW,EAAE,kEAAkE;QAC/E,KAAK,EAAE;YACL,IAAI,EAAE,gCAAgC;YACtC,EAAE,EAAE,6BAA6B;YACjC,QAAQ,EAAE,CAAC;SACZ;KACF;IAED;QACE,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,gEAAgE;QAC7E,KAAK,EAAE;YACL,IAAI,EAAE,8BAA8B;YACpC,EAAE,EAAE,iCAAiC;YACrC,QAAQ,EAAE,CAAC;SACZ;KACF;IAED;QACE,IAAI,EAAE,wBAAwB;QAC9B,WAAW,EAAE,gEAAgE;QAC7E,KAAK,EAAE;YACL,IAAI,EAAE,+BAA+B;YACrC,EAAE,EAAE,8BAA8B;YAClC,QAAQ,EAAE,CAAC;SACZ;KACF;IAED,+DAA+D;IAC/D,oCAAoC;IACpC,+DAA+D;IAE/D;QACE,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EAAE,oCAAoC;QACjD,KAAK,EAAE;YACL,IAAI,EAAE,uBAAuB;YAC7B,EAAE,EAAE,mBAAmB;YACvB,QAAQ,EAAE,CAAC;SACZ;KACF;IAED;QACE,IAAI,EAAE,wBAAwB;QAC9B,WAAW,EAAE,2CAA2C;QACxD,KAAK,EAAE;YACL,IAAI,EAAE,cAAc;YACpB,EAAE,EAAE,kBAAkB;YACtB,QAAQ,EAAE,CAAC;SACZ;KACF;CACF,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,gBAAgB,CAAE,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
[]
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"nodes": [
|
|
3
|
-
{ "id": "Artist-Manu-Dibango", "type": "entity" },
|
|
4
|
-
{ "id": "Artist-Michael-Jackson", "type": "entity" },
|
|
5
|
-
{ "id": "Artist-Will-Smith", "type": "entity" },
|
|
6
|
-
{ "id": "Track-Soul-Makossa", "type": "entity" },
|
|
7
|
-
{ "id": "Track-Wanna-Be-Startin", "type": "entity" },
|
|
8
|
-
{ "id": "Track-Gettin-Jiggy", "type": "entity" }
|
|
9
|
-
],
|
|
10
|
-
"edges": [
|
|
11
|
-
{ "name": "created", "from": "Artist-Manu-Dibango", "to": "Track-Soul-Makossa", "via": "artist_tracks", "weight": 1 },
|
|
12
|
-
{ "name": "created", "from": "Artist-Michael-Jackson", "to": "Track-Wanna-Be-Startin", "via": "artist_tracks", "weight": 1 },
|
|
13
|
-
{ "name": "created", "from": "Artist-Will-Smith", "to": "Track-Gettin-Jiggy", "via": "artist_tracks", "weight": 1 },
|
|
14
|
-
{ "name": "samples", "from": "Track-Wanna-Be-Startin", "to": "Track-Soul-Makossa", "via": "track_samples", "weight": 3 },
|
|
15
|
-
{ "name": "samples", "from": "Track-Gettin-Jiggy", "to": "Track-Wanna-Be-Startin", "via": "track_samples", "weight": 3 },
|
|
16
|
-
{ "name": "credited_on", "from": "Track-Soul-Makossa", "to": "Artist-Manu-Dibango", "via": "artist_tracks", "weight": 1 },
|
|
17
|
-
{ "name": "credited_on", "from": "Track-Wanna-Be-Startin", "to": "Artist-Michael-Jackson", "via": "artist_tracks", "weight": 1 },
|
|
18
|
-
{ "name": "credited_on", "from": "Track-Gettin-Jiggy", "to": "Artist-Will-Smith", "via": "artist_tracks", "weight": 1 }
|
|
19
|
-
]
|
|
20
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
[]
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Actions du scénario Netflix
|
|
3
|
-
*
|
|
4
|
-
* Simule le parcours d'un utilisateur qui :
|
|
5
|
-
* 1. Voit la liste des films d'un réalisateur (déjà en contexte)
|
|
6
|
-
* 2. Sélectionne un film
|
|
7
|
-
* 3. Navigue vers les acteurs
|
|
8
|
-
* 4. Sélectionne un acteur
|
|
9
|
-
* 5. Explore les options à partir de cet acteur
|
|
10
|
-
*/
|
|
11
|
-
import type { ScheduleAction } from '../../types/index.js';
|
|
12
|
-
declare const actions: ScheduleAction[];
|
|
13
|
-
export default actions;
|
|
14
|
-
//# sourceMappingURL=actions.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../src/scenarios/test-netflix/actions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAS,MAAM,sBAAsB,CAAA;AAEjE,QAAA,MAAM,OAAO,EAAE,cAAc,EA4E5B,CAAA;AAED,eAAe,OAAO,CAAA"}
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Actions du scénario Netflix
|
|
3
|
-
*
|
|
4
|
-
* Simule le parcours d'un utilisateur qui :
|
|
5
|
-
* 1. Voit la liste des films d'un réalisateur (déjà en contexte)
|
|
6
|
-
* 2. Sélectionne un film
|
|
7
|
-
* 3. Navigue vers les acteurs
|
|
8
|
-
* 4. Sélectionne un acteur
|
|
9
|
-
* 5. Explore les options à partir de cet acteur
|
|
10
|
-
*/
|
|
11
|
-
const actions = [
|
|
12
|
-
{
|
|
13
|
-
name: 'selectMovie',
|
|
14
|
-
weight: 10,
|
|
15
|
-
// Movies est résolu (liste chargée) mais pas encore d'ID choisi
|
|
16
|
-
when: (stack) => {
|
|
17
|
-
const movies = stack.find(f => f.entity === 'Movies');
|
|
18
|
-
return movies?.state === 'RESOLVED' && movies.id == null;
|
|
19
|
-
},
|
|
20
|
-
execute: async (stack) => {
|
|
21
|
-
console.log(' 🎬 [selectMovie] L\'utilisateur choisit un film dans la liste...');
|
|
22
|
-
const movies = stack.find(f => f.entity === 'Movies');
|
|
23
|
-
if (movies) {
|
|
24
|
-
movies.id = 10;
|
|
25
|
-
console.log(' ✓ Film #10 sélectionné');
|
|
26
|
-
}
|
|
27
|
-
return stack;
|
|
28
|
-
},
|
|
29
|
-
cooldown: 0
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
name: 'navigateToActors',
|
|
33
|
-
weight: 8,
|
|
34
|
-
// Un film est sélectionné, mais pas encore de frame Actors
|
|
35
|
-
when: (stack) => {
|
|
36
|
-
const movies = stack.find(f => f.entity === 'Movies');
|
|
37
|
-
const actors = stack.find(f => f.entity === 'Actors');
|
|
38
|
-
return !!movies && movies.id != null && !actors;
|
|
39
|
-
},
|
|
40
|
-
execute: async (stack) => {
|
|
41
|
-
console.log(' 🎭 [navigateToActors] L\'utilisateur clique sur "Voir les acteurs"...');
|
|
42
|
-
stack.push({ entity: 'Actors', state: 'UNRESOLVED' });
|
|
43
|
-
console.log(' ✓ Frame Actors ajoutée à la stack');
|
|
44
|
-
return stack;
|
|
45
|
-
},
|
|
46
|
-
cooldown: 0
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
name: 'selectActor',
|
|
50
|
-
weight: 5,
|
|
51
|
-
// Actors existe, est résolu, mais pas encore d'ID choisi
|
|
52
|
-
when: (stack) => {
|
|
53
|
-
const actors = stack.find(f => f.entity === 'Actors');
|
|
54
|
-
return !!actors && actors.state === 'RESOLVED' && actors.id == null;
|
|
55
|
-
},
|
|
56
|
-
execute: async (stack) => {
|
|
57
|
-
console.log(' ⭐ [selectActor] L\'utilisateur sélectionne un acteur...');
|
|
58
|
-
const actors = stack.find(f => f.entity === 'Actors');
|
|
59
|
-
if (actors) {
|
|
60
|
-
actors.id = 3;
|
|
61
|
-
console.log(' ✓ Acteur #3 sélectionné');
|
|
62
|
-
}
|
|
63
|
-
return stack;
|
|
64
|
-
},
|
|
65
|
-
cooldown: 0
|
|
66
|
-
},
|
|
67
|
-
{
|
|
68
|
-
name: 'exploreFromActor',
|
|
69
|
-
weight: 3,
|
|
70
|
-
terminal: true, // S'exécute une seule fois
|
|
71
|
-
when: (stack) => {
|
|
72
|
-
const actors = stack.find(f => f.entity === 'Actors');
|
|
73
|
-
return !!actors && actors.id != null;
|
|
74
|
-
},
|
|
75
|
-
execute: async (stack) => {
|
|
76
|
-
console.log(' 🔍 [exploreFromActor] Affichage des options d\'exploration :');
|
|
77
|
-
console.log(' - Filmographie complète');
|
|
78
|
-
console.log(' - Autres réalisateurs');
|
|
79
|
-
console.log(' - Co-stars');
|
|
80
|
-
return stack;
|
|
81
|
-
},
|
|
82
|
-
cooldown: 0
|
|
83
|
-
}
|
|
84
|
-
];
|
|
85
|
-
export default actions;
|
|
86
|
-
//# sourceMappingURL=actions.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../../../src/scenarios/test-netflix/actions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"mode": "NAVIGATE",
|
|
3
|
-
"description": "Scénario Netflix — navigation dans un graphe généré automatiquement par le pipeline. Démontre les vues sémantiques (actor, director, writer...) issues de credits.jobId → jobs.",
|
|
4
|
-
"dataPath": "./data",
|
|
5
|
-
"graphGeneratedBy": "JsonSchemaExtractor → SchemaAnalyzer → GraphBuilder → GraphAssembler → GraphOptimizer"
|
|
6
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
[{ "id": 18, "name": "Drame" }, { "id": 80, "name": "Crime" }, { "id": 36, "name": "Histoire" }, { "id": 10752, "name": "Guerre" }, { "id": 35, "name": "Comédie" }, { "id": 10749, "name": "Romance" }, { "id": 16, "name": "Animation" }, { "id": 10751, "name": "Familial" }, { "id": 14, "name": "Fantastique" }, { "id": 28, "name": "Action" }, { "id": 53, "name": "Thriller" }, { "id": 12, "name": "Aventure" }, { "id": 37, "name": "Western" }, { "id": 10402, "name": "Musique" }, { "id": 27, "name": "Horreur" }, { "id": 9648, "name": "Mystère" }, { "id": 878, "name": "Science-Fiction" }, { "id": 10770, "name": "Téléfilm" }]
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
[]
|