skilld 0.13.4 → 0.13.6
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/_chunks/{embedding-cache.mjs → embedding-cache2.mjs} +10 -6
- package/dist/_chunks/embedding-cache2.mjs.map +1 -0
- package/dist/cli.mjs +27 -2
- package/dist/cli.mjs.map +1 -1
- package/dist/index.mjs +0 -2
- package/dist/retriv/index.d.mts +5 -2
- package/dist/retriv/index.d.mts.map +1 -1
- package/dist/retriv/index.mjs +11 -11
- package/dist/retriv/index.mjs.map +1 -1
- package/dist/retriv/worker.mjs +4 -3
- package/dist/retriv/worker.mjs.map +1 -1
- package/package.json +1 -1
- package/dist/_chunks/embedding-cache.mjs.map +0 -1
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
import { n as __require } from "./chunk.mjs";
|
|
1
|
+
import { n as __require, t as __exportAll } from "./chunk.mjs";
|
|
2
2
|
import { t as CACHE_DIR } from "./config.mjs";
|
|
3
3
|
import { join } from "pathe";
|
|
4
4
|
import { rmSync } from "node:fs";
|
|
5
|
-
|
|
5
|
+
var embedding_cache_exports = /* @__PURE__ */ __exportAll({
|
|
6
|
+
cachedEmbeddings: () => cachedEmbeddings,
|
|
7
|
+
clearEmbeddingCache: () => clearEmbeddingCache
|
|
8
|
+
});
|
|
6
9
|
const EMBEDDINGS_DB_PATH = join(CACHE_DIR, "embeddings.db");
|
|
7
10
|
function openDb() {
|
|
8
11
|
const { DatabaseSync: DB } = __require("node:sqlite");
|
|
@@ -28,11 +31,12 @@ function createSqliteStorage(db) {
|
|
|
28
31
|
}
|
|
29
32
|
};
|
|
30
33
|
}
|
|
31
|
-
function cachedEmbeddings
|
|
34
|
+
async function cachedEmbeddings(config) {
|
|
35
|
+
const { cachedEmbeddings: retrivCached } = await import("retriv/embeddings/cached");
|
|
32
36
|
const db = openDb();
|
|
33
37
|
const storage = createSqliteStorage(db);
|
|
34
38
|
const originalResolve = config.resolve;
|
|
35
|
-
return
|
|
39
|
+
return retrivCached({ async resolve() {
|
|
36
40
|
const resolved = await originalResolve();
|
|
37
41
|
const getMetaStmt = db.prepare("SELECT value FROM meta WHERE key = ?");
|
|
38
42
|
const setMetaStmt = db.prepare("INSERT OR REPLACE INTO meta (key, value) VALUES (?, ?)");
|
|
@@ -45,6 +49,6 @@ function cachedEmbeddings$1(config) {
|
|
|
45
49
|
function clearEmbeddingCache() {
|
|
46
50
|
rmSync(EMBEDDINGS_DB_PATH, { force: true });
|
|
47
51
|
}
|
|
48
|
-
export { clearEmbeddingCache as n, cachedEmbeddings
|
|
52
|
+
export { clearEmbeddingCache as n, embedding_cache_exports as r, cachedEmbeddings as t };
|
|
49
53
|
|
|
50
|
-
//# sourceMappingURL=embedding-
|
|
54
|
+
//# sourceMappingURL=embedding-cache2.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embedding-cache2.mjs","names":[],"sources":["../../src/retriv/embedding-cache.ts"],"sourcesContent":["import type { DatabaseSync } from 'node:sqlite'\nimport type { Embedding } from 'retriv'\nimport { rmSync } from 'node:fs'\nimport { join } from 'pathe'\nimport { CACHE_DIR } from '../cache/index.ts'\n\ninterface EmbeddingConfig {\n resolve: () => Promise<{ embedder: (texts: string[]) => Promise<Embedding[]>, dimensions: number, maxTokens?: number }>\n}\n\nconst EMBEDDINGS_DB_PATH = join(CACHE_DIR, 'embeddings.db')\n\nfunction openDb(): DatabaseSync {\n // eslint-disable-next-line ts/no-require-imports\n const { DatabaseSync: DB } = require('node:sqlite') as typeof import('node:sqlite')\n const db = new DB(EMBEDDINGS_DB_PATH)\n db.exec('PRAGMA journal_mode=WAL')\n db.exec('PRAGMA busy_timeout=5000')\n db.exec(`CREATE TABLE IF NOT EXISTS embeddings (text_hash TEXT PRIMARY KEY, embedding BLOB NOT NULL)`)\n db.exec(`CREATE TABLE IF NOT EXISTS meta (key TEXT PRIMARY KEY, value TEXT NOT NULL)`)\n return db\n}\n\nfunction createSqliteStorage(db: DatabaseSync) {\n const getStmt = db.prepare('SELECT embedding FROM embeddings WHERE text_hash = ?')\n const setStmt = db.prepare('INSERT OR IGNORE INTO embeddings (text_hash, embedding) VALUES (?, ?)')\n\n return {\n get: (hash: string): Embedding | null => {\n const row = getStmt.get(hash) as { embedding: Buffer } | undefined\n if (!row)\n return null\n return new Float32Array(row.embedding.buffer, row.embedding.byteOffset, row.embedding.byteLength / 4)\n },\n set: (hash: string, embedding: Embedding): void => {\n const arr = embedding instanceof Float32Array ? embedding : new Float32Array(embedding)\n setStmt.run(hash, Buffer.from(arr.buffer, arr.byteOffset, arr.byteLength))\n },\n }\n}\n\nexport async function cachedEmbeddings(config: EmbeddingConfig): Promise<EmbeddingConfig> {\n const { cachedEmbeddings: retrivCached } = await import('retriv/embeddings/cached')\n const db = openDb()\n const storage = createSqliteStorage(db)\n\n const originalResolve = config.resolve\n const validatedConfig: EmbeddingConfig = {\n async resolve() {\n const resolved = await originalResolve()\n const getMetaStmt = db.prepare('SELECT value FROM meta WHERE key = ?')\n const setMetaStmt = db.prepare('INSERT OR REPLACE INTO meta (key, value) VALUES (?, ?)')\n\n const storedDims = getMetaStmt.get('dimensions') as { value: string } | undefined\n if (storedDims && Number(storedDims.value) !== resolved.dimensions) {\n db.exec('DELETE FROM embeddings')\n }\n setMetaStmt.run('dimensions', String(resolved.dimensions))\n\n return resolved\n },\n }\n\n return retrivCached(validatedConfig, { storage })\n}\n\nexport function clearEmbeddingCache(): void {\n rmSync(EMBEDDINGS_DB_PATH, { force: true })\n}\n"],"mappings":";;;;;;;;AAUA,MAAM,qBAAqB,KAAK,WAAW,gBAAgB;AAE3D,SAAS,SAAuB;CAE9B,MAAM,EAAE,cAAc,OAAA,UAAe,cAAc;CACnD,MAAM,KAAK,IAAI,GAAG,mBAAmB;AACrC,IAAG,KAAK,0BAA0B;AAClC,IAAG,KAAK,2BAA2B;AACnC,IAAG,KAAK,8FAA8F;AACtG,IAAG,KAAK,8EAA8E;AACtF,QAAO;;AAGT,SAAS,oBAAoB,IAAkB;CAC7C,MAAM,UAAU,GAAG,QAAQ,uDAAuD;CAClF,MAAM,UAAU,GAAG,QAAQ,wEAAwE;AAEnG,QAAO;EACL,MAAM,SAAmC;GACvC,MAAM,MAAM,QAAQ,IAAI,KAAK;AAC7B,OAAI,CAAC,IACH,QAAO;AACT,UAAO,IAAI,aAAa,IAAI,UAAU,QAAQ,IAAI,UAAU,YAAY,IAAI,UAAU,aAAa,EAAE;;EAEvG,MAAM,MAAc,cAA+B;GACjD,MAAM,MAAM,qBAAqB,eAAe,YAAY,IAAI,aAAa,UAAU;AACvF,WAAQ,IAAI,MAAM,OAAO,KAAK,IAAI,QAAQ,IAAI,YAAY,IAAI,WAAW,CAAC;;EAE7E;;AAGH,eAAsB,iBAAiB,QAAmD;CACxF,MAAM,EAAE,kBAAkB,iBAAiB,MAAM,OAAO;CACxD,MAAM,KAAK,QAAQ;CACnB,MAAM,UAAU,oBAAoB,GAAG;CAEvC,MAAM,kBAAkB,OAAO;AAiB/B,QAAO,aAhBkC,EACvC,MAAM,UAAU;EACd,MAAM,WAAW,MAAM,iBAAiB;EACxC,MAAM,cAAc,GAAG,QAAQ,uCAAuC;EACtE,MAAM,cAAc,GAAG,QAAQ,yDAAyD;EAExF,MAAM,aAAa,YAAY,IAAI,aAAa;AAChD,MAAI,cAAc,OAAO,WAAW,MAAM,KAAK,SAAS,WACtD,IAAG,KAAK,yBAAyB;AAEnC,cAAY,IAAI,cAAc,OAAO,SAAS,WAAW,CAAC;AAE1D,SAAO;IAEV,EAEoC,EAAE,SAAS,CAAC;;AAGnD,SAAgB,sBAA4B;AAC1C,QAAO,oBAAoB,EAAE,OAAO,MAAM,CAAC"}
|
package/dist/cli.mjs
CHANGED
|
@@ -6,7 +6,6 @@ import { _ as resolvePkgDir, a as getShippedSkills, b as writeToRepoCache, c as
|
|
|
6
6
|
import "./cache/index.mjs";
|
|
7
7
|
import { n as yamlParseKV, r as yamlUnescape, t as yamlEscape } from "./_chunks/yaml.mjs";
|
|
8
8
|
import { i as parseFrontmatter } from "./_chunks/markdown.mjs";
|
|
9
|
-
import { n as clearEmbeddingCache } from "./_chunks/embedding-cache.mjs";
|
|
10
9
|
import { closePool, createIndex, openPool, searchPooled, searchSnippets } from "./retriv/index.mjs";
|
|
11
10
|
import { o as getPrereleaseChangelogRef, t as getBlogPreset } from "./_chunks/package-registry.mjs";
|
|
12
11
|
import { $ as fetchGitHubIssues, A as parseGitSkillInput, C as downloadLlmsDocs, D as normalizeLlmsLinks, F as formatDiscussionAsMarkdown, G as $fetch, H as generateReleaseIndex, I as generateDiscussionIndex, L as fetchCrawledDocs, M as resolveEntryFiles, N as generateDocsIndex, P as fetchGitHubDiscussions, R as toCrawlPattern, T as fetchLlmsTxt, U as isPrerelease, V as fetchReleaseNotes, X as parseGitHubUrl, Z as parsePackageSpec, at as mapInsert, b as isShallowGitDocs, d as resolvePackageDocs, et as formatIssueAsMarkdown, f as resolvePackageDocsWithAttempts, h as fetchGitDocs, i as fetchPkgDist, it as getSharedSkillsDir, k as fetchGitSkills, n as fetchNpmPackage, nt as isGhAvailable, ot as semverGt, p as searchNpmPackages, r as fetchNpmRegistryMeta, rt as SHARED_SKILLS_DIR, s as readLocalDependencies, t as fetchLatestVersion, tt as generateIssueIndex, u as resolveLocalPackageDocs, v as fetchReadmeContent, x as resolveGitHubRepo, y as filterFrameworkDocs, z as fetchBlogReleases } from "./_chunks/npm.mjs";
|
|
@@ -14,6 +13,7 @@ import "./sources/index.mjs";
|
|
|
14
13
|
import { _ as targets, a as sanitizeName, f as maxItems, g as getAgentVersion, h as detectTargetAgent, i as linkSkillToAgents, m as detectInstalledAgents, n as computeSkillDirName, o as unlinkSkillFromAgents, p as maxLines, t as generateSkillMd } from "./_chunks/prompts.mjs";
|
|
15
14
|
import { a as getModelName, i as getModelLabel, n as createToolProgress, o as optimizeDocs, r as getAvailableModels, t as detectImportedPackages } from "./_chunks/detect-imports.mjs";
|
|
16
15
|
import "./agent/index.mjs";
|
|
16
|
+
import { n as clearEmbeddingCache } from "./_chunks/embedding-cache2.mjs";
|
|
17
17
|
import { n as shutdownWorker } from "./_chunks/pool2.mjs";
|
|
18
18
|
import { createRequire } from "node:module";
|
|
19
19
|
import { homedir } from "node:os";
|
|
@@ -1527,7 +1527,32 @@ async function selectLlmConfig(presetModel, message) {
|
|
|
1527
1527
|
sections: DEFAULT_SECTIONS
|
|
1528
1528
|
};
|
|
1529
1529
|
}
|
|
1530
|
-
const
|
|
1530
|
+
const defaultModel = await selectModel(true);
|
|
1531
|
+
if (!defaultModel) return null;
|
|
1532
|
+
const defaultModelName = getModelName(defaultModel);
|
|
1533
|
+
const choice = await p.select({
|
|
1534
|
+
message: "Generate enhanced SKILL.md?",
|
|
1535
|
+
options: [
|
|
1536
|
+
{
|
|
1537
|
+
label: defaultModelName,
|
|
1538
|
+
value: "default",
|
|
1539
|
+
hint: "configured default"
|
|
1540
|
+
},
|
|
1541
|
+
{
|
|
1542
|
+
label: "Different model",
|
|
1543
|
+
value: "pick",
|
|
1544
|
+
hint: "choose another model"
|
|
1545
|
+
},
|
|
1546
|
+
{
|
|
1547
|
+
label: "Skip",
|
|
1548
|
+
value: "skip",
|
|
1549
|
+
hint: "base skill only"
|
|
1550
|
+
}
|
|
1551
|
+
]
|
|
1552
|
+
});
|
|
1553
|
+
if (p.isCancel(choice)) return null;
|
|
1554
|
+
if (choice === "skip") return null;
|
|
1555
|
+
const model = choice === "pick" ? await selectModel(false) : defaultModel;
|
|
1531
1556
|
if (!model) return null;
|
|
1532
1557
|
const modelName = getModelName(model);
|
|
1533
1558
|
const { sections, customPrompt, cancelled } = await selectSkillSections(message ? `${message} (${modelName})` : `Generate SKILL.md with ${modelName}`);
|