@bamdra/bamdra-openclaw-memory 0.3.18 → 0.3.20
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/dist/index.d.ts.map +1 -1
- package/dist/index.js +225 -47
- package/dist/index.js.map +1 -1
- package/dist/openclaw.plugin.json +1 -1
- package/dist/package.json +3 -3
- package/openclaw.plugin.json +1 -1
- package/package.json +3 -3
- package/scripts/postinstall.cjs +89 -8
- package/skills/bamdra-memory-operator/SKILL.md +8 -0
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,iDAAiD,CAAC;AAGzD,OAAO,KAAK,EAKV,cAAc,EAEf,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,iDAAiD,CAAC;AAGzD,OAAO,KAAK,EAKV,cAAc,EAEf,MAAM,gCAAgC,CAAC;AAQxC,QAAA,MAAM,oBAAoB,eAAwD,CAAC;AACnF,QAAA,MAAM,qBAAqB,eAAiE,CAAC;AAC7F,QAAA,MAAM,qBAAqB,eAA8D,CAAC;AAgE1F,KAAK,gBAAgB,GAAG;IACtB,YAAY,CAAC,EAAE,CACb,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,EACzB,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,EACvD,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,KAC9D,IAAI,CAAC;IACV,EAAE,CAAC,EAAE,CACH,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,EACzE,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,KACzB,IAAI,CAAC;IACV,YAAY,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACvC,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;KAAE,CAAC;IAC9C,OAAO,CAAC,EAAE;QACR,gBAAgB,CAAC,IAAI,2BAA2B,GAAG,IAAI,GAAG,SAAS,CAAC;QACpE,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,CAAC;IACF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qBAAqB,EAAE,CACrB,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,2BAA2B,GAAG,OAAO,CAAC,2BAA2B,CAAC,KACpG,IAAI,CAAC;IACV,YAAY,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE;QACjC,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACpC,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC;YAAE,OAAO,EAAE;gBAAE,IAAI,EAAE,MAAM,CAAC;gBAAC,IAAI,EAAE,MAAM,CAAA;aAAE,EAAE,CAAA;SAAE,CAAC,CAAC;KACxG,GAAG,IAAI,CAAC;IACT,CAAC,oBAAoB,CAAC,CAAC,EAAE,OAAO,CAAC;IACjC,CAAC,qBAAqB,CAAC,CAAC,EAAE,OAAO,CAAC;IAClC,CAAC,qBAAqB,CAAC,CAAC,EAAE,OAAO,CAAC;CACnC,CAAC;AAEF,wBAAgB,QAAQ,CAAC,GAAG,EAAE,gBAAgB,GAAG,IAAI,CAEpD;AAED,wBAAsB,QAAQ,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAEnE"}
|
package/dist/index.js
CHANGED
|
@@ -125,7 +125,7 @@ function trimToLength(value, maxChars) {
|
|
|
125
125
|
return `${normalized.slice(0, maxChars - 3).trimEnd()}...`;
|
|
126
126
|
}
|
|
127
127
|
function normalizeWhitespace(value) {
|
|
128
|
-
return value.replace(/\s+/g, " ").trim();
|
|
128
|
+
return typeof value === "string" ? value.replace(/\s+/g, " ").trim() : "";
|
|
129
129
|
}
|
|
130
130
|
|
|
131
131
|
// ../../packages/fact-extractor/src/index.ts
|
|
@@ -603,6 +603,10 @@ var MemorySqliteStore = class {
|
|
|
603
603
|
async upsertFact(record, tags = []) {
|
|
604
604
|
this.db.exec("BEGIN");
|
|
605
605
|
try {
|
|
606
|
+
const existing = this.db.prepare(`SELECT id FROM ${TABLES.facts} WHERE scope = ? AND key = ?`).get(record.scope, record.key);
|
|
607
|
+
const factId = existing?.id ?? record.id;
|
|
608
|
+
const sourceMessageId = rowExists(this.db, TABLES.messages, record.sourceMessageId) ? record.sourceMessageId : null;
|
|
609
|
+
const sourceTopicId = rowExists(this.db, TABLES.topics, record.sourceTopicId) ? record.sourceTopicId : null;
|
|
606
610
|
this.db.prepare(
|
|
607
611
|
`INSERT INTO ${TABLES.facts} (
|
|
608
612
|
id,
|
|
@@ -617,10 +621,8 @@ var MemorySqliteStore = class {
|
|
|
617
621
|
source_topic_id,
|
|
618
622
|
updated_at
|
|
619
623
|
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
620
|
-
ON CONFLICT(
|
|
621
|
-
scope = excluded.scope,
|
|
624
|
+
ON CONFLICT(scope, key) DO UPDATE SET
|
|
622
625
|
category = excluded.category,
|
|
623
|
-
key = excluded.key,
|
|
624
626
|
value = excluded.value,
|
|
625
627
|
sensitivity = excluded.sensitivity,
|
|
626
628
|
recall_policy = excluded.recall_policy,
|
|
@@ -629,7 +631,7 @@ var MemorySqliteStore = class {
|
|
|
629
631
|
source_topic_id = excluded.source_topic_id,
|
|
630
632
|
updated_at = excluded.updated_at`
|
|
631
633
|
).run(
|
|
632
|
-
|
|
634
|
+
factId,
|
|
633
635
|
record.scope,
|
|
634
636
|
record.category,
|
|
635
637
|
record.key,
|
|
@@ -637,16 +639,16 @@ var MemorySqliteStore = class {
|
|
|
637
639
|
record.sensitivity,
|
|
638
640
|
record.recallPolicy,
|
|
639
641
|
record.confidence,
|
|
640
|
-
|
|
641
|
-
|
|
642
|
+
sourceMessageId,
|
|
643
|
+
sourceTopicId,
|
|
642
644
|
record.updatedAt
|
|
643
645
|
);
|
|
644
|
-
this.db.prepare(`DELETE FROM ${TABLES.factTags} WHERE fact_id = ?`).run(
|
|
646
|
+
this.db.prepare(`DELETE FROM ${TABLES.factTags} WHERE fact_id = ?`).run(factId);
|
|
645
647
|
const insertTag = this.db.prepare(
|
|
646
648
|
`INSERT INTO ${TABLES.factTags} (fact_id, tag) VALUES (?, ?)`
|
|
647
649
|
);
|
|
648
650
|
for (const tag of tags) {
|
|
649
|
-
insertTag.run(
|
|
651
|
+
insertTag.run(factId, tag);
|
|
650
652
|
}
|
|
651
653
|
this.db.exec("COMMIT");
|
|
652
654
|
} catch (error) {
|
|
@@ -1039,6 +1041,13 @@ function ensureColumn(db, tableName, columnName, columnSql) {
|
|
|
1039
1041
|
}
|
|
1040
1042
|
db.exec(`ALTER TABLE ${tableName} ADD COLUMN ${columnName} ${columnSql}`);
|
|
1041
1043
|
}
|
|
1044
|
+
function rowExists(db, tableName, id) {
|
|
1045
|
+
if (!id) {
|
|
1046
|
+
return false;
|
|
1047
|
+
}
|
|
1048
|
+
const row = db.prepare(`SELECT 1 FROM ${tableName} WHERE id = ?`).get(id);
|
|
1049
|
+
return row != null;
|
|
1050
|
+
}
|
|
1042
1051
|
|
|
1043
1052
|
// ../../packages/summary-refresher/src/index.ts
|
|
1044
1053
|
var SummaryRefresher = class {
|
|
@@ -1310,6 +1319,7 @@ function createContextEngineMemoryV2Plugin(inputConfig, api) {
|
|
|
1310
1319
|
const summaryRefresher = new SummaryRefresher(config);
|
|
1311
1320
|
let migrationsApplied = false;
|
|
1312
1321
|
let migrationsPromise = null;
|
|
1322
|
+
const recentIngressFingerprints = /* @__PURE__ */ new Map();
|
|
1313
1323
|
async function ensureMigrations() {
|
|
1314
1324
|
if (migrationsApplied) return;
|
|
1315
1325
|
if (migrationsPromise) return migrationsPromise;
|
|
@@ -1339,14 +1349,22 @@ function createContextEngineMemoryV2Plugin(inputConfig, api) {
|
|
|
1339
1349
|
const sessionId = getSessionIdFromHookContext(event);
|
|
1340
1350
|
await backfillResolvedIdentity(store, sessionId);
|
|
1341
1351
|
const text = getTextFromHookContext(event);
|
|
1352
|
+
const normalizedInbound = normalizeInboundTrackedMessage(sessionId, text);
|
|
1342
1353
|
logMemoryEvent("hook-ingest-received", {
|
|
1343
1354
|
hasSessionId: Boolean(sessionId),
|
|
1344
|
-
textPreview:
|
|
1355
|
+
textPreview: normalizedInbound?.text?.slice(0, 80) ?? null
|
|
1345
1356
|
});
|
|
1346
|
-
if (!sessionId || !text) {
|
|
1357
|
+
if (!sessionId || !normalizedInbound?.text) {
|
|
1358
|
+
return;
|
|
1359
|
+
}
|
|
1360
|
+
if (shouldSkipDuplicateIngress(recentIngressFingerprints, normalizedInbound.fingerprint)) {
|
|
1361
|
+
logMemoryEvent("hook-ingest-deduplicated", {
|
|
1362
|
+
sessionId,
|
|
1363
|
+
fingerprint: normalizedInbound.fingerprint
|
|
1364
|
+
});
|
|
1347
1365
|
return;
|
|
1348
1366
|
}
|
|
1349
|
-
const result = await plugin.routeAndTrack(sessionId, text);
|
|
1367
|
+
const result = await plugin.routeAndTrack(sessionId, normalizedInbound.text);
|
|
1350
1368
|
logMemoryEvent("hook-ingest-tracked", {
|
|
1351
1369
|
sessionId,
|
|
1352
1370
|
action: result.decision.action,
|
|
@@ -1363,11 +1381,10 @@ function createContextEngineMemoryV2Plugin(inputConfig, api) {
|
|
|
1363
1381
|
} else {
|
|
1364
1382
|
logMemoryEvent("register-hooks-skipped", { reason: "registerHook unavailable" });
|
|
1365
1383
|
}
|
|
1366
|
-
|
|
1384
|
+
const enablePromptInjection = config.enabledPromptInjection === true;
|
|
1385
|
+
if (registerTypedHook && enablePromptInjection) {
|
|
1367
1386
|
registerTypedHook("before_prompt_build", async (event, hookContext) => {
|
|
1368
|
-
await ensureResolvedIdentity(hookContext);
|
|
1369
1387
|
const sessionId = getSessionIdFromHookContext(hookContext);
|
|
1370
|
-
await backfillResolvedIdentity(store, sessionId);
|
|
1371
1388
|
const text = getTextFromHookContext(event);
|
|
1372
1389
|
const hasMultimodalPayload = containsNonTextualPayload(event) || containsNonTextualPayload(hookContext);
|
|
1373
1390
|
logMemoryEvent("hook-assemble-received", {
|
|
@@ -1378,16 +1395,6 @@ function createContextEngineMemoryV2Plugin(inputConfig, api) {
|
|
|
1378
1395
|
if (!sessionId) {
|
|
1379
1396
|
return;
|
|
1380
1397
|
}
|
|
1381
|
-
if (text) {
|
|
1382
|
-
const result = await plugin.routeAndTrack(sessionId, text);
|
|
1383
|
-
logMemoryEvent("hook-before-prompt-tracked", {
|
|
1384
|
-
sessionId,
|
|
1385
|
-
action: result.decision.action,
|
|
1386
|
-
reason: result.decision.reason,
|
|
1387
|
-
topicId: result.topicId,
|
|
1388
|
-
messageId: result.messageId
|
|
1389
|
-
});
|
|
1390
|
-
}
|
|
1391
1398
|
const assembled = await plugin.assembleContext(sessionId);
|
|
1392
1399
|
const knowledgeRecall = text && shouldPreferLocalKnowledgeFirst(text) ? await plugin.searchMemory({
|
|
1393
1400
|
sessionId,
|
|
@@ -1410,6 +1417,8 @@ function createContextEngineMemoryV2Plugin(inputConfig, api) {
|
|
|
1410
1417
|
hasMultimodalPayload ? config.contextAssembly?.maxCharsWhenMultimodal ?? 1200 : config.contextAssembly?.maxChars ?? 4e3
|
|
1411
1418
|
);
|
|
1412
1419
|
});
|
|
1420
|
+
} else if (registerTypedHook) {
|
|
1421
|
+
logMemoryEvent("register-typed-hooks-skipped", { reason: "prompt injection disabled" });
|
|
1413
1422
|
} else {
|
|
1414
1423
|
logMemoryEvent("register-typed-hooks-skipped", { reason: "typed hook registrar unavailable" });
|
|
1415
1424
|
}
|
|
@@ -1418,7 +1427,7 @@ function createContextEngineMemoryV2Plugin(inputConfig, api) {
|
|
|
1418
1427
|
}
|
|
1419
1428
|
logMemoryEvent("register-hooks-complete", {
|
|
1420
1429
|
internalHooks: registerHook ? ["message:received", "message:preprocessed"] : [],
|
|
1421
|
-
typedHooks: registerTypedHook ? ["before_prompt_build"] : []
|
|
1430
|
+
typedHooks: registerTypedHook && enablePromptInjection ? ["before_prompt_build"] : []
|
|
1422
1431
|
});
|
|
1423
1432
|
hooksRegistered = true;
|
|
1424
1433
|
},
|
|
@@ -1629,7 +1638,8 @@ function createContextEngineMemoryV2Plugin(inputConfig, api) {
|
|
|
1629
1638
|
if (!sessionId) {
|
|
1630
1639
|
throw new Error("context engine assemble requires a sessionId");
|
|
1631
1640
|
}
|
|
1632
|
-
|
|
1641
|
+
const assembled = await plugin.assembleContext(sessionId);
|
|
1642
|
+
return buildLegacyAssembleResult(assembled);
|
|
1633
1643
|
},
|
|
1634
1644
|
async ingest(params) {
|
|
1635
1645
|
const sessionId = typeof params?.sessionId === "string" ? params.sessionId : null;
|
|
@@ -1971,6 +1981,7 @@ async function refreshTopicSummary(store, summaryRefresher, config, topicId, now
|
|
|
1971
1981
|
function normalizeMemoryConfig(inputConfig) {
|
|
1972
1982
|
return {
|
|
1973
1983
|
enabled: inputConfig?.enabled ?? true,
|
|
1984
|
+
enabledPromptInjection: inputConfig?.enabledPromptInjection ?? false,
|
|
1974
1985
|
store: {
|
|
1975
1986
|
provider: "sqlite",
|
|
1976
1987
|
path: inputConfig?.store?.path || process.env.OPENCLAW_BAMDRA_MEMORY_DB_PATH || process.env.OPENCLAW_MEMORY_DB_PATH || DEFAULT_DB_PATH
|
|
@@ -1990,13 +2001,13 @@ function normalizeMemoryConfig(inputConfig) {
|
|
|
1990
2001
|
recentTurns: inputConfig?.contextAssembly?.recentTurns ?? 6,
|
|
1991
2002
|
includeTopicShortSummary: inputConfig?.contextAssembly?.includeTopicShortSummary ?? true,
|
|
1992
2003
|
includeOpenLoops: inputConfig?.contextAssembly?.includeOpenLoops ?? true,
|
|
1993
|
-
alwaysFactLimit: inputConfig?.contextAssembly?.alwaysFactLimit ??
|
|
1994
|
-
topicFactLimit: inputConfig?.contextAssembly?.topicFactLimit ??
|
|
1995
|
-
maxChars: inputConfig?.contextAssembly?.maxChars ??
|
|
1996
|
-
maxCharsWhenMultimodal: inputConfig?.contextAssembly?.maxCharsWhenMultimodal ??
|
|
1997
|
-
recentMessageMaxChars: inputConfig?.contextAssembly?.recentMessageMaxChars ??
|
|
1998
|
-
maxFactValueChars: inputConfig?.contextAssembly?.maxFactValueChars ??
|
|
1999
|
-
recallMaxChars: inputConfig?.contextAssembly?.recallMaxChars ??
|
|
2004
|
+
alwaysFactLimit: inputConfig?.contextAssembly?.alwaysFactLimit ?? 8,
|
|
2005
|
+
topicFactLimit: inputConfig?.contextAssembly?.topicFactLimit ?? 10,
|
|
2006
|
+
maxChars: inputConfig?.contextAssembly?.maxChars ?? 2500,
|
|
2007
|
+
maxCharsWhenMultimodal: inputConfig?.contextAssembly?.maxCharsWhenMultimodal ?? 900,
|
|
2008
|
+
recentMessageMaxChars: inputConfig?.contextAssembly?.recentMessageMaxChars ?? 800,
|
|
2009
|
+
maxFactValueChars: inputConfig?.contextAssembly?.maxFactValueChars ?? 180,
|
|
2010
|
+
recallMaxChars: inputConfig?.contextAssembly?.recallMaxChars ?? 500
|
|
2000
2011
|
}
|
|
2001
2012
|
};
|
|
2002
2013
|
}
|
|
@@ -2069,6 +2080,51 @@ function extractTextFromInput(input) {
|
|
|
2069
2080
|
const lastUserMessage = [...candidate.messages ?? []].reverse().find((message) => (message.role ?? "user") === "user");
|
|
2070
2081
|
return normalizeHookText(lastUserMessage?.text ?? lastUserMessage?.content);
|
|
2071
2082
|
}
|
|
2083
|
+
function shouldSkipIngestText(text) {
|
|
2084
|
+
const normalized = text.trim();
|
|
2085
|
+
if (!normalized) {
|
|
2086
|
+
return true;
|
|
2087
|
+
}
|
|
2088
|
+
return /^\[message_id:\s*[^\]]+\]\s*/i.test(normalized);
|
|
2089
|
+
}
|
|
2090
|
+
function normalizeInboundTrackedMessage(sessionId, text) {
|
|
2091
|
+
if (!sessionId || !text) {
|
|
2092
|
+
return null;
|
|
2093
|
+
}
|
|
2094
|
+
const normalized = normalizeInboundUserText(text);
|
|
2095
|
+
if (!normalized || shouldSkipIngestText(normalized)) {
|
|
2096
|
+
return null;
|
|
2097
|
+
}
|
|
2098
|
+
const fingerprint = extractInboundMessageId(text) ?? (0, import_node_crypto.createHash)("sha1").update(`${sessionId}:${normalized}`).digest("hex");
|
|
2099
|
+
return {
|
|
2100
|
+
text: normalized,
|
|
2101
|
+
fingerprint: `${sessionId}:${fingerprint}`
|
|
2102
|
+
};
|
|
2103
|
+
}
|
|
2104
|
+
function normalizeInboundUserText(text) {
|
|
2105
|
+
const trimmed = text.trim();
|
|
2106
|
+
if (!trimmed) {
|
|
2107
|
+
return null;
|
|
2108
|
+
}
|
|
2109
|
+
const withoutMessageId = trimmed.replace(/^\s*\[message_id:\s*[^\]]+\]\s*/i, "").trim();
|
|
2110
|
+
const withoutSenderPrefix = withoutMessageId.replace(/^[^\n::]{1,120}\s*[::]\s*/u, "").trim();
|
|
2111
|
+
return withoutSenderPrefix || withoutMessageId || null;
|
|
2112
|
+
}
|
|
2113
|
+
function extractInboundMessageId(text) {
|
|
2114
|
+
const match = text.match(/^\s*\[message_id:\s*([^\]]+)\]\s*/i);
|
|
2115
|
+
return match?.[1]?.trim() || null;
|
|
2116
|
+
}
|
|
2117
|
+
function shouldSkipDuplicateIngress(cache, fingerprint) {
|
|
2118
|
+
const now = Date.now();
|
|
2119
|
+
for (const [key, ts] of cache.entries()) {
|
|
2120
|
+
if (now - ts > 15 * 60 * 1e3) {
|
|
2121
|
+
cache.delete(key);
|
|
2122
|
+
}
|
|
2123
|
+
}
|
|
2124
|
+
const previous = cache.get(fingerprint);
|
|
2125
|
+
cache.set(fingerprint, now);
|
|
2126
|
+
return previous != null && now - previous < 1e4;
|
|
2127
|
+
}
|
|
2072
2128
|
function normalizeHookText(value) {
|
|
2073
2129
|
const normalized = extractTextFromStructuredValue(value).trim();
|
|
2074
2130
|
return normalized ? normalized : null;
|
|
@@ -2082,6 +2138,13 @@ function buildBeforePromptBuildResult(assembled, maxChars) {
|
|
|
2082
2138
|
prependSystemContext: text
|
|
2083
2139
|
};
|
|
2084
2140
|
}
|
|
2141
|
+
function buildLegacyAssembleResult(assembled) {
|
|
2142
|
+
return {
|
|
2143
|
+
...assembled,
|
|
2144
|
+
messages: [],
|
|
2145
|
+
prependSystemContext: assembled.text.trim() || void 0
|
|
2146
|
+
};
|
|
2147
|
+
}
|
|
2085
2148
|
function shouldPreferLocalKnowledgeFirst(text) {
|
|
2086
2149
|
const normalized = text.toLowerCase();
|
|
2087
2150
|
const signals = [
|
|
@@ -2184,7 +2247,7 @@ function trimToLength2(value, maxChars) {
|
|
|
2184
2247
|
if (maxChars <= 0) {
|
|
2185
2248
|
return "";
|
|
2186
2249
|
}
|
|
2187
|
-
const normalized = value.replace(/\s+/g, " ").trim();
|
|
2250
|
+
const normalized = typeof value === "string" ? value.replace(/\s+/g, " ").trim() : "";
|
|
2188
2251
|
if (normalized.length <= maxChars) {
|
|
2189
2252
|
return normalized;
|
|
2190
2253
|
}
|
|
@@ -2201,6 +2264,8 @@ var import_node_os2 = require("os");
|
|
|
2201
2264
|
var import_node_path3 = require("node:path");
|
|
2202
2265
|
var PLUGIN_ID = "bamdra-openclaw-memory";
|
|
2203
2266
|
var ENGINE_GLOBAL_KEY = "__OPENCLAW_BAMDRA_MEMORY_CONTEXT_ENGINE__";
|
|
2267
|
+
var PLUGIN_SINGLETON_KEY = "__OPENCLAW_BAMDRA_MEMORY_UNIFIED_PLUGIN__";
|
|
2268
|
+
var ENGINE_SETUP_KEY = "__OPENCLAW_BAMDRA_MEMORY_SETUP_COMPLETE__";
|
|
2204
2269
|
var TOOLS_REGISTERED_KEY = /* @__PURE__ */ Symbol.for("bamdra-openclaw-memory.tools-registered");
|
|
2205
2270
|
var ENGINE_REGISTERED_KEY = /* @__PURE__ */ Symbol.for("bamdra-openclaw-memory.context-engine-registered");
|
|
2206
2271
|
var BOOTSTRAP_STARTED_KEY = /* @__PURE__ */ Symbol.for("bamdra-openclaw-memory.host-bootstrap-started");
|
|
@@ -2268,14 +2333,18 @@ function initializeUnifiedPlugin(api, phase) {
|
|
|
2268
2333
|
bootstrapOpenClawHost();
|
|
2269
2334
|
} catch (error) {
|
|
2270
2335
|
logUnifiedMemoryEvent("host-bootstrap-failed", {
|
|
2271
|
-
message: error instanceof Error ? error.message : String(error)
|
|
2336
|
+
message: error instanceof Error ? error.message : String(error),
|
|
2337
|
+
stack: error instanceof Error ? error.stack : null
|
|
2272
2338
|
});
|
|
2273
2339
|
}
|
|
2274
2340
|
});
|
|
2275
2341
|
}
|
|
2276
|
-
const engine =
|
|
2342
|
+
const engine = getOrCreateUnifiedEngine(api);
|
|
2277
2343
|
exposeContextEngine(engine);
|
|
2278
|
-
engine.
|
|
2344
|
+
if (!engine.__unifiedHooksRegistered) {
|
|
2345
|
+
engine.registerHooks(api);
|
|
2346
|
+
engine.__unifiedHooksRegistered = true;
|
|
2347
|
+
}
|
|
2279
2348
|
if (!api[TOOLS_REGISTERED_KEY] && typeof api.registerTool === "function") {
|
|
2280
2349
|
registerUnifiedTools(api, engine);
|
|
2281
2350
|
api[TOOLS_REGISTERED_KEY] = true;
|
|
@@ -2285,10 +2354,14 @@ function initializeUnifiedPlugin(api, phase) {
|
|
|
2285
2354
|
return;
|
|
2286
2355
|
}
|
|
2287
2356
|
api.registerContextEngine(PLUGIN_ID, async (config) => {
|
|
2288
|
-
const configured =
|
|
2357
|
+
const configured = getOrCreateUnifiedEngine({
|
|
2358
|
+
...api,
|
|
2359
|
+
pluginConfig: config,
|
|
2360
|
+
config,
|
|
2361
|
+
plugin: { config }
|
|
2362
|
+
});
|
|
2289
2363
|
exposeContextEngine(configured);
|
|
2290
|
-
configured
|
|
2291
|
-
await configured.setup();
|
|
2364
|
+
await ensureEngineSetup(configured);
|
|
2292
2365
|
logUnifiedMemoryEvent("context-engine-ready", {
|
|
2293
2366
|
id: PLUGIN_ID,
|
|
2294
2367
|
dbPath: configured.config.store.path
|
|
@@ -2297,10 +2370,35 @@ function initializeUnifiedPlugin(api, phase) {
|
|
|
2297
2370
|
});
|
|
2298
2371
|
api[ENGINE_REGISTERED_KEY] = true;
|
|
2299
2372
|
}
|
|
2373
|
+
function getOrCreateUnifiedEngine(api) {
|
|
2374
|
+
const globalState = globalThis;
|
|
2375
|
+
const existing = globalState[PLUGIN_SINGLETON_KEY];
|
|
2376
|
+
if (isContextEngine(existing)) {
|
|
2377
|
+
return existing;
|
|
2378
|
+
}
|
|
2379
|
+
const created = brandContextEngine(createContextEngineMemoryV2Plugin(api.pluginConfig ?? api.config, api));
|
|
2380
|
+
globalState[PLUGIN_SINGLETON_KEY] = created;
|
|
2381
|
+
return created;
|
|
2382
|
+
}
|
|
2383
|
+
async function ensureEngineSetup(engine) {
|
|
2384
|
+
const globalState = globalThis;
|
|
2385
|
+
if (globalState[ENGINE_SETUP_KEY] === true) {
|
|
2386
|
+
return;
|
|
2387
|
+
}
|
|
2388
|
+
await engine.setup();
|
|
2389
|
+
globalState[ENGINE_SETUP_KEY] = true;
|
|
2390
|
+
}
|
|
2300
2391
|
function brandContextEngine(engine) {
|
|
2301
2392
|
engine.name = PLUGIN_ID;
|
|
2302
2393
|
return engine;
|
|
2303
2394
|
}
|
|
2395
|
+
function isContextEngine(value) {
|
|
2396
|
+
if (!value || typeof value !== "object") {
|
|
2397
|
+
return false;
|
|
2398
|
+
}
|
|
2399
|
+
const candidate = value;
|
|
2400
|
+
return candidate.name === PLUGIN_ID && typeof candidate.registerHooks === "function" && typeof candidate.setup === "function";
|
|
2401
|
+
}
|
|
2304
2402
|
function exposeContextEngine(engine) {
|
|
2305
2403
|
globalThis[ENGINE_GLOBAL_KEY] = engine;
|
|
2306
2404
|
process.env.OPENCLAW_BAMDRA_MEMORY_DB_PATH = engine.config.store.path;
|
|
@@ -2459,14 +2557,23 @@ function bootstrapOpenClawHost() {
|
|
|
2459
2557
|
(0, import_node_fs2.mkdirSync)(openclawHome, { recursive: true });
|
|
2460
2558
|
(0, import_node_fs2.mkdirSync)(extensionRoot, { recursive: true });
|
|
2461
2559
|
(0, import_node_fs2.mkdirSync)(memoryRoot, { recursive: true });
|
|
2462
|
-
materializeBundledDependencyPlugins(pluginRuntimeRoot, extensionRoot);
|
|
2560
|
+
const bundledDependencies = materializeBundledDependencyPlugins(pluginRuntimeRoot, extensionRoot);
|
|
2463
2561
|
for (const skill of bundledSkillDirs) {
|
|
2464
2562
|
materializeBundledSkill(skill.sourceDir, skill.targetDir);
|
|
2465
2563
|
}
|
|
2466
2564
|
materializeBundledDependencySkills(pluginRuntimeRoot, globalSkillsDir);
|
|
2467
2565
|
const original = (0, import_node_fs2.readFileSync)(configPath, "utf8");
|
|
2468
2566
|
const config = JSON.parse(original);
|
|
2469
|
-
|
|
2567
|
+
let changed = ensureHostConfig(config, targetSkillDir);
|
|
2568
|
+
const installs = ensureObject(ensureObject(config, "plugins"), "installs");
|
|
2569
|
+
for (const plugin of bundledDependencies) {
|
|
2570
|
+
const sourceDir = plugin.sourceDir ?? resolveBundledDependencySource(pluginRuntimeRoot, plugin.pluginId);
|
|
2571
|
+
changed = ensureInstallMetadata(
|
|
2572
|
+
installs,
|
|
2573
|
+
plugin.pluginId,
|
|
2574
|
+
sourceDir ? readPluginInstallMetadata(plugin.pluginId, sourceDir, plugin.targetDir) : null
|
|
2575
|
+
) || changed;
|
|
2576
|
+
}
|
|
2470
2577
|
if (!changed) {
|
|
2471
2578
|
logUnifiedMemoryEvent("host-bootstrap-noop", { configPath });
|
|
2472
2579
|
return;
|
|
@@ -2480,9 +2587,11 @@ function bootstrapOpenClawHost() {
|
|
|
2480
2587
|
});
|
|
2481
2588
|
}
|
|
2482
2589
|
function materializeBundledDependencyPlugins(pluginRuntimeRoot, extensionRoot) {
|
|
2590
|
+
const copied = [];
|
|
2483
2591
|
for (const pluginId of AUTO_PROVISION_PLUGIN_IDS) {
|
|
2484
2592
|
const targetDir = (0, import_node_path3.join)(extensionRoot, pluginId);
|
|
2485
2593
|
if ((0, import_node_fs2.existsSync)(targetDir)) {
|
|
2594
|
+
copied.push({ pluginId, targetDir, sourceDir: null });
|
|
2486
2595
|
continue;
|
|
2487
2596
|
}
|
|
2488
2597
|
const sourceDir = resolveBundledDependencySource(pluginRuntimeRoot, pluginId);
|
|
@@ -2500,7 +2609,9 @@ function materializeBundledDependencyPlugins(pluginRuntimeRoot, extensionRoot) {
|
|
|
2500
2609
|
sourceDir,
|
|
2501
2610
|
targetDir
|
|
2502
2611
|
});
|
|
2612
|
+
copied.push({ pluginId, targetDir, sourceDir });
|
|
2503
2613
|
}
|
|
2614
|
+
return copied;
|
|
2504
2615
|
}
|
|
2505
2616
|
function materializeBundledDependencySkills(pluginRuntimeRoot, globalSkillsDir) {
|
|
2506
2617
|
for (const pluginId of AUTO_PROVISION_PLUGIN_IDS) {
|
|
@@ -2564,6 +2675,47 @@ function materializeBundledSkill(sourceDir, targetDir) {
|
|
|
2564
2675
|
(0, import_node_fs2.cpSync)(sourceDir, targetDir, { recursive: true });
|
|
2565
2676
|
logUnifiedMemoryEvent("skill-copied", { sourceDir, targetDir });
|
|
2566
2677
|
}
|
|
2678
|
+
function readPluginInstallMetadata(pluginId, sourceDir, installPath) {
|
|
2679
|
+
try {
|
|
2680
|
+
const packageRoot = sourceDir.endsWith(`${import_node_path3.sep}dist`) ? (0, import_node_path3.dirname)(sourceDir) : sourceDir;
|
|
2681
|
+
const pkg = JSON.parse((0, import_node_fs2.readFileSync)((0, import_node_path3.join)(packageRoot, "package.json"), "utf8"));
|
|
2682
|
+
const packageName = typeof pkg.name === "string" ? pkg.name : pluginId;
|
|
2683
|
+
const version = typeof pkg.version === "string" ? pkg.version : "0.0.0";
|
|
2684
|
+
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
2685
|
+
return {
|
|
2686
|
+
source: "npm",
|
|
2687
|
+
spec: packageName,
|
|
2688
|
+
installPath,
|
|
2689
|
+
version,
|
|
2690
|
+
resolvedName: packageName,
|
|
2691
|
+
resolvedVersion: version,
|
|
2692
|
+
resolvedSpec: `${packageName}@${version}`,
|
|
2693
|
+
resolvedAt: now,
|
|
2694
|
+
installedAt: now
|
|
2695
|
+
};
|
|
2696
|
+
} catch {
|
|
2697
|
+
return null;
|
|
2698
|
+
}
|
|
2699
|
+
}
|
|
2700
|
+
function ensureInstallMetadata(installs, pluginId, metadata) {
|
|
2701
|
+
if (!metadata) {
|
|
2702
|
+
return false;
|
|
2703
|
+
}
|
|
2704
|
+
const current = installs[pluginId];
|
|
2705
|
+
if (current && typeof current === "object" && !Array.isArray(current)) {
|
|
2706
|
+
const install = current;
|
|
2707
|
+
let changed = false;
|
|
2708
|
+
for (const [key, value] of Object.entries(metadata)) {
|
|
2709
|
+
if (typeof install[key] !== "string" || install[key] === "") {
|
|
2710
|
+
install[key] = value;
|
|
2711
|
+
changed = true;
|
|
2712
|
+
}
|
|
2713
|
+
}
|
|
2714
|
+
return changed;
|
|
2715
|
+
}
|
|
2716
|
+
installs[pluginId] = metadata;
|
|
2717
|
+
return true;
|
|
2718
|
+
}
|
|
2567
2719
|
function ensureHostConfig(config, targetSkillDir) {
|
|
2568
2720
|
let changed = false;
|
|
2569
2721
|
const plugins = ensureObject(config, "plugins");
|
|
@@ -2749,9 +2901,8 @@ function ensureToolAllowlist(tools) {
|
|
|
2749
2901
|
return changed;
|
|
2750
2902
|
}
|
|
2751
2903
|
function ensureAgentSkills(agents, skillId) {
|
|
2752
|
-
const list = Array.isArray(agents.list) ? agents.list : [];
|
|
2753
2904
|
let changed = false;
|
|
2754
|
-
for (const item of
|
|
2905
|
+
for (const item of iterAgentConfigs(agents)) {
|
|
2755
2906
|
if (!item || typeof item !== "object") {
|
|
2756
2907
|
continue;
|
|
2757
2908
|
}
|
|
@@ -2770,9 +2921,8 @@ function ensureAgentSkills(agents, skillId) {
|
|
|
2770
2921
|
return changed;
|
|
2771
2922
|
}
|
|
2772
2923
|
function ensureAdminSkills(agents, skillId, adminAgentIds) {
|
|
2773
|
-
const list = Array.isArray(agents.list) ? agents.list : [];
|
|
2774
2924
|
let changed = false;
|
|
2775
|
-
for (const item of
|
|
2925
|
+
for (const item of iterAgentConfigs(agents)) {
|
|
2776
2926
|
if (!item || typeof item !== "object") {
|
|
2777
2927
|
continue;
|
|
2778
2928
|
}
|
|
@@ -2794,6 +2944,34 @@ function ensureAdminSkills(agents, skillId, adminAgentIds) {
|
|
|
2794
2944
|
}
|
|
2795
2945
|
return changed;
|
|
2796
2946
|
}
|
|
2947
|
+
function* iterAgentConfigs(agents) {
|
|
2948
|
+
const seen = /* @__PURE__ */ new Set();
|
|
2949
|
+
const list = Array.isArray(agents.list) ? agents.list : [];
|
|
2950
|
+
for (const item of list) {
|
|
2951
|
+
if (item && typeof item === "object") {
|
|
2952
|
+
const agent = item;
|
|
2953
|
+
seen.add(agent);
|
|
2954
|
+
yield agent;
|
|
2955
|
+
}
|
|
2956
|
+
}
|
|
2957
|
+
if (list.length > 0) {
|
|
2958
|
+
return;
|
|
2959
|
+
}
|
|
2960
|
+
for (const [key, value] of Object.entries(agents)) {
|
|
2961
|
+
if (key === "list" || key === "defaults" || !value || typeof value !== "object" || Array.isArray(value)) {
|
|
2962
|
+
continue;
|
|
2963
|
+
}
|
|
2964
|
+
const agent = value;
|
|
2965
|
+
if (seen.has(agent)) {
|
|
2966
|
+
continue;
|
|
2967
|
+
}
|
|
2968
|
+
if (typeof agent.id !== "string" && typeof agent.name !== "string") {
|
|
2969
|
+
agent.id = key;
|
|
2970
|
+
}
|
|
2971
|
+
seen.add(agent);
|
|
2972
|
+
yield agent;
|
|
2973
|
+
}
|
|
2974
|
+
}
|
|
2797
2975
|
function dependencySkillIds(pluginId) {
|
|
2798
2976
|
if (pluginId === "bamdra-user-bind") {
|
|
2799
2977
|
return [USER_BIND_PROFILE_SKILL_ID, USER_BIND_ADMIN_SKILL_ID];
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bamdra/bamdra-openclaw-memory",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.20",
|
|
4
4
|
"description": "Unified topic-aware memory plugin for OpenClaw with durable SQLite recall and bounded context growth.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://www.bamdra.com",
|
|
@@ -61,8 +61,8 @@
|
|
|
61
61
|
}
|
|
62
62
|
},
|
|
63
63
|
"dependencies": {
|
|
64
|
-
"@bamdra/bamdra-user-bind": "^0.1.
|
|
65
|
-
"@bamdra/bamdra-memory-vector": "^0.1.
|
|
64
|
+
"@bamdra/bamdra-user-bind": "^0.1.14",
|
|
65
|
+
"@bamdra/bamdra-memory-vector": "^0.1.13"
|
|
66
66
|
},
|
|
67
67
|
"devDependencies": {
|
|
68
68
|
"@types/node": "^24.5.2"
|
package/openclaw.plugin.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bamdra/bamdra-openclaw-memory",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.20",
|
|
4
4
|
"description": "Unified topic-aware memory plugin for OpenClaw with durable SQLite recall and bounded context growth.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://www.bamdra.com",
|
|
@@ -61,8 +61,8 @@
|
|
|
61
61
|
}
|
|
62
62
|
},
|
|
63
63
|
"dependencies": {
|
|
64
|
-
"@bamdra/bamdra-user-bind": "^0.1.
|
|
65
|
-
"@bamdra/bamdra-memory-vector": "^0.1.
|
|
64
|
+
"@bamdra/bamdra-user-bind": "^0.1.14",
|
|
65
|
+
"@bamdra/bamdra-memory-vector": "^0.1.13"
|
|
66
66
|
},
|
|
67
67
|
"devDependencies": {
|
|
68
68
|
"@types/node": "^24.5.2"
|
package/scripts/postinstall.cjs
CHANGED
|
@@ -48,6 +48,7 @@ const OPTIONAL_PLUGIN_IDS = ["bamdra-memory-vector"];
|
|
|
48
48
|
const AUTO_PROVISION_PLUGIN_IDS = [...REQUIRED_PLUGIN_IDS, ...OPTIONAL_PLUGIN_IDS];
|
|
49
49
|
const CONFLICTING_PLUGIN_IDS = ["memory-core", "memory-lancedb"];
|
|
50
50
|
const runtimeRequire = createRequire(__filename);
|
|
51
|
+
const ISO_NOW = () => new Date().toISOString();
|
|
51
52
|
|
|
52
53
|
function log(event, details) {
|
|
53
54
|
try {
|
|
@@ -78,6 +79,29 @@ function ensureArrayIncludes(parent, key, value) {
|
|
|
78
79
|
return true;
|
|
79
80
|
}
|
|
80
81
|
|
|
82
|
+
function readInstallMetadata(pluginId, sourceDir, installPath) {
|
|
83
|
+
try {
|
|
84
|
+
const packageJsonPath = join(sourceDir.endsWith(`${sep}dist`) ? dirname(sourceDir) : sourceDir, "package.json");
|
|
85
|
+
const pkg = JSON.parse(readFileSync(packageJsonPath, "utf8"));
|
|
86
|
+
const packageName = typeof pkg.name === "string" ? pkg.name : pluginId;
|
|
87
|
+
const version = typeof pkg.version === "string" ? pkg.version : "0.0.0";
|
|
88
|
+
const now = ISO_NOW();
|
|
89
|
+
return {
|
|
90
|
+
source: "npm",
|
|
91
|
+
spec: packageName,
|
|
92
|
+
installPath,
|
|
93
|
+
version,
|
|
94
|
+
resolvedName: packageName,
|
|
95
|
+
resolvedVersion: version,
|
|
96
|
+
resolvedSpec: `${packageName}@${version}`,
|
|
97
|
+
resolvedAt: now,
|
|
98
|
+
installedAt: now,
|
|
99
|
+
};
|
|
100
|
+
} catch {
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
81
105
|
function dependencySkillIds(pluginId) {
|
|
82
106
|
if (pluginId === "bamdra-user-bind") return [USER_BIND_PROFILE_SKILL_ID, USER_BIND_ADMIN_SKILL_ID];
|
|
83
107
|
if (pluginId === "bamdra-memory-vector") return [VECTOR_SKILL_ID];
|
|
@@ -127,9 +151,13 @@ function resolveBundledDependencySource(pluginId) {
|
|
|
127
151
|
}
|
|
128
152
|
|
|
129
153
|
function materializeBundledDependencyPlugins(extensionRoot) {
|
|
154
|
+
const copied = [];
|
|
130
155
|
for (const pluginId of AUTO_PROVISION_PLUGIN_IDS) {
|
|
131
156
|
const targetDir = join(extensionRoot, pluginId);
|
|
132
|
-
if (existsSync(targetDir))
|
|
157
|
+
if (existsSync(targetDir)) {
|
|
158
|
+
copied.push({ pluginId, targetDir, sourceDir: null });
|
|
159
|
+
continue;
|
|
160
|
+
}
|
|
133
161
|
const sourceDir = resolveBundledDependencySource(pluginId);
|
|
134
162
|
if (!sourceDir) {
|
|
135
163
|
log("dependency-plugin-copy-skipped", { pluginId, reason: "source-not-found" });
|
|
@@ -138,7 +166,9 @@ function materializeBundledDependencyPlugins(extensionRoot) {
|
|
|
138
166
|
mkdirSync(dirname(targetDir), { recursive: true });
|
|
139
167
|
cpSync(sourceDir, targetDir, { recursive: true });
|
|
140
168
|
log("dependency-plugin-copied", { pluginId, sourceDir, targetDir });
|
|
169
|
+
copied.push({ pluginId, targetDir, sourceDir });
|
|
141
170
|
}
|
|
171
|
+
return copied;
|
|
142
172
|
}
|
|
143
173
|
|
|
144
174
|
function materializeBundledDependencySkills(globalSkillsDir) {
|
|
@@ -169,9 +199,8 @@ function ensureToolAllowlist(tools) {
|
|
|
169
199
|
}
|
|
170
200
|
|
|
171
201
|
function ensureAgentSkills(agents, skillId) {
|
|
172
|
-
const list = Array.isArray(agents.list) ? agents.list : [];
|
|
173
202
|
let changed = false;
|
|
174
|
-
for (const item of
|
|
203
|
+
for (const item of iterAgentConfigs(agents)) {
|
|
175
204
|
if (!item || typeof item !== "object") continue;
|
|
176
205
|
const currentSkills = Array.isArray(item.skills) ? [...item.skills] : [];
|
|
177
206
|
if (!Array.isArray(item.skills)) {
|
|
@@ -188,9 +217,8 @@ function ensureAgentSkills(agents, skillId) {
|
|
|
188
217
|
}
|
|
189
218
|
|
|
190
219
|
function ensureAdminSkills(agents, skillId, adminAgentIds) {
|
|
191
|
-
const list = Array.isArray(agents.list) ? agents.list : [];
|
|
192
220
|
let changed = false;
|
|
193
|
-
for (const item of
|
|
221
|
+
for (const item of iterAgentConfigs(agents)) {
|
|
194
222
|
if (!item || typeof item !== "object") continue;
|
|
195
223
|
const agentId = typeof item.id === "string" ? item.id : typeof item.name === "string" ? item.name : null;
|
|
196
224
|
if (!agentId || !adminAgentIds.includes(agentId)) continue;
|
|
@@ -208,6 +236,27 @@ function ensureAdminSkills(agents, skillId, adminAgentIds) {
|
|
|
208
236
|
return changed;
|
|
209
237
|
}
|
|
210
238
|
|
|
239
|
+
function* iterAgentConfigs(agents) {
|
|
240
|
+
const seen = new Set();
|
|
241
|
+
const list = Array.isArray(agents.list) ? agents.list : [];
|
|
242
|
+
for (const item of list) {
|
|
243
|
+
if (item && typeof item === "object") {
|
|
244
|
+
seen.add(item);
|
|
245
|
+
yield item;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
if (list.length > 0) return;
|
|
249
|
+
for (const [key, value] of Object.entries(agents)) {
|
|
250
|
+
if (key === "list" || key === "defaults" || !value || typeof value !== "object" || Array.isArray(value)) continue;
|
|
251
|
+
if (seen.has(value)) continue;
|
|
252
|
+
if (typeof value.id !== "string" && typeof value.name !== "string") {
|
|
253
|
+
value.id = key;
|
|
254
|
+
}
|
|
255
|
+
seen.add(value);
|
|
256
|
+
yield value;
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
|
|
211
260
|
function ensureHostConfig(config) {
|
|
212
261
|
let changed = false;
|
|
213
262
|
|
|
@@ -217,6 +266,7 @@ function ensureHostConfig(config) {
|
|
|
217
266
|
const skillsLoad = ensureObject(skills, "load");
|
|
218
267
|
const agents = ensureObject(config, "agents");
|
|
219
268
|
const entries = ensureObject(plugins, "entries");
|
|
269
|
+
const installs = ensureObject(plugins, "installs");
|
|
220
270
|
const load = ensureObject(plugins, "load");
|
|
221
271
|
const slots = ensureObject(plugins, "slots");
|
|
222
272
|
const pluginEntry = ensureObject(entries, PLUGIN_ID);
|
|
@@ -362,6 +412,27 @@ function ensureHostConfig(config) {
|
|
|
362
412
|
return changed;
|
|
363
413
|
}
|
|
364
414
|
|
|
415
|
+
function ensureInstallMetadata(installs, pluginId, metadata) {
|
|
416
|
+
if (!metadata) return false;
|
|
417
|
+
const current = installs[pluginId];
|
|
418
|
+
if (current && typeof current === "object" && !Array.isArray(current)) {
|
|
419
|
+
let changed = false;
|
|
420
|
+
for (const [key, value] of Object.entries(metadata)) {
|
|
421
|
+
if (current[key] !== value && typeof current[key] !== "string") {
|
|
422
|
+
current[key] = value;
|
|
423
|
+
changed = true;
|
|
424
|
+
}
|
|
425
|
+
if ((key === "resolvedAt" || key === "installedAt") && typeof current[key] !== "string") {
|
|
426
|
+
current[key] = value;
|
|
427
|
+
changed = true;
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
return changed;
|
|
431
|
+
}
|
|
432
|
+
installs[pluginId] = metadata;
|
|
433
|
+
return true;
|
|
434
|
+
}
|
|
435
|
+
|
|
365
436
|
function main() {
|
|
366
437
|
const openclawHome = resolve(homedir(), ".openclaw");
|
|
367
438
|
const extensionRoot = join(openclawHome, "extensions");
|
|
@@ -382,7 +453,7 @@ function main() {
|
|
|
382
453
|
mkdirSync(extensionRoot, { recursive: true });
|
|
383
454
|
mkdirSync(memoryRoot, { recursive: true });
|
|
384
455
|
|
|
385
|
-
materializeBundledDependencyPlugins(extensionRoot);
|
|
456
|
+
const bundledDependencies = materializeBundledDependencyPlugins(extensionRoot);
|
|
386
457
|
for (const skill of bundledSkills) {
|
|
387
458
|
materializeBundledSkill(skill.sourceDir, skill.targetDir);
|
|
388
459
|
}
|
|
@@ -391,8 +462,18 @@ function main() {
|
|
|
391
462
|
const original = readFileSync(configPath, "utf8");
|
|
392
463
|
const config = JSON.parse(original);
|
|
393
464
|
const changed = ensureHostConfig(config);
|
|
394
|
-
|
|
395
|
-
|
|
465
|
+
const installs = ensureObject(ensureObject(config, "plugins"), "installs");
|
|
466
|
+
let installChanged = false;
|
|
467
|
+
for (const plugin of bundledDependencies) {
|
|
468
|
+
const sourceDir = plugin.sourceDir || resolveBundledDependencySource(plugin.pluginId);
|
|
469
|
+
installChanged = ensureInstallMetadata(
|
|
470
|
+
installs,
|
|
471
|
+
plugin.pluginId,
|
|
472
|
+
sourceDir ? readInstallMetadata(plugin.pluginId, sourceDir, plugin.targetDir) : null,
|
|
473
|
+
) || installChanged;
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
if (!changed && !installChanged) {
|
|
396
477
|
log("bootstrap-noop", { configPath });
|
|
397
478
|
return;
|
|
398
479
|
}
|
|
@@ -66,6 +66,12 @@ Do not use it for:
|
|
|
66
66
|
|
|
67
67
|
If the current turn conflicts with the stored profile, follow the current turn and let later updates refresh the profile deliberately.
|
|
68
68
|
|
|
69
|
+
When the current user reveals stable personal traits in natural language, prefer updating `bamdra-user-bind` over storing a memory fact.
|
|
70
|
+
|
|
71
|
+
Judge semantically, not by fixed trigger phrases.
|
|
72
|
+
|
|
73
|
+
If the message is really about the current user's long-lived style, identity, boundary, or way of working, it belongs to `bamdra-user-bind` even if the wording is indirect or casual.
|
|
74
|
+
|
|
69
75
|
## Topic Judgment
|
|
70
76
|
|
|
71
77
|
Treat topic handling as a judgment task, not a keyword trigger.
|
|
@@ -140,6 +146,8 @@ Keep these private by default and prefer `user:` scope or `bamdra-user-bind` pro
|
|
|
140
146
|
- pets, family, role, and personal background
|
|
141
147
|
- the user's current focus, ongoing work, and long-lived personal goals
|
|
142
148
|
|
|
149
|
+
Do not store the current user's own address, timezone, tone preference, or collaboration preference as `shared` memory facts. Those belong in `bamdra-user-bind`.
|
|
150
|
+
|
|
143
151
|
When a fact is about “me”, “my”, or the current user's own stable way of working, do not store it as `shared` unless the user explicitly says it is a shared rule for everyone.
|
|
144
152
|
|
|
145
153
|
## Working Style
|