sinapse-ai 1.4.1 → 1.4.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.
- package/.sinapse-ai/core/doctor/checks/manifest-version-parity.js +34 -11
- package/.sinapse-ai/core/doctor/checks/npm-packages.js +18 -15
- package/.sinapse-ai/core/doctor/checks/skills-count.js +19 -22
- package/.sinapse-ai/core/doctor/index.js +16 -17
- package/.sinapse-ai/data/entity-registry.yaml +20 -37
- package/.sinapse-ai/data/registry-update-log.jsonl +4 -0
- package/.sinapse-ai/install-manifest.yaml +13 -13
- package/.sinapse-ai/package.json +1 -2
- package/package.json +1 -1
- package/scripts/sinapse-patch.js +37 -19
|
@@ -36,38 +36,61 @@ function readManifestVersion(manifestPath) {
|
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
async function run(context) {
|
|
39
|
+
// v1.4.2 fix: this check was designed for the FRAMEWORK REPO itself — it
|
|
40
|
+
// detects drift between `package.json` and the auto-generated install-manifest
|
|
41
|
+
// during pre-publish. When run in a USER project, the cwd `package.json` is
|
|
42
|
+
// the user's own (e.g. `version: "1.0.0"`), and `install-manifest.yaml` ships
|
|
43
|
+
// with the framework version. Comparing them is meaningless and the FAIL
|
|
44
|
+
// message + fix command (`npm run generate:manifest`) are confusing — that
|
|
45
|
+
// script only exists in the framework repo.
|
|
46
|
+
//
|
|
47
|
+
// Detect framework-repo context by reading `name` from package.json. Only
|
|
48
|
+
// perform parity check when name === "sinapse-ai". Otherwise INFO.
|
|
49
|
+
|
|
39
50
|
const pkgPath = path.join(context.projectRoot, 'package.json');
|
|
40
51
|
const manifestPath = path.join(context.projectRoot, '.sinapse-ai', 'install-manifest.yaml');
|
|
41
52
|
|
|
42
53
|
if (!fs.existsSync(pkgPath)) {
|
|
43
54
|
return {
|
|
44
55
|
check: name,
|
|
45
|
-
status: '
|
|
46
|
-
message: 'package.json
|
|
56
|
+
status: 'INFO',
|
|
57
|
+
message: 'No package.json — parity check not applicable',
|
|
47
58
|
fixCommand: null,
|
|
48
59
|
};
|
|
49
60
|
}
|
|
50
|
-
|
|
61
|
+
|
|
62
|
+
let pkgJson;
|
|
63
|
+
try {
|
|
64
|
+
pkgJson = JSON.parse(fs.readFileSync(pkgPath, 'utf8'));
|
|
65
|
+
} catch {
|
|
51
66
|
return {
|
|
52
67
|
check: name,
|
|
53
68
|
status: 'WARN',
|
|
54
|
-
message: '
|
|
55
|
-
fixCommand:
|
|
69
|
+
message: 'package.json could not be parsed',
|
|
70
|
+
fixCommand: null,
|
|
56
71
|
};
|
|
57
72
|
}
|
|
58
73
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
pkgVersion = JSON.parse(fs.readFileSync(pkgPath, 'utf8')).version;
|
|
62
|
-
} catch {
|
|
74
|
+
// Only audit parity inside the framework repo itself.
|
|
75
|
+
if (pkgJson.name !== 'sinapse-ai') {
|
|
63
76
|
return {
|
|
64
77
|
check: name,
|
|
65
|
-
status: '
|
|
66
|
-
message: '
|
|
78
|
+
status: 'INFO',
|
|
79
|
+
message: 'Parity check skipped (not the sinapse-ai repo)',
|
|
67
80
|
fixCommand: null,
|
|
68
81
|
};
|
|
69
82
|
}
|
|
70
83
|
|
|
84
|
+
if (!fs.existsSync(manifestPath)) {
|
|
85
|
+
return {
|
|
86
|
+
check: name,
|
|
87
|
+
status: 'WARN',
|
|
88
|
+
message: 'install-manifest.yaml not found',
|
|
89
|
+
fixCommand: 'npm run generate:manifest',
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
const pkgVersion = pkgJson.version;
|
|
71
94
|
const manifestVersion = readManifestVersion(manifestPath);
|
|
72
95
|
|
|
73
96
|
if (!pkgVersion || !manifestVersion) {
|
|
@@ -31,18 +31,15 @@ function canResolveDep(dep, fromDir) {
|
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
async function run(context) {
|
|
34
|
-
|
|
35
|
-
//
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
fixCommand: 'npm install',
|
|
42
|
-
};
|
|
43
|
-
}
|
|
34
|
+
// v1.4.2 fix: drop the "node_modules not found" hard FAIL.
|
|
35
|
+
// Many user projects don't have a project-level package.json or node_modules
|
|
36
|
+
// (e.g. someone using SINAPSE in a writing project, design repo, infra-only
|
|
37
|
+
// repo). The presence of project node_modules is NOT a requirement for the
|
|
38
|
+
// framework to work — Story 10.48 already established that .sinapse-ai deps
|
|
39
|
+
// can resolve via parent/global node_modules. Only flag what truly blocks
|
|
40
|
+
// the framework: unresolvable .sinapse-ai deps.
|
|
44
41
|
|
|
45
|
-
//
|
|
42
|
+
// Story 10.48: resolve declared deps via Node's resolver.
|
|
46
43
|
// Walks parent + global directories — does NOT require a sibling
|
|
47
44
|
// node_modules/ inside .sinapse-ai/ when the dep is reachable elsewhere.
|
|
48
45
|
const sinapseCoreDir = path.join(context.projectRoot, '.sinapse-ai');
|
|
@@ -82,19 +79,25 @@ async function run(context) {
|
|
|
82
79
|
};
|
|
83
80
|
}
|
|
84
81
|
|
|
85
|
-
|
|
82
|
+
// v1.4.2: report status based on what's actually relevant — sinapse-ai
|
|
83
|
+
// deps resolvability, not the presence of an arbitrary node_modules dir.
|
|
84
|
+
let message;
|
|
86
85
|
if (hasSinapseCorePkg) {
|
|
87
86
|
if (fs.existsSync(sinapseCoreNodeModules)) {
|
|
88
|
-
|
|
87
|
+
message = `.sinapse-ai deps complete (${totalDeps} declared)`;
|
|
89
88
|
} else if (totalDeps > 0) {
|
|
90
|
-
|
|
89
|
+
message = `.sinapse-ai deps (${totalDeps}) resolved via parent/global node_modules`;
|
|
90
|
+
} else {
|
|
91
|
+
message = '.sinapse-ai package has no deps declared';
|
|
91
92
|
}
|
|
93
|
+
} else {
|
|
94
|
+
message = 'no .sinapse-ai/package.json — framework runs from npm install';
|
|
92
95
|
}
|
|
93
96
|
|
|
94
97
|
return {
|
|
95
98
|
check: name,
|
|
96
99
|
status: 'PASS',
|
|
97
|
-
message
|
|
100
|
+
message,
|
|
98
101
|
fixCommand: null,
|
|
99
102
|
};
|
|
100
103
|
}
|
|
@@ -14,14 +14,20 @@ const fs = require('fs');
|
|
|
14
14
|
const name = 'skills-count';
|
|
15
15
|
|
|
16
16
|
async function run(context) {
|
|
17
|
+
// v1.4.2 fix: skills are OPTIONAL user-installed artifacts under .claude/skills/,
|
|
18
|
+
// not shipped by `npx sinapse-ai install` (verified against install-manifest).
|
|
19
|
+
// Previous behavior FAILed with "Run `npx sinapse-ai install --force`" — but
|
|
20
|
+
// force-reinstall doesn't create skills either. Now reports as INFO when
|
|
21
|
+
// absent and as PASS/WARN proportional to how many were installed by the user.
|
|
22
|
+
|
|
17
23
|
const skillsDir = path.join(context.projectRoot, '.claude', 'skills');
|
|
18
24
|
|
|
19
25
|
if (!fs.existsSync(skillsDir)) {
|
|
20
26
|
return {
|
|
21
27
|
check: name,
|
|
22
|
-
status: '
|
|
23
|
-
message: '
|
|
24
|
-
fixCommand:
|
|
28
|
+
status: 'INFO',
|
|
29
|
+
message: 'No .claude/skills/ directory — skills are optional (install via `npx claude-skills add <name>`)',
|
|
30
|
+
fixCommand: null,
|
|
25
31
|
};
|
|
26
32
|
}
|
|
27
33
|
|
|
@@ -31,9 +37,9 @@ async function run(context) {
|
|
|
31
37
|
} catch {
|
|
32
38
|
return {
|
|
33
39
|
check: name,
|
|
34
|
-
status: '
|
|
35
|
-
message: 'Cannot read skills directory',
|
|
36
|
-
fixCommand:
|
|
40
|
+
status: 'WARN',
|
|
41
|
+
message: 'Cannot read .claude/skills/ directory',
|
|
42
|
+
fixCommand: null,
|
|
37
43
|
};
|
|
38
44
|
}
|
|
39
45
|
|
|
@@ -46,31 +52,22 @@ async function run(context) {
|
|
|
46
52
|
if (count === 0) {
|
|
47
53
|
return {
|
|
48
54
|
check: name,
|
|
49
|
-
status: '
|
|
50
|
-
message: '
|
|
51
|
-
fixCommand: 'npx sinapse-ai install --force',
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
if (count >= 7) {
|
|
56
|
-
return {
|
|
57
|
-
check: name,
|
|
58
|
-
status: 'PASS',
|
|
59
|
-
message: `${count} skills found`,
|
|
55
|
+
status: 'INFO',
|
|
56
|
+
message: 'Skills directory exists but empty — skills are optional',
|
|
60
57
|
fixCommand: null,
|
|
61
58
|
};
|
|
62
59
|
}
|
|
63
60
|
|
|
64
61
|
return {
|
|
65
62
|
check: name,
|
|
66
|
-
status: '
|
|
67
|
-
message:
|
|
68
|
-
fixCommand:
|
|
63
|
+
status: 'PASS',
|
|
64
|
+
message: `${count} skill${count === 1 ? '' : 's'} installed`,
|
|
65
|
+
fixCommand: null,
|
|
69
66
|
};
|
|
70
67
|
}
|
|
71
68
|
|
|
72
|
-
//
|
|
73
|
-
const onError = '
|
|
69
|
+
// v1.4.2: skills are optional — never FAIL on this check.
|
|
70
|
+
const onError = 'warn';
|
|
74
71
|
|
|
75
72
|
module.exports = { name, run, onError };
|
|
76
73
|
|
|
@@ -49,24 +49,23 @@ const DOCTOR_VERSION = '2.1.0';
|
|
|
49
49
|
* @returns {{ installed: boolean, marker?: string }}
|
|
50
50
|
*/
|
|
51
51
|
function detectInstallState(context) {
|
|
52
|
-
//
|
|
53
|
-
//
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
}
|
|
67
|
-
} catch {
|
|
68
|
-
// permission error on one marker — keep checking others
|
|
52
|
+
// Story 10.42 (v1.4.2 fix): doctor is PROJECT-centric.
|
|
53
|
+
// Previous version qualified `~/.sinapse/` and `~/.claude/commands/SINAPSE/`
|
|
54
|
+
// as "installed" markers, but those are GLOBAL artifacts left by any past
|
|
55
|
+
// install on the machine. They were always TRUE for any user who had ever
|
|
56
|
+
// run `npx sinapse-ai install` in any other project, defeating the entire
|
|
57
|
+
// purpose of fresh-project detection.
|
|
58
|
+
//
|
|
59
|
+
// The only marker that means "SINAPSE is installed IN THIS PROJECT" is
|
|
60
|
+
// `<projectRoot>/.sinapse-ai/`. Without it, the user is in a fresh dir
|
|
61
|
+
// and should see the NOT_INSTALLED friendly message.
|
|
62
|
+
const projectMarker = path.join(context.projectRoot, '.sinapse-ai');
|
|
63
|
+
try {
|
|
64
|
+
if (fs.existsSync(projectMarker)) {
|
|
65
|
+
return { installed: true, marker: 'project' };
|
|
69
66
|
}
|
|
67
|
+
} catch {
|
|
68
|
+
// permission error — treat as not installed and let user retry
|
|
70
69
|
}
|
|
71
70
|
return { installed: false };
|
|
72
71
|
}
|
|
@@ -3697,7 +3697,6 @@ entities:
|
|
|
3697
3697
|
purpose: '''Let\''s start with the fundamental details about your agent'','
|
|
3698
3698
|
type: module
|
|
3699
3699
|
usedBy:
|
|
3700
|
-
- index
|
|
3701
3700
|
- index.esm
|
|
3702
3701
|
agent-invoker:
|
|
3703
3702
|
adaptability:
|
|
@@ -4473,7 +4472,6 @@ entities:
|
|
|
4473
4472
|
type: module
|
|
4474
4473
|
usedBy:
|
|
4475
4474
|
- config-resolver
|
|
4476
|
-
- index
|
|
4477
4475
|
- index.esm
|
|
4478
4476
|
- agent-config-loader
|
|
4479
4477
|
config-loader:
|
|
@@ -4497,7 +4495,6 @@ entities:
|
|
|
4497
4495
|
purpose: Entity at .sinapse-ai\core\config\config-loader.js
|
|
4498
4496
|
type: module
|
|
4499
4497
|
usedBy:
|
|
4500
|
-
- index
|
|
4501
4498
|
- index.esm
|
|
4502
4499
|
config-migrator:
|
|
4503
4500
|
adaptability:
|
|
@@ -4664,7 +4661,6 @@ entities:
|
|
|
4664
4661
|
type: module
|
|
4665
4662
|
usedBy:
|
|
4666
4663
|
- context-loader
|
|
4667
|
-
- index
|
|
4668
4664
|
- index.esm
|
|
4669
4665
|
- agent-exit-hooks
|
|
4670
4666
|
- greeting-builder
|
|
@@ -4711,7 +4707,6 @@ entities:
|
|
|
4711
4707
|
purpose: Entity at .sinapse-ai\core\session\context-loader.js
|
|
4712
4708
|
type: module
|
|
4713
4709
|
usedBy:
|
|
4714
|
-
- index
|
|
4715
4710
|
- index.esm
|
|
4716
4711
|
- unified-activation-pipeline
|
|
4717
4712
|
- context-loading
|
|
@@ -5343,7 +5338,8 @@ entities:
|
|
|
5343
5338
|
plannedDeps: []
|
|
5344
5339
|
purpose: Entity at .sinapse-ai\core\doctor\fix-handler.js
|
|
5345
5340
|
type: module
|
|
5346
|
-
usedBy:
|
|
5341
|
+
usedBy:
|
|
5342
|
+
- index
|
|
5347
5343
|
focus-area-recommender:
|
|
5348
5344
|
adaptability:
|
|
5349
5345
|
constraints: []
|
|
@@ -5943,30 +5939,22 @@ entities:
|
|
|
5943
5939
|
constraints: []
|
|
5944
5940
|
extensionPoints: []
|
|
5945
5941
|
score: 0.4
|
|
5946
|
-
checksum: sha256:
|
|
5942
|
+
checksum: sha256:4a1e6dacba9c1fe7866b2b8a0041837a63acbe5c072185e9f73f809b94de22a6
|
|
5947
5943
|
dependencies:
|
|
5948
|
-
-
|
|
5949
|
-
-
|
|
5950
|
-
-
|
|
5951
|
-
-
|
|
5952
|
-
- elicitation-engine
|
|
5953
|
-
- session-manager
|
|
5954
|
-
- agent-elicitation
|
|
5955
|
-
- task-elicitation
|
|
5956
|
-
- workflow-elicitation
|
|
5957
|
-
- output-formatter
|
|
5958
|
-
- yaml-validator
|
|
5959
|
-
- registry-loader
|
|
5944
|
+
- checks
|
|
5945
|
+
- text
|
|
5946
|
+
- json
|
|
5947
|
+
- fix-handler
|
|
5960
5948
|
externalDeps: []
|
|
5961
5949
|
keywords:
|
|
5962
5950
|
- index
|
|
5963
|
-
lastVerified: '2026-05-
|
|
5951
|
+
lastVerified: '2026-05-15T01:57:39.086Z'
|
|
5964
5952
|
layer: L1
|
|
5965
5953
|
lifecycle: experimental
|
|
5966
5954
|
path: .sinapse-ai/core/index.js
|
|
5967
5955
|
plannedDeps:
|
|
5968
5956
|
- health-check
|
|
5969
|
-
purpose: Entity at .sinapse-ai\core\index.js
|
|
5957
|
+
purpose: Entity at .sinapse-ai\core\doctor\index.js
|
|
5970
5958
|
type: module
|
|
5971
5959
|
usedBy: []
|
|
5972
5960
|
index.esm:
|
|
@@ -6016,7 +6004,8 @@ entities:
|
|
|
6016
6004
|
plannedDeps: []
|
|
6017
6005
|
purpose: Entity at .sinapse-ai\core\doctor\formatters\json.js
|
|
6018
6006
|
type: module
|
|
6019
|
-
usedBy:
|
|
6007
|
+
usedBy:
|
|
6008
|
+
- index
|
|
6020
6009
|
json-formatter:
|
|
6021
6010
|
adaptability:
|
|
6022
6011
|
constraints: []
|
|
@@ -6443,14 +6432,14 @@ entities:
|
|
|
6443
6432
|
constraints: []
|
|
6444
6433
|
extensionPoints: []
|
|
6445
6434
|
score: 0.4
|
|
6446
|
-
checksum: sha256:
|
|
6435
|
+
checksum: sha256:ffb698eed47364abccf28ce9d3a07529ac00096f6993a4d03359998b364e8329
|
|
6447
6436
|
dependencies: []
|
|
6448
6437
|
externalDeps: []
|
|
6449
6438
|
keywords:
|
|
6450
6439
|
- manifest
|
|
6451
6440
|
- version
|
|
6452
6441
|
- parity
|
|
6453
|
-
lastVerified: '2026-05-
|
|
6442
|
+
lastVerified: '2026-05-15T01:57:39.083Z'
|
|
6454
6443
|
layer: L1
|
|
6455
6444
|
lifecycle: orphan
|
|
6456
6445
|
path: .sinapse-ai/core/doctor/checks/manifest-version-parity.js
|
|
@@ -6749,13 +6738,13 @@ entities:
|
|
|
6749
6738
|
constraints: []
|
|
6750
6739
|
extensionPoints: []
|
|
6751
6740
|
score: 0.4
|
|
6752
|
-
checksum: sha256:
|
|
6741
|
+
checksum: sha256:b39b767646a65a387752071347fc4316cf5f63f3357915febf7079436e3e89af
|
|
6753
6742
|
dependencies: []
|
|
6754
6743
|
externalDeps: []
|
|
6755
6744
|
keywords:
|
|
6756
6745
|
- npm
|
|
6757
6746
|
- packages
|
|
6758
|
-
lastVerified: '2026-05-
|
|
6747
|
+
lastVerified: '2026-05-15T01:57:39.085Z'
|
|
6759
6748
|
layer: L1
|
|
6760
6749
|
lifecycle: orphan
|
|
6761
6750
|
path: .sinapse-ai/core/doctor/checks/npm-packages.js
|
|
@@ -7242,7 +7231,6 @@ entities:
|
|
|
7242
7231
|
usedBy:
|
|
7243
7232
|
- code-intel-source
|
|
7244
7233
|
- framework-governor
|
|
7245
|
-
- index
|
|
7246
7234
|
- registry-source
|
|
7247
7235
|
- registry-syncer
|
|
7248
7236
|
registry-provider:
|
|
@@ -7514,7 +7502,6 @@ entities:
|
|
|
7514
7502
|
type: module
|
|
7515
7503
|
usedBy:
|
|
7516
7504
|
- elicitation-engine
|
|
7517
|
-
- index
|
|
7518
7505
|
- index.esm
|
|
7519
7506
|
session-state:
|
|
7520
7507
|
adaptability:
|
|
@@ -7625,13 +7612,13 @@ entities:
|
|
|
7625
7612
|
constraints: []
|
|
7626
7613
|
extensionPoints: []
|
|
7627
7614
|
score: 0.4
|
|
7628
|
-
checksum: sha256:
|
|
7615
|
+
checksum: sha256:2ed67974d87e3b4e4efa84527061f824eb8c79dc3a5925adb149870c6c0faf3c
|
|
7629
7616
|
dependencies: []
|
|
7630
7617
|
externalDeps: []
|
|
7631
7618
|
keywords:
|
|
7632
7619
|
- skills
|
|
7633
7620
|
- count
|
|
7634
|
-
lastVerified: '2026-05-
|
|
7621
|
+
lastVerified: '2026-05-15T01:57:39.085Z'
|
|
7635
7622
|
layer: L1
|
|
7636
7623
|
lifecycle: orphan
|
|
7637
7624
|
path: .sinapse-ai/core/doctor/checks/skills-count.js
|
|
@@ -7894,7 +7881,6 @@ entities:
|
|
|
7894
7881
|
purpose: '''Define the fundamental details of your task'','
|
|
7895
7882
|
type: module
|
|
7896
7883
|
usedBy:
|
|
7897
|
-
- index
|
|
7898
7884
|
- index.esm
|
|
7899
7885
|
tech-stack-detector:
|
|
7900
7886
|
adaptability:
|
|
@@ -7975,7 +7961,8 @@ entities:
|
|
|
7975
7961
|
plannedDeps: []
|
|
7976
7962
|
purpose: ${pass} PASS | ${warn} WARN | ${fail} FAIL | ${info} INFO`);
|
|
7977
7963
|
type: module
|
|
7978
|
-
usedBy:
|
|
7964
|
+
usedBy:
|
|
7965
|
+
- index
|
|
7979
7966
|
timing-collector:
|
|
7980
7967
|
adaptability:
|
|
7981
7968
|
constraints: []
|
|
@@ -8175,7 +8162,6 @@ entities:
|
|
|
8175
8162
|
purpose: '''Where should this workflow be created?'','
|
|
8176
8163
|
type: module
|
|
8177
8164
|
usedBy:
|
|
8178
|
-
- index
|
|
8179
8165
|
- index.esm
|
|
8180
8166
|
- verify-workflow-gaps
|
|
8181
8167
|
workflow-executor:
|
|
@@ -9422,7 +9408,6 @@ entities:
|
|
|
9422
9408
|
usedBy:
|
|
9423
9409
|
- batch-creator
|
|
9424
9410
|
- component-generator
|
|
9425
|
-
- index
|
|
9426
9411
|
- index.esm
|
|
9427
9412
|
elicitation-session-manager:
|
|
9428
9413
|
adaptability:
|
|
@@ -17067,7 +17052,6 @@ entities:
|
|
|
17067
17052
|
purpose: Entity at .sinapse-ai\core\utils\output-formatter.js
|
|
17068
17053
|
type: util
|
|
17069
17054
|
usedBy:
|
|
17070
|
-
- index
|
|
17071
17055
|
- index.esm
|
|
17072
17056
|
- next
|
|
17073
17057
|
security-utils:
|
|
@@ -17110,7 +17094,6 @@ entities:
|
|
|
17110
17094
|
usedBy:
|
|
17111
17095
|
- component-generator
|
|
17112
17096
|
- modification-validator
|
|
17113
|
-
- index
|
|
17114
17097
|
- index.esm
|
|
17115
17098
|
workflows:
|
|
17116
17099
|
auto-worktree:
|
|
@@ -17489,6 +17472,6 @@ entities:
|
|
|
17489
17472
|
metadata:
|
|
17490
17473
|
checksumAlgorithm: sha256
|
|
17491
17474
|
entityCount: 756
|
|
17492
|
-
lastUpdated: '2026-05-
|
|
17475
|
+
lastUpdated: '2026-05-15T01:57:39.089Z'
|
|
17493
17476
|
resolutionRate: 100
|
|
17494
17477
|
version: 1.0.0
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
{"timestamp":"2026-05-15T01:57:39.084Z","action":"change","path":".sinapse-ai/core/doctor/checks/manifest-version-parity.js","trigger":"watcher"}
|
|
2
|
+
{"timestamp":"2026-05-15T01:57:39.085Z","action":"change","path":".sinapse-ai/core/doctor/checks/npm-packages.js","trigger":"watcher"}
|
|
3
|
+
{"timestamp":"2026-05-15T01:57:39.085Z","action":"change","path":".sinapse-ai/core/doctor/checks/skills-count.js","trigger":"watcher"}
|
|
4
|
+
{"timestamp":"2026-05-15T01:57:39.086Z","action":"change","path":".sinapse-ai/core/doctor/index.js","trigger":"watcher"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
# - SHA256 hashes for change detection
|
|
8
8
|
# - File types for categorization
|
|
9
9
|
#
|
|
10
|
-
version: 1.4.
|
|
10
|
+
version: 1.4.2
|
|
11
11
|
generator: scripts/generate-install-manifest.js
|
|
12
12
|
file_count: 1164
|
|
13
13
|
files:
|
|
@@ -348,17 +348,17 @@ files:
|
|
|
348
348
|
type: core
|
|
349
349
|
size: 1513
|
|
350
350
|
- path: core/doctor/checks/manifest-version-parity.js
|
|
351
|
-
hash: sha256:
|
|
351
|
+
hash: sha256:ffb698eed47364abccf28ce9d3a07529ac00096f6993a4d03359998b364e8329
|
|
352
352
|
type: core
|
|
353
|
-
size:
|
|
353
|
+
size: 3907
|
|
354
354
|
- path: core/doctor/checks/node-version.js
|
|
355
355
|
hash: sha256:1128759128fd60822b6dc08527442bc88bc713266ef1561fcfcba5dd31992a84
|
|
356
356
|
type: core
|
|
357
357
|
size: 785
|
|
358
358
|
- path: core/doctor/checks/npm-packages.js
|
|
359
|
-
hash: sha256:
|
|
359
|
+
hash: sha256:b39b767646a65a387752071347fc4316cf5f63f3357915febf7079436e3e89af
|
|
360
360
|
type: core
|
|
361
|
-
size:
|
|
361
|
+
size: 3814
|
|
362
362
|
- path: core/doctor/checks/rules-files.js
|
|
363
363
|
hash: sha256:16205df27fd9c8d73de42593429afbe6b2c4d70cca4bdde3a51b704f1d292e63
|
|
364
364
|
type: core
|
|
@@ -368,9 +368,9 @@ files:
|
|
|
368
368
|
type: core
|
|
369
369
|
size: 3411
|
|
370
370
|
- path: core/doctor/checks/skills-count.js
|
|
371
|
-
hash: sha256:
|
|
371
|
+
hash: sha256:2ed67974d87e3b4e4efa84527061f824eb8c79dc3a5925adb149870c6c0faf3c
|
|
372
372
|
type: core
|
|
373
|
-
size:
|
|
373
|
+
size: 1941
|
|
374
374
|
- path: core/doctor/fix-handler.js
|
|
375
375
|
hash: sha256:1463b78a16235f184da1d5d39af089d56641aaab585c0c0ccb326b566f6297de
|
|
376
376
|
type: core
|
|
@@ -384,9 +384,9 @@ files:
|
|
|
384
384
|
type: core
|
|
385
385
|
size: 1807
|
|
386
386
|
- path: core/doctor/index.js
|
|
387
|
-
hash: sha256:
|
|
387
|
+
hash: sha256:4a1e6dacba9c1fe7866b2b8a0041837a63acbe5c072185e9f73f809b94de22a6
|
|
388
388
|
type: core
|
|
389
|
-
size:
|
|
389
|
+
size: 8585
|
|
390
390
|
- path: core/elicitation/agent-elicitation.js
|
|
391
391
|
hash: sha256:92abc291cecff9b8bb9153d5fbac84ad5217cff4d0d01e0495785a939334cd81
|
|
392
392
|
type: elicitation
|
|
@@ -1272,9 +1272,9 @@ files:
|
|
|
1272
1272
|
type: data
|
|
1273
1273
|
size: 9587
|
|
1274
1274
|
- path: data/entity-registry.yaml
|
|
1275
|
-
hash: sha256:
|
|
1275
|
+
hash: sha256:fd4f70968103b4731567c7ac4529a97c68ad973f7dc5005abcc7b12b06b8f95a
|
|
1276
1276
|
type: data
|
|
1277
|
-
size:
|
|
1277
|
+
size: 520416
|
|
1278
1278
|
- path: data/learned-patterns.yaml
|
|
1279
1279
|
hash: sha256:1a4cd045c087b9dfd7046ff1464a9d2edb85fba77cf0b6fba14f4bb9004c741e
|
|
1280
1280
|
type: data
|
|
@@ -3868,9 +3868,9 @@ files:
|
|
|
3868
3868
|
type: monitor
|
|
3869
3869
|
size: 861
|
|
3870
3870
|
- path: package.json
|
|
3871
|
-
hash: sha256:
|
|
3871
|
+
hash: sha256:a79897e7e5ce54e4dec3baea4020b96f4c9c41e23c49511becf7438761362400
|
|
3872
3872
|
type: other
|
|
3873
|
-
size:
|
|
3873
|
+
size: 2509
|
|
3874
3874
|
- path: product/checklists/accessibility-wcag-checklist.md
|
|
3875
3875
|
hash: sha256:11f340683187a9683c173b6f11b292eb1e49cca8844297a6bdb2631e46b8513a
|
|
3876
3876
|
type: checklist
|
package/.sinapse-ai/package.json
CHANGED
package/package.json
CHANGED
package/scripts/sinapse-patch.js
CHANGED
|
@@ -20,24 +20,39 @@ const os = require('os');
|
|
|
20
20
|
function findCliPath() {
|
|
21
21
|
const HOME = os.homedir();
|
|
22
22
|
|
|
23
|
-
//
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
'/usr/lib/node_modules/@anthropic-ai/claude-code/cli.js',
|
|
30
|
-
];
|
|
31
|
-
|
|
32
|
-
// Tenta npm root -g como fallback
|
|
23
|
+
// v1.4.2 fix: include Windows npm-global path + multiple entry-point
|
|
24
|
+
// filename variants. Claude Code 2.x on Windows ships cli-wrapper.cjs at
|
|
25
|
+
// the package root, with the actual cli.js inside bin/.
|
|
26
|
+
|
|
27
|
+
// Try `npm root -g` first (most reliable cross-platform).
|
|
28
|
+
let npmRoot = null;
|
|
33
29
|
try {
|
|
34
30
|
const { execSync } = require('child_process');
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
31
|
+
npmRoot = execSync('npm root -g', { encoding: 'utf8' }).trim();
|
|
32
|
+
} catch {
|
|
33
|
+
/* ignore — fall back to platform-specific defaults */
|
|
34
|
+
}
|
|
38
35
|
|
|
39
|
-
|
|
40
|
-
|
|
36
|
+
const packageDirs = [];
|
|
37
|
+
if (npmRoot) {
|
|
38
|
+
packageDirs.push(path.join(npmRoot, '@anthropic-ai', 'claude-code'));
|
|
39
|
+
}
|
|
40
|
+
packageDirs.push(
|
|
41
|
+
path.join(HOME, '.npm-global', 'lib', 'node_modules', '@anthropic-ai', 'claude-code'),
|
|
42
|
+
path.join(HOME, '.nvm', 'versions', 'node', process.version, 'lib', 'node_modules', '@anthropic-ai', 'claude-code'),
|
|
43
|
+
path.join(HOME, 'AppData', 'Roaming', 'npm', 'node_modules', '@anthropic-ai', 'claude-code'),
|
|
44
|
+
'/usr/local/lib/node_modules/@anthropic-ai/claude-code',
|
|
45
|
+
'/usr/lib/node_modules/@anthropic-ai/claude-code',
|
|
46
|
+
);
|
|
47
|
+
|
|
48
|
+
// Multiple possible entry-point filenames across versions/platforms.
|
|
49
|
+
const entryFiles = ['cli.js', 'cli-wrapper.cjs', path.join('bin', 'cli.js')];
|
|
50
|
+
|
|
51
|
+
for (const pkgDir of packageDirs) {
|
|
52
|
+
for (const entry of entryFiles) {
|
|
53
|
+
const candidate = path.join(pkgDir, entry);
|
|
54
|
+
if (fs.existsSync(candidate)) return candidate;
|
|
55
|
+
}
|
|
41
56
|
}
|
|
42
57
|
return null;
|
|
43
58
|
}
|
|
@@ -45,10 +60,13 @@ function findCliPath() {
|
|
|
45
60
|
const CLI_PATH = findCliPath();
|
|
46
61
|
|
|
47
62
|
if (!CLI_PATH) {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
63
|
+
// v1.4.2: branding patch is OPTIONAL cosmetic — not finding Claude Code
|
|
64
|
+
// is not an error. Downgrade message from [ERRO] to [INFO] and exit 0
|
|
65
|
+
// so it never blocks the install pipeline.
|
|
66
|
+
console.log('\n[INFO] Claude Code CLI nao encontrado — branding patch ignorado.');
|
|
67
|
+
console.log(' (Patch e opcional. Para aplicar, instale Claude Code globalmente:');
|
|
68
|
+
console.log(' npm install -g @anthropic-ai/claude-code, e rode este script.)\n');
|
|
69
|
+
process.exit(0);
|
|
52
70
|
}
|
|
53
71
|
|
|
54
72
|
console.log('CLI encontrado em:', CLI_PATH);
|