CChildHarbor
Espace de développement avec IA

Exécution temporisée de processus enfants Python

Exécute du Python fiable d’au plus 4096 caractères dans un dossier existant avec un délai de 50–5000 ms.

● ● ●ChildHarbor●
Méthodes de travail · Exécution temporisée de processus enfants Python ×
import math, os, subprocess, sys
from pathlib import Path

def run_trusted_python(script, seconds, folder):
    if type(script) is not str or len(script) > 4096:
        raise ValueError("child.script")
    if type(seconds) not in (int, float) or not .05 <= seconds <= 5 or not math.isfinite(seconds):
        raise ValueError("child.timeout")
    if not isinstance(folder, (str, Path)) or not Path(folder).is_dir():
        raise ValueError("child.folder")
    return subprocess.run([sys.executable, "-I", "-S", "-X", "utf8", "-c", script],
        cwd=folder, timeout=seconds, capture_output=True, text=True,
        encoding="utf-8", check=False,
        creationflags=subprocess.CREATE_NO_WINDOW if os.name == "nt" else 0)
✳Exécution temporisée de processus enfants Python
✓ ModificationsVérifiez avant d’appliquer ↗
Illustration de l’espace de travail
Vérifiez avant d’appliquerComparez le comportement observé au résultat attendu. Si une vérification échoue, cherchez la cause avant de poursuivre les modifications.
ModèlesConfigurez un endpoint compatible OpenAI ou Anthropic avec son URL de base et une clé API si nécessaire. Testez la connexion. Un serveur local doit fonctionner ; les outils distants peuvent transmettre des données séparément.
ProjetTeste Unicode, sorties en échec et arrêt de l’enfant direct, refuse les délais invalides sans promettre isolation ni nettoyage des descendants.
Méthodes de travail

Exécution temporisée de processus enfants Python

Méthodes de travail ↗
Méthodes de travail
import math, os, subprocess, sys
from pathlib import Path

def run_trusted_python(script, seconds, folder):
    if type(script) is not str or len(script) > 4096:
        raise ValueError("child.script")
    if type(seconds) not in (int, float) or not .05 <= seconds <= 5 or not math.isfinite(seconds):
        raise ValueError("child.timeout")
    if not isinstance(folder, (str, Path)) or not Path(folder).is_dir():
        raise ValueError("child.folder")
    return subprocess.run([sys.executable, "-I", "-S", "-X", "utf8", "-c", script],
        cwd=folder, timeout=seconds, capture_output=True, text=True,
        encoding="utf-8", check=False,
        creationflags=subprocess.CREATE_NO_WINDOW if os.name == "nt" else 0)
Espace de développement avec IA

Examinez l’enveloppe de processus en préservant sa frontière de confiance

ChildHarbor est un client de programmation avec IA sous Windows pour examiner le code de gestion des processus dans une conversation de projet. Commencez par préciser quel code est autorisé à s’exécuter en confiance et ce que l’appelant doit observer. Demandez au modèle connecté d’examiner l’enveloppe existante avant de suggérer des changements, afin d’en préserver la finalité et les limites.

Une tâche concrète est une enveloppe de sous-processus Python de confiance avec un répertoire de travail existant et un délai d’expiration borné. Discutez de la sortie Unicode, des sorties en échec et du comportement lorsque l’enfant direct dépasse le délai. Distinguez ces exigences de l’isolation de sécurité : accepter du code de confiance à exécuter ne fait pas de cette enveloppe un bac à sable pour des entrées arbitraires.

Examinez la modification proposée avec vos propres tests de processus. Vérifiez la sortie capturée, le code de sortie et le chemin d’expiration de l’enfant direct dans votre environnement de développement. Si les descendants comptent, définissez et étudiez explicitement cette exigence supplémentaire. Un test réussi de délai sur un enfant ne prouve pas le nettoyage de toute l’arborescence de processus ; maintenez cette distinction dans la revue.

ChildHarbor prend en charge les connexions aux points de terminaison compatibles OpenAI ou Anthropic, avec les identifiants requis. Un modèle d’IA sans filtrage peut être sélectionné si votre point de terminaison le propose. Le serveur et le modèle déterminent le contexte, les outils et les restrictions ; choisir un modèle n’autorise pas l’exécution de code non fiable et ne valide pas l’enveloppe proposée.

Questions avant de modifier le lancement des processus

Que préciser au sujet des entrées de confiance ?

Identifiez qui fournit le script et pourquoi l’application autorise son exécution. Explicitez cette hypothèse dans la tâche. Si des utilisateurs non fiables peuvent fournir des scripts, le problème de sécurité dépasse l’ajout d’un délai d’expiration à l’enveloppe existante.

Un délai d’expiration implique-t-il l’arrêt de tous les descendants ?

Non. Examinez exactement quel processus l’implémentation contrôle et testez ce comportement dans votre environnement. Si l’application exige le nettoyage de l’arborescence, faites-en une exigence explicite distincte et examinez l’implémentation propre à la plateforme, sans la déduire de la gestion de l’enfant direct.

Pourquoi tester la sortie Unicode et les sorties en échec ?

Elles exercent des parties différentes du contrat avec l’appelant. Incluez le texte et le comportement de sortie attendus pour préserver les deux. Un processus peut fonctionner correctement alors que le décodage de sortie ou le signalement d’erreur donne à l’application un résultat inutilisable.

Dois-je exécuter chaque script suggéré dans la conversation ?

Examinez le code et ses effets avant de l’exécuter. La conversation peut aider à expliquer une proposition, mais la décision de confiance vous appartient. Utilisez des tests de projet appropriés et ne traitez pas le texte généré par le modèle comme une autorisation d’exécuter des opérations arbitraires.

Télécharger pour Windows ↗

ChildHarbor · Mis à jour 2026-10-25