@fraza/module-ai 0.0.0-stage → 0.4.23
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/CHANGELOG.md +158 -0
- package/LICENSE +21 -0
- package/README.md +72 -2
- package/THIRD-PARTY-NOTICES.md +11 -0
- package/changelog.json +478 -0
- package/dist/admin/AiActions.client.js +166 -0
- package/dist/admin/AiChoices.client.js +67 -0
- package/dist/admin/AiInputForm.client.js +57 -0
- package/dist/admin/AiPage.client.js +181 -0
- package/dist/admin/AiResults.client.js +76 -0
- package/dist/admin/AiStudio.client.js +453 -0
- package/dist/admin/AiUsageWidget.client.js +28 -0
- package/dist/admin/StudioBar.client.js +33 -0
- package/dist/admin/StudioCompose.client.js +457 -0
- package/dist/admin/StudioComposer.client.js +217 -0
- package/dist/admin/StudioFields.client.js +124 -0
- package/dist/admin/StudioPlan.client.js +94 -0
- package/dist/admin/StudioWorking.client.js +157 -0
- package/dist/admin/choices.js +22 -0
- package/dist/admin/format.js +19 -0
- package/dist/admin/input-form.js +59 -0
- package/dist/admin/paths.js +4 -0
- package/dist/admin/studio-compose.js +94 -0
- package/dist/admin/studio-diff.js +240 -0
- package/dist/admin/widgets.js +14 -0
- package/dist/admin.js +9 -0
- package/dist/api.server.js +155 -0
- package/dist/config.server.js +113 -0
- package/dist/cron.server.js +26 -0
- package/dist/db.server.js +65 -0
- package/dist/index.js +43 -0
- package/dist/integration.server.js +28 -0
- package/dist/migrations.js +4 -0
- package/dist/permissions.js +9 -0
- package/dist/prompts.server.js +149 -0
- package/dist/providers/anthropic.server.js +42 -0
- package/dist/providers/chat-completions.server.js +63 -0
- package/dist/providers/google.server.js +52 -0
- package/dist/providers/http.server.js +98 -0
- package/dist/providers/index.server.js +22 -0
- package/dist/providers/ollama.server.js +45 -0
- package/dist/register-server.js +34 -0
- package/dist/results.server.js +74 -0
- package/dist/run.server.js +166 -0
- package/dist/runs.server.js +106 -0
- package/dist/schema.js +190 -0
- package/dist/seed.server.js +205 -0
- package/dist/server.js +19 -0
- package/dist/source.js +4 -0
- package/dist/studio.js +205 -0
- package/dist/test-prompt.server.js +24 -0
- package/dist/version.js +4 -0
- package/dist/widgets.server.js +29 -0
- package/package.json +67 -4
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
# Journal des versions
|
|
2
|
+
|
|
3
|
+
Historique des versions publiées de `@fraza/module-ai`.
|
|
4
|
+
|
|
5
|
+
Ce fichier est généré par `fraza-module changelog` à partir des messages de commit. Ne pas le modifier à la main.
|
|
6
|
+
|
|
7
|
+
## 0.4.23 (2026-11-08)
|
|
8
|
+
|
|
9
|
+
### Ajouts
|
|
10
|
+
|
|
11
|
+
- **ai** : add demo history seed for fraza-db (83306d4)
|
|
12
|
+
|
|
13
|
+
## 0.4.22 (2026-11-07)
|
|
14
|
+
|
|
15
|
+
Maintenance interne, aucun changement de comportement.
|
|
16
|
+
|
|
17
|
+
## 0.4.21 (2026-11-07)
|
|
18
|
+
|
|
19
|
+
### Ajouts
|
|
20
|
+
|
|
21
|
+
- **ui** : add animated working status to ai studio (92e1667)
|
|
22
|
+
|
|
23
|
+
## 0.4.20 (2026-11-07)
|
|
24
|
+
|
|
25
|
+
Maintenance interne, aucun changement de comportement.
|
|
26
|
+
|
|
27
|
+
## 0.4.19 (2026-11-07)
|
|
28
|
+
|
|
29
|
+
Maintenance interne, aucun changement de comportement.
|
|
30
|
+
|
|
31
|
+
## 0.4.18 (2026-11-07)
|
|
32
|
+
|
|
33
|
+
Maintenance interne, aucun changement de comportement.
|
|
34
|
+
|
|
35
|
+
## 0.4.17 (2026-11-07)
|
|
36
|
+
|
|
37
|
+
Maintenance interne, aucun changement de comportement.
|
|
38
|
+
|
|
39
|
+
## 0.4.16 (2026-11-07)
|
|
40
|
+
|
|
41
|
+
Maintenance interne, aucun changement de comportement.
|
|
42
|
+
|
|
43
|
+
## 0.4.15 (2026-11-07)
|
|
44
|
+
|
|
45
|
+
### Ajouts
|
|
46
|
+
|
|
47
|
+
- **admin** : add start mode panel to studio composer (2cbd1f6)
|
|
48
|
+
|
|
49
|
+
## 0.4.14 (2026-11-07)
|
|
50
|
+
|
|
51
|
+
### Refontes
|
|
52
|
+
|
|
53
|
+
- **ai** : extract studio composer into its own component (4e74444)
|
|
54
|
+
|
|
55
|
+
## 0.4.13 (2026-11-07)
|
|
56
|
+
|
|
57
|
+
Maintenance interne, aucun changement de comportement.
|
|
58
|
+
|
|
59
|
+
## 0.4.12 (2026-11-07)
|
|
60
|
+
|
|
61
|
+
### Refontes
|
|
62
|
+
|
|
63
|
+
- **admin** : move studio bar and window layout into shared component (ea95fdf)
|
|
64
|
+
|
|
65
|
+
## 0.4.11 (2026-11-07)
|
|
66
|
+
|
|
67
|
+
### Ajouts
|
|
68
|
+
|
|
69
|
+
- **studio** : group hints into menus and animate the compose layout (662ef1c)
|
|
70
|
+
|
|
71
|
+
## 0.4.10 (2026-11-07)
|
|
72
|
+
|
|
73
|
+
### Ajouts
|
|
74
|
+
|
|
75
|
+
- **ai** : add studio compose mode and plan review (46ded16)
|
|
76
|
+
|
|
77
|
+
## 0.4.9 (2026-11-07)
|
|
78
|
+
|
|
79
|
+
### Ajouts
|
|
80
|
+
|
|
81
|
+
- **admin** : add icon-only and size options to ai actions trigger (eaa0877)
|
|
82
|
+
|
|
83
|
+
### Refontes
|
|
84
|
+
|
|
85
|
+
- **admin** : rename ai sparkles icon to sparkles icon (3ccf3f6)
|
|
86
|
+
|
|
87
|
+
## 0.4.8 (2026-11-07)
|
|
88
|
+
|
|
89
|
+
### Refontes
|
|
90
|
+
|
|
91
|
+
- **ui** : replace ChatSparkIcon with AiSparklesIcon (1dd3dee)
|
|
92
|
+
|
|
93
|
+
## 0.4.7 (2026-11-07)
|
|
94
|
+
|
|
95
|
+
### Refontes
|
|
96
|
+
|
|
97
|
+
- **ui** : rename ai apply wording to "appliquer" and "laisser tel quel" (471087a)
|
|
98
|
+
|
|
99
|
+
## 0.4.6 (2026-11-07)
|
|
100
|
+
|
|
101
|
+
### Ajouts
|
|
102
|
+
|
|
103
|
+
- **ai** : add studio mode for comparing and applying prompt versions (d2b427d)
|
|
104
|
+
|
|
105
|
+
## 0.4.5 (2026-11-07)
|
|
106
|
+
|
|
107
|
+
### Ajouts
|
|
108
|
+
|
|
109
|
+
- **admin** : enlarge and make resizable long text inputs in ai form (858b23c)
|
|
110
|
+
|
|
111
|
+
## 0.4.4 (2026-11-07)
|
|
112
|
+
|
|
113
|
+
### Ajouts
|
|
114
|
+
|
|
115
|
+
- **ai** : add configurable menu label with action descriptions (526a6f7)
|
|
116
|
+
|
|
117
|
+
## 0.4.3 (2026-11-07)
|
|
118
|
+
|
|
119
|
+
### Refontes
|
|
120
|
+
|
|
121
|
+
- **admin** : use ai trigger component for single action button (b79c212)
|
|
122
|
+
|
|
123
|
+
## 0.4.2 (2026-11-07)
|
|
124
|
+
|
|
125
|
+
### Ajouts
|
|
126
|
+
|
|
127
|
+
- **ai** : redesign ai modal with preview, steps and eyebrow (ec4ca14)
|
|
128
|
+
|
|
129
|
+
## 0.4.1 (2026-11-07)
|
|
130
|
+
|
|
131
|
+
### Refontes
|
|
132
|
+
|
|
133
|
+
- **ai** : use core ai design system in admin actions (44cf966)
|
|
134
|
+
|
|
135
|
+
## 0.4.0 (2026-11-07)
|
|
136
|
+
|
|
137
|
+
### Action requise
|
|
138
|
+
|
|
139
|
+
- `npx fraza-db migrate`
|
|
140
|
+
- `npx fraza-doctor --fix`
|
|
141
|
+
|
|
142
|
+
### Variables d'environnement
|
|
143
|
+
|
|
144
|
+
- Ajoutée : `FRAZA_MODULE_AI`
|
|
145
|
+
- Ajoutée : `FRAZA_MODULE_AI_API_KEY`
|
|
146
|
+
- Ajoutée : `FRAZA_MODULE_AI_BASE_URL`
|
|
147
|
+
- Ajoutée : `FRAZA_MODULE_AI_MODEL`
|
|
148
|
+
- Ajoutée : `FRAZA_MODULE_AI_PROVIDER`
|
|
149
|
+
- Ajoutée : `FRAZA_MODULE_AI_RETENTION_DAYS`
|
|
150
|
+
- Ajoutée : `FRAZA_MODULE_AI_TIMEOUT_MS`
|
|
151
|
+
|
|
152
|
+
### Ajouts
|
|
153
|
+
|
|
154
|
+
- add ai module with providers, admin pages and prompts (6c49c51)
|
|
155
|
+
|
|
156
|
+
### Autres
|
|
157
|
+
|
|
158
|
+
- Initial commit (6240154)
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Fraza
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,3 +1,73 @@
|
|
|
1
|
-
|
|
1
|
+
<img src="https://docs.fraza.ca/readme/module-ai.png" alt="Fraza : l'IA dans l'admin et dans le code" width="100%">
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Le module ajoute l'intelligence artificielle à un projet Fraza. Le code du projet et les autres modules l'appellent toujours lui, jamais le fournisseur : changer de fournisseur ou de modèle se fait dans la configuration, sans toucher au code.
|
|
4
|
+
|
|
5
|
+
```sh
|
|
6
|
+
npm i @fraza/module-ai
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
[Documentation](https://docs.fraza.ca/docs/modules/ai) · [Installation](https://docs.fraza.ca/docs/modules/ai/installation) · [Prompts](https://docs.fraza.ca/docs/modules/ai/prompts)
|
|
10
|
+
|
|
11
|
+
> [!WARNING]
|
|
12
|
+
> Fraza est en version `0.x`. Une nouvelle version mineure peut contenir un changement cassant.
|
|
13
|
+
|
|
14
|
+
## Points forts
|
|
15
|
+
|
|
16
|
+
- **Le fournisseur au choix.** Anthropic, OpenAI, Google, Mistral, un service compatible avec l'API d'OpenAI, ou Ollama sur son propre serveur.
|
|
17
|
+
- **Des réponses structurées et vérifiées.** Chaque prompt décrit la forme de sa réponse. Le module la transmet au fournisseur, vérifie ce qu'il reçoit et relance une fois si la réponse ne correspond pas.
|
|
18
|
+
- **Des boutons dans l'admin.** Posts et Médias offrent les leurs : rédiger un article, proposer un nom de fichier et un texte alternatif. Rien n'est enregistré avant la relecture.
|
|
19
|
+
- **Des prompts ajustables.** Le fichier `ai.js` du projet change le ton ou le texte d'un prompt de module, ou déclare ses propres prompts.
|
|
20
|
+
- **Les jetons comptés.** La page IA de l'admin montre la configuration, l'historique des appels et les jetons consommés, sans jamais garder le texte envoyé ni la réponse.
|
|
21
|
+
|
|
22
|
+
## Prérequis
|
|
23
|
+
|
|
24
|
+
- Un projet créé par `npx @fraza/start`, avec `@fraza/core` installé.
|
|
25
|
+
- Un compte chez le fournisseur choisi et sa clé d'API, ou un serveur Ollama.
|
|
26
|
+
|
|
27
|
+
## Installation
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
npm i @fraza/module-ai
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Ajoutez les variables à `.env.local`, et aux variables de la plateforme en production :
|
|
34
|
+
|
|
35
|
+
```dotenv
|
|
36
|
+
FRAZA_MODULE_AI=true
|
|
37
|
+
FRAZA_MODULE_AI_PROVIDER=anthropic
|
|
38
|
+
FRAZA_MODULE_AI_MODEL=claude-sonnet-5-5
|
|
39
|
+
FRAZA_MODULE_AI_API_KEY=
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Régénérez ensuite les manifestes, puis créez les tables :
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
npx fraza-modules sync
|
|
46
|
+
npx fraza-db init
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
`fraza-db init` crée `fraza_ai_run`, l'historique des appels, et `fraza_ai_result`, les propositions de l'IA en attente à côté d'un contenu. Sur un projet où le module est déjà installé, `npx fraza-db migrate` applique ses migrations.
|
|
50
|
+
|
|
51
|
+
La tâche planifiée `ai-retention` tourne chaque nuit : elle retire de l'historique les appels de plus de 90 jours. Comme toute tâche du core, elle demande un serveur qui reste allumé.
|
|
52
|
+
|
|
53
|
+
Le détail est dans [Installation](https://docs.fraza.ca/docs/modules/ai/installation).
|
|
54
|
+
|
|
55
|
+
## Documentation
|
|
56
|
+
|
|
57
|
+
| Page | Contenu |
|
|
58
|
+
|---|---|
|
|
59
|
+
| [Installation](https://docs.fraza.ca/docs/modules/ai/installation) | Installer le module, créer les tables, tester la configuration. |
|
|
60
|
+
| [Configuration](https://docs.fraza.ca/docs/modules/ai/configuration) | Fournisseurs, variables d'environnement, permissions. |
|
|
61
|
+
| [Prompts](https://docs.fraza.ca/docs/modules/ai/prompts) | Déclarer un prompt, décrire sa réponse, ajuster ceux des modules dans `ai.js`. |
|
|
62
|
+
| [Boutons](https://docs.fraza.ca/docs/modules/ai/boutons) | Les boutons d'IA de l'admin et leur fonctionnement. |
|
|
63
|
+
| [Tâches](https://docs.fraza.ca/docs/modules/ai/taches) | Lancer un prompt sur un événement ou à heure fixe. |
|
|
64
|
+
| [Modèle de données](https://docs.fraza.ca/docs/modules/ai/modele-de-donnees) | Tables `fraza_ai_run` et `fraza_ai_result`. |
|
|
65
|
+
| [API](https://docs.fraza.ca/docs/modules/ai/api) | Fonctions serveur, routes et intégration `ai` pour les autres modules. |
|
|
66
|
+
|
|
67
|
+
La documentation est aussi livrée avec le core, lisible hors ligne depuis un projet : `node_modules/@fraza/core/dist/docs/06-modules/ai/`.
|
|
68
|
+
|
|
69
|
+
## Licence
|
|
70
|
+
|
|
71
|
+
MIT. Copyright (c) 2026 Fraza. Voir [LICENSE](./LICENSE). Les dépendances tierces sont listées dans [THIRD-PARTY-NOTICES.md](./THIRD-PARTY-NOTICES.md).
|
|
72
|
+
|
|
73
|
+
Ce paquet fait partie de Fraza Libre.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Avis relatifs aux composants tiers
|
|
2
|
+
|
|
3
|
+
Ce document inventorie les dépendances de production de `@fraza/module-ai` et leurs licences.
|
|
4
|
+
|
|
5
|
+
Il est généré par `fraza-module notices` à partir de l'arbre réellement installé. Ne pas le modifier à la main.
|
|
6
|
+
|
|
7
|
+
`@fraza/module-ai` ne bundle aucune dépendance : les dépendances ci-dessous sont installées séparément par le gestionnaire de paquets, depuis leurs sources respectives. Elles ne sont ni distribuées ni couvertes par la [licence MIT](./LICENSE) de ce paquet. Cet inventaire sert à vérifier qu'aucune licence copyleft ne contamine l'application qui installe le paquet, et à fournir la liste nécessaire aux obligations d'attribution du projet consommateur, dont le build, lui, bundle ces dépendances.
|
|
8
|
+
|
|
9
|
+
## Résumé
|
|
10
|
+
|
|
11
|
+
Aucune. `@fraza/module-ai` n'a pas de dépendance de production : tout ce dont il a besoin à l'exécution est déclaré en `peerDependencies` et fourni par le projet consommateur. Il n'y a donc aucune dépendance à inventorier ici.
|