sinapse-ai 1.20.0 → 1.20.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 (70) hide show
  1. package/.sinapse-ai/core/atlas/render-html.js +10 -8
  2. package/.sinapse-ai/core/registry/service-registry.json +2 -32
  3. package/.sinapse-ai/data/entity-registry.yaml +440 -195
  4. package/.sinapse-ai/development/agents/analyst.md +18 -34
  5. package/.sinapse-ai/development/agents/architect.md +18 -34
  6. package/.sinapse-ai/development/agents/data-engineer.md +15 -28
  7. package/.sinapse-ai/development/agents/developer.md +0 -6
  8. package/.sinapse-ai/development/agents/devops.md +15 -28
  9. package/.sinapse-ai/development/agents/product-lead.md +18 -34
  10. package/.sinapse-ai/development/agents/project-lead.md +18 -34
  11. package/.sinapse-ai/development/agents/quality-gate.md +18 -34
  12. package/.sinapse-ai/development/agents/squad-creator.md +15 -27
  13. package/.sinapse-ai/development/agents/ux-design-expert.md +15 -27
  14. package/.sinapse-ai/development/scripts/populate-entity-registry.js +3 -0
  15. package/.sinapse-ai/development/tasks/execute-epic-plan.md +0 -4
  16. package/.sinapse-ai/development/workflows/epic-orchestration.yaml +0 -1
  17. package/.sinapse-ai/git-hooks/lib/staged-secret-scan.js +3 -1
  18. package/.sinapse-ai/install-manifest.yaml +40 -72
  19. package/.sinapse-ai/product/templates/personalized-agent-template.md +3 -5
  20. package/.sinapse-ai/workflow-intelligence/index.js +3 -21
  21. package/AGENTS.md +2 -2
  22. package/CHANGELOG.md +38 -19
  23. package/bin/commands/install.js +5 -4
  24. package/bin/lib/command-generator.js +4 -4
  25. package/bin/lib/fs-utils.js +18 -0
  26. package/bin/lib/setup-statusline.js +3 -1
  27. package/bin/modules/chrome-brain-installer.js +5 -3
  28. package/bin/modules/mcp-installer.js +3 -6
  29. package/bin/postinstall.js +2 -1
  30. package/bin/sinapse-init.js +8 -9
  31. package/bin/sinapse.js +3 -1
  32. package/bin/utils/staged-secret-scan.js +3 -1
  33. package/docs/framework/atlas/OPERATING-ATLAS.md +1 -1
  34. package/docs/framework/atlas/atlas-data.json +22 -22
  35. package/docs/framework/atlas/atlas.html +12 -10
  36. package/docs/framework/source-tree.md +1 -2
  37. package/package.json +1 -1
  38. package/packages/installer/src/config/configure-environment.js +8 -6
  39. package/packages/installer/src/installer/brownfield-upgrader.js +5 -3
  40. package/packages/installer/src/installer/file-hasher.js +29 -21
  41. package/packages/installer/src/installer/manifest-signature.js +61 -49
  42. package/packages/installer/src/installer/post-install-validator.js +24 -17
  43. package/packages/installer/src/merger/parsers/markdown-section-parser.js +3 -2
  44. package/packages/installer/src/updater/index.js +7 -1
  45. package/packages/installer/src/utils/atomic-write.js +35 -0
  46. package/packages/installer/src/wizard/index.js +5 -3
  47. package/packages/sinapse-install/src/capabilities/chrome-brain.js +5 -3
  48. package/packages/sinapse-install/src/installer.js +3 -1
  49. package/packages/sinapse-install/src/utils/atomic-write.js +67 -0
  50. package/scripts/apply-persona-disclaimer.js +2 -1
  51. package/scripts/sinapse-patch.js +2 -1
  52. package/scripts/sync-squad-yaml-components.js +2 -1
  53. package/scripts/validate-agents-md.js +2 -1
  54. package/scripts/validate-article-xi.js +10 -8
  55. package/scripts/validate-no-external-refs.js +14 -8
  56. package/squads/claude-code-mastery/agents/claude-mastery-chief.md +3 -8
  57. package/squads/claude-code-mastery/agents/config-engineer.md +5 -12
  58. package/squads/claude-code-mastery/agents/hooks-architect.md +5 -11
  59. package/squads/claude-code-mastery/agents/mcp-integrator.md +5 -12
  60. package/squads/claude-code-mastery/agents/project-integrator.md +5 -12
  61. package/squads/claude-code-mastery/agents/roadmap-sentinel.md +5 -12
  62. package/squads/claude-code-mastery/agents/skill-craftsman.md +5 -11
  63. package/squads/claude-code-mastery/agents/swarm-orqx.md +15 -28
  64. package/.sinapse-ai/core/execution/context-injector.js +0 -539
  65. package/.sinapse-ai/core/execution/parallel-executor.js +0 -301
  66. package/.sinapse-ai/core/execution/parallel-monitor.js +0 -432
  67. package/.sinapse-ai/core/execution/semantic-merge-engine.js +0 -1750
  68. package/.sinapse-ai/core/execution/wave-executor.js +0 -403
  69. package/.sinapse-ai/development/tasks/waves.md +0 -205
  70. package/.sinapse-ai/workflow-intelligence/engine/wave-analyzer.js +0 -692
@@ -162,17 +162,19 @@ renderDiagrams('s-model'); // initial visible tab
162
162
 
163
163
  function tbl(cols,rows){return '<table><thead><tr>'+cols.map(c=>'<th>'+c+'</th>').join('')+'</tr></thead><tbody>'+
164
164
  rows.map(r=>'<tr>'+r.map(c=>'<td>'+c+'</td>').join('')+'</tr>').join('')+'</tbody></table>';}
165
- const code=s=>'<code>'+(s||'')+'</code>';
166
- const sev=s=>'<span class="tag'+(/NON-NEGOTIABLE/.test(s)?' nn':'')+'">'+s+'</span>';
165
+ // Data cells come from atlas-data.json (framework registry, mutable via PR) — escape before innerHTML.
166
+ const esc=s=>String(s).replace(/[&<>"']/g,c=>({'&':'&amp;','<':'&lt;','>':'&gt;','"':'&quot;',"'":'&#39;'}[c]));
167
+ const code=s=>'<code>'+esc(s||'')+'</code>';
168
+ const sev=s=>'<span class="tag'+(/NON-NEGOTIABLE/.test(s)?' nn':'')+'">'+esc(s)+'</span>';
167
169
 
168
170
  document.getElementById('t-constitution').innerHTML=tbl(['Art.','Principle','Severity'],
169
- D.articles.map(a=>[a.number,a.title,sev(a.severity)]));
171
+ D.articles.map(a=>[esc(a.number),esc(a.title),sev(a.severity)]));
170
172
 
171
173
  document.getElementById('t-squads').innerHTML=tbl(['Squad','Name','Agents','Workflows','Orchestrators'],
172
- D.squads.map(s=>[code(s.id),s.name,s.agents,s.workflows,(s.orqx||[]).map(code).join(' ')||'—']));
174
+ D.squads.map(s=>[code(s.id),esc(s.name),esc(s.agents),esc(s.workflows),(s.orqx||[]).map(code).join(' ')||'—']));
173
175
 
174
176
  document.getElementById('t-rules').innerHTML=tbl(['Rule','Governs'],
175
- D.rules.map(r=>[code(r.id),r.title]));
177
+ D.rules.map(r=>[code(r.id),esc(r.title)]));
176
178
 
177
179
  // Workflows (search + source filter)
178
180
  function renderWorkflows(){
@@ -185,14 +187,14 @@ function renderWorkflows(){
185
187
  });
186
188
  document.getElementById('c-workflows').textContent=rows.length+' of '+D.workflows.length;
187
189
  document.getElementById('t-workflows').innerHTML=tbl(['Workflow','Source','Type','Description'],
188
- rows.map(w=>[code(w.id),w.squad?code(w.squad):'<span class="tag">framework</span>',w.type||'—',w.description||'—']));
190
+ rows.map(w=>[code(w.id),w.squad?code(w.squad):'<span class="tag">framework</span>',esc(w.type||'—'),esc(w.description||'—')]));
189
191
  }
190
192
  ['q-workflows','f-workflows-src'].forEach(id=>document.getElementById(id).addEventListener('input',renderWorkflows));
191
193
 
192
194
  // Agents (search + squad filter + orqx toggle)
193
195
  const squads=[...new Set(D.agents.map(a=>a.squad))].sort();
194
196
  const sel=document.getElementById('f-agents-squad');
195
- sel.innerHTML='<option value="">all squads</option>'+squads.map(s=>'<option>'+s+'</option>').join('');
197
+ sel.innerHTML='<option value="">all squads</option>'+squads.map(s=>'<option>'+esc(s)+'</option>').join('');
196
198
  function renderAgents(){
197
199
  const q=(document.getElementById('q-agents').value||'').toLowerCase();
198
200
  const sq=sel.value; const onlyOrqx=document.getElementById('f-agents-orqx').checked;
@@ -202,7 +204,7 @@ function renderAgents(){
202
204
  });
203
205
  document.getElementById('c-agents').textContent=rows.length+' of '+D.agents.length;
204
206
  document.getElementById('t-agents').innerHTML=tbl(['Agent','Persona','Squad','Role',''],
205
- rows.map(a=>[code(a.id),a.persona||'—',code(a.squad),a.role||a.title||'—',a.isOrqx?'<span class="tag nn">orqx</span>':'']));
207
+ rows.map(a=>[code(a.id),esc(a.persona||'—'),code(a.squad),esc(a.role||a.title||'—'),a.isOrqx?'<span class="tag nn">orqx</span>':'']));
206
208
  }
207
209
  ['q-agents','f-agents-orqx'].forEach(id=>document.getElementById(id).addEventListener('input',renderAgents));
208
210
  sel.addEventListener('change',renderAgents);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": "1.0.0",
3
3
  "generated": "2026-06-19T20:32:21.238Z",
4
- "totalWorkers": 373,
4
+ "totalWorkers": 372,
5
5
  "categories": {
6
6
  "checklist": {
7
7
  "count": 16,
@@ -24,7 +24,7 @@
24
24
  "description": "JavaScript utility scripts"
25
25
  },
26
26
  "task": {
27
- "count": 215,
27
+ "count": 214,
28
28
  "subcategories": [
29
29
  "analysis",
30
30
  "creation",
@@ -10933,36 +10933,6 @@
10933
10933
  "addedVersion": "1.0.0"
10934
10934
  }
10935
10935
  },
10936
- {
10937
- "id": "waves",
10938
- "name": "Waves",
10939
- "description": "<!-- Story: WIS-4 - Wave Analysis Engine -->",
10940
- "category": "task",
10941
- "subcategory": "general",
10942
- "inputs": [],
10943
- "outputs": [],
10944
- "tags": [
10945
- "task",
10946
- "general",
10947
- "waves"
10948
- ],
10949
- "path": ".sinapse-ai/development/tasks/waves.md",
10950
- "taskFormat": "TASK-FORMAT-V1",
10951
- "executorTypes": [
10952
- "Agent",
10953
- "Worker"
10954
- ],
10955
- "performance": {
10956
- "avgDuration": "1m",
10957
- "cacheable": false,
10958
- "parallelizable": false
10959
- },
10960
- "agents": [],
10961
- "metadata": {
10962
- "source": "development",
10963
- "addedVersion": "1.0.0"
10964
- }
10965
- },
10966
10936
  {
10967
10937
  "id": "yolo-toggle",
10968
10938
  "name": "Yolo Toggle",