@cachly-dev/mcp-server 0.10.159 → 0.10.161
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/README.md +14 -8
- package/dist/src/bedeutung.js +2 -2
- package/dist/src/handlers/brain.js +59 -59
- package/dist/src/handlers/team.js +45 -45
- package/glama.json +1 -1
- package/package.json +1 -1
- package/server.json +2 -2
package/README.md
CHANGED
|
@@ -153,14 +153,20 @@ them.
|
|
|
153
153
|
Install the **[cachly Brain](https://marketplace.visualstudio.com/items?itemName=cachly-dev.cachly-brain)**
|
|
154
154
|
extension. It signs you in silently and creates your brain — no account form.
|
|
155
155
|
|
|
156
|
-
### JetBrains —
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
[cachly-dev/cachly-intellij](https://github.com/cachly-dev/cachly-intellij)
|
|
162
|
-
|
|
163
|
-
|
|
156
|
+
### JetBrains — one click
|
|
157
|
+
|
|
158
|
+
Install **[Cachly Brain](https://plugins.jetbrains.com/plugin/32059-cachly-brain)**
|
|
159
|
+
from the JetBrains Marketplace (IntelliJ, PyCharm, GoLand, WebStorm, Rider).
|
|
160
|
+
Status bar, brain health and the lessons view live in the IDE; the source is
|
|
161
|
+
at [cachly-dev/cachly-intellij](https://github.com/cachly-dev/cachly-intellij).
|
|
162
|
+
The `npx … autopilot` path below also configures JetBrains AI Assistant.
|
|
163
|
+
|
|
164
|
+
### MCP Registry — for any client that reads it
|
|
165
|
+
|
|
166
|
+
The server is listed in the official **[MCP Registry](https://registry.modelcontextprotocol.io/v0/servers?search=cachly)**
|
|
167
|
+
as `io.github.cachly-dev/mcp-server`, every release, same day. Clients that
|
|
168
|
+
browse the registry (Claude Desktop, Goose, VS Code's MCP gallery and others)
|
|
169
|
+
find it there by name; the entry points at this npm package.
|
|
164
170
|
|
|
165
171
|
### Anything else — one command
|
|
166
172
|
|
package/dist/src/bedeutung.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const x="cachly:lesson:vec:",E="cachly:lesson:vecname:",w="cachly:lesson:vec2:";function
|
|
2
|
-
`).slice(0,2e3)}class _{frischeMs;praefix;vektoren=new Map;geladen=0;constructor(e=6e4,i=x){this.frischeMs=e,this.praefix=i}naehe(e,i){const r=this.vektoren.get(`${this.praefix}${i}`);return r?u(e,r):-2}rohvektor(e){return this.vektoren.get(`${this.praefix}${e}`)??null}get groesse(){return this.vektoren.size}async aktualisiere(e,i=Date.now()){if(this.vektoren.size>0&&i-this.geladen<this.frischeMs)return;const r=[];let s="0";do{const[n,
|
|
1
|
+
const x="cachly:lesson:vec:",E="cachly:lesson:vecname:",w="cachly:lesson:vec2:";function v(o){return o.replace(/[:_-]+/g," ").replace(/\s+/g," ").trim()}const f=1,c=7;function b(o){let e=0;for(const t of o){const n=Math.abs(t);n>e&&(e=n)}const i=e>0?e/127:1;let r=c+o.length;for(;r%4!==1;)r++;const s=Buffer.alloc(r);s.writeUInt8(f,0),s.writeUInt16LE(o.length,1),s.writeFloatLE(i,3);for(let t=0;t<o.length;t++){const n=Math.round(o[t]/i);s.writeInt8(n>127?127:n<-127?-127:n,c+t)}return s.toString("base64")}function k(o){try{const e=Buffer.from(o,"base64");if(e.byteLength===0)return null;if(e[0]===f&&e.byteLength%4===1&&e.byteLength>c){const r=e.readUInt16LE(1);if(r===0||c+r>e.byteLength)return null;const s=e.readFloatLE(3);if(!Number.isFinite(s))return null;const t=new Array(r);for(let n=0;n<r;n++)t[n]=e.readInt8(c+n)*s;return t}if(e.byteLength%4!==0)return null;const i=new Float32Array(e.buffer,e.byteOffset,e.byteLength/4);return Array.from(i)}catch{return null}}function u(o,e){if(o.length!==e.length)return-1;let i=0,r=0,s=0;for(let t=0;t<o.length;t++)i+=o[t]*e[t],r+=o[t]*o[t],s+=e[t]*e[t];return r&&s?i/Math.sqrt(r*s):0}function d(o){const e=i=>typeof i=="string"?i:"";return[e(o.topic),e(o.what_worked),e(o.what_failed)].filter(Boolean).join(`
|
|
2
|
+
`).slice(0,2e3)}class _{frischeMs;praefix;vektoren=new Map;geladen=0;constructor(e=6e4,i=x){this.frischeMs=e,this.praefix=i}naehe(e,i){const r=this.vektoren.get(`${this.praefix}${i}`);return r?u(e,r):-2}rohvektor(e){return this.vektoren.get(`${this.praefix}${e}`)??null}get groesse(){return this.vektoren.size}hat(e){return this.vektoren.has(`${this.praefix}${e}`)}themen(){return[...this.vektoren.keys()].map(e=>e.slice(this.praefix.length))}async aktualisiere(e,i=Date.now()){if(this.vektoren.size>0&&i-this.geladen<this.frischeMs)return;const r=[];let s="0";do{const[n,a]=await e.scan(s,"MATCH",`${this.praefix}*`,"COUNT",500);s=n,r.push(...a)}while(s!=="0");const t=r.filter(n=>!this.vektoren.has(n));for(let n=0;n<t.length;n+=100){const a=t.slice(n,n+100),g=await e.mget(...a);for(const[p,h]of g.entries()){if(!h)continue;const l=k(h);l&&this.vektoren.set(a[p],l)}}if(r.length<this.vektoren.size){const n=new Set(r);for(const a of[...this.vektoren.keys()])n.has(a)||this.vektoren.delete(a)}this.geladen=i}aehnlichste(e,i){const r=[];for(const[s,t]of this.vektoren)r.push({topic:s.slice(this.praefix.length),naehe:u(e,t)});return r.sort((s,t)=>t.naehe-s.naehe),r.slice(0,i)}}const y=.1;function m(o,e,i=y,r=60){const s=new Map;return o.forEach((t,n)=>s.set(t,(s.get(t)??0)+i/(r+n+1))),e.forEach((t,n)=>s.set(t,(s.get(t)??0)+(1-i)/(r+n+1))),[...s.entries()].sort((t,n)=>n[1]-t[1]).map(([t])=>t)}export{E as NAME_VEKTOR_PRAEFIX,x as VEKTOR_PRAEFIX,_ as Vektorbestand,y as WORT_GEWICHT,w as ZWEIT_VEKTOR_PRAEFIX,k as entpacke,u as kosinus,m as mischeRangfolgen,b as packe,v as textFuerNamensVektor,d as textFuerVektor};
|