@cachly-dev/mcp-server 0.10.129 → 0.10.130
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 +2 -2
- package/dist/index.js +1 -7
- package/dist/packages/telegram-notify/client.js +2 -75
- package/dist/src/ambient-cli.js +7 -253
- package/dist/src/ambient-deps.js +1 -55
- package/dist/src/ambient-hooks.js +5 -278
- package/dist/src/ambient-ledger.js +6 -95
- package/dist/src/ambient-memory.js +1 -67
- package/dist/src/ambient-recall.js +1 -221
- package/dist/src/aussetzer.js +1 -225
- package/dist/src/auth.js +9 -140
- package/dist/src/autor-abzeichen.js +1 -56
- package/dist/src/autor.js +1 -136
- package/dist/src/bauabdruck.js +1 -93
- package/dist/src/bedeutung.js +2 -323
- package/dist/src/bench/cachly-bench.js +4 -249
- package/dist/src/bench/external-corpus.js +4 -135
- package/dist/src/bench/fixtures.js +1 -225
- package/dist/src/brain-export.js +16 -119
- package/dist/src/brain-watch-hook.js +8 -86
- package/dist/src/cachly-url.js +1 -21
- package/dist/src/ckg.js +1 -108
- package/dist/src/cls-hook.js +8 -94
- package/dist/src/confidence.js +1 -50
- package/dist/src/credentials.js +1 -85
- package/dist/src/deutsch.js +1 -223
- package/dist/src/doctor.js +2 -248
- package/dist/src/editor.js +1 -63
- package/dist/src/eingaenge-nachruesten.js +1 -290
- package/dist/src/eingaenge.js +2 -260
- package/dist/src/embeddings.js +13 -223
- package/dist/src/feldreparatur.js +3 -113
- package/dist/src/first-contact.js +4 -108
- package/dist/src/first-recall-proof.js +4 -41
- package/dist/src/funnel-milestones.js +2 -48
- package/dist/src/geliefert.js +1 -114
- package/dist/src/handlers/advanced.js +38 -537
- package/dist/src/handlers/brain.js +69 -4397
- package/dist/src/handlers/cache.js +59 -638
- package/dist/src/handlers/context.js +17 -182
- package/dist/src/handlers/fedbrain.js +40 -1436
- package/dist/src/handlers/instances.js +16 -201
- package/dist/src/handlers/roadmap.js +13 -175
- package/dist/src/handlers/share.js +19 -530
- package/dist/src/handlers/syndicate.js +38 -904
- package/dist/src/handlers/team.js +89 -1865
- package/dist/src/handlers/viz.js +3 -148
- package/dist/src/index.js +321 -4281
- package/dist/src/interferenz.js +1 -141
- package/dist/src/kostprobe.js +7 -125
- package/dist/src/lesson-preview.js +2 -133
- package/dist/src/namespace.js +1 -128
- package/dist/src/notifier.js +1 -6
- package/dist/src/rangfolge-stellschrauben.js +1 -0
- package/dist/src/rangfolge.js +1 -249
- package/dist/src/raumkorrektur.js +1 -197
- package/dist/src/recall-tiefe.js +1 -42
- package/dist/src/rerank.js +1 -154
- package/dist/src/resonanz.js +1 -140
- package/dist/src/search.js +1 -2104
- package/dist/src/seltenheitsbestand.js +1 -92
- package/dist/src/speicherlage.js +1 -84
- package/dist/src/spuren.js +1 -150
- package/dist/src/starter-corpus.js +1 -165
- package/dist/src/telemetry-types.js +0 -13
- package/dist/src/tools.js +10 -2465
- package/dist/src/toolspecs.js +1 -121
- package/dist/src/upgrade-nudge.js +1 -29
- package/dist/src/utils.js +1 -89
- package/dist/src/versuch.js +1 -264
- package/dist/src/vorspann.js +1 -146
- package/dist/src/wartung/vektoren-verdichten.js +1 -200
- package/dist/src/werkzeug-nutzung.js +1 -72
- package/dist/src/wertbeitrag.js +1 -203
- package/dist/src/wirkungsspur.js +1 -0
- package/glama.json +1 -1
- package/package.json +8 -7
- package/server.json +3 -3
- package/dist/index.d.ts +0 -1
- package/dist/index.js.map +0 -1
- package/dist/packages/telegram-notify/client.d.ts +0 -19
- package/dist/packages/telegram-notify/client.js.map +0 -1
- package/dist/src/ambient-cli.d.ts +0 -101
- package/dist/src/ambient-cli.js.map +0 -1
- package/dist/src/ambient-deps.d.ts +0 -26
- package/dist/src/ambient-deps.js.map +0 -1
- package/dist/src/ambient-hooks.d.ts +0 -137
- package/dist/src/ambient-hooks.js.map +0 -1
- package/dist/src/ambient-ledger.d.ts +0 -19
- package/dist/src/ambient-ledger.js.map +0 -1
- package/dist/src/ambient-memory.d.ts +0 -12
- package/dist/src/ambient-memory.js.map +0 -1
- package/dist/src/ambient-recall.d.ts +0 -127
- package/dist/src/ambient-recall.js.map +0 -1
- package/dist/src/aussetzer.d.ts +0 -156
- package/dist/src/aussetzer.js.map +0 -1
- package/dist/src/auth.d.ts +0 -43
- package/dist/src/auth.js.map +0 -1
- package/dist/src/autor-abzeichen.d.ts +0 -41
- package/dist/src/autor-abzeichen.js.map +0 -1
- package/dist/src/autor.d.ts +0 -101
- package/dist/src/autor.js.map +0 -1
- package/dist/src/bauabdruck-daten.generiert.json +0 -5
- package/dist/src/bauabdruck.d.ts +0 -38
- package/dist/src/bauabdruck.js.map +0 -1
- package/dist/src/bedeutung.d.ts +0 -168
- package/dist/src/bedeutung.js.map +0 -1
- package/dist/src/bench/cachly-bench.d.ts +0 -61
- package/dist/src/bench/cachly-bench.js.map +0 -1
- package/dist/src/bench/external-corpus.d.ts +0 -44
- package/dist/src/bench/external-corpus.js.map +0 -1
- package/dist/src/bench/fixtures.d.ts +0 -37
- package/dist/src/bench/fixtures.js.map +0 -1
- package/dist/src/brain-export.d.ts +0 -64
- package/dist/src/brain-export.js.map +0 -1
- package/dist/src/brain-watch-hook.d.ts +0 -21
- package/dist/src/brain-watch-hook.js.map +0 -1
- package/dist/src/cachly-url.d.ts +0 -68
- package/dist/src/cachly-url.js.map +0 -1
- package/dist/src/ckg.d.ts +0 -54
- package/dist/src/ckg.js.map +0 -1
- package/dist/src/cls-hook.d.ts +0 -15
- package/dist/src/cls-hook.js.map +0 -1
- package/dist/src/confidence.d.ts +0 -19
- package/dist/src/confidence.js.map +0 -1
- package/dist/src/credentials.d.ts +0 -37
- package/dist/src/credentials.js.map +0 -1
- package/dist/src/deutsch.d.ts +0 -98
- package/dist/src/deutsch.js.map +0 -1
- package/dist/src/doctor.d.ts +0 -47
- package/dist/src/doctor.js.map +0 -1
- package/dist/src/editor.d.ts +0 -9
- package/dist/src/editor.js.map +0 -1
- package/dist/src/eingaenge-nachruesten.d.ts +0 -41
- package/dist/src/eingaenge-nachruesten.js.map +0 -1
- package/dist/src/eingaenge.d.ts +0 -159
- package/dist/src/eingaenge.js.map +0 -1
- package/dist/src/embeddings.d.ts +0 -48
- package/dist/src/embeddings.js.map +0 -1
- package/dist/src/feldreparatur.d.ts +0 -58
- package/dist/src/feldreparatur.js.map +0 -1
- package/dist/src/first-contact.d.ts +0 -56
- package/dist/src/first-contact.js.map +0 -1
- package/dist/src/first-recall-proof.d.ts +0 -19
- package/dist/src/first-recall-proof.js.map +0 -1
- package/dist/src/funnel-milestones.d.ts +0 -5
- package/dist/src/funnel-milestones.js.map +0 -1
- package/dist/src/geliefert.d.ts +0 -63
- package/dist/src/geliefert.js.map +0 -1
- package/dist/src/handlers/advanced.d.ts +0 -6
- package/dist/src/handlers/advanced.js.map +0 -1
- package/dist/src/handlers/brain.d.ts +0 -41
- package/dist/src/handlers/brain.js.map +0 -1
- package/dist/src/handlers/cache.d.ts +0 -6
- package/dist/src/handlers/cache.js.map +0 -1
- package/dist/src/handlers/context.d.ts +0 -6
- package/dist/src/handlers/context.js.map +0 -1
- package/dist/src/handlers/fedbrain.d.ts +0 -18
- package/dist/src/handlers/fedbrain.js.map +0 -1
- package/dist/src/handlers/instances.d.ts +0 -33
- package/dist/src/handlers/instances.js.map +0 -1
- package/dist/src/handlers/roadmap.d.ts +0 -6
- package/dist/src/handlers/roadmap.js.map +0 -1
- package/dist/src/handlers/share.d.ts +0 -8
- package/dist/src/handlers/share.js.map +0 -1
- package/dist/src/handlers/syndicate.d.ts +0 -6
- package/dist/src/handlers/syndicate.js.map +0 -1
- package/dist/src/handlers/team.d.ts +0 -45
- package/dist/src/handlers/team.js.map +0 -1
- package/dist/src/handlers/viz.d.ts +0 -6
- package/dist/src/handlers/viz.js.map +0 -1
- package/dist/src/index.d.ts +0 -93
- package/dist/src/index.js.map +0 -1
- package/dist/src/interferenz.d.ts +0 -111
- package/dist/src/interferenz.js.map +0 -1
- package/dist/src/kostprobe.d.ts +0 -25
- package/dist/src/kostprobe.js.map +0 -1
- package/dist/src/lesson-preview.d.ts +0 -81
- package/dist/src/lesson-preview.js.map +0 -1
- package/dist/src/namespace.d.ts +0 -20
- package/dist/src/namespace.js.map +0 -1
- package/dist/src/notifier.d.ts +0 -5
- package/dist/src/notifier.js.map +0 -1
- package/dist/src/rangfolge.d.ts +0 -205
- package/dist/src/rangfolge.js.map +0 -1
- package/dist/src/raumkorrektur.d.ts +0 -100
- package/dist/src/raumkorrektur.js.map +0 -1
- package/dist/src/recall-tiefe.d.ts +0 -48
- package/dist/src/recall-tiefe.js.map +0 -1
- package/dist/src/rerank.d.ts +0 -48
- package/dist/src/rerank.js.map +0 -1
- package/dist/src/resonanz.d.ts +0 -85
- package/dist/src/resonanz.js.map +0 -1
- package/dist/src/search.d.ts +0 -153
- package/dist/src/search.js.map +0 -1
- package/dist/src/seltenheitsbestand.d.ts +0 -53
- package/dist/src/seltenheitsbestand.js.map +0 -1
- package/dist/src/speicherlage.d.ts +0 -51
- package/dist/src/speicherlage.js.map +0 -1
- package/dist/src/spuren.d.ts +0 -97
- package/dist/src/spuren.js.map +0 -1
- package/dist/src/starter-corpus.d.ts +0 -28
- package/dist/src/starter-corpus.js.map +0 -1
- package/dist/src/telemetry-types.d.ts +0 -87
- package/dist/src/telemetry-types.js.map +0 -1
- package/dist/src/tools.d.ts +0 -2933
- package/dist/src/tools.js.map +0 -1
- package/dist/src/toolspecs.d.ts +0 -43
- package/dist/src/toolspecs.js.map +0 -1
- package/dist/src/upgrade-nudge.d.ts +0 -15
- package/dist/src/upgrade-nudge.js.map +0 -1
- package/dist/src/utils.d.ts +0 -34
- package/dist/src/utils.js.map +0 -1
- package/dist/src/versuch.d.ts +0 -187
- package/dist/src/versuch.js.map +0 -1
- package/dist/src/vorspann.d.ts +0 -73
- package/dist/src/vorspann.js.map +0 -1
- package/dist/src/wartung/vektoren-verdichten.d.ts +0 -50
- package/dist/src/wartung/vektoren-verdichten.js.map +0 -1
- package/dist/src/werkzeug-nutzung.d.ts +0 -62
- package/dist/src/werkzeug-nutzung.js.map +0 -1
- package/dist/src/wertbeitrag.d.ts +0 -148
- package/dist/src/wertbeitrag.js.map +0 -1
package/dist/src/resonanz.js
CHANGED
|
@@ -1,140 +1 @@
|
|
|
1
|
-
|
|
2
|
-
* Resonanz — eine Lektion wird durch die Fragen adressiert, die zu ihr fuehrten.
|
|
3
|
-
*
|
|
4
|
-
* ── Das Vorbild ─────────────────────────────────────────────────────────────
|
|
5
|
-
*
|
|
6
|
-
* Das Hologramm speichert nicht das Bild, sondern das Interferenzmuster des
|
|
7
|
-
* Lichts, das es beleuchtet hat. Beleuchtet man es spaeter wieder, entsteht
|
|
8
|
-
* das Bild aus dem Muster — und jeder Splitter traegt das Ganze, nur unschaerfer.
|
|
9
|
-
*
|
|
10
|
-
* ── Das Problem, gegen das es antritt ───────────────────────────────────────
|
|
11
|
-
*
|
|
12
|
-
* Jeder Index in diesem Haus beschreibt, was eine Lektion SAGT: ihr Volltext,
|
|
13
|
-
* ihr Themenname. Gesucht wird aber mit dem, was jemand FRAGT — und die beiden
|
|
14
|
-
* Sprachen fallen auseinander. Gemessen am 21.08.2026: von 100 Fragen liegen
|
|
15
|
-
* 11 auf Platz 100+ der Bedeutungsrangfolge. Fuer die ist die richtige Lektion
|
|
16
|
-
* semantisch nicht "in der Naehe" — keine Vektorrechnung ueber ihren Text holt
|
|
17
|
-
* sie naeher heran.
|
|
18
|
-
*
|
|
19
|
-
* Diese Datei fuehrt deshalb eine dritte Sicht: je Lektion die laufende
|
|
20
|
-
* Ueberlagerung aller Fragevektoren, die nachweislich zu ihr gefuehrt haben.
|
|
21
|
-
* Der Vergleich laeuft dann Frage-gegen-Frage statt Frage-gegen-Text.
|
|
22
|
-
*
|
|
23
|
-
* ── Warum wir das koennen und andere nicht ──────────────────────────────────
|
|
24
|
-
*
|
|
25
|
-
* Es braucht die geschlossene Schleife: von der Frage ueber den Treffer bis zu
|
|
26
|
-
* der Bestaetigung, dass der Treffer richtig war. Ein Suchindex, der nur
|
|
27
|
-
* Dokumente kennt, hat diese Daten nicht.
|
|
28
|
-
*
|
|
29
|
-
* ── Die ehrliche Grenze ─────────────────────────────────────────────────────
|
|
30
|
-
*
|
|
31
|
-
* Der Index ist am Anfang leer. Eine Lektion, die noch nie gefunden wurde, hat
|
|
32
|
-
* keine Resonanz — und ausgerechnet die braeuchte sie am dringendsten. Das ist
|
|
33
|
-
* kein Fehler der Idee, sondern ihre Bauart: sie wird mit der Zeit besser und
|
|
34
|
-
* am ersten Tag gar nicht. Deshalb ist sie ein ZUSATZ und ersetzt keine Sicht.
|
|
35
|
-
*/
|
|
36
|
-
import { packe, entpacke, kosinus } from './bedeutung.js';
|
|
37
|
-
/** Schluessel-Vorsatz der Resonanzvektoren. */
|
|
38
|
-
export const RESONANZ_PRAEFIX = 'cachly:lesson:res:';
|
|
39
|
-
/**
|
|
40
|
-
* Fuegt einen Fragevektor zur Resonanz einer Lektion.
|
|
41
|
-
*
|
|
42
|
-
* Die Ueberlagerung ist eine gleitende Summe mit Normierung: der neue Vektor
|
|
43
|
-
* zieht die Resonanz um `anteil` in seine Richtung. Ohne Normierung waeren
|
|
44
|
-
* haeufig gefundene Lektionen einfach laenger und wuerden jeden Kosinus
|
|
45
|
-
* gewinnen — die Naehe misst dann Beliebtheit statt Passung.
|
|
46
|
-
*
|
|
47
|
-
* `anteil` bewusst klein: eine einzelne Frage darf die Adresse einer Lektion
|
|
48
|
-
* nicht umschreiben. Zehn aehnliche Fragen sollen sie praegen, eine schraege
|
|
49
|
-
* nicht.
|
|
50
|
-
*
|
|
51
|
-
* @param bisher die bisherige Resonanz oder null
|
|
52
|
-
* @param frage der Fragevektor, der zu einem bestaetigten Treffer fuehrte
|
|
53
|
-
* @param anteil wie stark die neue Frage zieht
|
|
54
|
-
*/
|
|
55
|
-
export function ueberlagere(bisher, frage, anteil = 0.3) {
|
|
56
|
-
if (!bisher || bisher.length !== frage.length)
|
|
57
|
-
return normiere(frage);
|
|
58
|
-
const neu = bisher.map((x, i) => (1 - anteil) * x + anteil * frage[i]);
|
|
59
|
-
return normiere(neu);
|
|
60
|
-
}
|
|
61
|
-
/** Auf Laenge 1. Ein Nullvektor bleibt ein Nullvektor. */
|
|
62
|
-
export function normiere(v) {
|
|
63
|
-
let q = 0;
|
|
64
|
-
for (const x of v)
|
|
65
|
-
q += x * x;
|
|
66
|
-
const l = Math.sqrt(q);
|
|
67
|
-
return l > 0 ? v.map((x) => x / l) : v;
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Der Resonanzbestand — dieselbe Mechanik wie Vektorbestand, andere Sicht.
|
|
71
|
-
*
|
|
72
|
-
* Bewusst eine eigene kleine Klasse statt eines vierten Vektorbestand-Praefix:
|
|
73
|
-
* dieser Bestand wird auch GESCHRIEBEN (im Recall-Pfad, nach einem Treffer),
|
|
74
|
-
* und Schreiben gehoert nicht in eine Klasse, die sonst nur laedt.
|
|
75
|
-
*/
|
|
76
|
-
export class Resonanzbestand {
|
|
77
|
-
frischeMs;
|
|
78
|
-
vektoren = new Map();
|
|
79
|
-
geladen = 0;
|
|
80
|
-
constructor(frischeMs = 60_000) {
|
|
81
|
-
this.frischeMs = frischeMs;
|
|
82
|
-
}
|
|
83
|
-
/** Die Naehe einer Frage zur Resonanz EINER Lektion. -2, wenn keine da ist. */
|
|
84
|
-
naehe(frage, topic) {
|
|
85
|
-
const v = this.vektoren.get(topic);
|
|
86
|
-
return v ? kosinus(frage, v) : -2;
|
|
87
|
-
}
|
|
88
|
-
get groesse() { return this.vektoren.size; }
|
|
89
|
-
/** Nur fuer Messungen: Resonanz ohne Speicher setzen. */
|
|
90
|
-
setzeDirekt(topic, v) {
|
|
91
|
-
this.vektoren.set(topic, v);
|
|
92
|
-
}
|
|
93
|
-
/** Laedt fehlende Resonanzvektoren nach. */
|
|
94
|
-
async aktualisiere(redis, jetzt = Date.now()) {
|
|
95
|
-
if (this.vektoren.size > 0 && jetzt - this.geladen < this.frischeMs)
|
|
96
|
-
return;
|
|
97
|
-
const schluessel = [];
|
|
98
|
-
let cursor = '0';
|
|
99
|
-
do {
|
|
100
|
-
const [next, gefunden] = await redis.scan(cursor, 'MATCH', `${RESONANZ_PRAEFIX}*`, 'COUNT', 500);
|
|
101
|
-
cursor = next;
|
|
102
|
-
schluessel.push(...gefunden);
|
|
103
|
-
} while (cursor !== '0');
|
|
104
|
-
if (schluessel.length === 0) {
|
|
105
|
-
this.geladen = jetzt;
|
|
106
|
-
return;
|
|
107
|
-
}
|
|
108
|
-
const werte = await redis.mget(...schluessel);
|
|
109
|
-
const frisch = new Map();
|
|
110
|
-
for (const [i, s] of schluessel.entries()) {
|
|
111
|
-
const roh = werte[i];
|
|
112
|
-
if (!roh)
|
|
113
|
-
continue;
|
|
114
|
-
const v = entpacke(roh);
|
|
115
|
-
if (v)
|
|
116
|
-
frisch.set(s.slice(RESONANZ_PRAEFIX.length), v);
|
|
117
|
-
}
|
|
118
|
-
this.vektoren = frisch;
|
|
119
|
-
this.geladen = jetzt;
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Schreibt die neue Resonanz einer Lektion.
|
|
123
|
-
*
|
|
124
|
-
* Faengt jeden Fehler ab: eine Suche darf nie daran scheitern, dass sie sich
|
|
125
|
-
* nicht merken konnte, was sie gefunden hat. Der Aufrufer bekommt `false`
|
|
126
|
-
* und kann es melden.
|
|
127
|
-
*/
|
|
128
|
-
async schreibe(redis, topic, frage, anteil = 0.3) {
|
|
129
|
-
try {
|
|
130
|
-
const neu = ueberlagere(this.vektoren.get(topic) ?? null, frage, anteil);
|
|
131
|
-
this.vektoren.set(topic, neu);
|
|
132
|
-
await redis.set(`${RESONANZ_PRAEFIX}${topic}`, packe(neu));
|
|
133
|
-
return true;
|
|
134
|
-
}
|
|
135
|
-
catch {
|
|
136
|
-
return false;
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
//# sourceMappingURL=resonanz.js.map
|
|
1
|
+
import{packe as g,entpacke as k,kosinus as p}from"./bedeutung.js";const a="cachly:lesson:res:";function v(s,e,t=.3){if(!s||s.length!==e.length)return f(e);const n=s.map((r,o)=>(1-t)*r+t*e[o]);return f(n)}function f(s){let e=0;for(const n of s)e+=n*n;const t=Math.sqrt(e);return t>0?s.map(n=>n/t):s}class M{frischeMs;vektoren=new Map;geladen=0;constructor(e=6e4){this.frischeMs=e}naehe(e,t){const n=this.vektoren.get(t);return n?p(e,n):-2}get groesse(){return this.vektoren.size}setzeDirekt(e,t){this.vektoren.set(e,t)}async aktualisiere(e,t=Date.now()){if(this.vektoren.size>0&&t-this.geladen<this.frischeMs)return;const n=[];let r="0";do{const[c,i]=await e.scan(r,"MATCH",`${a}*`,"COUNT",500);r=c,n.push(...i)}while(r!=="0");if(n.length===0){this.geladen=t;return}const o=await e.mget(...n),h=new Map;for(const[c,i]of n.entries()){const u=o[c];if(!u)continue;const l=k(u);l&&h.set(i.slice(a.length),l)}this.vektoren=h,this.geladen=t}async schreibe(e,t,n,r=.3){try{const o=v(this.vektoren.get(t)??null,n,r);return this.vektoren.set(t,o),await e.set(`${a}${t}`,g(o)),!0}catch{return!1}}}export{a as RESONANZ_PRAEFIX,M as Resonanzbestand,f as normiere,v as ueberlagere};
|