sinapse-ai 7.4.5 → 7.4.7

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/.claude/CLAUDE.md CHANGED
@@ -21,6 +21,7 @@ O SINAPSE possui uma **Constitution formal** com princípios inegociáveis e gat
21
21
  | IV | No Invention | MUST |
22
22
  | V | Quality First | MUST |
23
23
  | VI | Absolute Imports | SHOULD |
24
+ | VII | Ecosystem Metrics Accuracy | NON-NEGOTIABLE |
24
25
 
25
26
  **Gates automáticos bloqueiam violações.** Consulte a Constitution para detalhes completos.
26
27
 
@@ -125,6 +125,35 @@ import { useStore } from '../../../stores/feature/store'
125
125
 
126
126
  ---
127
127
 
128
+ ### VII. Ecosystem Metrics Accuracy (NON-NEGOTIABLE)
129
+
130
+ Métricas do ecossistema (contagem de squads, agentes, tasks, orqx) DEVEM ser estritamente exatas em todos os documentos, código e artefatos.
131
+
132
+ **Fonte de verdade:** `~/.sinapse/metadata.json` (gerado pelo installer a partir de contagem real de arquivos)
133
+
134
+ **Números canônicos atuais:**
135
+ - **18 squads** (diretórios com squad.yaml)
136
+ - **175 agentes** (174 em squads + 1 master sinapse-orqx)
137
+ - **20 comandos orqx** (18 squad orqx + sinapse-orqx + tools-orqx)
138
+
139
+ **Regras:**
140
+ - MUST: Todo documento que menciona contagem de squads/agentes DEVE usar os números exatos do metadata.json
141
+ - MUST: Ao adicionar ou remover um squad/agente, TODOS os documentos que referenciam a contagem DEVEM ser atualizados na mesma operação
142
+ - MUST NOT: Arredondar, estimar ou aproximar contagens — o número DEVE ser exato
143
+ - MUST NOT: Ter discrepância entre qualquer par de documentos que mencionam a mesma métrica
144
+
145
+ **Documentos que referenciam estas métricas (devem estar sincronizados):**
146
+ - `README.md` e `README.en.md` (header, body, tabela)
147
+ - `package.json` (description)
148
+ - `AGENTS.md` (contagens de orqx e especialistas)
149
+ - `sinapse-orqx.md` (todas as cópias: .sinapse-ai/, .claude/, .codex/, sinapse/)
150
+ - `packages/installer/src/wizard/feedback.js` (output do installer)
151
+ - `~/.sinapse/metadata.json` (fonte de verdade)
152
+
153
+ **Gate:** Qualquer PR que altere contagem de squads/agentes sem atualizar TODOS os documentos listados acima é BLOQUEADO.
154
+
155
+ ---
156
+
128
157
  ## Governance
129
158
 
130
159
  ### Amendment Process
@@ -7,8 +7,8 @@
7
7
  # - SHA256 hashes for change detection
8
8
  # - File types for categorization
9
9
  #
10
- version: 7.4.5
11
- generated_at: "2026-03-27T18:12:46.613Z"
10
+ version: 7.4.7
11
+ generated_at: "2026-03-29T07:44:02.128Z"
12
12
  generator: scripts/generate-install-manifest.js
13
13
  file_count: 1101
14
14
  files:
package/README.en.md CHANGED
@@ -7,7 +7,7 @@
7
7
  [![Node.js](https://img.shields.io/badge/node-%3E%3D18.0.0-brightgreen.svg)](https://nodejs.org/)
8
8
  [![Open Source](https://img.shields.io/badge/Open%20Source-Yes-success.svg)](LICENSE)
9
9
 
10
- > **174 AI agents. 19 specialized squads. One CLI.**
10
+ > **175 AI agents. 18 specialized squads. One CLI.**
11
11
  >
12
12
  > SINAPSE AI is an open source framework that organizes AI agents into specialized squads to solve real problems in business, marketing, development, copywriting, design and more. Works directly in your terminal with Claude Code, Codex CLI or any compatible IDE.
13
13
 
@@ -19,8 +19,8 @@ SINAPSE AI is not another chatbot. It is an orchestration system where each agen
19
19
 
20
20
  **What you get when you install:**
21
21
 
22
- - **19 orchestrators (orqx)** ready to activate from the terminal
23
- - **174 specialized agents** with their own knowledge bases
22
+ - **18 squad orchestrators (orqx)** ready to activate from the terminal
23
+ - **175 specialized agents** with their own knowledge bases
24
24
  - **Complete workflows** for planning, development, QA and deploy
25
25
  - **Story-Driven Development** with automatic progress tracking
26
26
  - **Multi-IDE support**: Claude Code and Codex CLI
@@ -87,7 +87,7 @@ Each squad is a team of specialized agents with its own knowledge base, workflow
87
87
  | **squad-finance** | Budget, pricing, profitability analysis | 5 |
88
88
  | **claude-code-mastery** | Advanced Claude Code mastery | 8 |
89
89
 
90
- **Total: 19 squads, 174 specialized agents**
90
+ **Total: 18 squads, 175 specialized agents**
91
91
 
92
92
  ---
93
93
 
@@ -202,7 +202,7 @@ SINAPSE works on both IDEs. Both support most features with different approaches
202
202
 
203
203
  | Feature | Claude Code | Codex CLI | Notes |
204
204
  |---------|:-----------:|:---------:|-------|
205
- | **19 squads with 175 agents** | YES | YES | Identical on both |
205
+ | **18 squads with 175 agents** | YES | YES | Identical on both |
206
206
  | **Knowledge bases per squad** | YES | YES | Identical on both |
207
207
  | **Tasks and workflows** | YES | YES | Identical on both |
208
208
  | **Story-Driven Development** | YES | YES | Identical on both |
package/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
  [![Node.js](https://img.shields.io/badge/node-%3E%3D18.0.0-brightgreen.svg)](https://nodejs.org/)
8
8
  [![Open Source](https://img.shields.io/badge/Open%20Source-Yes-success.svg)](LICENSE)
9
9
 
10
- > **175 agentes de IA. 19 squads especializados. Uma CLI.**
10
+ > **175 agentes de IA. 18 squads especializados. Uma CLI.**
11
11
  >
12
12
  > O SINAPSE AI e um framework open source que organiza agentes de IA em squads especializados para resolver problemas reais de negocios, marketing, desenvolvimento, copy, design e mais. Funciona direto no seu terminal com Claude Code, Codex CLI ou qualquer IDE compativel.
13
13
 
@@ -19,7 +19,7 @@ O SINAPSE AI nao e mais um chatbot. E um sistema de orquestracao onde cada agent
19
19
 
20
20
  **O que voce ganha ao instalar:**
21
21
 
22
- - **19 orquestradores (orqx)** prontos para ativar direto no terminal
22
+ - **18 orquestradores de squad (orqx)** prontos para ativar direto no terminal
23
23
  - **175 agentes especializados** com knowledge bases proprias
24
24
  - **Workflows completos** de planejamento, desenvolvimento, QA e deploy
25
25
  - **Story-Driven Development** com rastreamento automatico de progresso
@@ -87,7 +87,7 @@ Cada squad e uma equipe de agentes especializados com knowledge base, workflows
87
87
  | **squad-finance** | Budget, pricing, profitability analysis | 5 |
88
88
  | **claude-code-mastery** | Dominio avancado do Claude Code | 8 |
89
89
 
90
- **Total: 19 squads, 175 agentes especializados**
90
+ **Total: 18 squads, 175 agentes especializados**
91
91
 
92
92
  ---
93
93
 
@@ -227,7 +227,7 @@ O SINAPSE funciona em ambas as IDEs. Ambas suportam a maioria das funcionalidade
227
227
 
228
228
  | Funcionalidade | Claude Code | Codex CLI | Notas |
229
229
  |---------------|:-----------:|:---------:|-------|
230
- | **19 squads com 175 agentes** | SIM | SIM | Identico em ambas |
230
+ | **18 squads com 175 agentes** | SIM | SIM | Identico em ambas |
231
231
  | **Knowledge bases por squad** | SIM | SIM | Identico em ambas |
232
232
  | **Tasks e workflows** | SIM | SIM | Identico em ambas |
233
233
  | **Story-Driven Development** | SIM | SIM | Identico em ambas |
@@ -342,14 +342,19 @@ function installScripts(chromePath, platform) {
342
342
  function installHooks() {
343
343
  step('Merging hooks into ~/.claude/settings.json...');
344
344
 
345
+ const binDir = detectPlatform() === 'windows'
346
+ ? path.join(SINAPSE_DIR, 'bin')
347
+ : SCRIPTS_DIR;
348
+ const ensureCmd = path.join(binDir, 'chrome-ensure').replace(/\\/g, '/');
349
+ const logCmd = path.join(binDir, 'chrome-brain-log').replace(/\\/g, '/');
345
350
  const hookDefs = {
346
351
  PreToolUse: [
347
- { matcher: 'mcp__chrome-devtools__*', hooks: [{ type: 'command', command: 'chrome-ensure' }] },
348
- { matcher: 'mcp__claude-in-chrome__*', hooks: [{ type: 'command', command: 'chrome-ensure' }] },
352
+ { matcher: 'mcp__chrome-devtools__*', hooks: [{ type: 'command', command: ensureCmd }] },
353
+ { matcher: 'mcp__claude-in-chrome__*', hooks: [{ type: 'command', command: ensureCmd }] },
349
354
  ],
350
355
  PostToolUse: [
351
- { matcher: 'mcp__chrome-devtools__*', hooks: [{ type: 'command', command: 'chrome-brain-log' }] },
352
- { matcher: 'mcp__claude-in-chrome__*', hooks: [{ type: 'command', command: 'chrome-brain-log' }] },
356
+ { matcher: 'mcp__chrome-devtools__*', hooks: [{ type: 'command', command: logCmd }] },
357
+ { matcher: 'mcp__claude-in-chrome__*', hooks: [{ type: 'command', command: logCmd }] },
353
358
  ],
354
359
  };
355
360
 
@@ -2,14 +2,12 @@
2
2
  'use strict';
3
3
 
4
4
  /**
5
- * Publish Safety Gate — Submodule + File Count + Dependency Validation
5
+ * Publish Safety Gate — File Count + Dependency Validation
6
6
  * Story INS-4.10, INS-4.12
7
7
  *
8
8
  * Prevents publishing incomplete packages by validating:
9
- * 1. pro/ submodule is populated (not empty or uninitialized)
10
- * 2. Critical file pro/license/license-api.js exists
11
- * 3. Package file count meets minimum threshold (>= 50)
12
- * 4. (INS-4.12) .sinapse-ai/package.json dependency completeness
9
+ * 1. Package file count meets minimum threshold (>= 50)
10
+ * 2. (INS-4.12) .sinapse-ai/package.json dependency completeness
13
11
  *
14
12
  * Exit codes: 0 = PASS, 1 = FAIL
15
13
  * Usage: node bin/utils/validate-publish.js
@@ -20,57 +18,14 @@ const path = require('path');
20
18
  const { execSync } = require('child_process');
21
19
 
22
20
  const PROJECT_ROOT = path.join(__dirname, '..', '..');
23
- const PRO_DIR = path.join(PROJECT_ROOT, 'pro');
24
- const CRITICAL_FILE = path.join(PRO_DIR, 'license', 'license-api.js');
25
21
  const MIN_FILE_COUNT = 50;
26
22
 
27
- // CI environments may not have access to the private pro submodule
28
- const IS_CI = process.env.CI === 'true' || process.env.GITHUB_ACTIONS === 'true';
29
-
30
23
  let passed = true;
31
24
  let fileCount = 0;
32
25
 
33
- // Check 1: pro/ submodule populated
34
26
  console.log('--- Publish Safety Gate (INS-4.10) ---\n');
35
27
 
36
- if (!fs.existsSync(PRO_DIR)) {
37
- if (IS_CI) {
38
- console.log('SKIP: pro/ directory not available (CI — private submodule requires separate access token)');
39
- } else {
40
- console.error('FAIL: pro/ directory does not exist.');
41
- console.error(' Fix: git submodule update --init pro');
42
- passed = false;
43
- }
44
- } else {
45
- const entries = fs.readdirSync(PRO_DIR).filter(e => e !== '.git');
46
- if (entries.length === 0) {
47
- if (IS_CI) {
48
- console.log('SKIP: pro/ submodule empty (CI — private submodule requires separate access token)');
49
- } else {
50
- console.error('FAIL: pro/ submodule not initialized (directory is empty).');
51
- console.error(' Fix: git submodule update --init pro');
52
- passed = false;
53
- }
54
- } else {
55
- console.log(`PASS: pro/ submodule populated (${entries.length} entries)`);
56
- }
57
- }
58
-
59
- // Check 2: Critical file exists
60
- if (!fs.existsSync(CRITICAL_FILE)) {
61
- if (IS_CI) {
62
- console.log('SKIP: pro/license/license-api.js not available (CI — private submodule)');
63
- } else {
64
- console.error('FAIL: pro/license/license-api.js not found.');
65
- console.error(' This is a critical file required for Pro license validation.');
66
- console.error(' Fix: git submodule update --init --recursive pro');
67
- passed = false;
68
- }
69
- } else {
70
- console.log('PASS: pro/license/license-api.js exists');
71
- }
72
-
73
- // Check 3: File count threshold via npm pack --dry-run
28
+ // Check 1: File count threshold via npm pack --dry-run
74
29
  try {
75
30
  const packOutput = execSync('npm pack --dry-run 2>&1', {
76
31
  encoding: 'utf8',
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "sinapse-ai",
3
- "version": "7.4.5",
4
- "description": "SINAPSE AI: Framework de orquestracao de IA — 18 squads, 174 agentes especializados",
3
+ "version": "7.4.7",
4
+ "description": "SINAPSE AI: Framework de orquestracao de IA — 18 squads, 175 agentes especializados",
5
5
  "bin": {
6
6
  "sinapse": "bin/sinapse.js",
7
7
  "sinapse-ai": "bin/cli.js",
@@ -347,14 +347,17 @@ function writeJson(filePath, data) {
347
347
  * Preserves all existing hooks — only replaces entries with matching matchers.
348
348
  */
349
349
  function mergeHooks() {
350
+ const binDir = getBinDir(detectOS());
351
+ const ensureCmd = path.join(binDir, 'chrome-ensure').replace(/\\/g, '/');
352
+ const logCmd = path.join(binDir, 'chrome-brain-log').replace(/\\/g, '/');
350
353
  const newHooks = {
351
354
  PreToolUse: [
352
- { matcher: 'mcp__chrome-devtools__*', hooks: [{ type: 'command', command: 'chrome-ensure' }] },
353
- { matcher: 'mcp__claude-in-chrome__*', hooks: [{ type: 'command', command: 'chrome-ensure' }] },
355
+ { matcher: 'mcp__chrome-devtools__*', hooks: [{ type: 'command', command: ensureCmd }] },
356
+ { matcher: 'mcp__claude-in-chrome__*', hooks: [{ type: 'command', command: ensureCmd }] },
354
357
  ],
355
358
  PostToolUse: [
356
- { matcher: 'mcp__chrome-devtools__*', hooks: [{ type: 'command', command: 'chrome-brain-log' }] },
357
- { matcher: 'mcp__claude-in-chrome__*', hooks: [{ type: 'command', command: 'chrome-brain-log' }] },
359
+ { matcher: 'mcp__chrome-devtools__*', hooks: [{ type: 'command', command: logCmd }] },
360
+ { matcher: 'mcp__claude-in-chrome__*', hooks: [{ type: 'command', command: logCmd }] },
358
361
  ],
359
362
  };
360
363