@dahch/muninn 0.0.0-stage → 0.1.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/LICENSE +21 -0
- package/README.md +152 -2
- package/dist/cli.d.ts +23 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +170 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/check.d.ts +3 -0
- package/dist/commands/check.d.ts.map +1 -0
- package/dist/commands/check.js +56 -0
- package/dist/commands/check.js.map +1 -0
- package/dist/commands/memory.d.ts +6 -0
- package/dist/commands/memory.d.ts.map +1 -0
- package/dist/commands/memory.js +325 -0
- package/dist/commands/memory.js.map +1 -0
- package/dist/contracts/compiler.d.ts +71 -0
- package/dist/contracts/compiler.d.ts.map +1 -0
- package/dist/contracts/compiler.js +362 -0
- package/dist/contracts/compiler.js.map +1 -0
- package/dist/contracts/index.d.ts +2 -0
- package/dist/contracts/index.d.ts.map +1 -0
- package/dist/contracts/index.js +2 -0
- package/dist/contracts/index.js.map +1 -0
- package/dist/db/client.d.ts +84 -0
- package/dist/db/client.d.ts.map +1 -0
- package/dist/db/client.js +264 -0
- package/dist/db/client.js.map +1 -0
- package/dist/db/schema.sql +97 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +23 -0
- package/dist/index.js.map +1 -0
- package/dist/indexer/ast-indexer.d.ts +55 -0
- package/dist/indexer/ast-indexer.d.ts.map +1 -0
- package/dist/indexer/ast-indexer.js +445 -0
- package/dist/indexer/ast-indexer.js.map +1 -0
- package/dist/indexer/index.d.ts +2 -0
- package/dist/indexer/index.d.ts.map +1 -0
- package/dist/indexer/index.js +2 -0
- package/dist/indexer/index.js.map +1 -0
- package/dist/mcp/index.d.ts +2 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +2 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/server.d.ts +233 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +495 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/service/index.d.ts +2 -0
- package/dist/service/index.d.ts.map +1 -0
- package/dist/service/index.js +2 -0
- package/dist/service/index.js.map +1 -0
- package/dist/service/memory-service.d.ts +203 -0
- package/dist/service/memory-service.d.ts.map +1 -0
- package/dist/service/memory-service.js +891 -0
- package/dist/service/memory-service.js.map +1 -0
- package/dist/util/path-safety.d.ts +94 -0
- package/dist/util/path-safety.d.ts.map +1 -0
- package/dist/util/path-safety.js +162 -0
- package/dist/util/path-safety.js.map +1 -0
- package/dist/util/text.d.ts +9 -0
- package/dist/util/text.d.ts.map +1 -0
- package/dist/util/text.js +19 -0
- package/dist/util/text.js.map +1 -0
- package/package.json +87 -4
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import Database from "better-sqlite3";
|
|
2
|
+
import { type Project, type Observation, type Entity, type ObservationCategory, type EntityType, type ObservationEntity, type DependencyRelationType, type EntityDependency } from "../db/client.js";
|
|
3
|
+
export { type Project, type Observation, type Entity, type ObservationCategory, type EntityType, type ObservationEntity, type DependencyRelationType, type EntityDependency, };
|
|
4
|
+
export declare const VALID_CATEGORIES: ReadonlyArray<ObservationCategory>;
|
|
5
|
+
export declare const VALID_ENTITY_TYPES: ReadonlyArray<EntityType>;
|
|
6
|
+
export interface SymbolInput {
|
|
7
|
+
name?: string | null;
|
|
8
|
+
filePath?: string | null;
|
|
9
|
+
file_path?: string | null;
|
|
10
|
+
identifier?: string | null;
|
|
11
|
+
type?: EntityType | null;
|
|
12
|
+
entity_type?: EntityType | null;
|
|
13
|
+
id?: string | null;
|
|
14
|
+
}
|
|
15
|
+
export interface ObservationWithEntities extends Observation {
|
|
16
|
+
entities: Entity[];
|
|
17
|
+
}
|
|
18
|
+
export interface SaveObservationInput {
|
|
19
|
+
category: ObservationCategory | string;
|
|
20
|
+
title: string;
|
|
21
|
+
content: string;
|
|
22
|
+
topicKey?: string | null;
|
|
23
|
+
topic_key?: string | null;
|
|
24
|
+
projectId?: string;
|
|
25
|
+
project_id?: string;
|
|
26
|
+
symbols?: Array<SymbolInput | string> | null;
|
|
27
|
+
}
|
|
28
|
+
export interface SearchOptions {
|
|
29
|
+
query: string;
|
|
30
|
+
category?: ObservationCategory | string | null;
|
|
31
|
+
projectId?: string | null;
|
|
32
|
+
project_id?: string | null;
|
|
33
|
+
allProjects?: boolean | null;
|
|
34
|
+
limit?: number | null;
|
|
35
|
+
}
|
|
36
|
+
export interface SearchResult extends ObservationWithEntities {
|
|
37
|
+
rank: number;
|
|
38
|
+
}
|
|
39
|
+
export interface ContextOptions {
|
|
40
|
+
limit?: number | null;
|
|
41
|
+
category?: ObservationCategory | string | null;
|
|
42
|
+
topicKey?: string | null;
|
|
43
|
+
topic_key?: string | null;
|
|
44
|
+
projectId?: string | null;
|
|
45
|
+
project_id?: string | null;
|
|
46
|
+
allProjects?: boolean | null;
|
|
47
|
+
}
|
|
48
|
+
export interface SyncToDiskOptions {
|
|
49
|
+
projectId?: string;
|
|
50
|
+
allProjects?: boolean;
|
|
51
|
+
}
|
|
52
|
+
export interface LinkSymbolInput {
|
|
53
|
+
observationId?: string;
|
|
54
|
+
observation_id?: string;
|
|
55
|
+
symbol: SymbolInput | string;
|
|
56
|
+
projectId?: string;
|
|
57
|
+
}
|
|
58
|
+
export interface MemoryStats {
|
|
59
|
+
projects: number;
|
|
60
|
+
observations: number;
|
|
61
|
+
entities: number;
|
|
62
|
+
links: number;
|
|
63
|
+
}
|
|
64
|
+
export interface MemoryServiceOptions {
|
|
65
|
+
db?: Database.Database;
|
|
66
|
+
dbPath?: string;
|
|
67
|
+
projectRoot?: string;
|
|
68
|
+
}
|
|
69
|
+
export interface SymbolInspectionDependency {
|
|
70
|
+
entity: Entity;
|
|
71
|
+
relationType: DependencyRelationType;
|
|
72
|
+
}
|
|
73
|
+
export interface SymbolInspection {
|
|
74
|
+
entity: Entity;
|
|
75
|
+
dependencies: {
|
|
76
|
+
outgoing: SymbolInspectionDependency[];
|
|
77
|
+
incoming: SymbolInspectionDependency[];
|
|
78
|
+
};
|
|
79
|
+
observations: Observation[];
|
|
80
|
+
}
|
|
81
|
+
export interface IMemoryService {
|
|
82
|
+
readonly currentProject: Project;
|
|
83
|
+
readonly db: Database.Database;
|
|
84
|
+
saveObservation(input: SaveObservationInput): ObservationWithEntities;
|
|
85
|
+
search(options: SearchOptions): SearchResult[];
|
|
86
|
+
getContext(options?: ContextOptions): ObservationWithEntities[];
|
|
87
|
+
linkSymbol(inputOrObsId: LinkSymbolInput | string, symbol?: SymbolInput | string): {
|
|
88
|
+
observation: Observation;
|
|
89
|
+
entity: Entity;
|
|
90
|
+
};
|
|
91
|
+
inspectSymbol(symbol: string, projectId?: string): SymbolInspection | null;
|
|
92
|
+
getStats(projectId?: string): MemoryStats;
|
|
93
|
+
syncToDisk(targetPath?: string, options?: {
|
|
94
|
+
projectId?: string;
|
|
95
|
+
allProjects?: boolean;
|
|
96
|
+
}): {
|
|
97
|
+
path: string;
|
|
98
|
+
count: number;
|
|
99
|
+
};
|
|
100
|
+
importFromDisk(sourcePath?: string): {
|
|
101
|
+
imported: number;
|
|
102
|
+
skipped: number;
|
|
103
|
+
};
|
|
104
|
+
close?(force?: boolean): void;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Normalizes input symbols into canonical identifier, filePath, and entityType.
|
|
108
|
+
*/
|
|
109
|
+
export declare function normalizeSymbol(symbol: SymbolInput | string): {
|
|
110
|
+
identifier: string;
|
|
111
|
+
filePath: string;
|
|
112
|
+
entityType: EntityType;
|
|
113
|
+
};
|
|
114
|
+
/**
|
|
115
|
+
* Safely format query terms for SQLite FTS5 syntax.
|
|
116
|
+
* Escapes special characters, wraps terms in quotes, and safely supports prefix queries.
|
|
117
|
+
* Returns an empty string if no valid search terms remain.
|
|
118
|
+
*/
|
|
119
|
+
export declare function sanitizeFtsQuery(query: string): string;
|
|
120
|
+
export declare class MemoryService implements IMemoryService {
|
|
121
|
+
private readonly _db;
|
|
122
|
+
private readonly _currentProject;
|
|
123
|
+
private readonly isDbOwned;
|
|
124
|
+
constructor(options?: MemoryServiceOptions);
|
|
125
|
+
get db(): Database.Database;
|
|
126
|
+
get currentProject(): Project;
|
|
127
|
+
/**
|
|
128
|
+
* Screen the durable JSONL export path exactly like the database path
|
|
129
|
+
* (SEC-006): a `.huginn/memories.jsonl` a cloned repository ships as a symlink
|
|
130
|
+
* must be neither written through nor read from — either direction would move
|
|
131
|
+
* project content outside the project (or pull foreign content in, where the
|
|
132
|
+
* MCP memory tools would serve it to the agent).
|
|
133
|
+
*/
|
|
134
|
+
private assertMemoryPath;
|
|
135
|
+
/**
|
|
136
|
+
* Closes the database connection if managed internally by the service.
|
|
137
|
+
*/
|
|
138
|
+
close(force?: boolean): void;
|
|
139
|
+
/**
|
|
140
|
+
* Saves an observation and transactionally links any provided symbols.
|
|
141
|
+
*/
|
|
142
|
+
saveObservation(input: SaveObservationInput): ObservationWithEntities;
|
|
143
|
+
/**
|
|
144
|
+
* Retrieves linked entities for observation IDs in chunks of at most 500
|
|
145
|
+
* to prevent exceeding SQLite parameter bounds.
|
|
146
|
+
*/
|
|
147
|
+
private _fetchEntitiesForObservations;
|
|
148
|
+
/**
|
|
149
|
+
* Searches observations using FTS5 BM25 relevance ranking.
|
|
150
|
+
* Query terms are safely sanitized, rank ordering is ASC (lower BM25 = higher relevance),
|
|
151
|
+
* and linked entities are attached to each result.
|
|
152
|
+
*/
|
|
153
|
+
search(options: SearchOptions): SearchResult[];
|
|
154
|
+
/**
|
|
155
|
+
* Retrieves recent observations ordered by updated_at DESC, created_at DESC.
|
|
156
|
+
*/
|
|
157
|
+
getContext(options?: ContextOptions): ObservationWithEntities[];
|
|
158
|
+
/**
|
|
159
|
+
* Transactionally links an entity to an observation.
|
|
160
|
+
*/
|
|
161
|
+
linkSymbol(inputOrObsId: LinkSymbolInput | string, symbolArg?: SymbolInput | string): {
|
|
162
|
+
observation: Observation;
|
|
163
|
+
entity: Entity;
|
|
164
|
+
};
|
|
165
|
+
/**
|
|
166
|
+
* Escapes LIKE pattern special characters (%, _, \)
|
|
167
|
+
*/
|
|
168
|
+
private _escapeLikePattern;
|
|
169
|
+
/**
|
|
170
|
+
* Inspects a symbol in Muninn memory, returning its entity metadata,
|
|
171
|
+
* incoming and outgoing dependencies, and linked observations.
|
|
172
|
+
*/
|
|
173
|
+
inspectSymbol(symbol: string, projectId?: string): SymbolInspection | null;
|
|
174
|
+
/**
|
|
175
|
+
* Retrieves aggregate counts of projects, observations, entities, and links.
|
|
176
|
+
*/
|
|
177
|
+
getStats(projectId?: string): MemoryStats;
|
|
178
|
+
/**
|
|
179
|
+
* Exports all observations with linked entities to a JSON Lines (.jsonl) file.
|
|
180
|
+
*/
|
|
181
|
+
syncToDisk(targetPath?: string, options?: {
|
|
182
|
+
projectId?: string;
|
|
183
|
+
allProjects?: boolean;
|
|
184
|
+
}): {
|
|
185
|
+
path: string;
|
|
186
|
+
count: number;
|
|
187
|
+
};
|
|
188
|
+
syncToDisk(options?: {
|
|
189
|
+
projectId?: string;
|
|
190
|
+
allProjects?: boolean;
|
|
191
|
+
}): {
|
|
192
|
+
path: string;
|
|
193
|
+
count: number;
|
|
194
|
+
};
|
|
195
|
+
/**
|
|
196
|
+
* Reads a JSON Lines (.jsonl) file and idempotently imports records into the database.
|
|
197
|
+
*/
|
|
198
|
+
importFromDisk(sourcePath?: string): {
|
|
199
|
+
imported: number;
|
|
200
|
+
skipped: number;
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
//# sourceMappingURL=memory-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-service.d.ts","sourceRoot":"","sources":["../../src/service/memory-service.ts"],"names":[],"mappings":"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"}
|