agim-orchestrator 1.1.2 → 1.1.3
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/CHANGELOG.md +17 -0
- package/CONTRIBUTING.md +4 -0
- package/README.en.md +3 -0
- package/README.md +3 -0
- package/docs/TROUBLESHOOTING.md +2 -0
- package/package.json +3 -2
- package/scripts/bootstrap-init.cjs +21 -4
- package/scripts/doctor.cjs +34 -5
package/CHANGELOG.md
CHANGED
|
@@ -14,6 +14,23 @@ e este projeto adere ao [Versionamento Semântico](https://semver.org/lang/pt-BR
|
|
|
14
14
|
|
|
15
15
|
---
|
|
16
16
|
|
|
17
|
+
## [1.1.3] - 2026-10-29
|
|
18
|
+
|
|
19
|
+
### Adicionado
|
|
20
|
+
- **`agim doctor`**: mensagens RAG melhoradas — mostra chunks/arquivos do índice do projeto, menciona economia de tokens, não menciona "global/core".
|
|
21
|
+
- **`agim init`**: tentativa de RAG por padrão — avisa se dependência `@xenova/transformers` não está instalada e orienta como ativar economia de tokens.
|
|
22
|
+
- **`agim audit --json`**: output estruturado para CI/CD (já funcionava, agora documentado).
|
|
23
|
+
|
|
24
|
+
### Corrigido
|
|
25
|
+
- **`agim doctor` RAG**: remove menção confusa a "índice RAG global" — agora diz "nenhum índice deste projeto" e orienta `agim rag:rebuild`.
|
|
26
|
+
- **`agim init` RAG**: não pula mais silenciosamente — informa se dependência `@xenova/transformers` falta e como instalar.
|
|
27
|
+
|
|
28
|
+
### Alterado
|
|
29
|
+
- `agim init` não pula mais RAG silenciosamente (era `--skip-rag` por padrão implícito).
|
|
30
|
+
- Mensagens de `doctor` e `init` padronizadas para focar em "economia de tokens".
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
17
34
|
## [1.1.2] - 2026-10-29
|
|
18
35
|
|
|
19
36
|
### Corrigido (P0 — bloqueadores de release)
|
package/CONTRIBUTING.md
CHANGED
|
@@ -8,6 +8,10 @@ Obrigado por considerar contribuir para a **Bíblia Universal de IA**! Este docu
|
|
|
8
8
|
|
|
9
9
|
Este projeto está licenciado sob a **Licença MIT** — veja o arquivo [LICENSE](LICENSE) para detalhes.
|
|
10
10
|
|
|
11
|
+
## 📚 Documentação
|
|
12
|
+
|
|
13
|
+
Manual do usuário: [github.com/Brendontailor/agim-docs](https://github.com/Brendontailor/agim-docs)
|
|
14
|
+
|
|
11
15
|
## 📋 Índice
|
|
12
16
|
|
|
13
17
|
- [Código de Conduta](#código-de-conduta)
|
package/README.en.md
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
[](https://www.npmjs.com/package/agim-orchestrator)
|
|
5
5
|
[](https://www.npmjs.com/package/agim-orchestrator)
|
|
6
6
|
[](https://www.npmjs.com/package/agim-orchestrator)
|
|
7
|
+
[](https://github.com/Brendontailor/agim-docs)
|
|
7
8
|
|
|
8
9
|
> **AGIM (Agent Grimoire)** is an orchestration engine for AI agents.
|
|
9
10
|
> It installs what an agent needs to work with discipline: clear rules, persistent memory, skills, checklists, templates and automatic validation.
|
|
@@ -12,6 +13,8 @@
|
|
|
12
13
|
|
|
13
14
|
It works with any agent that reads `AGENTS.md` (OpenCode, Claude Code, Cursor, Copilot, Codex and similar).
|
|
14
15
|
|
|
16
|
+
> **Full documentation**: [github.com/Brendontailor/agim-docs](https://github.com/Brendontailor/agim-docs)
|
|
17
|
+
|
|
15
18
|
---
|
|
16
19
|
|
|
17
20
|
## Table of contents
|
package/README.md
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
[](https://www.npmjs.com/package/agim-orchestrator)
|
|
5
5
|
[](https://www.npmjs.com/package/agim-orchestrator)
|
|
6
6
|
[](https://www.npmjs.com/package/agim-orchestrator)
|
|
7
|
+
[](https://github.com/Brendontailor/agim-docs)
|
|
7
8
|
|
|
8
9
|
> **AGIM (Agent Grimoire)** é um motor de orquestração para agentes de IA.
|
|
9
10
|
> Ele instala, no seu projeto, o que um agente precisa para trabalhar com disciplina: regras claras, memória persistente, skills, checklists, templates e validação automática.
|
|
@@ -12,6 +13,8 @@
|
|
|
12
13
|
|
|
13
14
|
Funciona com qualquer agente que leia `AGENTS.md` (OpenCode, Claude Code, Cursor, Copilot, Codex e similares).
|
|
14
15
|
|
|
16
|
+
> **Documentação completa**: [github.com/Brendontailor/agim-docs](https://github.com/Brendontailor/agim-docs)
|
|
17
|
+
|
|
15
18
|
---
|
|
16
19
|
|
|
17
20
|
## Índice
|
package/docs/TROUBLESHOOTING.md
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
> Cada entrada segue o formato **mensagem → causa → solução**.
|
|
4
4
|
> Comece sempre por `agim doctor`: ele aponta o que falta e qual comando resolve.
|
|
5
|
+
>
|
|
6
|
+
> **Documentação completa**: [github.com/Brendontailor/agim-docs](https://github.com/Brendontailor/agim-docs)
|
|
5
7
|
|
|
6
8
|
---
|
|
7
9
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agim-orchestrator",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.3",
|
|
4
4
|
"description": "AGIM (Agent Grimoire): motor de orquestração para agentes de IA com skills, sub-agentes, memória persistente, checklists e validação.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -50,10 +50,11 @@
|
|
|
50
50
|
"type": "git",
|
|
51
51
|
"url": "git+https://github.com/Brendontailor/AGIM.git"
|
|
52
52
|
},
|
|
53
|
-
"homepage": "https://github.com/Brendontailor/
|
|
53
|
+
"homepage": "https://github.com/Brendontailor/agim-docs#readme",
|
|
54
54
|
"bugs": {
|
|
55
55
|
"url": "https://github.com/Brendontailor/AGIM/issues"
|
|
56
56
|
},
|
|
57
|
+
"documentation": "https://github.com/Brendontailor/agim-docs",
|
|
57
58
|
"engines": {
|
|
58
59
|
"node": ">=18.0.0"
|
|
59
60
|
},
|
|
@@ -285,16 +285,33 @@ agim interview "Definir objetivo do projeto"
|
|
|
285
285
|
|
|
286
286
|
function initRAG(cwd, skipRag = false) {
|
|
287
287
|
if (skipRag) return { skipped: true, reason: 'flag --skip-rag' };
|
|
288
|
-
|
|
288
|
+
|
|
289
|
+
const projectIndex = path.join(cwd, '.agim', 'rag', 'bible-index.json');
|
|
290
|
+
if (fs.existsSync(projectIndex)) {
|
|
291
|
+
return { skipped: true, reason: 'índice do projeto já existe', indexFile: projectIndex };
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
const globalIndex = path.join(
|
|
289
295
|
process.env.USERPROFILE || process.env.HOME || '',
|
|
290
296
|
'.agent-bible',
|
|
291
297
|
'rag_index',
|
|
292
298
|
'bible-index.json'
|
|
293
299
|
);
|
|
294
|
-
if (fs.existsSync(
|
|
295
|
-
return { skipped: true, reason: 'índice global
|
|
300
|
+
if (fs.existsSync(globalIndex)) {
|
|
301
|
+
return { skipped: true, reason: 'índice global existe (use `agim rag:rebuild` para criar do projeto)', indexFile: globalIndex };
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
// Tentar criar índice do projeto se @xenova/transformers estiver disponível
|
|
305
|
+
try {
|
|
306
|
+
require.resolve('@xenova/transformers');
|
|
307
|
+
// Dep disponível - poderia criar, mas deixamos para rag:rebuild explícito
|
|
308
|
+
return { skipped: true, reason: 'dependência disponível — rode `agim rag:rebuild` para criar índice do projeto' };
|
|
309
|
+
} catch {
|
|
310
|
+
return {
|
|
311
|
+
skipped: true,
|
|
312
|
+
reason: 'dependência @xenova/transformers não instalada — rode `npm i -g @xenova/transformers` e depois `agim rag:rebuild` para ativar economia de tokens'
|
|
313
|
+
};
|
|
296
314
|
}
|
|
297
|
-
return { skipped: true, reason: 'índice global ainda não construído (rode `agim rag:rebuild`)', indexFile };
|
|
298
315
|
}
|
|
299
316
|
|
|
300
317
|
function initGraphify(cwd, skipGraphify = false) {
|
package/scripts/doctor.cjs
CHANGED
|
@@ -119,10 +119,34 @@ function checkRag(cwd) {
|
|
|
119
119
|
path.join(cwd, '.agim', 'rag_index', 'bible-index.json'),
|
|
120
120
|
path.join(cwd, 'rag_index', 'bible-index.json')
|
|
121
121
|
];
|
|
122
|
-
|
|
123
|
-
|
|
122
|
+
|
|
123
|
+
let indexFile = null;
|
|
124
|
+
for (const file of projectIndexes) {
|
|
125
|
+
if (fs.existsSync(file)) {
|
|
126
|
+
indexFile = file;
|
|
127
|
+
break;
|
|
128
|
+
}
|
|
124
129
|
}
|
|
125
|
-
|
|
130
|
+
|
|
131
|
+
if (indexFile) {
|
|
132
|
+
// Tentar ler chunks/arquivos do índice
|
|
133
|
+
let chunks = 0, files = 0;
|
|
134
|
+
try {
|
|
135
|
+
const content = fs.readFileSync(indexFile, 'utf8');
|
|
136
|
+
const index = JSON.parse(content);
|
|
137
|
+
chunks = index.chunks?.length || index.totalChunks || Object.keys(index).length;
|
|
138
|
+
files = index.files?.length || index.totalFiles || 0;
|
|
139
|
+
} catch {
|
|
140
|
+
// índice corrompido ou formato diferente
|
|
141
|
+
}
|
|
142
|
+
return {
|
|
143
|
+
ok: true,
|
|
144
|
+
level: 'optional',
|
|
145
|
+
message: `RAG: índice ativo (${chunks} chunks, ${files} arquivos) — economia de tokens ativa`
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
// Verificar global (não mencionar "global" explicitamente, só dizer que não há do projeto)
|
|
126
150
|
const globalIndex = path.join(
|
|
127
151
|
process.env.USERPROFILE || process.env.HOME || '',
|
|
128
152
|
'.agent-bible',
|
|
@@ -133,10 +157,15 @@ function checkRag(cwd) {
|
|
|
133
157
|
return {
|
|
134
158
|
ok: false,
|
|
135
159
|
level: 'optional',
|
|
136
|
-
message: '
|
|
160
|
+
message: 'RAG: nenhum índice deste projeto — rode `agim rag:rebuild` para ativar economia de tokens'
|
|
137
161
|
};
|
|
138
162
|
}
|
|
139
|
-
|
|
163
|
+
|
|
164
|
+
return {
|
|
165
|
+
ok: false,
|
|
166
|
+
level: 'optional',
|
|
167
|
+
message: 'RAG: ausente — rode `agim rag:rebuild` para ativar economia de tokens (contexto não reenviado a cada turno)'
|
|
168
|
+
};
|
|
140
169
|
}
|
|
141
170
|
|
|
142
171
|
function checkGraphify(cwd) {
|