@overcrow/mcp 0.1.0 → 0.1.2

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 (53) hide show
  1. package/README.md +1 -1
  2. package/dist/bootstrap/pin.json +43 -43
  3. package/dist/content/docs/en/cli.md +446 -31
  4. package/dist/content/docs/en/creator-space.md +78 -0
  5. package/dist/content/docs/en/guide.md +3 -4
  6. package/dist/content/docs/en/manifest.md +13 -6
  7. package/dist/content/docs/en/mcp.md +1 -1
  8. package/dist/content/docs/en/publish-a-widget.md +94 -0
  9. package/dist/content/docs/en/publish-keys.md +95 -0
  10. package/dist/content/docs/en/publishing.md +5 -0
  11. package/dist/content/docs/en/testing.md +3 -3
  12. package/dist/content/docs/en/verified-domain.md +46 -0
  13. package/dist/content/docs/en/widget-listing.md +65 -0
  14. package/dist/content/docs/en/widget-review.md +57 -0
  15. package/dist/content/docs/en/widget-statistics.md +134 -0
  16. package/dist/content/docs/fr/cli.md +467 -32
  17. package/dist/content/docs/fr/creator-space.md +83 -0
  18. package/dist/content/docs/fr/guide.md +3 -4
  19. package/dist/content/docs/fr/manifest.md +15 -6
  20. package/dist/content/docs/fr/mcp.md +1 -1
  21. package/dist/content/docs/fr/publish-a-widget.md +101 -0
  22. package/dist/content/docs/fr/publish-keys.md +97 -0
  23. package/dist/content/docs/fr/publishing.md +5 -0
  24. package/dist/content/docs/fr/testing.md +3 -3
  25. package/dist/content/docs/fr/verified-domain.md +49 -0
  26. package/dist/content/docs/fr/widget-listing.md +69 -0
  27. package/dist/content/docs/fr/widget-review.md +59 -0
  28. package/dist/content/docs/fr/widget-statistics.md +141 -0
  29. package/dist/content/examples/countdown/manifest.json +1 -1
  30. package/dist/content/examples/fps/submission.json +8 -0
  31. package/dist/content/examples/media/submission.json +12 -0
  32. package/dist/content/examples/notes/submission.json +12 -0
  33. package/dist/content/examples/performance/submission.json +12 -0
  34. package/dist/content/examples/playervox-journal/submission.json +12 -0
  35. package/dist/content/examples/playervox-rating/submission.json +12 -0
  36. package/dist/content/examples/playervox-reviews/submission.json +8 -0
  37. package/dist/content/examples/playervox-score/submission.json +8 -0
  38. package/dist/content/examples/session/submission.json +8 -0
  39. package/dist/content/examples/stopwatch/submission.json +12 -0
  40. package/dist/content/examples/twitch-chat/submission.json +12 -0
  41. package/dist/content/examples/warframe-market/submission.json +24 -0
  42. package/dist/content/examples/weather/manifest.json +1 -1
  43. package/dist/content/examples/weather/submission.json +17 -0
  44. package/dist/content/index.json +106 -2
  45. package/dist/content/reference/errors.json +224 -12
  46. package/dist/content/reference/manifest.md +1 -1
  47. package/dist/hidden.js +47 -0
  48. package/dist/texts.js +1 -1
  49. package/dist/tools/project.js +5 -0
  50. package/dist/tools/submission.js +1 -1
  51. package/dist/version.js +1 -1
  52. package/npm-shrinkwrap.json +2 -2
  53. package/package.json +1 -1
@@ -0,0 +1,83 @@
1
+ # Démarrer dans l’espace créateurs
2
+
3
+ L’espace créateurs de PlayerVox OverCrow, à l’adresse
4
+ `creators.playervox.com`, sert à publier des widgets : vous y créez votre éditeur une fois, réservez les
5
+ identifiants de vos widgets, envoyez leurs versions et suivez leur revue. Il
6
+ est ouvert sur invitation pour l’instant.
7
+
8
+ ## Se connecter
9
+
10
+ Connectez-vous avec votre compte PlayerVox : l’espace créateurs vous envoie
11
+ sur playervox.com, qui vous demande de confirmer, puis vous ramène. Vous ne
12
+ tapez jamais votre mot de passe dans l’espace créateurs. La session dure tant
13
+ que vous l’utilisez, 14 jours au plus ; vous pouvez la fermer sur
14
+ playervox.com, dans **Appareils connectés**.
15
+
16
+ L’interface est en français ou en anglais : choisissez dans le menu du
17
+ compte. Les adresses restent les mêmes dans les deux langues.
18
+
19
+ ## Activer la double authentification
20
+
21
+ Publier exige la double authentification sur votre compte. La première
22
+ visite l’active :
23
+
24
+ 1. Ouvrez une application d’authentification (Aegis, 2FAS, Google
25
+ Authenticator, 1Password…).
26
+ 2. Scannez le QR code sur un ordinateur, ou touchez **Ajouter à mon
27
+ application** sur un téléphone ou une tablette. Vous pouvez aussi saisir
28
+ la clé à la main.
29
+ 3. Entrez le code à 6 chiffres affiché par l’application.
30
+
31
+ Vous recevez ensuite dix codes de secours, affichés une seule fois : chacun
32
+ vous connecte une fois si vous perdez votre téléphone. Rangez-les en lieu
33
+ sûr. Créer une clé de publication ou supprimer votre éditeur redemande un
34
+ code récent.
35
+
36
+ ## Créer votre éditeur
37
+
38
+ L’éditeur est le nom sous lequel vos widgets apparaissent.
39
+
40
+ - **Nom affiché** : montré aux joueurs. Un nom qui se lit comme PlayerVox,
41
+ OverCrow ou Valhallab est refusé.
42
+ - **Identifiant** : de 3 à 32 lettres minuscules, chiffres et tirets, sans
43
+ tiret au début ni à la fin. Il est **définitif** : il ne peut plus être
44
+ changé, et un identifiant n’est jamais donné à quelqu’un d’autre, même
45
+ après une suppression. Les identifiants de vos widgets commencent par lui.
46
+ - **E-mail de contact** : pour que PlayerVox vous joigne. Il n’est jamais
47
+ affiché.
48
+ - **Site web** et **logo** (carré, PNG ou WebP) : facultatifs, affichés sur
49
+ votre page éditeur. Tapez le site comme vous le connaissez
50
+ (`exemple.com`) : `https://` est ajouté pour vous.
51
+
52
+ Votre profil public (nom, présentation, site, logo) paraît avec la prochaine
53
+ publication du catalogue : d’ici là, l’espace créateurs indique **Visible
54
+ après la prochaine publication**.
55
+
56
+ Lisez ensuite l’accord créateur, résumé en six points à l’écran, et
57
+ acceptez-le. Votre espace est prêt.
58
+
59
+ ## Réserver l’identifiant de votre premier widget
60
+
61
+ L’identifiant d’un widget s’écrit `<identifiant>.<nom>` : `nova.lol-timers`
62
+ pour l’identifiant `nova`. Avec un [domaine vérifié](verified-domain.md), il
63
+ peut aussi commencer par votre domaine inversé : `gg.nova.lol-timers` pour
64
+ `nova.gg`. Le nom s’écrit en lettres minuscules, chiffres et tirets. Un
65
+ identifiant est définitif et ne ressert jamais.
66
+
67
+ Dans **Widgets**, **Nouveau widget** réserve l’identifiant. Créez le projet
68
+ avec le même identifiant :
69
+
70
+ ```sh
71
+ overcrow-widget init lol-timers --id nova.lol-timers
72
+ ```
73
+
74
+ Essayez-le dans votre jeu avec le [canal de développement](dev-channel.md) :
75
+ rien n’est publié.
76
+
77
+ ## Ensuite
78
+
79
+ - Envoyer une version : [publication et revue](publishing.md).
80
+ - Envoyer depuis un terminal ou une CI :
81
+ [clés de publication et CI](publish-keys.md).
82
+ - Obtenir le badge vérifié et des identifiants à votre domaine :
83
+ [domaine vérifié](verified-domain.md).
@@ -250,10 +250,9 @@ utilisateurs obtiennent les widgets par le catalogue signé. Voir
250
250
 
251
251
  ## 12. Soumettre
252
252
 
253
- Ajoutez un `listing.json` avec le texte de la marketplace, lancez vous-même
254
- l’admission, puis ouvrez une pull request qui ajoute votre widget sous
255
- `widgets/<dir>/`, sur la branche `candidate` du
256
- [dépôt public](https://github.com/Valhallab/playervox-overcrow-releases) :
253
+ Ajoutez un `listing.json` avec le texte de la marketplace et lancez
254
+ vous-même l’admission. Les widgets ne sont plus proposés par pull request :
255
+ vous enverrez le vôtre depuis l’espace créateurs OverCrow, à son ouverture.
257
256
 
258
257
  ```sh
259
258
  overcrow-widget admit
@@ -39,7 +39,7 @@ valeurs qu’il remplit. Voici un manifeste avec des permissions et un menu :
39
39
  {
40
40
  "schemaVersion": 1,
41
41
  "apiVersion": 1,
42
- "id": "com.example.countdown",
42
+ "id": "nova.countdown",
43
43
  "version": "1.0.0",
44
44
  "name": { "en": "Countdown", "fr": "Compte à rebours" },
45
45
  "sizing": {
@@ -79,7 +79,7 @@ valeurs qu’il remplit. Voici un manifeste avec des permissions et un menu :
79
79
  | --- | --- | --- | --- |
80
80
  | `schemaVersion` | entier de 1 à 1 | oui | Version du document de manifeste. |
81
81
  | `apiVersion` | entier de 1 à 1 | oui | Version de l’API des widgets ; elle sélectionne ce schéma. |
82
- | `id` | `widget ID` | oui | ID en DNS inversé, de 3 octets à 128 octets : au moins deux segments de `[a-z0-9-]` séparés par des points, chacun d’au plus 63 octets, sans `-` au début ni à la fin. `com.playervox` et `com.playervox.*` sont réservés aux paquets signés par PlayerVox. |
82
+ | `id` | `widget ID` | oui | ID du widget, de 3 octets à 128 octets : au moins deux segments de `[a-z0-9-]` séparés par des points, chacun d’au plus 63 octets, sans `-` au début ni à la fin ; `<pseudo>.<nom>` avec le pseudo de l’éditeur, ou un domaine vérifié de l’éditeur, inversé, suivi d’un nom. `com.playervox` et `com.playervox.*` sont réservés aux paquets signés par PlayerVox. |
83
83
  | `version` | `version` | oui | SemVer 2.0.0 `MAJOR.MINOR.PATCH[-PRERELEASE]` sous sa forme canonique, d’au plus 64 octets ; les métadonnées de build sont refusées. |
84
84
  | `name` | `WidgetName` | oui | Nom localisé du widget, affiché par l’hôte. |
85
85
  | `sizing` | `Sizing` | oui | Règles de taille et d’ajustement appliquées par le cadre du widget. |
@@ -92,9 +92,14 @@ valeurs qu’il remplit. Voici un manifeste avec des permissions et un menu :
92
92
  ### Identité et version
93
93
 
94
94
  - **`id`** est l’identité du widget partout : dans le catalogue, dans le
95
- profil de l’utilisateur, dans son stockage. Choisissez un ID en DNS
96
- inversé sous un domaine que vous contrôlez, et gardez-le. Les ID sous
97
- `com.playervox` sont réservés aux widgets publiés par PlayerVox.
95
+ profil de l’utilisateur, dans son stockage. Il s’écrit `<pseudo>.<nom>`,
96
+ votre pseudo d’éditeur dans l’espace créateurs d’OverCrow et un nom
97
+ (`nova.lol-timers`), ou, une fois un domaine vérifié, ce domaine inversé
98
+ et un nom (`gg.nova.lol-timers`). Un ID est définitif : il n’est jamais
99
+ donné à un autre widget, même après la suppression du vôtre. `nova`,
100
+ `example`, `yourhandle` et `yourname` sont des pseudos d’exemple sous
101
+ lesquels personne ne peut publier, et les ID sous `com.playervox` sont
102
+ réservés aux widgets publiés par PlayerVox.
98
103
  - **`version`** est une version sémantique. Une version publiée ne change
99
104
  jamais : toute modification d’un widget publié est une nouvelle version,
100
105
  supérieure.
@@ -103,7 +108,11 @@ valeurs qu’il remplit. Voici un manifeste avec des permissions et un menu :
103
108
  ### Noms
104
109
 
105
110
  `name` donne le nom qu’OverCrow affiche dans sa liste de widgets et dans ses
106
- menus, en anglais et en français. Les deux sont obligatoires.
111
+ menus, en anglais et en français. Les deux sont obligatoires. Un nom
112
+ s’affiche tel qu’il est écrit : ni caractère de contrôle, ni caractère
113
+ invisible ou de sens d’écriture, comme U+200B (espace sans chasse) ou
114
+ U+202E (forçage de droite à gauche). Les libellés du menu suivent la même
115
+ règle.
107
116
 
108
117
  <!-- generated:manifest-name -->
109
118
  | Champ | Type | Obligatoire | Signification |
@@ -123,7 +123,7 @@ Claude Desktop.
123
123
  ## Ce qu’il ne fait pas
124
124
 
125
125
  - Il n’envoie, ne signe et ne publie jamais rien. Vous envoyez le zip et
126
- les textes dans l’espace créateurs d’OverCrow, sur overcrow.playervox.com.
126
+ les textes dans l’espace créateurs d’OverCrow, à l’adresse creators.playervox.com.
127
127
  - Il n’installe pas votre widget dans OverCrow : l’essayer en jeu passe par
128
128
  le [canal de développement](dev-channel.md) de l’outil en ligne de
129
129
  commande.
@@ -0,0 +1,101 @@
1
+ # Publier un widget
2
+
3
+ Dans l’espace créateurs de PlayerVox OverCrow, à l’adresse
4
+ `creators.playervox.com`, un widget arrive aux joueurs en quatre
5
+ étapes : vous envoyez ses sources, elles sont contrôlées automatiquement,
6
+ PlayerVox les relit, puis la version est publiée dans le catalogue. Cette
7
+ page couvre les deux premières et l’écran qui envoie une version en revue ;
8
+ la [revue](widget-review.md) et la [fiche](widget-listing.md) ont leur
9
+ propre page.
10
+
11
+ ## Avant d’envoyer
12
+
13
+ - L’identifiant de votre widget est réservé dans l’espace créateurs
14
+ ([démarrer](creator-space.md)), et `manifest.json` l’utilise.
15
+ - `overcrow-widget check` passe dans le dossier du widget.
16
+ - La version de `manifest.json` est plus récente que la dernière approuvée :
17
+ `1.2.1` ou plus après `1.2.0`.
18
+
19
+ ## Envoyer les sources
20
+
21
+ Ouvrez le widget dans **Widgets**, puis **Envoyer une version**.
22
+
23
+ - Sur un ordinateur, déposez le dossier du widget sur la page, ou
24
+ choisissez-le. Vous pouvez aussi envoyer un `.zip` du dossier.
25
+ - Sur un téléphone ou une tablette, qui ne savent pas choisir un dossier,
26
+ choisissez le `.zip`.
27
+
28
+ L’espace créateurs lit un dossier avec les mêmes règles que
29
+ `overcrow-widget submit`, sur votre ordinateur, et envoie les mêmes
30
+ fichiers. Il laisse de côté les fichiers et dossiers cachés (`.env`,
31
+ `.git/`…), `node_modules/`, `dist/`, `tests/output/`, `__MACOSX/`, les
32
+ paquets déjà construits, les fichiers de clés, les fichiers système et les
33
+ noms qui ne sont pas en ASCII portable ; la page liste ce qu’il a laissé de
34
+ côté. Un `.zip` est envoyé tel quel. Les bornes et les refus sont ceux des
35
+ [archives de sources](cli.md#archives-de-sources) : 32 Mio pour l’archive,
36
+ 64 Mio et 2 000 fichiers une fois décompressé, 16 niveaux de dossiers, des
37
+ chemins de 255 octets au plus, aucun nom qui ne diffère d’un autre que par
38
+ la casse.
39
+
40
+ - Un `.zip` fait par Windows PowerShell 5.1 (`Compress-Archive`) sépare les
41
+ dossiers par `\` et est refusé aussitôt : déposez plutôt le dossier.
42
+ - Un nom de fichier ou de dossier avec `\ : * ? " < > |` est refusé avant
43
+ tout envoi : Windows ne peut pas l’utiliser. Renommez-le.
44
+ - Un navigateur lit le fichier vers lequel pointe un lien, là où l’outil en
45
+ ligne de commande laisse le lien de côté. Gardez les liens hors du dossier
46
+ du widget.
47
+ - Vos sources restent privées : seuls les relecteurs PlayerVox les lisent,
48
+ et chaque consultation apparaît dans l’espace créateurs.
49
+
50
+ Un éditeur fait au plus 20 envois en 24 heures ; la page dit quand le
51
+ suivant est possible. Si la page se ferme ou si la connexion se coupe
52
+ pendant l’envoi, déposez à nouveau le même dossier : l’envoi reprend, et
53
+ rien n’est compté deux fois.
54
+
55
+ ## Les contrôles
56
+
57
+ Les contrôles prennent environ une minute : le manifeste, le numéro de
58
+ version, le code, la construction du paquet, les permissions, la taille.
59
+ Vous pouvez quitter la page : un e-mail vous prévient quand ils sont finis.
60
+
61
+ - Quand un contrôle échoue, chaque problème est montré dans vos propres
62
+ fichiers, avec la ligne et la correction. Corrigez et envoyez à nouveau ;
63
+ rien n’arrive aux relecteurs.
64
+ - « Problème de notre côté » signifie que PlayerVox n’a pas pu faire les
65
+ contrôles : votre code n’est pas en cause. PlayerVox est prévenu et les
66
+ relance.
67
+
68
+ ## Soumettre pour revue
69
+
70
+ Quand les contrôles passent, la page de la version dit ce qui change pour
71
+ les joueurs :
72
+
73
+ - **Permissions.** Expliquez pourquoi le widget a besoin de chaque
74
+ permission nouvelle ou élargie, avec des mots que les joueurs comprennent.
75
+ Une première version les explique toutes.
76
+ - **Politique de confidentialité.** Obligatoire dès que le widget utilise
77
+ le réseau. L’adresse tapée ici est aussi enregistrée dans la fiche.
78
+ - **Fiche.** Une première version part en revue avec sa fiche, qui demande
79
+ une description en anglais, une licence et un contact d’assistance.
80
+ - **Notes de version**, visibles par les joueurs : facultatives. L’anglais
81
+ vient d’abord ; **Ajouter une langue** en ajoute d’autres, 16 au plus. Dès
82
+ que vous en écrivez, écrivez-les aussi en anglais.
83
+ - **Message pour la revue**, lu seulement par PlayerVox : un compte de test,
84
+ un contexte utile.
85
+
86
+ La page dit aussi quelle revue la version reçoit (rapide ou complète) et ce
87
+ qui a changé depuis la dernière version approuvée. **Soumettre pour revue**
88
+ l’envoie.
89
+
90
+ ## Depuis un terminal ou une CI
91
+
92
+ `overcrow-widget submit` envoie une version avec une clé de publication, et
93
+ s’arrête au même écran quand il manque quelque chose : voir
94
+ [`submit`](cli.md#submit) et [clés de publication et CI](publish-keys.md).
95
+
96
+ ## Après la revue
97
+
98
+ Une version approuvée est publiée sous 24 heures ouvrées. Dans l’espace
99
+ créateurs, vous pouvez ensuite la retirer, ou retirer le widget entier
100
+ (**Réglages**) : il sort du catalogue à la prochaine publication, et les
101
+ copies installées continuent de fonctionner.
@@ -0,0 +1,97 @@
1
+ # Clés de publication et CI
2
+
3
+ Une clé de publication permet à `overcrow-widget submit` d’envoyer les
4
+ versions d’un widget PlayerVox OverCrow depuis un terminal ou une CI, sans
5
+ votre mot de passe.
6
+ Elle ne permet rien d’autre.
7
+
8
+ ## Ce qu’une clé permet
9
+
10
+ - Soumettre des versions d’**un seul** widget, et suivre leurs contrôles.
11
+ Chaque version passe toujours par la revue avant d’arriver aux joueurs.
12
+ - Elle ne permet ni de publier, ni de modifier la fiche, ni d’accéder à
13
+ votre compte ou à vos autres widgets.
14
+ - Elle dure de 1 à 365 jours (90 par défaut). Nous vous prévenons par e-mail
15
+ et dans l’espace créateurs 14 jours avant son expiration.
16
+ - PlayerVox n’en garde qu’une empreinte : la clé est affichée **une seule
17
+ fois**, à sa création.
18
+
19
+ ## Créer une clé
20
+
21
+ Dans l’espace créateurs, **Clés de publication**, **Créer une clé** :
22
+
23
+ 1. Nommez-la d’après l’endroit où elle servira (`GitHub Actions`,
24
+ `Portable`).
25
+ 2. Choisissez le widget et la durée.
26
+ 3. Confirmez avec un code récent de votre application d’authentification.
27
+
28
+ Copiez aussitôt la clé dans les secrets de votre CI : elle commence par
29
+ `ocw_pub_` et ne sera plus jamais affichée. Si vous la perdez, révoquez-la et
30
+ créez-en une autre. Un widget a au plus dix clés actives.
31
+
32
+ ## L’utiliser
33
+
34
+ `overcrow-widget submit` lit la clé dans la variable d’environnement
35
+ `OVERCROW_PUBLISH_KEY`, et seulement là : ne la mettez jamais dans un fichier
36
+ du projet ni dans une ligne de commande.
37
+
38
+ ```sh
39
+ export OVERCROW_PUBLISH_KEY=ocw_pub_…
40
+ overcrow-widget submit
41
+ ```
42
+
43
+ La [commande submit](cli.md#submit) contrôle la version comme le fera
44
+ l’espace créateurs, l’envoie, puis suit ses contrôles, environ une minute.
45
+
46
+ ## Dans GitHub Actions
47
+
48
+ Gardez la clé comme secret du dépôt, `OVERCROW_PUBLISH_KEY`. Ce workflow
49
+ soumet le widget à chaque tag de version :
50
+
51
+ <!-- source: docs/content/examples/weather/.github/workflows/submit.yml -->
52
+ ```yaml
53
+ # Sends the widget to the OverCrow creator space when a version tag is
54
+ # pushed. The publish key is a secret of the repository, and the OverCrow
55
+ # release whose creator tools to use is a variable of the repository.
56
+ name: Submit to OverCrow
57
+
58
+ on:
59
+ push:
60
+ tags: ["v*"]
61
+
62
+ permissions:
63
+ contents: read
64
+
65
+ jobs:
66
+ submit:
67
+ runs-on: ubuntu-24.04
68
+ env:
69
+ OVERCROW_VERSION: ${{ vars.OVERCROW_VERSION }}
70
+ steps:
71
+ - uses: actions/checkout@v4
72
+ - name: Install overcrow-widget
73
+ run: |
74
+ tools="overcrow-creator-tools-$OVERCROW_VERSION-linux-x86_64"
75
+ curl --fail --location --silent --show-error --remote-name \
76
+ "https://github.com/Valhallab/playervox-overcrow-releases/releases/download/v$OVERCROW_VERSION/$tools.zip"
77
+ unzip -q "$tools.zip"
78
+ (cd "$tools" && sha256sum --check --quiet SHA256SUMS)
79
+ install -D -m 755 "$tools"/overcrow-widget-*-linux-x86_64 "$HOME/.local/bin/overcrow-widget"
80
+ echo "$HOME/.local/bin" >> "$GITHUB_PATH"
81
+ - name: Submit to OverCrow
82
+ run: overcrow-widget submit --submission submission.json
83
+ env:
84
+ OVERCROW_PUBLISH_KEY: ${{ secrets.OVERCROW_PUBLISH_KEY }}
85
+ ```
86
+
87
+ La tâche échoue quand les contrôles échouent, avec chaque problème sur la
88
+ ligne de votre fichier. Une version que l’espace créateurs a déjà n’est pas
89
+ renvoyée : `submit` donne son état, et la même tâche peut aussi tourner à
90
+ chaque push sur votre branche principale.
91
+
92
+ ## Révoquer une clé
93
+
94
+ **Révoquer** arrête la clé aussitôt : un envoi en cours avec elle échoue.
95
+ Les versions qu’elle a déjà envoyées restent, mais n’entrent plus seules en
96
+ revue : envoyez-les en revue depuis l’espace créateurs. Révoquez une clé dès
97
+ que vous pensez qu’elle a fuité, puis créez-en une nouvelle.
@@ -1,5 +1,10 @@
1
1
  # Publication et revue
2
2
 
3
+ > **Les pull requests sont fermées.** Les widgets ne sont plus proposés par
4
+ > pull request : ceux de PlayerVox passent déjà par l’espace créateurs
5
+ > OverCrow, et le vôtre y passera à son ouverture. D’ici là, cette page
6
+ > décrit l’admission, la revue et le catalogue que suit un widget.
7
+
3
8
  Les widgets atteignent les utilisateurs de PlayerVox OverCrow par le
4
9
  catalogue signé des widgets : OverCrow n’installe que ce que liste ce
5
10
  catalogue. Cette page va du dossier de sources d’un widget à une version
@@ -390,7 +390,7 @@ hasard sont réels.
390
390
  `overcrow-widget-headless` est le code d’OverCrow lui-même, sans fenêtre :
391
391
  il valide le paquet comme le fait l’overlay et exécute la logique du widget
392
392
  dans le même sandbox. `overcrow-widget test` exécute la version que la CLI
393
- épingle, 0.6.0-beta.2, et affiche sa version et son SHA-256. Sans le
393
+ épingle, 0.7.0-beta.1, et affiche sa version et son SHA-256. Sans le
394
394
  sandbox du système d’exploitation, le runtime refuse de s’exécuter et le
395
395
  dit ; la commande de test se termine alors avec le code 2.
396
396
 
@@ -402,8 +402,8 @@ ensuite dans le cache de la CLI :
402
402
 
403
403
  | Plateforme | Chemin |
404
404
  | --- | --- |
405
- | Linux | `~/.cache/overcrow-widget/runtime/0.6.0-beta.2/` (`$XDG_CACHE_HOME` au lieu de `~/.cache` s’il est défini) |
406
- | Windows | `%LOCALAPPDATA%\overcrow-widget\runtime\0.6.0-beta.2\` |
405
+ | Linux | `~/.cache/overcrow-widget/runtime/0.7.0-beta.1/` (`$XDG_CACHE_HOME` au lieu de `~/.cache` s’il est défini) |
406
+ | Windows | `%LOCALAPPDATA%\overcrow-widget\runtime\0.7.0-beta.1\` |
407
407
 
408
408
  Pour travailler hors ligne, placez-y vous-même le runtime du ZIP des
409
409
  outils créateurs (exécutable sous Linux) : `test` le trouve et ne
@@ -0,0 +1,49 @@
1
+ # Domaine vérifié
2
+
3
+ Vérifier un domaine qui vous appartient ajoute le badge **Domaine vérifié** à
4
+ côté du nom de votre éditeur, dans le Centre de contrôle de PlayerVox
5
+ OverCrow et sur le site, et
6
+ permet aux identifiants de vos widgets de commencer par ce domaine inversé :
7
+ `gg.nova.lol-timers` pour `nova.gg`.
8
+
9
+ ## Ajouter un domaine
10
+
11
+ Dans l’espace créateurs, **Profil de l’éditeur**, **Ajouter un domaine**.
12
+ Écrivez le domaine seul, sans `https://` ni `www.` : `nova.gg`. Un éditeur
13
+ peut avoir jusqu’à huit domaines.
14
+
15
+ L’espace créateurs donne alors l’enregistrement DNS à publier chez votre
16
+ hébergeur : un enregistrement TXT nommé `_overcrow.` suivi de votre domaine,
17
+ dont la valeur est `overcrow-verify=` suivi d’un jeton.
18
+
19
+ ```text
20
+ _overcrow.nova.gg. TXT "overcrow-verify=3f9c1e7a52d04b8e"
21
+ ```
22
+
23
+ ## La vérification
24
+
25
+ **Vérifier maintenant** cherche l’enregistrement tout de suite (une fois par
26
+ minute au plus). Nous vérifions aussi tout seuls, toutes les heures pendant
27
+ sept jours. Le DNS peut mettre quelques minutes à se propager.
28
+
29
+ | État | Signification |
30
+ | --- | --- |
31
+ | En attente | L’enregistrement n’est pas encore trouvé ; vérifié toutes les heures pendant sept jours. |
32
+ | Vérifié | L’enregistrement est trouvé. Il est revérifié tous les 30 jours. |
33
+ | Perdu | L’enregistrement a disparu. Remettez-le, puis vérifiez maintenant. |
34
+ | Expiré | Pas vérifié en sept jours. Vérifiez maintenant pour recommencer. |
35
+
36
+ Laissez l’enregistrement en place : s’il disparaît, le badge s’en va. Les
37
+ identifiants des widgets déjà créés sous ce domaine restent à vous.
38
+
39
+ ## Qui peut revendiquer un domaine
40
+
41
+ - Un domaine vérifié une fois par un éditeur lui est réservé, ainsi que les
42
+ domaines en dessous et au-dessus : personne d’autre ne peut les
43
+ revendiquer.
44
+ - Un domaine qui se lit comme PlayerVox, OverCrow ou Valhallab est refusé ;
45
+ écrivez à l’assistance s’il vous appartient. Les identifiants sous
46
+ `com.playervox` appartiennent à PlayerVox.
47
+ - Retirer un domaine jamais vérifié l’oublie. Un domaine vérifié une fois
48
+ vous reste réservé, et ne peut pas être retiré tant que des identifiants
49
+ de widgets l’utilisent.
@@ -0,0 +1,69 @@
1
+ # Fiche : bonnes pratiques
2
+
3
+ La fiche est ce que les joueurs lisent dans le catalogue de PlayerVox
4
+ OverCrow avant d’installer un widget : sa description, son aperçu, sa
5
+ catégorie, ses jeux, sa licence et ses liens. Vous l’écrivez dans l’espace
6
+ créateurs, dans l’onglet **Fiche** du widget.
7
+
8
+ ## Enregistrée au fil de la saisie
9
+
10
+ La fiche est un brouillon, enregistré tout seul pendant que vous écrivez.
11
+
12
+ - La première fiche d’un widget part en revue avec sa première version.
13
+ - Les modifications suivantes partent seules en revue rapide :
14
+ **Soumettre la fiche**. Elles ne demandent pas de nouvelle version du
15
+ widget. **Annuler les modifications** ramène le brouillon à la fiche
16
+ publiée.
17
+ - La catégorie fait exception : vous la changez quand vous voulez, sans
18
+ revue, et le changement arrive aux joueurs avec la prochaine publication
19
+ du catalogue.
20
+
21
+ ## Langues
22
+
23
+ L’anglais vient en premier : c’est la langue par défaut, montrée quand la
24
+ langue d’un joueur n’a pas de description. **Ajouter une langue** en ajoute
25
+ une autre, 16 langues au plus. Le nom du widget vient de son manifeste
26
+ (`name.en`, `name.fr`) : pour le changer, changez le manifeste et envoyez une
27
+ version. Les langues de l’interface du widget viennent de ses fichiers
28
+ `locales/`.
29
+
30
+ ## Description
31
+
32
+ - 500 caractères au plus par langue. Les deux premières lignes apparaissent
33
+ sur la carte du catalogue : dites simplement ce que fait le widget.
34
+ - Dites quand le widget contacte un serveur, et lequel.
35
+ - Pas de publicité, et aucune promesse que le widget ne tient pas.
36
+
37
+ ## Image d’aperçu
38
+
39
+ Une seule image, en anglais, pour toutes les langues : un PNG au format 4:3,
40
+ de 480 × 360 à 1 024 × 768 (1 024 × 768 conseillé), 256 Kio au plus.
41
+ Montrez le widget en situation, sans texte marketing.
42
+
43
+ ## Catégorie et jeux
44
+
45
+ La catégorie place le widget dans le catalogue. Ajoutez jusqu’à cinq jeux
46
+ pour lesquels il est fait : les joueurs filtrent le catalogue par jeu.
47
+
48
+ ## Licence et liens
49
+
50
+ - **Licence** : « Propriétaire, tous droits réservés », ou une licence SPDX
51
+ comme `MIT` ou `Apache-2.0`.
52
+ - **Assistance** : une adresse e-mail ou une page web où les joueurs
53
+ trouvent de l’aide. Obligatoire.
54
+ - **Politique de confidentialité** : obligatoire dès que le widget utilise
55
+ le réseau.
56
+ - **Code source public** : facultatif ; un dépôt public ajoute le badge
57
+ « Code source public ».
58
+
59
+ Tapez une adresse comme vous la connaissez (`exemple.com/confidentialite`) :
60
+ `https://` est ajouté pour vous, et un `/` après un domaine seul
61
+ (`exemple.com` est enregistré `https://exemple.com/`). Une adresse en
62
+ `http://` est refusée.
63
+
64
+ ## Depuis listing.json
65
+
66
+ Les sources d’une version peuvent contenir un `listing.json`, tel que
67
+ l’outil en ligne de commande le lit (voir [`admit`](cli.md#admit)). Dans
68
+ l’onglet **Fiche**, **Importer listing.json** applique ses descriptions, sa
69
+ licence et l’adresse de son code source au brouillon.
@@ -0,0 +1,59 @@
1
+ # Revue : types, délais, recours
2
+
3
+ Chaque version d’un widget PlayerVox OverCrow, et chaque modification de sa
4
+ fiche, est lue par une personne de PlayerVox avant que les joueurs ne la
5
+ reçoivent. Cette page couvre les deux types de revue, leurs délais, le fil
6
+ de revue et le recours. Pour envoyer une version, voir
7
+ [publier un widget](publish-a-widget.md).
8
+
9
+ ## Rapide ou complète
10
+
11
+ | Revue | Quand | Délai maximal |
12
+ | --- | --- | --- |
13
+ | Complète | La première publication, ou une mise à jour qui ajoute une permission, une route réseau ou une capability | 5 jours ouvrés |
14
+ | Rapide | Toute autre mise à jour, ou une modification de la fiche seule | 2 jours ouvrés |
15
+ | Recours | Une fois par décision, sous six mois | 7 jours |
16
+ | Publication | Après l’approbation | 24 heures ouvrées |
17
+
18
+ Les jours ouvrés vont du lundi au vendredi, hors jours fériés en France. Le
19
+ délai est suspendu tant que la revue attend votre réponse ou une version
20
+ corrigée. Une revue rapide lit les lignes modifiées depuis la dernière
21
+ version approuvée ; une revue complète lit l’ensemble du widget.
22
+
23
+ ## Le fil de revue
24
+
25
+ Chaque version en revue a un fil dans l’espace créateurs :
26
+
27
+ - Une **remarque** pointe un fichier et une ligne, cite le code que le
28
+ relecteur a lu et une règle numérotée des règles de publication.
29
+ - Vous pouvez **répondre** au relecteur. Votre réponse renvoie la revue au
30
+ relecteur quand elle vous attendait.
31
+ - Une **version corrigée** reprend le même fil : envoyez-la depuis
32
+ **Envoyer une version**, avec un numéro de version plus récent.
33
+ - La **décision** est une approbation, des modifications demandées ou un
34
+ refus, toujours motivés.
35
+
36
+ Les relecteurs apparaissent comme « Relecteur PlayerVox », jamais par leur
37
+ nom. Chaque fois qu’un relecteur ouvre vos sources, l’espace créateurs
38
+ montre quand, quelle version et pourquoi, dans **Accès à vos sources**.
39
+
40
+ ## Recours
41
+
42
+ Vous pouvez contester un refus ou une suspension une fois par décision,
43
+ sous six mois, avec **Contester la décision**. PlayerVox réexamine
44
+ entièrement la décision et vous répond sous 7 jours, de façon motivée. Vous
45
+ pouvez toujours envoyer une nouvelle version à la place.
46
+
47
+ ## Suspension
48
+
49
+ Quand les joueurs sont en danger (code malveillant, clé divulguée, fuite de
50
+ données), PlayerVox peut suspendre un widget ou une version aussitôt : les
51
+ copies installées sont désactivées. L’espace créateurs donne le motif et la
52
+ règle, et le recours reste ouvert.
53
+
54
+ ## Retrait
55
+
56
+ Vous pouvez retirer une version ou le widget entier à tout moment : il sort
57
+ du catalogue à la prochaine publication, et les copies installées
58
+ continuent de fonctionner. Une version en revue, ou approuvée et pas encore
59
+ publiée, est retirée tout de suite.