@lyrra/mcp-server 1.0.1 → 1.1.0

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.
Files changed (87) hide show
  1. package/Dockerfile +16 -0
  2. package/README.md +59 -4
  3. package/dist/client.d.ts +7 -1
  4. package/dist/client.d.ts.map +1 -1
  5. package/dist/client.js +5 -5
  6. package/dist/client.js.map +1 -1
  7. package/dist/config.d.ts +1 -0
  8. package/dist/config.d.ts.map +1 -1
  9. package/dist/config.js +1 -0
  10. package/dist/config.js.map +1 -1
  11. package/dist/http-server.d.ts +8 -0
  12. package/dist/http-server.d.ts.map +1 -0
  13. package/dist/http-server.js +466 -0
  14. package/dist/http-server.js.map +1 -0
  15. package/dist/index.js +3 -69
  16. package/dist/index.js.map +1 -1
  17. package/dist/server-factory.d.ts +8 -0
  18. package/dist/server-factory.d.ts.map +1 -0
  19. package/dist/server-factory.js +82 -0
  20. package/dist/server-factory.js.map +1 -0
  21. package/dist/tools/admin.d.ts +132 -0
  22. package/dist/tools/admin.d.ts.map +1 -1
  23. package/dist/tools/admin.js +105 -101
  24. package/dist/tools/admin.js.map +1 -1
  25. package/dist/tools/ai-designer.d.ts +148 -0
  26. package/dist/tools/ai-designer.d.ts.map +1 -1
  27. package/dist/tools/ai-designer.js +80 -76
  28. package/dist/tools/ai-designer.js.map +1 -1
  29. package/dist/tools/analytics.d.ts +47 -0
  30. package/dist/tools/analytics.d.ts.map +1 -1
  31. package/dist/tools/analytics.js +38 -34
  32. package/dist/tools/analytics.js.map +1 -1
  33. package/dist/tools/auth.d.ts +30 -0
  34. package/dist/tools/auth.d.ts.map +1 -1
  35. package/dist/tools/auth.js +31 -27
  36. package/dist/tools/auth.js.map +1 -1
  37. package/dist/tools/blocks.d.ts +200 -0
  38. package/dist/tools/blocks.d.ts.map +1 -1
  39. package/dist/tools/blocks.js +154 -150
  40. package/dist/tools/blocks.js.map +1 -1
  41. package/dist/tools/connections.d.ts +86 -0
  42. package/dist/tools/connections.d.ts.map +1 -1
  43. package/dist/tools/connections.js +70 -66
  44. package/dist/tools/connections.js.map +1 -1
  45. package/dist/tools/eduflow.d.ts +223 -0
  46. package/dist/tools/eduflow.d.ts.map +1 -1
  47. package/dist/tools/eduflow.js +114 -93
  48. package/dist/tools/eduflow.js.map +1 -1
  49. package/dist/tools/participants.d.ts +110 -0
  50. package/dist/tools/participants.d.ts.map +1 -1
  51. package/dist/tools/participants.js +62 -58
  52. package/dist/tools/participants.js.map +1 -1
  53. package/dist/tools/presentation.d.ts +116 -0
  54. package/dist/tools/presentation.d.ts.map +1 -1
  55. package/dist/tools/presentation.js +51 -47
  56. package/dist/tools/presentation.js.map +1 -1
  57. package/dist/tools/projects.d.ts +65 -0
  58. package/dist/tools/projects.d.ts.map +1 -1
  59. package/dist/tools/projects.js +48 -44
  60. package/dist/tools/projects.js.map +1 -1
  61. package/dist/tools/resources.d.ts +46 -0
  62. package/dist/tools/resources.d.ts.map +1 -1
  63. package/dist/tools/resources.js +32 -28
  64. package/dist/tools/resources.js.map +1 -1
  65. package/dist/tools/store.d.ts +62 -0
  66. package/dist/tools/store.d.ts.map +1 -1
  67. package/dist/tools/store.js +59 -55
  68. package/dist/tools/store.js.map +1 -1
  69. package/mcp-config.example.json +4 -5
  70. package/package.json +7 -2
  71. package/src/client.ts +12 -5
  72. package/src/config.ts +1 -0
  73. package/src/http-server.ts +573 -0
  74. package/src/index.ts +3 -94
  75. package/src/server-factory.ts +109 -0
  76. package/src/tools/admin.ts +20 -14
  77. package/src/tools/ai-designer.ts +16 -10
  78. package/src/tools/analytics.ts +13 -7
  79. package/src/tools/auth.ts +32 -26
  80. package/src/tools/blocks.ts +18 -12
  81. package/src/tools/connections.ts +14 -8
  82. package/src/tools/eduflow.ts +36 -12
  83. package/src/tools/participants.ts +15 -9
  84. package/src/tools/presentation.ts +12 -6
  85. package/src/tools/projects.ts +14 -8
  86. package/src/tools/resources.ts +12 -6
  87. package/src/tools/store.ts +14 -8
@@ -1,104 +1,125 @@
1
1
  import { z } from 'zod';
2
- import { client } from '../client.js';
3
- export const eduflowTools = {
4
- eduflow_list: {
5
- description: 'Lister tous les parcours EduFlow de l\'utilisateur. Retourne id, titre, statut, nombre de blocs, dates.',
6
- inputSchema: z.object({}),
7
- handler: async () => {
8
- return client.get('/flows', 'eduflow');
2
+ import { client as defaultClient } from '../client.js';
3
+ import { config } from '../config.js';
4
+ export function createEduflowTools(c) {
5
+ return {
6
+ eduflow_list: {
7
+ description: 'Lister tous les parcours EduFlow de l\'utilisateur. Retourne id, titre, statut, nombre de blocs, dates.',
8
+ inputSchema: z.object({}),
9
+ handler: async () => {
10
+ return c.get('/flows', 'eduflow');
11
+ },
9
12
  },
10
- },
11
- eduflow_get: {
12
- description: 'Récupérer les détails complets d\'un parcours EduFlow : blocs, connexions (edges), objectifs, paramètres de gamification, présentation, etc.',
13
- inputSchema: z.object({
14
- flowId: z.string().uuid().describe('ID du parcours EduFlow'),
15
- }),
16
- handler: async ({ flowId }) => {
17
- return client.get(`/flows/${flowId}`, 'eduflow');
13
+ eduflow_get: {
14
+ description: 'Récupérer les détails complets d\'un parcours EduFlow : blocs, connexions (edges), objectifs, paramètres de gamification, présentation, etc.',
15
+ inputSchema: z.object({
16
+ flowId: z.string().uuid().describe('ID du parcours EduFlow'),
17
+ }),
18
+ handler: async ({ flowId }) => {
19
+ return c.get(`/flows/${flowId}`, 'eduflow');
20
+ },
18
21
  },
19
- },
20
- eduflow_create: {
21
- description: 'Créer un nouveau parcours EduFlow. Un bloc "start" et un bloc "end" sont automatiquement créés.',
22
- inputSchema: z.object({
23
- title: z.string().describe('Titre du parcours'),
24
- description: z.string().optional().describe('Description du parcours'),
25
- language: z.enum(['fr', 'en', 'es', 'it', 'de']).optional().describe('Langue du parcours (défaut: fr)'),
26
- }),
27
- handler: async (args) => {
28
- return client.post('/flows', args, 'eduflow');
22
+ eduflow_get_urls: {
23
+ description: 'Obtenir tous les liens utiles d\'un parcours EduFlow : prévisualisation, édition, page publique, analytics, lien participant. À utiliser quand l\'utilisateur demande un lien ou une URL.',
24
+ inputSchema: z.object({
25
+ flowId: z.string().uuid().describe('ID du parcours EduFlow'),
26
+ }),
27
+ handler: async ({ flowId }) => {
28
+ const base = config.frontendUrl;
29
+ return {
30
+ preview: `${base}/eduflow/flows/${flowId}/play`,
31
+ public: `${base}/eduflow/flows/${flowId}/public`,
32
+ edit: `${base}/eduflow/edit/${flowId}`,
33
+ presentation: `${base}/eduflow/edit/${flowId}/presentation`,
34
+ analytics: `${base}/eduflow/flows/${flowId}/analytics`,
35
+ };
36
+ },
29
37
  },
30
- },
31
- eduflow_update: {
32
- description: 'Mettre à jour les propriétés d\'un parcours EduFlow (titre, description, edges, gamification, objectifs, présentation, etc.).',
33
- inputSchema: z.object({
34
- flowId: z.string().uuid().describe('ID du parcours'),
35
- title: z.string().optional().describe('Nouveau titre'),
36
- description: z.string().optional().describe('Nouvelle description'),
37
- edges: z.array(z.object({
38
- id: z.string(),
39
- source: z.string().describe('ID du bloc source'),
40
- target: z.string().describe('ID du bloc cible'),
41
- label: z.string().optional().describe('Label de la connexion'),
42
- animated: z.boolean().optional(),
43
- })).optional().describe('Connexions entre blocs (remplace toutes les connexions existantes)'),
44
- objectives: z.any().optional().describe('Objectifs pédagogiques {globalObjective, steps[]}'),
45
- gamification: z.any().optional().describe('Configuration gamification {badges, missions, leaderboard, certifications}'),
46
- presentationEnabled: z.boolean().optional().describe('Activer/désactiver la page de présentation'),
47
- presentationData: z.any().optional().describe('Données de la page de présentation'),
48
- chatbotEnabled: z.boolean().optional().describe('Activer/désactiver le chatbot IA'),
49
- facialVerificationEnabled: z.boolean().optional().describe('Activer/désactiver la vérification faciale'),
50
- deadline: z.string().optional().describe('Date limite ISO 8601'),
51
- language: z.enum(['fr', 'en', 'es', 'it', 'de']).optional().describe('Langue du parcours'),
52
- }),
53
- handler: async ({ flowId, ...data }) => {
54
- return client.put(`/flows/${flowId}`, data, 'eduflow');
38
+ eduflow_create: {
39
+ description: 'Créer un nouveau parcours EduFlow. Un bloc "start" et un bloc "end" sont automatiquement créés.',
40
+ inputSchema: z.object({
41
+ title: z.string().describe('Titre du parcours'),
42
+ description: z.string().optional().describe('Description du parcours'),
43
+ language: z.enum(['fr', 'en', 'es', 'it', 'de']).optional().describe('Langue du parcours (défaut: fr)'),
44
+ }),
45
+ handler: async (args) => {
46
+ return c.post('/flows', args, 'eduflow');
47
+ },
55
48
  },
56
- },
57
- eduflow_delete: {
58
- description: 'Supprimer définitivement un parcours EduFlow et tous ses blocs, connexions, participants.',
59
- inputSchema: z.object({
60
- flowId: z.string().uuid().describe('ID du parcours à supprimer'),
61
- }),
62
- handler: async ({ flowId }) => {
63
- return client.delete(`/flows/${flowId}`, 'eduflow');
49
+ eduflow_update: {
50
+ description: 'Mettre à jour les propriétés d\'un parcours EduFlow (titre, description, edges, gamification, objectifs, présentation, etc.).',
51
+ inputSchema: z.object({
52
+ flowId: z.string().uuid().describe('ID du parcours'),
53
+ title: z.string().optional().describe('Nouveau titre'),
54
+ description: z.string().optional().describe('Nouvelle description'),
55
+ edges: z.array(z.object({
56
+ id: z.string(),
57
+ source: z.string().describe('ID du bloc source'),
58
+ target: z.string().describe('ID du bloc cible'),
59
+ label: z.string().optional().describe('Label de la connexion'),
60
+ animated: z.boolean().optional(),
61
+ })).optional().describe('Connexions entre blocs (remplace toutes les connexions existantes)'),
62
+ objectives: z.any().optional().describe('Objectifs pédagogiques {globalObjective, steps[]}'),
63
+ gamification: z.any().optional().describe('Configuration gamification {badges, missions, leaderboard, certifications}'),
64
+ presentationEnabled: z.boolean().optional().describe('Activer/désactiver la page de présentation'),
65
+ presentationData: z.any().optional().describe('Données de la page de présentation'),
66
+ chatbotEnabled: z.boolean().optional().describe('Activer/désactiver le chatbot IA'),
67
+ facialVerificationEnabled: z.boolean().optional().describe('Activer/désactiver la vérification faciale'),
68
+ deadline: z.string().optional().describe('Date limite ISO 8601'),
69
+ language: z.enum(['fr', 'en', 'es', 'it', 'de']).optional().describe('Langue du parcours'),
70
+ }),
71
+ handler: async ({ flowId, ...data }) => {
72
+ return c.put(`/flows/${flowId}`, data, 'eduflow');
73
+ },
64
74
  },
65
- },
66
- eduflow_duplicate: {
67
- description: 'Dupliquer un parcours EduFlow existant avec tous ses blocs et connexions.',
68
- inputSchema: z.object({
69
- flowId: z.string().uuid().describe('ID du parcours à dupliquer'),
70
- }),
71
- handler: async ({ flowId }) => {
72
- return client.post(`/flows/${flowId}/duplicate`, {}, 'eduflow');
75
+ eduflow_delete: {
76
+ description: 'Supprimer définitivement un parcours EduFlow et tous ses blocs, connexions, participants.',
77
+ inputSchema: z.object({
78
+ flowId: z.string().uuid().describe('ID du parcours à supprimer'),
79
+ }),
80
+ handler: async ({ flowId }) => {
81
+ return c.delete(`/flows/${flowId}`, 'eduflow');
82
+ },
73
83
  },
74
- },
75
- eduflow_change_status: {
76
- description: 'Changer le statut d\'un parcours : draft (brouillon), published (publié, accessible aux étudiants), archived (archivé).',
77
- inputSchema: z.object({
78
- flowId: z.string().uuid().describe('ID du parcours'),
79
- status: z.enum(['draft', 'published', 'archived']).describe('Nouveau statut'),
80
- }),
81
- handler: async ({ flowId, status }) => {
82
- return client.patch(`/flows/${flowId}/status`, { status }, 'eduflow');
84
+ eduflow_duplicate: {
85
+ description: 'Dupliquer un parcours EduFlow existant avec tous ses blocs et connexions.',
86
+ inputSchema: z.object({
87
+ flowId: z.string().uuid().describe('ID du parcours à dupliquer'),
88
+ }),
89
+ handler: async ({ flowId }) => {
90
+ return c.post(`/flows/${flowId}/duplicate`, {}, 'eduflow');
91
+ },
83
92
  },
84
- },
85
- eduflow_export: {
86
- description: 'Exporter un parcours EduFlow au format JSON (contient blocs, connexions, paramètres).',
87
- inputSchema: z.object({
88
- flowId: z.string().uuid().describe('ID du parcours à exporter'),
89
- }),
90
- handler: async ({ flowId }) => {
91
- return client.get(`/flows/${flowId}/export`, 'eduflow');
93
+ eduflow_change_status: {
94
+ description: 'Changer le statut d\'un parcours : draft (brouillon), published (publié, accessible aux étudiants), archived (archivé).',
95
+ inputSchema: z.object({
96
+ flowId: z.string().uuid().describe('ID du parcours'),
97
+ status: z.enum(['draft', 'published', 'archived']).describe('Nouveau statut'),
98
+ }),
99
+ handler: async ({ flowId, status }) => {
100
+ return c.patch(`/flows/${flowId}/status`, { status }, 'eduflow');
101
+ },
92
102
  },
93
- },
94
- eduflow_get_public: {
95
- description: 'Récupérer les informations publiques d\'un parcours (page de présentation, objectifs). Ne nécessite pas d\'authentification.',
96
- inputSchema: z.object({
97
- flowId: z.string().uuid().describe('ID du parcours'),
98
- }),
99
- handler: async ({ flowId }) => {
100
- return client.get(`/flows/${flowId}/public`, 'eduflow');
103
+ eduflow_export: {
104
+ description: 'Exporter un parcours EduFlow au format JSON (contient blocs, connexions, paramètres).',
105
+ inputSchema: z.object({
106
+ flowId: z.string().uuid().describe('ID du parcours à exporter'),
107
+ }),
108
+ handler: async ({ flowId }) => {
109
+ return c.get(`/flows/${flowId}/export`, 'eduflow');
110
+ },
101
111
  },
102
- },
103
- };
112
+ eduflow_get_public: {
113
+ description: 'Récupérer les informations publiques d\'un parcours (page de présentation, objectifs). Ne nécessite pas d\'authentification.',
114
+ inputSchema: z.object({
115
+ flowId: z.string().uuid().describe('ID du parcours'),
116
+ }),
117
+ handler: async ({ flowId }) => {
118
+ return c.get(`/flows/${flowId}/public`, 'eduflow');
119
+ },
120
+ },
121
+ };
122
+ }
123
+ // Backward compatibility for stdio mode
124
+ export const eduflowTools = createEduflowTools(defaultClient);
104
125
  //# sourceMappingURL=eduflow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"eduflow.js","sourceRoot":"","sources":["../../src/tools/eduflow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eduflow.js","sourceRoot":"","sources":["../../src/tools/eduflow.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,114 @@
1
1
  import { z } from 'zod';
2
+ import { LyrraClient } from '../client.js';
3
+ export declare function createParticipantsTools(c: LyrraClient): {
4
+ participant_list: {
5
+ description: string;
6
+ inputSchema: z.ZodObject<{
7
+ flowId: z.ZodString;
8
+ }, "strip", z.ZodTypeAny, {
9
+ flowId: string;
10
+ }, {
11
+ flowId: string;
12
+ }>;
13
+ handler: ({ flowId }: {
14
+ flowId: string;
15
+ }) => Promise<any>;
16
+ };
17
+ participant_add: {
18
+ description: string;
19
+ inputSchema: z.ZodObject<{
20
+ flowId: z.ZodString;
21
+ participants: z.ZodArray<z.ZodObject<{
22
+ email: z.ZodString;
23
+ firstName: z.ZodOptional<z.ZodString>;
24
+ lastName: z.ZodOptional<z.ZodString>;
25
+ }, "strip", z.ZodTypeAny, {
26
+ email: string;
27
+ firstName?: string | undefined;
28
+ lastName?: string | undefined;
29
+ }, {
30
+ email: string;
31
+ firstName?: string | undefined;
32
+ lastName?: string | undefined;
33
+ }>, "many">;
34
+ }, "strip", z.ZodTypeAny, {
35
+ flowId: string;
36
+ participants: {
37
+ email: string;
38
+ firstName?: string | undefined;
39
+ lastName?: string | undefined;
40
+ }[];
41
+ }, {
42
+ flowId: string;
43
+ participants: {
44
+ email: string;
45
+ firstName?: string | undefined;
46
+ lastName?: string | undefined;
47
+ }[];
48
+ }>;
49
+ handler: ({ flowId, participants }: any) => Promise<any>;
50
+ };
51
+ participant_remove: {
52
+ description: string;
53
+ inputSchema: z.ZodObject<{
54
+ flowId: z.ZodString;
55
+ studentId: z.ZodString;
56
+ }, "strip", z.ZodTypeAny, {
57
+ flowId: string;
58
+ studentId: string;
59
+ }, {
60
+ flowId: string;
61
+ studentId: string;
62
+ }>;
63
+ handler: ({ flowId, studentId }: {
64
+ flowId: string;
65
+ studentId: string;
66
+ }) => Promise<any>;
67
+ };
68
+ participant_get_progress: {
69
+ description: string;
70
+ inputSchema: z.ZodObject<{
71
+ flowId: z.ZodString;
72
+ studentToken: z.ZodString;
73
+ }, "strip", z.ZodTypeAny, {
74
+ flowId: string;
75
+ studentToken: string;
76
+ }, {
77
+ flowId: string;
78
+ studentToken: string;
79
+ }>;
80
+ handler: ({ flowId, studentToken }: {
81
+ flowId: string;
82
+ studentToken: string;
83
+ }) => Promise<any>;
84
+ };
85
+ participant_get_overview: {
86
+ description: string;
87
+ inputSchema: z.ZodObject<{
88
+ participantId: z.ZodString;
89
+ }, "strip", z.ZodTypeAny, {
90
+ participantId: string;
91
+ }, {
92
+ participantId: string;
93
+ }>;
94
+ handler: ({ participantId }: {
95
+ participantId: string;
96
+ }) => Promise<any>;
97
+ };
98
+ participant_get_flow_stats: {
99
+ description: string;
100
+ inputSchema: z.ZodObject<{
101
+ flowId: z.ZodString;
102
+ }, "strip", z.ZodTypeAny, {
103
+ flowId: string;
104
+ }, {
105
+ flowId: string;
106
+ }>;
107
+ handler: ({ flowId }: {
108
+ flowId: string;
109
+ }) => Promise<any>;
110
+ };
111
+ };
2
112
  export declare const participantsTools: {
3
113
  participant_list: {
4
114
  description: string;
@@ -1 +1 @@
1
- {"version":3,"file":"participants.d.ts","sourceRoot":"","sources":["../../src/tools/participants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,iBAAiB;;;;;;;;;;8BAME;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4CAeJ,GAAG;;;;;;;;;;;;;;yCAWN;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;;;;4CAWlC;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;qCAU/C;YAAE,aAAa,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;8BAUhC;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE;;CAIjD,CAAC"}
1
+ {"version":3,"file":"participants.d.ts","sourceRoot":"","sources":["../../src/tools/participants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG3C,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,WAAW;;;;;;;;;;8BAOtB;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4CAeJ,GAAG;;;;;;;;;;;;;;yCAWN;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;;;;4CAWlC;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;qCAU/C;YAAE,aAAa,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;8BAUhC;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE;;EAKjD;AAGD,eAAO,MAAM,iBAAiB;;;;;;;;;;8BAjEE;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4CAeJ,GAAG;;;;;;;;;;;;;;yCAWN;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;;;;4CAWlC;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;qCAU/C;YAAE,aAAa,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;8BAUhC;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE;;CAQqB,CAAC"}
@@ -1,66 +1,70 @@
1
1
  import { z } from 'zod';
2
- import { client } from '../client.js';
3
- export const participantsTools = {
4
- participant_list: {
5
- description: 'Lister tous les participants/étudiants inscrits à un parcours EduFlow avec leur progression.',
6
- inputSchema: z.object({
7
- flowId: z.string().uuid().describe('ID du parcours'),
8
- }),
9
- handler: async ({ flowId }) => {
10
- return client.get(`/flows/${flowId}/students`, 'eduflow');
2
+ import { client as defaultClient } from '../client.js';
3
+ export function createParticipantsTools(c) {
4
+ return {
5
+ participant_list: {
6
+ description: 'Lister tous les participants/étudiants inscrits à un parcours EduFlow avec leur progression.',
7
+ inputSchema: z.object({
8
+ flowId: z.string().uuid().describe('ID du parcours'),
9
+ }),
10
+ handler: async ({ flowId }) => {
11
+ return c.get(`/flows/${flowId}/students`, 'eduflow');
12
+ },
11
13
  },
12
- },
13
- participant_add: {
14
- description: 'Ajouter un ou plusieurs participants à un parcours EduFlow. Chaque participant reçoit un lien unique.',
15
- inputSchema: z.object({
16
- flowId: z.string().uuid().describe('ID du parcours'),
17
- participants: z.array(z.object({
18
- email: z.string().email().describe('Email du participant'),
19
- firstName: z.string().optional().describe('Prénom'),
20
- lastName: z.string().optional().describe('Nom'),
21
- })).describe('Liste des participants à ajouter'),
22
- }),
23
- handler: async ({ flowId, participants }) => {
24
- return client.post(`/flows/${flowId}/students`, { students: participants }, 'eduflow');
14
+ participant_add: {
15
+ description: 'Ajouter un ou plusieurs participants à un parcours EduFlow. Chaque participant reçoit un lien unique.',
16
+ inputSchema: z.object({
17
+ flowId: z.string().uuid().describe('ID du parcours'),
18
+ participants: z.array(z.object({
19
+ email: z.string().email().describe('Email du participant'),
20
+ firstName: z.string().optional().describe('Prénom'),
21
+ lastName: z.string().optional().describe('Nom'),
22
+ })).describe('Liste des participants à ajouter'),
23
+ }),
24
+ handler: async ({ flowId, participants }) => {
25
+ return c.post(`/flows/${flowId}/students`, { students: participants }, 'eduflow');
26
+ },
25
27
  },
26
- },
27
- participant_remove: {
28
- description: 'Retirer un participant d\'un parcours EduFlow.',
29
- inputSchema: z.object({
30
- flowId: z.string().uuid().describe('ID du parcours'),
31
- studentId: z.string().uuid().describe('ID de l\'inscription étudiant'),
32
- }),
33
- handler: async ({ flowId, studentId }) => {
34
- return client.delete(`/flows/${flowId}/students/${studentId}`, 'eduflow');
28
+ participant_remove: {
29
+ description: 'Retirer un participant d\'un parcours EduFlow.',
30
+ inputSchema: z.object({
31
+ flowId: z.string().uuid().describe('ID du parcours'),
32
+ studentId: z.string().uuid().describe('ID de l\'inscription étudiant'),
33
+ }),
34
+ handler: async ({ flowId, studentId }) => {
35
+ return c.delete(`/flows/${flowId}/students/${studentId}`, 'eduflow');
36
+ },
35
37
  },
36
- },
37
- participant_get_progress: {
38
- description: 'Récupérer la progression détaillée d\'un participant : blocs complétés, scores, temps passé par bloc.',
39
- inputSchema: z.object({
40
- flowId: z.string().uuid().describe('ID du parcours'),
41
- studentToken: z.string().describe('Token unique du participant'),
42
- }),
43
- handler: async ({ flowId, studentToken }) => {
44
- return client.get(`/eduflow/progress/stats/${flowId}/${studentToken}`);
38
+ participant_get_progress: {
39
+ description: 'Récupérer la progression détaillée d\'un participant : blocs complétés, scores, temps passé par bloc.',
40
+ inputSchema: z.object({
41
+ flowId: z.string().uuid().describe('ID du parcours'),
42
+ studentToken: z.string().describe('Token unique du participant'),
43
+ }),
44
+ handler: async ({ flowId, studentToken }) => {
45
+ return c.get(`/eduflow/progress/stats/${flowId}/${studentToken}`);
46
+ },
45
47
  },
46
- },
47
- participant_get_overview: {
48
- description: 'Vue d\'ensemble d\'un participant global : tous les parcours suivis, certifications, progression globale.',
49
- inputSchema: z.object({
50
- participantId: z.string().uuid().describe('ID global du participant'),
51
- }),
52
- handler: async ({ participantId }) => {
53
- return client.get(`/participants/${participantId}/overview`, 'eduflow');
48
+ participant_get_overview: {
49
+ description: 'Vue d\'ensemble d\'un participant global : tous les parcours suivis, certifications, progression globale.',
50
+ inputSchema: z.object({
51
+ participantId: z.string().uuid().describe('ID global du participant'),
52
+ }),
53
+ handler: async ({ participantId }) => {
54
+ return c.get(`/participants/${participantId}/overview`, 'eduflow');
55
+ },
54
56
  },
55
- },
56
- participant_get_flow_stats: {
57
- description: 'Récupérer les statistiques de tous les participants d\'un parcours (taux de complétion, scores moyens, temps moyen).',
58
- inputSchema: z.object({
59
- flowId: z.string().uuid().describe('ID du parcours'),
60
- }),
61
- handler: async ({ flowId }) => {
62
- return client.get(`/eduflow/progress/stats/flow/${flowId}`);
57
+ participant_get_flow_stats: {
58
+ description: 'Récupérer les statistiques de tous les participants d\'un parcours (taux de complétion, scores moyens, temps moyen).',
59
+ inputSchema: z.object({
60
+ flowId: z.string().uuid().describe('ID du parcours'),
61
+ }),
62
+ handler: async ({ flowId }) => {
63
+ return c.get(`/eduflow/progress/stats/flow/${flowId}`);
64
+ },
63
65
  },
64
- },
65
- };
66
+ };
67
+ }
68
+ // Backward compatibility for stdio mode
69
+ export const participantsTools = createParticipantsTools(defaultClient);
66
70
  //# sourceMappingURL=participants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"participants.js","sourceRoot":"","sources":["../../src/tools/participants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"participants.js","sourceRoot":"","sources":["../../src/tools/participants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,cAAc,CAAC;AAEvD,MAAM,UAAU,uBAAuB,CAAC,CAAc;IACpD,OAAO;QACP,gBAAgB,EAAE;YAChB,WAAW,EAAE,8FAA8F;YAC3G,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;gBACpB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;aACrD,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAsB,EAAE,EAAE;gBAChD,OAAO,CAAC,CAAC,GAAG,CAAC,UAAU,MAAM,WAAW,EAAE,SAAS,CAAC,CAAC;YACvD,CAAC;SACF;QAED,eAAe,EAAE;YACf,WAAW,EAAE,uGAAuG;YACpH,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;gBACpB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;gBACpD,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;oBAC7B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;oBAC1D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;oBACnD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;iBAChD,CAAC,CAAC,CAAC,QAAQ,CAAC,kCAAkC,CAAC;aACjD,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,YAAY,EAAO,EAAE,EAAE;gBAC/C,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,MAAM,WAAW,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,SAAS,CAAC,CAAC;YACpF,CAAC;SACF;QAED,kBAAkB,EAAE;YAClB,WAAW,EAAE,gDAAgD;YAC7D,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;gBACpB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;gBACpD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;aACvE,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAyC,EAAE,EAAE;gBAC9E,OAAO,CAAC,CAAC,MAAM,CAAC,UAAU,MAAM,aAAa,SAAS,EAAE,EAAE,SAAS,CAAC,CAAC;YACvE,CAAC;SACF;QAED,wBAAwB,EAAE;YACxB,WAAW,EAAE,uGAAuG;YACpH,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;gBACpB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;gBACpD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;aACjE,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,YAAY,EAA4C,EAAE,EAAE;gBACpF,OAAO,CAAC,CAAC,GAAG,CAAC,2BAA2B,MAAM,IAAI,YAAY,EAAE,CAAC,CAAC;YACpE,CAAC;SACF;QAED,wBAAwB,EAAE;YACxB,WAAW,EAAE,2GAA2G;YACxH,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;gBACpB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;aACtE,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,EAAE,aAAa,EAA6B,EAAE,EAAE;gBAC9D,OAAO,CAAC,CAAC,GAAG,CAAC,iBAAiB,aAAa,WAAW,EAAE,SAAS,CAAC,CAAC;YACrE,CAAC;SACF;QAED,0BAA0B,EAAE;YAC1B,WAAW,EAAE,sHAAsH;YACnI,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;gBACpB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;aACrD,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAsB,EAAE,EAAE;gBAChD,OAAO,CAAC,CAAC,GAAG,CAAC,gCAAgC,MAAM,EAAE,CAAC,CAAC;YACzD,CAAC;SACF;KACA,CAAC;AACJ,CAAC;AAED,wCAAwC;AACxC,MAAM,CAAC,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,aAAa,CAAC,CAAC"}