Aller au contenu principal

enterprise_ai.navin_library

Source : sdks/python/src/enterprise_ai/navin_library/__init__.py. Retour à l'index de la référence du SDK Python.

remarque

Cette page est générée par tools/docs/gen_sdk_reference.py depuis les sources du SDK et les dossiers de textes OpenAPI. Ne la modifiez pas à la main : changez la source et régénérez.

Classe NavinLibraryClient​

Bibliothèque Navin. La bibliothèque Navin est le catalogue embarqué de skills, plugins, commandes, agents, presets MCP et canaux prêts à l'emploi. Un projet active ce dont il a besoin, installe des serveurs MCP et des canaux à partir de presets et garde ses propres règles, les instructions durables que reçoit chaque run du projet.

Resource

activate(project_id: str, kind: str, name: str) -> Any

Activer un élément de la bibliothèque. Active un skill, un plugin (avec ses skills, commandes et agents), une commande ou un agent pour le projet (201). Un skill est enregistré dans le Skill Registry, vérifié par son empreinte de bibliothèque ; un nom de skill déjà pris par un skill hors bibliothèque répond 409 navin_skill_name_taken. Demande tenant_admin, developer ou application_owner et la relation ReBAC editor. 422 navin_library_kind_not_activable ; 404 navin_library_item_not_found. Audité sous navin_library.activate.

Route : /v1/projects/{project_id}/navin-library/activations (POST).

NomTypeDéfautRequisDescription
project_idstrouiIdentifiant (UUID) ou slug du projet.
kindstrouiskill, plugin, command ou agent.
namestrouiNom de l'élément dans la bibliothèque (1 à 128 caractères).

Retour : Any. Réponse JSON décodée de l'opération « Activer un élément de la bibliothèque ».

Erreurs levées : les erreurs typées du transport (Erreurs).

deactivate(project_id: str, activation_id: str) -> Any

Désactiver un élément de la bibliothèque. Retire une activation du projet ; un plugin emporte les skills, commandes et agents qu'il avait apportés. Demande tenant_admin, developer ou application_owner et la relation ReBAC editor. 404 navin_library_activation_not_found. Audité sous navin_library.deactivate.

Route : /v1/projects/{project_id}/navin-library/activations/{activation_id} (DELETE).

NomTypeDéfautRequisDescription
project_idstrouiIdentifiant (UUID) ou slug du projet.
activation_idstrouiIdentifiant (UUID) de l'activation.

Retour : Any. Réponse JSON décodée de l'opération « Désactiver un élément de la bibliothèque ».

Erreurs levées : les erreurs typées du transport (Erreurs).

delete_rule(project_id: str, name: str) -> Any

Supprimer une règle de projet. Supprime la règle ; les runs du projet ne la reçoivent plus. Demande tenant_admin, developer ou application_owner et la relation ReBAC editor. 404 rule_not_found. Audité sous project.rule.delete.

Route : /v1/projects/{project_id}/rules/{name} (DELETE).

NomTypeDéfautRequisDescription
project_idstrouiIdentifiant (UUID) ou slug du projet.
namestrouiNom de la règle.

Retour : Any. Réponse JSON décodée de l'opération « Supprimer une règle de projet ».

Erreurs levées : les erreurs typées du transport (Erreurs).

import_rules(project_id: str, files: list[dict[str, str]] | str | Path) -> Any

Importer les fichiers de règles d'un dépôt. Importe les fichiers de règles d'un dépôt (.navin/rules, .cursor/rules/*.mdc avec leur frontmatter, .cursorrules, .clinerules, .windsurfrules, .github/copilot-instructions.md) ; chaque fichier reconnu crée ou remplace une règle. Les autres fichiers sont signalés dans skipped avec une raison (not_a_rule_file, empty, too_large). 200 fichiers au plus (400 invalid_request). Demande tenant_admin, developer ou application_owner et la relation ReBAC editor.

Route : /v1/projects/{project_id}/rules/import (POST).

NomTypeDéfautRequisDescription
project_idstrouiIdentifiant (UUID) ou slug du projet.
fileslist[dict[str, str]] | str | PathouiFichiers à importer (1 à 200).

Retour : Any. Réponse JSON décodée de l'opération « Importer les fichiers de règles d'un dépôt ».

Erreurs levées : les erreurs typées du transport (Erreurs).

install_channel(project_id: str, channel: str, settings: dict[str, Any] | None = None, secret_refs: dict[str, str] | None = None, name: str | None = None, agent_ref: str | None = None, **extra: Any) -> Any

Installer un canal depuis la bibliothèque. Crée un canal du projet à partir d'un adaptateur de canal Navin (201). Le contrat de configuration de l'adaptateur est vérifié : des champs inconnus, secrets ou en lecture seule dans settings et des champs non secrets dans secret_refs répondent 422 channel_field_invalid, un type de valeur incorrect aussi, des exigences manquantes 422 channel_field_missing ; les secrets ne sont que des références openbao:// ou env:// (422 channel_secret_ref_required). Par défaut : auth api_key, limites de 65536 octets par message et 60 par minute, DLP detect en entrée et mask en sortie. Demande tenant_admin, developer ou application_owner et la relation ReBAC editor. Audité sous navin_library.channel_install.

Route : /v1/projects/{project_id}/navin-library/channels/{name}/install (POST).

NomTypeDéfautRequisDescription
project_idstrouiIdentifiant (UUID) ou slug du projet.
channelstrouiSeulement les sessions ouvertes sur ce canal.
settingsdict[str, Any] | NoneNonenonChamps non secrets du contrat de canal, chacun vérifié selon son type (texte de 2000 caractères au plus, entier, booléen, liste, énumération).
secret_refsdict[str, str] | NoneNonenonChamps secrets du contrat sous forme de références openbao:// ou env://, par nom de champ.
namestr | NoneNonenonNom de l'adaptateur de canal Navin.
agent_refstr | NoneNonenonAgent qui répond sur le canal, sous la forme <type>:<nom>, par exemple agent:support.
**extraAnynonChamps supplémentaires fusionnés dans le corps de la requête.

Retour : Any. Réponse JSON décodée de l'opération « Installer un canal depuis la bibliothèque ».

Erreurs levées : les erreurs typées du transport (Erreurs).

install_mcp_preset(project_id: str, preset: str, url: str | None = None, values: dict[str, Any] | None = None, credential_refs: dict[str, str] | None = None, name: str | None = None, transport: str | None = None, allowed_tools: list[str] | None = None) -> Any

Installer un serveur MCP depuis un preset. Enregistre un serveur MCP du projet dans la passerelle MCP à partir d'un preset Navin (201), en HTTP streamable ou SSE. Un preset stdio s'exécute là où tourne sa commande (la page MCP du Navin Manager) : donnez son point d'accès HTTP dans url ; ses champs d'environnement et d'arguments sont renvoyés dans bridge_fields. Erreurs : 409 mcp_preset_not_installable, 409 mcp_preset_needs_endpoint, 422 mcp_preset_field_unknown, 422 mcp_preset_field_missing, 422 mcp_preset_secret_ref_required (un champ secret doit être une référence openbao:// ou env://), 422 mcp_preset_unsupported. Demande tenant_admin, developer ou application_owner et la relation ReBAC editor. Audité sous navin_library.mcp_install.

Route : /v1/projects/{project_id}/navin-library/mcp-presets/{name}/install (POST).

NomTypeDéfautRequisDescription
project_idstrouiIdentifiant (UUID) ou slug du projet.
presetstrouiNom du préréglage MCP de la bibliothèque Navin à installer.
urlstr | NoneNonenonPoint d'accès HTTP (8 à 2000 caractères) ; requis pour un preset stdio exécuté par le Navin Manager. Par défaut : l'URL du preset pour un preset HTTP.
valuesdict[str, Any] | NoneNonenonChamps non secrets du preset (texte, entier ou booléen), par nom de champ.
credential_refsdict[str, str] | NoneNonenonChamps secrets du preset sous forme de références openbao:// ou env://, par nom de champ.
namestr | NoneNonenonNom du preset MCP.
transportstr | NoneNonenonstreamable_http ou sse. Par défaut : le transport du preset.
allowed_toolslist[str] | NoneNonenonOutils du serveur qui peuvent être appelés. Omis : tous les outils.

Retour : Any. Réponse JSON décodée de l'opération « Installer un serveur MCP depuis un preset ».

Erreurs levées : les erreurs typées du transport (Erreurs).

item(kind: str, name: str) -> Any

Lire un élément de la bibliothèque. Un élément avec son contenu (SKILL.md et fichiers d'un skill, plugin.json et README d'un plugin, Markdown d'une commande ou d'un agent, preset MCP ou contrat de canal complet). 404 navin_library_item_not_found.

Route : /v1/navin-library/{kind}/{name} (GET).

NomTypeDéfautRequisDescription
kindstrouiType d'élément : skills, plugins, commands, agents, mcp-presets ou channels.
namestrouiNom de l'élément.

Retour : Any. Réponse JSON décodée de l'opération « Lire un élément de la bibliothèque ».

Erreurs levées : les erreurs typées du transport (Erreurs).

items(kind: str, q: str | None = None, category: str | None = None) -> Any

Lister les éléments d'un type. Éléments d'un type : skills, plugins, commands, agents, mcp-presets ou channels (q cherche dans le nom et la description, category filtre les skills, plugins et presets MCP). Un type inconnu répond 404 navin_library_kind_unknown.

Route : /v1/navin-library/{kind} (GET).

NomTypeDéfautRequisDescription
kindstrouiType d'élément : skills, plugins, commands, agents, mcp-presets ou channels.
qstr | NoneNonenonTexte cherché dans le nom et la description.
categorystr | NoneNonenonSeulement cette catégorie (skills, plugins et presets MCP).

Retour : Any. Réponse JSON décodée de l'opération « Lister les éléments d'un type ».

Erreurs levées : les erreurs typées du transport (Erreurs).

project(project_id: str) -> Any

Voir ce qu'un projet utilise de la bibliothèque. Version de la bibliothèque, activations du projet avec le nombre par type, et serveurs MCP et canaux du projet (avec le preset dont ils viennent). Demande la relation ReBAC viewer sur le projet.

Route : /v1/projects/{project_id}/navin-library (GET).

NomTypeDéfautRequisDescription
project_idstrouiIdentifiant (UUID) ou slug du projet.

Retour : Any. Réponse JSON décodée de l'opération « Voir ce qu'un projet utilise de la bibliothèque ».

Erreurs levées : les erreurs typées du transport (Erreurs).

put_rule(project_id: str, name: str, content: str, mode: str = 'always', description: str = '', globs: list[str] | None = None, source: str = 'navin') -> Any

Créer ou remplacer une règle de projet. Crée (201) ou remplace (200) une règle du projet. Le nom compte 1 à 64 lettres, chiffres, ., _ ou - (un suffixe .md est retiré, readme est refusé ; 422 rule_name_invalid). Un contenu vide répond 422 rule_empty, plus de 64 Kio 413 rule_too_large ; une règle conditionnelle demande des globs ou une description (422 rule_scope_required). Demande tenant_admin, developer ou application_owner et la relation ReBAC editor. Audité sous project.rule.put.

Route : /v1/projects/{project_id}/rules/{name} (PUT).

NomTypeDéfautRequisDescription
project_idstrouiIdentifiant (UUID) ou slug du projet.
namestrouiNom de la règle.
contentstrouiContenu Markdown de la règle (1 à 65536 caractères, 64 Kio au plus).
modestr'always'nonalways (par défaut, inséré dans le prompt de chaque run) ou conditional (listé, lu quand sa portée correspond).
descriptionstr''nonQuand la règle s'applique (2000 caractères au plus).
globslist[str] | NoneNonenonMotifs de fichiers concernés par la règle, par exemple src/**/*.ts (50 au plus).
sourcestr'navin'nonOrigine de la règle : navin (par défaut), cursor, cursor_legacy, cline, windsurf ou copilot.

Retour : Any. Réponse JSON décodée de l'opération « Créer ou remplacer une règle de projet ».

Erreurs levées : les erreurs typées du transport (Erreurs).

rules(project_id: str) -> Any

Lister les règles du projet. Règles du projet par mode puis par nom, chacune avec source, chemin source, description, globs, contenu, empreinte et taille en octets. Demande la relation ReBAC viewer.

Route : /v1/projects/{project_id}/rules (GET).

NomTypeDéfautRequisDescription
project_idstrouiIdentifiant (UUID) ou slug du projet.

Retour : Any. Réponse JSON décodée de l'opération « Lister les règles du projet ».

Erreurs levées : les erreurs typées du transport (Erreurs).

rules_prompt(project_id: str) -> Any

Lire la section de prompt des règles. La section de prompt que reçoit chaque run du projet : règles always insérées (chacune coupée à 8000 caractères), règles conditionnelles listées avec leur description et leurs globs. Renvoie prompt, les nombres always et conditional et l'empreinte digest du texte (vide si le projet n'a aucune règle). Demande la relation ReBAC viewer.

Route : /v1/projects/{project_id}/rules/prompt (GET).

NomTypeDéfautRequisDescription
project_idstrouiIdentifiant (UUID) ou slug du projet.

Retour : Any. Réponse JSON décodée de l'opération « Lire la section de prompt des règles ».

Erreurs levées : les erreurs typées du transport (Erreurs).

summary() -> Any

Lire le résumé de la bibliothèque. Version du paquet navin embarqué, nombre d'éléments par type et fichiers de règles lus dans un dépôt. 503 navin_library_unavailable quand le catalogue n'est pas livré.

Route : /v1/navin-library (GET).

Cet élément ne prend aucun paramètre.

Retour : Any. Réponse JSON décodée de l'opération « Lire le résumé de la bibliothèque ».

Erreurs levées : les erreurs typées du transport (Erreurs).

Fonctions​

rule_files​

rule_files(root: str | Path) -> list[dict[str, str]]

Les fichiers de règles d'un dépôt, prêts pour :meth:NavinLibraryClient.import_rules (64 Ko au plus chacun).

NomTypeDéfautRequisDescription
rootstr | PathouiDossier racine du dépôt ; lus : .navin/rules/*.md, .cursor/rules/**/*.mdc, .clinerules, .cursorrules, .windsurfrules, .github/copilot-instructions.md.

Retour : list[dict[str, str]]. Liste triée de {path, content}, path relatif à root ; les fichiers plus gros sont ignorés.