MCPcopy Create free account
hub / github.com/MemTensor/MemOS / getSkillEmbeddings

Method getSkillEmbeddings

packages/memos-core/src/storage/sqlite.ts:1826–1848  ·  view source on GitHub ↗
(scope: "self" | "public" | "mix", currentOwner: string)

Source from the content-addressed store, hash-verified

1824 }
1825
1826 getSkillEmbeddings(scope: "self" | "public" | "mix", currentOwner: string): Array<{ skillId: string; vector: number[] }> {
1827 let sql = `SELECT se.skill_id, se.vector, se.dimensions
1828 FROM skill_embeddings se
1829 JOIN skills s ON s.id = se.skill_id
1830 WHERE s.status = 'active'`;
1831 const params: any[] = [];
1832
1833 if (scope === "self") {
1834 sql += ` AND s.owner = ?`;
1835 params.push(currentOwner);
1836 } else if (scope === "public") {
1837 sql += ` AND s.visibility = 'public'`;
1838 } else {
1839 sql += ` AND (s.owner = ? OR s.visibility = 'public')`;
1840 params.push(currentOwner);
1841 }
1842
1843 const rows = this.db.prepare(sql).all(...params) as Array<{ skill_id: string; vector: Buffer; dimensions: number }>;
1844 return rows.map((r) => ({
1845 skillId: r.skill_id,
1846 vector: Array.from(new Float32Array(r.vector.buffer, r.vector.byteOffset, r.dimensions)),
1847 }));
1848 }
1849
1850 skillFtsSearch(query: string, limit: number, scope: "self" | "public" | "mix", currentOwner: string): Array<{ skillId: string; score: number }> {
1851 const sanitized = sanitizeFtsQuery(query);

Callers 2

searchSkillsMethod · 0.45
findRelatedSkillMethod · 0.45

Calls 3

allMethod · 0.80
prepareMethod · 0.80
mapMethod · 0.80

Tested by

no test coverage detected