helixmind 0.2.24 → 0.2.25

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.
@@ -1 +1 @@
1
- {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../../src/cli/brain/template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CA0/D3D"}
1
+ {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../../src/cli/brain/template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAwlE3D"}
@@ -593,15 +593,16 @@ const EDGE_COLORS = {
593
593
  belongs_to: '#ff6600', part_of: '#ff6600', supersedes: '#ff4444',
594
594
  default: '#334466',
595
595
  };
596
- // Organic nebula layoutlayers spread wide and overlap slightly
597
- // Not a strict funnel but an organic cloud where each layer bleeds into neighbors
596
+ // V4: Living Brain Nebula uniform cloud sizes, spiral helix arrangement
597
+ // Activity-based: L1 (Focus) glows brightest/fastest, L5 (Deep) dimmest/slowest
598
+ // cx/cz: center offsets creating a DNA-helix spiral when viewed from above
598
599
  const SPATIAL = {
599
- 5: { iR: 5, oR: 90, yBase: 450, yS: 120, size: 52, pulse: 0.3 },
600
- 4: { iR: 15, oR: 180, yBase: 280, yS: 130, size: 42, pulse: 0.5 },
601
- 3: { iR: 30, oR: 280, yBase: 100, yS: 140, size: 36, pulse: 0.8 },
602
- 2: { iR: 50, oR: 380, yBase: -90, yS: 150, size: 28, pulse: 1.2 },
603
- 1: { iR: 70, oR: 480, yBase: -280, yS: 160, size: 22, pulse: 2.0 },
604
- 6: { iR: 90, oR: 580, yBase: -480, yS: 170, size: 30, pulse: 0.6 },
600
+ 1: { iR: 20, oR: 240, yBase: 300, yS: 100, size: 44, pulse: 2.5, activity: 1.0, cx: 50, cz: 0 },
601
+ 2: { iR: 20, oR: 240, yBase: 150, yS: 100, size: 38, pulse: 1.8, activity: 0.85, cx: 25, cz: 43 },
602
+ 3: { iR: 15, oR: 235, yBase: 0, yS: 95, size: 32, pulse: 1.2, activity: 0.65, cx: -25, cz: 43 },
603
+ 4: { iR: 15, oR: 230, yBase: -150, yS: 90, size: 28, pulse: 0.7, activity: 0.45, cx: -50, cz: 0 },
604
+ 5: { iR: 10, oR: 220, yBase: -300, yS: 85, size: 22, pulse: 0.3, activity: 0.25, cx: -25, cz: -43 },
605
+ 6: { iR: 20, oR: 240, yBase: -450, yS: 100, size: 36, pulse: 0.8, activity: 0.7, cx: 25, cz: -43 },
605
606
  };
606
607
  const MAX_RENDERED_EDGES = 8000; // cap for performance + clarity
607
608
 
@@ -616,10 +617,10 @@ document.body.prepend(renderer.domElement);
616
617
 
617
618
  const scene = new THREE.Scene();
618
619
  scene.background = new THREE.Color('#030308');
619
- scene.fog = new THREE.FogExp2('#030308', 0.00025);
620
+ scene.fog = new THREE.FogExp2('#030308', 0.00018);
620
621
 
621
622
  const camera = new THREE.PerspectiveCamera(50, window.innerWidth / window.innerHeight, 1, 12000);
622
- camera.position.set(500, 500, 800);
623
+ camera.position.set(400, 250, 650);
623
624
 
624
625
  const controls = new OrbitControls(camera, renderer.domElement);
625
626
  controls.target.set(0, 0, 0);
@@ -634,17 +635,24 @@ controls.minPolarAngle = Math.PI * 0.15;
634
635
  controls.update();
635
636
 
636
637
  // =========== BACKGROUND STARS ===========
637
- const starCount = 700;
638
+ const starCount = 1200;
638
639
  const starPos = new Float32Array(starCount * 3);
640
+ const starCol = new Float32Array(starCount * 3);
641
+ const starTc = new THREE.Color();
639
642
  for (let i = 0; i < starCount; i++) {
640
- starPos[i * 3] = (srand(i * 31) - 0.5) * 5000;
641
- starPos[i * 3 + 1] = (srand(i * 37) - 0.5) * 5000;
642
- starPos[i * 3 + 2] = (srand(i * 41) - 0.5) * 5000;
643
+ starPos[i * 3] = (srand(i * 31) - 0.5) * 6000;
644
+ starPos[i * 3 + 1] = (srand(i * 37) - 0.5) * 6000;
645
+ starPos[i * 3 + 2] = (srand(i * 41) - 0.5) * 6000;
646
+ // Subtle color variation in stars
647
+ const hue = srand(i * 53) * 0.15 + 0.55; // blue-ish range
648
+ starTc.setHSL(hue, 0.3 + srand(i * 59) * 0.3, 0.25 + srand(i * 61) * 0.15);
649
+ starCol[i * 3] = starTc.r; starCol[i * 3 + 1] = starTc.g; starCol[i * 3 + 2] = starTc.b;
643
650
  }
644
651
  const starGeo = new THREE.BufferGeometry();
645
652
  starGeo.setAttribute('position', new THREE.BufferAttribute(starPos, 3));
653
+ starGeo.setAttribute('color', new THREE.BufferAttribute(starCol, 3));
646
654
  const starMat = new THREE.PointsMaterial({
647
- size: 1.2, color: '#223344', transparent: true, opacity: 0.5,
655
+ size: 1.5, vertexColors: true, transparent: true, opacity: 0.6,
648
656
  blending: THREE.AdditiveBlending, depthWrite: false, sizeAttenuation: true
649
657
  });
650
658
  scene.add(new THREE.Points(starGeo, starMat));
@@ -657,14 +665,20 @@ const nodeMat = new THREE.ShaderMaterial({
657
665
  attribute vec3 aColor;
658
666
  attribute float aHighlight;
659
667
  attribute float aPulse;
668
+ attribute float aActivity;
660
669
  varying vec3 vColor;
661
670
  varying float vAlpha;
671
+ varying float vActivity;
662
672
  uniform float uTime;
663
673
  void main(){
664
674
  vColor = aColor;
665
- float breath = 1.0 + sin(uTime * aPulse + position.x * .008 + position.z * .006) * .12;
675
+ vActivity = aActivity;
676
+ float breath = 1.0 + sin(uTime * aPulse + position.x * .008 + position.z * .006) * (.08 + aActivity * .18);
666
677
  vec3 pos = position;
667
- pos.y += sin(uTime * .3 + position.x * .01 + position.z * .015) * 3.0;
678
+ // Organic breathing active layers move more
679
+ pos.y += sin(uTime * (.2 + aActivity * .4) + position.x * .01 + position.z * .015) * (2.0 + aActivity * 5.0);
680
+ pos.x += sin(uTime * .1 + position.z * .004) * aActivity * 3.0;
681
+ pos.z += cos(uTime * .08 + position.x * .004) * aActivity * 3.0;
668
682
  vAlpha = aHighlight;
669
683
  vec4 mv = modelViewMatrix * vec4(pos, 1.0);
670
684
  gl_PointSize = aSize * breath * aHighlight * (500.0 / -mv.z);
@@ -674,16 +688,18 @@ const nodeMat = new THREE.ShaderMaterial({
674
688
  fragmentShader: \`
675
689
  varying vec3 vColor;
676
690
  varying float vAlpha;
691
+ varying float vActivity;
677
692
  void main(){
678
693
  vec2 c = gl_PointCoord - vec2(.5);
679
694
  float d = length(c);
680
695
  if(d > .5) discard;
681
- float core = exp(-d*d*100.0);
682
- float g1 = exp(-d*d*18.0) * .45;
683
- float g2 = exp(-d*d*4.0) * .15;
684
- float g3 = exp(-d*d*1.2) * .06;
696
+ float act = 0.3 + vActivity * 0.7;
697
+ float core = exp(-d*d*80.0) * act;
698
+ float g1 = exp(-d*d*12.0) * .55 * act;
699
+ float g2 = exp(-d*d*3.0) * .25 * act;
700
+ float g3 = exp(-d*d*0.6) * .12;
685
701
  float i = core + g1 + g2 + g3;
686
- gl_FragColor = vec4(vColor * (1.0 + core * .5), i * vAlpha);
702
+ gl_FragColor = vec4(vColor * (1.0 + core * .6), i * vAlpha);
687
703
  }
688
704
  \`,
689
705
  transparent: true, depthWrite: false, blending: THREE.AdditiveBlending,
@@ -717,6 +733,38 @@ const particleMat = new THREE.PointsMaterial({
717
733
  blending: THREE.AdditiveBlending, depthWrite: false, sizeAttenuation: true
718
734
  });
719
735
 
736
+ // Fog nebula material — very soft, large, dim particles for volumetric clouds
737
+ const fogMat = new THREE.ShaderMaterial({
738
+ uniforms: { uTime: { value: 0 } },
739
+ vertexShader: \`
740
+ attribute float aSize;
741
+ attribute vec3 aColor;
742
+ varying vec3 vColor;
743
+ uniform float uTime;
744
+ void main(){
745
+ vColor = aColor;
746
+ vec3 pos = position;
747
+ pos.x += sin(uTime * 0.05 + position.y * 0.003 + position.z * 0.002) * 12.0;
748
+ pos.z += cos(uTime * 0.04 + position.y * 0.004 + position.x * 0.002) * 12.0;
749
+ pos.y += sin(uTime * 0.06 + position.x * 0.002) * 6.0;
750
+ vec4 mv = modelViewMatrix * vec4(pos, 1.0);
751
+ gl_PointSize = aSize * (400.0 / -mv.z);
752
+ gl_Position = projectionMatrix * mv;
753
+ }
754
+ \`,
755
+ fragmentShader: \`
756
+ varying vec3 vColor;
757
+ void main(){
758
+ vec2 c = gl_PointCoord - vec2(.5);
759
+ float d = length(c);
760
+ if(d > .5) discard;
761
+ float glow = exp(-d*d*2.0) * .35 + exp(-d*d*0.5) * .18;
762
+ gl_FragColor = vec4(vColor, glow);
763
+ }
764
+ \`,
765
+ transparent: true, depthWrite: false, blending: THREE.AdditiveBlending,
766
+ });
767
+
720
768
  // =========== SCENE OBJECTS (rebuilt by rebuildScene) ===========
721
769
  let nodePoints = null;
722
770
  let nodeGeo = null;
@@ -724,6 +772,8 @@ let edgeLines = null;
724
772
  let edgeGeo = null;
725
773
  let particlePoints = null;
726
774
  let particleGeo = null;
775
+ let fogPoints = null;
776
+ let fogGeo = null;
727
777
 
728
778
  // Data arrays rebuilt per scene
729
779
  let nodes = [];
@@ -748,6 +798,7 @@ function rebuildScene() {
748
798
  if (nodeGeo) { nodeGeo.dispose(); scene.remove(nodePoints); }
749
799
  if (edgeGeo) { edgeGeo.dispose(); scene.remove(edgeLines); }
750
800
  if (particleGeo) { particleGeo.dispose(); scene.remove(particlePoints); }
801
+ if (fogGeo) { fogGeo.dispose(); scene.remove(fogPoints); }
751
802
  orbitRings.forEach(r => { r.geometry.dispose(); r.material.dispose(); scene.remove(r); });
752
803
  orbitRings = [];
753
804
 
@@ -768,17 +819,17 @@ function rebuildScene() {
768
819
  const s = SPATIAL[lv] || SPATIAL[3];
769
820
  const c = indices.length;
770
821
  indices.forEach((ni, j) => {
771
- const angle = (j / Math.max(c, 1)) * Math.PI * 2 + (srand(ni * 19) - 0.5) * 0.6;
822
+ const angle = (j / Math.max(c, 1)) * Math.PI * 2 + (srand(ni * 19) - 0.5) * 1.2;
772
823
  const r = s.iR + srand(ni * 7) * (s.oR - s.iR);
773
- const spiral = angle + r * 0.003 + srand(ni * 23) * 0.4;
824
+ const spiral = angle + r * 0.005 + srand(ni * 23) * 0.8;
774
825
  const y = (s.yBase || 0) + (srand(ni * 11) - 0.5) * s.yS;
775
- // Add organic jitter so it doesn't look like perfect rings
776
- const jitterX = (srand(ni * 29) - 0.5) * r * 0.15;
777
- const jitterZ = (srand(ni * 37) - 0.5) * r * 0.15;
826
+ // Heavy organic jitter chaotic like a nebula/universe
827
+ const jitterX = (srand(ni * 29) - 0.5) * r * 0.3;
828
+ const jitterZ = (srand(ni * 37) - 0.5) * r * 0.3;
778
829
  positions[ni] = new THREE.Vector3(
779
- Math.cos(spiral) * r + jitterX,
830
+ Math.cos(spiral) * r + jitterX + (s.cx || 0),
780
831
  y,
781
- Math.sin(spiral) * r + jitterZ
832
+ Math.sin(spiral) * r + jitterZ + (s.cz || 0)
782
833
  );
783
834
  });
784
835
  }
@@ -808,6 +859,7 @@ function rebuildScene() {
808
859
  const nSize = new Float32Array(nCount);
809
860
  const nHighlight = new Float32Array(nCount);
810
861
  const nPulse = new Float32Array(nCount);
862
+ const nActivity = new Float32Array(nCount);
811
863
 
812
864
  for (let i = 0; i < nCount; i++) {
813
865
  const p = positions[i];
@@ -819,16 +871,18 @@ function rebuildScene() {
819
871
  nSize[i] = s.size;
820
872
  nHighlight[i] = 1.0;
821
873
  nPulse[i] = s.pulse;
874
+ nActivity[i] = s.activity || 0.5;
822
875
  }
823
876
  nodeGeo.setAttribute('position', new THREE.BufferAttribute(nPos, 3));
824
877
  nodeGeo.setAttribute('aColor', new THREE.BufferAttribute(nCol, 3));
825
878
  nodeGeo.setAttribute('aSize', new THREE.BufferAttribute(nSize, 1));
826
879
  nodeGeo.setAttribute('aHighlight', new THREE.BufferAttribute(nHighlight, 1));
827
880
  nodeGeo.setAttribute('aPulse', new THREE.BufferAttribute(nPulse, 1));
881
+ nodeGeo.setAttribute('aActivity', new THREE.BufferAttribute(nActivity, 1));
828
882
  nodePoints = new THREE.Points(nodeGeo, nodeMat);
829
883
  scene.add(nodePoints);
830
884
 
831
- // ---- ORBIT RINGS (one per layer) ----
885
+ // ---- ORBIT RINGS (one per layer, centered at layer's spiral offset) ----
832
886
  for (let lv = 1; lv <= 6; lv++) {
833
887
  const s = SPATIAL[lv];
834
888
  if (!s || !(byLevel[lv] || []).length) continue;
@@ -836,17 +890,56 @@ function rebuildScene() {
836
890
  const ringGeo = new THREE.RingGeometry(ringRadius - 0.3, ringRadius + 0.3, 96);
837
891
  const ringColor = new THREE.Color(LEVEL_COLORS_HEX[lv] || 0x00FFFF);
838
892
  const ringMat = new THREE.MeshBasicMaterial({
839
- color: ringColor, transparent: true, opacity: 0.08, side: THREE.DoubleSide,
893
+ color: ringColor, transparent: true, opacity: 0.06 + (s.activity || 0.5) * 0.06, side: THREE.DoubleSide,
840
894
  blending: THREE.AdditiveBlending, depthWrite: false,
841
895
  });
842
896
  const ring = new THREE.Mesh(ringGeo, ringMat);
843
897
  ring.rotation.x = -Math.PI / 2;
844
- ring.position.y = s.yBase;
898
+ ring.position.set(s.cx || 0, s.yBase, s.cz || 0);
845
899
  ring.userData.level = lv;
846
900
  scene.add(ring);
847
901
  orbitRings.push(ring);
848
902
  }
849
903
 
904
+ // ---- FOG NEBULA PARTICLES (volumetric cloud around each layer) ----
905
+ const FOG_PER_LAYER = 80;
906
+ const fogArr = [];
907
+ const ftc = new THREE.Color();
908
+ for (let lv = 1; lv <= 6; lv++) {
909
+ const s = SPATIAL[lv];
910
+ if (!s || !(byLevel[lv] || []).length) continue;
911
+ ftc.set(LEVEL_COLORS_HEX[lv] || 0x00FFFF);
912
+ const act = s.activity || 0.5;
913
+ for (let j = 0; j < FOG_PER_LAYER; j++) {
914
+ const seed = lv * 1000 + j;
915
+ const angle = srand(seed * 67) * Math.PI * 2;
916
+ const r = srand(seed * 73) * s.oR * 1.3;
917
+ fogArr.push({
918
+ x: Math.cos(angle) * r + (s.cx || 0),
919
+ y: s.yBase + (srand(seed * 79) - 0.5) * s.yS * 2.0,
920
+ z: Math.sin(angle) * r + (s.cz || 0),
921
+ cr: ftc.r * (0.15 + act * 0.15), cg: ftc.g * (0.15 + act * 0.15), cb: ftc.b * (0.15 + act * 0.15),
922
+ size: 50 + srand(seed * 83) * 100,
923
+ });
924
+ }
925
+ }
926
+ const fTotal = fogArr.length;
927
+ fogGeo = new THREE.BufferGeometry();
928
+ const fPos = new Float32Array(fTotal * 3);
929
+ const fCol = new Float32Array(fTotal * 3);
930
+ const fSz = new Float32Array(fTotal);
931
+ for (let i = 0; i < fTotal; i++) {
932
+ const f = fogArr[i];
933
+ fPos[i * 3] = f.x; fPos[i * 3 + 1] = f.y; fPos[i * 3 + 2] = f.z;
934
+ fCol[i * 3] = f.cr; fCol[i * 3 + 1] = f.cg; fCol[i * 3 + 2] = f.cb;
935
+ fSz[i] = f.size;
936
+ }
937
+ fogGeo.setAttribute('position', new THREE.BufferAttribute(fPos, 3));
938
+ fogGeo.setAttribute('aColor', new THREE.BufferAttribute(fCol, 3));
939
+ fogGeo.setAttribute('aSize', new THREE.BufferAttribute(fSz, 1));
940
+ fogPoints = new THREE.Points(fogGeo, fogMat);
941
+ scene.add(fogPoints);
942
+
850
943
  // ---- EDGES (LineSegments) ----
851
944
  // Prioritize cross-level edges (vertical) over intra-level (horizontal)
852
945
  const allEdges = [];
@@ -1148,7 +1241,7 @@ function closeSidebar(evt) {
1148
1241
  controls.autoRotate = true;
1149
1242
  camTween = {
1150
1243
  startPos: camera.position.clone(), startLookAt: controls.target.clone(),
1151
- targetPos: new THREE.Vector3(500, 350, 700), targetLookAt: new THREE.Vector3(0, 60, 0),
1244
+ targetPos: new THREE.Vector3(400, 250, 650), targetLookAt: new THREE.Vector3(0, -50, 0),
1152
1245
  progress: 0
1153
1246
  };
1154
1247
  }
@@ -1248,6 +1341,7 @@ function animate() {
1248
1341
  // Update shader uniforms
1249
1342
  nodeMat.uniforms.uTime.value = t;
1250
1343
  edgeMat.uniforms.uTime.value = t;
1344
+ fogMat.uniforms.uTime.value = t;
1251
1345
 
1252
1346
  // Camera tween
1253
1347
  if (camTween) {
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../src/cli/brain/template.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,iBAAiB,CAAC,IAAiB;IACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAEtC,OAAO;;;;;;0CAMiC,IAAI,CAAC,IAAI,CAAC,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uCA2ZxB,IAAI,CAAC,IAAI,CAAC,UAAU,iBAAiB,IAAI,CAAC,IAAI,CAAC,UAAU,eAAe,IAAI,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW;;wCAE3L,IAAI,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;uCACpD,IAAI,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAkKvE,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAy2BL,IAAI,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAukBvE,CAAC;AACT,CAAC"}
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../src/cli/brain/template.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,iBAAiB,CAAC,IAAiB;IACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAEtC,OAAO;;;;;;0CAMiC,IAAI,CAAC,IAAI,CAAC,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uCA2ZxB,IAAI,CAAC,IAAI,CAAC,UAAU,iBAAiB,IAAI,CAAC,IAAI,CAAC,UAAU,eAAe,IAAI,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW;;wCAE3L,IAAI,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;uCACpD,IAAI,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAkKvE,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAu8BL,IAAI,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAukBvE,CAAC;AACT,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "helixmind",
3
- "version": "0.2.24",
3
+ "version": "0.2.25",
4
4
  "description": "HelixMind – AI Coding CLI with Persistent Spiral Memory",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",