sinapse-ai 1.11.0 → 1.11.2

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.
@@ -141,7 +141,7 @@ class GreetingBuilder {
141
141
  // Check user preference (Story 6.1.4), now profile-aware (Story ACT-2)
142
142
  // Story ACT-2: PM agent bypasses bob mode preference restriction because
143
143
  // PM is the primary interface in bob mode and needs the full contextual greeting.
144
- const preference = (userProfile === 'bob' && agent.id === 'pm')
144
+ const preference = (userProfile === 'bob' && this._normalizeAgentId(agent.id) === 'pm')
145
145
  ? this.preferenceManager.getPreference('advanced')
146
146
  : this.preferenceManager.getPreference(userProfile);
147
147
 
@@ -216,18 +216,18 @@ class GreetingBuilder {
216
216
 
217
217
  // 2. Role description (new session only, but skip in bob mode for non-PM)
218
218
  // Story ACT-7 AC3: References current story and branch when available
219
- if (sessionType === 'new' && !(userProfile === 'bob' && agent.id !== 'pm')) {
219
+ if (sessionType === 'new' && !(userProfile === 'bob' && this._normalizeAgentId(agent.id) !== 'pm')) {
220
220
  sections.push(this.buildRoleDescription(agent, sectionContext));
221
221
  }
222
222
 
223
223
  // 3. Project status (if git configured, but skip in bob mode for non-PM)
224
224
  // Story ACT-7 AC4: Natural language narrative format
225
- if (gitConfig.configured && projectStatus && !(userProfile === 'bob' && agent.id !== 'pm')) {
225
+ if (gitConfig.configured && projectStatus && !(userProfile === 'bob' && this._normalizeAgentId(agent.id) !== 'pm')) {
226
226
  sections.push(this.buildProjectStatus(projectStatus, sessionType, sectionContext));
227
227
  }
228
228
 
229
229
  // Story 10.3 - AC1, AC4: Bob mode redirect for non-PM agents
230
- if (userProfile === 'bob' && agent.id !== 'pm') {
230
+ if (userProfile === 'bob' && this._normalizeAgentId(agent.id) !== 'pm') {
231
231
  // Show redirect message instead of normal content
232
232
  sections.push(this.buildBobModeRedirect(agent));
233
233
  return sections.filter(Boolean).join('\n\n');
@@ -791,6 +791,31 @@ class GreetingBuilder {
791
791
  };
792
792
  }
793
793
 
794
+ /**
795
+ * Normalize a canonical (long) agent id to the short token used by
796
+ * suggestion/action lookups.
797
+ *
798
+ * Runtime agents expose their long canonical id (e.g. `developer`,
799
+ * `quality-gate`) via frontmatter, while these lookups historically keyed
800
+ * off short aliases (`dev`, `qa`, ...). Without this normalization the
801
+ * switch/map below never match in production and every suggestion/action
802
+ * silently falls through to null/generic. Idempotent: a short id passed in
803
+ * is returned unchanged.
804
+ * @private
805
+ * @param {string} agentId
806
+ * @returns {string}
807
+ */
808
+ _normalizeAgentId(agentId) {
809
+ const LONG_TO_SHORT = {
810
+ developer: 'dev',
811
+ 'quality-gate': 'qa',
812
+ 'product-lead': 'po',
813
+ 'project-lead': 'pm',
814
+ 'sprint-lead': 'sm',
815
+ };
816
+ return LONG_TO_SHORT[agentId] || agentId;
817
+ }
818
+
794
819
  _getAgentAction(agentId, _storyContext) {
795
820
  const actions = {
796
821
  qa: 'revisar a qualidade dessa implementação',
@@ -800,10 +825,13 @@ class GreetingBuilder {
800
825
  sm: 'coordenar o desenvolvimento',
801
826
  };
802
827
 
803
- return actions[agentId] || 'continuar o trabalho';
828
+ return actions[this._normalizeAgentId(agentId)] || 'continuar o trabalho';
804
829
  }
805
830
 
806
831
  _suggestCommand(agentId, prevAgentId, storyContext) {
832
+ agentId = this._normalizeAgentId(agentId);
833
+ prevAgentId = this._normalizeAgentId(prevAgentId);
834
+
807
835
  // Agent transition commands
808
836
  if (prevAgentId === 'dev' && agentId === 'qa') {
809
837
  return storyContext.storyFile ? `*review ${storyContext.storyFile}` : '*review';
@@ -1267,7 +1295,7 @@ Use \`@pm\` (Bob) para todas as interações. Bob vai orquestrar os outros agent
1267
1295
 
1268
1296
  // Story 10.3 - AC1, AC2: Profile-based filtering
1269
1297
  // If bob mode AND not PM agent: return empty (will show redirect message instead)
1270
- if (userProfile === 'bob' && agent.id !== 'pm') {
1298
+ if (userProfile === 'bob' && this._normalizeAgentId(agent.id) !== 'pm') {
1271
1299
  return [];
1272
1300
  }
1273
1301
 
@@ -7,7 +7,7 @@
7
7
  # - SHA256 hashes for change detection
8
8
  # - File types for categorization
9
9
  #
10
- version: 1.11.0
10
+ version: 1.11.2
11
11
  generator: scripts/generate-install-manifest.js
12
12
  file_count: 1180
13
13
  files:
@@ -1736,9 +1736,9 @@ files:
1736
1736
  type: script
1737
1737
  size: 11890
1738
1738
  - path: development/scripts/greeting-builder.js
1739
- hash: sha256:26f61c19a35c9e49c0ae8319d95f2f6ce957d16297d4c50f2e61f08193fb1e40
1739
+ hash: sha256:293b89379a558837cfab65893130b638d6207079cde2d5252578089bb25732be
1740
1740
  type: script
1741
- size: 50235
1741
+ size: 51322
1742
1742
  - path: development/scripts/greeting-config-cli.js
1743
1743
  hash: sha256:e3167244bc9c60843b0526f7f730e9e950e97c7b0b81b92f3ae3d19f93fc27e4
1744
1744
  type: script
@@ -4456,13 +4456,13 @@ files:
4456
4456
  type: script
4457
4457
  size: 377
4458
4458
  - path: scripts/diagnostics/health-dashboard/package-lock.json
4459
- hash: sha256:af446a82b6f1e2815e7b4ccb4cc708dc2823ed0b7b37a64040c34ad0937bdabf
4459
+ hash: sha256:536129100f871d154a3950e04a606f576d685b200ed1c5bf5779fae8c4ffa352
4460
4460
  type: script
4461
- size: 184365
4461
+ size: 184649
4462
4462
  - path: scripts/diagnostics/health-dashboard/package.json
4463
- hash: sha256:bceff5a33e4bde3dc5cd5796ec2ac2150ca37a6a4b1964cd9c7f7314b7dd5e16
4463
+ hash: sha256:1330f9075de40d434424592164950a8cbd196c10173631df1016abb3dbc5add4
4464
4464
  type: script
4465
- size: 566
4465
+ size: 668
4466
4466
  - path: scripts/diagnostics/health-dashboard/public/favicon.svg
4467
4467
  hash: sha256:bad3a2389b3ff29f3da8035020dd8362c2eba564b787b9bc9c4f1edddd0b7cd4
4468
4468
  type: script
@@ -10,24 +10,24 @@
10
10
  "dependencies": {
11
11
  "react": "^18.2.0",
12
12
  "react-dom": "^18.2.0",
13
- "react-router-dom": "^6.20.0",
13
+ "react-router-dom": "^6.30.4",
14
14
  "recharts": "^2.10.0"
15
15
  },
16
16
  "devDependencies": {
17
17
  "@vitejs/plugin-react": "^4.2.0",
18
18
  "eslint": "^8.54.0",
19
19
  "eslint-plugin-react": "^7.33.0",
20
- "vite": "^7.3.1"
20
+ "vite": "^7.3.5"
21
21
  }
22
22
  },
23
23
  "node_modules/@babel/code-frame": {
24
- "version": "7.29.0",
25
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz",
26
- "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==",
24
+ "version": "7.29.7",
25
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz",
26
+ "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==",
27
27
  "dev": true,
28
28
  "license": "MIT",
29
29
  "dependencies": {
30
- "@babel/helper-validator-identifier": "^7.28.5",
30
+ "@babel/helper-validator-identifier": "^7.29.7",
31
31
  "js-tokens": "^4.0.0",
32
32
  "picocolors": "^1.1.1"
33
33
  },
@@ -36,9 +36,9 @@
36
36
  }
37
37
  },
38
38
  "node_modules/@babel/compat-data": {
39
- "version": "7.29.0",
40
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz",
41
- "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==",
39
+ "version": "7.29.7",
40
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.7.tgz",
41
+ "integrity": "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==",
42
42
  "dev": true,
43
43
  "license": "MIT",
44
44
  "engines": {
@@ -46,21 +46,21 @@
46
46
  }
47
47
  },
48
48
  "node_modules/@babel/core": {
49
- "version": "7.29.0",
50
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz",
51
- "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==",
49
+ "version": "7.29.7",
50
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.7.tgz",
51
+ "integrity": "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==",
52
52
  "dev": true,
53
53
  "license": "MIT",
54
54
  "dependencies": {
55
- "@babel/code-frame": "^7.29.0",
56
- "@babel/generator": "^7.29.0",
57
- "@babel/helper-compilation-targets": "^7.28.6",
58
- "@babel/helper-module-transforms": "^7.28.6",
59
- "@babel/helpers": "^7.28.6",
60
- "@babel/parser": "^7.29.0",
61
- "@babel/template": "^7.28.6",
62
- "@babel/traverse": "^7.29.0",
63
- "@babel/types": "^7.29.0",
55
+ "@babel/code-frame": "^7.29.7",
56
+ "@babel/generator": "^7.29.7",
57
+ "@babel/helper-compilation-targets": "^7.29.7",
58
+ "@babel/helper-module-transforms": "^7.29.7",
59
+ "@babel/helpers": "^7.29.7",
60
+ "@babel/parser": "^7.29.7",
61
+ "@babel/template": "^7.29.7",
62
+ "@babel/traverse": "^7.29.7",
63
+ "@babel/types": "^7.29.7",
64
64
  "@jridgewell/remapping": "^2.3.5",
65
65
  "convert-source-map": "^2.0.0",
66
66
  "debug": "^4.1.0",
@@ -77,14 +77,14 @@
77
77
  }
78
78
  },
79
79
  "node_modules/@babel/generator": {
80
- "version": "7.29.1",
81
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz",
82
- "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==",
80
+ "version": "7.29.7",
81
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.7.tgz",
82
+ "integrity": "sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==",
83
83
  "dev": true,
84
84
  "license": "MIT",
85
85
  "dependencies": {
86
- "@babel/parser": "^7.29.0",
87
- "@babel/types": "^7.29.0",
86
+ "@babel/parser": "^7.29.7",
87
+ "@babel/types": "^7.29.7",
88
88
  "@jridgewell/gen-mapping": "^0.3.12",
89
89
  "@jridgewell/trace-mapping": "^0.3.28",
90
90
  "jsesc": "^3.0.2"
@@ -94,14 +94,14 @@
94
94
  }
95
95
  },
96
96
  "node_modules/@babel/helper-compilation-targets": {
97
- "version": "7.28.6",
98
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz",
99
- "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==",
97
+ "version": "7.29.7",
98
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz",
99
+ "integrity": "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==",
100
100
  "dev": true,
101
101
  "license": "MIT",
102
102
  "dependencies": {
103
- "@babel/compat-data": "^7.28.6",
104
- "@babel/helper-validator-option": "^7.27.1",
103
+ "@babel/compat-data": "^7.29.7",
104
+ "@babel/helper-validator-option": "^7.29.7",
105
105
  "browserslist": "^4.24.0",
106
106
  "lru-cache": "^5.1.1",
107
107
  "semver": "^6.3.1"
@@ -111,9 +111,9 @@
111
111
  }
112
112
  },
113
113
  "node_modules/@babel/helper-globals": {
114
- "version": "7.28.0",
115
- "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz",
116
- "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==",
114
+ "version": "7.29.7",
115
+ "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz",
116
+ "integrity": "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==",
117
117
  "dev": true,
118
118
  "license": "MIT",
119
119
  "engines": {
@@ -121,29 +121,29 @@
121
121
  }
122
122
  },
123
123
  "node_modules/@babel/helper-module-imports": {
124
- "version": "7.28.6",
125
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz",
126
- "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==",
124
+ "version": "7.29.7",
125
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz",
126
+ "integrity": "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==",
127
127
  "dev": true,
128
128
  "license": "MIT",
129
129
  "dependencies": {
130
- "@babel/traverse": "^7.28.6",
131
- "@babel/types": "^7.28.6"
130
+ "@babel/traverse": "^7.29.7",
131
+ "@babel/types": "^7.29.7"
132
132
  },
133
133
  "engines": {
134
134
  "node": ">=6.9.0"
135
135
  }
136
136
  },
137
137
  "node_modules/@babel/helper-module-transforms": {
138
- "version": "7.28.6",
139
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz",
140
- "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==",
138
+ "version": "7.29.7",
139
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz",
140
+ "integrity": "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==",
141
141
  "dev": true,
142
142
  "license": "MIT",
143
143
  "dependencies": {
144
- "@babel/helper-module-imports": "^7.28.6",
145
- "@babel/helper-validator-identifier": "^7.28.5",
146
- "@babel/traverse": "^7.28.6"
144
+ "@babel/helper-module-imports": "^7.29.7",
145
+ "@babel/helper-validator-identifier": "^7.29.7",
146
+ "@babel/traverse": "^7.29.7"
147
147
  },
148
148
  "engines": {
149
149
  "node": ">=6.9.0"
@@ -163,9 +163,9 @@
163
163
  }
164
164
  },
165
165
  "node_modules/@babel/helper-string-parser": {
166
- "version": "7.27.1",
167
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
168
- "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==",
166
+ "version": "7.29.7",
167
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz",
168
+ "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==",
169
169
  "dev": true,
170
170
  "license": "MIT",
171
171
  "engines": {
@@ -173,9 +173,9 @@
173
173
  }
174
174
  },
175
175
  "node_modules/@babel/helper-validator-identifier": {
176
- "version": "7.28.5",
177
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz",
178
- "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==",
176
+ "version": "7.29.7",
177
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz",
178
+ "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==",
179
179
  "dev": true,
180
180
  "license": "MIT",
181
181
  "engines": {
@@ -183,9 +183,9 @@
183
183
  }
184
184
  },
185
185
  "node_modules/@babel/helper-validator-option": {
186
- "version": "7.27.1",
187
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz",
188
- "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==",
186
+ "version": "7.29.7",
187
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz",
188
+ "integrity": "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==",
189
189
  "dev": true,
190
190
  "license": "MIT",
191
191
  "engines": {
@@ -193,27 +193,27 @@
193
193
  }
194
194
  },
195
195
  "node_modules/@babel/helpers": {
196
- "version": "7.29.2",
197
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.2.tgz",
198
- "integrity": "sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==",
196
+ "version": "7.29.7",
197
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.7.tgz",
198
+ "integrity": "sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==",
199
199
  "dev": true,
200
200
  "license": "MIT",
201
201
  "dependencies": {
202
- "@babel/template": "^7.28.6",
203
- "@babel/types": "^7.29.0"
202
+ "@babel/template": "^7.29.7",
203
+ "@babel/types": "^7.29.7"
204
204
  },
205
205
  "engines": {
206
206
  "node": ">=6.9.0"
207
207
  }
208
208
  },
209
209
  "node_modules/@babel/parser": {
210
- "version": "7.29.2",
211
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.2.tgz",
212
- "integrity": "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==",
210
+ "version": "7.29.7",
211
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.7.tgz",
212
+ "integrity": "sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==",
213
213
  "dev": true,
214
214
  "license": "MIT",
215
215
  "dependencies": {
216
- "@babel/types": "^7.29.0"
216
+ "@babel/types": "^7.29.7"
217
217
  },
218
218
  "bin": {
219
219
  "parser": "bin/babel-parser.js"
@@ -264,33 +264,33 @@
264
264
  }
265
265
  },
266
266
  "node_modules/@babel/template": {
267
- "version": "7.28.6",
268
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz",
269
- "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==",
267
+ "version": "7.29.7",
268
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz",
269
+ "integrity": "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==",
270
270
  "dev": true,
271
271
  "license": "MIT",
272
272
  "dependencies": {
273
- "@babel/code-frame": "^7.28.6",
274
- "@babel/parser": "^7.28.6",
275
- "@babel/types": "^7.28.6"
273
+ "@babel/code-frame": "^7.29.7",
274
+ "@babel/parser": "^7.29.7",
275
+ "@babel/types": "^7.29.7"
276
276
  },
277
277
  "engines": {
278
278
  "node": ">=6.9.0"
279
279
  }
280
280
  },
281
281
  "node_modules/@babel/traverse": {
282
- "version": "7.29.0",
283
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz",
284
- "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==",
282
+ "version": "7.29.7",
283
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.7.tgz",
284
+ "integrity": "sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==",
285
285
  "dev": true,
286
286
  "license": "MIT",
287
287
  "dependencies": {
288
- "@babel/code-frame": "^7.29.0",
289
- "@babel/generator": "^7.29.0",
290
- "@babel/helper-globals": "^7.28.0",
291
- "@babel/parser": "^7.29.0",
292
- "@babel/template": "^7.28.6",
293
- "@babel/types": "^7.29.0",
288
+ "@babel/code-frame": "^7.29.7",
289
+ "@babel/generator": "^7.29.7",
290
+ "@babel/helper-globals": "^7.29.7",
291
+ "@babel/parser": "^7.29.7",
292
+ "@babel/template": "^7.29.7",
293
+ "@babel/types": "^7.29.7",
294
294
  "debug": "^4.3.1"
295
295
  },
296
296
  "engines": {
@@ -298,23 +298,23 @@
298
298
  }
299
299
  },
300
300
  "node_modules/@babel/types": {
301
- "version": "7.29.0",
302
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz",
303
- "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==",
301
+ "version": "7.29.7",
302
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.7.tgz",
303
+ "integrity": "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==",
304
304
  "dev": true,
305
305
  "license": "MIT",
306
306
  "dependencies": {
307
- "@babel/helper-string-parser": "^7.27.1",
308
- "@babel/helper-validator-identifier": "^7.28.5"
307
+ "@babel/helper-string-parser": "^7.29.7",
308
+ "@babel/helper-validator-identifier": "^7.29.7"
309
309
  },
310
310
  "engines": {
311
311
  "node": ">=6.9.0"
312
312
  }
313
313
  },
314
314
  "node_modules/@esbuild/aix-ppc64": {
315
- "version": "0.27.7",
316
- "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.7.tgz",
317
- "integrity": "sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==",
315
+ "version": "0.28.1",
316
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.1.tgz",
317
+ "integrity": "sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==",
318
318
  "cpu": [
319
319
  "ppc64"
320
320
  ],
@@ -329,9 +329,9 @@
329
329
  }
330
330
  },
331
331
  "node_modules/@esbuild/android-arm": {
332
- "version": "0.27.7",
333
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.7.tgz",
334
- "integrity": "sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==",
332
+ "version": "0.28.1",
333
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.1.tgz",
334
+ "integrity": "sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==",
335
335
  "cpu": [
336
336
  "arm"
337
337
  ],
@@ -346,9 +346,9 @@
346
346
  }
347
347
  },
348
348
  "node_modules/@esbuild/android-arm64": {
349
- "version": "0.27.7",
350
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.7.tgz",
351
- "integrity": "sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==",
349
+ "version": "0.28.1",
350
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.1.tgz",
351
+ "integrity": "sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==",
352
352
  "cpu": [
353
353
  "arm64"
354
354
  ],
@@ -363,9 +363,9 @@
363
363
  }
364
364
  },
365
365
  "node_modules/@esbuild/android-x64": {
366
- "version": "0.27.7",
367
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.7.tgz",
368
- "integrity": "sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==",
366
+ "version": "0.28.1",
367
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.1.tgz",
368
+ "integrity": "sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==",
369
369
  "cpu": [
370
370
  "x64"
371
371
  ],
@@ -380,9 +380,9 @@
380
380
  }
381
381
  },
382
382
  "node_modules/@esbuild/darwin-arm64": {
383
- "version": "0.27.7",
384
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.7.tgz",
385
- "integrity": "sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==",
383
+ "version": "0.28.1",
384
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.1.tgz",
385
+ "integrity": "sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==",
386
386
  "cpu": [
387
387
  "arm64"
388
388
  ],
@@ -397,9 +397,9 @@
397
397
  }
398
398
  },
399
399
  "node_modules/@esbuild/darwin-x64": {
400
- "version": "0.27.7",
401
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.7.tgz",
402
- "integrity": "sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==",
400
+ "version": "0.28.1",
401
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.1.tgz",
402
+ "integrity": "sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==",
403
403
  "cpu": [
404
404
  "x64"
405
405
  ],
@@ -414,9 +414,9 @@
414
414
  }
415
415
  },
416
416
  "node_modules/@esbuild/freebsd-arm64": {
417
- "version": "0.27.7",
418
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.7.tgz",
419
- "integrity": "sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==",
417
+ "version": "0.28.1",
418
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.1.tgz",
419
+ "integrity": "sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==",
420
420
  "cpu": [
421
421
  "arm64"
422
422
  ],
@@ -431,9 +431,9 @@
431
431
  }
432
432
  },
433
433
  "node_modules/@esbuild/freebsd-x64": {
434
- "version": "0.27.7",
435
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.7.tgz",
436
- "integrity": "sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==",
434
+ "version": "0.28.1",
435
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.1.tgz",
436
+ "integrity": "sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==",
437
437
  "cpu": [
438
438
  "x64"
439
439
  ],
@@ -448,9 +448,9 @@
448
448
  }
449
449
  },
450
450
  "node_modules/@esbuild/linux-arm": {
451
- "version": "0.27.7",
452
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.7.tgz",
453
- "integrity": "sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==",
451
+ "version": "0.28.1",
452
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.1.tgz",
453
+ "integrity": "sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==",
454
454
  "cpu": [
455
455
  "arm"
456
456
  ],
@@ -465,9 +465,9 @@
465
465
  }
466
466
  },
467
467
  "node_modules/@esbuild/linux-arm64": {
468
- "version": "0.27.7",
469
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.7.tgz",
470
- "integrity": "sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==",
468
+ "version": "0.28.1",
469
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.1.tgz",
470
+ "integrity": "sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==",
471
471
  "cpu": [
472
472
  "arm64"
473
473
  ],
@@ -482,9 +482,9 @@
482
482
  }
483
483
  },
484
484
  "node_modules/@esbuild/linux-ia32": {
485
- "version": "0.27.7",
486
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.7.tgz",
487
- "integrity": "sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==",
485
+ "version": "0.28.1",
486
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.1.tgz",
487
+ "integrity": "sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==",
488
488
  "cpu": [
489
489
  "ia32"
490
490
  ],
@@ -499,9 +499,9 @@
499
499
  }
500
500
  },
501
501
  "node_modules/@esbuild/linux-loong64": {
502
- "version": "0.27.7",
503
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.7.tgz",
504
- "integrity": "sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==",
502
+ "version": "0.28.1",
503
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.1.tgz",
504
+ "integrity": "sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==",
505
505
  "cpu": [
506
506
  "loong64"
507
507
  ],
@@ -516,9 +516,9 @@
516
516
  }
517
517
  },
518
518
  "node_modules/@esbuild/linux-mips64el": {
519
- "version": "0.27.7",
520
- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.7.tgz",
521
- "integrity": "sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==",
519
+ "version": "0.28.1",
520
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.1.tgz",
521
+ "integrity": "sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==",
522
522
  "cpu": [
523
523
  "mips64el"
524
524
  ],
@@ -533,9 +533,9 @@
533
533
  }
534
534
  },
535
535
  "node_modules/@esbuild/linux-ppc64": {
536
- "version": "0.27.7",
537
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.7.tgz",
538
- "integrity": "sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==",
536
+ "version": "0.28.1",
537
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.1.tgz",
538
+ "integrity": "sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==",
539
539
  "cpu": [
540
540
  "ppc64"
541
541
  ],
@@ -550,9 +550,9 @@
550
550
  }
551
551
  },
552
552
  "node_modules/@esbuild/linux-riscv64": {
553
- "version": "0.27.7",
554
- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.7.tgz",
555
- "integrity": "sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==",
553
+ "version": "0.28.1",
554
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.1.tgz",
555
+ "integrity": "sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==",
556
556
  "cpu": [
557
557
  "riscv64"
558
558
  ],
@@ -567,9 +567,9 @@
567
567
  }
568
568
  },
569
569
  "node_modules/@esbuild/linux-s390x": {
570
- "version": "0.27.7",
571
- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.7.tgz",
572
- "integrity": "sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==",
570
+ "version": "0.28.1",
571
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.1.tgz",
572
+ "integrity": "sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==",
573
573
  "cpu": [
574
574
  "s390x"
575
575
  ],
@@ -584,9 +584,9 @@
584
584
  }
585
585
  },
586
586
  "node_modules/@esbuild/linux-x64": {
587
- "version": "0.27.7",
588
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.7.tgz",
589
- "integrity": "sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==",
587
+ "version": "0.28.1",
588
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.1.tgz",
589
+ "integrity": "sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==",
590
590
  "cpu": [
591
591
  "x64"
592
592
  ],
@@ -601,9 +601,9 @@
601
601
  }
602
602
  },
603
603
  "node_modules/@esbuild/netbsd-arm64": {
604
- "version": "0.27.7",
605
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.7.tgz",
606
- "integrity": "sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==",
604
+ "version": "0.28.1",
605
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.1.tgz",
606
+ "integrity": "sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==",
607
607
  "cpu": [
608
608
  "arm64"
609
609
  ],
@@ -618,9 +618,9 @@
618
618
  }
619
619
  },
620
620
  "node_modules/@esbuild/netbsd-x64": {
621
- "version": "0.27.7",
622
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.7.tgz",
623
- "integrity": "sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==",
621
+ "version": "0.28.1",
622
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.1.tgz",
623
+ "integrity": "sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==",
624
624
  "cpu": [
625
625
  "x64"
626
626
  ],
@@ -635,9 +635,9 @@
635
635
  }
636
636
  },
637
637
  "node_modules/@esbuild/openbsd-arm64": {
638
- "version": "0.27.7",
639
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.7.tgz",
640
- "integrity": "sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==",
638
+ "version": "0.28.1",
639
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.1.tgz",
640
+ "integrity": "sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==",
641
641
  "cpu": [
642
642
  "arm64"
643
643
  ],
@@ -652,9 +652,9 @@
652
652
  }
653
653
  },
654
654
  "node_modules/@esbuild/openbsd-x64": {
655
- "version": "0.27.7",
656
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.7.tgz",
657
- "integrity": "sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==",
655
+ "version": "0.28.1",
656
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.1.tgz",
657
+ "integrity": "sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==",
658
658
  "cpu": [
659
659
  "x64"
660
660
  ],
@@ -669,9 +669,9 @@
669
669
  }
670
670
  },
671
671
  "node_modules/@esbuild/openharmony-arm64": {
672
- "version": "0.27.7",
673
- "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.7.tgz",
674
- "integrity": "sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==",
672
+ "version": "0.28.1",
673
+ "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.1.tgz",
674
+ "integrity": "sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==",
675
675
  "cpu": [
676
676
  "arm64"
677
677
  ],
@@ -686,9 +686,9 @@
686
686
  }
687
687
  },
688
688
  "node_modules/@esbuild/sunos-x64": {
689
- "version": "0.27.7",
690
- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.7.tgz",
691
- "integrity": "sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==",
689
+ "version": "0.28.1",
690
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.1.tgz",
691
+ "integrity": "sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==",
692
692
  "cpu": [
693
693
  "x64"
694
694
  ],
@@ -703,9 +703,9 @@
703
703
  }
704
704
  },
705
705
  "node_modules/@esbuild/win32-arm64": {
706
- "version": "0.27.7",
707
- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.7.tgz",
708
- "integrity": "sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==",
706
+ "version": "0.28.1",
707
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.1.tgz",
708
+ "integrity": "sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==",
709
709
  "cpu": [
710
710
  "arm64"
711
711
  ],
@@ -720,9 +720,9 @@
720
720
  }
721
721
  },
722
722
  "node_modules/@esbuild/win32-ia32": {
723
- "version": "0.27.7",
724
- "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.7.tgz",
725
- "integrity": "sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==",
723
+ "version": "0.28.1",
724
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.1.tgz",
725
+ "integrity": "sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==",
726
726
  "cpu": [
727
727
  "ia32"
728
728
  ],
@@ -737,9 +737,9 @@
737
737
  }
738
738
  },
739
739
  "node_modules/@esbuild/win32-x64": {
740
- "version": "0.27.7",
741
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.7.tgz",
742
- "integrity": "sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==",
740
+ "version": "0.28.1",
741
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.1.tgz",
742
+ "integrity": "sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==",
743
743
  "cpu": [
744
744
  "x64"
745
745
  ],
@@ -943,9 +943,9 @@
943
943
  }
944
944
  },
945
945
  "node_modules/@remix-run/router": {
946
- "version": "1.23.2",
947
- "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.23.2.tgz",
948
- "integrity": "sha512-Ic6m2U/rMjTkhERIa/0ZtXJP17QUi2CbWE7cqx4J58M8aA3QTfW+2UlQ4psvTX9IO1RfNVhK3pcpdjej7L+t2w==",
946
+ "version": "1.23.3",
947
+ "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.23.3.tgz",
948
+ "integrity": "sha512-4An71tdz9X8+3sI4Qqqd2LWd9vS39J7sqd9EU4Scw7TJE/qB10Flv/UuqbPVgfQV9XoK8Np6jNquZitnZq5i+Q==",
949
949
  "license": "MIT",
950
950
  "engines": {
951
951
  "node": ">=14.0.0"
@@ -1696,9 +1696,9 @@
1696
1696
  "license": "MIT"
1697
1697
  },
1698
1698
  "node_modules/baseline-browser-mapping": {
1699
- "version": "2.10.19",
1700
- "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.19.tgz",
1701
- "integrity": "sha512-qCkNLi2sfBOn8XhZQ0FXsT1Ki/Yo5P90hrkRamVFRS7/KV9hpfA4HkoWNU152+8w0zPjnxo5psx5NL3PSGgv5g==",
1699
+ "version": "2.10.38",
1700
+ "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.38.tgz",
1701
+ "integrity": "sha512-31/02mVB4yuQU6adKk5SlY6m+mxDwUq5KZkyYgnLrrKl7TEm1+3PyDtDBz2kOv/wxZz41GHsvV1A/u6RmiyBvw==",
1702
1702
  "dev": true,
1703
1703
  "license": "Apache-2.0",
1704
1704
  "bin": {
@@ -1814,9 +1814,9 @@
1814
1814
  }
1815
1815
  },
1816
1816
  "node_modules/caniuse-lite": {
1817
- "version": "1.0.30001788",
1818
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001788.tgz",
1819
- "integrity": "sha512-6q8HFp+lOQtcf7wBK+uEenxymVWkGKkjFpCvw5W25cmMwEDU45p1xQFBQv8JDlMMry7eNxyBaR+qxgmTUZkIRQ==",
1817
+ "version": "1.0.30001799",
1818
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001799.tgz",
1819
+ "integrity": "sha512-hG1bReV+OUU+MOqK4t/ZWI0tZOyz3rqS9XuhOUz1cIcbwBKjOyJEJuw9ER5JuNyqxNk8u/JUVbGibBOL1yrjFw==",
1820
1820
  "dev": true,
1821
1821
  "funding": [
1822
1822
  {
@@ -2196,9 +2196,9 @@
2196
2196
  }
2197
2197
  },
2198
2198
  "node_modules/electron-to-chromium": {
2199
- "version": "1.5.339",
2200
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.339.tgz",
2201
- "integrity": "sha512-Is+0BBHJ4NrdpAYiperrmp53pLywG/yV/6lIMTAnhxvzj/Cmn5Q/ogSHC6AKe7X+8kPLxxFk0cs5oc/3j/fxIg==",
2199
+ "version": "1.5.375",
2200
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.375.tgz",
2201
+ "integrity": "sha512-ZWP5eB4BVPW/ZYo9252hQZHZ5XavtsTgpbhcmMmRwymavC5AsLWQWBPaKMeNd2LW0KGby5HPXvj7+sr4ta5j/Q==",
2202
2202
  "dev": true,
2203
2203
  "license": "ISC"
2204
2204
  },
@@ -2380,9 +2380,9 @@
2380
2380
  }
2381
2381
  },
2382
2382
  "node_modules/esbuild": {
2383
- "version": "0.27.7",
2384
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.7.tgz",
2385
- "integrity": "sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==",
2383
+ "version": "0.28.1",
2384
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.1.tgz",
2385
+ "integrity": "sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==",
2386
2386
  "dev": true,
2387
2387
  "hasInstallScript": true,
2388
2388
  "license": "MIT",
@@ -2393,32 +2393,32 @@
2393
2393
  "node": ">=18"
2394
2394
  },
2395
2395
  "optionalDependencies": {
2396
- "@esbuild/aix-ppc64": "0.27.7",
2397
- "@esbuild/android-arm": "0.27.7",
2398
- "@esbuild/android-arm64": "0.27.7",
2399
- "@esbuild/android-x64": "0.27.7",
2400
- "@esbuild/darwin-arm64": "0.27.7",
2401
- "@esbuild/darwin-x64": "0.27.7",
2402
- "@esbuild/freebsd-arm64": "0.27.7",
2403
- "@esbuild/freebsd-x64": "0.27.7",
2404
- "@esbuild/linux-arm": "0.27.7",
2405
- "@esbuild/linux-arm64": "0.27.7",
2406
- "@esbuild/linux-ia32": "0.27.7",
2407
- "@esbuild/linux-loong64": "0.27.7",
2408
- "@esbuild/linux-mips64el": "0.27.7",
2409
- "@esbuild/linux-ppc64": "0.27.7",
2410
- "@esbuild/linux-riscv64": "0.27.7",
2411
- "@esbuild/linux-s390x": "0.27.7",
2412
- "@esbuild/linux-x64": "0.27.7",
2413
- "@esbuild/netbsd-arm64": "0.27.7",
2414
- "@esbuild/netbsd-x64": "0.27.7",
2415
- "@esbuild/openbsd-arm64": "0.27.7",
2416
- "@esbuild/openbsd-x64": "0.27.7",
2417
- "@esbuild/openharmony-arm64": "0.27.7",
2418
- "@esbuild/sunos-x64": "0.27.7",
2419
- "@esbuild/win32-arm64": "0.27.7",
2420
- "@esbuild/win32-ia32": "0.27.7",
2421
- "@esbuild/win32-x64": "0.27.7"
2396
+ "@esbuild/aix-ppc64": "0.28.1",
2397
+ "@esbuild/android-arm": "0.28.1",
2398
+ "@esbuild/android-arm64": "0.28.1",
2399
+ "@esbuild/android-x64": "0.28.1",
2400
+ "@esbuild/darwin-arm64": "0.28.1",
2401
+ "@esbuild/darwin-x64": "0.28.1",
2402
+ "@esbuild/freebsd-arm64": "0.28.1",
2403
+ "@esbuild/freebsd-x64": "0.28.1",
2404
+ "@esbuild/linux-arm": "0.28.1",
2405
+ "@esbuild/linux-arm64": "0.28.1",
2406
+ "@esbuild/linux-ia32": "0.28.1",
2407
+ "@esbuild/linux-loong64": "0.28.1",
2408
+ "@esbuild/linux-mips64el": "0.28.1",
2409
+ "@esbuild/linux-ppc64": "0.28.1",
2410
+ "@esbuild/linux-riscv64": "0.28.1",
2411
+ "@esbuild/linux-s390x": "0.28.1",
2412
+ "@esbuild/linux-x64": "0.28.1",
2413
+ "@esbuild/netbsd-arm64": "0.28.1",
2414
+ "@esbuild/netbsd-x64": "0.28.1",
2415
+ "@esbuild/openbsd-arm64": "0.28.1",
2416
+ "@esbuild/openbsd-x64": "0.28.1",
2417
+ "@esbuild/openharmony-arm64": "0.28.1",
2418
+ "@esbuild/sunos-x64": "0.28.1",
2419
+ "@esbuild/win32-arm64": "0.28.1",
2420
+ "@esbuild/win32-ia32": "0.28.1",
2421
+ "@esbuild/win32-x64": "0.28.1"
2422
2422
  }
2423
2423
  },
2424
2424
  "node_modules/escalade": {
@@ -3606,10 +3606,20 @@
3606
3606
  "license": "MIT"
3607
3607
  },
3608
3608
  "node_modules/js-yaml": {
3609
- "version": "4.1.1",
3610
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
3611
- "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
3609
+ "version": "4.2.0",
3610
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.2.0.tgz",
3611
+ "integrity": "sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==",
3612
3612
  "dev": true,
3613
+ "funding": [
3614
+ {
3615
+ "type": "github",
3616
+ "url": "https://github.com/sponsors/puzrin"
3617
+ },
3618
+ {
3619
+ "type": "github",
3620
+ "url": "https://github.com/sponsors/nodeca"
3621
+ }
3622
+ ],
3613
3623
  "license": "MIT",
3614
3624
  "dependencies": {
3615
3625
  "argparse": "^2.0.1"
@@ -3832,11 +3842,14 @@
3832
3842
  }
3833
3843
  },
3834
3844
  "node_modules/node-releases": {
3835
- "version": "2.0.37",
3836
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.37.tgz",
3837
- "integrity": "sha512-1h5gKZCF+pO/o3Iqt5Jp7wc9rH3eJJ0+nh/CIoiRwjRxde/hAHyLPXYN4V3CqKAbiZPSeJFSWHmJsbkicta0Eg==",
3845
+ "version": "2.0.48",
3846
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.48.tgz",
3847
+ "integrity": "sha512-1uz8041X6LoI6ZSdZacM9lVY28vuzDlSKitnpbSNK0RfKoIJkX29NBPVEFXhnuSuEOA9Ww0xnPJ+ILWbGAv8DA==",
3838
3848
  "dev": true,
3839
- "license": "MIT"
3849
+ "license": "MIT",
3850
+ "engines": {
3851
+ "node": ">=18"
3852
+ }
3840
3853
  },
3841
3854
  "node_modules/object-assign": {
3842
3855
  "version": "4.1.1",
@@ -4226,12 +4239,12 @@
4226
4239
  }
4227
4240
  },
4228
4241
  "node_modules/react-router": {
4229
- "version": "6.30.3",
4230
- "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.30.3.tgz",
4231
- "integrity": "sha512-XRnlbKMTmktBkjCLE8/XcZFlnHvr2Ltdr1eJX4idL55/9BbORzyZEaIkBFDhFGCEWBBItsVrDxwx3gnisMitdw==",
4242
+ "version": "6.30.4",
4243
+ "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.30.4.tgz",
4244
+ "integrity": "sha512-SVUsDe+DybHM/WmYKIVYhZh1o5Dcuf16yM6WjG02Q9XVFMZIJyHYhwrr6bFBXZkVP6z69kNkMyBCujt8FaFLJA==",
4232
4245
  "license": "MIT",
4233
4246
  "dependencies": {
4234
- "@remix-run/router": "1.23.2"
4247
+ "@remix-run/router": "1.23.3"
4235
4248
  },
4236
4249
  "engines": {
4237
4250
  "node": ">=14.0.0"
@@ -4241,13 +4254,13 @@
4241
4254
  }
4242
4255
  },
4243
4256
  "node_modules/react-router-dom": {
4244
- "version": "6.30.3",
4245
- "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.30.3.tgz",
4246
- "integrity": "sha512-pxPcv1AczD4vso7G4Z3TKcvlxK7g7TNt3/FNGMhfqyntocvYKj+GCatfigGDjbLozC4baguJ0ReCigoDJXb0ag==",
4257
+ "version": "6.30.4",
4258
+ "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.30.4.tgz",
4259
+ "integrity": "sha512-q4HvNl+mmDdkS0g+MqiBZNteQJCuimWoOyHMy4T/RQLAn9Z29+E91QXRaxOujeMl2HTzRSS0KFPd7lxX3PjV0Q==",
4247
4260
  "license": "MIT",
4248
4261
  "dependencies": {
4249
- "@remix-run/router": "1.23.2",
4250
- "react-router": "6.30.3"
4262
+ "@remix-run/router": "1.23.3",
4263
+ "react-router": "6.30.4"
4251
4264
  },
4252
4265
  "engines": {
4253
4266
  "node": ">=14.0.0"
@@ -5114,9 +5127,9 @@
5114
5127
  }
5115
5128
  },
5116
5129
  "node_modules/vite": {
5117
- "version": "7.3.2",
5118
- "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.2.tgz",
5119
- "integrity": "sha512-Bby3NOsna2jsjfLVOHKes8sGwgl4TT0E6vvpYgnAYDIF/tie7MRaFthmKuHx1NSXjiTueXH3do80FMQgvEktRg==",
5130
+ "version": "7.3.5",
5131
+ "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.5.tgz",
5132
+ "integrity": "sha512-KuOaNhcnGFN2zIPGA7wRmzF+lJA1sea7rHq17aiJ++9lzY1WWG6Jpwqwe1KNbRVPIqHmr8GLYx7jbrQcN/7/ww==",
5120
5133
  "dev": true,
5121
5134
  "license": "MIT",
5122
5135
  "dependencies": {
@@ -12,14 +12,19 @@
12
12
  "dependencies": {
13
13
  "react": "^18.2.0",
14
14
  "react-dom": "^18.2.0",
15
- "react-router-dom": "^6.20.0",
15
+ "react-router-dom": "^6.30.4",
16
16
  "recharts": "^2.10.0"
17
17
  },
18
18
  "devDependencies": {
19
19
  "@vitejs/plugin-react": "^4.2.0",
20
20
  "eslint": "^8.54.0",
21
21
  "eslint-plugin-react": "^7.33.0",
22
- "vite": "^7.3.1"
22
+ "vite": "^7.3.5"
23
+ },
24
+ "overrides": {
25
+ "esbuild": "^0.28.1",
26
+ "js-yaml": "^4.2.0",
27
+ "@babel/core": "^7.29.6"
23
28
  }
24
29
  }
25
30
 
package/CHANGELOG.md CHANGED
@@ -1,13 +1,8 @@
1
- ## [1.11.0](https://github.com/caioimori/sinapse-ai/compare/1.10.0...1.11.0) (2026-06-18)
2
-
3
- ### Features
4
-
5
- * **install:** pre-check de versao Node antes do install/init (falha rapido) ([dc41909](https://github.com/caioimori/sinapse-ai/commit/dc419092c1d10adf8dc250d433a7c62977dd7c00))
1
+ ## [1.11.2](https://github.com/caioimori/sinapse-ai/compare/1.11.1...1.11.2) (2026-06-18)
6
2
 
7
3
  ### Bug Fixes
8
4
 
9
- * **install:** mensagem de conclusao honesta (deps + contagem de agentes) ([f6a65dc](https://github.com/caioimori/sinapse-ai/commit/f6a65dcff6a67fada7163409d0315854edc5ee88))
10
- * **security:** secret-scanner nao falso-positiva em labels de UI com "password" ([9c67c56](https://github.com/caioimori/sinapse-ai/commit/9c67c56b83062e580ae517fb5798ee1dec907c30))
5
+ * **install:** limpa a saida do install (sem dumps, sem duplicacao, branding calmo) ([048c3ae](https://github.com/caioimori/sinapse-ai/commit/048c3aea914642bbbe759927bb3e4fc59568ef84))
11
6
 
12
7
  # Changelog
13
8
 
@@ -478,6 +478,11 @@ async function cmdInstallGlobal(opts = {}) {
478
478
  quiet: true,
479
479
  language: language,
480
480
  selectedLLM: llmChoice,
481
+ // Phase 7 (above) already installed Chrome Brain globally — tell the wizard
482
+ // to skip its own copy so it doesn't run twice (duplicate output + duplicate
483
+ // optional-dep warning). The wizard still runs Chrome Brain when invoked
484
+ // standalone (no skip flag).
485
+ skipChromeBrain: true,
481
486
  });
482
487
  logger.always(` ${GREEN}OK${NC} Project files installed (.sinapse-ai/, .claude/)`);
483
488
  } else {
@@ -428,8 +428,12 @@ function installMcp(platform) {
428
428
  const npmCmd = process.platform === 'win32' ? 'npm.cmd' : 'npm';
429
429
  execSync(`${npmCmd} install -g dev-browser`, { stdio: 'pipe', timeout: 120000 });
430
430
  ok('dev-browser installed globally');
431
- } catch (error) {
432
- warn(`dev-browser install failed: ${error.message}. Manual install: npm install -g dev-browser`);
431
+ } catch {
432
+ // Optional dependency never block install. Keep the message to ONE calm line
433
+ // (the raw npm/EPERM/EEXIST stderr is intentionally swallowed; it scares users and
434
+ // is not actionable). The MCP entry is still written below so a later manual
435
+ // `npm install -g dev-browser` activates it.
436
+ warn('dev-browser (navegador automatico opcional) nao instalado — segue normal. Opcional depois: npm install -g dev-browser');
433
437
  // Do NOT throw — continue with rest of install
434
438
  }
435
439
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sinapse-ai",
3
- "version": "1.11.0",
3
+ "version": "1.11.2",
4
4
  "description": "SINAPSE AI: Framework de orquestracao de IA — 17 squads, 172 agentes especializados",
5
5
  "bin": {
6
6
  "sinapse": "bin/sinapse.js",
@@ -145,7 +145,7 @@
145
145
  "glob": "^10.4.4",
146
146
  "handlebars": "^4.7.8",
147
147
  "inquirer": "^8.2.6",
148
- "js-yaml": "^4.1.0",
148
+ "js-yaml": "^4.2.0",
149
149
  "ora": "^5.4.1",
150
150
  "proper-lockfile": "^4.1.2",
151
151
  "semver": "^7.7.2",
@@ -221,6 +221,8 @@
221
221
  "picomatch": "^4.0.4",
222
222
  "brace-expansion": "^5.0.6",
223
223
  "fast-uri": "^3.1.2",
224
- "ip-address": "^10.1.1"
224
+ "ip-address": "^10.1.1",
225
+ "@babel/core": "^7.29.6",
226
+ "js-yaml": "^4.2.0"
225
227
  }
226
228
  }
@@ -1128,8 +1128,10 @@ async function runWizard(options = {}) {
1128
1128
  console.log('Installation may be incomplete. Check logs in .sinapse/ directory.');
1129
1129
  }
1130
1130
 
1131
- // Chrome Brain: Auto-install browser automation capability
1132
- if (answers.selectedLLM === 'claude-code' || answers.selectedLLM === 'both') {
1131
+ // Chrome Brain: Auto-install browser automation capability.
1132
+ // Skipped when the global installer (cmdInstallGlobal Phase 7) already ran it,
1133
+ // to avoid a duplicate run + duplicate optional-dep warning.
1134
+ if (!answers.skipChromeBrain && (answers.selectedLLM === 'claude-code' || answers.selectedLLM === 'both')) {
1133
1135
  try {
1134
1136
  const chromeBrainPath = path.join(__dirname, '..', '..', '..', '..', 'bin', 'modules', 'chrome-brain-installer');
1135
1137
  const { detectChrome, installScripts, installHooks, installMcp, installKnowledgeBase } = require(chromeBrainPath);
@@ -1152,17 +1154,28 @@ async function runWizard(options = {}) {
1152
1154
  }
1153
1155
  }
1154
1156
 
1155
- // Apply SINAPSE branding to Claude Code CLI (so both `sinapse` and `claude` show SINAPSE branding)
1157
+ // Apply SINAPSE branding to Claude Code CLI (so both `sinapse` and `claude` show SINAPSE branding).
1158
+ // Pre-check that the Claude Code CLI is actually present: if it isn't, skip with ONE calm line
1159
+ // instead of letting the patch script print a scary "[ERRO] ... CLI nao encontrado" + stack.
1156
1160
  if (answers.selectedLLM === 'claude-code' || answers.selectedLLM === 'both') {
1161
+ const brandingPatchPath = path.join(__dirname, '..', '..', '..', '..', 'scripts', 'sinapse-patch.js');
1162
+ let claudeCliPresent = false;
1157
1163
  try {
1158
- const brandingPatchPath = path.join(__dirname, '..', '..', '..', '..', 'scripts', 'sinapse-patch.js');
1159
- if (fse.existsSync(brandingPatchPath)) {
1160
- console.log('\n◆ Applying SINAPSE branding to Claude Code...\n');
1161
- execSync(`node "${brandingPatchPath}"`, { stdio: 'inherit' });
1164
+ execSync(process.platform === 'win32' ? 'where claude' : 'command -v claude', { stdio: 'ignore' });
1165
+ claudeCliPresent = true;
1166
+ } catch {
1167
+ claudeCliPresent = false;
1168
+ }
1169
+ if (!claudeCliPresent) {
1170
+ console.log('ℹ️ Branding do Claude Code: pulado (Claude Code CLI nao detectado). Aplique depois com: sinapse brand');
1171
+ } else if (fse.existsSync(brandingPatchPath)) {
1172
+ try {
1173
+ // stdio: 'pipe' (not 'inherit') so the patch's internal logs stay quiet on success.
1174
+ execSync(`node "${brandingPatchPath}"`, { stdio: 'pipe' });
1175
+ console.log('✅ Branding do Claude Code aplicado.');
1176
+ } catch {
1177
+ console.log('ℹ️ Branding do Claude Code: pulado. Aplique depois com: sinapse brand');
1162
1178
  }
1163
- } catch (error) {
1164
- console.log(`\n⚠️ Branding patch skipped: ${error.message}`);
1165
- console.log(' You can apply it later with: sinapse brand\n');
1166
1179
  }
1167
1180
  }
1168
1181
 
@@ -1211,12 +1224,17 @@ async function runWizard(options = {}) {
1211
1224
  answers.infraApplied = false;
1212
1225
  }
1213
1226
 
1214
- // Show completion with LLM label + honest dependency status
1215
- showCompletion({
1216
- llmLabel: llmLabel(answers.selectedLLM),
1217
- llmValue: answers.selectedLLM,
1218
- depsInstalled: answers.depsInstalled !== false,
1219
- });
1227
+ // Show completion with LLM label + honest dependency status.
1228
+ // Suppressed in quiet/embedded mode (cmdInstallGlobal calls the wizard with
1229
+ // quiet: true and prints its OWN authoritative summary box afterwards) — printing
1230
+ // both produced two completion screens with contradictory counts.
1231
+ if (!options.quiet) {
1232
+ showCompletion({
1233
+ llmLabel: llmLabel(answers.selectedLLM),
1234
+ llmValue: answers.selectedLLM,
1235
+ depsInstalled: answers.depsInstalled !== false,
1236
+ });
1237
+ }
1220
1238
 
1221
1239
  return answers;
1222
1240
  } catch (error) {