primocode 8.11.0 → 8.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -392,7 +392,12 @@ async function requestActViaHeadless(payload, onEvent) {
392
392
  // primocode-engine" e confiava que o headless a carregaria — quando não
393
393
  // carregava, o Claude respondia sem bloco nenhum e o turno morria. Prompt
394
394
  // maior, mas o Claude Code tem contexto de sobra, e o formato SEMPRE chega.
395
- const prompt = textoBootstrap()
395
+ // SEM o cabeçalho YAML da skill: ele começa com "---", e um prompt que
396
+ // começa com traço o parser de argumentos do claude lê como OPÇÃO —
397
+ // "error: unknown option '---'" na cara do usuário, com o protocolo
398
+ // inteiro despejado no terminal. Foi exatamente o que aconteceu.
399
+ const corpoBootstrap = textoBootstrap().replace(/^---[\s\S]*?---\s*/, '');
400
+ const prompt = corpoBootstrap
396
401
  + '\n\nIMPORTANTE: no JSON do bloco, escreva quebras de linha como \\n (escapadas), nunca linha de verdade.'
397
402
  + '\n\n# A conversa até aqui\n\n' + historico
398
403
  + '\n\nResponda com exatamente UM bloco marcado.';
@@ -400,11 +405,14 @@ async function requestActViaHeadless(payload, onEvent) {
400
405
  // a skill já proíbe o Claude Code de usar suas próprias ferramentas
401
406
  // nativas; a flag só evita que ele pare pedindo permissão pra si mesmo
402
407
  // numa chamada headless sem ninguém pra responder.
408
+ // O prompt vai por STDIN, nunca por argumento: argumento tem limite de
409
+ // tamanho (a conversa cresce) e qualquer conteúdo começando com traço
410
+ // seria lido como opção. stdin não tem nenhum dos dois problemas.
403
411
  const saida = execFileSync('claude', [
404
- '-p', prompt,
412
+ '-p',
405
413
  '--output-format', 'json',
406
414
  '--dangerously-skip-permissions',
407
- ], { encoding: 'utf-8', timeout: 180000 });
415
+ ], { encoding: 'utf-8', timeout: 180000, input: prompt, maxBuffer: 32 * 1024 * 1024 });
408
416
  const r = JSON.parse(saida);
409
417
  emitirDecisao(r.result || '', onEvent);
410
418
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "primocode",
3
- "version": "8.11.0",
3
+ "version": "8.11.1",
4
4
  "description": "PrimoCode — agente de engenharia com IA e cursor próprio. Modelos grátis. Cria arquivos, roda comandos, controla navegador e desktop: abre apps, clica em botões e ícones pelo nome, digita e usa atalhos.",
5
5
  "main": "bin/primocode.js",
6
6
  "bin": {