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.
- package/lib/claude-engine.js +11 -3
- package/package.json +1 -1
package/lib/claude-engine.js
CHANGED
|
@@ -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
|
-
|
|
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',
|
|
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.
|
|
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": {
|