openwolf-enhanced 1.19.0 → 1.19.2
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/CHANGELOG.md +62 -0
- package/dist/dashboard/assets/{AISuggestions-Bz6uifBL.js → AISuggestions-ByJakEO6.js} +1 -1
- package/dist/dashboard/assets/{ActivityLog-Dp9Vy_yw.js → ActivityLog-DSfbf3Y7.js} +1 -1
- package/dist/dashboard/assets/{ActivityTimeline-qx-FXGlN.js → ActivityTimeline-COKzabf_.js} +1 -1
- package/dist/dashboard/assets/{AnatomyBrowser-CBgnZuaN.js → AnatomyBrowser-CtwvWQhy.js} +1 -1
- package/dist/dashboard/assets/{BugLog-Bqvi_hcM.js → BugLog-B9Vd6-tR.js} +1 -1
- package/dist/dashboard/assets/{CerebrumViewer-BZ3eMxEG.js → CerebrumViewer-6PqRD6jt.js} +1 -1
- package/dist/dashboard/assets/{CronStatus-C-db0M9L.js → CronStatus-wbhU9J3E.js} +1 -1
- package/dist/dashboard/assets/{DesignQC-BOFkKCKs.js → DesignQC-CJ2hTDch.js} +1 -1
- package/dist/dashboard/assets/{MemoryViewer-rrSZ9ku9.js → MemoryViewer-DH9JAKAk.js} +1 -1
- package/dist/dashboard/assets/{NativeMemory-DtYZHH8H.js → NativeMemory-BaxOcLxh.js} +1 -1
- package/dist/dashboard/assets/{ProjectOverview-CC3WZKB4.js → ProjectOverview-BaagZDLq.js} +1 -1
- package/dist/dashboard/assets/{ProjectsAggregate-DMn9kYcp.js → ProjectsAggregate-CycQ5unj.js} +1 -1
- package/dist/dashboard/assets/{StatusBadge-DasxdCsy.js → StatusBadge-BcyhaVbu.js} +1 -1
- package/dist/dashboard/assets/{TokenUsage-C6mixj0Y.js → TokenUsage-BrtsR1aL.js} +1 -1
- package/dist/dashboard/assets/{index-BAnY3Rh3.js → index-DmU31a-B.js} +3 -3
- package/dist/dashboard/index.html +1 -1
- package/dist/hooks/post-read.js +9 -7
- package/dist/hooks/post-write.js +17 -14
- package/dist/hooks/pre-read.js +3 -0
- package/dist/hooks/shared.js +5 -4
- package/dist/hooks/stop.js +4 -1
- package/dist/hooks/token-estimator.js +58 -0
- package/dist/src/buglog/bug-tracker.js +8 -1
- package/dist/src/buglog/bug-tracker.js.map +1 -1
- package/dist/src/hooks/post-read.js +9 -7
- package/dist/src/hooks/post-read.js.map +1 -1
- package/dist/src/hooks/post-write.js +17 -14
- package/dist/src/hooks/post-write.js.map +1 -1
- package/dist/src/hooks/pre-read.js +3 -0
- package/dist/src/hooks/pre-read.js.map +1 -1
- package/dist/src/hooks/shared.js +5 -4
- package/dist/src/hooks/shared.js.map +1 -1
- package/dist/src/hooks/stop.js +4 -1
- package/dist/src/hooks/stop.js.map +1 -1
- package/dist/src/hooks/token-estimator.js +59 -0
- package/dist/src/hooks/token-estimator.js.map +1 -0
- package/dist/src/scanner/anatomy-scanner.js +8 -19
- package/dist/src/scanner/anatomy-scanner.js.map +1 -1
- package/dist/src/tracker/token-estimator.js +4 -19
- package/dist/src/tracker/token-estimator.js.map +1 -1
- package/dist/src/tracker/token-ledger.js.map +1 -1
- package/dist/src/tracker/waste-detector.js +9 -9
- package/dist/src/tracker/waste-detector.js.map +1 -1
- package/dist/src/utils/embeddings.js +58 -0
- package/dist/src/utils/embeddings.js.map +1 -0
- package/dist/src/utils/hooks-deploy.js +23 -4
- package/dist/src/utils/hooks-deploy.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"waste-detector.js","sourceRoot":"","sources":["../../../src/tracker/waste-detector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAU/C,MAAM,UAAU,WAAW,CAAC,OAAe;IACzC,MAAM,KAAK,GAAgB,EAAE,CAAC;IAC9B,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IACnC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAErC,
|
|
1
|
+
{"version":3,"file":"waste-detector.js","sourceRoot":"","sources":["../../../src/tracker/waste-detector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import * as path from "node:path";
|
|
2
|
+
import { readJSON } from "./fs-safe.js";
|
|
3
|
+
import { isLocalEndpoint } from "../daemon/llm-provider.js";
|
|
4
|
+
const DEFAULTS = {
|
|
5
|
+
baseUrl: "http://localhost:1234/v1",
|
|
6
|
+
model: "text-embedding-nomic-embed-text-v1.5",
|
|
7
|
+
apiKeyEnv: "OPENWOLF_EMBED_API_KEY",
|
|
8
|
+
};
|
|
9
|
+
export function resolveEmbedConfig(wolfDir) {
|
|
10
|
+
const cfg = readJSON(path.join(wolfDir, "config.json"), {});
|
|
11
|
+
const e = cfg.openwolf?.recall?.embeddings ?? {};
|
|
12
|
+
return {
|
|
13
|
+
enabled: e.enabled ?? false,
|
|
14
|
+
baseUrl: (e.baseUrl || DEFAULTS.baseUrl).replace(/\/+$/, ""),
|
|
15
|
+
model: e.model || DEFAULTS.model,
|
|
16
|
+
apiKeyEnv: e.apiKeyEnv || DEFAULTS.apiKeyEnv,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
/** Embed a batch of texts. Loopback endpoints run keyless; remote ones require the configured key. */
|
|
20
|
+
export async function embedTexts(cfg, texts) {
|
|
21
|
+
if (texts.length === 0)
|
|
22
|
+
return [];
|
|
23
|
+
const key = process.env[cfg.apiKeyEnv] ?? "";
|
|
24
|
+
if (!key && !isLocalEndpoint(cfg.baseUrl)) {
|
|
25
|
+
throw new Error(`${cfg.apiKeyEnv} is not set — a remote embeddings endpoint needs a key. Point openwolf.recall.embeddings.base_url at a local server (LM Studio http://localhost:1234/v1) to run keyless.`);
|
|
26
|
+
}
|
|
27
|
+
const res = await fetch(`${cfg.baseUrl}/embeddings`, {
|
|
28
|
+
method: "POST",
|
|
29
|
+
headers: { "content-type": "application/json", ...(key ? { authorization: `Bearer ${key}` } : {}) },
|
|
30
|
+
body: JSON.stringify({ model: cfg.model, input: texts }),
|
|
31
|
+
signal: AbortSignal.timeout(120_000),
|
|
32
|
+
});
|
|
33
|
+
if (!res.ok) {
|
|
34
|
+
const t = await res.text().catch(() => "");
|
|
35
|
+
throw new Error(`embeddings HTTP ${res.status} ${t.slice(0, 120)}`);
|
|
36
|
+
}
|
|
37
|
+
const data = (await res.json());
|
|
38
|
+
if (!data.data || data.data.length !== texts.length) {
|
|
39
|
+
throw new Error(`embeddings response returned ${data.data?.length ?? 0} vectors for ${texts.length} inputs`);
|
|
40
|
+
}
|
|
41
|
+
// Preserve input order (OpenAI returns an `index` field).
|
|
42
|
+
return [...data.data].sort((a, b) => a.index - b.index).map((d) => d.embedding);
|
|
43
|
+
}
|
|
44
|
+
/** Cosine similarity of two equal-length vectors. Returns 0 for a zero vector or a length mismatch. */
|
|
45
|
+
export function cosine(a, b) {
|
|
46
|
+
if (a.length !== b.length)
|
|
47
|
+
return 0;
|
|
48
|
+
let dot = 0, na = 0, nb = 0;
|
|
49
|
+
for (let i = 0; i < a.length; i++) {
|
|
50
|
+
dot += a[i] * b[i];
|
|
51
|
+
na += a[i] * a[i];
|
|
52
|
+
nb += b[i] * b[i];
|
|
53
|
+
}
|
|
54
|
+
if (na === 0 || nb === 0)
|
|
55
|
+
return 0;
|
|
56
|
+
return dot / (Math.sqrt(na) * Math.sqrt(nb));
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=embeddings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embeddings.js","sourceRoot":"","sources":["../../../src/utils/embeddings.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,13 @@ import { fileURLToPath } from "node:url";
|
|
|
17
17
|
import { safeCopyFile } from "./fs-safe.js";
|
|
18
18
|
import { ensureDir } from "./paths.js";
|
|
19
19
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
20
|
+
/**
|
|
21
|
+
* The hook entry points — the scripts `.claude/settings.json` invokes directly. This list is what
|
|
22
|
+
* `openwolf status` verifies; it is NOT the copy list. Everything in the compiled hooks directory is
|
|
23
|
+
* deployed (see copyHookScripts), because these entry points import shared modules and a hardcoded
|
|
24
|
+
* copy list silently omits any new one — which broke every hook in every project in 1.19.1 when
|
|
25
|
+
* shared.js gained a `token-estimator.js` import that was never copied.
|
|
26
|
+
*/
|
|
20
27
|
export const HOOK_FILES = [
|
|
21
28
|
"session-start.js",
|
|
22
29
|
"pre-read.js",
|
|
@@ -53,12 +60,24 @@ export function copyHookScripts(wolfDir) {
|
|
|
53
60
|
const sourceDir = findHooksSourceDir();
|
|
54
61
|
let copiedAny = false;
|
|
55
62
|
if (sourceDir) {
|
|
56
|
-
|
|
63
|
+
// Copy every compiled module, not just the entry points — a hook that imports a helper needs
|
|
64
|
+
// that helper on disk too, and enumerating them by hand is how they go missing.
|
|
65
|
+
let files = [];
|
|
66
|
+
try {
|
|
67
|
+
files = fs.readdirSync(sourceDir).filter((f) => f.endsWith(".js"));
|
|
68
|
+
}
|
|
69
|
+
catch { /* unreadable source dir — handled by the !copiedAny warning below */ }
|
|
70
|
+
for (const file of files) {
|
|
57
71
|
const src = path.join(sourceDir, file);
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
72
|
+
try {
|
|
73
|
+
if (!fs.statSync(src).isFile())
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
continue;
|
|
61
78
|
}
|
|
79
|
+
safeCopyFile(src, path.join(hooksDir, file));
|
|
80
|
+
copiedAny = true;
|
|
62
81
|
}
|
|
63
82
|
}
|
|
64
83
|
if (!copiedAny) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks-deploy.js","sourceRoot":"","sources":["../../../src/utils/hooks-deploy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE/D,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,kBAAkB;IAClB,aAAa;IACb,cAAc;IACd,cAAc;IACd,eAAe;IACf,cAAc;IACd,SAAS;IACT,eAAe;IACf,WAAW;CACZ,CAAC;AAEF,iGAAiG;AACjG,SAAS,kBAAkB;IACzB,MAAM,UAAU,GAAG;QACjB,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,kDAAkD;QAChG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,EAAQ,4CAA4C;KAC3F,CAAC;IACF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;YAAE,OAAO,SAAS,CAAC;IACzE,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7C,SAAS,CAAC,QAAQ,CAAC,CAAC;IAEpB,MAAM,SAAS,GAAG,kBAAkB,EAAE,CAAC;IACvC,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI,SAAS,EAAE,CAAC;QACd,KAAK,MAAM,IAAI,IAAI,
|
|
1
|
+
{"version":3,"file":"hooks-deploy.js","sourceRoot":"","sources":["../../../src/utils/hooks-deploy.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "openwolf-enhanced",
|
|
3
|
-
"version": "1.19.
|
|
3
|
+
"version": "1.19.2",
|
|
4
4
|
"description": "A second brain for Claude Code, Codex & Gemini — persistent git-native project memory with searchable citations, an MCP server for Claude Desktop, and invisible hook-based context. No database.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|