@nodesify/astria 1.2.0 → 1.4.0
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 +45 -3
- package/dist/commands/hook-guard.d.ts +20 -0
- package/dist/commands/hook-guard.d.ts.map +1 -1
- package/dist/commands/hook-guard.js +301 -6
- package/dist/commands/hook-guard.js.map +1 -1
- package/dist/commands/hook.js +1 -1
- package/dist/commands/hook.js.map +1 -1
- package/dist/commands/query.d.ts +1 -0
- package/dist/commands/query.d.ts.map +1 -1
- package/dist/commands/query.js +5 -1
- package/dist/commands/query.js.map +1 -1
- package/dist/commands/stats.d.ts.map +1 -1
- package/dist/commands/stats.js +6 -0
- package/dist/commands/stats.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/install/hooks.d.ts.map +1 -1
- package/dist/install/hooks.js +42 -9
- package/dist/install/hooks.js.map +1 -1
- package/package.json +9 -9
- package/skills/skill.md +19 -3
package/README.md
CHANGED
|
@@ -2,6 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
Turn any folder into a queryable knowledge graph.
|
|
4
4
|
|
|
5
|
+
## Measured results (October 2026, release candidate)
|
|
6
|
+
|
|
7
|
+
Head-to-head against the original Python [Graphify](https://github.com/safishamsi/graphify) on identical corpora, pinned commits, one shared `o200k_base` tokenizer — structural pipeline only, no LLM:
|
|
8
|
+
|
|
9
|
+
| Measurement | astria | Graphify |
|
|
10
|
+
|---|---|---|
|
|
11
|
+
| Token reduction (17 MB corpus, 4.59M tokens) | **2,875×** | 2,575× |
|
|
12
|
+
| Avg tokens per answer (same questions, same budget) | **1,597** | 1,783 |
|
|
13
|
+
| Retrieval suites won or tied (file recall@5, 10 held-out/frozen suites) | **10 / 10** | — |
|
|
14
|
+
| Exact-declaration recall@5 | **40–100%** | ~0% |
|
|
15
|
+
| Over-budget answers | **0** | 6 of 10 suites |
|
|
16
|
+
| LoCoMo conversational-memory recall@5 (full 1,977-question set) | **83.6%** | — |
|
|
17
|
+
|
|
18
|
+
Self-corpus retrieval gate: hit@5 0.800, recall@5 0.743, zero failures, zero budget violations. Version-over-version performance (v1.2.0 → candidate): no regressions; queries 9–22% faster, explain 37% faster. Full methodology, tables, and reproduction commands: [Benchmarks and evidence](https://nodesify.github.io/astria/docs/explanation/benchmarks) and [RESULTS-2026-10-16.md](https://github.com/Nodesify/astria/blob/develop/RESULTS-2026-10-16.md).
|
|
19
|
+
|
|
5
20
|
## Install
|
|
6
21
|
|
|
7
22
|
```bash
|
|
@@ -17,15 +32,17 @@ astria run <path> # Full pipeline: detect → extract
|
|
|
17
32
|
astria update <path> # Reuse cached extraction; reconcile current corpus
|
|
18
33
|
astria watch <path> [--debounce 3000] # Watch for file changes, auto-rebuild
|
|
19
34
|
astria explain <node> [--graph .] # Explain a node and its connections
|
|
20
|
-
astria query <question> [--dfs] [--depth 2] [--budget 2000] [--graph .] # BFS/DFS traversal
|
|
35
|
+
astria query <question> [--seed <symbol>]... [--dfs] [--depth 2] [--budget 2000] [--graph .] # BFS/DFS traversal from explicit symbols
|
|
21
36
|
astria path <A> <B> [--graph .] # Shortest path between two concepts
|
|
22
|
-
astria stats [--graph .] # Node/edge/community counts
|
|
37
|
+
astria stats [--graph .] # Node/edge/community counts + extraction completeness
|
|
38
|
+
astria save-result <question> [--answer <text>|--answer-file <path>] [--outcome useful|dead_end|corrected] [--correction <text>] [--nodes <ids>] # Curate a memory
|
|
39
|
+
astria reflect [--graph .] # Aggregate memories into actionable LESSONS.md
|
|
23
40
|
astria export [--graph .] [--out graph.json] [--format json|html|graphml] [--mode standard|large] # Export graph; HTML defaults to standard
|
|
24
41
|
astria merge <pathA> <pathB> <outPath> # Merge two graphs
|
|
25
42
|
astria diff <pathA> <pathB> # Compare two graphs
|
|
26
43
|
astria history [--limit 20] [--graph .] # Show recent query history
|
|
27
44
|
astria install [--platform claude] # Install skill files for AI coding assistants
|
|
28
|
-
astria hook install # Install git post-commit/post-checkout hooks
|
|
45
|
+
astria hook install # Install git post-commit/post-checkout/post-merge hooks
|
|
29
46
|
```
|
|
30
47
|
|
|
31
48
|
Running `astria run .` creates `.astria/` with:
|
|
@@ -33,15 +50,40 @@ Running `astria run .` creates `.astria/` with:
|
|
|
33
50
|
- `db.sqlite` — the graph database
|
|
34
51
|
- `graph.json` — full graph export
|
|
35
52
|
- `graph_report.md` — report with hub nodes, communities, surprising connections
|
|
53
|
+
- `memory/` + `reflections/LESSONS.md` — the curated memory loop (see below)
|
|
54
|
+
|
|
55
|
+
### Explicit query seeds
|
|
56
|
+
|
|
57
|
+
`astria query "..." --seed <symbol>` (repeatable; also a `seeds` argument on the MCP `query_graph` tool) anchors the traversal at known symbols instead of keyword ranking — node id, label, bare name, or a unique source path all resolve. Unresolved seeds are reported (`unresolvedSeeds` in JSON, a header line in text), and when every supplied seed fails to resolve the query returns an explicit miss rather than silently falling back to keyword search.
|
|
36
58
|
|
|
37
59
|
### Retrieval and upgrades
|
|
38
60
|
|
|
39
61
|
Scoped code definitions survive semantic deduplication. JS/TS assigned functions retain binding names and bodies; Python implementations take precedence over overload declarations. Queries favor complete identifiers while honoring explicit requests for tests or documentation. Static receiver matching does not infer runtime types or aliases.
|
|
40
62
|
|
|
63
|
+
TypeScript member calls resolve through declared types — constructor parameter properties, typed fields, locals, and `new` initializers — including inherited members; ambiguous receivers stay unresolved, and these bindings are name/type-derived (`RESOLVED`), never compiler-proven. Interfaces are extracted with their members and dispatch to every implementing class via `dispatch` edges, marked INFERRED: possible implementations, not proven runtime calls. Member calls whose receiver type is known but whose member lives in another repository retain `receiver::type::<T>::<m>` evidence that the cross-repo global resolver links on a unique name+member match.
|
|
64
|
+
|
|
41
65
|
`query --budget N` caps the full query text using `o200k_base`, including metadata. CLI and MCP share that text budget; MCP transport JSON is excluded. Budgets must fit metadata and the next complete record or the query returns an error. Use the returned `--cursor N` for the next page of node and edge records.
|
|
42
66
|
|
|
67
|
+
Extraction completeness is tracked per file — complete, partial (with the first parser-error lines), unsupported, skipped, or suspicious-empty — and surfaced by `astria stats`, `astria diagnose`, and the MCP `graph_stats` tool, so a missing relationship is distinguishable from an incompletely-understood file. Community detection weights edges by their stored evidence (EXTRACTED > RESOLVED > INFERRED > SEMANTIC) so weak links cannot outvote strong structure, and query-usage `learned` edges never shape module boundaries.
|
|
68
|
+
|
|
43
69
|
After upgrading, run `astria update .` to refresh extraction and restore definitions removed by older deduplication. Discard old pagination cursors after an upgrade or graph rebuild.
|
|
44
70
|
|
|
71
|
+
### Project configuration (`.astria.toml`)
|
|
72
|
+
|
|
73
|
+
```toml
|
|
74
|
+
[languages]
|
|
75
|
+
".inc" = "PHP" # remap an ambiguous suffix to a registered language
|
|
76
|
+
".tpl" = "TypeScript"
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Remapped suffixes flow consistently through discovery, parser selection, watch, and cache identity; invalid entries warn and are skipped, and changing a mapping re-extracts exactly the affected files.
|
|
80
|
+
|
|
81
|
+
### Memory loop: save-result and reflect
|
|
82
|
+
|
|
83
|
+
`astria save-result` records a Q/A verdict (useful / dead_end / corrected, optionally a correction and cited node ids) into `.astria/memory/`. `astria reflect` aggregates those memories into `.astria/reflections/LESSONS.md` as actionable output: preferred sources (corroborated by multiple useful memories, most recent first), corrections to apply, known dead ends, contested evidence, and tentative findings awaiting verification — with citations of deleted nodes discarded automatically.
|
|
84
|
+
|
|
85
|
+
Verdicts also gate the learned-edge loop: a node pair promoted from repeated queries must be backed by at least one question that was not judged a dead end or correction, so repeated unsuccessful exploration never becomes an authoritative edge. Lessons stay experiential — they never merge into the structural graph facts.
|
|
86
|
+
|
|
45
87
|
### HTML visualization modes
|
|
46
88
|
|
|
47
89
|
HTML export defaults to `--mode standard`, matching the original Graphify viewer's 5,000-node safety limit. Graphs above that limit require an explicit large-graph export:
|
|
@@ -1,2 +1,22 @@
|
|
|
1
|
+
export interface SymbolEntry {
|
|
2
|
+
/** Node id. */
|
|
3
|
+
i: string;
|
|
4
|
+
/** Display label, e.g. `hookGuard()`. */
|
|
5
|
+
l: string;
|
|
6
|
+
/** Source file as stored in the graph (absolute, forward slashes). */
|
|
7
|
+
f: string;
|
|
8
|
+
/** Source line. */
|
|
9
|
+
n: number;
|
|
10
|
+
/** Graph degree (edge endpoint count) — used to rank hubs first. */
|
|
11
|
+
d: number;
|
|
12
|
+
}
|
|
13
|
+
export declare function symbolIndex(gdir: string): SymbolEntry[] | null;
|
|
14
|
+
export declare function contextAlreadyEmitted(gdir: string, key: string, ttlSeconds: number): boolean;
|
|
15
|
+
export declare function markContextEmitted(gdir: string, key: string, ttlSeconds: number): void;
|
|
16
|
+
export declare function extractSearchPattern(command: string): string | null;
|
|
17
|
+
export declare function matchSymbols(index: SymbolEntry[], pattern: string, limit: number): SymbolEntry[];
|
|
18
|
+
export declare function symbolsInFile(index: SymbolEntry[], root: string, absPath: string): SymbolEntry[];
|
|
19
|
+
export declare function displayPath(root: string, f: string): string;
|
|
20
|
+
export declare function formatSymbolList(entries: SymbolEntry[], root: string, limit: number): string;
|
|
1
21
|
export declare function hookGuard(mode: string, _args: string[]): void;
|
|
2
22
|
//# sourceMappingURL=hook-guard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-guard.d.ts","sourceRoot":"","sources":["../../src/commands/hook-guard.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hook-guard.d.ts","sourceRoot":"","sources":["../../src/commands/hook-guard.ts"],"names":[],"mappings":"AAkBA,MAAM,WAAW,WAAW;IAC1B,eAAe;IACf,CAAC,EAAE,MAAM,CAAC;IACV,yCAAyC;IACzC,CAAC,EAAE,MAAM,CAAC;IACV,sEAAsE;IACtE,CAAC,EAAE,MAAM,CAAC;IACV,mBAAmB;IACnB,CAAC,EAAE,MAAM,CAAC;IACV,oEAAoE;IACpE,CAAC,EAAE,MAAM,CAAC;CACX;AAiGD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,GAAG,IAAI,CAkD9D;AAUD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAQ5F;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAsBtF;AAYD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAyBnE;AAKD,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,EAAE,CAwBhG;AAMD,wBAAgB,aAAa,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE,CAahG;AAID,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAK3D;AAcD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAM5F;AAOD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAgI7D"}
|
|
@@ -2,18 +2,42 @@
|
|
|
2
2
|
// hook-guard: editor PreToolUse guards (port of upstream hook-guard). Reads
|
|
3
3
|
// the tool-call JSON from stdin, nudges agents toward graph queries, and —
|
|
4
4
|
// in strict mode — denies ONE un-indexed read per session until the agent
|
|
5
|
-
// orients via query/explain/path.
|
|
6
|
-
//
|
|
5
|
+
// orients via query/explain/path. When the graph offers concrete evidence
|
|
6
|
+
// (symbols matching the search pattern, or symbols defined in the file
|
|
7
|
+
// being read), the generic nudge is replaced with those symbols, their
|
|
8
|
+
// file:line locations, and a ready-to-run command. Fails open on any
|
|
9
|
+
// error: a wedged guard must never break a tool call.
|
|
7
10
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.symbolIndex = symbolIndex;
|
|
12
|
+
exports.contextAlreadyEmitted = contextAlreadyEmitted;
|
|
13
|
+
exports.markContextEmitted = markContextEmitted;
|
|
14
|
+
exports.extractSearchPattern = extractSearchPattern;
|
|
15
|
+
exports.matchSymbols = matchSymbols;
|
|
16
|
+
exports.symbolsInFile = symbolsInFile;
|
|
17
|
+
exports.displayPath = displayPath;
|
|
18
|
+
exports.formatSymbolList = formatSymbolList;
|
|
8
19
|
exports.hookGuard = hookGuard;
|
|
9
20
|
const fs_1 = require("fs");
|
|
10
21
|
const path_1 = require("path");
|
|
22
|
+
const atomic_1 = require("../install/atomic");
|
|
11
23
|
const SOURCE_EXTS = new Set([
|
|
12
24
|
'.py', '.ts', '.tsx', '.js', '.jsx', '.rs', '.go', '.java', '.c', '.cpp',
|
|
13
25
|
'.h', '.hpp', '.rb', '.php', '.swift', '.kt', '.scala', '.cs', '.lua',
|
|
14
26
|
'.ex', '.exs', '.hs', '.sh', '.dart', '.zig', '.md', '.toml', '.yaml', '.yml',
|
|
15
27
|
]);
|
|
16
28
|
const SEARCH_COMMANDS = new Set(['grep', 'rg', 'ag', 'git']);
|
|
29
|
+
const SEARCH_TOOLS = new Set(['grep', 'rg', 'ag']);
|
|
30
|
+
// Contextual-guidance bounds: at most this many symbols per nudge, each
|
|
31
|
+
// nudge repeated at most once per key within the TTL, and the underlying
|
|
32
|
+
// graph.json parse refused beyond this size (a 20 MB graph parses in
|
|
33
|
+
// ~120 ms once; the derived index then serves every later call).
|
|
34
|
+
const CONTEXT_SYMBOL_LIMIT = 5;
|
|
35
|
+
const CONTEXT_DEFAULT_TTL_SECONDS = 1800;
|
|
36
|
+
const CONTEXT_MAX_GRAPH_BYTES = 200 * 1024 * 1024;
|
|
37
|
+
// Index cap for pathological repos: keeping the highest-degree symbols
|
|
38
|
+
// bounds the per-tool-call index parse to a few milliseconds.
|
|
39
|
+
const CONTEXT_MAX_INDEX_SYMBOLS = 50_000;
|
|
40
|
+
const CONTEXT_MESSAGE_LIMIT = 1200;
|
|
17
41
|
function readStdinJson() {
|
|
18
42
|
try {
|
|
19
43
|
const raw = (0, fs_1.readFileSync)(0, 'utf-8');
|
|
@@ -23,9 +47,11 @@ function readStdinJson() {
|
|
|
23
47
|
return null;
|
|
24
48
|
}
|
|
25
49
|
}
|
|
50
|
+
function projectRootDir() {
|
|
51
|
+
return process.env.CLAUDE_PROJECT_DIR || process.cwd();
|
|
52
|
+
}
|
|
26
53
|
function graphDir() {
|
|
27
|
-
const
|
|
28
|
-
const g = (0, path_1.join)(cwd, '.astria');
|
|
54
|
+
const g = (0, path_1.join)(projectRootDir(), '.astria');
|
|
29
55
|
return (0, fs_1.existsSync)((0, path_1.join)(g, 'graph.json')) ? g : null;
|
|
30
56
|
}
|
|
31
57
|
/// Reads `ASTRIA_<name>`, falling back to the deprecated `GRAPHIFY_<name>`.
|
|
@@ -63,6 +89,234 @@ function emitDeny(reason) {
|
|
|
63
89
|
},
|
|
64
90
|
}));
|
|
65
91
|
}
|
|
92
|
+
// ---- contextual guidance: symbol index ----
|
|
93
|
+
function indexCachePath(gdir) {
|
|
94
|
+
return (0, path_1.join)(gdir, 'cache', 'hook-index.json');
|
|
95
|
+
}
|
|
96
|
+
/// Compact symbol index derived from graph.json: only located code/test
|
|
97
|
+
/// symbols make useful guidance, and a ~250 KB cache file parses in a few
|
|
98
|
+
/// milliseconds where the full 20+ MB graph takes ~100+. Rebuilt whenever
|
|
99
|
+
/// the graph is newer than the index. Any failure yields null and callers
|
|
100
|
+
/// fall back to the generic nudge (fail-open).
|
|
101
|
+
function symbolIndex(gdir) {
|
|
102
|
+
try {
|
|
103
|
+
const graphPath = (0, path_1.join)(gdir, 'graph.json');
|
|
104
|
+
const cachePath = indexCachePath(gdir);
|
|
105
|
+
// No existsSync probes: reads go through try/catch so a file removed
|
|
106
|
+
// between check and use is just a miss (and the checker sees no
|
|
107
|
+
// check-then-use race).
|
|
108
|
+
try {
|
|
109
|
+
const cached = JSON.parse((0, fs_1.readFileSync)(cachePath, 'utf8'));
|
|
110
|
+
if (cached && Array.isArray(cached.symbols) && (0, fs_1.statSync)(cachePath).mtimeMs >= (0, fs_1.statSync)(graphPath).mtimeMs) {
|
|
111
|
+
return cached.symbols;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
catch {
|
|
115
|
+
// Missing or corrupt cache — fall through to a rebuild.
|
|
116
|
+
}
|
|
117
|
+
// Single read, then size-check the bytes: no existsSync/stat race, and
|
|
118
|
+
// oversized graphs are rejected before JSON parsing burns memory.
|
|
119
|
+
const graphBytes = (0, fs_1.readFileSync)(graphPath);
|
|
120
|
+
if (graphBytes.byteLength > CONTEXT_MAX_GRAPH_BYTES)
|
|
121
|
+
return null;
|
|
122
|
+
const raw = JSON.parse(graphBytes.toString('utf8'));
|
|
123
|
+
const degree = new Map();
|
|
124
|
+
for (const e of raw.edges || []) {
|
|
125
|
+
degree.set(e.source, (degree.get(e.source) || 0) + 1);
|
|
126
|
+
degree.set(e.target, (degree.get(e.target) || 0) + 1);
|
|
127
|
+
}
|
|
128
|
+
const symbols = [];
|
|
129
|
+
for (const node of raw.nodes || []) {
|
|
130
|
+
if (!node.source_file || typeof node.source_line !== 'number')
|
|
131
|
+
continue;
|
|
132
|
+
if (node.file_type !== 'code' && node.file_type !== 'test')
|
|
133
|
+
continue;
|
|
134
|
+
const label = typeof node.label === 'string' ? node.label : '';
|
|
135
|
+
// Anonymous closures and yaml/document chunks read as noise, and file
|
|
136
|
+
// nodes (no '::' in the id) have no location their label doesn't show.
|
|
137
|
+
if (!label || label.startsWith('{') || !String(node.id || '').includes('::'))
|
|
138
|
+
continue;
|
|
139
|
+
symbols.push({ i: node.id, l: label, f: node.source_file, n: node.source_line, d: degree.get(node.id) || 0 });
|
|
140
|
+
}
|
|
141
|
+
if (symbols.length > CONTEXT_MAX_INDEX_SYMBOLS) {
|
|
142
|
+
symbols.sort((a, b) => b.d - a.d || (a.i < b.i ? -1 : 1));
|
|
143
|
+
symbols.length = CONTEXT_MAX_INDEX_SYMBOLS;
|
|
144
|
+
}
|
|
145
|
+
try {
|
|
146
|
+
(0, fs_1.mkdirSync)((0, path_1.join)(gdir, 'cache'), { recursive: true });
|
|
147
|
+
(0, atomic_1.writeTextAtomic)(cachePath, JSON.stringify({ v: 1, symbols }));
|
|
148
|
+
}
|
|
149
|
+
catch {
|
|
150
|
+
// The cache write is best-effort; the in-memory index still serves.
|
|
151
|
+
}
|
|
152
|
+
return symbols;
|
|
153
|
+
}
|
|
154
|
+
catch {
|
|
155
|
+
return null;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
// ---- contextual guidance: once-per-key emission ----
|
|
159
|
+
function contextStatePath(gdir) {
|
|
160
|
+
return (0, path_1.join)(gdir, 'cache', 'hook-context-emitted.json');
|
|
161
|
+
}
|
|
162
|
+
/// One contextual nudge per key (search pattern or file) per TTL — the same
|
|
163
|
+
/// evidence repeated on every tool call is noise, not guidance.
|
|
164
|
+
function contextAlreadyEmitted(gdir, key, ttlSeconds) {
|
|
165
|
+
try {
|
|
166
|
+
const state = JSON.parse((0, fs_1.readFileSync)(contextStatePath(gdir), 'utf8'));
|
|
167
|
+
const ts = Number(state[key]);
|
|
168
|
+
return Number.isFinite(ts) && Date.now() / 1000 - ts < ttlSeconds;
|
|
169
|
+
}
|
|
170
|
+
catch {
|
|
171
|
+
return false;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
function markContextEmitted(gdir, key, ttlSeconds) {
|
|
175
|
+
try {
|
|
176
|
+
let state = {};
|
|
177
|
+
try {
|
|
178
|
+
state = JSON.parse((0, fs_1.readFileSync)(contextStatePath(gdir), 'utf8'));
|
|
179
|
+
}
|
|
180
|
+
catch {
|
|
181
|
+
// Fresh state file.
|
|
182
|
+
}
|
|
183
|
+
const cutoff = Date.now() / 1000 - ttlSeconds * 2;
|
|
184
|
+
for (const k of Object.keys(state)) {
|
|
185
|
+
if (!Number.isFinite(state[k]) || state[k] < cutoff)
|
|
186
|
+
delete state[k];
|
|
187
|
+
}
|
|
188
|
+
state[key] = Date.now() / 1000;
|
|
189
|
+
const keys = Object.keys(state);
|
|
190
|
+
if (keys.length > 500) {
|
|
191
|
+
for (const k of keys.slice(0, keys.length - 500))
|
|
192
|
+
delete state[k];
|
|
193
|
+
}
|
|
194
|
+
(0, fs_1.mkdirSync)((0, path_1.join)(gdir, 'cache'), { recursive: true });
|
|
195
|
+
(0, atomic_1.writeTextAtomic)(contextStatePath(gdir), JSON.stringify(state));
|
|
196
|
+
}
|
|
197
|
+
catch {
|
|
198
|
+
// Dedupe bookkeeping is best-effort; worst case the nudge repeats.
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
// ---- contextual guidance: matching and formatting ----
|
|
202
|
+
function normalizeForMatch(p) {
|
|
203
|
+
return p.replace(/\\/g, '/').toLowerCase();
|
|
204
|
+
}
|
|
205
|
+
/// Best-effort pattern extraction from a search command line: grep/rg/ag
|
|
206
|
+
/// take the first non-option argument as the pattern, `git grep` the first
|
|
207
|
+
/// after the subcommand. Quoted patterns are rejoined. Returns null when
|
|
208
|
+
/// nothing recognizable remains — callers then keep the generic nudge.
|
|
209
|
+
function extractSearchPattern(command) {
|
|
210
|
+
const tokens = command.trim().split(/\s+/).filter(Boolean);
|
|
211
|
+
if (tokens[0] === 'git') {
|
|
212
|
+
const grepIdx = tokens.indexOf('grep');
|
|
213
|
+
if (grepIdx === -1)
|
|
214
|
+
return null;
|
|
215
|
+
tokens.splice(0, grepIdx + 1);
|
|
216
|
+
}
|
|
217
|
+
else if (SEARCH_TOOLS.has(tokens[0])) {
|
|
218
|
+
tokens.shift();
|
|
219
|
+
}
|
|
220
|
+
else {
|
|
221
|
+
return null;
|
|
222
|
+
}
|
|
223
|
+
const idx = tokens.findIndex((t) => !t.startsWith('-'));
|
|
224
|
+
if (idx === -1)
|
|
225
|
+
return null;
|
|
226
|
+
let pattern = tokens[idx];
|
|
227
|
+
const quote = pattern[0];
|
|
228
|
+
if ((quote === '"' || quote === "'") && !pattern.endsWith(quote)) {
|
|
229
|
+
const parts = [pattern];
|
|
230
|
+
for (let j = idx + 1; j < tokens.length; j++) {
|
|
231
|
+
parts.push(tokens[j]);
|
|
232
|
+
if (tokens[j].endsWith(quote))
|
|
233
|
+
break;
|
|
234
|
+
}
|
|
235
|
+
pattern = parts.join(' ');
|
|
236
|
+
}
|
|
237
|
+
if (quote === '"' || quote === "'")
|
|
238
|
+
pattern = pattern.slice(1, -1);
|
|
239
|
+
return pattern || null;
|
|
240
|
+
}
|
|
241
|
+
/// Ranks symbols against a search pattern: exact label beats prefix beats
|
|
242
|
+
/// substring beats a shared identifier token; graph degree breaks ties so
|
|
243
|
+
/// the real `foo()` outranks a same-named test helper.
|
|
244
|
+
function matchSymbols(index, pattern, limit) {
|
|
245
|
+
const needle = pattern.toLowerCase();
|
|
246
|
+
const tokens = needle.match(/[a-z_][a-z0-9_]{2,}/g) || [];
|
|
247
|
+
const scored = [];
|
|
248
|
+
for (const e of index) {
|
|
249
|
+
const l = e.l.toLowerCase();
|
|
250
|
+
let s = 0;
|
|
251
|
+
if (l === needle)
|
|
252
|
+
s = 4;
|
|
253
|
+
else if (l.startsWith(needle))
|
|
254
|
+
s = 3;
|
|
255
|
+
else if (l.includes(needle))
|
|
256
|
+
s = 2;
|
|
257
|
+
else {
|
|
258
|
+
for (const t of tokens) {
|
|
259
|
+
if (l.includes(t)) {
|
|
260
|
+
s = 1;
|
|
261
|
+
break;
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
if (s > 0)
|
|
266
|
+
scored.push({ e, s });
|
|
267
|
+
}
|
|
268
|
+
scored.sort((a, b) => b.s - a.s || b.e.d - a.e.d || a.e.l.length - b.e.l.length || (a.e.i < b.e.i ? -1 : 1));
|
|
269
|
+
return scored.slice(0, limit).map((x) => x.e);
|
|
270
|
+
}
|
|
271
|
+
/// Symbols defined in the file being read. Paths are compared normalized
|
|
272
|
+
/// (the graph stores absolute forward-slash paths; reads arrive in the
|
|
273
|
+
/// host's native shape), with a defensive relative-path branch for graphs
|
|
274
|
+
/// built before absolute loci.
|
|
275
|
+
function symbolsInFile(index, root, absPath) {
|
|
276
|
+
const target = normalizeForMatch(absPath);
|
|
277
|
+
const rootNorm = normalizeForMatch(root);
|
|
278
|
+
const hits = index.filter((e) => {
|
|
279
|
+
const f = normalizeForMatch(e.f);
|
|
280
|
+
if (f === target)
|
|
281
|
+
return true;
|
|
282
|
+
if (!f.startsWith('/') && !/^[a-z]:/.test(f)) {
|
|
283
|
+
return rootNorm && normalizeForMatch((0, path_1.join)(root, e.f)) === target;
|
|
284
|
+
}
|
|
285
|
+
return false;
|
|
286
|
+
});
|
|
287
|
+
hits.sort((a, b) => b.d - a.d || a.n - b.n || (a.i < b.i ? -1 : 1));
|
|
288
|
+
return hits;
|
|
289
|
+
}
|
|
290
|
+
/// Repo-relative display path (falls back to the stored path when the
|
|
291
|
+
/// prefix does not match, e.g. for graphs built elsewhere).
|
|
292
|
+
function displayPath(root, f) {
|
|
293
|
+
const fn = normalizeForMatch(f);
|
|
294
|
+
const rootNorm = normalizeForMatch(root);
|
|
295
|
+
if (rootNorm && fn.startsWith(rootNorm + '/'))
|
|
296
|
+
return f.slice(rootNorm.length + 1);
|
|
297
|
+
return f;
|
|
298
|
+
}
|
|
299
|
+
function truncateLabel(label) {
|
|
300
|
+
return label.length > 48 ? label.slice(0, 45) + '…' : label;
|
|
301
|
+
}
|
|
302
|
+
/// Suggested commands are embedded in double quotes; strip characters that
|
|
303
|
+
/// would break out of them. The suggestion is advisory, not executed.
|
|
304
|
+
function suggestable(s) {
|
|
305
|
+
return s.replace(/["`$\\]/g, '');
|
|
306
|
+
}
|
|
307
|
+
/// `label (path:line)` entries for a search nudge; the list shrinks until
|
|
308
|
+
/// the whole message fits the bound.
|
|
309
|
+
function formatSymbolList(entries, root, limit) {
|
|
310
|
+
let parts = entries.map((e) => `${truncateLabel(e.l)} (${displayPath(root, e.f)}:${e.n})`);
|
|
311
|
+
while (parts.length > 1 && parts.join(', ').length > limit) {
|
|
312
|
+
parts = parts.slice(0, -1);
|
|
313
|
+
}
|
|
314
|
+
return parts.join(', ');
|
|
315
|
+
}
|
|
316
|
+
function contextTtlSeconds() {
|
|
317
|
+
const ttl = Number(envVar('HOOK_CONTEXT_TTL'));
|
|
318
|
+
return Number.isFinite(ttl) && ttl >= 0 ? ttl : CONTEXT_DEFAULT_TTL_SECONDS;
|
|
319
|
+
}
|
|
66
320
|
function hookGuard(mode, _args) {
|
|
67
321
|
try {
|
|
68
322
|
if (!mode || mode === 'gemini') {
|
|
@@ -78,6 +332,7 @@ function hookGuard(mode, _args) {
|
|
|
78
332
|
return;
|
|
79
333
|
const strict = envVar('HOOK_STRICT') === '1' ||
|
|
80
334
|
(envVar('HOOK_STRICT') !== '0' && _args.includes('--strict'));
|
|
335
|
+
const contextEnabled = envVar('HOOK_CONTEXT') !== '0';
|
|
81
336
|
if (mode === 'search') {
|
|
82
337
|
const ti = input.tool_input || {};
|
|
83
338
|
const isGrepTool = Boolean(ti.pattern);
|
|
@@ -87,6 +342,24 @@ function hookGuard(mode, _args) {
|
|
|
87
342
|
? cmd.split(/\s+/)[1] === 'grep'
|
|
88
343
|
: SEARCH_COMMANDS.has(first);
|
|
89
344
|
if (isGrepTool || isSearchBash) {
|
|
345
|
+
const pattern = ((ti.pattern || '').trim() || extractSearchPattern(cmd) || '').trim();
|
|
346
|
+
const index = contextEnabled && pattern ? symbolIndex(gdir) : null;
|
|
347
|
+
const hits = index ? matchSymbols(index, pattern, CONTEXT_SYMBOL_LIMIT) : [];
|
|
348
|
+
if (hits.length > 0) {
|
|
349
|
+
const key = 'search:' + pattern.toLowerCase();
|
|
350
|
+
const ttl = contextTtlSeconds();
|
|
351
|
+
if (!contextAlreadyEmitted(gdir, key, ttl)) {
|
|
352
|
+
markContextEmitted(gdir, key, ttl);
|
|
353
|
+
const seed = suggestable(truncateLabel(hits[0].l));
|
|
354
|
+
const needle = suggestable(pattern) || pattern;
|
|
355
|
+
const list = formatSymbolList(hits, projectRootDir(), 700);
|
|
356
|
+
emitNudge(`GRAPH-FIRST: ${hits.length === 1 ? 'a graph symbol already matches' : `${hits.length} graph symbols already match`} ` +
|
|
357
|
+
`"${needle}": ${list}. ` +
|
|
358
|
+
`Try \`astria query --seed "${seed}" "${needle}"\` or \`astria explain "${seed}"\` ` +
|
|
359
|
+
'for structured answers with file:line provenance instead of grep.');
|
|
360
|
+
}
|
|
361
|
+
return;
|
|
362
|
+
}
|
|
90
363
|
emitNudge('MANDATORY: Before searching with grep, check the knowledge graph first: ' +
|
|
91
364
|
'`astria query "<question>"` returns structured answers with ' +
|
|
92
365
|
'file:line provenance in one call. The graph is already built for this repo.');
|
|
@@ -105,8 +378,8 @@ function hookGuard(mode, _args) {
|
|
|
105
378
|
return;
|
|
106
379
|
// Staleness: file newer than the graph?
|
|
107
380
|
try {
|
|
108
|
-
const fileMtime =
|
|
109
|
-
const graphMtime =
|
|
381
|
+
const fileMtime = (0, fs_1.statSync)(resolved).mtimeMs;
|
|
382
|
+
const graphMtime = (0, fs_1.statSync)((0, path_1.join)(gdir, 'db.sqlite')).mtimeMs;
|
|
110
383
|
if (fileMtime > graphMtime) {
|
|
111
384
|
emitNudge(`STALE GRAPH: ${filePath} changed after the last graph build. ` +
|
|
112
385
|
'Run `astria update .` before trusting graph answers.');
|
|
@@ -134,6 +407,28 @@ function hookGuard(mode, _args) {
|
|
|
134
407
|
catch {
|
|
135
408
|
// Marker exists: already denied once this session — allow.
|
|
136
409
|
}
|
|
410
|
+
return;
|
|
411
|
+
}
|
|
412
|
+
// Contextual guidance: name the symbols the graph knows in this file
|
|
413
|
+
// (hub-first) once per file per TTL.
|
|
414
|
+
if (contextEnabled) {
|
|
415
|
+
const index = symbolIndex(gdir);
|
|
416
|
+
const hits = index ? symbolsInFile(index, projectRootDir(), resolved).slice(0, CONTEXT_SYMBOL_LIMIT) : [];
|
|
417
|
+
if (hits.length > 0) {
|
|
418
|
+
const key = 'read:' + normalizeForMatch(resolved);
|
|
419
|
+
const ttl = contextTtlSeconds();
|
|
420
|
+
if (!contextAlreadyEmitted(gdir, key, ttl)) {
|
|
421
|
+
markContextEmitted(gdir, key, ttl);
|
|
422
|
+
const hub = suggestable(truncateLabel(hits[0].l));
|
|
423
|
+
const parts = hits.map((e) => `${truncateLabel(e.l)} (line ${e.n})`);
|
|
424
|
+
while (parts.length > 1 && parts.join(', ').length > 700) {
|
|
425
|
+
parts.length = parts.length - 1;
|
|
426
|
+
}
|
|
427
|
+
emitNudge(`GRAPH CONTEXT: the knowledge graph indexes ${hits.length === 1 ? 'a symbol' : `${hits.length} symbols`} in ` +
|
|
428
|
+
`${displayPath(projectRootDir(), hits[0].f)}: ${parts.join(', ')}. ` +
|
|
429
|
+
`Start with \`astria explain "${hub}"\` for their connections instead of reading line by line.`);
|
|
430
|
+
}
|
|
431
|
+
}
|
|
137
432
|
}
|
|
138
433
|
return;
|
|
139
434
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-guard.js","sourceRoot":"","sources":["../../src/commands/hook-guard.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hook-guard.js","sourceRoot":"","sources":["../../src/commands/hook-guard.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/hook.js
CHANGED
|
@@ -6,7 +6,7 @@ function registerHookCommand(program) {
|
|
|
6
6
|
const hook = program.command('hook').description('Manage git hooks for auto-rebuild');
|
|
7
7
|
hook
|
|
8
8
|
.command('install')
|
|
9
|
-
.description('Install post-commit and post-
|
|
9
|
+
.description('Install post-commit, post-checkout, and post-merge hooks')
|
|
10
10
|
.action(() => {
|
|
11
11
|
try {
|
|
12
12
|
const results = (0, hooks_1.installGitHooks)('.');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook.js","sourceRoot":"","sources":["../../src/commands/hook.ts"],"names":[],"mappings":";;;AACA,4CAAsF;AAEtF,6BAAoC,OAAgB;IAClD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,mCAAmC,CAAC,CAAC;IAEtF,IAAI;SACD,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"hook.js","sourceRoot":"","sources":["../../src/commands/hook.ts"],"names":[],"mappings":";;;AACA,4CAAsF;AAEtF,6BAAoC,OAAgB;IAClD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,mCAAmC,CAAC,CAAC;IAEtF,IAAI;SACD,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,0DAA0D,CAAC;SACvE,MAAM,CAAC,GAAG,EAAE;QACX,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAA,uBAAe,EAAC,GAAG,CAAC,CAAC;YACrC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;gBAC1B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC;YAClC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,IAAI;SACD,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,yBAAyB,CAAC;SACtC,MAAM,CAAC,GAAG,EAAE;QACX,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAA,yBAAiB,EAAC,GAAG,CAAC,CAAC;YACvC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;gBAC1B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC;YAClC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,IAAI;SACD,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,sBAAsB,CAAC;SACnC,MAAM,CAAC,GAAG,EAAE;QACX,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAA,sBAAc,EAAC,GAAG,CAAC,CAAC;YACpC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;gBAC1B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC;YAClC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
package/dist/commands/query.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/commands/query.ts"],"names":[],"mappings":"AAGA,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE;IACzD,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/commands/query.ts"],"names":[],"mappings":"AAGA,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE;IACzD,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,iBA6DA"}
|
package/dist/commands/query.js
CHANGED
|
@@ -16,7 +16,8 @@ async function queryCommand(question, opts) {
|
|
|
16
16
|
// same switch so CLI and MCP callers get identical behavior.
|
|
17
17
|
if (opts.noEmbed)
|
|
18
18
|
process.env.ASTRIA_EMBED = 'off';
|
|
19
|
-
const
|
|
19
|
+
const seeds = (opts.seed ?? []).map((s) => s.trim()).filter((s) => s.length > 0);
|
|
20
|
+
const result = (0, native_1.queryGraph)(opts.graph, question, mode, depth, budget, opts.directed ?? false, opts.detail, cursor, seeds.length > 0 ? seeds : null);
|
|
20
21
|
if (opts.json) {
|
|
21
22
|
console.log(JSON.stringify({
|
|
22
23
|
question,
|
|
@@ -24,6 +25,7 @@ async function queryCommand(question, opts) {
|
|
|
24
25
|
depth,
|
|
25
26
|
budget,
|
|
26
27
|
directed: opts.directed ?? false,
|
|
28
|
+
seeds,
|
|
27
29
|
nodeCount: result.nodeCount,
|
|
28
30
|
edgeCount: result.edgeCount,
|
|
29
31
|
// Present when the node list was truncated; pass back as --cursor.
|
|
@@ -36,6 +38,8 @@ async function queryCommand(question, opts) {
|
|
|
36
38
|
renderedTokens: result.renderedTokens,
|
|
37
39
|
elapsedMilliseconds: result.elapsedMilliseconds,
|
|
38
40
|
snapshotEstimatedBytes: result.snapshotEstimatedBytes,
|
|
41
|
+
unresolvedSeeds: result.unresolvedSeeds ?? [],
|
|
42
|
+
ambiguousSeeds: result.ambiguousSeeds,
|
|
39
43
|
text: result.text,
|
|
40
44
|
}, null, 2));
|
|
41
45
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/commands/query.ts"],"names":[],"mappings":";;;AAAA,sCAAuC;AACvC,0CAAmD;AAE5C,KAAK,uBAAuB,QAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/commands/query.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../src/commands/stats.ts"],"names":[],"mappings":"AAEA,wBAAsB,YAAY,CAAC,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../src/commands/stats.ts"],"names":[],"mappings":"AAEA,wBAAsB,YAAY,CAAC,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,iBA4BzE"}
|
package/dist/commands/stats.js
CHANGED
|
@@ -20,6 +20,12 @@ async function statsCommand(opts) {
|
|
|
20
20
|
.join(' | ');
|
|
21
21
|
if (types)
|
|
22
22
|
console.log(`Node types: ${types}`);
|
|
23
|
+
const extraction = Object.entries((stats.extraction ?? {}))
|
|
24
|
+
.sort((a, b) => b[1] - a[1])
|
|
25
|
+
.map(([s, n]) => `${s}: ${n}`)
|
|
26
|
+
.join(' | ');
|
|
27
|
+
if (extraction)
|
|
28
|
+
console.log(`Extraction completeness: ${extraction}`);
|
|
23
29
|
}
|
|
24
30
|
catch (e) {
|
|
25
31
|
console.error(`Error: ${e.message || e}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stats.js","sourceRoot":"","sources":["../../src/commands/stats.ts"],"names":[],"mappings":";;;AAAA,sCAAuC;AAEhC,KAAK,uBAAuB,IAAuC;IACxE,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CACT,eAAe,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,6BAA6B,EAAE,CACzF,CAAC;QACF,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAA2B,CAAC;aAC7E,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aAC3B,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;aAC7B,IAAI,CAAC,KAAK,CAAC,CAAC;QACf,IAAI,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"stats.js","sourceRoot":"","sources":["../../src/commands/stats.ts"],"names":[],"mappings":";;;AAAA,sCAAuC;AAEhC,KAAK,uBAAuB,IAAuC;IACxE,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CACT,eAAe,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,6BAA6B,EAAE,CACzF,CAAC;QACF,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAA2B,CAAC;aAC7E,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aAC3B,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;aAC7B,IAAI,CAAC,KAAK,CAAC,CAAC;QACf,IAAI,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,EAAE,CAAC,CAAC;QAC/C,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAA2B,CAAC;aAClF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aAC3B,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;aAC7B,IAAI,CAAC,KAAK,CAAC,CAAC;QACf,IAAI,UAAU;YAAE,OAAO,CAAC,GAAG,CAAC,4BAA4B,UAAU,EAAE,CAAC,CAAC;IACxE,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1C,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuCpC,QAAA,MAAM,OAAO,SAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuCpC,QAAA,MAAM,OAAO,SAAgB,CAAC;AA6Z9B,OAAO,EAAE,OAAO,EAAE,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -108,6 +108,7 @@ program
|
|
|
108
108
|
.option('--detail <level>', 'Fidelity tier: "high" keeps only EXTRACTED/DECLARED facts')
|
|
109
109
|
.option('--cursor <n>', 'Continuation token from a previous truncated query', '0')
|
|
110
110
|
.option('--no-embed', 'Skip auto-merged embedding seeds even when the graph has vectors')
|
|
111
|
+
.option('--seed <symbol>', 'Explicit seed node (repeatable): id, label, or source path. The traversal starts from these instead of keyword ranking; unresolved seeds are reported', (value, previous) => [...previous, value], [])
|
|
111
112
|
.option('--json', 'Emit machine-readable JSON')
|
|
112
113
|
.action(query_1.queryCommand);
|
|
113
114
|
program
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/install/hooks.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/install/hooks.ts"],"names":[],"mappings":"AA0HA,QAAA,MAAM,oBAAoB;;;;;;IAGzB,CAAC;AAmNF,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CA4B3D;AAID,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAEhC,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAAkE;AAC/H,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAAoE"}
|
package/dist/install/hooks.js
CHANGED
|
@@ -42,16 +42,18 @@ const path = __importStar(require("path"));
|
|
|
42
42
|
const child_process_1 = require("child_process");
|
|
43
43
|
const atomic_1 = require("./atomic");
|
|
44
44
|
const UPDATE_HELPER = `
|
|
45
|
-
const ASTRIA_HOOK_VERSION = '
|
|
45
|
+
const ASTRIA_HOOK_VERSION = '5';
|
|
46
46
|
// Prefer a workspace-local CLI, then a locally-installed package, and only
|
|
47
47
|
// then whatever is on PATH — a stale global install would rebuild the graph
|
|
48
48
|
// with old pipeline code and silently regress the report.
|
|
49
|
-
// update . accepts --quiet
|
|
49
|
+
// update . accepts --quiet since 1.0.7; older CLIs error on the
|
|
50
50
|
// unknown flags, so each invocation style retries in plain form before
|
|
51
51
|
// moving to the next executable. All failures are swallowed: a hook must
|
|
52
52
|
// never break a commit.
|
|
53
53
|
function runAstriaUpdate() {
|
|
54
|
-
|
|
54
|
+
// Always inspect inputs: a recent graph can still have changed configuration
|
|
55
|
+
// or newly added files outside its previous manifest.
|
|
56
|
+
const flagged = 'update . --quiet';
|
|
55
57
|
const attempts = [
|
|
56
58
|
'node packages/astria-cli/dist/index.js ' + flagged,
|
|
57
59
|
'node packages/astria-cli/dist/index.js update .',
|
|
@@ -91,11 +93,7 @@ try {
|
|
|
91
93
|
const changed = execSync('git diff --name-only HEAD~1 HEAD || git diff --name-only HEAD', { encoding: 'utf-8' }).trim();
|
|
92
94
|
if (!changed) process.exit(0);
|
|
93
95
|
|
|
94
|
-
|
|
95
|
-
const hasCode = changed.split(/\\r?\\n/).some(f => codeExts.has(path.extname(f)));
|
|
96
|
-
if (hasCode && existsSync('.astria')) {
|
|
97
|
-
runAstriaUpdate();
|
|
98
|
-
}
|
|
96
|
+
if (existsSync('.astria')) runAstriaUpdate();
|
|
99
97
|
} catch {}
|
|
100
98
|
// astria-hook-end
|
|
101
99
|
`;
|
|
@@ -118,6 +116,32 @@ try {
|
|
|
118
116
|
} catch {}
|
|
119
117
|
// astria-checkout-hook-end
|
|
120
118
|
`;
|
|
119
|
+
// post-merge runs after true merges and fast-forward merges, including pulls.
|
|
120
|
+
// ORIG_HEAD records the branch tip before the merge, covering every incoming
|
|
121
|
+
// commit in a multi-commit fast-forward. Squash merges refresh on commit.
|
|
122
|
+
const POST_MERGE_SCRIPT = `// astria-merge-hook-start
|
|
123
|
+
const { execSync } = require('child_process');
|
|
124
|
+
const { existsSync } = require('fs');
|
|
125
|
+
const path = require('path');
|
|
126
|
+
${UPDATE_HELPER}
|
|
127
|
+
if (!existsSync('.astria')) process.exit(0);
|
|
128
|
+
|
|
129
|
+
try {
|
|
130
|
+
// No shell redirects — see the note in the post-commit script.
|
|
131
|
+
const gitDir = execSync('git rev-parse --git-dir', { encoding: 'utf-8' }).trim();
|
|
132
|
+
if (existsSync(path.join(gitDir, 'rebase-merge')) || existsSync(path.join(gitDir, 'rebase-apply'))) process.exit(0);
|
|
133
|
+
|
|
134
|
+
// Compare the pre-merge tip with the final tip for both merge kinds.
|
|
135
|
+
const changed = execSync('git diff --name-only ORIG_HEAD HEAD', { encoding: 'utf-8' }).trim();
|
|
136
|
+
if (!changed) process.exit(0);
|
|
137
|
+
|
|
138
|
+
// Let update inspect graph inputs; extension allowlists miss documentation,
|
|
139
|
+
// manifests, configuration, and newly supported languages.
|
|
140
|
+
console.log('[astria] Merge completed - refreshing knowledge graph...');
|
|
141
|
+
runAstriaUpdate();
|
|
142
|
+
} catch {}
|
|
143
|
+
// astria-merge-hook-end
|
|
144
|
+
`;
|
|
121
145
|
const LEGACY_HOOK_PREFIXES = [
|
|
122
146
|
{ js: 'nodesify-graphify' }, // 0.3–0.9 JS-format hooks
|
|
123
147
|
{ shell: 'nodesify-graphify' }, // pre-0.3 shell-format hooks
|
|
@@ -144,6 +168,15 @@ const HOOK_DEFS = [
|
|
|
144
168
|
{ startMarker: '# nodesify-graphify-checkout-hook-start', endMarker: '# nodesify-graphify-checkout-hook-end' },
|
|
145
169
|
],
|
|
146
170
|
},
|
|
171
|
+
{
|
|
172
|
+
hookName: 'post-merge',
|
|
173
|
+
script: POST_MERGE_SCRIPT,
|
|
174
|
+
startMarker: '// astria-merge-hook-start',
|
|
175
|
+
endMarker: '// astria-merge-hook-end',
|
|
176
|
+
// No legacy release ever shipped a post-merge hook, so there is no
|
|
177
|
+
// earlier marker family to recognize or replace here.
|
|
178
|
+
legacyMarkers: [],
|
|
179
|
+
},
|
|
147
180
|
];
|
|
148
181
|
const SHEBANGS = ['#!/bin/sh', '#!/bin/bash', '#!/usr/bin/env node'];
|
|
149
182
|
function escapeRegExp(s) {
|
|
@@ -234,7 +267,7 @@ function installHook(hooksDir, def) {
|
|
|
234
267
|
// Refresh the script body when it predates the current template
|
|
235
268
|
// (sentinel: ASTRIA_HOOK_VERSION resolver). Without this, fixed
|
|
236
269
|
// templates would never reach already-installed hooks.
|
|
237
|
-
if (!content.includes("ASTRIA_HOOK_VERSION = '
|
|
270
|
+
if (!content.includes("ASTRIA_HOOK_VERSION = '5'")) {
|
|
238
271
|
content = stripMarkerSection(content, def.startMarker, def.endMarker);
|
|
239
272
|
const refreshed = content.trim() === '' || SHEBANGS.includes(content.trim())
|
|
240
273
|
? '#!/usr/bin/env node\n\n' + def.script
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/install/hooks.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,MAAY,EAAE,+BAAW;AACzB,MAAY,IAAI,iCAAa;AAC7B,iDAAyC;AACzC,qCAA4D;AAE5D,MAAM,aAAa,GAAG
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/install/hooks.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nodesify/astria",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"description": "Turn any folder into a queryable knowledge graph",
|
|
5
5
|
"mcpName": "io.github.Nodesify/astria",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"napi:dev": "node ../../scripts/build-native.mjs --debug",
|
|
25
25
|
"napi:artifacts": "napi artifacts",
|
|
26
26
|
"prepublishOnly": "napi prepublish -t npm",
|
|
27
|
-
"test": "npx tsx src/__tests__/cli.test.ts && npx tsx src/__tests__/install.test.ts && npx tsx src/__tests__/hooks.test.ts && npx tsx src/__tests__/merge-driver.test.ts && npx tsx src/__tests__/e2e.test.ts"
|
|
27
|
+
"test": "npx tsx src/__tests__/cli.test.ts && npx tsx src/__tests__/install.test.ts && npx tsx src/__tests__/hooks.test.ts && npx tsx src/__tests__/hook-guard.test.ts && npx tsx src/__tests__/merge-driver.test.ts && npx tsx src/__tests__/e2e.test.ts"
|
|
28
28
|
},
|
|
29
29
|
"keywords": [
|
|
30
30
|
"knowledge-graph",
|
|
@@ -67,12 +67,12 @@
|
|
|
67
67
|
]
|
|
68
68
|
},
|
|
69
69
|
"optionalDependencies": {
|
|
70
|
-
"@nodesify/astria-win32-x64-msvc": "1.
|
|
71
|
-
"@nodesify/astria-darwin-x64": "1.
|
|
72
|
-
"@nodesify/astria-linux-x64-gnu": "1.
|
|
73
|
-
"@nodesify/astria-darwin-arm64": "1.
|
|
74
|
-
"@nodesify/astria-linux-arm64-gnu": "1.
|
|
75
|
-
"@nodesify/astria-linux-x64-musl": "1.
|
|
76
|
-
"@nodesify/astria-win32-arm64-msvc": "1.
|
|
70
|
+
"@nodesify/astria-win32-x64-msvc": "1.4.0",
|
|
71
|
+
"@nodesify/astria-darwin-x64": "1.4.0",
|
|
72
|
+
"@nodesify/astria-linux-x64-gnu": "1.4.0",
|
|
73
|
+
"@nodesify/astria-darwin-arm64": "1.4.0",
|
|
74
|
+
"@nodesify/astria-linux-arm64-gnu": "1.4.0",
|
|
75
|
+
"@nodesify/astria-linux-x64-musl": "1.4.0",
|
|
76
|
+
"@nodesify/astria-win32-arm64-msvc": "1.4.0"
|
|
77
77
|
}
|
|
78
78
|
}
|
package/skills/skill.md
CHANGED
|
@@ -103,6 +103,12 @@ Use Grep/Glob/file reads first for:
|
|
|
103
103
|
- **Natural-language discovery**: the graph anchors on symbol names.
|
|
104
104
|
`query` handles typos and partial matches, but if you don't know any
|
|
105
105
|
symbol name yet, a broad grep for a distinctive string is often faster.
|
|
106
|
+
- **Known symbols**: when you already hold a symbol (from a stack trace,
|
|
107
|
+
an import, a previous answer), pass it with `astria query "<question>"
|
|
108
|
+
--seed <symbol>` (repeatable). Seeds resolve by node id, label, bare
|
|
109
|
+
name, or unique source path; the traversal starts there instead of
|
|
110
|
+
keyword ranking, unresolved seeds are reported, and all-unresolved
|
|
111
|
+
seeds return an explicit miss — never a silent keyword fallback.
|
|
106
112
|
|
|
107
113
|
Rule of thumb: use the graph to identify WHICH files matter (blast radius,
|
|
108
114
|
architecture, cross-module dependencies), then read those files directly
|
|
@@ -118,7 +124,17 @@ you can jump straight from a node or edge to the source.
|
|
|
118
124
|
- Edge evidence tiers: `EXTRACTED` (verified in source), `RESOLVED` (a call
|
|
119
125
|
expression from source whose name binds to exactly one definition —
|
|
120
126
|
trustworthy for impact analysis), `INFERRED` (reconstructed or unbindable
|
|
121
|
-
— weaker evidence, marked with a legend in `affected` output).
|
|
127
|
+
— weaker evidence, marked with a legend in `affected` output). TypeScript
|
|
128
|
+
member calls on typed receivers (`this.service.save()` through declared
|
|
129
|
+
fields, constructor parameter properties, typed locals) resolve the same
|
|
130
|
+
`RESOLVED` way; ambiguous receivers stay `INFERRED`.
|
|
131
|
+
- `dispatch` edges connect an interface member to every implementing
|
|
132
|
+
class's same-named member — possible implementations for
|
|
133
|
+
dependency-injection flows, NOT proven runtime calls.
|
|
134
|
+
- `graph_stats` (and `astria stats`) disclose extraction completeness per
|
|
135
|
+
file (`complete`, `partial`, `suspicious_empty`, `unsupported`,
|
|
136
|
+
`skipped`): before concluding "no relationship exists", check that the
|
|
137
|
+
files involved were fully extracted.
|
|
122
138
|
- `explain`/`neighbors` arrows show real edge direction: `-->` the node
|
|
123
139
|
calls/imports the neighbor, `<--` the neighbor calls/imports the node.
|
|
124
140
|
- Identifier-shaped string literals (env vars like `PLANE_URL`, snake_case
|
|
@@ -249,7 +265,7 @@ Repeated queries leave a trace: node pairs that keep coming up across distinct q
|
|
|
249
265
|
|
|
250
266
|
### Git hooks
|
|
251
267
|
|
|
252
|
-
`astria hook install|uninstall|status` — per-machine git hooks that run a quiet, freshness-throttled `astria update .` after every code commit
|
|
268
|
+
`astria hook install|uninstall|status` — per-machine git hooks that run a quiet, freshness-throttled `astria update .` after every code commit, branch switch, and merge (including the merges `git pull` creates), so the graph stays current without anyone remembering to run `update`. Skips while a rebase is in progress; re-run `astria hook install` after upgrading astria to refresh the installed template. `astria hook-guard <mode>` installs the editor PreToolUse guard (`search | read | gemini`); when the graph has evidence for the tool call, the guard names matching symbols with their `file:line` locations and a ready-to-run query instead of a generic reminder (disable with `ASTRIA_HOOK_CONTEXT=0`).
|
|
253
269
|
|
|
254
270
|
|
|
255
271
|
### `astria stats [options]`
|
|
@@ -287,7 +303,7 @@ astria wiki --format obsidian --out my-vault # Obsidian vault + canvas
|
|
|
287
303
|
|
|
288
304
|
## Post-Edit Protocol
|
|
289
305
|
|
|
290
|
-
With git hooks installed (`astria hook install`), the graph refreshes itself after every commit — nothing to do.
|
|
306
|
+
With git hooks installed (`astria hook install`), the graph refreshes itself after every commit and merge — nothing to do.
|
|
291
307
|
|
|
292
308
|
After modifying code files in a session with an active graph (no hooks):
|
|
293
309
|
|