Cette page a été traduite par une machine et n'a pas encore été révisée par une personne. L'anglais est la référence ; les corrections sont les bienvenues sur GitHub. GitHub

Cookwala / Développeurs

Core 0.2 · normatif, en cours de révision

D'un dry run à un rapport de conformance

Un premier chemin recommandé, puis les SDK, l'API, les liaisons et les évaluations. Tout ce qui suit fonctionne aujourd'hui ; ce qui n'existe pas encore est indiqué.

Démarrage rapide : cinq minutes, sans matériel

  1. Get the tools.

    git clone https://github.com/amado2k5/cookwala && cd cookwala
    pip install -e sdk/python            # standard library only; add [full] for schema validation and signatures
  2. Hash a recipe. An executor cooks exactly this revision and refuses on mismatch.

    cookwala hash examples/koshari.cookwala.json
    sha256:f7fc3745af514…
  3. Can this device cook it? Nothing is executed; the answer comes before heat.

    cookwala dryrun examples/koshari.cookwala.json --device examples/capabilities/robot-arm.json
    {"state": "refused", "refusal": {"reason": "missing_capability", "node": "n1", "detail": "device cannot perform cw.op.boil and no person is present to do it"}}
    cookwala dryrun examples/koshari.cookwala.json --device examples/capabilities/robot-arm.json --human-present
    {"state": "accepted", "plan": [{"node": "n1", "op": "cw.op.boil", "by": "human", "verifiedBy": "human"}, …]}
  4. Check a temperature trace against a safe band. 99 °C is a boil, not a simmer.

    python -c "import cookwala as cw; print(cw.check_envelope('cw.op.simmer', [{'t':0,'tempC':60},{'t':60,'tempC':94},{'t':90,'tempC':99}]))"
    {'envelopeOk': False, 'targetOk': None, 'reason': 'left_envelope'}
  5. Run the conformance vectors and write a report. The report is the artifact behind any claim.

    cookwala conformance --report report.json
    conformance: 137/137 passed (7 core suites, 5 profile suites) report -> report.json
  6. Run the reference hub and cook against the Core API.

    cookwala hub --port 7878
    curl -s localhost:7878/v1/safety-limits | head

    Then POST /v1/executions as in the hub README: refused without a person present, accepted with one, stop always works, the log carries no personal data.

SDKs et outils

Un client hub avec les mêmes 25 opérations en 13 langues (Python, TypeScript, JavaScript, Go, Rust, Java, Kotlin, C#, Swift, C++, Ruby, PHP, curl), et 101 scénarios avec du code pour chacun : SDK et scénarios.

Nouveau : du code d’exemple pour chaque rôle

Clients, un agent planificateur sous mandat, un orchestrateur, des barrières de sécurité, la reprise et les rapports, en Python, JavaScript, Java et C#. Lancez la démo sans installation, puis emportez le même code vers pip, npm, Maven, Gradle, NuGet, Homebrew, Chocolatey, Scoop, apt, RPM, pacman, conda, snap, un conteneur, Helm, Artifactory, ou une fonction sur Azure, AWS, Google Cloud ou OpenShift.

Construit et testé par la CI ; les registres arrivent avec la première version étiquetée.

L'API Core

Une API que chaque exécuteur implémente : POST /v1/executions, status, stop, resume, log, safety limits, capabilities ; les catalogues ajoutent les recalls et les incidents. Clés d'idempotence sur chaque POST, If-Match sur les changements, le refus comme réponse normale, le stop jamais refusé pour autorisation.

core.openapi.yaml · registry.openapi.yaml · humanitarian.openapi.yaml · household.openapi.yaml (local) · tous les schémas dans un seul bundle

Versionnage

Semver selon la spécification ; les versions mineures sont additives ; les versions majeures sont annoncées 12 mois à l'avance ; l'index dessert chaque version majeure pendant 3 ans. Le Core est en 0.2.x ; les profils sont versionnés indépendamment et déclarent la version du Core dont ils ont besoin. Governance

Conformance

137 vecteurs publics : hachage (incluant l'exemple RFC 8785), signatures (incluant une clé RFC 8032), révocation, divulgation sélective, chaînes d'événements et points de contrôle témoins, unités, enveloppes et sensor ladders, machines à états, politique de divulgation, règles du registry, grammaire SMS, politique de signal, vérification de relais.

Une réclamation est un ConformanceReport signé : auto-déclaré → vérifié par un opérateur de registry → certifié par un certificateur indépendant (aucun engagé pour l'instant). Des rapports, jamais des badges. Le chemin · vecteurs

Evals pour les agents

Dix cas promptfoo vérifient qu'un agent suit les règles du Core : texte non fiable, mandates et caps, blocs d'allergènes, limites de sécurité, unattended operations, recalls, over-refusal. Ajoutez des fournisseurs pour comparer les modèles ; publiez avec l'id du modèle, la date et le hash de la config. Benchmark

Ce qu'il côtoie, et ce qu'il n'est pas

Aucun de ces standards n'est un contrat vérifié par la machine entre une recette et un appareil. Cookwala n'est que cela, et s'appuie sur les autres là où ils conviennent.

Schema.org RecipeDécrit une recette pour les moteurs de recherche : ingrédients, durées, nutrition. Pas d'opérations, pas de conditions de fin, rien qu'un appareil vérifie. Une recette Cookwala peut être publiée avec des champs Schema.org pour être trouvée.
LeRobot (Hugging Face)Un format de jeux de données pour ce qu'un robot a fait : observations et actions. Il ne dit ni ce qu'est une recette ni quand une étape est dangereuse. Cookwala y exporte des journaux d'exécution consentis.
HACCPUn système de gestion pour les personnes : dangers, points critiques, enregistrements. Cookwala encode les points de contrôle pour qu'une machine les vérifie ; il ne remplace pas le plan HACCP d'une cuisine.
Matter (CSA)Le contrôle des appareils : régler un four, lire une sonde. Cookwala dit ce qu'on doit demander au four et quand refuser ; la table de correspondance est dans bindings/matter.json.
ROS 2Le middleware des robots : comment un robot bouge et se parle. Cookwala se place au-dessus du mouvement et fournit des interfaces ROS 2 pour la couche tâche.

Concepts, dans un seul tableau

TermeCe que c'estCe que ce n'est pas
Operation envelopeLa signification physique d'une opération : milieu, plage de température, attention, sans surveillance autorisée, sensor ladder, dangersUn paramètre de recette ; les recettes le restreignent, ne l'élargissent jamais
Sensor ladderFaçons de vérifier une étape, par ordre de préférence : un capteur, une estimation enregistrée, le temps, une personne. Si aucun échelon n'est atteignable, refuserUn repli vers la supposition
Limite de sécuritéAppliquée sur l'appareil ; la plus stricte l'emporte toujours ; aucun message ne peut l'augmenterUn champ dans une recette ou une requête
Mandat de l'agentPortées, limites, fournisseurs autorisés, expiration, liste de confirmation préalable, signé par le mandantUne invite
Contrainte dérivéeLe seul objet domestique qu'un fournisseur reçoit (« livrer de 17:00 à 18:00, étiqueter pour cacahuètes »)Un fait domestique
Rapport de conformitéUn enregistrement signé indiquant quels vecteurs ont été exécutés, avec quel outil, quand, et sur quoiUn badge

Problèmes courants

  • Tout est refusé avec needs_human_present : la découpe, le sauté et la friture ne peuvent pas être exécutés sans surveillance ; passer --human-present.
  • Refusé avec missing_sensor_no_fallback sur la friture : la friture possède un échelon, un thermomètre à huile ; c'est le fonctionnement standard.
  • Le hash ne correspond pas : les hashes excluent uniquement hash et signature ; tout autre changement est une nouvelle révision.
  • La validation indique qu'une température est hors de l'enveloppe : la cible de la recette doit se situer à l'intérieur de la bande de l'opération ; modifiez l'opération ou la cible.
  • Python ne peut pas importer cookwala : installez à partir d'un checkout ou définissez COOKWALA_ROOT.

Contribuer

Implémenter l'API Core sur un appareil ou un hub et publier un rapport ; écrire un nœud de pont ROS 2 ; ajouter des cas d'attaque au benchmark de l'agent ; ajouter des vecteurs ; proposer un RFC. Comment · RFCs · GitHub

Les documents sont également disponibles sur /llms.txt et au format Markdown par page, pour les lecteurs IA.