sinapse-ai 1.25.0 → 1.25.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.
Files changed (100) hide show
  1. package/.claude/settings.json +170 -0
  2. package/.codex/catalog.json +1 -1
  3. package/.codex/scripts/sinapse-codex.js +0 -5
  4. package/.codex/scripts/sync-codex-native.js +4 -37
  5. package/.codex/scripts/validate-codex-native.js +13 -23
  6. package/.codex/tasks/onboard-sinapse-codex.md +1 -1
  7. package/.sinapse-ai/data/entity-registry.yaml +44 -18
  8. package/.sinapse-ai/install-manifest.yaml +3 -3
  9. package/CHANGELOG.md +8 -16
  10. package/bin/cli.js +8 -1
  11. package/bin/commands/help.js +3 -2
  12. package/bin/commands/install.js +25 -14
  13. package/bin/commands/status.js +4 -3
  14. package/bin/commands/uninstall.js +216 -51
  15. package/bin/commands/update.js +8 -4
  16. package/bin/lib/global-provider-adapters.js +73 -10
  17. package/bin/lib/provider-parity.js +22 -0
  18. package/bin/postinstall.js +11 -11
  19. package/docs/framework/codex-parity/codex-integration-process.md +6 -7
  20. package/docs/framework/codex-parity/codex-native-runtime-v2.md +8 -8
  21. package/docs/framework/codex-parity/codex-parity-program.md +4 -4
  22. package/docs/framework/codex-parity/codex-total-parity-orchestration-plan.md +1 -1
  23. package/docs/guides/codex-config.md +2 -2
  24. package/docs/guides/development-setup.md +1 -2
  25. package/docs/guides/ide-integration.md +6 -6
  26. package/docs/guides/quality-gates.md +2 -2
  27. package/docs/ide-integration.md +2 -2
  28. package/docs/installation/faq.md +1 -1
  29. package/docs/installation/troubleshooting.md +2 -2
  30. package/docs/installation/v4-quick-start.md +1 -1
  31. package/docs/pt/contributing.md +1 -1
  32. package/docs/pt/guides/development-setup.md +1 -2
  33. package/docs/pt/guides/quality-gates.md +2 -2
  34. package/docs/pt/ide-integration.md +6 -6
  35. package/docs/pt/installation/faq.md +1 -1
  36. package/docs/pt/installation/troubleshooting.md +2 -3
  37. package/docs/pt/installation/v4-quick-start.md +1 -2
  38. package/docs/pt/platforms/claude-code.md +4 -4
  39. package/docs/sinapse-agent-flows/analyst-system.md +1 -1
  40. package/docs/sinapse-agent-flows/architect-system.md +1 -1
  41. package/docs/sinapse-agent-flows/data-engineer-system.md +1 -1
  42. package/docs/sinapse-agent-flows/dev-system.md +1 -1
  43. package/docs/sinapse-agent-flows/pm-system.md +1 -1
  44. package/docs/sinapse-agent-flows/qa-system.md +1 -1
  45. package/docs/sinapse-agent-flows/sm-system.md +1 -1
  46. package/docs/sinapse-agent-flows/snps-orqx-system.md +1 -1
  47. package/docs/sinapse-agent-flows/squad-creator-system.md +2 -2
  48. package/docs/sinapse-agent-flows/ux-design-expert-system.md +1 -1
  49. package/package.json +21 -16
  50. package/packages/installer/src/config/ide-configs.js +1 -1
  51. package/packages/installer/src/installer/sinapse-ai-installer.js +282 -10
  52. package/packages/installer/src/migrations/legacy-claude-agent-command-hashes.json +36 -0
  53. package/packages/installer/src/migrations/legacy-codex-native-skill-hashes.json +42 -0
  54. package/packages/installer/src/updater/index.js +24 -7
  55. package/packages/installer/src/wizard/ide-config-generator.js +4 -0
  56. package/packages/installer/src/wizard/index.js +6 -2
  57. package/scripts/validate-codex-command-registry.js +101 -0
  58. package/scripts/validate-provider-adapters.js +117 -1
  59. package/squads/claude-code-mastery/agents/skill-craftsman.md +2 -2
  60. package/squads/claude-code-mastery/knowledge-base/skill-creation-patterns.md +1 -1
  61. package/squads/squad-design/agents/ux-designer.md +1 -1
  62. package/.codex/skills/sinapse/SKILL.md +0 -10
  63. package/.codex/skills/sinapse-agent/SKILL.md +0 -22
  64. package/.codex/skills/sinapse-analyst/SKILL.md +0 -29
  65. package/.codex/skills/sinapse-animations/SKILL.md +0 -28
  66. package/.codex/skills/sinapse-architect/SKILL.md +0 -31
  67. package/.codex/skills/sinapse-brand/SKILL.md +0 -28
  68. package/.codex/skills/sinapse-claude/SKILL.md +0 -28
  69. package/.codex/skills/sinapse-cloning/SKILL.md +0 -28
  70. package/.codex/skills/sinapse-commercial/SKILL.md +0 -28
  71. package/.codex/skills/sinapse-content/SKILL.md +0 -28
  72. package/.codex/skills/sinapse-copy/SKILL.md +0 -28
  73. package/.codex/skills/sinapse-council/SKILL.md +0 -28
  74. package/.codex/skills/sinapse-courses/SKILL.md +0 -28
  75. package/.codex/skills/sinapse-cyber/SKILL.md +0 -28
  76. package/.codex/skills/sinapse-data-engineer/SKILL.md +0 -31
  77. package/.codex/skills/sinapse-design/SKILL.md +0 -28
  78. package/.codex/skills/sinapse-dev/SKILL.md +0 -31
  79. package/.codex/skills/sinapse-devops/SKILL.md +0 -31
  80. package/.codex/skills/sinapse-finance/SKILL.md +0 -28
  81. package/.codex/skills/sinapse-growth/SKILL.md +0 -28
  82. package/.codex/skills/sinapse-loop/SKILL.md +0 -35
  83. package/.codex/skills/sinapse-orqx/SKILL.md +0 -44
  84. package/.codex/skills/sinapse-paidmedia/SKILL.md +0 -28
  85. package/.codex/skills/sinapse-pm/SKILL.md +0 -31
  86. package/.codex/skills/sinapse-po/SKILL.md +0 -31
  87. package/.codex/skills/sinapse-product/SKILL.md +0 -28
  88. package/.codex/skills/sinapse-qa/SKILL.md +0 -31
  89. package/.codex/skills/sinapse-research/SKILL.md +0 -28
  90. package/.codex/skills/sinapse-sm/SKILL.md +0 -27
  91. package/.codex/skills/sinapse-spec-driven/SKILL.md +0 -35
  92. package/.codex/skills/sinapse-squad-creator/SKILL.md +0 -31
  93. package/.codex/skills/sinapse-storytelling/SKILL.md +0 -28
  94. package/.codex/skills/sinapse-swarm/SKILL.md +0 -28
  95. package/.codex/skills/sinapse-ux-design-expert/SKILL.md +0 -24
  96. package/.codex/skills/snps/SKILL.md +0 -10
  97. package/.codex/skills/snps-orqx/SKILL.md +0 -10
  98. /package/{.codex → .agents}/skills/react-bits-frontend/SKILL.md +0 -0
  99. /package/{.codex → .agents}/skills/react-bits-frontend/agents/openai.yaml +0 -0
  100. /package/{.codex → .agents}/skills/react-bits-frontend/references/corpus-map.md +0 -0
@@ -0,0 +1,170 @@
1
+ {
2
+ "hooks": {
3
+ "UserPromptSubmit": [
4
+ {
5
+ "hooks": [
6
+ {
7
+ "type": "command",
8
+ "command": "node \"${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/synapse-wrapper.cjs\"",
9
+ "timeout": 10
10
+ }
11
+ ]
12
+ }
13
+ ],
14
+ "PreCompact": [
15
+ {
16
+ "hooks": [
17
+ {
18
+ "type": "command",
19
+ "command": "node \"${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/precompact-wrapper.cjs\"",
20
+ "timeout": 10
21
+ }
22
+ ]
23
+ }
24
+ ],
25
+ "PreToolUse": [
26
+ {
27
+ "matcher": "Write|Edit|Bash",
28
+ "hooks": [
29
+ {
30
+ "type": "command",
31
+ "command": "node \"${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/enforce-permission-mode.cjs\"",
32
+ "timeout": 5
33
+ }
34
+ ]
35
+ },
36
+ {
37
+ "matcher": "Bash",
38
+ "hooks": [
39
+ {
40
+ "type": "command",
41
+ "command": "bash \"${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/enforce-git-push-authority.sh\"",
42
+ "timeout": 5
43
+ }
44
+ ]
45
+ },
46
+ {
47
+ "matcher": "Write|Edit",
48
+ "hooks": [
49
+ {
50
+ "type": "command",
51
+ "command": "node \"${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/enforce-framework-boundary.cjs\"",
52
+ "timeout": 5
53
+ },
54
+ {
55
+ "type": "command",
56
+ "command": "node \"${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/enforce-architecture-first.cjs\"",
57
+ "timeout": 5
58
+ },
59
+ {
60
+ "type": "command",
61
+ "command": "node \"${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/write-path-validation.cjs\"",
62
+ "timeout": 5
63
+ },
64
+ {
65
+ "type": "command",
66
+ "command": "node \"${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/enforce-story-gate.cjs\"",
67
+ "timeout": 5
68
+ },
69
+ {
70
+ "type": "command",
71
+ "command": "node \"${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/doc-first-gate.cjs\"",
72
+ "timeout": 5
73
+ },
74
+ {
75
+ "type": "command",
76
+ "command": "node \"${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/enforce-nsn-guard.cjs\"",
77
+ "timeout": 5
78
+ },
79
+ {
80
+ "type": "command",
81
+ "command": "node \"${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/code-intel-pretool.cjs\"",
82
+ "timeout": 5
83
+ }
84
+ ]
85
+ },
86
+ {
87
+ "matcher": "Write|Edit|Bash",
88
+ "hooks": [
89
+ {
90
+ "type": "command",
91
+ "command": "node \"${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/enforce-delegation.cjs\"",
92
+ "timeout": 5
93
+ }
94
+ ]
95
+ },
96
+ {
97
+ "matcher": "Bash",
98
+ "hooks": [
99
+ {
100
+ "type": "command",
101
+ "command": "node \"${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/verify-packages.cjs\"",
102
+ "timeout": 10
103
+ }
104
+ ]
105
+ },
106
+ {
107
+ "matcher": "Bash",
108
+ "hooks": [
109
+ {
110
+ "type": "command",
111
+ "command": "python3 \"${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/sql-governance.py\"",
112
+ "timeout": 5
113
+ }
114
+ ]
115
+ },
116
+ {
117
+ "matcher": "Read",
118
+ "hooks": [
119
+ {
120
+ "type": "command",
121
+ "command": "python3 \"${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/read-protection.py\"",
122
+ "timeout": 5
123
+ }
124
+ ]
125
+ },
126
+ {
127
+ "matcher": "Write|Edit",
128
+ "hooks": [
129
+ {
130
+ "type": "command",
131
+ "command": "python3 \"${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/slug-validation.py\"",
132
+ "timeout": 5
133
+ },
134
+ {
135
+ "type": "command",
136
+ "command": "python3 \"${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/mind-clone-governance.py\"",
137
+ "timeout": 5
138
+ },
139
+ {
140
+ "type": "command",
141
+ "command": "node \"${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/secret-scanning.cjs\"",
142
+ "timeout": 5
143
+ }
144
+ ]
145
+ }
146
+ ],
147
+ "PostToolUse": [
148
+ {
149
+ "hooks": [
150
+ {
151
+ "type": "command",
152
+ "command": "node \"${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/telemetry-post-tool.cjs\"",
153
+ "timeout": 3
154
+ }
155
+ ]
156
+ }
157
+ ],
158
+ "Stop": [
159
+ {
160
+ "hooks": [
161
+ {
162
+ "type": "command",
163
+ "command": "node \"${CLAUDE_PROJECT_DIR:-.}/.claude/hooks/telemetry-stop.cjs\"",
164
+ "timeout": 5
165
+ }
166
+ ]
167
+ }
168
+ ]
169
+ }
170
+ }
@@ -3,7 +3,7 @@
3
3
  "catalogMode": "expanded",
4
4
  "canonicalAgentsDir": ".sinapse-ai/development/agents",
5
5
  "codexAgentsDir": ".codex/agents",
6
- "skillsDir": ".codex/skills",
6
+ "skillsDir": ".agents/skills",
7
7
  "expectedSkillIds": [
8
8
  "sinapse-agent",
9
9
  "sinapse-analyst",
@@ -82,10 +82,6 @@ function buildDoctorReport(projectRoot = PROJECT_ROOT) {
82
82
  projectRoot,
83
83
  `.agents/skills/${skillId}/SKILL.md`,
84
84
  ),
85
- legacy: relativeFileExists(
86
- projectRoot,
87
- `.codex/skills/${skillId}/SKILL.md`,
88
- ),
89
85
  }));
90
86
  const delegationEquivalent =
91
87
  JSON.stringify(delegationMatrix) === JSON.stringify(delegationParity);
@@ -97,7 +93,6 @@ function buildDoctorReport(projectRoot = PROJECT_ROOT) {
97
93
  delegationEquivalent,
98
94
  nativeAgentParity: agentSurfaces.markdown === agentSurfaces.toml,
99
95
  nativeWorkflowSkills: skills.every((skill) => skill.native),
100
- legacyWorkflowSkills: skills.every((skill) => skill.legacy),
101
96
  workflowResolver: relativeFileExists(
102
97
  projectRoot,
103
98
  '.codex/scripts/resolve-codex-workflow.js',
@@ -3,8 +3,8 @@
3
3
 
4
4
  /**
5
5
  * Generate native Codex custom-agent adapters from the existing Markdown
6
- * pointers and restore authoritative native workflow skills after the legacy
7
- * Codex sync. Canonical agent definitions remain in `.sinapse-ai/` and
6
+ * pointers and maintain the authoritative native skill catalog. Canonical
7
+ * agent definitions remain in `.sinapse-ai/` and
8
8
  * `squads/`; generated files only teach Codex how to activate them.
9
9
  */
10
10
 
@@ -15,7 +15,6 @@ const { PROJECT_ROOT, loadCodexAgentIndex } = require('./resolve-codex-agent');
15
15
 
16
16
  const CODEX_AGENTS_DIR = '.codex/agents';
17
17
  const NATIVE_SKILLS_DIR = '.agents/skills';
18
- const COMPATIBILITY_SKILLS_DIR = '.codex/skills';
19
18
  const NATIVE_WORKFLOW_SKILLS = Object.freeze([
20
19
  'sinapse-orqx',
21
20
  'sinapse-spec-driven',
@@ -438,12 +437,7 @@ function collectCodexActivationSkills(projectRoot = PROJECT_ROOT, options = {})
438
437
  continue;
439
438
  }
440
439
 
441
- const relativePath = `${COMPATIBILITY_SKILLS_DIR}/${skillId}/SKILL.md`;
442
- const sourcePath = path.resolve(root, relativePath);
443
- if (!isPathInside(root, sourcePath) || !fs.existsSync(sourcePath)) {
444
- throw new Error(`Missing catalog activation skill: ${relativePath}`);
445
- }
446
- skills.push({ skillId, relativePath, content: fs.readFileSync(sourcePath, 'utf8') });
440
+ throw new Error(`Missing native catalog activation skill: ${nativeRelativePath}`);
447
441
  }
448
442
 
449
443
  for (const skillId of catalog.publicAliasSkillIds) {
@@ -483,7 +477,7 @@ function syncNativeActivationSkills(projectRoot, skills = collectCodexActivation
483
477
  created: 0,
484
478
  updated: 0,
485
479
  unchanged: 0,
486
- sourceDir: COMPATIBILITY_SKILLS_DIR,
480
+ sourceDir: NATIVE_SKILLS_DIR,
487
481
  outputDir: normalizePath(path.relative(projectRoot, outputDir)),
488
482
  };
489
483
 
@@ -516,33 +510,9 @@ function collectNativeWorkflowSkills(projectRoot = PROJECT_ROOT) {
516
510
  });
517
511
  }
518
512
 
519
- function syncCodexWorkflowSkills(projectRoot, skills = collectNativeWorkflowSkills(projectRoot)) {
520
- const outputDir = path.join(projectRoot, COMPATIBILITY_SKILLS_DIR);
521
- const summary = {
522
- total: skills.length,
523
- created: 0,
524
- updated: 0,
525
- unchanged: 0,
526
- sourceDir: NATIVE_SKILLS_DIR,
527
- outputDir: normalizePath(path.relative(projectRoot, outputDir)),
528
- };
529
-
530
- for (const skill of skills) {
531
- const skillDir = path.join(outputDir, skill.skillId);
532
- fs.mkdirSync(skillDir, { recursive: true });
533
- const status = writeFileIfChanged(path.join(skillDir, 'SKILL.md'), skill.content);
534
- summary[status] += 1;
535
- }
536
-
537
- return summary;
538
- }
539
-
540
513
  function syncCodexNativeAgents(projectRoot = PROJECT_ROOT, options = {}) {
541
514
  const definitions = collectNativeAgentDefinitions(projectRoot);
542
515
  const activationSkills = collectCodexActivationSkills(projectRoot, options);
543
- const compatibilitySkills = options.expandedSkills === true
544
- ? collectCodexActivationSkills(projectRoot)
545
- : activationSkills;
546
516
  const outputDir = path.join(projectRoot, CODEX_AGENTS_DIR);
547
517
  fs.mkdirSync(outputDir, { recursive: true });
548
518
 
@@ -562,7 +532,6 @@ function syncCodexNativeAgents(projectRoot = PROJECT_ROOT, options = {}) {
562
532
 
563
533
  summary.nativeSkills = syncNativeActivationSkills(projectRoot, activationSkills);
564
534
  summary.activationMode = options.expandedSkills === true ? 'expanded' : 'tiered';
565
- summary.skills = syncCodexWorkflowSkills(projectRoot, compatibilitySkills);
566
535
 
567
536
  return summary;
568
537
  }
@@ -585,7 +554,6 @@ if (require.main === module) {
585
554
  module.exports = {
586
555
  CODEX_AGENTS_DIR,
587
556
  NATIVE_SKILLS_DIR,
588
- COMPATIBILITY_SKILLS_DIR,
589
557
  NATIVE_WORKFLOW_SKILLS,
590
558
  CODEX_CATALOG_PATH,
591
559
  SUPREME_ORCHESTRATOR_ID,
@@ -609,6 +577,5 @@ module.exports = {
609
577
  renderExpandedAgentSkill,
610
578
  collectCodexActivationSkills,
611
579
  syncNativeActivationSkills,
612
- syncCodexWorkflowSkills,
613
580
  syncCodexNativeAgents,
614
581
  };
@@ -133,7 +133,6 @@ function validateNativeCodex(projectRoot = PROJECT_ROOT) {
133
133
  const metrics = {
134
134
  markdownAgents: 0,
135
135
  nativeAgents: 0,
136
- compatibilitySkills: 0,
137
136
  nativeSkills: 0,
138
137
  commands: 0,
139
138
  };
@@ -195,33 +194,24 @@ function validateNativeCodex(projectRoot = PROJECT_ROOT) {
195
194
  }
196
195
  check(nativeNames.has('sinapse-orqx'), 'Native supreme orchestrator must be named sinapse-orqx');
197
196
 
198
- const skillIdsByRoot = {};
199
- for (const [label, relativeRoot] of [['Compatibility skill', '.codex/skills'], ['Native skill', '.agents/skills']]) {
200
- const files = collectSkillFiles(path.join(projectRoot, relativeRoot));
201
- skillIdsByRoot[relativeRoot] = new Set(files.map((file) => path.basename(path.dirname(file))));
202
- if (label === 'Compatibility skill') metrics.compatibilitySkills = files.length;
203
- else metrics.nativeSkills = files.length;
204
- for (const file of files) capture(`${label} ${path.relative(projectRoot, file)}`, () => {
205
- const metadata = parseSkillFrontmatter(file);
206
- check(metadata.name === path.basename(path.dirname(file)),
207
- `${path.relative(projectRoot, file)} frontmatter name must match its directory`);
208
- return metadata;
209
- });
210
- }
197
+ const nativeSkillRoot = '.agents/skills';
198
+ const nativeSkillFiles = collectSkillFiles(path.join(projectRoot, nativeSkillRoot));
199
+ const nativeSkillIds = new Set(nativeSkillFiles.map((file) => path.basename(path.dirname(file))));
200
+ metrics.nativeSkills = nativeSkillFiles.length;
201
+ for (const file of nativeSkillFiles) capture(`Native skill ${path.relative(projectRoot, file)}`, () => {
202
+ const metadata = parseSkillFrontmatter(file);
203
+ check(metadata.name === path.basename(path.dirname(file)),
204
+ `${path.relative(projectRoot, file)} frontmatter name must match its directory`);
205
+ return metadata;
206
+ });
211
207
  const catalog = capture('Codex activation catalog', () => readCodexCatalog(projectRoot));
212
208
  if (catalog) {
213
209
  const managedSkillIds = getManagedActivationSkillIds(catalog);
214
210
  for (const skillId of managedSkillIds) {
215
- check(skillIdsByRoot['.agents/skills'].has(skillId),
211
+ check(nativeSkillIds.has(skillId),
216
212
  `Missing native activation skill .agents/skills/${skillId}/SKILL.md`);
217
- check(skillIdsByRoot['.codex/skills'].has(skillId),
218
- `Missing compatibility activation skill .codex/skills/${skillId}/SKILL.md`);
219
- const nativePath = path.join(projectRoot, '.agents', 'skills', skillId, 'SKILL.md');
220
- const compatibilityPath = path.join(projectRoot, '.codex', 'skills', skillId, 'SKILL.md');
221
- if (fs.existsSync(nativePath) && fs.existsSync(compatibilityPath)) {
222
- check(fs.readFileSync(nativePath, 'utf8') === fs.readFileSync(compatibilityPath, 'utf8'),
223
- `Native and compatibility activation skill differ: ${skillId}`);
224
- }
213
+ check(!fs.existsSync(path.join(projectRoot, '.codex', 'skills', skillId, 'SKILL.md')),
214
+ `Duplicate managed Codex skill surface: ${skillId} exists in both .agents/skills and .codex/skills`);
225
215
  }
226
216
  }
227
217
 
@@ -15,7 +15,7 @@ Guide the user through the real Codex operating surface for SINAPSE in this repo
15
15
  - `/skills` -> `sinapse-<agent>`
16
16
  - `@agent` aliases from `AGENTS.md`
17
17
  3. Explain the two Codex layers:
18
- - `.codex/skills` for activation
18
+ - `.agents/skills` for activation
19
19
  - `.codex/agents` for expanded catalog and specialist context
20
20
  4. Explain the validated operator commands:
21
21
  - `npm run sync:ide:codex`
@@ -1,7 +1,7 @@
1
1
  metadata:
2
2
  version: 1.0.0
3
- lastUpdated: '2026-07-15T03:11:31.074Z'
4
- entityCount: 816
3
+ lastUpdated: '2026-07-15T08:35:27.084Z'
4
+ entityCount: 817
5
5
  checksumAlgorithm: sha256
6
6
  resolutionRate: 100
7
7
  entities:
@@ -41,8 +41,8 @@ entities:
41
41
  score: 0.7
42
42
  constraints: []
43
43
  extensionPoints: []
44
- checksum: sha256:f66f076d3c8bead4fa1193fe027582c0487019e363bd37012db6a6cc1d90ab6d
45
- lastVerified: '2026-07-02T22:41:00.485Z'
44
+ checksum: sha256:cbde468c6a5d8c09667d54ba512489023d422a1e843a3256c2e722f29ab26bc8
45
+ lastVerified: '2026-07-15T04:47:59.892Z'
46
46
  agents:
47
47
  path: bin/commands/agents.js
48
48
  layer: L1
@@ -106,8 +106,8 @@ entities:
106
106
  score: 0.7
107
107
  constraints: []
108
108
  extensionPoints: []
109
- checksum: sha256:af615f80ca758541b8ede2af086aead94b99f194336459529ab3876186462a3d
110
- lastVerified: '2026-07-02T22:41:00.486Z'
109
+ checksum: sha256:eacc95a711bcbbd840a0a52b11bc1724b9a13282af3f914f938c9a55b2797a72
110
+ lastVerified: '2026-07-15T04:28:12.370Z'
111
111
  ideate:
112
112
  path: bin/commands/ideate.js
113
113
  layer: L1
@@ -154,6 +154,7 @@ entities:
154
154
  - status
155
155
  - command-generator
156
156
  - global-provider-adapters
157
+ - provider-parity
157
158
  - install-transaction
158
159
  - install-errors
159
160
  - chrome-brain-installer
@@ -165,8 +166,8 @@ entities:
165
166
  score: 0.7
166
167
  constraints: []
167
168
  extensionPoints: []
168
- checksum: sha256:d410cc6498c4906818d29c86c4ee7c6a28d76283bd2071be218088540a879b0f
169
- lastVerified: '2026-07-15T02:37:43.454Z'
169
+ checksum: sha256:1f385982ca84a8232f3f6b1fce4257ca3971a5fd24830b5389477f9a5a8e943a
170
+ lastVerified: '2026-07-15T08:12:47.676Z'
170
171
  local:
171
172
  path: bin/commands/local.js
172
173
  layer: L1
@@ -204,6 +205,7 @@ entities:
204
205
  - constants
205
206
  - header
206
207
  - squads
208
+ - uninstall
207
209
  - observability-panel
208
210
  externalDeps: []
209
211
  plannedDeps:
@@ -213,8 +215,8 @@ entities:
213
215
  score: 0.7
214
216
  constraints: []
215
217
  extensionPoints: []
216
- checksum: sha256:82ec537932c7b6c7e46c294ac4396c988bea43583a1f1f7a1886d2b13518dd55
217
- lastVerified: '2026-06-21T05:24:05.621Z'
218
+ checksum: sha256:9f1b50e9b2669eb854a49b338498c79826212ef001fa38ced894dfecc4d949de
219
+ lastVerified: '2026-07-15T07:51:17.101Z'
218
220
  uninstall:
219
221
  path: bin/commands/uninstall.js
220
222
  layer: L1
@@ -226,6 +228,7 @@ entities:
226
228
  - cli
227
229
  - install
228
230
  - sinapse
231
+ - status
229
232
  - update
230
233
  dependencies:
231
234
  - constants
@@ -235,14 +238,15 @@ entities:
235
238
  - spawn-safe
236
239
  externalDeps: []
237
240
  plannedDeps:
241
+ - legacy-claude-agent-command-hashes
238
242
  - logger
239
243
  lifecycle: production
240
244
  adaptability:
241
245
  score: 0.7
242
246
  constraints: []
243
247
  extensionPoints: []
244
- checksum: sha256:1116a6ee85257c1ad26c9d7de4b24b681c1045c19d09f0572be57e77b3053b77
245
- lastVerified: '2026-07-15T02:37:43.455Z'
248
+ checksum: sha256:a97ad181e34f7cc3af15be278826a32400c59faeb6d8bd914dfdaea7dc0f00c6
249
+ lastVerified: '2026-07-15T08:35:26.856Z'
246
250
  update:
247
251
  path: bin/commands/update.js
248
252
  layer: L1
@@ -263,6 +267,7 @@ entities:
263
267
  - uninstall
264
268
  - command-generator
265
269
  - global-provider-adapters
270
+ - provider-parity
266
271
  externalDeps: []
267
272
  plannedDeps:
268
273
  - logger
@@ -271,8 +276,8 @@ entities:
271
276
  score: 0.7
272
277
  constraints: []
273
278
  extensionPoints: []
274
- checksum: sha256:1cc8b0622d9d0137feb4c7e1f93c7303a98d7e5b696b8c995495d75dff815a09
275
- lastVerified: '2026-07-15T02:37:43.455Z'
279
+ checksum: sha256:b51998a172a91e134330847185c078d317ed9be2da6746de3af18d209b7e08d9
280
+ lastVerified: '2026-07-15T08:12:47.677Z'
276
281
  command-generator:
277
282
  path: bin/lib/command-generator.js
278
283
  layer: L1
@@ -416,8 +421,8 @@ entities:
416
421
  score: 0.7
417
422
  constraints: []
418
423
  extensionPoints: []
419
- checksum: sha256:289930cccfb6aca324bf6f460f9cfe2ebda6fcc6ee1f54d7ee3cfcfbbe86e5c1
420
- lastVerified: '2026-07-15T03:11:30.770Z'
424
+ checksum: sha256:d28b19935a9c75408df9da7430fc3ca9568bdea0cfc1ae3c01d0025ad19fc2a3
425
+ lastVerified: '2026-07-15T07:09:56.286Z'
421
426
  header:
422
427
  path: bin/lib/header.js
423
428
  layer: L1
@@ -470,6 +475,27 @@ entities:
470
475
  extensionPoints: []
471
476
  checksum: sha256:dc7cc1109f2bbdb7b3c5927df0de2418925842bdacdc0ba82815bfa2783d0b42
472
477
  lastVerified: '2026-06-22T02:41:18.152Z'
478
+ provider-parity:
479
+ path: bin/lib/provider-parity.js
480
+ layer: L1
481
+ type: script
482
+ purpose: Entity at bin\lib\provider-parity.js
483
+ keywords:
484
+ - provider
485
+ - parity
486
+ usedBy:
487
+ - install
488
+ - update
489
+ dependencies: []
490
+ externalDeps: []
491
+ plannedDeps: []
492
+ lifecycle: production
493
+ adaptability:
494
+ score: 0.7
495
+ constraints: []
496
+ extensionPoints: []
497
+ checksum: sha256:592206326a2a3c5a3d89068d9ef065d698562aef40e6096d971fb793cea11c97
498
+ lastVerified: '2026-07-15T08:35:26.859Z'
473
499
  setup-statusline:
474
500
  path: bin/lib/setup-statusline.js
475
501
  layer: L1
@@ -594,8 +620,8 @@ entities:
594
620
  score: 0.7
595
621
  constraints: []
596
622
  extensionPoints: []
597
- checksum: sha256:7d7af407aecf1704b20d248edc724fa9482cff291743543bf3f6e57336fa9a55
598
- lastVerified: '2026-07-03T06:55:48.457Z'
623
+ checksum: sha256:4d180833ee2ac17bd378755e27a79dca0f559783a99aad830c14d3071c14f754
624
+ lastVerified: '2026-07-15T07:51:17.104Z'
599
625
  sinapse-delegate:
600
626
  path: bin/sinapse-delegate.js
601
627
  layer: L1
@@ -7,7 +7,7 @@
7
7
  # - SHA256 hashes for change detection
8
8
  # - File types for categorization
9
9
  #
10
- version: 1.25.0
10
+ version: 1.25.1
11
11
  generator: scripts/generate-install-manifest.js
12
12
  file_count: 1156
13
13
  files:
@@ -1368,9 +1368,9 @@ files:
1368
1368
  type: data
1369
1369
  size: 9671
1370
1370
  - path: data/entity-registry.yaml
1371
- hash: sha256:67f0f15427e7a10e10dc4a535fa3b46f3cb3628d1104d029e8ec49daf8f84113
1371
+ hash: sha256:ed0919b2bc3479beb4e46d3ccfbbbda66e46161c7eebc9018b9f0c8e5278d7f1
1372
1372
  type: data
1373
- size: 559287
1373
+ size: 559991
1374
1374
  - path: data/learned-patterns.yaml
1375
1375
  hash: sha256:1a4cd045c087b9dfd7046ff1464a9d2edb85fba77cf0b6fba14f4bb9004c741e
1376
1376
  type: data
package/CHANGELOG.md CHANGED
@@ -1,22 +1,14 @@
1
- ## [1.25.0](https://github.com/caioimori/sinapse-ai/compare/1.24.0...1.25.0) (2026-07-15)
2
-
3
- ### Features
4
-
5
- * **cli:** ship native Claude and Codex parity [Story cross-provider-cli-quality] ([191a525](https://github.com/caioimori/sinapse-ai/commit/191a525027178cd46aaf7aa24a0dd445a60634cb))
1
+ ## [1.25.1](https://github.com/caioimori/sinapse-ai/compare/1.25.0...1.25.1) (2026-07-15)
6
2
 
7
3
  ### Bug Fixes
8
4
 
9
- * **badges:** decodifica emoji double-escaped no gerador + regenera selos pos-renames [Story badges-emoji-decode] ([#375](https://github.com/caioimori/sinapse-ai/issues/375)) ([39a97f9](https://github.com/caioimori/sinapse-ai/commit/39a97f9cc992d36f50ac8b544b2dd7f07a4bf2fd)), closes [#332](https://github.com/caioimori/sinapse-ai/issues/332)
10
- * **ci:** use supported macOS Intel runner [Story cross-provider-cli-quality] ([1d1ca4f](https://github.com/caioimori/sinapse-ai/commit/1d1ca4f61adf9cb9425f25ba5683bf32bea03eaf))
11
- * **docs:** sync canonical task metrics [Story cross-provider-cli-quality] ([a6031de](https://github.com/caioimori/sinapse-ai/commit/a6031deb0e98e9897af8ae302962b36e08dc8883))
12
- * **release:** harden cross-provider package gates [Story cross-provider-cli-quality] ([57dff2d](https://github.com/caioimori/sinapse-ai/commit/57dff2d166e1011c14a359140a00a974526e3976))
13
-
14
- ### Maintenance
15
-
16
- * **manifest:** sync registry package hash [Story cross-provider-cli-quality] ([357905f](https://github.com/caioimori/sinapse-ai/commit/357905f21cb6a34e266e25e6eb81c7545245bf20))
17
- * **registry:** sync provider adapter checksum [Story cross-provider-cli-quality] ([ef65ce8](https://github.com/caioimori/sinapse-ai/commit/ef65ce881354ae95f09512c1ffe5d49e4134eb92))
18
- * **release:** sync da main pos-release 1.24.0 ([#374](https://github.com/caioimori/sinapse-ai/issues/374)) ([d1fee0a](https://github.com/caioimori/sinapse-ai/commit/d1fee0a36e780ddc1eb4abc33af1649810bc0c97))
19
- * **repo:** remove landing estatica da vitrine [Story cleanup-landing-coderabbit] ([5391bfa](https://github.com/caioimori/sinapse-ai/commit/5391bfa6e69f5cb289b4eabcc1ea0822852a5462))
5
+ * **ci:** derive Codex skill count from payload [Story sinapse-only-catalog-cleanup] ([e371a0d](https://github.com/caioimori/sinapse-ai/commit/e371a0ddf9daf944ca803a75dac9807b89d8e257))
6
+ * **installer:** enforce conservative provider ownership [Story sinapse-only-catalog-cleanup] ([1b4f896](https://github.com/caioimori/sinapse-ai/commit/1b4f896d520a02124dc3107c604106f8ba8c8fae))
7
+ * **installer:** harden ownership and hook validation [Story sinapse-only-catalog-cleanup] ([4575a84](https://github.com/caioimori/sinapse-ai/commit/4575a84d6062feb8198e9480f15365e6218b7e61))
8
+ * **installer:** preserve provider-owned state [Story sinapse-only-catalog-cleanup] ([df67e88](https://github.com/caioimori/sinapse-ai/commit/df67e8836e4f2f42a2cb075d6063a01e0b8ad4c6))
9
+ * **installer:** reconcile provider-native catalogs [Story sinapse-only-catalog-cleanup] ([830b36c](https://github.com/caioimori/sinapse-ai/commit/830b36c8108610de2067d09426bfd7e13d315672))
10
+ * **security:** harden managed file reconciliation [Story sinapse-only-catalog-cleanup] ([3899921](https://github.com/caioimori/sinapse-ai/commit/3899921579851a6490e4866e7284ed88afe67c92))
11
+ * **test:** resolve Bash paths across Windows runtimes [Story sinapse-only-catalog-cleanup] ([a788b04](https://github.com/caioimori/sinapse-ai/commit/a788b0434f9718eb74c1caa6dc0ae091ea4dac65))
20
12
 
21
13
  # Changelog
22
14
 
package/bin/cli.js CHANGED
@@ -96,6 +96,10 @@ if (require.main === module) {
96
96
 
97
97
  function runRouter() {
98
98
  const args = process.argv.slice(2);
99
+ if (args[0] === 'install' && (args.includes('--help') || args.includes('-h'))) {
100
+ cmdHelp();
101
+ return;
102
+ }
99
103
  // Story 10.46 — empty invocation on a fresh machine routes to a first-run
100
104
  // hint instead of the bare help screen, so new users discover `install`.
101
105
  let command = args[0];
@@ -105,9 +109,12 @@ function runRouter() {
105
109
  const isLocal = args.includes('--local');
106
110
  const isForce = args.includes('--force');
107
111
  const isReconfigure = args.includes('--reconfigure');
112
+ const isGlobalOnly = args.includes('--global-only');
113
+ const llmFlag = args.find((arg) => arg.startsWith('--llm='));
114
+ const requestedLlm = llmFlag ? llmFlag.slice('--llm='.length) : null;
108
115
 
109
116
  switch (command) {
110
- case 'install': isLocal ? cmdInstallLocal() : cmdInstallGlobal({ force: isForce, reconfigure: isReconfigure }).catch(e => { const { formatErrorMessage } = require('./utils/install-errors'); logger.error(formatErrorMessage(e)); logger.error(`Tente: ${CYAN}npx sinapse-ai doctor${NC}`); process.exit(1); }); break;
117
+ case 'install': isLocal ? cmdInstallLocal() : cmdInstallGlobal({ force: isForce, reconfigure: isReconfigure, globalOnly: isGlobalOnly, llm: requestedLlm }).catch(e => { const { formatErrorMessage } = require('./utils/install-errors'); logger.error(formatErrorMessage(e)); logger.error(`Tente: ${CYAN}npx sinapse-ai doctor${NC}`); process.exit(1); }); break;
111
118
  case 'update': isLocal ? cmdUpdateLocal() : cmdUpdateGlobal().catch(e => { logger.error(`${RED}Erro ao atualizar:${NC} ${e.message}`); logger.error(`Tente: ${CYAN}npx sinapse-ai doctor${NC}`); process.exit(1); }); break;
112
119
  case 'uninstall': {
113
120
  const isYes = args.includes('--yes') || args.includes('-y');
@@ -13,6 +13,7 @@ function cmdHelp() {
13
13
  logger.always(` ${CYAN}npx sinapse-ai install${NC} Instala SINAPSE (idempotente — re-runs são upserts)`);
14
14
  logger.always(` ${CYAN}npx sinapse-ai install --force${NC} Reinstala do zero, mesmo se já instalado`);
15
15
  logger.always(` ${CYAN}npx sinapse-ai install --reconfigure${NC} Re-pergunta idioma/LLM sem apagar instalação`);
16
+ logger.always(` ${CYAN}npx sinapse-ai install --llm=both --global-only${NC} Instala Claude + Codex sem alterar o projeto atual`);
16
17
  logger.always(` ${CYAN}npx sinapse-ai update${NC} Atualiza SINAPSE para a última versão`);
17
18
  logger.always(` ${CYAN}npx sinapse-ai uninstall${NC} Remove SINAPSE globalmente (pede confirmação)`);
18
19
  logger.always(` ${CYAN}npx sinapse-ai uninstall --yes${NC} Remove SINAPSE globalmente (sem prompt — exigido em CI)`);
@@ -36,8 +37,8 @@ function cmdHelp() {
36
37
  logger.always(` ${CYAN}sinapse --continue${NC} Continua última sessão`);
37
38
  logger.always('');
38
39
  logger.always(`${BOLD}Agents:${NC}\n`);
39
- logger.always(` Invocação canônica: ${CYAN}/SINAPSE:agents:{agent-id}${NC}`);
40
- logger.always(` Exemplo: ${CYAN}/SINAPSE:agents:brand-orqx${NC}`);
40
+ logger.always(` Invocação canônica: ${CYAN}$sinapse-agent <agent-id>${NC}`);
41
+ logger.always(` Exemplo: ${CYAN}$sinapse-agent brand-orqx${NC}`);
41
42
  logger.always(` Master orchestrator: ${CYAN}@sinapse-orqx${NC} (alias: ${DIM}@snps-orqx${NC})`);
42
43
  logger.always('');
43
44
  logger.always(`${BOLD}Ajuda extra:${NC}\n`);