@bamdra/bamdra-openclaw-memory 0.3.19 → 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 +195 -43
- package/dist/index.js.map +1 -1
- package/dist/package.json +3 -3
- package/package.json +3 -3
- package/scripts/postinstall.cjs +66 -4
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");
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AA4GA,4BAEC;AAED,4BAEC;AAlHD,kGAGyD;AACzD,qCAAqF;AACrF,6CAA4C;AAS5C,qCAAkC;AAClC,yCAAwD;AAExD,MAAM,SAAS,GAAG,wBAAwB,CAAC;AAC3C,MAAM,iBAAiB,GAAG,2CAA2C,CAAC;AACtE,MAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;AACnF,MAAM,qBAAqB,GAAG,MAAM,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;AAC7F,MAAM,qBAAqB,GAAG,MAAM,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;AAC1F,MAAM,QAAQ,GAAG,wBAAwB,CAAC;AAC1C,MAAM,gBAAgB,GAAG,gCAAgC,CAAC;AAC1D,MAAM,0BAA0B,GAAG,0BAA0B,CAAC;AAC9D,MAAM,wBAAwB,GAAG,wBAAwB,CAAC;AAC1D,MAAM,eAAe,GAAG,+BAA+B,CAAC;AACxD,MAAM,mBAAmB,GAAG;IAC1B,2BAA2B;IAC3B,4BAA4B;IAC5B,yBAAyB;IACzB,6BAA6B;IAC7B,sBAAsB;IACtB,iCAAiC;IACjC,oCAAoC;IACpC,qCAAqC;IACrC,8BAA8B;IAC9B,6BAA6B;IAC7B,8BAA8B;IAC9B,oCAAoC;IACpC,6BAA6B;IAC7B,6BAA6B;CACrB,CAAC;AACX,MAAM,mBAAmB,GAAG;IAC1B,oBAAoB;IACpB,qBAAqB;IACrB,kBAAkB;IAClB,sBAAsB;IACtB,eAAe;IACf,0BAA0B;IAC1B,6BAA6B;IAC7B,8BAA8B;IAC9B,uBAAuB;IACvB,sBAAsB;IACtB,uBAAuB;IACvB,6BAA6B;IAC7B,sBAAsB;IACtB,sBAAsB;CACd,CAAC;AACX,MAAM,mBAAmB,GAAG,CAAC,kBAAkB,CAAU,CAAC;AAC1D,MAAM,mBAAmB,GAAG,CAAC,sBAAsB,CAAU,CAAC;AAC9D,MAAM,yBAAyB,GAAG,CAAC,GAAG,mBAAmB,EAAE,GAAG,mBAAmB,CAAU,CAAC;AAC5F,MAAM,sBAAsB,GAAG,CAAC,aAAa,EAAE,gBAAgB,CAAU,CAAC;AAC1E,MAAM,cAAc,GAAG,IAAA,2BAAa,EAAC,UAAU,CAAC,CAAC;AAEjD,SAAS,qBAAqB,CAAC,KAAa,EAAE,UAAmC,EAAE;IACjF,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,0BAA0B,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,IAAI,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AAqCD,SAAgB,QAAQ,CAAC,GAAqB;IAC5C,uBAAuB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;AAC3C,CAAC;AAEM,KAAK,UAAU,QAAQ,CAAC,GAAqB;IAClD,uBAAuB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,uBAAuB,CAAC,GAAqB,EAAE,KAA8B;IACpF,qBAAqB,CAAC,GAAG,KAAK,SAAS,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IAE5D,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,EAAE,CAAC;QAChC,GAAG,CAAC,qBAAqB,CAAC,GAAG,IAAI,CAAC;QAClC,cAAc,CAAC,GAAG,EAAE;YAClB,IAAI,CAAC;gBACH,qBAAqB,EAAE,CAAC;YAC1B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,qBAAqB,CAAC,uBAAuB,EAAE;oBAC7C,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBAChE,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAA,gEAAiC,EAAC,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IAC1G,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC5B,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAE1B,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,OAAO,GAAG,CAAC,YAAY,KAAK,UAAU,EAAE,CAAC;QACzE,oBAAoB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAClC,GAAG,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAAC;QACjC,qBAAqB,CAAC,aAAa,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,GAAG,CAAC,qBAAqB,CAAC,EAAE,CAAC;QAC/B,OAAO;IACT,CAAC;IAED,GAAG,CAAC,qBAAqB,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QACpD,MAAM,UAAU,GAAG,kBAAkB,CAAC,IAAA,gEAAiC,EAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;QACtF,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAChC,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;QACzB,qBAAqB,CAAC,sBAAsB,EAAE;YAC5C,EAAE,EAAE,SAAS;YACb,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI;SACrC,CAAC,CAAC;QACH,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,qBAAqB,CAAC,GAAG,IAAI,CAAC;AACpC,CAAC;AAED,SAAS,kBAAkB,CACzB,MAAmC;IAEnC,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC;IACxB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAmC;IAC7D,UAAsC,CAAC,iBAAiB,CAAC,GAAG,MAAM,CAAC;IACpE,OAAO,CAAC,GAAG,CAAC,8BAA8B,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;AACxE,CAAC;AAuCD,SAAS,oBAAoB,CAAC,GAAqB,EAAE,MAAmC;IACtF,MAAM,WAAW,GAAG;QAClB,qBAAqB,CAAuB;YAC1C,IAAI,EAAE,2BAA2B;YACjC,WAAW,EAAE,iCAAiC;YAC9C,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,oBAAoB,EAAE,KAAK;gBAC3B,QAAQ,EAAE,CAAC,WAAW,CAAC;gBACvB,UAAU,EAAE;oBACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;iBAC9B;aACF;YACD,KAAK,CAAC,OAAO,CAAC,MAAM;gBAClB,OAAO,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC7C,CAAC;SACF,CAAC;QACF,qBAAqB,CAAwB;YAC3C,IAAI,EAAE,4BAA4B;YAClC,WAAW,EAAE,uCAAuC;YACpD,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,oBAAoB,EAAE,KAAK;gBAC3B,QAAQ,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC;gBAClC,UAAU,EAAE;oBACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBAC7B,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;iBAC5B;aACF;YACD,KAAK,CAAC,OAAO,CAAC,MAAM;gBAClB,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;YAC9D,CAAC;SACF,CAAC;QACF,qBAAqB,CAAqB;YACxC,IAAI,EAAE,yBAAyB;YAC/B,WAAW,EAAE,gEAAgE;YAC7E,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,oBAAoB,EAAE,KAAK;gBAC3B,QAAQ,EAAE,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC;gBACvC,UAAU,EAAE;oBACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBAC7B,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACvB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBAC5B,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBAC/B,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBAChC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;oBACrC,IAAI,EAAE;wBACJ,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;qBAC1B;iBACF;aACF;YACD,KAAK,CAAC,OAAO,CAAC,MAAM;gBAClB,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACjC,CAAC;SACF,CAAC;QACF,qBAAqB,CAAyB;YAC5C,IAAI,EAAE,6BAA6B;YACnC,WAAW,EAAE,6DAA6D;YAC1E,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,oBAAoB,EAAE,KAAK;gBAC3B,QAAQ,EAAE,CAAC,WAAW,CAAC;gBACvB,UAAU,EAAE;oBACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBAC7B,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;iBACtC;aACF;YACD,KAAK,CAAC,OAAO,CAAC,MAAM;gBAClB,OAAO,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACrC,CAAC;SACF,CAAC;QACF,qBAAqB,CAAmB;YACtC,IAAI,EAAE,sBAAsB;YAC5B,WAAW,EAAE,wGAAwG;YACrH,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,oBAAoB,EAAE,KAAK;gBAC3B,QAAQ,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC;gBAChC,UAAU,EAAE;oBACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBAC7B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;oBACrC,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;iBACpD;aACF;YACD,KAAK,CAAC,OAAO,CAAC,MAAM;gBAClB,OAAO,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACrC,CAAC;SACF,CAAC;KACH,CAAC;IAEF,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;QAChC,KAAK,MAAM,UAAU,IAAI,KAAK,EAAE,CAAC;YAC/B,GAAG,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,CAAC;YAC/B,qBAAqB,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAU,UAKvC;IAMC,OAAO,CAAC;YACN,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,WAAW,EAAE,UAAU,CAAC,WAAW;YACnC,UAAU,EAAE,UAAU,CAAC,UAAU;YACjC,KAAK,CAAC,OAAO,CAAC,YAAoB,EAAE,MAAe;gBACjD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAChD,qBAAqB,CAAC,cAAc,EAAE;oBACpC,IAAI,EAAE,UAAU,CAAC,IAAI;oBACrB,YAAY;oBACZ,SAAS,EACP,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,WAAW,IAAK,MAAkC;wBACxF,CAAC,CAAE,MAAkC,CAAC,SAAS;wBAC/C,CAAC,CAAC,IAAI;iBACX,CAAC,CAAC;gBACH,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;YAC9B,CAAC;SACF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,YAAY,CACnB,KAAc;IAEd,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;aACzE;SACF;KACF,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB;IAC5B,MAAM,YAAY,GAAG,IAAA,mBAAO,EAAC,IAAA,iBAAO,GAAE,EAAE,WAAW,CAAC,CAAC;IACrD,MAAM,aAAa,GAAG,IAAA,gBAAI,EAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,IAAA,gBAAI,EAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAChD,MAAM,iBAAiB,GAAG,IAAA,mBAAO,EAAC,IAAA,mBAAO,EAAC,SAAS,CAAC,CAAC,CAAC;IACtD,MAAM,UAAU,GAAG,IAAA,gBAAI,EAAC,YAAY,EAAE,eAAe,CAAC,CAAC;IACvD,MAAM,eAAe,GAAG,IAAA,gBAAI,EAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACrD,MAAM,gBAAgB,GAAG;QACvB,EAAE,SAAS,EAAE,IAAA,gBAAI,EAAC,IAAA,mBAAO,EAAC,IAAA,mBAAO,EAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,IAAA,gBAAI,EAAC,eAAe,EAAE,QAAQ,CAAC,EAAE;QAChH,EAAE,SAAS,EAAE,IAAA,gBAAI,EAAC,IAAA,mBAAO,EAAC,IAAA,mBAAO,EAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,EAAE,gBAAgB,CAAC,EAAE,SAAS,EAAE,IAAA,gBAAI,EAAC,eAAe,EAAE,gBAAgB,CAAC,EAAE;KACjI,CAAC;IACF,MAAM,cAAc,GAAG,IAAA,gBAAI,EAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;IACvD,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,sCAAsC,KAAK,GAAG,CAAC;IAElF,IAAI,CAAC,cAAc,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QACpE,qBAAqB,CAAC,wBAAwB,EAAE;YAC9C,MAAM,EAAE,uBAAuB;YAC/B,iBAAiB;SAClB,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,IAAI,CAAC,IAAA,oBAAU,EAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,qBAAqB,CAAC,wBAAwB,EAAE,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAC,CAAC;QACvF,OAAO;IACT,CAAC;IAED,IAAA,mBAAS,EAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,IAAA,mBAAS,EAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,IAAA,mBAAS,EAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE3C,mCAAmC,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;IACtE,KAAK,MAAM,KAAK,IAAI,gBAAgB,EAAE,CAAC;QACrC,uBAAuB,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC5D,CAAC;IACD,kCAAkC,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;IAEvE,MAAM,QAAQ,GAAG,IAAA,sBAAY,EAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAA4B,CAAC;IAC/D,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAEzD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,qBAAqB,CAAC,qBAAqB,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;QAC7D,OAAO;IACT,CAAC;IAED,IAAA,uBAAa,EAAC,UAAU,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC1E,qBAAqB,CAAC,wBAAwB,EAAE;QAC9C,UAAU;QACV,cAAc;QACd,QAAQ,EAAE,SAAS;KACpB,CAAC,CAAC;AACL,CAAC;AAED,SAAS,mCAAmC,CAAC,iBAAyB,EAAE,aAAqB;IAC3F,KAAK,MAAM,QAAQ,IAAI,yBAAyB,EAAE,CAAC;QACjD,MAAM,SAAS,GAAG,IAAA,gBAAI,EAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QAChD,IAAI,IAAA,oBAAU,EAAC,SAAS,CAAC,EAAE,CAAC;YAC1B,SAAS;QACX,CAAC;QAED,MAAM,SAAS,GAAG,8BAA8B,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;QAC9E,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,qBAAqB,CAAC,gCAAgC,EAAE;gBACtD,QAAQ;gBACR,MAAM,EAAE,kBAAkB;aAC3B,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,IAAA,mBAAS,EAAC,IAAA,mBAAO,EAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,IAAA,gBAAM,EAAC,SAAS,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,qBAAqB,CAAC,0BAA0B,EAAE;YAChD,QAAQ;YACR,SAAS;YACT,SAAS;SACV,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,SAAS,kCAAkC,CAAC,iBAAyB,EAAE,eAAuB;IAC5F,KAAK,MAAM,QAAQ,IAAI,yBAAyB,EAAE,CAAC;QACjD,MAAM,SAAS,GAAG,8BAA8B,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;QAC9E,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,SAAS;QACX,CAAC;QACD,MAAM,WAAW,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,eAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAO,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACtF,MAAM,UAAU,GAAG,IAAA,gBAAI,EAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAA,oBAAU,EAAC,UAAU,CAAC,EAAE,CAAC;YAC5B,SAAS;QACX,CAAC;QACD,KAAK,MAAM,OAAO,IAAI,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnD,MAAM,cAAc,GAAG,IAAA,gBAAI,EAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACjD,MAAM,cAAc,GAAG,IAAA,gBAAI,EAAC,eAAe,EAAE,OAAO,CAAC,CAAC;YACtD,uBAAuB,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,8BAA8B,CAAC,iBAAyB,EAAE,QAAgB;IACjF,MAAM,qBAAqB,GAA2B;QACpD,kBAAkB,EAAE,0BAA0B;QAC9C,sBAAsB,EAAE,8BAA8B;KACvD,CAAC;IAEF,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,MAAM,WAAW,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAEpD,IAAI,WAAW,EAAE,CAAC;QAChB,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACtD,cAAc,CAAC,IAAI,CAAC,IAAA,mBAAO,EAAC,IAAA,mBAAO,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACjD,cAAc,CAAC,IAAI,CAAC,IAAA,mBAAO,EAAC,SAAS,CAAC,CAAC,CAAC;QAC1C,CAAC;QAAC,MAAM,CAAC;YACP,4EAA4E;QAC9E,CAAC;IACH,CAAC;IAED,cAAc,CAAC,IAAI,CAAC,IAAA,gBAAI,EAAC,iBAAiB,EAAE,iBAAiB,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC1E,cAAc,CAAC,IAAI,CAAC,IAAA,mBAAO,EAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE5E,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,IAAA,oBAAU,EAAC,IAAA,gBAAI,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,gBAAI,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3E,IACE,IAAA,oBAAU,EAAC,IAAA,gBAAI,EAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YACrC,IAAA,oBAAU,EAAC,IAAA,gBAAI,EAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC;YACjD,IAAA,oBAAU,EAAC,IAAA,gBAAI,EAAC,OAAO,EAAE,cAAc,CAAC,CAAC,EACzC,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,uBAAuB,CAAC,SAAiB,EAAE,SAAiB;IACnE,IAAI,CAAC,IAAA,oBAAU,EAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,qBAAqB,CAAC,oBAAoB,EAAE;YAC1C,MAAM,EAAE,uBAAuB;YAC/B,SAAS;SACV,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,IAAI,IAAA,oBAAU,EAAC,SAAS,CAAC,EAAE,CAAC;QAC1B,qBAAqB,CAAC,oBAAoB,EAAE;YAC1C,MAAM,EAAE,eAAe;YACvB,SAAS;SACV,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,IAAA,mBAAS,EAAC,IAAA,mBAAO,EAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,IAAA,gBAAM,EAAC,SAAS,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,qBAAqB,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,gBAAgB,CACvB,MAA+B,EAC/B,cAAsB;IAEtB,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAChD,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7C,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACrD,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;IACpE,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IACrG,MAAM,YAAY,GAAG,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACzD,MAAM,WAAW,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAExD,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAC7B,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QACvB,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IACD,OAAO,GAAG,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,IAAI,OAAO,CAAC;IACtE,KAAK,MAAM,YAAY,IAAI,mBAAmB,EAAE,CAAC;QAC/C,OAAO,GAAG,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,IAAI,OAAO,CAAC;QACzE,MAAM,eAAe,GAAG,YAAY,KAAK,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QACtH,IAAI,eAAe,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YACrC,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC;YAC/B,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;IACH,CAAC;IACD,KAAK,MAAM,UAAU,IAAI,mBAAmB,EAAE,CAAC;QAC7C,OAAO,GAAG,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,IAAI,OAAO,CAAC;IACzE,CAAC;IACD,KAAK,MAAM,aAAa,IAAI,sBAAsB,EAAE,CAAC;QACnD,OAAO,GAAG,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,IAAI,OAAO,CAAC;IAC3E,CAAC;IACD,OAAO,GAAG,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAA,gBAAI,EAAC,IAAA,iBAAO,GAAE,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,IAAI,OAAO,CAAC;IACpG,OAAO,GAAG,mBAAmB,CAAC,UAAU,EAAE,WAAW,EAAE,IAAA,gBAAI,EAAC,IAAA,iBAAO,GAAE,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,IAAI,OAAO,CAAC;IAE1G,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC/B,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;QACzB,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IACD,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QACtC,KAAK,CAAC,aAAa,GAAG,SAAS,CAAC;QAChC,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IACD,IAAI,WAAW,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QACjC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC;QAC3B,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IAED,IAAI,YAAY,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAClC,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;QAC5B,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IACD,IAAI,WAAW,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACtC,WAAW,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAChC,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IACD,IAAI,OAAO,WAAW,CAAC,IAAI,KAAK,QAAQ,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1E,WAAW,CAAC,IAAI,GAAG,gCAAgC,CAAC;QACpD,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IACD,IAAI,WAAW,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACtC,WAAW,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAChC,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IACD,IAAI,OAAO,WAAW,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;QAChD,WAAW,CAAC,WAAW,GAAG,GAAG,CAAC;QAC9B,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IACD,IAAI,OAAO,aAAa,CAAC,MAAM,KAAK,QAAQ,IAAI,aAAa,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;QAC7E,aAAa,CAAC,MAAM,GAAG;YACrB,OAAO,EAAE,IAAI;YACb,cAAc,EAAE,mCAAmC;YACnD,UAAU,EAAE,2CAA2C;YACvD,mBAAmB,EAAE,oDAAoD;YACzE,UAAU,EAAE,OAAO;YACnB,WAAW,EAAE,CAAC,MAAM,CAAC;SACtB,CAAC;QACF,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IACD,MAAM,cAAc,GAAG,YAAY,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IAC7D,IAAI,cAAc,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QACpC,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC;QAC9B,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IACD,IAAI,OAAO,cAAc,CAAC,cAAc,KAAK,QAAQ,IAAI,cAAc,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpG,cAAc,CAAC,cAAc,GAAG,mCAAmC,CAAC;QACpE,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IACD,IAAI,OAAO,cAAc,CAAC,UAAU,KAAK,QAAQ,IAAI,cAAc,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5F,cAAc,CAAC,UAAU,GAAG,2CAA2C,CAAC;QACxE,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IACD,IAAI,OAAO,cAAc,CAAC,mBAAmB,KAAK,QAAQ,IAAI,cAAc,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9G,cAAc,CAAC,mBAAmB,GAAG,oDAAoD,CAAC;QAC1F,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IACD,IAAI,OAAO,cAAc,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QAClD,cAAc,CAAC,UAAU,GAAG,OAAO,CAAC;QACpC,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,cAAc,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1F,cAAc,CAAC,WAAW,GAAG,CAAC,MAAM,CAAC,CAAC;QACtC,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IACD,IAAI,WAAW,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QACjC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC;QAC3B,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IACD,IAAI,OAAO,WAAW,CAAC,MAAM,KAAK,QAAQ,IAAI,WAAW,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;QACzE,WAAW,CAAC,MAAM,GAAG;YACnB,OAAO,EAAE,IAAI;YACb,YAAY,EAAE,oCAAoC;YAClD,mBAAmB,EAAE,4CAA4C;YACjE,kBAAkB,EAAE,2CAA2C;YAC/D,SAAS,EAAE,sCAAsC;YACjD,UAAU,EAAE,EAAE;YACd,IAAI,EAAE,CAAC;SACR,CAAC;QACF,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;SAAM,CAAC;QACN,MAAM,YAAY,GAAG,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACzD,IAAI,YAAY,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAClC,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;YAC5B,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;QACD,IAAI,OAAO,YAAY,CAAC,YAAY,KAAK,QAAQ,IAAI,YAAY,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5F,YAAY,CAAC,YAAY,GAAG,oCAAoC,CAAC;YACjE,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;QACD,IAAI,OAAO,YAAY,CAAC,mBAAmB,KAAK,QAAQ,IAAI,YAAY,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1G,YAAY,CAAC,mBAAmB,GAAG,4CAA4C,CAAC;YAChF,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;QACD,IAAI,OAAO,YAAY,CAAC,kBAAkB,KAAK,QAAQ,IAAI,YAAY,CAAC,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxG,YAAY,CAAC,kBAAkB,GAAG,2CAA2C,CAAC;YAC9E,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;QACD,IAAI,OAAO,YAAY,CAAC,SAAS,KAAK,QAAQ,IAAI,YAAY,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtF,YAAY,CAAC,SAAS,GAAG,sCAAsC,CAAC;YAChE,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;QACD,IAAI,OAAO,YAAY,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;YAChD,YAAY,CAAC,UAAU,GAAG,EAAE,CAAC;YAC7B,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;QACD,IAAI,OAAO,YAAY,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC1C,YAAY,CAAC,IAAI,GAAG,CAAC,CAAC;YACtB,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;IACH,CAAC;IAED,KAAK,MAAM,gBAAgB,IAAI,kBAAkB,EAAE,CAAC;QAClD,IAAI,gBAAgB,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YACvC,gBAAgB,CAAC,OAAO,GAAG,KAAK,CAAC;YACjC,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;IACH,CAAC;IAED,IAAI,SAAS,IAAI,QAAQ,EAAE,CAAC;QAC1B,qCAAqC;IACvC,CAAC;IAED,OAAO,GAAG,mBAAmB,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC;IAChD,OAAO,GAAG,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,OAAO,CAAC;IACzD,OAAO,GAAG,iBAAiB,CAAC,MAAM,EAAE,0BAA0B,CAAC,IAAI,OAAO,CAAC;IAC3E,OAAO,GAAG,iBAAiB,CAAC,MAAM,EAAE,eAAe,CAAC,IAAI,OAAO,CAAC;IAChE,OAAO,GAAG,iBAAiB,CAAC,MAAM,EAAE,wBAAwB,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,OAAO,CAAC;IAEnF,IAAI,CAAC,IAAA,oBAAU,EAAC,cAAc,CAAC,EAAE,CAAC;QAChC,qBAAqB,CAAC,8BAA8B,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,mBAAmB,CAAC,KAA8B;IACzD,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAI,KAAK,CAAC,KAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/E,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC,QAA8C,CAAC,CAAC,CAAC;IAChI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;QACzE,KAAK,CAAC,KAAK,GAAG,aAAa,CAAC;QAC5B,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IACD,KAAK,MAAM,QAAQ,IAAI,mBAAmB,EAAE,CAAC;QAC3C,OAAO,GAAG,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,IAAI,OAAO,CAAC;IACrE,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,iBAAiB,CAAC,MAA+B,EAAE,OAAe;IACzE,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3D,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtC,SAAS;QACX,CAAC;QACD,MAAM,KAAK,GAAG,IAA+B,CAAC;QAC9C,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;YAC/C,CAAC,CAAC,CAAC,GAAI,KAAK,CAAC,MAAmB,CAAC;YACjC,CAAC,CAAC,EAAE,CAAC;QACP,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YACjC,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC;YAC7B,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACrC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC5B,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC;YAC7B,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,iBAAiB,CACxB,MAA+B,EAC/B,OAAe,EACf,aAAuB;IAEvB,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3D,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtC,SAAS;QACX,CAAC;QACD,MAAM,KAAK,GAAG,IAA+B,CAAC;QAC9C,MAAM,OAAO,GAAG,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7G,IAAI,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACjD,SAAS;QACX,CAAC;QACD,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;YAC/C,CAAC,CAAC,CAAC,GAAI,KAAK,CAAC,MAAmB,CAAC;YACjC,CAAC,CAAC,EAAE,CAAC;QACP,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YACjC,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC;YAC7B,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACrC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC5B,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC;YAC7B,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAgB;IAC1C,IAAI,QAAQ,KAAK,kBAAkB,EAAE,CAAC;QACpC,OAAO,CAAC,0BAA0B,EAAE,wBAAwB,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,QAAQ,KAAK,sBAAsB,EAAE,CAAC;QACxC,OAAO,CAAC,eAAe,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,YAAY,CACnB,MAA+B,EAC/B,GAAW;IAEX,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC5B,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACtE,OAAO,OAAkC,CAAC;IAC5C,CAAC;IACD,MAAM,IAAI,GAA4B,EAAE,CAAC;IACzC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IACnB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,mBAAmB,CAC1B,MAA+B,EAC/B,GAAW,EACX,KAAa;IAEb,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAI,MAAM,CAAC,GAAG,CAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACjF,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAChC,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;QACxB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpB,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;IACtB,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
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/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) {
|
|
@@ -236,6 +266,7 @@ function ensureHostConfig(config) {
|
|
|
236
266
|
const skillsLoad = ensureObject(skills, "load");
|
|
237
267
|
const agents = ensureObject(config, "agents");
|
|
238
268
|
const entries = ensureObject(plugins, "entries");
|
|
269
|
+
const installs = ensureObject(plugins, "installs");
|
|
239
270
|
const load = ensureObject(plugins, "load");
|
|
240
271
|
const slots = ensureObject(plugins, "slots");
|
|
241
272
|
const pluginEntry = ensureObject(entries, PLUGIN_ID);
|
|
@@ -381,6 +412,27 @@ function ensureHostConfig(config) {
|
|
|
381
412
|
return changed;
|
|
382
413
|
}
|
|
383
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
|
+
|
|
384
436
|
function main() {
|
|
385
437
|
const openclawHome = resolve(homedir(), ".openclaw");
|
|
386
438
|
const extensionRoot = join(openclawHome, "extensions");
|
|
@@ -401,7 +453,7 @@ function main() {
|
|
|
401
453
|
mkdirSync(extensionRoot, { recursive: true });
|
|
402
454
|
mkdirSync(memoryRoot, { recursive: true });
|
|
403
455
|
|
|
404
|
-
materializeBundledDependencyPlugins(extensionRoot);
|
|
456
|
+
const bundledDependencies = materializeBundledDependencyPlugins(extensionRoot);
|
|
405
457
|
for (const skill of bundledSkills) {
|
|
406
458
|
materializeBundledSkill(skill.sourceDir, skill.targetDir);
|
|
407
459
|
}
|
|
@@ -410,8 +462,18 @@ function main() {
|
|
|
410
462
|
const original = readFileSync(configPath, "utf8");
|
|
411
463
|
const config = JSON.parse(original);
|
|
412
464
|
const changed = ensureHostConfig(config);
|
|
413
|
-
|
|
414
|
-
|
|
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) {
|
|
415
477
|
log("bootstrap-noop", { configPath });
|
|
416
478
|
return;
|
|
417
479
|
}
|