@hgdc/docs 0.4.1 → 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.
- package/package.json +1 -1
- package/src/integration.ts +8 -1
- package/src/overrides/ThemeToggle.astro +6 -6
- package/src/styles/theme.css +36 -5
- package/template/.astro/content-modules.mjs +15 -35
- package/template/.build/.well-known/llms.txt +34 -51
- package/template/.build/404.html +4 -4
- package/template/.build/_astro/Search.astro_astro_type_script_index_0_lang.VKDD8r2I.js +1 -0
- package/template/.build/_astro/common.BoKrWC_6.css +3 -0
- package/template/.build/_astro/logo-clair.BqNh6JNi.svg +1 -0
- package/template/.build/_astro/logo-sombre.BkgsFXxh.svg +1 -0
- package/template/.build/_hgdc/corpus.json +1 -1
- package/template/.build/demarrer/premiere-doc/index.html +25 -0
- package/template/.build/demarrer/premiere-doc.md +65 -0
- package/template/.build/explications/donnees/index.html +55 -0
- package/template/.build/explications/donnees.md +28 -0
- package/template/.build/explications/fonctionnement/index.html +33 -0
- package/template/.build/explications/fonctionnement.md +32 -0
- package/template/.build/guides/agents/index.html +59 -0
- package/template/.build/guides/agents.md +54 -0
- package/template/.build/guides/assistant/index.html +60 -0
- package/template/.build/guides/assistant.md +46 -0
- package/template/.build/guides/composants/index.html +38 -0
- package/template/.build/guides/composants.md +103 -0
- package/template/.build/guides/ecrire/index.html +56 -0
- package/template/.build/guides/ecrire.md +63 -0
- package/template/.build/guides/elements/index.html +1 -0
- package/template/.build/guides/navigation/index.html +30 -0
- package/template/.build/guides/navigation.md +63 -0
- package/template/.build/guides/publier/index.html +27 -0
- package/template/.build/guides/publier.md +65 -0
- package/template/.build/guides/theme/index.html +27 -0
- package/template/.build/guides/theme.md +33 -0
- package/template/.build/images/favicon.svg +1 -0
- package/template/.build/images/logo-clair.svg +1 -0
- package/template/.build/images/logo-sombre.svg +1 -0
- package/template/.build/index.html +14 -18
- package/template/.build/index.md +21 -59
- package/template/.build/llms-full.txt +515 -2331
- package/template/.build/llms.txt +34 -51
- package/template/.build/pagefind/fragment/fr-ch_1aa5706.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_21308c9.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_256be83.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_3786e05.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_3e2d7bf.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_53e6d95.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_7011e1a.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_7252d5b.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_8a5f581.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_9221692.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_a4b68e2.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_d4ef5e9.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_edaf413.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_f017e56.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_fe71cc1.pf_fragment +0 -0
- package/template/.build/pagefind/index/fr-ch_481c81a.pf_index +0 -0
- package/template/.build/pagefind/pagefind-entry.json +1 -1
- package/template/.build/pagefind/pagefind.fr-ch_46a632d8eba7e.pf_meta +0 -0
- package/template/.build/reference/api-assistant/index.html +102 -0
- package/template/.build/reference/api-assistant.md +60 -0
- package/template/.build/reference/cli/index.html +11 -153
- package/template/.build/reference/cli.md +23 -159
- package/template/.build/reference/docs-json/index.html +157 -0
- package/template/.build/reference/docs-json.md +47 -0
- package/template/.build/reference/mcp/index.html +92 -0
- package/template/.build/reference/mcp.md +49 -0
- package/template/node_modules/.vite/deps/_metadata.json +8 -8
- package/template/.astro/data-store.json +0 -1
- package/template/.astro/settings.json +0 -5
- package/template/.build/_astro/Search.astro_astro_type_script_index_0_lang.D7EcezBU.js +0 -1
- package/template/.build/_astro/common.Dx3aBIS0.css +0 -3
- package/template/.build/_astro/logo.BPu921Tp.svg +0 -1
- package/template/.build/concepts/confidentialite/index.html +0 -50
- package/template/.build/concepts/confidentialite.md +0 -38
- package/template/.build/concepts/deploiements/index.html +0 -106
- package/template/.build/concepts/deploiements.md +0 -70
- package/template/.build/concepts/organisations-et-roles/index.html +0 -83
- package/template/.build/concepts/organisations-et-roles.md +0 -39
- package/template/.build/concepts/preversion/index.html +0 -49
- package/template/.build/concepts/preversion.md +0 -52
- package/template/.build/concepts/secrets-et-coffre/index.html +0 -70
- package/template/.build/concepts/secrets-et-coffre.md +0 -54
- package/template/.build/demarrer/depuis-github/index.html +0 -34
- package/template/.build/demarrer/depuis-github.md +0 -68
- package/template/.build/demarrer/premier-site/index.html +0 -28
- package/template/.build/demarrer/premier-site.md +0 -94
- package/template/.build/guides/brancher-un-domaine/index.html +0 -91
- package/template/.build/guides/brancher-un-domaine.md +0 -81
- package/template/.build/guides/cle-d-api/index.html +0 -62
- package/template/.build/guides/cle-d-api.md +0 -78
- package/template/.build/guides/depannage/index.html +0 -64
- package/template/.build/guides/depannage.md +0 -69
- package/template/.build/guides/deployer-depuis-github/index.html +0 -45
- package/template/.build/guides/deployer-depuis-github.md +0 -70
- package/template/.build/guides/deployer-un-framework/index.html +0 -81
- package/template/.build/guides/deployer-un-framework.md +0 -74
- package/template/.build/guides/github-actions-sans-application/index.html +0 -53
- package/template/.build/guides/github-actions-sans-application.md +0 -95
- package/template/.build/guides/inviter-une-personne/index.html +0 -28
- package/template/.build/guides/inviter-une-personne.md +0 -38
- package/template/.build/guides/lire-les-logs/index.html +0 -37
- package/template/.build/guides/lire-les-logs.md +0 -48
- package/template/.build/guides/migrer-depuis-vercel/index.html +0 -25
- package/template/.build/guides/migrer-depuis-vercel.md +0 -51
- package/template/.build/guides/monorepo/index.html +0 -40
- package/template/.build/guides/monorepo.md +0 -42
- package/template/.build/guides/revenir-en-arriere/index.html +0 -39
- package/template/.build/guides/revenir-en-arriere.md +0 -50
- package/template/.build/guides/site-statique/index.html +0 -41
- package/template/.build/guides/site-statique.md +0 -59
- package/template/.build/guides/synchroniser-doppler/index.html +0 -46
- package/template/.build/guides/synchroniser-doppler.md +0 -63
- package/template/.build/guides/variables-d-environnement/index.html +0 -73
- package/template/.build/guides/variables-d-environnement.md +0 -92
- package/template/.build/images/famille/account.svg +0 -1
- package/template/.build/images/famille/analytics.svg +0 -1
- package/template/.build/images/famille/docs.svg +0 -1
- package/template/.build/images/famille/host.svg +0 -1
- package/template/.build/images/famille/mail.svg +0 -1
- package/template/.build/images/famille/portal.svg +0 -1
- package/template/.build/images/famille/status.svg +0 -1
- package/template/.build/images/logo.svg +0 -1
- package/template/.build/pagefind/fragment/fr-ch_16987e2.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_2b4c97b.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_3294a5c.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_34858c9.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_39ddba1.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_4ab1899.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_4d3a52a.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_506c187.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_5aa255a.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_6841c7d.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_6dc7a2d.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_847edff.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_8745af7.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_8aac5e6.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_916b233.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_9fd014a.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_a0808f8.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_a4e1f69.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_a80a53d.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_a9e725b.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_ac3f64c.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_af292f1.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_af3e716.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_b0689a4.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_baed996.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_c89e27a.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_cd6ca13.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_d09af09.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_d4bcea8.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_dc2a134.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_ded7ddc.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_e2528cb.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_e3cbb4e.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_e7902d9.pf_fragment +0 -0
- package/template/.build/pagefind/fragment/fr-ch_f48ca47.pf_fragment +0 -0
- package/template/.build/pagefind/index/fr-ch_8a5f905.pf_index +0 -0
- package/template/.build/pagefind/index/fr-ch_fbd9c96.pf_index +0 -0
- package/template/.build/pagefind/pagefind.fr-ch_211aacbfa7f0e.pf_meta +0 -0
- package/template/.build/reference/api/deploiements/index.html +0 -326
- package/template/.build/reference/api/deploiements.md +0 -170
- package/template/.build/reference/api/erreurs/index.html +0 -102
- package/template/.build/reference/api/erreurs.md +0 -50
- package/template/.build/reference/api/fichiers/index.html +0 -82
- package/template/.build/reference/api/fichiers.md +0 -62
- package/template/.build/reference/api/introduction/index.html +0 -126
- package/template/.build/reference/api/introduction.md +0 -84
- package/template/.build/reference/api/projets/index.html +0 -184
- package/template/.build/reference/api/projets.md +0 -102
- package/template/.build/reference/api/utilisateur/index.html +0 -96
- package/template/.build/reference/api/utilisateur.md +0 -89
- package/template/.build/reference/api/variables/index.html +0 -75
- package/template/.build/reference/api/variables.md +0 -58
- package/template/.build/reference/compatibilite/index.html +0 -196
- package/template/.build/reference/compatibilite.md +0 -64
- package/template/.build/reference/domaines/index.html +0 -171
- package/template/.build/reference/domaines.md +0 -76
- package/template/.build/reference/limites/index.html +0 -159
- package/template/.build/reference/limites.md +0 -56
- package/template/.build/reference/variables/index.html +0 -164
- package/template/.build/reference/variables.md +0 -63
- package/template/.build/reference/vercel-json/index.html +0 -65
- package/template/.build/reference/vercel-json.md +0 -51
package/template/.build/llms.txt
CHANGED
|
@@ -1,55 +1,38 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Docs
|
|
2
2
|
|
|
3
|
-
>
|
|
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
|
-
- [
|
|
10
|
-
- [
|
|
11
|
-
- [
|
|
12
|
-
|
|
13
|
-
## Guides
|
|
14
|
-
|
|
15
|
-
- [
|
|
16
|
-
- [
|
|
17
|
-
- [
|
|
18
|
-
- [
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
- [
|
|
23
|
-
- [
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
- [
|
|
28
|
-
- [
|
|
29
|
-
|
|
30
|
-
## Référence
|
|
31
|
-
|
|
32
|
-
- [
|
|
33
|
-
- [
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
- [
|
|
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.
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"1.5.2","languages":{"fr-ch":{"hash":"fr-
|
|
1
|
+
{"version":"1.5.2","languages":{"fr-ch":{"hash":"fr-ch_46a632d8eba7e","wasm":"fr-ch","page_count":15}},"include_characters":["_","‿","⁀","⁔","︳","︴","﹍","﹎","﹏","_"]}
|
|
Binary file
|
|
@@ -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'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'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'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="{ "project": "k57a8m2x9q4n1b3c5d7e9f0g2h4j6k8m", "question": "Comment publier ma doc ?", "page": "/guides/publier/", "previous": ["j97f2k8m1q4n6b3c5d7e9f0g2h4j6k8m"]}"><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="{ "id": "j97f…", "status": "answered", "answer": "Importe le dépôt dans Host[^1], puis synchronise le projet dans la console[^2].", "sources": [ { "n": 1, "title": "Publier avec Host", "section": "Avec Host", "url": "https://docs.acme.ch/guides/publier/#avec-host" }, { "n": 2, "title": "Publier avec Host", "section": "Relier la console", "url": "https://docs.acme.ch/guides/publier/#relier-la-console" } ]}"><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.
|