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.
- package/.claude/settings.json +170 -0
- package/.codex/catalog.json +1 -1
- package/.codex/scripts/sinapse-codex.js +0 -5
- package/.codex/scripts/sync-codex-native.js +4 -37
- package/.codex/scripts/validate-codex-native.js +13 -23
- package/.codex/tasks/onboard-sinapse-codex.md +1 -1
- package/.sinapse-ai/data/entity-registry.yaml +44 -18
- package/.sinapse-ai/install-manifest.yaml +3 -3
- package/CHANGELOG.md +8 -16
- package/bin/cli.js +8 -1
- package/bin/commands/help.js +3 -2
- package/bin/commands/install.js +25 -14
- package/bin/commands/status.js +4 -3
- package/bin/commands/uninstall.js +216 -51
- package/bin/commands/update.js +8 -4
- package/bin/lib/global-provider-adapters.js +73 -10
- package/bin/lib/provider-parity.js +22 -0
- package/bin/postinstall.js +11 -11
- package/docs/framework/codex-parity/codex-integration-process.md +6 -7
- package/docs/framework/codex-parity/codex-native-runtime-v2.md +8 -8
- package/docs/framework/codex-parity/codex-parity-program.md +4 -4
- package/docs/framework/codex-parity/codex-total-parity-orchestration-plan.md +1 -1
- package/docs/guides/codex-config.md +2 -2
- package/docs/guides/development-setup.md +1 -2
- package/docs/guides/ide-integration.md +6 -6
- package/docs/guides/quality-gates.md +2 -2
- package/docs/ide-integration.md +2 -2
- package/docs/installation/faq.md +1 -1
- package/docs/installation/troubleshooting.md +2 -2
- package/docs/installation/v4-quick-start.md +1 -1
- package/docs/pt/contributing.md +1 -1
- package/docs/pt/guides/development-setup.md +1 -2
- package/docs/pt/guides/quality-gates.md +2 -2
- package/docs/pt/ide-integration.md +6 -6
- package/docs/pt/installation/faq.md +1 -1
- package/docs/pt/installation/troubleshooting.md +2 -3
- package/docs/pt/installation/v4-quick-start.md +1 -2
- package/docs/pt/platforms/claude-code.md +4 -4
- package/docs/sinapse-agent-flows/analyst-system.md +1 -1
- package/docs/sinapse-agent-flows/architect-system.md +1 -1
- package/docs/sinapse-agent-flows/data-engineer-system.md +1 -1
- package/docs/sinapse-agent-flows/dev-system.md +1 -1
- package/docs/sinapse-agent-flows/pm-system.md +1 -1
- package/docs/sinapse-agent-flows/qa-system.md +1 -1
- package/docs/sinapse-agent-flows/sm-system.md +1 -1
- package/docs/sinapse-agent-flows/snps-orqx-system.md +1 -1
- package/docs/sinapse-agent-flows/squad-creator-system.md +2 -2
- package/docs/sinapse-agent-flows/ux-design-expert-system.md +1 -1
- package/package.json +21 -16
- package/packages/installer/src/config/ide-configs.js +1 -1
- package/packages/installer/src/installer/sinapse-ai-installer.js +282 -10
- package/packages/installer/src/migrations/legacy-claude-agent-command-hashes.json +36 -0
- package/packages/installer/src/migrations/legacy-codex-native-skill-hashes.json +42 -0
- package/packages/installer/src/updater/index.js +24 -7
- package/packages/installer/src/wizard/ide-config-generator.js +4 -0
- package/packages/installer/src/wizard/index.js +6 -2
- package/scripts/validate-codex-command-registry.js +101 -0
- package/scripts/validate-provider-adapters.js +117 -1
- package/squads/claude-code-mastery/agents/skill-craftsman.md +2 -2
- package/squads/claude-code-mastery/knowledge-base/skill-creation-patterns.md +1 -1
- package/squads/squad-design/agents/ux-designer.md +1 -1
- package/.codex/skills/sinapse/SKILL.md +0 -10
- package/.codex/skills/sinapse-agent/SKILL.md +0 -22
- package/.codex/skills/sinapse-analyst/SKILL.md +0 -29
- package/.codex/skills/sinapse-animations/SKILL.md +0 -28
- package/.codex/skills/sinapse-architect/SKILL.md +0 -31
- package/.codex/skills/sinapse-brand/SKILL.md +0 -28
- package/.codex/skills/sinapse-claude/SKILL.md +0 -28
- package/.codex/skills/sinapse-cloning/SKILL.md +0 -28
- package/.codex/skills/sinapse-commercial/SKILL.md +0 -28
- package/.codex/skills/sinapse-content/SKILL.md +0 -28
- package/.codex/skills/sinapse-copy/SKILL.md +0 -28
- package/.codex/skills/sinapse-council/SKILL.md +0 -28
- package/.codex/skills/sinapse-courses/SKILL.md +0 -28
- package/.codex/skills/sinapse-cyber/SKILL.md +0 -28
- package/.codex/skills/sinapse-data-engineer/SKILL.md +0 -31
- package/.codex/skills/sinapse-design/SKILL.md +0 -28
- package/.codex/skills/sinapse-dev/SKILL.md +0 -31
- package/.codex/skills/sinapse-devops/SKILL.md +0 -31
- package/.codex/skills/sinapse-finance/SKILL.md +0 -28
- package/.codex/skills/sinapse-growth/SKILL.md +0 -28
- package/.codex/skills/sinapse-loop/SKILL.md +0 -35
- package/.codex/skills/sinapse-orqx/SKILL.md +0 -44
- package/.codex/skills/sinapse-paidmedia/SKILL.md +0 -28
- package/.codex/skills/sinapse-pm/SKILL.md +0 -31
- package/.codex/skills/sinapse-po/SKILL.md +0 -31
- package/.codex/skills/sinapse-product/SKILL.md +0 -28
- package/.codex/skills/sinapse-qa/SKILL.md +0 -31
- package/.codex/skills/sinapse-research/SKILL.md +0 -28
- package/.codex/skills/sinapse-sm/SKILL.md +0 -27
- package/.codex/skills/sinapse-spec-driven/SKILL.md +0 -35
- package/.codex/skills/sinapse-squad-creator/SKILL.md +0 -31
- package/.codex/skills/sinapse-storytelling/SKILL.md +0 -28
- package/.codex/skills/sinapse-swarm/SKILL.md +0 -28
- package/.codex/skills/sinapse-ux-design-expert/SKILL.md +0 -24
- package/.codex/skills/snps/SKILL.md +0 -10
- package/.codex/skills/snps-orqx/SKILL.md +0 -10
- /package/{.codex → .agents}/skills/react-bits-frontend/SKILL.md +0 -0
- /package/{.codex → .agents}/skills/react-bits-frontend/agents/openai.yaml +0 -0
- /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
|
+
}
|
package/.codex/catalog.json
CHANGED
|
@@ -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
|
|
7
|
-
*
|
|
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
|
-
|
|
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:
|
|
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
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
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(
|
|
211
|
+
check(nativeSkillIds.has(skillId),
|
|
216
212
|
`Missing native activation skill .agents/skills/${skillId}/SKILL.md`);
|
|
217
|
-
check(
|
|
218
|
-
`
|
|
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
|
-
- `.
|
|
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-
|
|
4
|
-
entityCount:
|
|
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:
|
|
45
|
-
lastVerified: '2026-07-
|
|
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:
|
|
110
|
-
lastVerified: '2026-07-
|
|
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:
|
|
169
|
-
lastVerified: '2026-07-
|
|
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:
|
|
217
|
-
lastVerified: '2026-
|
|
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:
|
|
245
|
-
lastVerified: '2026-07-
|
|
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:
|
|
275
|
-
lastVerified: '2026-07-
|
|
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:
|
|
420
|
-
lastVerified: '2026-07-
|
|
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:
|
|
598
|
-
lastVerified: '2026-07-
|
|
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.
|
|
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:
|
|
1371
|
+
hash: sha256:ed0919b2bc3479beb4e46d3ccfbbbda66e46161c7eebc9018b9f0c8e5278d7f1
|
|
1372
1372
|
type: data
|
|
1373
|
-
size:
|
|
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.
|
|
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
|
-
* **
|
|
10
|
-
* **
|
|
11
|
-
* **
|
|
12
|
-
* **
|
|
13
|
-
|
|
14
|
-
|
|
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');
|
package/bin/commands/help.js
CHANGED
|
@@ -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}
|
|
40
|
-
logger.always(` Exemplo: ${CYAN}
|
|
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`);
|