@hgdc/docs 0.4.2 → 0.4.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.
Files changed (183) hide show
  1. package/package.json +1 -1
  2. package/src/integration.ts +8 -1
  3. package/src/styles/theme.css +36 -5
  4. package/template/.astro/content-modules.mjs +15 -35
  5. package/template/.build/.well-known/llms.txt +34 -51
  6. package/template/.build/404.html +4 -4
  7. package/template/.build/_astro/Search.astro_astro_type_script_index_0_lang.VKDD8r2I.js +1 -0
  8. package/template/.build/_astro/common.BoKrWC_6.css +3 -0
  9. package/template/.build/_astro/logo-clair.BqNh6JNi.svg +1 -0
  10. package/template/.build/_astro/logo-sombre.BkgsFXxh.svg +1 -0
  11. package/template/.build/_hgdc/corpus.json +1 -1
  12. package/template/.build/demarrer/premiere-doc/index.html +25 -0
  13. package/template/.build/demarrer/premiere-doc.md +65 -0
  14. package/template/.build/explications/donnees/index.html +55 -0
  15. package/template/.build/explications/donnees.md +28 -0
  16. package/template/.build/explications/fonctionnement/index.html +33 -0
  17. package/template/.build/explications/fonctionnement.md +32 -0
  18. package/template/.build/guides/agents/index.html +59 -0
  19. package/template/.build/guides/agents.md +54 -0
  20. package/template/.build/guides/assistant/index.html +60 -0
  21. package/template/.build/guides/assistant.md +46 -0
  22. package/template/.build/guides/composants/index.html +38 -0
  23. package/template/.build/guides/composants.md +103 -0
  24. package/template/.build/guides/ecrire/index.html +56 -0
  25. package/template/.build/guides/ecrire.md +63 -0
  26. package/template/.build/guides/elements/index.html +1 -0
  27. package/template/.build/guides/navigation/index.html +30 -0
  28. package/template/.build/guides/navigation.md +63 -0
  29. package/template/.build/guides/publier/index.html +27 -0
  30. package/template/.build/guides/publier.md +65 -0
  31. package/template/.build/guides/theme/index.html +27 -0
  32. package/template/.build/guides/theme.md +33 -0
  33. package/template/.build/images/favicon.svg +1 -0
  34. package/template/.build/images/logo-clair.svg +1 -0
  35. package/template/.build/images/logo-sombre.svg +1 -0
  36. package/template/.build/index.html +14 -18
  37. package/template/.build/index.md +21 -59
  38. package/template/.build/llms-full.txt +515 -2331
  39. package/template/.build/llms.txt +34 -51
  40. package/template/.build/pagefind/fragment/fr-ch_1aa5706.pf_fragment +0 -0
  41. package/template/.build/pagefind/fragment/fr-ch_21308c9.pf_fragment +0 -0
  42. package/template/.build/pagefind/fragment/fr-ch_256be83.pf_fragment +0 -0
  43. package/template/.build/pagefind/fragment/fr-ch_3786e05.pf_fragment +0 -0
  44. package/template/.build/pagefind/fragment/fr-ch_3e2d7bf.pf_fragment +0 -0
  45. package/template/.build/pagefind/fragment/fr-ch_53e6d95.pf_fragment +0 -0
  46. package/template/.build/pagefind/fragment/fr-ch_7011e1a.pf_fragment +0 -0
  47. package/template/.build/pagefind/fragment/fr-ch_7252d5b.pf_fragment +0 -0
  48. package/template/.build/pagefind/fragment/fr-ch_8a5f581.pf_fragment +0 -0
  49. package/template/.build/pagefind/fragment/fr-ch_9221692.pf_fragment +0 -0
  50. package/template/.build/pagefind/fragment/fr-ch_a4b68e2.pf_fragment +0 -0
  51. package/template/.build/pagefind/fragment/fr-ch_d4ef5e9.pf_fragment +0 -0
  52. package/template/.build/pagefind/fragment/fr-ch_edaf413.pf_fragment +0 -0
  53. package/template/.build/pagefind/fragment/fr-ch_f017e56.pf_fragment +0 -0
  54. package/template/.build/pagefind/fragment/fr-ch_fe71cc1.pf_fragment +0 -0
  55. package/template/.build/pagefind/index/fr-ch_481c81a.pf_index +0 -0
  56. package/template/.build/pagefind/pagefind-entry.json +1 -1
  57. package/template/.build/pagefind/pagefind.fr-ch_46a632d8eba7e.pf_meta +0 -0
  58. package/template/.build/reference/api-assistant/index.html +102 -0
  59. package/template/.build/reference/api-assistant.md +60 -0
  60. package/template/.build/reference/cli/index.html +11 -153
  61. package/template/.build/reference/cli.md +23 -159
  62. package/template/.build/reference/docs-json/index.html +157 -0
  63. package/template/.build/reference/docs-json.md +47 -0
  64. package/template/.build/reference/mcp/index.html +92 -0
  65. package/template/.build/reference/mcp.md +49 -0
  66. package/template/node_modules/.vite/deps/_metadata.json +8 -8
  67. package/template/.astro/data-store.json +0 -1
  68. package/template/.astro/settings.json +0 -5
  69. package/template/.build/_astro/Search.astro_astro_type_script_index_0_lang.D7EcezBU.js +0 -1
  70. package/template/.build/_astro/common.Dx3aBIS0.css +0 -3
  71. package/template/.build/_astro/logo.BPu921Tp.svg +0 -1
  72. package/template/.build/concepts/confidentialite/index.html +0 -50
  73. package/template/.build/concepts/confidentialite.md +0 -38
  74. package/template/.build/concepts/deploiements/index.html +0 -106
  75. package/template/.build/concepts/deploiements.md +0 -70
  76. package/template/.build/concepts/organisations-et-roles/index.html +0 -83
  77. package/template/.build/concepts/organisations-et-roles.md +0 -39
  78. package/template/.build/concepts/preversion/index.html +0 -49
  79. package/template/.build/concepts/preversion.md +0 -52
  80. package/template/.build/concepts/secrets-et-coffre/index.html +0 -70
  81. package/template/.build/concepts/secrets-et-coffre.md +0 -54
  82. package/template/.build/demarrer/depuis-github/index.html +0 -34
  83. package/template/.build/demarrer/depuis-github.md +0 -68
  84. package/template/.build/demarrer/premier-site/index.html +0 -28
  85. package/template/.build/demarrer/premier-site.md +0 -94
  86. package/template/.build/guides/brancher-un-domaine/index.html +0 -91
  87. package/template/.build/guides/brancher-un-domaine.md +0 -81
  88. package/template/.build/guides/cle-d-api/index.html +0 -62
  89. package/template/.build/guides/cle-d-api.md +0 -78
  90. package/template/.build/guides/depannage/index.html +0 -64
  91. package/template/.build/guides/depannage.md +0 -69
  92. package/template/.build/guides/deployer-depuis-github/index.html +0 -45
  93. package/template/.build/guides/deployer-depuis-github.md +0 -70
  94. package/template/.build/guides/deployer-un-framework/index.html +0 -81
  95. package/template/.build/guides/deployer-un-framework.md +0 -74
  96. package/template/.build/guides/github-actions-sans-application/index.html +0 -53
  97. package/template/.build/guides/github-actions-sans-application.md +0 -95
  98. package/template/.build/guides/inviter-une-personne/index.html +0 -28
  99. package/template/.build/guides/inviter-une-personne.md +0 -38
  100. package/template/.build/guides/lire-les-logs/index.html +0 -37
  101. package/template/.build/guides/lire-les-logs.md +0 -48
  102. package/template/.build/guides/migrer-depuis-vercel/index.html +0 -25
  103. package/template/.build/guides/migrer-depuis-vercel.md +0 -51
  104. package/template/.build/guides/monorepo/index.html +0 -40
  105. package/template/.build/guides/monorepo.md +0 -42
  106. package/template/.build/guides/revenir-en-arriere/index.html +0 -39
  107. package/template/.build/guides/revenir-en-arriere.md +0 -50
  108. package/template/.build/guides/site-statique/index.html +0 -41
  109. package/template/.build/guides/site-statique.md +0 -59
  110. package/template/.build/guides/synchroniser-doppler/index.html +0 -46
  111. package/template/.build/guides/synchroniser-doppler.md +0 -63
  112. package/template/.build/guides/variables-d-environnement/index.html +0 -73
  113. package/template/.build/guides/variables-d-environnement.md +0 -92
  114. package/template/.build/images/famille/account.svg +0 -1
  115. package/template/.build/images/famille/analytics.svg +0 -1
  116. package/template/.build/images/famille/docs.svg +0 -1
  117. package/template/.build/images/famille/host.svg +0 -1
  118. package/template/.build/images/famille/mail.svg +0 -1
  119. package/template/.build/images/famille/portal.svg +0 -1
  120. package/template/.build/images/famille/status.svg +0 -1
  121. package/template/.build/images/logo.svg +0 -1
  122. package/template/.build/pagefind/fragment/fr-ch_16987e2.pf_fragment +0 -0
  123. package/template/.build/pagefind/fragment/fr-ch_2b4c97b.pf_fragment +0 -0
  124. package/template/.build/pagefind/fragment/fr-ch_3294a5c.pf_fragment +0 -0
  125. package/template/.build/pagefind/fragment/fr-ch_34858c9.pf_fragment +0 -0
  126. package/template/.build/pagefind/fragment/fr-ch_39ddba1.pf_fragment +0 -0
  127. package/template/.build/pagefind/fragment/fr-ch_4ab1899.pf_fragment +0 -0
  128. package/template/.build/pagefind/fragment/fr-ch_4d3a52a.pf_fragment +0 -0
  129. package/template/.build/pagefind/fragment/fr-ch_506c187.pf_fragment +0 -0
  130. package/template/.build/pagefind/fragment/fr-ch_5aa255a.pf_fragment +0 -0
  131. package/template/.build/pagefind/fragment/fr-ch_6841c7d.pf_fragment +0 -0
  132. package/template/.build/pagefind/fragment/fr-ch_6dc7a2d.pf_fragment +0 -0
  133. package/template/.build/pagefind/fragment/fr-ch_847edff.pf_fragment +0 -0
  134. package/template/.build/pagefind/fragment/fr-ch_8745af7.pf_fragment +0 -0
  135. package/template/.build/pagefind/fragment/fr-ch_8aac5e6.pf_fragment +0 -0
  136. package/template/.build/pagefind/fragment/fr-ch_916b233.pf_fragment +0 -0
  137. package/template/.build/pagefind/fragment/fr-ch_9fd014a.pf_fragment +0 -0
  138. package/template/.build/pagefind/fragment/fr-ch_a0808f8.pf_fragment +0 -0
  139. package/template/.build/pagefind/fragment/fr-ch_a4e1f69.pf_fragment +0 -0
  140. package/template/.build/pagefind/fragment/fr-ch_a80a53d.pf_fragment +0 -0
  141. package/template/.build/pagefind/fragment/fr-ch_a9e725b.pf_fragment +0 -0
  142. package/template/.build/pagefind/fragment/fr-ch_ac3f64c.pf_fragment +0 -0
  143. package/template/.build/pagefind/fragment/fr-ch_af292f1.pf_fragment +0 -0
  144. package/template/.build/pagefind/fragment/fr-ch_af3e716.pf_fragment +0 -0
  145. package/template/.build/pagefind/fragment/fr-ch_b0689a4.pf_fragment +0 -0
  146. package/template/.build/pagefind/fragment/fr-ch_baed996.pf_fragment +0 -0
  147. package/template/.build/pagefind/fragment/fr-ch_c89e27a.pf_fragment +0 -0
  148. package/template/.build/pagefind/fragment/fr-ch_cd6ca13.pf_fragment +0 -0
  149. package/template/.build/pagefind/fragment/fr-ch_d09af09.pf_fragment +0 -0
  150. package/template/.build/pagefind/fragment/fr-ch_d4bcea8.pf_fragment +0 -0
  151. package/template/.build/pagefind/fragment/fr-ch_dc2a134.pf_fragment +0 -0
  152. package/template/.build/pagefind/fragment/fr-ch_ded7ddc.pf_fragment +0 -0
  153. package/template/.build/pagefind/fragment/fr-ch_e2528cb.pf_fragment +0 -0
  154. package/template/.build/pagefind/fragment/fr-ch_e3cbb4e.pf_fragment +0 -0
  155. package/template/.build/pagefind/fragment/fr-ch_e7902d9.pf_fragment +0 -0
  156. package/template/.build/pagefind/fragment/fr-ch_f48ca47.pf_fragment +0 -0
  157. package/template/.build/pagefind/index/fr-ch_8a5f905.pf_index +0 -0
  158. package/template/.build/pagefind/index/fr-ch_fbd9c96.pf_index +0 -0
  159. package/template/.build/pagefind/pagefind.fr-ch_211aacbfa7f0e.pf_meta +0 -0
  160. package/template/.build/reference/api/deploiements/index.html +0 -326
  161. package/template/.build/reference/api/deploiements.md +0 -170
  162. package/template/.build/reference/api/erreurs/index.html +0 -102
  163. package/template/.build/reference/api/erreurs.md +0 -50
  164. package/template/.build/reference/api/fichiers/index.html +0 -82
  165. package/template/.build/reference/api/fichiers.md +0 -62
  166. package/template/.build/reference/api/introduction/index.html +0 -126
  167. package/template/.build/reference/api/introduction.md +0 -84
  168. package/template/.build/reference/api/projets/index.html +0 -184
  169. package/template/.build/reference/api/projets.md +0 -102
  170. package/template/.build/reference/api/utilisateur/index.html +0 -96
  171. package/template/.build/reference/api/utilisateur.md +0 -89
  172. package/template/.build/reference/api/variables/index.html +0 -75
  173. package/template/.build/reference/api/variables.md +0 -58
  174. package/template/.build/reference/compatibilite/index.html +0 -196
  175. package/template/.build/reference/compatibilite.md +0 -64
  176. package/template/.build/reference/domaines/index.html +0 -171
  177. package/template/.build/reference/domaines.md +0 -76
  178. package/template/.build/reference/limites/index.html +0 -159
  179. package/template/.build/reference/limites.md +0 -56
  180. package/template/.build/reference/variables/index.html +0 -164
  181. package/template/.build/reference/variables.md +0 -63
  182. package/template/.build/reference/vercel-json/index.html +0 -65
  183. package/template/.build/reference/vercel-json.md +0 -51
@@ -1,55 +1,38 @@
1
- # Host
1
+ # Docs
2
2
 
3
- > Ton site en ligne, déployé à chaque modification.
3
+ > Écrire une documentation en MDX, la publier avec Host et y brancher un assistant IA qui cite ses sources.
4
4
 
5
5
  Chaque page existe en Markdown à la même adresse suivie de `.md`. `llms-full.txt` contient toute la documentation en un seul fichier.
6
6
 
7
- ## Démarrer
8
-
9
- - [Host](/docs/index.md): Host publie tes sites sur ton domaine, avec la CLI Vercel, depuis l'Union européenne.
10
- - [Mettre un premier site en ligne](/docs/demarrer/premier-site.md): Du compte à une preview, puis à la production, avec la CLI Vercel, en une quinzaine de minutes.
11
- - [Déployer un site depuis GitHub](/docs/demarrer/depuis-github.md): Importe un dépôt GitHub. La branche principale part en production, les autres reçoivent une preview.
12
-
13
- ## Guides
14
-
15
- - [Créer et révoquer une clé d'API](/docs/guides/cle-d-api.md): Crée une clé pour la CLI ou ton intégration, choisis sa portée et révoque-la quand elle ne sert plus.
16
- - [Déployer depuis GitHub](/docs/guides/deployer-depuis-github.md): Importe un dépôt, suis chaque build dans Host et mets le workflow à jour quand Host le fait évoluer.
17
- - [Déployer avec GitHub Actions, sans l'application](/docs/guides/github-actions-sans-application.md): Écris ton propre workflow avec la CLI Vercel, sans passer par l'app GitHub de Host.
18
- - [Déployer un framework](/docs/guides/deployer-un-framework.md): Construis ton site avec vercel build, puis envoie le résultat. Astro, Vite, Next.js, SvelteKit, Nuxt et les autres.
19
- - [Déployer un site statique](/docs/guides/site-statique.md): Mets un dossier de HTML, CSS et images en ligne en une commande, sans étape de build.
20
- - [Déployer une app dans un monorepo](/docs/guides/monorepo.md): Déploie une app qui vit dans un sous-dossier, et plusieurs sites d'un même dépôt.
21
- - [Brancher un domaine](/docs/guides/brancher-un-domaine.md): Sers ton site sur ton propre domaine, avec HTTPS automatique, en quelques minutes de configuration DNS.
22
- - [Gérer les variables d'environnement](/docs/guides/variables-d-environnement.md): Ajoute des variables par environnement, marque les secrets comme sensibles et applique un changement à ton site.
23
- - [Synchroniser les variables depuis Doppler](/docs/guides/synchroniser-doppler.md): Garde tes secrets dans Doppler. Chaque changement arrive dans le projet Host tout seul, et peut redéployer la production.
24
- - [Revenir en arrière, redéployer ou annuler](/docs/guides/revenir-en-arriere.md): Remets en ligne une version précédente, relance un build ou annule un déploiement en cours.
25
- - [Inviter une personne dans une organisation](/docs/guides/inviter-une-personne.md): Ajoute un collègue à ton organisation depuis Account, et choisis son rôle pour qu'il accède aux projets.
26
- - [Lire les logs](/docs/guides/lire-les-logs.md): Suis les requêtes servies par ton site, puis la sortie de tes builds, pour trouver la cause d'une erreur.
27
- - [Migrer un projet depuis Vercel](/docs/guides/migrer-depuis-vercel.md): Déplace un projet de Vercel vers Host sans changer tes outils, avec une bascule DNS sans coupure.
28
- - [Dépannage](/docs/guides/depannage.md): Les problèmes les plus fréquents avec la CLI, GitHub, les déploiements et les domaines, et comment les résoudre.
29
-
30
- ## Référence
31
-
32
- - [CLI](/docs/reference/cli.md): Référence des commandes de la CLI Vercel prises en charge par Host, avec leurs options et leurs exemples.
33
- - [Variables d'environnement](/docs/reference/variables.md): Noms, valeurs, environnements, variables réservées et variables sensibles, avec les règles exactes.
34
- - [Domaines](/docs/reference/domaines.md): Enregistrements DNS, statuts, usages, codes de redirection et règles de propriété des domaines.
35
- - [vercel.json](/docs/reference/vercel-json.md): Les options de vercel.json que Host applique, leurs limites, et ce qui est filtré à la publication.
36
- - [Compatibilité avec Vercel](/docs/reference/compatibilite.md): Ce que la CLI et la plateforme prennent en charge aujourd'hui, ce qui est en préversion et ce qui n'existe pas encore.
37
- - [Limites](/docs/reference/limites.md): Tailles, débits, quotas et durées de conservation de Host.
38
-
39
- ## Référence › API
40
-
41
- - [Introduction à l'API](/docs/reference/api/introduction.md): Adresse de base, authentification par clé, portée des clés, versions des chemins et limites de débit de l'API Host.
42
- - [Erreurs de l'API](/docs/reference/api/erreurs.md): Format des erreurs de l'API Host, liste des codes, leur cause et la conduite à tenir.
43
- - [Lire le propriétaire de la clé et l'organisation](/docs/reference/api/utilisateur.md): Renvoie la personne qui a créé la clé, puis l'organisation de la clé. Les routes utilisées par la CLI pour se connecter.
44
- - [Projets](/docs/reference/api/projets.md): Lister, lire et créer des projets avec l'API Host. Champs de l'objet projet et erreurs.
45
- - [Déploiements](/docs/reference/api/deploiements.md): Créer un déploiement, lire son état, suivre ses logs en direct. Corps de requête, champs de l'objet déploiement et erreurs.
46
- - [Envoyer un fichier](/docs/reference/api/fichiers.md): Envoyer le contenu d'un fichier à Host, adressé par son empreinte SHA1, avant de créer un déploiement.
47
- - [Lire les variables d'un environnement](/docs/reference/api/variables.md): Renvoie les variables d'un environnement au format de vercel pull, avec les règles de visibilité des variables sensibles.
48
-
49
- ## Concepts
50
-
51
- - [Déploiements](/docs/concepts/deploiements.md): Preview, production, adresse de production, adresse de déploiement, statuts et retour arrière. Le cycle de vie d'une version de ton site.
52
- - [Organisations et rôles](/docs/concepts/organisations-et-roles.md): Une organisation regroupe des personnes, des projets et des clés d'API. Qui peut faire quoi, et où se gèrent les membres.
53
- - [Secrets et coffre](/docs/concepts/secrets-et-coffre.md): Comment Host protège les valeurs de tes variables et tes clés d'API, qui peut les lire et ce qui reste dans le journal.
54
- - [Préversion et rendu à la demande](/docs/concepts/preversion.md): Ce qui s'exécute en préversion (rendu à la demande, routes d'API, ISR, crons), comment ça se comporte et ce qui reste en ligne.
55
- - [Sécurité et confidentialité](/docs/concepts/confidentialite.md): Ce que Host fait pour protéger tes projets, tes secrets, tes sites et les visiteurs, et comment signaler une faille.
7
+ ## Guides · Démarrer
8
+
9
+ - [Bienvenue dans Docs](/index.md): Ta documentation en MDX, publiée par Host, avec recherche, llms.txt et un assistant IA qui cite ses sources.
10
+ - [Ta première doc en cinq minutes](/demarrer/premiere-doc.md): Créer le dossier, écrire docs.json et une page, puis voir le site en local.
11
+ - [Publier avec Host](/guides/publier.md): Mettre la doc en ligne avec Host, activer Docs en un clic et brancher l'assistant.
12
+
13
+ ## Guides · Écrire
14
+
15
+ - [Écrire en MDX](/guides/ecrire.md): Titres, liens, images, code et métadonnées d'une page.
16
+ - [Composants](/guides/composants.md): Encadrés, étapes, cartes, onglets et accordéons, disponibles dans chaque page sans import.
17
+ - [Navigation, onglets et versions](/guides/navigation.md): Organiser les pages en groupes, en onglets et en versions dans docs.json.
18
+ - [Thème et logo](/guides/theme.md): Poser ta couleur, ton logo et ton favicon dans docs.json.
19
+
20
+ ## Guides · Assistant et agents
21
+
22
+ - [L'assistant IA](/guides/assistant.md): Ce que fait l'assistant, d'où viennent ses réponses, et comment le régler.
23
+ - [llms.txt et MCP](/guides/agents.md): Rendre la doc lisible par les outils d'IA, avec llms.txt, des pages en Markdown et un serveur MCP.
24
+
25
+ ## Référence · Configuration
26
+
27
+ - [docs.json](/reference/docs-json.md): Tous les champs du fichier de configuration d'un site Docs.
28
+ - [La commande hgdc-docs](/reference/cli.md): Les commandes dev, build et preview, et les variables d'environnement du build.
29
+
30
+ ## Référence · API
31
+
32
+ - [API de l'assistant](/reference/api-assistant.md): La requête que le widget envoie, la réponse et les codes d'erreur.
33
+ - [Serveur MCP](/reference/mcp.md): Transport, méthodes et outils du serveur MCP en lecture d'un projet.
34
+
35
+ ## Explications · Sous le capot
36
+
37
+ - [Comment ça marche](/explications/fonctionnement.md): Du push au site publié, puis à l'assistant qui répond.
38
+ - [Données et confidentialité](/explications/donnees.md): Ce qui est stocké, où, combien de temps, et qui y accède.
@@ -1 +1 @@
1
- {"version":"1.5.2","languages":{"fr-ch":{"hash":"fr-ch_211aacbfa7f0e","wasm":"fr-ch","page_count":35}},"include_characters":["_","‿","⁀","⁔","︳","︴","﹍","﹎","﹏","_"]}
1
+ {"version":"1.5.2","languages":{"fr-ch":{"hash":"fr-ch_46a632d8eba7e","wasm":"fr-ch","page_count":15}},"include_characters":["_","‿","⁀","⁔","︳","︴","﹍","﹎","﹏","_"]}
@@ -0,0 +1,102 @@
1
+ <!DOCTYPE html><html lang="fr-CH" dir="ltr" data-theme="dark" data-has-toc data-has-sidebar class="astro-mgylisfi"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover"/><title>API de l'assistant | Docs</title><style>:root{--sl-color-accent-low:#282041;--sl-color-accent:#aa73ff;--sl-color-accent-high:#e8b7ff;--hgdc-on-accent:#000000;}:root:not([data-hd-theme="dark"]){--sl-color-accent-low:#f1e9ff;--sl-color-accent:#7c3aed;--sl-color-accent-high:#4e00ae;--hgdc-on-accent:#ffffff;}</style><link rel="shortcut icon" href="/images/favicon.svg" type="image/svg+xml"/><meta name="generator" content="Astro v7.3.8"/><meta name="generator" content="Starlight v0.42.6"/><meta property="og:title" content="API de l'assistant"/><meta property="og:type" content="article"/><meta property="og:locale" content="fr-CH"/><meta property="og:description" content="La requête que le widget envoie, la réponse et les codes d'erreur."/><meta property="og:site_name" content="Docs"/><meta name="twitter:card" content="summary_large_image"/><meta name="description" content="La requête que le widget envoie, la réponse et les codes d'erreur."/><link rel="alternate" type="text/markdown" href="/reference/api-assistant.md"><link rel="describedby" type="text/markdown" href="/llms.txt"><script>
2
+ ;(() => {
3
+ let stored = null
4
+ try {
5
+ stored = localStorage.getItem("starlight-theme")
6
+ } catch {}
7
+ const dark =
8
+ stored === "dark" || (stored === "auto" && matchMedia("(prefers-color-scheme: dark)").matches)
9
+ const theme = dark ? "dark" : "light"
10
+ document.documentElement.dataset.theme = theme
11
+ document.documentElement.dataset.hdTheme = theme
12
+ window.StarlightThemeProvider = { updatePickers() {} }
13
+ })()
14
+ </script><link rel="stylesheet" href="/_astro/print.ehPL0gv-.css" media="print"><link rel="stylesheet" href="/_astro/common.BoKrWC_6.css"><style>@layer starlight.components{svg:where(.astro-kvkgfy7v){color:var(--sl-icon-color);font-size:var(--sl-icon-size,1em);width:1em;height:1em;overflow:visible}}
15
+ @layer starlight.components{starlight-tabs:where(.astro-opkipegj){display:block}.tablist-wrapper:where(.astro-opkipegj){overflow-x:auto}:where(.astro-opkipegj)[role=tablist]{border-bottom:2px solid var(--sl-color-gray-5);padding:0;list-style:none;display:flex}.tab:where(.astro-opkipegj){display:flex}.tab:where(.astro-opkipegj)>:where(.astro-opkipegj)[role=tab]{--sl-tab-color-border:var(--sl-color-gray-5);line-height:var(--sl-line-height-headings);box-shadow:0 2px 0 var(--sl-tab-color-border);color:var(--sl-color-gray-3);outline-offset:var(--sl-outline-offset-inside);overflow-wrap:initial;align-items:center;gap:.5rem;padding:.275rem 1.25rem;text-decoration:none;display:flex}.tab:where(.astro-opkipegj) :where(.astro-opkipegj)[role=tab][aria-selected=true]{--sl-tab-color-border:var(--sl-color-text-accent);color:var(--sl-color-white);font-weight:600}.tablist-wrapper:where(.astro-opkipegj)~[role=tabpanel]{margin-top:1rem}}
16
+ </style><script type="module" src="/_astro/page.cNngjUgL.js"></script></head><body class="astro-mgylisfi"><a class="sl-skip-link astro-hlhzrz26" href="#_top">Aller au contenu</a><div class="hd-page"><header class="hd-topbar"><div class="hd-header"><div class="hd-header__start"><button type="button" class="hd-icon-button hd-menu-button" popovertarget="starlight__sidebar" aria-label="Menu de la documentation" aria-controls="starlight__sidebar"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M4 7h16M4 12h16M4 17h10"></path></svg></button><a class="hd-brand" href="/"><span class="hd-brand__mark"><img class="hd-brand__light" src="/images/logo-clair.svg" alt="" width="24" height="24"><img class="hd-brand__dark" src="/images/logo-sombre.svg" alt="" width="24" height="24"></span><span class="hd-brand__name">Docs</span></a></div><nav class="hd-header__tabs" aria-label="Sections de la documentation"><a href="/">Guides</a><a href="/reference/docs-json/" aria-current="page">Référence</a><a href="/explications/fonctionnement/">Explications</a></nav><div class="hd-header__end"><hd-search data-base data-assistant><button type="button" class="hd-search-trigger" data-open aria-haspopup="dialog" aria-label="Rechercher (Ctrl K)"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M11 18a7 7 0 1 0 0-14 7 7 0 0 0 0 14Zm5-2 4 4"></path></svg><span class="hd-search-trigger__label">Rechercher</span><kbd class="hd-kbd" data-shortcut>Ctrl K</kbd></button><dialog class="hd-palette" aria-label="Rechercher dans la documentation"><div class="hd-palette__box"><div class="hd-palette__field"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M11 18a7 7 0 1 0 0-14 7 7 0 0 0 0 14Zm5-2 4 4"></path></svg><input type="text" data-input placeholder="Rechercher dans la documentation" autocomplete="off" spellcheck="false" role="combobox" aria-expanded="false" aria-controls="hd-palette-results" aria-autocomplete="list"><button type="button" class="hd-kbd hd-kbd--button" data-close>Échap</button></div><div class="hd-palette__results" id="hd-palette-results" role="listbox" aria-label="Résultats" data-results></div><p class="hd-palette__status" data-status role="status">Tape un mot pour chercher dans les pages.</p><footer class="hd-palette__hints" aria-hidden="true"><span><kbd class="hd-kbd">↑</kbd><kbd class="hd-kbd">↓</kbd> Choisir</span><span><kbd class="hd-kbd">↵</kbd> Ouvrir</span><span><kbd class="hd-kbd">Échap</kbd> Fermer</span></footer></div></dialog></hd-search><script type="module" src="/_astro/Search.astro_astro_type_script_index_0_lang.VKDD8r2I.js"></script><button type="button" class="hd-icon-button" data-hgdc-ask aria-label="Demander à l'assistant" title="Demander à l'assistant (Ctrl I)"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3.5 13.6 8a3 3 0 0 0 1.9 1.9L20 11.5l-4.5 1.6a3 3 0 0 0-1.9 1.9L12 19.5 10.4 15a3 3 0 0 0-1.9-1.9L4 11.5 8.5 9.9A3 3 0 0 0 10.4 8ZM19 3v3M20.5 4.5h-3"></path></svg></button><nav class="hd-header__links" aria-label="Liens"><a class="hd-pill hd-pill--ghost" href="https://hgdc.ch">HGDC</a><a class="hd-pill hd-pill--primary" href="https://docs.hgdc.ch">Console</a></nav><button type="button" class="hd-icon-button hd-theme-button" data-hd-theme-toggle aria-label="Passer au thème sombre"><svg class="hd-icon hd-theme-button__moon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M20 14.5A8 8 0 1 1 9.5 4a6.5 6.5 0 0 0 10.5 10.5Z"></path></svg><svg class="hd-icon hd-theme-button__sun" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 16a4 4 0 1 0 0-8 4 4 0 0 0 0 8ZM12 2.5v2M12 19.5v2M4.6 4.6 6 6M18 18l1.4 1.4M2.5 12h2M19.5 12h2M4.6 19.4 6 18M18 6l1.4-1.4"></path></svg></button><script type="module">var e=`starlight-theme`,t=()=>{try{return localStorage.getItem(e)||`light`}catch{return`light`}},n=()=>matchMedia(`(prefers-color-scheme: light)`).matches?`light`:`dark`,r=t=>{try{localStorage.setItem(e,t)}catch{}let r=t===`auto`?n():t;document.documentElement.dataset.theme=r,document.documentElement.dataset.hdTheme=r,i()},i=()=>{let e=t(),n=document.documentElement.dataset.theme===`dark`;for(let e of document.querySelectorAll(`[data-hd-theme-toggle]`))e.setAttribute(`aria-label`,n?`Passer au thème clair`:`Passer au thème sombre`);for(let t of document.querySelectorAll(`[data-hd-theme-choice]`)){let n=t.dataset.hdThemeChoice===e;t.setAttribute(`aria-checked`,String(n)),t.tabIndex=n?0:-1}};for(let e of document.querySelectorAll(`[data-hd-theme-toggle]`))e.addEventListener(`click`,()=>r(document.documentElement.dataset.theme===`dark`?`light`:`dark`));for(let e of document.querySelectorAll(`.hd-theme-choice`)){let t=[...e.querySelectorAll(`[data-hd-theme-choice]`)];for(let e of t)e.addEventListener(`click`,()=>r(e.dataset.hdThemeChoice));e.addEventListener(`keydown`,e=>{let n=e.key===`ArrowRight`||e.key===`ArrowDown`?1:e.key===`ArrowLeft`||e.key===`ArrowUp`?-1:0;if(!n)return;e.preventDefault();let i=t.findIndex(e=>e.getAttribute(`aria-checked`)===`true`),a=t[(i+n+t.length)%t.length];r(a.dataset.hdThemeChoice),a.focus()})}matchMedia(`(prefers-color-scheme: light)`).addEventListener(`change`,()=>{t()===`auto`&&r(`auto`)}),i();</script></div></div></header><nav class="hd-sidebar" aria-label="Navigation de la documentation"><script type="module">for(let e of document.querySelectorAll(`[data-hgdc-version]`))e.addEventListener(`change`,()=>window.location.assign(e.value));var e=document.querySelector(`.sidebar-pane`);if(e){let t=`hd-sidebar-scroll`;try{let n=Number(sessionStorage.getItem(t));n&&(e.scrollTop=n)}catch{}let n=e.querySelector(`[aria-current="page"]`);if(n){let t=e.getBoundingClientRect(),r=n.getBoundingClientRect();(r.top<t.top||r.bottom>t.bottom)&&n.scrollIntoView({block:`center`})}addEventListener(`pagehide`,()=>{try{sessionStorage.setItem(t,String(e.scrollTop))}catch{}})}</script><hd-sidebar-pane popover="auto" id="starlight__sidebar" class="sidebar-pane"><div class="hd-sidebar__content"><div class="hd-mobile-only hd-sidebar-head"><a class="hd-brand" href="/"><span class="hd-brand__name">Docs</span></a><button type="button" class="hd-icon-button" popovertarget="starlight__sidebar" popovertargetaction="hide" aria-label="Fermer le menu"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M6 6l12 12M18 6 6 18"></path></svg></button></div><nav class="hd-mobile-only hd-sidebar-tabs" aria-label="Sections de la documentation"><a href="/">Guides</a><a href="/reference/docs-json/" aria-current="page">Référence</a><a href="/explications/fonctionnement/">Explications</a></nav><ul class="hd-nav hd-nav--depth-0"><li class="hd-nav__group"><p class="hd-nav__heading">Configuration</p><ul class="hd-nav hd-nav--depth-1"><li><a href="/reference/docs-json/" class="hd-nav__link"><span>docs.json</span></a></li><li><a href="/reference/cli/" class="hd-nav__link"><span>Commande hgdc-docs</span></a></li></ul></li><li class="hd-nav__group"><p class="hd-nav__heading">API</p><ul class="hd-nav hd-nav--depth-1"><li><a href="/reference/api-assistant/" class="hd-nav__link" aria-current="page"><span>API de l&#39;assistant</span></a></li><li><a href="/reference/mcp/" class="hd-nav__link"><span>Serveur MCP</span></a></li></ul></li></ul><div class="hd-mobile-only hd-sidebar-footer"><nav class="hd-sidebar-links" aria-label="Liens"><a href="https://hgdc.ch">HGDC</a><a class="hd-pill hd-pill--primary" href="https://docs.hgdc.ch">Console</a></nav><div class="hd-theme-choice" role="radiogroup" aria-label="Thème"><button type="button" role="radio" aria-checked="false" data-hd-theme-choice="auto" aria-label="Système" title="Système"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M4 5h16a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1Zm4 15h8m-4-3v3"></path></svg></button><button type="button" role="radio" aria-checked="false" data-hd-theme-choice="light" aria-label="Clair" title="Clair"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 16a4 4 0 1 0 0-8 4 4 0 0 0 0 8ZM12 2.5v2M12 19.5v2M4.6 4.6 6 6M18 18l1.4 1.4M2.5 12h2M19.5 12h2M4.6 19.4 6 18M18 6l1.4-1.4"></path></svg></button><button type="button" role="radio" aria-checked="false" data-hd-theme-choice="dark" aria-label="Sombre" title="Sombre"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M20 14.5A8 8 0 1 1 9.5 4a6.5 6.5 0 0 0 10.5 10.5Z"></path></svg></button></div></div></div></hd-sidebar-pane></nav><div class="hd-main-frame main-frame"><script type="module">var e=document.getElementById(`starlight__sidebar`),t=e?.querySelector(`sl-sidebar-state-persist`),n=`sl-sidebar-state`,r=()=>{let r=[],i=t?.dataset.hash||``;try{let e=sessionStorage.getItem(n),t=JSON.parse(e||`{}`);Array.isArray(t.open)&&t.hash===i&&(r=t.open)}catch{}return{hash:i,open:r,scroll:e?.scrollTop||0}},i=e=>{try{sessionStorage.setItem(n,JSON.stringify(e))}catch{}},a=()=>i(r()),o=(e,t)=>{let n=r();n.open[t]=e,i(n)};t?.addEventListener(`click`,e=>{if(!(e.target instanceof Element))return;let t=e.target.closest(`summary`)?.closest(`details`);if(!t)return;let n=t.querySelector(`sl-sidebar-restore`),r=parseInt(n?.dataset.index||``);isNaN(r)||o(!t.open,r)}),addEventListener(`visibilitychange`,()=>{document.visibilityState===`hidden`&&a()});</script><div class="hd-columns hd-columns--toc"><div class="hd-columns__main main-pane"><main data-pagefind-body class="astro-mgylisfi" lang="fr-CH" dir="ltr"><div class="content-panel astro-lavu2imw"><div class="sl-container astro-lavu2imw"><div class="hd-title not-content"><p class="hd-eyebrow" data-pagefind-meta="section">API</p><div class="hd-title__row"><h1 id="_top">API de l&#39;assistant</h1><div class="hd-page-actions" data-hgdc-skip data-pagefind-ignore><div class="hd-split"><button type="button" class="hd-split__main" data-hgdc-copy="/reference/api-assistant.md"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M9 9h10a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1V10a1 1 0 0 1 1-1Zm-4 6H4.5A1.5 1.5 0 0 1 3 13.5v-9A1.5 1.5 0 0 1 4.5 3h9A1.5 1.5 0 0 1 15 4.5V5"></path></svg><span data-label>Copier la page</span></button><details class="hd-menu"><summary class="hd-split__more" aria-label="Autres formats de la page"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="m6 9 6 6 6-6"></path></svg></summary><ul class="hd-menu__list"><li><button type="button" data-hgdc-copy-item><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M9 9h10a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1V10a1 1 0 0 1 1-1Zm-4 6H4.5A1.5 1.5 0 0 1 3 13.5v-9A1.5 1.5 0 0 1 4.5 3h9A1.5 1.5 0 0 1 15 4.5V5"></path></svg><span><strong>Copier la page</strong><small>En Markdown, pour un LLM</small></span></button></li><li><a href="/reference/api-assistant.md"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M4 6h16a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1Zm3 9V9l2.5 3L12 9v6m5-6v6m-2-2 2 2 2-2"></path></svg><span><strong>Voir en Markdown</strong><small>La page en texte brut</small></span></a></li><li><a data-hgdc-open="claude" href="https://claude.ai/new" target="_blank" rel="noopener"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M7 17 17 7M8 7h9v9"></path></svg><span><strong>Ouvrir dans Claude</strong><small>Poser une question sur cette page</small></span></a></li><li><a data-hgdc-open="chatgpt" href="https://chatgpt.com/" target="_blank" rel="noopener"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M7 17 17 7M8 7h9v9"></path></svg><span><strong>Ouvrir dans ChatGPT</strong><small>Poser une question sur cette page</small></span></a></li><li><a href="/llms.txt"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8Zm0 0v5h5M9 13h6m-6 4h4"></path></svg><span><strong>llms.txt</strong><small>L'index de la doc pour les agents</small></span></a></li></ul></details></div><span class="sr-only" role="status" aria-live="polite" data-hgdc-copy-status></span></div></div><p class="hd-lead">La requête que le widget envoie, la réponse et les codes d&#39;erreur.</p></div><script type="module">var e=document.querySelector(`[data-hgdc-copy-status]`),t=document.querySelector(`[data-hgdc-copy]`);async function n(){if(!t)return;let n=t.querySelector(`[data-label]`),r=t=>{n.textContent=t,e&&(e.textContent=t),setTimeout(()=>n.textContent=`Copier la page`,2e3)};try{let e=await fetch(t.dataset.hgdcCopy);if(!e.ok)throw Error(String(e.status));await navigator.clipboard.writeText(await e.text()),r(`Page copiée`)}catch{r(`Copie impossible`)}}if(t?.addEventListener(`click`,()=>void n()),document.querySelector(`[data-hgdc-copy-item]`)?.addEventListener(`click`,()=>{document.querySelector(`.hd-menu`).open=!1,n()}),t){let e=`Lis ${new URL(t.dataset.hgdcCopy,location.href).href} et réponds à mes questions sur cette page.`;for(let t of document.querySelectorAll(`[data-hgdc-open]`))t.href=`${t.dataset.hgdcOpen===`claude`?`https://claude.ai/new`:`https://chatgpt.com/`}?q=${encodeURIComponent(e)}`}for(let e of document.querySelectorAll(`.hd-menu`))document.addEventListener(`click`,t=>{e.open&&!e.contains(t.target)&&(e.open=!1)}),e.addEventListener(`keydown`,t=>{t.key===`Escape`&&e.open&&(t.stopPropagation(),e.open=!1,e.querySelector(`summary`)?.focus())});</script></div></div><div class="content-panel astro-lavu2imw"><div class="sl-container astro-lavu2imw"><div class="sl-markdown-content"><p>Le widget du site appelle une seule route. Tu peux l’appeler toi-même pour intégrer l’assistant dans ton application, depuis une page servie par une adresse déclarée dans la console.</p>
17
+ <h2 id="requête">Requête</h2>
18
+ <div class="expressive-code"><link rel="stylesheet" href="/_astro/ec.t9qpe.css"><script type="module" src="/_astro/ec.0vx5m.js"></script><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="http"><code><div class="ec-line"><div class="code"><span style="--0:#CA212D;--1:#FF7B72">POST</span><span style="--0:#1F2328;--1:#E6EDF3"> https://docs.hgdc.ch/api/v1/ask</span></div></div><div class="ec-line"><div class="code"><span style="--0:#116329;--1:#7EE787">Content-Type</span><span style="--0:#CA212D;--1:#FF7B72">:</span><span style="--0:#1F2328;--1:#E6EDF3"> </span><span style="--0:#0A3069;--1:#A5D6FF">application/json</span></div></div><div class="ec-line"><div class="code"><span style="--0:#116329;--1:#7EE787">Origin</span><span style="--0:#CA212D;--1:#FF7B72">:</span><span style="--0:#1F2328;--1:#E6EDF3"> </span><span style="--0:#0A3069;--1:#A5D6FF">https://docs.acme.ch</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copier dans le presse-papiers" data-copied="Copié !" data-code="POST https://docs.hgdc.ch/api/v1/askContent-Type: application/jsonOrigin: https://docs.acme.ch"><div></div></button></div></figure></div>
19
+ <div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="json"><code><div class="ec-line"><div class="code"><span style="--0:#1F2328;--1:#E6EDF3">{</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#116329;--1:#7EE787">"project"</span><span style="--0:#1F2328;--1:#E6EDF3">: </span><span style="--0:#0A3069;--1:#A5D6FF">"k57a8m2x9q4n1b3c5d7e9f0g2h4j6k8m"</span><span style="--0:#1F2328;--1:#E6EDF3">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#116329;--1:#7EE787">"question"</span><span style="--0:#1F2328;--1:#E6EDF3">: </span><span style="--0:#0A3069;--1:#A5D6FF">"Comment publier ma doc ?"</span><span style="--0:#1F2328;--1:#E6EDF3">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#116329;--1:#7EE787">"page"</span><span style="--0:#1F2328;--1:#E6EDF3">: </span><span style="--0:#0A3069;--1:#A5D6FF">"/guides/publier/"</span><span style="--0:#1F2328;--1:#E6EDF3">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#116329;--1:#7EE787">"previous"</span><span style="--0:#1F2328;--1:#E6EDF3">: [</span><span style="--0:#0A3069;--1:#A5D6FF">"j97f2k8m1q4n6b3c5d7e9f0g2h4j6k8m"</span><span style="--0:#1F2328;--1:#E6EDF3">]</span></div></div><div class="ec-line"><div class="code"><span style="--0:#1F2328;--1:#E6EDF3">}</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copier dans le presse-papiers" data-copied="Copié !" data-code="{ &#x22;project&#x22;: &#x22;k57a8m2x9q4n1b3c5d7e9f0g2h4j6k8m&#x22;, &#x22;question&#x22;: &#x22;Comment publier ma doc ?&#x22;, &#x22;page&#x22;: &#x22;/guides/publier/&#x22;, &#x22;previous&#x22;: [&#x22;j97f2k8m1q4n6b3c5d7e9f0g2h4j6k8m&#x22;]}"><div></div></button></div></figure></div>
20
+
21
+
22
+
23
+
24
+
25
+
26
+
27
+
28
+
29
+
30
+
31
+
32
+
33
+
34
+
35
+
36
+
37
+
38
+
39
+
40
+
41
+
42
+
43
+
44
+
45
+ <div class="hd-table"><table><thead><tr><th>Champ</th><th>Rôle</th></tr></thead><tbody><tr><td><code>project</code></td><td>Identifiant du projet.</td></tr><tr><td><code>question</code></td><td>2 à 1 000 caractères.</td></tr><tr><td><code>page</code></td><td>Chemin de la page ouverte. Ses passages sont légèrement favorisés.</td></tr><tr><td><code>previous</code></td><td>Les <code>id</code> des réponses précédentes de la conversation, 3 au plus. L’assistant relit lui-même ce qu’il a répondu, dans les deux dernières heures.</td></tr></tbody></table></div>
46
+ <p>L’en-tête <code>Origin</code> doit être l’adresse du site ou un des domaines déclarés dans <strong>Réglages › Domaines</strong>. Chaque visiteur a droit à 6 questions par minute et 40 par jour.</p>
47
+ <h2 id="réponse">Réponse</h2>
48
+ <div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="json"><code><div class="ec-line"><div class="code"><span style="--0:#1F2328;--1:#E6EDF3">{</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#116329;--1:#7EE787">"id"</span><span style="--0:#1F2328;--1:#E6EDF3">: </span><span style="--0:#0A3069;--1:#A5D6FF">"j97f…"</span><span style="--0:#1F2328;--1:#E6EDF3">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#116329;--1:#7EE787">"status"</span><span style="--0:#1F2328;--1:#E6EDF3">: </span><span style="--0:#0A3069;--1:#A5D6FF">"answered"</span><span style="--0:#1F2328;--1:#E6EDF3">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#116329;--1:#7EE787">"answer"</span><span style="--0:#1F2328;--1:#E6EDF3">: </span><span style="--0:#0A3069;--1:#A5D6FF">"Importe le dépôt dans Host[^1], puis synchronise le projet dans la console[^2]."</span><span style="--0:#1F2328;--1:#E6EDF3">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#116329;--1:#7EE787">"sources"</span><span style="--0:#1F2328;--1:#E6EDF3">: [</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#1F2328;--1:#E6EDF3"> </span></span><span style="--0:#1F2328;--1:#E6EDF3">{ </span><span style="--0:#116329;--1:#7EE787">"n"</span><span style="--0:#1F2328;--1:#E6EDF3">: </span><span style="--0:#0550AE;--1:#79C0FF">1</span><span style="--0:#1F2328;--1:#E6EDF3">, </span><span style="--0:#116329;--1:#7EE787">"title"</span><span style="--0:#1F2328;--1:#E6EDF3">: </span><span style="--0:#0A3069;--1:#A5D6FF">"Publier avec Host"</span><span style="--0:#1F2328;--1:#E6EDF3">, </span><span style="--0:#116329;--1:#7EE787">"section"</span><span style="--0:#1F2328;--1:#E6EDF3">: </span><span style="--0:#0A3069;--1:#A5D6FF">"Avec Host"</span><span style="--0:#1F2328;--1:#E6EDF3">, </span><span style="--0:#116329;--1:#7EE787">"url"</span><span style="--0:#1F2328;--1:#E6EDF3">: </span><span style="--0:#0A3069;--1:#A5D6FF">"https://docs.acme.ch/guides/publier/#avec-host"</span><span style="--0:#1F2328;--1:#E6EDF3"> },</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#1F2328;--1:#E6EDF3"> </span></span><span style="--0:#1F2328;--1:#E6EDF3">{ </span><span style="--0:#116329;--1:#7EE787">"n"</span><span style="--0:#1F2328;--1:#E6EDF3">: </span><span style="--0:#0550AE;--1:#79C0FF">2</span><span style="--0:#1F2328;--1:#E6EDF3">, </span><span style="--0:#116329;--1:#7EE787">"title"</span><span style="--0:#1F2328;--1:#E6EDF3">: </span><span style="--0:#0A3069;--1:#A5D6FF">"Publier avec Host"</span><span style="--0:#1F2328;--1:#E6EDF3">, </span><span style="--0:#116329;--1:#7EE787">"section"</span><span style="--0:#1F2328;--1:#E6EDF3">: </span><span style="--0:#0A3069;--1:#A5D6FF">"Relier la console"</span><span style="--0:#1F2328;--1:#E6EDF3">, </span><span style="--0:#116329;--1:#7EE787">"url"</span><span style="--0:#1F2328;--1:#E6EDF3">: </span><span style="--0:#0A3069;--1:#A5D6FF">"https://docs.acme.ch/guides/publier/#relier-la-console"</span><span style="--0:#1F2328;--1:#E6EDF3"> }</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#1F2328;--1:#E6EDF3"> </span></span><span style="--0:#1F2328;--1:#E6EDF3">]</span></div></div><div class="ec-line"><div class="code"><span style="--0:#1F2328;--1:#E6EDF3">}</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copier dans le presse-papiers" data-copied="Copié !" data-code="{ &#x22;id&#x22;: &#x22;j97f…&#x22;, &#x22;status&#x22;: &#x22;answered&#x22;, &#x22;answer&#x22;: &#x22;Importe le dépôt dans Host[^1], puis synchronise le projet dans la console[^2].&#x22;, &#x22;sources&#x22;: [ { &#x22;n&#x22;: 1, &#x22;title&#x22;: &#x22;Publier avec Host&#x22;, &#x22;section&#x22;: &#x22;Avec Host&#x22;, &#x22;url&#x22;: &#x22;https://docs.acme.ch/guides/publier/#avec-host&#x22; }, { &#x22;n&#x22;: 2, &#x22;title&#x22;: &#x22;Publier avec Host&#x22;, &#x22;section&#x22;: &#x22;Relier la console&#x22;, &#x22;url&#x22;: &#x22;https://docs.acme.ch/guides/publier/#relier-la-console&#x22; } ]}"><div></div></button></div></figure></div>
49
+ <p><code>answer</code> est du Markdown simple ; <code>[^n]</code> renvoie à la source <code>n</code>. <code>status</code> vaut <code>no_answer</code> quand la doc ne répond pas : <code>sources</code> est alors vide.</p>
50
+ <h2 id="erreurs">Erreurs</h2>
51
+
52
+
53
+
54
+
55
+
56
+
57
+
58
+
59
+
60
+
61
+
62
+
63
+
64
+
65
+
66
+
67
+
68
+
69
+
70
+
71
+
72
+
73
+
74
+
75
+
76
+
77
+
78
+
79
+
80
+
81
+
82
+
83
+
84
+
85
+
86
+
87
+
88
+
89
+
90
+
91
+
92
+
93
+
94
+
95
+
96
+
97
+
98
+
99
+
100
+
101
+ <div class="hd-table"><table><thead><tr><th>Code HTTP</th><th><code>error.code</code></th><th>Quand</th></tr></thead><tbody><tr><td>400</td><td><code>invalid_request</code></td><td>Corps illisible ou question trop courte.</td></tr><tr><td>403</td><td><code>origin_not_allowed</code></td><td>La page n’est pas servie par une adresse du projet.</td></tr><tr><td>403</td><td><code>assistant_disabled</code></td><td>L’assistant est coupé dans la console.</td></tr><tr><td>404</td><td><code>project_not_found</code></td><td>Identifiant inconnu.</td></tr><tr><td>409</td><td><code>not_indexed</code></td><td>Le site n’a pas encore été synchronisé.</td></tr><tr><td>429</td><td><code>rate_limited</code></td><td>Trop de questions en une minute.</td></tr><tr><td>429</td><td><code>quota_exceeded</code></td><td>Le quota mensuel de l’organisation est atteint.</td></tr><tr><td>503</td><td><code>unavailable</code></td><td>Le modèle ne répond pas. Réessayer plus tard.</td></tr></tbody></table></div>
102
+ <p>Chaque erreur porte aussi <code>error.message</code>, une phrase en français à montrer telle quelle.</p></div><hgdc-feedback class="hgdc-feedback not-content" data-endpoint="https://docs.hgdc.ch/api/v1/feedback" data-project="jn7dj6vzkgs7n2d16kqjtb99yd8gbdw0" data-pagefind-ignore="true"><div data-step="ask"><p class="hgdc-feedback__question">Cette page t'a aidé ?</p><div class="hgdc-feedback__choices"><button type="button" data-helpful="true"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M7 10v11M15 5.9 14 10h5.8a2 2 0 0 1 1.9 2.5l-2.3 7A2 2 0 0 1 17.5 21H4a1 1 0 0 1-1-1v-9a1 1 0 0 1 1-1h2.8a2 2 0 0 0 1.8-1.1L12 2a3.1 3.1 0 0 1 3 3.9Z"></path></svg>Oui</button><button type="button" data-helpful="false"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M17 14V3M9 18.1 10 14H4.2a2 2 0 0 1-1.9-2.5l2.3-7A2 2 0 0 1 6.5 3H20a1 1 0 0 1 1 1v9a1 1 0 0 1-1 1h-2.8a2 2 0 0 0-1.8 1.1L12 22a3.1 3.1 0 0 1-3-3.9Z"></path></svg>Non</button></div></div><form data-step="comment" hidden><label for="hgdc-feedback-comment">Qu'est-ce qui manquait ou pourrait être plus clair ? (facultatif)</label><textarea id="hgdc-feedback-comment" name="comment" rows="3" maxlength="1000"></textarea><div class="hgdc-feedback__choices"><button type="submit">Envoyer</button><button type="button" data-skip>Passer</button></div></form><p data-step="done" class="hgdc-feedback__done" role="status" hidden>Merci, c'est noté.</p></hgdc-feedback><nav class="hd-pagination not-content" aria-label="Pages voisines" data-pagefind-ignore><a class="hd-pagination__link" href="/reference/cli/" rel="prev"><span class="hd-pagination__hint"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="m15 6-6 6 6 6"></path></svg>Précédent</span><span class="hd-pagination__title">Commande hgdc-docs</span></a><a class="hd-pagination__link hd-pagination__link--next" href="/reference/mcp/" rel="next"><span class="hd-pagination__hint">Suivant<svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="m9 6 6 6-6 6"></path></svg></span><span class="hd-pagination__title">Serveur MCP</span></a></nav><script type="module" src="/_astro/Footer.astro_astro_type_script_index_0_lang.DzCnn3OT.js"></script></div></div></main><form class="hd-askbar" data-askbar data-pagefind-ignore><label class="sr-only" for="hd-askbar-input">Pose une question à l'assistant</label><input id="hd-askbar-input" data-askbar-input type="text" maxlength="1000" placeholder="Pose une question…" autocomplete="off"><kbd class="hd-kbd" data-shortcut aria-hidden="true">Ctrl I</kbd><button type="submit" class="hd-send" aria-label="Envoyer la question"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 19V5m-6 6 6-6 6 6"></path></svg></button></form></div><aside class="hd-columns__toc" aria-label="Sur cette page"><div class="hd-toc-scroll"><starlight-toc data-min-h="2" data-max-h="3"><nav aria-labelledby="starlight__on-this-page"><h2 id="starlight__on-this-page">Sur cette page</h2><ul class="astro-vqenwucp" style="--depth: 0;"><li style="--depth: 0;" class="astro-vqenwucp"><a href="#_top" style="--depth: 0;" class="astro-vqenwucp"><span style="--depth: 0;" class="astro-vqenwucp">Vue d’ensemble</span></a></li><li style="--depth: 0;" class="astro-vqenwucp"><a href="#requête" style="--depth: 0;" class="astro-vqenwucp"><span style="--depth: 0;" class="astro-vqenwucp">Requête</span></a></li><li style="--depth: 0;" class="astro-vqenwucp"><a href="#réponse" style="--depth: 0;" class="astro-vqenwucp"><span style="--depth: 0;" class="astro-vqenwucp">Réponse</span></a></li><li style="--depth: 0;" class="astro-vqenwucp"><a href="#erreurs" style="--depth: 0;" class="astro-vqenwucp"><span style="--depth: 0;" class="astro-vqenwucp">Erreurs</span></a></li></ul></nav></starlight-toc><script type="module">var e=`_top`,t=class extends HTMLElement{_current=this.querySelector(`a[aria-current="true"]`);minH=parseInt(this.dataset.minH||`2`,10);maxH=parseInt(this.dataset.maxH||`3`,10);tocHeadingSelector=`h1#${e},:where(${[...Array.from({length:1+this.maxH-this.minH}).map((e,t)=>`h${this.minH+t}`)].join()})[id]`;set current(e){e!==this._current&&(this._current&&this._current.removeAttribute(`aria-current`),e.setAttribute(`aria-current`,`true`),this._current=e)}onIdle=e=>(window.requestIdleCallback||(e=>setTimeout(e,1)))(e);constructor(){super(),this.onIdle(()=>this.init())}init=()=>{let t=[...this.querySelectorAll(`a`)],n=e=>e.matches(this.tocHeadingSelector),r=t=>{for(;t;){if(t.matches(`.sl-markdown-content, main > *`))return document.getElementById(e);if(n(t))return t;let r=t.querySelector(this.tocHeadingSelector);if(r)return r;let i=t.previousElementSibling;for(;i?.lastElementChild;)i=i.lastElementChild;t=i??t.parentElement}return null},i=e=>{for(let{isIntersecting:n,target:i}of e){if(!n)continue;let e=r(i);if(!e)continue;let a=t.find(t=>t.hash===`#`+encodeURIComponent(e.id));if(a){this.current=a;break}}},a=document.querySelectorAll([`main :where(${this.tocHeadingSelector})`,`main :where(${this.tocHeadingSelector}, .sl-heading-wrapper) ~ *:not(:has(${this.tocHeadingSelector}))`,`main .sl-markdown-content > *:not(:has(${this.tocHeadingSelector}))`,`main > *:not(:has(${this.tocHeadingSelector}))`].join()),o,s=()=>{o||(o=new IntersectionObserver(i,{rootMargin:this.getRootMargin()}),a.forEach(e=>o.observe(e)))};s();let c;window.addEventListener(`resize`,()=>{o&&=(o.disconnect(),void 0),clearTimeout(c),c=setTimeout(()=>this.onIdle(s),200)})};getRootMargin(){let e=(document.querySelector(`header`)?.getBoundingClientRect().height||0)+(this.querySelector(`summary`)?.getBoundingClientRect().height||0)+32;return`-${e}px 0% ${e+53-document.documentElement.clientHeight}px`}};customElements.define(`starlight-toc`,t);</script></div></aside></div><footer class="hd-site-footer" data-pagefind-ignore><div class="hd-site-footer__row"><a class="hd-brand hd-brand--footer" href="/"><span class="hd-brand__mark"><img class="hd-brand__light" src="/images/logo-clair.svg" alt="" width="20" height="20" loading="lazy"><img class="hd-brand__dark" src="/images/logo-sombre.svg" alt="" width="20" height="20" loading="lazy"></span><span class="hd-brand__name">Docs</span></a></div><div class="hd-site-footer__row hd-site-footer__row--meta"><p>Écrire une documentation en MDX, la publier avec Host et y brancher un assistant IA qui cite ses sources.</p><div class="hd-theme-choice" role="radiogroup" aria-label="Thème"><button type="button" role="radio" aria-checked="false" data-hd-theme-choice="auto" aria-label="Système" title="Système"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M4 5h16a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1Zm4 15h8m-4-3v3"></path></svg></button><button type="button" role="radio" aria-checked="false" data-hd-theme-choice="light" aria-label="Clair" title="Clair"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 16a4 4 0 1 0 0-8 4 4 0 0 0 0 8ZM12 2.5v2M12 19.5v2M4.6 4.6 6 6M18 18l1.4 1.4M2.5 12h2M19.5 12h2M4.6 19.4 6 18M18 6l1.4-1.4"></path></svg></button><button type="button" role="radio" aria-checked="false" data-hd-theme-choice="dark" aria-label="Sombre" title="Sombre"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M20 14.5A8 8 0 1 1 9.5 4a6.5 6.5 0 0 0 10.5 10.5Z"></path></svg></button></div></div></footer></div><hgdc-assistant data-endpoint="https://docs.hgdc.ch/api/v1/ask" data-project="jn7dj6vzkgs7n2d16kqjtb99yd8gbdw0" data-name="Docs"><section class="hgdc-panel" role="dialog" aria-modal="false" aria-labelledby="hgdc-assistant-title" data-panel inert><div class="hgdc-panel__grip" aria-hidden="true"></div><header class="hgdc-panel__header"><h2 id="hgdc-assistant-title"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3.5 13.6 8a3 3 0 0 0 1.9 1.9L20 11.5l-4.5 1.6a3 3 0 0 0-1.9 1.9L12 19.5 10.4 15a3 3 0 0 0-1.9-1.9L4 11.5 8.5 9.9A3 3 0 0 0 10.4 8ZM19 3v3M20.5 4.5h-3"></path></svg>Assistant</h2><div class="hgdc-panel__tools"><button type="button" class="hd-icon-button" data-reset aria-label="Nouvelle conversation" title="Nouvelle conversation" hidden><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M4 12a8 8 0 1 0 2.3-5.7M4 4v4h4"></path></svg></button><button type="button" class="hd-icon-button" data-close aria-label="Fermer l'assistant" title="Fermer (Échap)"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M6 6l12 12M18 6 6 18"></path></svg></button></div></header><div class="hgdc-panel__body" data-log aria-live="polite"><div class="hgdc-empty" data-empty><p class="hgdc-empty__title">Pose ta question sur Docs.</p><p>Je cherche dans les pages de cette documentation et je cite mes sources. Si la réponse n'y est pas, je te le dis.</p></div></div><form class="hgdc-panel__form" data-form><label class="sr-only" for="hgdc-question">Ta question</label><textarea id="hgdc-question" data-input rows="1" maxlength="1000" placeholder="Pose une question…" required></textarea><button type="submit" class="hd-send" data-send aria-label="Envoyer la question"><svg class="hd-icon" aria-hidden="true" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 19V5m-6 6 6-6 6 6"></path></svg></button></form><p class="hgdc-panel__note">Réponses générées par IA (Claude, d'Anthropic), à vérifier. Les questions sont conservées 90 jours pour améliorer cette documentation.</p></section></hgdc-assistant><script type="module" src="/_astro/Assistant.astro_astro_type_script_index_0_lang.C1pz7yK1.js"></script></div><script type="module">var e=class extends HTMLElement{connectedCallback(){let e=matchMedia(`(min-width: 50em)`),t=()=>{e.matches&&this.matches(`:popover-open`)&&this.hidePopover(),this.popover=e.matches?null:`auto`};t(),e.addEventListener(`change`,t),this.addEventListener(`toggle`,e=>{let t=e.newState===`open`;for(let e of document.querySelectorAll(`.hd-main-frame, .hd-askbar`))e.toggleAttribute(`inert`,t);document.documentElement.toggleAttribute(`data-hd-menu`,t)}),this.addEventListener(`click`,e=>{e.target.closest(`a`)&&this.matches(`:popover-open`)&&this.hidePopover()})}};customElements.define(`hd-sidebar-pane`,e);</script></body></html>
@@ -0,0 +1,60 @@
1
+ # API de l'assistant
2
+
3
+ Le widget du site appelle une seule route. Tu peux l’appeler toi-même pour intégrer l’assistant dans ton application, depuis une page servie par une adresse déclarée dans la console.
4
+
5
+ ## Requête
6
+
7
+ ```http
8
+ POST https://docs.hgdc.ch/api/v1/ask
9
+ Content-Type: application/json
10
+ Origin: https://docs.acme.ch
11
+ ```
12
+
13
+ ```json
14
+ {
15
+ "project": "k57a8m2x9q4n1b3c5d7e9f0g2h4j6k8m",
16
+ "question": "Comment publier ma doc ?",
17
+ "page": "/guides/publier/",
18
+ "previous": ["j97f2k8m1q4n6b3c5d7e9f0g2h4j6k8m"]
19
+ }
20
+ ```
21
+
22
+ | Champ | Rôle |
23
+ | ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
24
+ | `project` | Identifiant du projet. |
25
+ | `question` | 2 à 1 000 caractères. |
26
+ | `page` | Chemin de la page ouverte. Ses passages sont légèrement favorisés. |
27
+ | `previous` | Les `id` des réponses précédentes de la conversation, 3 au plus. L’assistant relit lui-même ce qu’il a répondu, dans les deux dernières heures. |
28
+
29
+ L’en-tête `Origin` doit être l’adresse du site ou un des domaines déclarés dans **Réglages › Domaines**. Chaque visiteur a droit à 6 questions par minute et 40 par jour.
30
+
31
+ ## Réponse
32
+
33
+ ```json
34
+ {
35
+ "id": "j97f…",
36
+ "status": "answered",
37
+ "answer": "Importe le dépôt dans Host[^1], puis synchronise le projet dans la console[^2].",
38
+ "sources": [
39
+ { "n": 1, "title": "Publier avec Host", "section": "Avec Host", "url": "https://docs.acme.ch/guides/publier/#avec-host" },
40
+ { "n": 2, "title": "Publier avec Host", "section": "Relier la console", "url": "https://docs.acme.ch/guides/publier/#relier-la-console" }
41
+ ]
42
+ }
43
+ ```
44
+
45
+ `answer` est du Markdown simple ; `[^n]` renvoie à la source `n`. `status` vaut `no_answer` quand la doc ne répond pas : `sources` est alors vide.
46
+
47
+ ## Erreurs
48
+
49
+ | Code HTTP | `error.code` | Quand |
50
+ | --------- | -------------------- | --------------------------------------------------- |
51
+ | 400 | `invalid_request` | Corps illisible ou question trop courte. |
52
+ | 403 | `origin_not_allowed` | La page n’est pas servie par une adresse du projet. |
53
+ | 403 | `assistant_disabled` | L’assistant est coupé dans la console. |
54
+ | 404 | `project_not_found` | Identifiant inconnu. |
55
+ | 409 | `not_indexed` | Le site n’a pas encore été synchronisé. |
56
+ | 429 | `rate_limited` | Trop de questions en une minute. |
57
+ | 429 | `quota_exceeded` | Le quota mensuel de l’organisation est atteint. |
58
+ | 503 | `unavailable` | Le modèle ne répond pas. Réessayer plus tard. |
59
+
60
+ Chaque erreur porte aussi `error.message`, une phrase en français à montrer telle quelle.