sinapse-ai 1.25.3 → 1.27.0

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.
@@ -10,8 +10,16 @@ not as a black-box library.
10
10
 
11
11
  ## Locate the corpus
12
12
 
13
- Resolve the SINAPSE package/repository root, then read
14
- `docs/framework/react-bits/index.md`. Read only the category needed:
13
+ Resolve the corpus in this exact order, then read `index.md` from the first
14
+ location that contains the complete corpus:
15
+
16
+ 1. `<project>/docs/framework/react-bits/`
17
+ 2. `<installed-package>/docs/framework/react-bits/`
18
+ 3. `~/.sinapse/docs/framework/react-bits/`
19
+
20
+ The project location wins so a project can pin or extend its installed research.
21
+ The package location supports package-managed runs, and the global SINAPSE home
22
+ supports `--global-only` installs. Read only the category needed:
15
23
 
16
24
  - `animations.md` for wrappers, cursors, trails, transitions and interactive effects.
17
25
  - `text-animations.md` for headline, counter, scramble, marquee and reveal work.
@@ -21,8 +29,9 @@ Resolve the SINAPSE package/repository root, then read
21
29
  - `audit-findings.md` when dependency, prop, variant or upstream accuracy matters.
22
30
  - `inventory.json` for exact machine-readable props, dependencies and variant state.
23
31
 
24
- If the corpus cannot be found, read `references/corpus-map.md`, then verify current
25
- facts against the official registry and source before implementation.
32
+ If none of those locations has all nine files, state which locations were checked,
33
+ ask the user to run the relevant SINAPSE install/update, then verify current facts
34
+ against the official registry and source before implementation.
26
35
 
27
36
  ## Workflow
28
37
 
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "version": 1,
3
3
  "skillIds": [
4
+ "react-bits-frontend",
4
5
  "sinapse",
5
6
  "sinapse-agent",
6
7
  "sinapse-analyst",
@@ -0,0 +1,75 @@
1
+ ---
2
+ name: react-bits-frontend
3
+ description: Select, install, adapt, combine, optimize, and audit official React Bits components for React, Next.js, Vite, Astro islands, and SINAPSE frontend projects. Use for animated text, cursors, reveals, cards, navigation, galleries, WebGL backgrounds, shaders, particles, motion systems, React Bits CLI/MCP commands, component props/dependencies, or when improving an existing page with React Bits while preserving accessibility, mobile performance, lifecycle cleanup, design-system fit, and license compliance.
4
+ ---
5
+
6
+ # React Bits Frontend
7
+
8
+ Use the source-grounded SINAPSE corpus to implement React Bits as application code,
9
+ not as a black-box library.
10
+
11
+ ## Locate the corpus
12
+
13
+ Resolve the corpus in this exact order, then read `index.md` from the first
14
+ location that contains the complete corpus:
15
+
16
+ 1. `<project>/docs/framework/react-bits/`
17
+ 2. `<installed-package>/docs/framework/react-bits/`
18
+ 3. `~/.sinapse/docs/framework/react-bits/`
19
+
20
+ The project location wins so a project can pin or extend its installed research.
21
+ The package location supports package-managed runs, and the global SINAPSE home
22
+ supports `--global-only` installs. Read only the category needed:
23
+
24
+ - `animations.md` for wrappers, cursors, trails, transitions and interactive effects.
25
+ - `text-animations.md` for headline, counter, scramble, marquee and reveal work.
26
+ - `components.md` for cards, navigation, galleries, inputs and compound UI.
27
+ - `backgrounds.md` for Canvas/WebGL/shader/particle backgrounds.
28
+ - `implementation-playbook.md` for integration, composition, accessibility and tuning.
29
+ - `audit-findings.md` when dependency, prop, variant or upstream accuracy matters.
30
+ - `inventory.json` for exact machine-readable props, dependencies and variant state.
31
+
32
+ If none of those locations has all nine files, state which locations were checked,
33
+ ask the user to run the relevant SINAPSE install/update, then verify current facts
34
+ against the official registry and source before implementation.
35
+
36
+ ## Workflow
37
+
38
+ 1. Inspect the target stack, component architecture, design tokens, performance budget
39
+ and existing animation/scroll ownership.
40
+ 2. Translate the visual request into a user-experience function.
41
+ 3. Search the relevant catalog and shortlist at most three candidates.
42
+ 4. Compare visual fit, dependencies, runtime engine, props, interaction model,
43
+ accessibility, mobile cost and compatibility with existing effects.
44
+ 5. Open the official source for the selected variant. Treat source and registry as
45
+ authoritative when docs conflict.
46
+ 6. Run `npm view <package>` for every declared dependency before installing it.
47
+ 7. Prefer TS-TW or TS-CSS in TypeScript projects. Never use the three empty CurvedInput
48
+ variants recorded in the snapshot; use JS-CSS or verify that upstream fixed them.
49
+ 8. Install through shadcn/jsrepo or copy manually. Keep upstream provenance and the
50
+ required license notice for substantial copies.
51
+ 9. Wrap the imported component behind a local application component. Map design
52
+ tokens, content, breakpoints and quality presets at that boundary.
53
+ 10. Implement reduced-motion behavior, semantic fallback, keyboard/focus behavior,
54
+ cleanup and static/mobile fallback.
55
+ 11. Test load, resize, route unmount/remount, long scroll, coarse pointer, reduced
56
+ motion and low-power mobile. Measure frame time and memory.
57
+ 12. Report component, variant, source SHA/URL, dependencies, adaptations, fallbacks and
58
+ remaining risks.
59
+
60
+ ## Composition rules
61
+
62
+ - Use one dominant motion effect per viewport and no more than two support effects.
63
+ - Prefer the lowest-cost engine that satisfies the visual objective.
64
+ - Allow only one owner for smooth scroll, custom cursor and each render loop.
65
+ - Do not stack multiple heavy WebGL/physics backgrounds without an explicit budget.
66
+ - Pause offscreen/hidden loops and dispose GPU resources on unmount.
67
+ - Preserve content and interaction when animation is disabled or fails.
68
+
69
+ ## Accuracy rules
70
+
71
+ - Do not repeat the promotional “140+” as an exact count. The pinned snapshot has 139.
72
+ - Do not infer functional variants from registry names alone; inspect source bytes/code.
73
+ - Use registry JSON for install dependencies and source for actual API/behavior.
74
+ - Note documentation typos and per-variant divergences from `audit-findings.md`.
75
+ - Do not redistribute React Bits components as a standalone library, bundle, or port.
@@ -34,6 +34,10 @@ function isPathInside(parentPath, candidatePath) {
34
34
  return relative === '' || (!relative.startsWith('..') && !path.isAbsolute(relative));
35
35
  }
36
36
 
37
+ function isSafeSkillId(skillId) {
38
+ return typeof skillId === 'string' && /^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(skillId);
39
+ }
40
+
37
41
  function readCanonicalSource(projectRoot, sourcePath) {
38
42
  if (!sourcePath) {
39
43
  throw new Error('Codex agent pointer does not declare a canonical source');
@@ -329,6 +333,14 @@ function readCodexCatalog(projectRoot = PROJECT_ROOT) {
329
333
  if (typeof catalog.genericAgentSkillId !== 'string' || !catalog.genericAgentSkillId.trim()) {
330
334
  throw new Error('Codex catalog does not declare genericAgentSkillId');
331
335
  }
336
+ const catalogSkillIds = [
337
+ ...catalog.expectedSkillIds,
338
+ ...catalog.publicAliasSkillIds,
339
+ catalog.genericAgentSkillId,
340
+ ];
341
+ if (catalogSkillIds.some((skillId) => !isSafeSkillId(skillId))) {
342
+ throw new Error('Codex catalog contains an unsafe skill ID');
343
+ }
332
344
  return catalog;
333
345
  }
334
346
 
@@ -7,7 +7,7 @@
7
7
  # - SHA256 hashes for change detection
8
8
  # - File types for categorization
9
9
  #
10
- version: 1.25.3
10
+ version: 1.27.0
11
11
  generator: scripts/generate-install-manifest.js
12
12
  file_count: 1156
13
13
  files:
package/CHANGELOG.md CHANGED
@@ -1,8 +1,17 @@
1
- ## [1.25.3](https://github.com/caioimori/sinapse-ai/compare/1.25.2...1.25.3) (2026-07-15)
1
+ ## [1.27.0](https://github.com/caioimori/sinapse-ai/compare/1.26.0...1.27.0) (2026-07-16)
2
+
3
+ ### Features
4
+
5
+ * default install to both providers [Story canonical-install-readme] ([6ba3df1](https://github.com/caioimori/sinapse-ai/commit/6ba3df13dd43c8103bd601758a1f2e96a87738c3))
2
6
 
3
7
  ### Bug Fixes
4
8
 
5
- * **installer:** restore provider adapter parity ([#385](https://github.com/caioimori/sinapse-ai/issues/385)) ([4c5c9fb](https://github.com/caioimori/sinapse-ai/commit/4c5c9fb1a60e5d8610da08f25f6f01a67a85a063))
9
+ * address canonical install review [Story canonical-install-readme] ([191fdc4](https://github.com/caioimori/sinapse-ai/commit/191fdc43aee9e6525dfd636118087eaa311d4709))
10
+
11
+ ### Documentation
12
+
13
+ * recommend supported Node LTS [Story canonical-install-readme] ([693e9d0](https://github.com/caioimori/sinapse-ai/commit/693e9d0f9819cd700eae45734da41b055063fa5b))
14
+ * record React Bits release evidence [Story react-bits-distribution-parity] ([6dff59a](https://github.com/caioimori/sinapse-ai/commit/6dff59ab779d79437e8e09a07c5cf3a9ae8e024c))
6
15
 
7
16
  # Changelog
8
17