codesift-mcp 0.8.7 → 0.8.11
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/README.md +8 -0
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +6 -0
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/hooks.d.ts.map +1 -1
- package/dist/cli/hooks.js +4 -3
- package/dist/cli/hooks.js.map +1 -1
- package/dist/cli/setup.d.ts +4 -0
- package/dist/cli/setup.d.ts.map +1 -1
- package/dist/cli/setup.js +97 -7
- package/dist/cli/setup.js.map +1 -1
- package/dist/config.d.ts +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +1 -0
- package/dist/config.js.map +1 -1
- package/dist/formatters-shortening.d.ts +7 -0
- package/dist/formatters-shortening.d.ts.map +1 -1
- package/dist/formatters-shortening.js +48 -0
- package/dist/formatters-shortening.js.map +1 -1
- package/dist/formatters.d.ts.map +1 -1
- package/dist/formatters.js +14 -2
- package/dist/formatters.js.map +1 -1
- package/dist/instructions.d.ts +1 -1
- package/dist/instructions.d.ts.map +1 -1
- package/dist/instructions.js +2 -2
- package/dist/register-tool-loaders.d.ts +1 -0
- package/dist/register-tool-loaders.d.ts.map +1 -1
- package/dist/register-tool-loaders.js +1 -0
- package/dist/register-tool-loaders.js.map +1 -1
- package/dist/register-tools.d.ts +2 -0
- package/dist/register-tools.d.ts.map +1 -1
- package/dist/register-tools.js +80 -18
- package/dist/register-tools.js.map +1 -1
- package/dist/search/model2vec-tokenize.d.ts +22 -0
- package/dist/search/model2vec-tokenize.d.ts.map +1 -0
- package/dist/search/model2vec-tokenize.js +140 -0
- package/dist/search/model2vec-tokenize.js.map +1 -0
- package/dist/search/semantic.d.ts.map +1 -1
- package/dist/search/semantic.js +7 -0
- package/dist/search/semantic.js.map +1 -1
- package/dist/search/static-embedding-provider.d.ts +24 -0
- package/dist/search/static-embedding-provider.d.ts.map +1 -0
- package/dist/search/static-embedding-provider.js +149 -0
- package/dist/search/static-embedding-provider.js.map +1 -0
- package/dist/server-helpers.d.ts.map +1 -1
- package/dist/server-helpers.js +7 -3
- package/dist/server-helpers.js.map +1 -1
- package/dist/storage/_shared.d.ts.map +1 -1
- package/dist/storage/_shared.js +4 -1
- package/dist/storage/_shared.js.map +1 -1
- package/dist/storage/hash-snapshot.d.ts +36 -0
- package/dist/storage/hash-snapshot.d.ts.map +1 -0
- package/dist/storage/hash-snapshot.js +101 -0
- package/dist/storage/hash-snapshot.js.map +1 -0
- package/dist/storage/registry.d.ts.map +1 -1
- package/dist/storage/registry.js +35 -1
- package/dist/storage/registry.js.map +1 -1
- package/dist/storage/usage-stats.d.ts +8 -0
- package/dist/storage/usage-stats.d.ts.map +1 -1
- package/dist/storage/usage-stats.js +74 -24
- package/dist/storage/usage-stats.js.map +1 -1
- package/dist/storage/usage-tracker.d.ts +29 -5
- package/dist/storage/usage-tracker.d.ts.map +1 -1
- package/dist/storage/usage-tracker.js +41 -5
- package/dist/storage/usage-tracker.js.map +1 -1
- package/dist/tools/conversation-tools.d.ts +8 -1
- package/dist/tools/conversation-tools.d.ts.map +1 -1
- package/dist/tools/conversation-tools.js +61 -15
- package/dist/tools/conversation-tools.js.map +1 -1
- package/dist/tools/index-tools.d.ts +33 -2
- package/dist/tools/index-tools.d.ts.map +1 -1
- package/dist/tools/index-tools.js +524 -40
- package/dist/tools/index-tools.js.map +1 -1
- package/dist/tools/pg-introspect-tools.d.ts +147 -0
- package/dist/tools/pg-introspect-tools.d.ts.map +1 -0
- package/dist/tools/pg-introspect-tools.js +396 -0
- package/dist/tools/pg-introspect-tools.js.map +1 -0
- package/dist/tools/plan-turn-tools.d.ts.map +1 -1
- package/dist/tools/plan-turn-tools.js +88 -1
- package/dist/tools/plan-turn-tools.js.map +1 -1
- package/dist/tools/search-tools.d.ts +12 -0
- package/dist/tools/search-tools.d.ts.map +1 -1
- package/dist/tools/search-tools.js +120 -6
- package/dist/tools/search-tools.js.map +1 -1
- package/dist/types.d.ts +27 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/hf-download-stream.d.ts +21 -0
- package/dist/utils/hf-download-stream.d.ts.map +1 -0
- package/dist/utils/hf-download-stream.js +101 -0
- package/dist/utils/hf-download-stream.js.map +1 -0
- package/dist/utils/hf-hub-download.d.ts +8 -0
- package/dist/utils/hf-hub-download.d.ts.map +1 -0
- package/dist/utils/hf-hub-download.js +149 -0
- package/dist/utils/hf-hub-download.js.map +1 -0
- package/dist/utils/safetensors-loader.d.ts +9 -0
- package/dist/utils/safetensors-loader.d.ts.map +1 -0
- package/dist/utils/safetensors-loader.js +95 -0
- package/dist/utils/safetensors-loader.js.map +1 -0
- package/dist/utils/safetensors-meta-guard.d.ts +7 -0
- package/dist/utils/safetensors-meta-guard.d.ts.map +1 -0
- package/dist/utils/safetensors-meta-guard.js +50 -0
- package/dist/utils/safetensors-meta-guard.js.map +1 -0
- package/package.json +3 -1
- package/rules/codesift.md +1 -1
- package/rules/codesift.mdc +1 -1
- package/rules/codex.md +1 -1
- package/rules/gemini.md +1 -1
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export declare const HASH_SNAPSHOT_VERSION = 1;
|
|
2
|
+
export interface FileHashSnapshot {
|
|
3
|
+
version: 1;
|
|
4
|
+
repo: string;
|
|
5
|
+
created_at: number;
|
|
6
|
+
files: Record<string, string>;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Convert an index path to its companion snapshot path.
|
|
10
|
+
* e.g. "/x/abc123.index.json" → "/x/abc123.snapshot.json"
|
|
11
|
+
*
|
|
12
|
+
* Throws if indexPath does not end with ".index.json" (safety guard against
|
|
13
|
+
* accidentally overwriting the wrong file).
|
|
14
|
+
*/
|
|
15
|
+
export declare function getSnapshotPath(indexPath: string): string;
|
|
16
|
+
/**
|
|
17
|
+
* Write a FileHashSnapshot atomically.
|
|
18
|
+
*/
|
|
19
|
+
export declare function saveHashSnapshot(path: string, snap: FileHashSnapshot): Promise<void>;
|
|
20
|
+
/**
|
|
21
|
+
* Load a FileHashSnapshot from disk.
|
|
22
|
+
* Returns null when:
|
|
23
|
+
* - the file does not exist
|
|
24
|
+
* - the file contains invalid JSON
|
|
25
|
+
* - the stored version !== 1
|
|
26
|
+
* - expectedRepo is provided and does not match snapshot.repo
|
|
27
|
+
*
|
|
28
|
+
* Non-ENOENT file read errors are logged as a warning before returning null.
|
|
29
|
+
* JSON parse errors are silent (expected corruption path).
|
|
30
|
+
*/
|
|
31
|
+
export declare function loadHashSnapshot(path: string, expectedRepo?: string): Promise<FileHashSnapshot | null>;
|
|
32
|
+
/**
|
|
33
|
+
* Delete a snapshot file idempotently — never throws if the file is absent.
|
|
34
|
+
*/
|
|
35
|
+
export declare function deleteHashSnapshot(path: string): Promise<void>;
|
|
36
|
+
//# sourceMappingURL=hash-snapshot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hash-snapshot.d.ts","sourceRoot":"","sources":["../../src/storage/hash-snapshot.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAEvC,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,CAAC,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAOzD;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,IAAI,CAAC,CAGf;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAkClC;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CASpE"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { readFile, unlink } from "node:fs/promises";
|
|
2
|
+
import { atomicWriteFile } from "./_shared.js";
|
|
3
|
+
export const HASH_SNAPSHOT_VERSION = 1;
|
|
4
|
+
/**
|
|
5
|
+
* Convert an index path to its companion snapshot path.
|
|
6
|
+
* e.g. "/x/abc123.index.json" → "/x/abc123.snapshot.json"
|
|
7
|
+
*
|
|
8
|
+
* Throws if indexPath does not end with ".index.json" (safety guard against
|
|
9
|
+
* accidentally overwriting the wrong file).
|
|
10
|
+
*/
|
|
11
|
+
export function getSnapshotPath(indexPath) {
|
|
12
|
+
if (!indexPath.endsWith(".index.json")) {
|
|
13
|
+
throw new Error(`hash-snapshot: expected an .index.json path, got "${indexPath}"`);
|
|
14
|
+
}
|
|
15
|
+
return indexPath.replace(/\.index\.json$/, ".snapshot.json");
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Write a FileHashSnapshot atomically.
|
|
19
|
+
*/
|
|
20
|
+
export async function saveHashSnapshot(path, snap) {
|
|
21
|
+
const data = JSON.stringify(snap);
|
|
22
|
+
await atomicWriteFile(path, data);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Load a FileHashSnapshot from disk.
|
|
26
|
+
* Returns null when:
|
|
27
|
+
* - the file does not exist
|
|
28
|
+
* - the file contains invalid JSON
|
|
29
|
+
* - the stored version !== 1
|
|
30
|
+
* - expectedRepo is provided and does not match snapshot.repo
|
|
31
|
+
*
|
|
32
|
+
* Non-ENOENT file read errors are logged as a warning before returning null.
|
|
33
|
+
* JSON parse errors are silent (expected corruption path).
|
|
34
|
+
*/
|
|
35
|
+
export async function loadHashSnapshot(path, expectedRepo) {
|
|
36
|
+
let raw;
|
|
37
|
+
try {
|
|
38
|
+
raw = await readFile(path, "utf-8");
|
|
39
|
+
}
|
|
40
|
+
catch (err) {
|
|
41
|
+
// ENOENT = expected case (file doesn't exist yet). Other errors = log & degrade.
|
|
42
|
+
const errno = err?.code;
|
|
43
|
+
if (errno !== "ENOENT") {
|
|
44
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
45
|
+
console.warn(`[codesift] hash-snapshot load failed (degrading to full re-parse): ${msg}`);
|
|
46
|
+
}
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
let parsed;
|
|
50
|
+
try {
|
|
51
|
+
parsed = JSON.parse(raw);
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
// JSON parse errors are silent (corruption is expected & recoverable)
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
if (!isValidSnapshot(parsed)) {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
if (expectedRepo !== undefined && parsed.repo !== expectedRepo) {
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
return parsed;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Delete a snapshot file idempotently — never throws if the file is absent.
|
|
67
|
+
*/
|
|
68
|
+
export async function deleteHashSnapshot(path) {
|
|
69
|
+
try {
|
|
70
|
+
await unlink(path);
|
|
71
|
+
}
|
|
72
|
+
catch (err) {
|
|
73
|
+
// ENOENT = already gone, which is fine. Re-throw anything else.
|
|
74
|
+
if (err.code !== "ENOENT") {
|
|
75
|
+
throw err;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
function isValidSnapshot(value) {
|
|
80
|
+
if (typeof value !== "object" || value === null || Array.isArray(value)) {
|
|
81
|
+
return false;
|
|
82
|
+
}
|
|
83
|
+
const obj = value;
|
|
84
|
+
if (obj["version"] !== HASH_SNAPSHOT_VERSION)
|
|
85
|
+
return false;
|
|
86
|
+
if (typeof obj["repo"] !== "string")
|
|
87
|
+
return false;
|
|
88
|
+
if (typeof obj["created_at"] !== "number")
|
|
89
|
+
return false;
|
|
90
|
+
const files = obj["files"];
|
|
91
|
+
if (typeof files !== "object" || files === null || Array.isArray(files)) {
|
|
92
|
+
return false;
|
|
93
|
+
}
|
|
94
|
+
// All values in files must be strings
|
|
95
|
+
for (const v of Object.values(files)) {
|
|
96
|
+
if (typeof v !== "string")
|
|
97
|
+
return false;
|
|
98
|
+
}
|
|
99
|
+
return true;
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=hash-snapshot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hash-snapshot.js","sourceRoot":"","sources":["../../src/storage/hash-snapshot.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/storage/registry.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGtD;;;GAGG;AACH,wBAAsB,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAa1E;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAChC,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,IAAI,CAAC,CAGf;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,QAAQ,GACb,OAAO,CAAC,IAAI,CAAC,CAKf;AAED;;;GAGG;AACH,wBAAsB,OAAO,CAC3B,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAG1B;AAED;;GAEG;AACH,wBAAsB,SAAS,CAC7B,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAGrB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,iBAAiB,GAAG,cAAc,GAAG,YAAY,GAAG,YAAY,CAAC,CAAC,GACjG,OAAO,CAAC,IAAI,CAAC,CAOf;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,OAAO,CAAC,CAWlB;AAED;;;;;;;;GAQG;AACH,wBAAsB,yBAAyB,CAC7C,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAAG,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/storage/registry.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGtD;;;GAGG;AACH,wBAAsB,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAa1E;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAChC,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,IAAI,CAAC,CAGf;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,QAAQ,GACb,OAAO,CAAC,IAAI,CAAC,CAKf;AAED;;;GAGG;AACH,wBAAsB,OAAO,CAC3B,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAG1B;AAED;;GAEG;AACH,wBAAsB,SAAS,CAC7B,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAGrB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,iBAAiB,GAAG,cAAc,GAAG,YAAY,GAAG,YAAY,CAAC,CAAC,GACjG,OAAO,CAAC,IAAI,CAAC,CAOf;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,OAAO,CAAC,CAWlB;AAED;;;;;;;;GAQG;AACH,wBAAsB,yBAAyB,CAC7C,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAAG,IAAI,CAAC,CA6C1D;AA+BD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAQpD"}
|
package/dist/storage/registry.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { readFile } from "node:fs/promises";
|
|
2
2
|
import { readFileSync, existsSync } from "node:fs";
|
|
3
|
-
import { basename, join } from "node:path";
|
|
3
|
+
import { basename, isAbsolute, join, resolve, sep } from "node:path";
|
|
4
4
|
import { atomicWriteFile } from "./_shared.js";
|
|
5
5
|
/**
|
|
6
6
|
* Load the multi-repo registry from disk.
|
|
@@ -105,6 +105,14 @@ export async function resolveRegisteredRepoMeta(registryPath, repoInput) {
|
|
|
105
105
|
meta = allRepos[0];
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
|
+
if (!meta && repoInput) {
|
|
109
|
+
const allRepos = await listRepos(registryPath);
|
|
110
|
+
const explicitMatches = resolveExplicitRepoInput(allRepos, repoInput);
|
|
111
|
+
if (explicitMatches.length === 1) {
|
|
112
|
+
meta = explicitMatches[0];
|
|
113
|
+
resolved = meta.name;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
108
116
|
if (!meta && repoInput && !repoInput.includes("/")) {
|
|
109
117
|
// Bare-name fallback: agent passed `thepopebot` but registry has `local/thepopebot`.
|
|
110
118
|
// Collect every repo whose name ends in `/<input>` and decide on the union to avoid
|
|
@@ -127,6 +135,32 @@ export async function resolveRegisteredRepoMeta(registryPath, repoInput) {
|
|
|
127
135
|
return null;
|
|
128
136
|
return { resolvedName: resolved, meta };
|
|
129
137
|
}
|
|
138
|
+
function resolveExplicitRepoInput(repos, repoInput) {
|
|
139
|
+
if (isAbsolute(repoInput)) {
|
|
140
|
+
const inputPath = resolve(repoInput);
|
|
141
|
+
const matches = repos
|
|
142
|
+
.filter((r) => isAncestorOrEqual(resolve(r.root), inputPath))
|
|
143
|
+
.sort((a, b) => resolve(b.root).length - resolve(a.root).length);
|
|
144
|
+
const longestRootLength = matches[0] ? resolve(matches[0].root).length : 0;
|
|
145
|
+
return matches.filter((r) => resolve(r.root).length === longestRootLength);
|
|
146
|
+
}
|
|
147
|
+
const lowerInput = repoInput.toLowerCase();
|
|
148
|
+
const caseMatches = repos.filter((r) => r.name.toLowerCase() === lowerInput);
|
|
149
|
+
if (caseMatches.length > 0)
|
|
150
|
+
return caseMatches;
|
|
151
|
+
const localPrefix = "local/";
|
|
152
|
+
if (lowerInput.startsWith(localPrefix)) {
|
|
153
|
+
const requestedBasename = repoInput.slice(localPrefix.length).toLowerCase();
|
|
154
|
+
return repos.filter((r) => basename(r.root).toLowerCase() === requestedBasename);
|
|
155
|
+
}
|
|
156
|
+
return [];
|
|
157
|
+
}
|
|
158
|
+
function isAncestorOrEqual(ancestor, descendant) {
|
|
159
|
+
if (ancestor === descendant)
|
|
160
|
+
return true;
|
|
161
|
+
const prefix = ancestor.endsWith(sep) ? ancestor : ancestor + sep;
|
|
162
|
+
return descendant.startsWith(prefix);
|
|
163
|
+
}
|
|
130
164
|
/**
|
|
131
165
|
* Derive a repo name from its root path. Tried in order:
|
|
132
166
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/storage/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/storage/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,11 @@ export interface RepoStats {
|
|
|
9
9
|
repo: string;
|
|
10
10
|
call_count: number;
|
|
11
11
|
}
|
|
12
|
+
export interface HostStats {
|
|
13
|
+
host: string;
|
|
14
|
+
call_count: number;
|
|
15
|
+
total_tokens: number;
|
|
16
|
+
}
|
|
12
17
|
export interface DailyStats {
|
|
13
18
|
date: string;
|
|
14
19
|
call_count: number;
|
|
@@ -25,6 +30,8 @@ export interface UsageStats {
|
|
|
25
30
|
avg_calls_per_session: number;
|
|
26
31
|
tools: ToolStats[];
|
|
27
32
|
top_repos: RepoStats[];
|
|
33
|
+
/** Per-machine breakdown — only meaningful once usage-remote/ logs are synced in. */
|
|
34
|
+
hosts: HostStats[];
|
|
28
35
|
daily: DailyStats[];
|
|
29
36
|
query_types: QueryTypeStats[];
|
|
30
37
|
earliest_ts: number;
|
|
@@ -35,6 +42,7 @@ export declare function getUsageStats(options?: {
|
|
|
35
42
|
repo?: string;
|
|
36
43
|
tool?: string;
|
|
37
44
|
session_id?: string;
|
|
45
|
+
host?: string;
|
|
38
46
|
}): Promise<UsageStats>;
|
|
39
47
|
export declare function formatUsageReport(stats: UsageStats): string;
|
|
40
48
|
//# sourceMappingURL=usage-stats.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage-stats.d.ts","sourceRoot":"","sources":["../../src/storage/usage-stats.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"usage-stats.d.ts","sourceRoot":"","sources":["../../src/storage/usage-stats.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,SAAS,EAAE,SAAS,EAAE,CAAC;IACvB,qFAAqF;IACrF,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAyFD,wBAAsB,aAAa,CAAC,OAAO,CAAC,EAAE;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,OAAO,CAAC,UAAU,CAAC,CAqItB;AAMD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAmF3D"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { readFile } from "node:fs/promises";
|
|
2
|
-
import {
|
|
1
|
+
import { readFile, readdir } from "node:fs/promises";
|
|
2
|
+
import { join, basename } from "node:path";
|
|
3
|
+
import { getCumulativeSavings, getUsagePath, getRemoteUsageDir, getLocalHostTag } from "./usage-tracker.js";
|
|
3
4
|
import { formatTable } from "../formatters.js";
|
|
4
5
|
// ---------------------------------------------------------------------------
|
|
5
6
|
// Loading
|
|
@@ -13,42 +14,71 @@ function isValidEntry(value) {
|
|
|
13
14
|
typeof obj["elapsed_ms"] === "number" &&
|
|
14
15
|
typeof obj["session_id"] === "string");
|
|
15
16
|
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
/** The local log plus any host logs synced into usage-remote/. Each source
|
|
18
|
+
* carries a fallback host tag for entries written before the `host` field
|
|
19
|
+
* existed: the local hostname, or the remote file's name stem. */
|
|
20
|
+
async function listUsageSources() {
|
|
21
|
+
const sources = [{ path: getUsagePath(), fallbackHost: getLocalHostTag() }];
|
|
22
|
+
const remoteDir = getRemoteUsageDir();
|
|
19
23
|
try {
|
|
20
|
-
|
|
24
|
+
for (const name of await readdir(remoteDir)) {
|
|
25
|
+
if (!name.endsWith(".jsonl"))
|
|
26
|
+
continue;
|
|
27
|
+
sources.push({
|
|
28
|
+
path: join(remoteDir, name),
|
|
29
|
+
fallbackHost: basename(name, ".jsonl"),
|
|
30
|
+
});
|
|
31
|
+
}
|
|
21
32
|
}
|
|
22
33
|
catch {
|
|
23
|
-
|
|
34
|
+
// usage-remote/ absent — single-machine setup
|
|
24
35
|
}
|
|
36
|
+
return sources;
|
|
37
|
+
}
|
|
38
|
+
async function loadEntries(options) {
|
|
25
39
|
const sinceTs = options?.since ? new Date(options.since).getTime() : 0;
|
|
26
40
|
const repoFilter = options?.repo ?? null;
|
|
27
41
|
const toolFilter = options?.tool ?? null;
|
|
28
42
|
const sessionFilter = options?.session_id ?? null;
|
|
43
|
+
const hostFilter = options?.host ?? null;
|
|
29
44
|
const entries = [];
|
|
30
|
-
for (const
|
|
31
|
-
|
|
32
|
-
if (!trimmed)
|
|
33
|
-
continue;
|
|
45
|
+
for (const source of await listUsageSources()) {
|
|
46
|
+
let raw;
|
|
34
47
|
try {
|
|
35
|
-
|
|
36
|
-
if (!isValidEntry(parsed))
|
|
37
|
-
continue;
|
|
38
|
-
if (parsed.ts < sinceTs)
|
|
39
|
-
continue;
|
|
40
|
-
if (repoFilter && parsed.repo !== repoFilter)
|
|
41
|
-
continue;
|
|
42
|
-
if (toolFilter && parsed.tool !== toolFilter)
|
|
43
|
-
continue;
|
|
44
|
-
if (sessionFilter && parsed.session_id !== sessionFilter)
|
|
45
|
-
continue;
|
|
46
|
-
entries.push(parsed);
|
|
48
|
+
raw = await readFile(source.path, "utf-8");
|
|
47
49
|
}
|
|
48
50
|
catch {
|
|
49
|
-
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
for (const line of raw.split("\n")) {
|
|
54
|
+
const trimmed = line.trim();
|
|
55
|
+
if (!trimmed)
|
|
56
|
+
continue;
|
|
57
|
+
try {
|
|
58
|
+
const parsed = JSON.parse(trimmed);
|
|
59
|
+
if (!isValidEntry(parsed))
|
|
60
|
+
continue;
|
|
61
|
+
if (parsed.host === undefined)
|
|
62
|
+
parsed.host = source.fallbackHost;
|
|
63
|
+
if (parsed.ts < sinceTs)
|
|
64
|
+
continue;
|
|
65
|
+
if (repoFilter && parsed.repo !== repoFilter)
|
|
66
|
+
continue;
|
|
67
|
+
if (toolFilter && parsed.tool !== toolFilter)
|
|
68
|
+
continue;
|
|
69
|
+
if (sessionFilter && parsed.session_id !== sessionFilter)
|
|
70
|
+
continue;
|
|
71
|
+
if (hostFilter && parsed.host !== hostFilter)
|
|
72
|
+
continue;
|
|
73
|
+
entries.push(parsed);
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
// Skip malformed lines
|
|
77
|
+
}
|
|
50
78
|
}
|
|
51
79
|
}
|
|
80
|
+
// Sources are per-host append logs — interleave them chronologically.
|
|
81
|
+
entries.sort((a, b) => a.ts - b.ts);
|
|
52
82
|
return entries;
|
|
53
83
|
}
|
|
54
84
|
// ---------------------------------------------------------------------------
|
|
@@ -63,6 +93,7 @@ export async function getUsageStats(options) {
|
|
|
63
93
|
avg_calls_per_session: 0,
|
|
64
94
|
tools: [],
|
|
65
95
|
top_repos: [],
|
|
96
|
+
hosts: [],
|
|
66
97
|
daily: [],
|
|
67
98
|
query_types: [],
|
|
68
99
|
earliest_ts: 0,
|
|
@@ -72,6 +103,7 @@ export async function getUsageStats(options) {
|
|
|
72
103
|
// Per-tool aggregation
|
|
73
104
|
const toolMap = new Map();
|
|
74
105
|
const repoMap = new Map();
|
|
106
|
+
const hostMap = new Map();
|
|
75
107
|
const sessionSet = new Set();
|
|
76
108
|
const dailyMap = new Map();
|
|
77
109
|
// codebase_retrieval query type breakdown
|
|
@@ -90,6 +122,12 @@ export async function getUsageStats(options) {
|
|
|
90
122
|
if (entry.repo) {
|
|
91
123
|
repoMap.set(entry.repo, (repoMap.get(entry.repo) ?? 0) + 1);
|
|
92
124
|
}
|
|
125
|
+
// Host stats (loadEntries guarantees a host on every entry)
|
|
126
|
+
const hostKey = entry.host ?? "unknown";
|
|
127
|
+
const hostStats = hostMap.get(hostKey) ?? { calls: 0, tokens: 0 };
|
|
128
|
+
hostStats.calls += 1;
|
|
129
|
+
hostStats.tokens += entry.result_tokens;
|
|
130
|
+
hostMap.set(hostKey, hostStats);
|
|
93
131
|
// Sessions
|
|
94
132
|
sessionSet.add(entry.session_id);
|
|
95
133
|
// Daily
|
|
@@ -134,6 +172,9 @@ export async function getUsageStats(options) {
|
|
|
134
172
|
.map(([repo, call_count]) => ({ repo, call_count }))
|
|
135
173
|
.sort((a, b) => b.call_count - a.call_count)
|
|
136
174
|
.slice(0, 20);
|
|
175
|
+
const hosts = [...hostMap.entries()]
|
|
176
|
+
.map(([host, stats]) => ({ host, call_count: stats.calls, total_tokens: stats.tokens }))
|
|
177
|
+
.sort((a, b) => b.call_count - a.call_count);
|
|
137
178
|
const daily = [...dailyMap.entries()]
|
|
138
179
|
.map(([date, stats]) => ({
|
|
139
180
|
date,
|
|
@@ -155,6 +196,7 @@ export async function getUsageStats(options) {
|
|
|
155
196
|
avg_calls_per_session: Math.round((entries.length / totalSessions) * 10) / 10,
|
|
156
197
|
tools,
|
|
157
198
|
top_repos,
|
|
199
|
+
hosts,
|
|
158
200
|
daily,
|
|
159
201
|
query_types,
|
|
160
202
|
earliest_ts: earliest,
|
|
@@ -214,6 +256,14 @@ export function formatUsageReport(stats) {
|
|
|
214
256
|
}
|
|
215
257
|
lines.push("");
|
|
216
258
|
}
|
|
259
|
+
// Hosts — only worth showing once logs from more than one machine are merged
|
|
260
|
+
if (stats.hosts.length > 1) {
|
|
261
|
+
lines.push("--- Hosts ---");
|
|
262
|
+
for (const h of stats.hosts) {
|
|
263
|
+
lines.push(` ${h.host}: ${h.call_count} calls, ${h.total_tokens} tokens`);
|
|
264
|
+
}
|
|
265
|
+
lines.push("");
|
|
266
|
+
}
|
|
217
267
|
// Daily breakdown (last 14 days max)
|
|
218
268
|
if (stats.daily.length > 0) {
|
|
219
269
|
lines.push("--- Daily Usage ---");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage-stats.js","sourceRoot":"","sources":["../../src/storage/usage-stats.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"usage-stats.js","sourceRoot":"","sources":["../../src/storage/usage-stats.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,20 +4,39 @@ export interface UsageEntry {
|
|
|
4
4
|
repo: string;
|
|
5
5
|
args_summary: Record<string, unknown>;
|
|
6
6
|
elapsed_ms: number;
|
|
7
|
+
/** Estimated tokens of the RAW handler result (pre-shortening). */
|
|
7
8
|
result_tokens: number;
|
|
8
9
|
result_chunks: number;
|
|
9
10
|
session_id: string;
|
|
11
|
+
/** Machine that produced the entry (os.hostname() or CODESIFT_HOST_TAG).
|
|
12
|
+
* Lets stats split local vs remote once logs are merged. Absent in
|
|
13
|
+
* pre-multi-host entries — readers treat those as the local host. */
|
|
14
|
+
host?: string;
|
|
15
|
+
/** Estimated tokens actually sent after the progressive-shortening
|
|
16
|
+
* cascade + response hints. Present only when it differs from
|
|
17
|
+
* result_tokens — so cascade effectiveness is measurable. */
|
|
18
|
+
result_tokens_sent?: number;
|
|
19
|
+
/** True when the handler threw — the logged result is the error message. */
|
|
20
|
+
error?: boolean;
|
|
10
21
|
}
|
|
11
22
|
export declare function getUsagePath(): string;
|
|
23
|
+
/**
|
|
24
|
+
* Directory holding usage logs synced from other machines (one .jsonl per
|
|
25
|
+
* host, e.g. usage-remote/vps.jsonl pulled via rsync/cron). Stats readers
|
|
26
|
+
* merge these with the local log; the filename stem doubles as the host tag
|
|
27
|
+
* for pre-multi-host entries that lack a `host` field.
|
|
28
|
+
*/
|
|
29
|
+
export declare function getRemoteUsageDir(): string;
|
|
30
|
+
/** Host tag stamped on entries written by this process. */
|
|
31
|
+
export declare function getLocalHostTag(): string;
|
|
32
|
+
/** Per-tool field extraction schema: [key, expectedType] pairs.
|
|
33
|
+
* Exported for testing — assert a tool is absent to confirm telemetry blacklisting. */
|
|
34
|
+
export declare const TOOL_ARG_FIELDS: Record<string, Array<[string, "string" | "number" | "boolean"]>>;
|
|
12
35
|
/**
|
|
13
36
|
* Build a lightweight args summary for a given tool call.
|
|
14
37
|
* Extracts only the small, useful fields — never full source or query results.
|
|
15
38
|
*/
|
|
16
39
|
export declare function buildArgsSummary(tool: string, args: Record<string, unknown>): Record<string, unknown>;
|
|
17
|
-
/**
|
|
18
|
-
* Estimate the number of discrete result items (chunks, symbols, files, etc.)
|
|
19
|
-
* from the tool result object.
|
|
20
|
-
*/
|
|
21
40
|
export declare function extractResultChunks(data: unknown): number;
|
|
22
41
|
export declare function getCumulativeSavings(): number;
|
|
23
42
|
export declare function addSavings(tokens: number): void;
|
|
@@ -30,7 +49,12 @@ export declare function trackUsage(entry: UsageEntry): Promise<void>;
|
|
|
30
49
|
* High-level helper: track a completed tool call.
|
|
31
50
|
* Called at the end of each tool handler after the result is computed.
|
|
32
51
|
*/
|
|
33
|
-
export declare function trackToolCall(tool: string, args: Record<string, unknown>, resultText: string, resultData: unknown, elapsedMs: number
|
|
52
|
+
export declare function trackToolCall(tool: string, args: Record<string, unknown>, resultText: string, resultData: unknown, elapsedMs: number, extra?: {
|
|
53
|
+
/** Char length of the response actually sent (post-cascade, with hints). */
|
|
54
|
+
sentChars?: number;
|
|
55
|
+
/** The handler threw — resultText is the error message. */
|
|
56
|
+
error?: boolean;
|
|
57
|
+
}): void;
|
|
34
58
|
/**
|
|
35
59
|
* Get the current session ID (for testing or display).
|
|
36
60
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage-tracker.d.ts","sourceRoot":"","sources":["../../src/storage/usage-tracker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"usage-tracker.d.ts","sourceRoot":"","sources":["../../src/storage/usage-tracker.ts"],"names":[],"mappings":"AAoBA,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB;;yEAEqE;IACrE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;iEAE6D;IAC7D,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,4EAA4E;IAC5E,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAMD,wBAAgB,YAAY,IAAI,MAAM,CAGrC;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAG1C;AAED,2DAA2D;AAC3D,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAMD;uFACuF;AACvF,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC,CAAC,CAqB5F,CAAC;AAEF;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA+BzB;AAaD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CA+BzD;AAQD,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAE/C;AAID;;;GAGG;AACH,wBAAsB,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBjE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,OAAO,EACnB,SAAS,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE;IACN,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,GACA,IAAI,CAmBN;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC"}
|