CChildHarbor
AI-werkruimte voor code

Python-kindprocessen met tijdslimiet

Voer vertrouwde Python-tekst tot 4096 tekens uit in een bestaande map met een limiet van 50–5000 ms.

● ● ●ChildHarbor●
Werkprocessen · Python-kindprocessen met tijdslimiet ×
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)
✳Python-kindprocessen met tijdslimiet
✓ WijzigingenControleer vóór het toepassen ↗
Illustratie van de werkruimte
Controleer vóór het toepassenVergelijk het werkelijke gedrag met het verwachte resultaat. Onderzoek een mislukte controle voordat je verdergaat met wijzigingen.
ModellenStel een OpenAI-compatibel of Anthropic-endpoint in met de basis-URL en zo nodig een API-sleutel. Test de verbinding. Een lokale modelserver moet actief zijn; externe hulpmiddelen kunnen apart gegevens versturen.
ProjectTest Unicode, foutcodes en beëindiging van het directe kind, weiger ongeldige limieten zonder isolatie of opruiming van afstammelingen te beloven.
Werkprocessen

Python-kindprocessen met tijdslimiet

Werkprocessen ↗
Werkprocessen
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)
AI-werkruimte voor code

Beoordeel een proceswrapper met behoud van zijn vertrouwensgrens

ChildHarbor is een Windows-programmeerclient met AI om procesbeheercode in een projectgesprek te onderzoeken. Vermeld eerst welke code vertrouwd is om uit te voeren en wat de aanroepende code moet kunnen waarnemen. Laat uw verbonden model de bestaande wrapper inspecteren voordat het wijzigingen voorstelt, zodat het voorstel zowel het doel als de grenzen ervan behoudt.

Een concrete taak is een wrapper voor een vertrouwd Python-kindproces met een bestaande werkmap en een begrensde time-out. Bespreek Unicode-uitvoer, foutieve afsluitingen en wat er gebeurt als het directe kindproces de tijdslimiet overschrijdt. Houd die vereisten gescheiden van beveiligingsisolatie: vertrouwde code accepteren voor uitvoering maakt de wrapper niet tot een sandbox voor willekeurige invoer.

Toets de voorgestelde wijziging aan uw eigen procestestgevallen. Controleer opgevangen uitvoer, afsluitstatus en het time-outpad voor het directe kindproces in uw ontwikkelomgeving. Als afstammende processen van belang zijn, definieer en onderzoek die aanvullende vereiste dan expliciet. Een geslaagde time-outtest voor één kindproces bewijst niet dat een volledige procesboom wordt opgeruimd; behoud dat onderscheid in de beoordeling.

ChildHarbor ondersteunt verbindingen met OpenAI-compatibele of Anthropic-eindpunten, met inloggegevens waar nodig. Een ongefilterd AI-model kan worden geselecteerd waar uw eindpunt het aanbiedt. De server en het model bepalen context, beschikbare hulpmiddelen en beperkingen; het kiezen van een model geeft geen toestemming om niet-vertrouwde code uit te voeren en valideert de voorgestelde wrapper niet.

Vragen voordat u processtartcode wijzigt

Wat moet ik over vertrouwde invoer vermelden?

Benoem wie het script aanlevert en waarom de toepassing het mag uitvoeren. Houd die aanname expliciet in de taak. Als scripts van niet-vertrouwde gebruikers kunnen komen, is het beveiligingsprobleem breder dan een time-out toevoegen aan de bestaande wrapper.

Betekent een time-out dat alle afstammende processen worden beëindigd?

Nee. Beoordeel precies welk proces de implementatie beheerst en test dat gedrag in uw omgeving. Als de toepassing opruiming van de procesboom vereist, maak dat dan een afzonderlijke expliciete vereiste en inspecteer de platformspecifieke implementatie, in plaats van dit uit de afhandeling van directe kindprocessen af te leiden.

Waarom Unicode-uitvoer én foutieve afsluitingen testen?

Ze toetsen verschillende onderdelen van het contract met de aanroepende code. Geef verwachte tekst en afsluitgedrag, zodat het voorstel beide behoudt. Een proces kan correct draaien terwijl uitvoerdecodering of foutrapportage de toepassing toch een onbruikbaar resultaat geeft.

Moet ik elk script uitvoeren dat in het gesprek wordt voorgesteld?

Beoordeel de code en de gevolgen voordat u haar uitvoert. Het werkruimtegesprek kan een voorstel helpen uitleggen, maar de vertrouwensbeslissing ligt bij u. Gebruik passende projecttestgevallen en behandel door het model gegenereerde tekst niet als toestemming om willekeurige bewerkingen uit te voeren.

Download voor Windows ↗

ChildHarbor · Bijgewerkt 2026-10-25