@futdevpro/fdp-agent-memory 1.1.152 → 1.1.158
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/build/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@futdevpro/fdp-agent-memory",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.158",
|
|
4
4
|
"description": "Local-first, vector-backed multi-table agent memory exposed as an MCP server (read/write/capabilities). Public, FDP-Templates-free, no auth.",
|
|
5
5
|
"private": false,
|
|
6
6
|
"publishConfig": {
|
|
@@ -526,12 +526,12 @@ exports.CONFIG_CATALOG = {
|
|
|
526
526
|
},
|
|
527
527
|
// --- 4.5c. Rules-injekció (fogyasztó: FAM_RuleInjection_ControlService) ---
|
|
528
528
|
'rules.injectBudgetChars': {
|
|
529
|
-
type: 'number', default:
|
|
530
|
-
description: 'Az
|
|
531
|
-
+ '
|
|
532
|
-
+ '
|
|
533
|
-
+ '
|
|
534
|
-
+ '
|
|
529
|
+
type: 'number', default: 88000, min: 1000, max: 400000, integer: true, levels: ALL_LEVELS,
|
|
530
|
+
description: 'Az injektalt szabaly-blokk char-budgetje. MERT (2026-08-22): a 60 szabaly injektalt merete '
|
|
531
|
+
+ '80 514 char, ezert 82 000 alatt szabalyok ESNEK KI — 32 000-nel 65-bol 45, koztuk a core-no-coauthor, '
|
|
532
|
+
+ 'a core-always-master es maga a fam-use-preferentially. A 88 000 ~9% fejlodesi tartalek. '
|
|
533
|
+
+ 'Elotte a `fam:elide-start/end` jelolok mar levalasztottak a nem-normativ kifejtest (88 480 -> 80 514, '
|
|
534
|
+
+ '-9%); tovabbi csokkentes csak a hosszu UTASITASOK owner-dontesu tomoritesevel lehetseges.',
|
|
535
535
|
},
|
|
536
536
|
// --- 4.6. Reference / scope (fogyasztó: dsgn-002) ---
|
|
537
537
|
'reference.cacheTtlMs': {
|
|
@@ -23,6 +23,16 @@ const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
|
|
|
23
23
|
* hogy a logok a látható ablak MELLETT fájlból is tail-elhetők legyenek (a `fam serve` ezt állítja be a detached szerverre).
|
|
24
24
|
*/
|
|
25
25
|
class FAM_Console_Util {
|
|
26
|
+
/**
|
|
27
|
+
* UTF-8 BOM (`U+FEFF`) — a generalt `.ps1` ELSO karaktere. Enelkul a Windows PowerShell 5.1 a fajlt a
|
|
28
|
+
* rendszer ANSI-kodlapjan olvassa (magyar Windowson `windows-1250`), es minden ekezet elromlik
|
|
29
|
+
* (lasd `windowsServerScript`). A Node `writeFileSync` UTF-8-ban ir, igy ebbol pontosan `EF BB BF` lesz.
|
|
30
|
+
*
|
|
31
|
+
* A `String.fromCharCode(0xFEFF)` forma szandekos a literalis (lathatatlan) karakter helyett: azt egy code-style sweep,
|
|
32
|
+
* egy editor vagy egy trim-elo szkript NEMAN kiszedhetne, es a hiba csak a felhasznalonal jelentkezne
|
|
33
|
+
* mojibake-kent — pontosan ugy, ahogy 2026-08-22-en jelentkezett.
|
|
34
|
+
*/
|
|
35
|
+
static UTF8_BOM = String.fromCharCode(0xFEFF);
|
|
26
36
|
/**
|
|
27
37
|
* **File-log (`FAM_LOG_FILE`)** — ha az env be van állítva, a `console.*` MINDEN sorát rácsatolja arra a fájlra
|
|
28
38
|
* (a látható ablak MELLETT). A `fam serve` ezt állítja a detached szerverre → a logok (köztük az import-progress)
|
|
@@ -113,11 +123,23 @@ class FAM_Console_Util {
|
|
|
113
123
|
* A Windows szerver-launcher `.ps1` tartalma (PURE — unit-tesztelhető): UTF-8 konzol + ablakcím, az env-override-ok
|
|
114
124
|
* (`$env:X='...'`), majd a szerver futtatása (`& command args`). A `'`-eket megdupláljuk (PS string-escape). A
|
|
115
125
|
* `-NoExit` (a spawn-oldalon) tartja nyitva az ablakot kilépés után.
|
|
126
|
+
*
|
|
127
|
+
* 🔴 **A visszaadott szöveg UTF-8 BOM-mal KEZDŐDIK — ez nem díszítés, hanem a helyes működés feltétele.**
|
|
128
|
+
* A launchert a `powershell.exe` (**Windows PowerShell 5.1**) futtatja, az pedig a **BOM NÉLKÜLI** `.ps1`-et a
|
|
129
|
+
* rendszer ANSI-kódlapján értelmezi — magyar Windowson `windows-1250`. Mérve (2026-08-22, PS 5.1.26100,
|
|
130
|
+
* ANSI = windows-1250) ugyanazzal a fájllal:
|
|
131
|
+
*
|
|
132
|
+
* BOM nélkül → `[FAM szerver kilĂ©pett †exit 0 †'fam serve --restart' ĂşjraindĂtja]`
|
|
133
|
+
* BOM-mal → `[FAM szerver kilépett — exit 0 — 'fam serve --restart' újraindítja]`
|
|
134
|
+
*
|
|
135
|
+
* A `[Console]::OutputEncoding=UTF8` sor ezen NEM segít: az a KIMENET kódolását állítja, a hiba viszont már a
|
|
136
|
+
* fájl BEOLVASÁSAKOR megtörténik. És a hiba nem csak kozmetikai: az `envOverrides` ÉRTÉKEI is ezen az úton
|
|
137
|
+
* mennek át, így egy ékezetes útvonal/érték is elromlana.
|
|
116
138
|
*/
|
|
117
139
|
static windowsServerScript(set) {
|
|
118
140
|
const esc = (value) => value.replace(/'/g, "''");
|
|
119
141
|
const lines = [
|
|
120
|
-
|
|
142
|
+
`${FAM_Console_Util.UTF8_BOM}try { [Console]::OutputEncoding=[System.Text.Encoding]::UTF8 } catch {}`,
|
|
121
143
|
`try { $host.UI.RawUI.WindowTitle='FAM server :${set.port}' } catch {}`,
|
|
122
144
|
];
|
|
123
145
|
for (const [key, value] of Object.entries(set.envOverrides)) {
|
|
@@ -13,15 +13,47 @@ const fam_rule_scope_type_enum_1 = require("../../../_enums/fam-rule-scope.type-
|
|
|
13
13
|
*/
|
|
14
14
|
class FAM_RuleInjection_Util {
|
|
15
15
|
/**
|
|
16
|
-
* Default char-budget az injektált blokkra. **
|
|
16
|
+
* Default char-budget az injektált blokkra. **88000 (2026-08-22).** Owner-alapelv változatlan (2026-08-14):
|
|
17
|
+
* „a szabályok kritikusak" — inkább fizetünk kontextust, mint hogy szabály essen ki.
|
|
17
18
|
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
19
|
+
* A SZÁM TÖRTÉNETE, MÉRVE:
|
|
20
|
+
* - `6000` → 56 szabályból ~10 fért be; a hosszabbak chunkokra bomlottak, így a kimaradás NÉMA CSONKOLÁSKÉNT
|
|
21
|
+
* jelent meg (`core-rule-integrity` sérülés).
|
|
22
|
+
* - `32000` → a 2026-08-14-i mért 25 179 char-ra ~27% tartalék volt. 2026-08-22-re a készlet **85 854 char**-ra
|
|
23
|
+
* nőtt (nem a darabszám, hanem a HOSSZ nőtt), és **65 szabályból 45 esett ki** — köztük a `core-no-coauthor`,
|
|
24
|
+
* a `core-always-master`, a `core-no-polling` és maga a `fam-use-preferentially`.
|
|
25
|
+
* - `88000` → a `fam:elide-start/end` jelölők bevezetése UTÁN mért injektált méret **80 514 char** (a jelölés
|
|
26
|
+
* 88 480-ról vitte le, −9%; a további csökkentés már a hosszú UTASÍTÁSOKAT érintené, az pedig owner-döntés).
|
|
27
|
+
* 82 000 alatt szabály esik ki; a 88 000 ~9% fejlődési tartalék.
|
|
28
|
+
*
|
|
29
|
+
* Konfigurálható: `rules.injectBudgetChars` (a hívó `budgetChars`-a nyer). A budget-hiány SOHA nem néma:
|
|
30
|
+
* a záró sor jelzi a kimaradt darabszámot, és minden rövidített szabály LÁTHATÓ pointert kap (`coreOf`).
|
|
23
31
|
*/
|
|
24
|
-
static DEFAULT_BUDGET_CHARS =
|
|
32
|
+
static DEFAULT_BUDGET_CHARS = 88000;
|
|
33
|
+
/**
|
|
34
|
+
* A **mindig injektálandó normatív mag** vége a szabály-fájlban. Ami a jelölő UTÁN áll (Miért / Példák /
|
|
35
|
+
* Migráció / Ellenőrzés / incidens-narratíva), az **on-demand** — a kanonikus fájlban marad, és a `read`
|
|
36
|
+
* hozza elő, ha kell.
|
|
37
|
+
*
|
|
38
|
+
* MÉRT INDOK (2026-08-22): a szabály-készlet 60 szabályból **85 854 char**-ra nőtt, és 65-ből **45 esett ki**
|
|
39
|
+
* a 32k-s budgetből — köztük a `core-no-coauthor`, a `core-always-master` és maga a `fam-use-preferentially`.
|
|
40
|
+
* A készlet ugyanakkor KETTÉVÁLT: 38 szabály 1000 char alatt (átlag 292, kifejtés nélkül), míg 8 szabály
|
|
41
|
+
* 4000 fölött adja a készlet **49%-át**. A hízás NEM az utasításban van: a legnagyobbaknál a normatív mag
|
|
42
|
+
* `core-no-polling` 7%, `core-dynamo-docs-english` 10%, `core-wakeup-state-file` 20%. A címkézett kifejtés
|
|
43
|
+
* összesen a készlet **33%-a** (alsó becslés).
|
|
44
|
+
*
|
|
45
|
+
* A megoldás a `core-rule-integrity` által KIFEJEZETTEN megengedett forma: az **utasítás inline marad**, a
|
|
46
|
+
* kifejtés **pointerré válik**, LÁTHATÓ jelzéssel. A fájlból SEMMI nem kerül ki — csak az injektálás
|
|
47
|
+
* szelektív. Jelölő nélküli szabály **teljes egészében** injektálódik (visszafelé kompatibilis default).
|
|
48
|
+
*
|
|
49
|
+
* SZAKASZ-jelölő, nem egyetlen vágópont: a kifejtés a valós szabály-fájlokban BEÉKELŐDIK a normatív részek
|
|
50
|
+
* közé (pl. `core-wakeup-state-file`: „A szabály" → „Miért" → „Hol éljen" → „Mit tartalmazzon"), ezért egy
|
|
51
|
+
* záró vágópont nem lenne elég — átrendezéssel járna, azt pedig nem akarjuk a szabály-fájlokon.
|
|
52
|
+
* Lezáratlan `elide-start` → a fájl végéig tart (így a záró kifejtésnél elég egyetlen jelölő).
|
|
53
|
+
*/
|
|
54
|
+
static ELIDE_START = '<!-- fam:elide-start -->';
|
|
55
|
+
/** Az elhagyható szakasz vége (lásd `ELIDE_START`). */
|
|
56
|
+
static ELIDE_END = '<!-- fam:elide-end -->';
|
|
25
57
|
/** A `globalRule:true` legacy hard-rule effektív fontossága, ha nincs explicit `importance`. */
|
|
26
58
|
static LEGACY_GLOBAL_IMPORTANCE = 90;
|
|
27
59
|
/** Importance-default explicit érték nélkül (közepes — a globalRule-legacy fölött, nem-jelölt alatt). */
|
|
@@ -102,6 +134,41 @@ class FAM_RuleInjection_Util {
|
|
|
102
134
|
* addig vesz fel, amíg a következő szabály content-je (a `separator`-ral) belefér. Ha a legelső sem fér, akkor is
|
|
103
135
|
* felveszi (legalább a legfontosabb core menjen). A footer csak akkor van, ha tényleg maradt ki.
|
|
104
136
|
*/
|
|
137
|
+
/**
|
|
138
|
+
* Egy szabály **injektálandó** szövege: a `CORE_END_MARKER` előtti normatív mag + egy LÁTHATÓ pointer-sor,
|
|
139
|
+
* ha volt mit elhagyni. Jelölő nélkül a teljes szöveg (back-compat). Üres mag esetén szintén a teljes
|
|
140
|
+
* szöveg — a jelölő elgépelése SOHA nem némíthat el egy szabályt.
|
|
141
|
+
*/
|
|
142
|
+
static coreOf(rule) {
|
|
143
|
+
const text = (rule.content ?? '').trim();
|
|
144
|
+
const start = FAM_RuleInjection_Util.ELIDE_START;
|
|
145
|
+
const end = FAM_RuleInjection_Util.ELIDE_END;
|
|
146
|
+
if (!text.includes(start)) {
|
|
147
|
+
return text;
|
|
148
|
+
}
|
|
149
|
+
let kept = '';
|
|
150
|
+
let cursor = 0;
|
|
151
|
+
for (;;) {
|
|
152
|
+
const from = text.indexOf(start, cursor);
|
|
153
|
+
if (from < 0) {
|
|
154
|
+
kept += text.slice(cursor);
|
|
155
|
+
break;
|
|
156
|
+
}
|
|
157
|
+
kept += text.slice(cursor, from);
|
|
158
|
+
const to = text.indexOf(end, from);
|
|
159
|
+
if (to < 0) {
|
|
160
|
+
break; // lezáratlan szakasz → a fájl végéig tart
|
|
161
|
+
}
|
|
162
|
+
cursor = to + end.length;
|
|
163
|
+
}
|
|
164
|
+
const core = kept.replace(/\n{3,}/g, '\n\n').trim();
|
|
165
|
+
if (!core) {
|
|
166
|
+
return text;
|
|
167
|
+
}
|
|
168
|
+
const id = rule.ruleId ?? rule.id ?? '(ismeretlen ruleId)';
|
|
169
|
+
return `${core}\n> ℹ️ *A szabály INDOKLÁSA / példái / migrációs-ellenőrzési része itt NINCS inline-olva — `
|
|
170
|
+
+ `a teljes kanonikus szöveg: \`${id}\` (\`read\` a \`rules\` táron).*`;
|
|
171
|
+
}
|
|
105
172
|
static assemble(input) {
|
|
106
173
|
const budget = input.budgetChars && input.budgetChars > 0 ? input.budgetChars : FAM_RuleInjection_Util.DEFAULT_BUDGET_CHARS;
|
|
107
174
|
const sep = input.separator ?? '\n\n';
|
|
@@ -113,7 +180,7 @@ class FAM_RuleInjection_Util {
|
|
|
113
180
|
let used = 0;
|
|
114
181
|
let included = 0;
|
|
115
182
|
for (const rule of ranked) {
|
|
116
|
-
const text = (rule
|
|
183
|
+
const text = FAM_RuleInjection_Util.coreOf(rule);
|
|
117
184
|
const addLen = text.length + (parts.length ? sep.length : 0);
|
|
118
185
|
if (used + addLen > budget && included > 0) {
|
|
119
186
|
break; // budget-stop (de a legelső MINDIG befér — included>0 guard)
|
package/client-dist/index.html
CHANGED
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
<link rel="icon" type="image/x-icon" href="favicon.ico">
|
|
9
9
|
<style>@font-face{font-family:'Roboto';font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3GUBGEe.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}@font-face{font-family:'Roboto';font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3iUBGEe.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}@font-face{font-family:'Roboto';font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3CUBGEe.woff2) format('woff2');unicode-range:U+1F00-1FFF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3-UBGEe.woff2) format('woff2');unicode-range:U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMawCUBGEe.woff2) format('woff2');unicode-range:U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMaxKUBGEe.woff2) format('woff2');unicode-range:U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3OUBGEe.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'Roboto';font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3KUBGEe.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3GUBGEe.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3iUBGEe.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3CUBGEe.woff2) format('woff2');unicode-range:U+1F00-1FFF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3-UBGEe.woff2) format('woff2');unicode-range:U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMawCUBGEe.woff2) format('woff2');unicode-range:U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMaxKUBGEe.woff2) format('woff2');unicode-range:U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3OUBGEe.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3KUBGEe.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}@font-face{font-family:'Roboto';font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3GUBGEe.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}@font-face{font-family:'Roboto';font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3iUBGEe.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}@font-face{font-family:'Roboto';font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3CUBGEe.woff2) format('woff2');unicode-range:U+1F00-1FFF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3-UBGEe.woff2) format('woff2');unicode-range:U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMawCUBGEe.woff2) format('woff2');unicode-range:U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMaxKUBGEe.woff2) format('woff2');unicode-range:U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3OUBGEe.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'Roboto';font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3KUBGEe.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}</style>
|
|
10
10
|
<style>@font-face{font-family:'Material Icons';font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/materialicons/v145/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2) format('woff2');}.material-icons{font-family:'Material Icons';font-weight:normal;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:'liga';-webkit-font-smoothing:antialiased;}</style>
|
|
11
|
-
<style>@font-face{font-family:'Material Symbols Outlined';font-style:normal;font-weight:700;src:url(https://fonts.gstatic.com/s/materialsymbolsoutlined/
|
|
12
|
-
<style>@font-face{font-family:'Material Symbols Rounded';font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/materialsymbolsrounded/
|
|
11
|
+
<style>@font-face{font-family:'Material Symbols Outlined';font-style:normal;font-weight:700;src:url(https://fonts.gstatic.com/s/materialsymbolsoutlined/v368/kJF4BvYX7BgnkSrUwT8OhrdQw4oELdPIeeII9v6oDMzBwG-RpA6RzaxHMPdY40KH8nGzv3fzfVJU22ZZLsYEpzC_1hCs5Y0.woff2) format('woff2');}.material-symbols-outlined{font-family:'Material Symbols Outlined';font-weight:normal;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:'liga';-webkit-font-smoothing:antialiased;}</style>
|
|
12
|
+
<style>@font-face{font-family:'Material Symbols Rounded';font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/materialsymbolsrounded/v369/syl7-zNym6YjUruM-QrEh7-nyTnjDwKNJ_190FjpZIvLgyidOK7BDB_Qb9vUdV6_gjDK-P3JuF_Zs-obHph2-jOcZTKPqw.woff2) format('woff2');}.material-symbols-rounded{font-family:'Material Symbols Rounded';font-weight:normal;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:'liga';-webkit-font-smoothing:antialiased;}</style>
|
|
13
13
|
<style>*,:before,:after{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / .5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}html,body{height:100%;background-color:#0f0f0f}body{margin:0;font-family:Roboto,Helvetica Neue,sans-serif;color:#c8c8c8}</style><link rel="stylesheet" href="styles-3J7JD5YE.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles-3J7JD5YE.css"></noscript></head>
|
|
14
14
|
<body class="mat-typography">
|
|
15
15
|
<a-root-root></a-root-root>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@futdevpro/fdp-agent-memory",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.158",
|
|
4
4
|
"description": "Local-first, vector-backed multi-table agent memory exposed as an MCP server (read/write/capabilities). Public, FDP-Templates-free, no auth.",
|
|
5
5
|
"private": false,
|
|
6
6
|
"publishConfig": {
|