CChildHarbor
Ambiente de programação com IA

Execução de processos filhos Python com prazo

Execute texto Python confiável de até 4096 caracteres num diretório existente com prazo de 50–5000 ms.

● ● ●ChildHarbor●
Fluxos de trabalho · Execução de processos filhos Python com prazo ×
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)
✳Execução de processos filhos Python com prazo
✓ AlteraçõesRevise antes de aplicar ↗
Ilustração do ambiente
Revise antes de aplicarCompare o comportamento real com o resultado esperado. Se uma verificação falhar, investigue a causa antes de fazer outras alterações.
ModelosConfigure um endpoint compatível com OpenAI ou Anthropic com a URL base e uma chave API, quando necessária. Teste a conexão. O servidor local precisa estar em execução; ferramentas remotas podem transmitir dados separadamente.
ProjetoTeste Unicode, saídas com falha e término do filho direto, rejeitando limites inválidos sem prometer isolamento ou limpeza de descendentes.
Fluxos de trabalho

Execução de processos filhos Python com prazo

Fluxos de trabalho ↗
Fluxos de trabalho
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)
Ambiente de programação com IA

Revise um encapsulador de processos preservando seu limite de confiança

O ChildHarbor é um cliente de programação com IA para Windows para examinar código de gerenciamento de processos em uma conversa de projeto. Comece declarando qual código é confiável para execução e o que o chamador precisa observar. Peça ao modelo conectado que examine o encapsulador existente antes de sugerir alterações, para que a proposta preserve tanto seu propósito quanto seus limites.

Uma tarefa concreta é um encapsulador de subprocesso Python confiável com um diretório de trabalho existente e um tempo limite delimitado. Discuta a saída Unicode, encerramentos com falha e o que acontece quando o processo filho direto ultrapassa o tempo limite. Mantenha esses requisitos separados do isolamento de segurança: aceitar código confiável para execução não transforma o encapsulador em uma sandbox para entradas arbitrárias.

Revise a edição proposta em relação aos seus próprios casos de teste de processos. Confira a saída capturada, o status de encerramento e o caminho de tempo limite do filho direto no ambiente de desenvolvimento. Se processos descendentes forem relevantes, defina e investigue esse requisito adicional explicitamente. Um teste de tempo limite bem-sucedido em um filho não é evidência de que toda uma árvore de processos seja encerrada; preserve essa distinção na revisão.

O ChildHarbor aceita conexões a endpoints compatíveis com OpenAI ou Anthropic, com credenciais quando exigidas. Um modelo de IA sem filtros pode ser selecionado onde o endpoint o fornecer. O servidor e o modelo determinam contexto, ferramentas disponíveis e restrições; escolher um modelo não autoriza executar código não confiável nem valida o encapsulador proposto.

Perguntas antes de alterar código de inicialização de processos

O que devo dizer sobre entradas confiáveis?

Identifique quem fornece o script e por que a aplicação permite sua execução. Mantenha essa premissa explícita na tarefa. Se os scripts puderem vir de usuários não confiáveis, o problema de segurança será mais amplo do que adicionar um tempo limite ao encapsulador existente.

Um tempo limite implica que todos os descendentes sejam encerrados?

Não. Revise exatamente qual processo a implementação controla e teste esse comportamento no seu ambiente. Se a aplicação exigir o encerramento de toda a árvore de processos, torne isso um requisito explícito separado e examine a implementação específica da plataforma, em vez de deduzi-lo do tratamento do filho direto.

Por que testar saída Unicode além de encerramentos com falha?

Eles exercitam partes diferentes do contrato do encapsulador com o chamador. Inclua o texto esperado e o comportamento de encerramento para que a proposta preserve ambos. Um processo pode executar corretamente enquanto a decodificação da saída ou a comunicação de erros ainda fornece à aplicação um resultado inutilizável.

Devo executar todo script sugerido na conversa?

Revise o código e seus efeitos antes de executá-lo. A conversa no ambiente pode ajudar a explicar uma proposta, mas a decisão de confiança cabe a você. Use casos de teste apropriados do projeto e evite tratar texto gerado pelo modelo como autorização para executar operações arbitrárias.

Baixar para Windows ↗

ChildHarbor · Atualizado 2026-10-25