@hiveforge/hivemind-mcp 3.3.1 → 3.5.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 +89 -309
- package/dist/cli/fix/fixer.js +1 -1
- package/dist/cli/fix/fixer.js.map +1 -1
- package/dist/cli/fix/writer.d.ts.map +1 -1
- package/dist/cli/fix/writer.js +75 -3
- package/dist/cli/fix/writer.js.map +1 -1
- package/dist/cli/init/output.d.ts.map +1 -1
- package/dist/cli/init/output.js +6 -5
- package/dist/cli/init/output.js.map +1 -1
- package/dist/cli/validate/formatter.d.ts.map +1 -1
- package/dist/cli/validate/formatter.js +16 -0
- package/dist/cli/validate/formatter.js.map +1 -1
- package/dist/cli/validate/types.d.ts +3 -0
- package/dist/cli/validate/types.d.ts.map +1 -1
- package/dist/cli/validate/validator.d.ts.map +1 -1
- package/dist/cli/validate/validator.js +32 -1
- package/dist/cli/validate/validator.js.map +1 -1
- package/dist/cli.js +2 -1
- package/dist/cli.js.map +1 -1
- package/dist/graph/database.d.ts +152 -0
- package/dist/graph/database.d.ts.map +1 -1
- package/dist/graph/database.js +418 -30
- package/dist/graph/database.js.map +1 -1
- package/dist/mcp/graph-tools.d.ts +78 -0
- package/dist/mcp/graph-tools.d.ts.map +1 -0
- package/dist/mcp/graph-tools.js +284 -0
- package/dist/mcp/graph-tools.js.map +1 -0
- package/dist/mcp/timeline-tools.d.ts +116 -0
- package/dist/mcp/timeline-tools.d.ts.map +1 -0
- package/dist/mcp/timeline-tools.js +317 -0
- package/dist/mcp/timeline-tools.js.map +1 -0
- package/dist/search/engine.d.ts +186 -0
- package/dist/search/engine.d.ts.map +1 -1
- package/dist/search/engine.js +263 -0
- package/dist/search/engine.js.map +1 -1
- package/dist/server.d.ts +52 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +472 -0
- package/dist/server.js.map +1 -1
- package/dist/templates/builtin/worldbuilding.d.ts.map +1 -1
- package/dist/templates/builtin/worldbuilding.js +401 -1
- package/dist/templates/builtin/worldbuilding.js.map +1 -1
- package/dist/templates/community/dnd-35e.d.ts +18 -0
- package/dist/templates/community/dnd-35e.d.ts.map +1 -0
- package/dist/templates/community/dnd-35e.js +859 -0
- package/dist/templates/community/dnd-35e.js.map +1 -0
- package/dist/templates/community/dnd-5e.d.ts +16 -0
- package/dist/templates/community/dnd-5e.d.ts.map +1 -0
- package/dist/templates/community/dnd-5e.js +509 -0
- package/dist/templates/community/dnd-5e.js.map +1 -0
- package/dist/templates/community/index.d.ts +9 -0
- package/dist/templates/community/index.d.ts.map +1 -1
- package/dist/templates/community/index.js +16 -0
- package/dist/templates/community/index.js.map +1 -1
- package/dist/templates/community/pathfinder-2e.d.ts +16 -0
- package/dist/templates/community/pathfinder-2e.d.ts.map +1 -0
- package/dist/templates/community/pathfinder-2e.js +711 -0
- package/dist/templates/community/pathfinder-2e.js.map +1 -0
- package/dist/templates/community/ttrpg-base.d.ts +17 -0
- package/dist/templates/community/ttrpg-base.d.ts.map +1 -0
- package/dist/templates/community/ttrpg-base.js +889 -0
- package/dist/templates/community/ttrpg-base.js.map +1 -0
- package/dist/templates/loader.d.ts +2 -0
- package/dist/templates/loader.d.ts.map +1 -1
- package/dist/templates/loader.js +45 -1
- package/dist/templates/loader.js.map +1 -1
- package/dist/templates/registry.d.ts +49 -2
- package/dist/templates/registry.d.ts.map +1 -1
- package/dist/templates/registry.js +276 -6
- package/dist/templates/registry.js.map +1 -1
- package/dist/templates/types.d.ts +28 -1
- package/dist/templates/types.d.ts.map +1 -1
- package/dist/templates/validator.d.ts +80 -1
- package/dist/templates/validator.d.ts.map +1 -1
- package/dist/templates/validator.js +22 -5
- package/dist/templates/validator.js.map +1 -1
- package/dist/types/index.d.ts +18 -18
- package/package.json +3 -1
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Timeline MCP tools - date field discovery and validation.
|
|
3
|
+
*
|
|
4
|
+
* Provides date field discovery from template registry and Zod validation
|
|
5
|
+
* schemas for timeline query tools.
|
|
6
|
+
*/
|
|
7
|
+
import { z } from 'zod';
|
|
8
|
+
import { templateRegistry } from '../templates/registry.js';
|
|
9
|
+
/**
|
|
10
|
+
* Discovers entity types that have date-typed fields.
|
|
11
|
+
*
|
|
12
|
+
* Scans the active template's entity types and returns information about
|
|
13
|
+
* which types have date fields available for timeline queries.
|
|
14
|
+
*
|
|
15
|
+
* @returns Array of temporal type information, or empty array if no active template
|
|
16
|
+
*/
|
|
17
|
+
export function discoverTemporalTypes() {
|
|
18
|
+
const activeTemplate = templateRegistry.getActive();
|
|
19
|
+
if (!activeTemplate) {
|
|
20
|
+
return [];
|
|
21
|
+
}
|
|
22
|
+
const temporalTypes = [];
|
|
23
|
+
for (const entityType of activeTemplate.entityTypes) {
|
|
24
|
+
const dateFields = entityType.fields
|
|
25
|
+
.filter((field) => field.type === 'date')
|
|
26
|
+
.map((field) => ({
|
|
27
|
+
name: field.name,
|
|
28
|
+
required: field.required ?? false,
|
|
29
|
+
description: field.description,
|
|
30
|
+
}));
|
|
31
|
+
if (dateFields.length > 0) {
|
|
32
|
+
temporalTypes.push({
|
|
33
|
+
entityType: entityType.name,
|
|
34
|
+
dateFields,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return temporalTypes;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Validates that a field exists on an entity type and is a date type.
|
|
42
|
+
*
|
|
43
|
+
* @param entityType - Entity type name to check
|
|
44
|
+
* @param dateField - Field name to validate
|
|
45
|
+
* @returns True if the field exists and is a date type, false otherwise
|
|
46
|
+
*/
|
|
47
|
+
export function validateDateField(entityType, dateField) {
|
|
48
|
+
const activeTemplate = templateRegistry.getActive();
|
|
49
|
+
if (!activeTemplate) {
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
const entityConfig = activeTemplate.entityTypeMap.get(entityType);
|
|
53
|
+
if (!entityConfig) {
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
const field = entityConfig.fields.find((f) => f.name === dateField);
|
|
57
|
+
if (!field) {
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
return field.type === 'date';
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* ISO8601 date string regex (YYYY-MM-DD format only).
|
|
64
|
+
*
|
|
65
|
+
* Validates format but not calendar correctness - SQLite handles string
|
|
66
|
+
* comparison correctly even with invalid dates like 2024-13-45.
|
|
67
|
+
*/
|
|
68
|
+
const ISO8601DateRegex = /^\d{4}-\d{2}-\d{2}$/;
|
|
69
|
+
/**
|
|
70
|
+
* Validation schema for query_timeline_range arguments.
|
|
71
|
+
*
|
|
72
|
+
* Finds entities with date fields in a specified range.
|
|
73
|
+
*/
|
|
74
|
+
export const QueryTimelineRangeArgsSchema = z.object({
|
|
75
|
+
startDate: z
|
|
76
|
+
.string()
|
|
77
|
+
.regex(ISO8601DateRegex, 'Date must be in YYYY-MM-DD format'),
|
|
78
|
+
endDate: z
|
|
79
|
+
.string()
|
|
80
|
+
.regex(ISO8601DateRegex, 'Date must be in YYYY-MM-DD format'),
|
|
81
|
+
dateField: z.string().describe('Name of the date field to query'),
|
|
82
|
+
entityType: z
|
|
83
|
+
.string()
|
|
84
|
+
.optional()
|
|
85
|
+
.describe('Optional entity type filter'),
|
|
86
|
+
sortOrder: z
|
|
87
|
+
.enum(['asc', 'desc'])
|
|
88
|
+
.optional()
|
|
89
|
+
.default('asc')
|
|
90
|
+
.describe('Sort order for results'),
|
|
91
|
+
limit: z
|
|
92
|
+
.number()
|
|
93
|
+
.min(1)
|
|
94
|
+
.max(1000)
|
|
95
|
+
.optional()
|
|
96
|
+
.default(100)
|
|
97
|
+
.describe('Maximum number of results to return'),
|
|
98
|
+
});
|
|
99
|
+
/**
|
|
100
|
+
* Validation schema for query_timeline_before arguments.
|
|
101
|
+
*
|
|
102
|
+
* Finds entities with date fields before a specified date.
|
|
103
|
+
*/
|
|
104
|
+
export const QueryTimelineBeforeArgsSchema = z.object({
|
|
105
|
+
date: z
|
|
106
|
+
.string()
|
|
107
|
+
.regex(ISO8601DateRegex, 'Date must be in YYYY-MM-DD format'),
|
|
108
|
+
dateField: z.string().describe('Name of the date field to query'),
|
|
109
|
+
entityType: z
|
|
110
|
+
.string()
|
|
111
|
+
.optional()
|
|
112
|
+
.describe('Optional entity type filter'),
|
|
113
|
+
sortOrder: z
|
|
114
|
+
.enum(['asc', 'desc'])
|
|
115
|
+
.optional()
|
|
116
|
+
.default('desc')
|
|
117
|
+
.describe('Sort order for results'),
|
|
118
|
+
limit: z
|
|
119
|
+
.number()
|
|
120
|
+
.min(1)
|
|
121
|
+
.max(1000)
|
|
122
|
+
.optional()
|
|
123
|
+
.default(100)
|
|
124
|
+
.describe('Maximum number of results to return'),
|
|
125
|
+
});
|
|
126
|
+
/**
|
|
127
|
+
* Validation schema for query_timeline_after arguments.
|
|
128
|
+
*
|
|
129
|
+
* Finds entities with date fields after a specified date.
|
|
130
|
+
*/
|
|
131
|
+
export const QueryTimelineAfterArgsSchema = z.object({
|
|
132
|
+
date: z
|
|
133
|
+
.string()
|
|
134
|
+
.regex(ISO8601DateRegex, 'Date must be in YYYY-MM-DD format'),
|
|
135
|
+
dateField: z.string().describe('Name of the date field to query'),
|
|
136
|
+
entityType: z
|
|
137
|
+
.string()
|
|
138
|
+
.optional()
|
|
139
|
+
.describe('Optional entity type filter'),
|
|
140
|
+
sortOrder: z
|
|
141
|
+
.enum(['asc', 'desc'])
|
|
142
|
+
.optional()
|
|
143
|
+
.default('asc')
|
|
144
|
+
.describe('Sort order for results'),
|
|
145
|
+
limit: z
|
|
146
|
+
.number()
|
|
147
|
+
.min(1)
|
|
148
|
+
.max(1000)
|
|
149
|
+
.optional()
|
|
150
|
+
.default(100)
|
|
151
|
+
.describe('Maximum number of results to return'),
|
|
152
|
+
});
|
|
153
|
+
/**
|
|
154
|
+
* Validation schema for query_timeline_exact arguments.
|
|
155
|
+
*
|
|
156
|
+
* Finds entities with date fields matching an exact date.
|
|
157
|
+
*/
|
|
158
|
+
export const QueryTimelineExactArgsSchema = z.object({
|
|
159
|
+
date: z
|
|
160
|
+
.string()
|
|
161
|
+
.regex(ISO8601DateRegex, 'Date must be in YYYY-MM-DD format'),
|
|
162
|
+
dateField: z.string().describe('Name of the date field to query'),
|
|
163
|
+
entityType: z
|
|
164
|
+
.string()
|
|
165
|
+
.optional()
|
|
166
|
+
.describe('Optional entity type filter'),
|
|
167
|
+
sortOrder: z
|
|
168
|
+
.enum(['asc', 'desc'])
|
|
169
|
+
.optional()
|
|
170
|
+
.default('asc')
|
|
171
|
+
.describe('Sort order for results'),
|
|
172
|
+
limit: z
|
|
173
|
+
.number()
|
|
174
|
+
.min(1)
|
|
175
|
+
.max(1000)
|
|
176
|
+
.optional()
|
|
177
|
+
.default(100)
|
|
178
|
+
.describe('Maximum number of results to return'),
|
|
179
|
+
});
|
|
180
|
+
/**
|
|
181
|
+
* Generates MCP tool definitions for timeline queries.
|
|
182
|
+
*
|
|
183
|
+
* Creates four tools: query_timeline_range, query_timeline_before,
|
|
184
|
+
* query_timeline_after, and query_timeline_exact.
|
|
185
|
+
*
|
|
186
|
+
* Tool descriptions dynamically include available date fields per entity type.
|
|
187
|
+
*
|
|
188
|
+
* @param temporalTypes - Entity types with date fields
|
|
189
|
+
* @returns Array of tool definitions for MCP registration
|
|
190
|
+
*/
|
|
191
|
+
export function generateTimelineTools(temporalTypes) {
|
|
192
|
+
// Build description of available date fields
|
|
193
|
+
const dateFieldsDescription = buildDateFieldsDescription(temporalTypes);
|
|
194
|
+
// Common properties shared by all timeline tools
|
|
195
|
+
const commonProperties = {
|
|
196
|
+
dateField: {
|
|
197
|
+
type: 'string',
|
|
198
|
+
description: 'Name of the date field to query',
|
|
199
|
+
},
|
|
200
|
+
entityType: {
|
|
201
|
+
type: 'string',
|
|
202
|
+
description: 'Optional: filter to specific entity type',
|
|
203
|
+
},
|
|
204
|
+
sortOrder: {
|
|
205
|
+
type: 'string',
|
|
206
|
+
enum: ['asc', 'desc'],
|
|
207
|
+
description: 'Sort order for results',
|
|
208
|
+
},
|
|
209
|
+
limit: {
|
|
210
|
+
type: 'number',
|
|
211
|
+
description: 'Maximum number of results to return (1-1000, default: 100)',
|
|
212
|
+
minimum: 1,
|
|
213
|
+
maximum: 1000,
|
|
214
|
+
default: 100,
|
|
215
|
+
},
|
|
216
|
+
};
|
|
217
|
+
const tools = [
|
|
218
|
+
{
|
|
219
|
+
name: 'query_timeline_range',
|
|
220
|
+
description: `Query entities with dates in a specified range. Returns entities where the date field falls between startDate and endDate (inclusive).${dateFieldsDescription}`,
|
|
221
|
+
inputSchema: {
|
|
222
|
+
type: 'object',
|
|
223
|
+
properties: {
|
|
224
|
+
startDate: {
|
|
225
|
+
type: 'string',
|
|
226
|
+
description: 'Start date in YYYY-MM-DD format (inclusive)',
|
|
227
|
+
},
|
|
228
|
+
endDate: {
|
|
229
|
+
type: 'string',
|
|
230
|
+
description: 'End date in YYYY-MM-DD format (inclusive)',
|
|
231
|
+
},
|
|
232
|
+
...commonProperties,
|
|
233
|
+
},
|
|
234
|
+
required: ['startDate', 'endDate', 'dateField'],
|
|
235
|
+
},
|
|
236
|
+
},
|
|
237
|
+
{
|
|
238
|
+
name: 'query_timeline_before',
|
|
239
|
+
description: `Query entities with dates before a specified date. Returns entities where the date field is earlier than the given date.${dateFieldsDescription}`,
|
|
240
|
+
inputSchema: {
|
|
241
|
+
type: 'object',
|
|
242
|
+
properties: {
|
|
243
|
+
date: {
|
|
244
|
+
type: 'string',
|
|
245
|
+
description: 'Date in YYYY-MM-DD format (exclusive upper bound)',
|
|
246
|
+
},
|
|
247
|
+
...commonProperties,
|
|
248
|
+
sortOrder: {
|
|
249
|
+
...commonProperties.sortOrder,
|
|
250
|
+
default: 'desc',
|
|
251
|
+
description: 'Sort order for results (default: desc)',
|
|
252
|
+
},
|
|
253
|
+
},
|
|
254
|
+
required: ['date', 'dateField'],
|
|
255
|
+
},
|
|
256
|
+
},
|
|
257
|
+
{
|
|
258
|
+
name: 'query_timeline_after',
|
|
259
|
+
description: `Query entities with dates after a specified date. Returns entities where the date field is later than the given date.${dateFieldsDescription}`,
|
|
260
|
+
inputSchema: {
|
|
261
|
+
type: 'object',
|
|
262
|
+
properties: {
|
|
263
|
+
date: {
|
|
264
|
+
type: 'string',
|
|
265
|
+
description: 'Date in YYYY-MM-DD format (exclusive lower bound)',
|
|
266
|
+
},
|
|
267
|
+
...commonProperties,
|
|
268
|
+
sortOrder: {
|
|
269
|
+
...commonProperties.sortOrder,
|
|
270
|
+
default: 'asc',
|
|
271
|
+
description: 'Sort order for results (default: asc)',
|
|
272
|
+
},
|
|
273
|
+
},
|
|
274
|
+
required: ['date', 'dateField'],
|
|
275
|
+
},
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
name: 'query_timeline_exact',
|
|
279
|
+
description: `Query entities with dates matching an exact date. Returns entities where the date field exactly matches the given date.${dateFieldsDescription}`,
|
|
280
|
+
inputSchema: {
|
|
281
|
+
type: 'object',
|
|
282
|
+
properties: {
|
|
283
|
+
date: {
|
|
284
|
+
type: 'string',
|
|
285
|
+
description: 'Date in YYYY-MM-DD format (exact match)',
|
|
286
|
+
},
|
|
287
|
+
...commonProperties,
|
|
288
|
+
sortOrder: {
|
|
289
|
+
...commonProperties.sortOrder,
|
|
290
|
+
default: 'asc',
|
|
291
|
+
description: 'Sort order for results (default: asc)',
|
|
292
|
+
},
|
|
293
|
+
},
|
|
294
|
+
required: ['date', 'dateField'],
|
|
295
|
+
},
|
|
296
|
+
},
|
|
297
|
+
];
|
|
298
|
+
return tools;
|
|
299
|
+
}
|
|
300
|
+
/**
|
|
301
|
+
* Builds the date fields description section for tool descriptions.
|
|
302
|
+
*
|
|
303
|
+
* @param temporalTypes - Entity types with date fields
|
|
304
|
+
* @returns Formatted description of available date fields
|
|
305
|
+
*/
|
|
306
|
+
function buildDateFieldsDescription(temporalTypes) {
|
|
307
|
+
if (temporalTypes.length === 0) {
|
|
308
|
+
return '';
|
|
309
|
+
}
|
|
310
|
+
let description = '\n\nAvailable date fields:\n';
|
|
311
|
+
for (const typeInfo of temporalTypes) {
|
|
312
|
+
const fieldNames = typeInfo.dateFields.map((f) => f.name).join(', ');
|
|
313
|
+
description += `- ${typeInfo.entityType}: ${fieldNames}\n`;
|
|
314
|
+
}
|
|
315
|
+
return description;
|
|
316
|
+
}
|
|
317
|
+
//# sourceMappingURL=timeline-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timeline-tools.js","sourceRoot":"","sources":["../../src/mcp/timeline-tools.ts"],"names":[],"mappings":"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"}
|
package/dist/search/engine.d.ts
CHANGED
|
@@ -53,5 +53,191 @@ export declare class SearchEngine {
|
|
|
53
53
|
[k: string]: number;
|
|
54
54
|
};
|
|
55
55
|
};
|
|
56
|
+
/**
|
|
57
|
+
* Query nodes by date range with full context
|
|
58
|
+
*
|
|
59
|
+
* @param startDate - Start date (inclusive) in ISO format (YYYY-MM-DD)
|
|
60
|
+
* @param endDate - End date (inclusive) in ISO format (YYYY-MM-DD)
|
|
61
|
+
* @param dateField - Name of the date field to query
|
|
62
|
+
* @param options - Query options (entityType, sortOrder, limit)
|
|
63
|
+
* @returns Results grouped by entity type with relationships and metadata
|
|
64
|
+
*/
|
|
65
|
+
queryTimelineRange(startDate: string, endDate: string, dateField: string, options?: {
|
|
66
|
+
entityType?: string;
|
|
67
|
+
sortOrder?: 'asc' | 'desc';
|
|
68
|
+
limit?: number;
|
|
69
|
+
}): Promise<{
|
|
70
|
+
nodes: GraphNode[];
|
|
71
|
+
relationships: GraphEdge[];
|
|
72
|
+
metadata: {
|
|
73
|
+
source: 'timeline';
|
|
74
|
+
executionTime: number;
|
|
75
|
+
totalResults: number;
|
|
76
|
+
dateField: string;
|
|
77
|
+
queryType: 'range';
|
|
78
|
+
};
|
|
79
|
+
}>;
|
|
80
|
+
/**
|
|
81
|
+
* Query nodes before a specific date with full context
|
|
82
|
+
*
|
|
83
|
+
* @param date - Date threshold in ISO format (YYYY-MM-DD)
|
|
84
|
+
* @param dateField - Name of the date field to query
|
|
85
|
+
* @param options - Query options (entityType, sortOrder, limit)
|
|
86
|
+
* @returns Results grouped by entity type with relationships and metadata
|
|
87
|
+
*/
|
|
88
|
+
queryTimelineBefore(date: string, dateField: string, options?: {
|
|
89
|
+
entityType?: string;
|
|
90
|
+
sortOrder?: 'asc' | 'desc';
|
|
91
|
+
limit?: number;
|
|
92
|
+
}): Promise<{
|
|
93
|
+
nodes: GraphNode[];
|
|
94
|
+
relationships: GraphEdge[];
|
|
95
|
+
metadata: {
|
|
96
|
+
source: 'timeline';
|
|
97
|
+
executionTime: number;
|
|
98
|
+
totalResults: number;
|
|
99
|
+
dateField: string;
|
|
100
|
+
queryType: 'before';
|
|
101
|
+
};
|
|
102
|
+
}>;
|
|
103
|
+
/**
|
|
104
|
+
* Query nodes after a specific date with full context
|
|
105
|
+
*
|
|
106
|
+
* @param date - Date threshold in ISO format (YYYY-MM-DD)
|
|
107
|
+
* @param dateField - Name of the date field to query
|
|
108
|
+
* @param options - Query options (entityType, sortOrder, limit)
|
|
109
|
+
* @returns Results grouped by entity type with relationships and metadata
|
|
110
|
+
*/
|
|
111
|
+
queryTimelineAfter(date: string, dateField: string, options?: {
|
|
112
|
+
entityType?: string;
|
|
113
|
+
sortOrder?: 'asc' | 'desc';
|
|
114
|
+
limit?: number;
|
|
115
|
+
}): Promise<{
|
|
116
|
+
nodes: GraphNode[];
|
|
117
|
+
relationships: GraphEdge[];
|
|
118
|
+
metadata: {
|
|
119
|
+
source: 'timeline';
|
|
120
|
+
executionTime: number;
|
|
121
|
+
totalResults: number;
|
|
122
|
+
dateField: string;
|
|
123
|
+
queryType: 'after';
|
|
124
|
+
};
|
|
125
|
+
}>;
|
|
126
|
+
/**
|
|
127
|
+
* Query nodes by exact date match with full context
|
|
128
|
+
*
|
|
129
|
+
* @param date - Date to match in ISO format (YYYY-MM-DD)
|
|
130
|
+
* @param dateField - Name of the date field to query
|
|
131
|
+
* @param options - Query options (entityType, sortOrder, limit)
|
|
132
|
+
* @returns Results grouped by entity type with relationships and metadata
|
|
133
|
+
*/
|
|
134
|
+
queryTimelineExact(date: string, dateField: string, options?: {
|
|
135
|
+
entityType?: string;
|
|
136
|
+
sortOrder?: 'asc' | 'desc';
|
|
137
|
+
limit?: number;
|
|
138
|
+
}): Promise<{
|
|
139
|
+
nodes: GraphNode[];
|
|
140
|
+
relationships: GraphEdge[];
|
|
141
|
+
metadata: {
|
|
142
|
+
source: 'timeline';
|
|
143
|
+
executionTime: number;
|
|
144
|
+
totalResults: number;
|
|
145
|
+
dateField: string;
|
|
146
|
+
queryType: 'exact';
|
|
147
|
+
};
|
|
148
|
+
}>;
|
|
149
|
+
/**
|
|
150
|
+
* Query immediate neighbors (1-hop) of an entity with full node details
|
|
151
|
+
*
|
|
152
|
+
* @param entityId - Entity ID to query
|
|
153
|
+
* @param options - Query options (direction, filters, limits)
|
|
154
|
+
* @returns Results with full node details, relationships, and metadata
|
|
155
|
+
*/
|
|
156
|
+
queryGraphNeighbors(entityId: string, options?: {
|
|
157
|
+
direction?: 'outgoing' | 'incoming' | 'both';
|
|
158
|
+
includeRelationships?: string[];
|
|
159
|
+
excludeRelationships?: string[];
|
|
160
|
+
includeEntityTypes?: string[];
|
|
161
|
+
limit?: number;
|
|
162
|
+
}): Promise<{
|
|
163
|
+
neighbors: Array<{
|
|
164
|
+
node: GraphNode;
|
|
165
|
+
relationship: {
|
|
166
|
+
type: string;
|
|
167
|
+
direction: 'outgoing' | 'incoming';
|
|
168
|
+
};
|
|
169
|
+
}>;
|
|
170
|
+
metadata: {
|
|
171
|
+
source: 'graph';
|
|
172
|
+
executionTime: number;
|
|
173
|
+
totalResults: number;
|
|
174
|
+
};
|
|
175
|
+
}>;
|
|
176
|
+
/**
|
|
177
|
+
* Query subgraph (N-hop neighborhood) of an entity with full node details
|
|
178
|
+
*
|
|
179
|
+
* @param entityId - Entity ID to query
|
|
180
|
+
* @param depth - Number of hops (1-5)
|
|
181
|
+
* @param options - Query options (direction, filters, limits)
|
|
182
|
+
* @returns Results with full node details and metadata
|
|
183
|
+
*/
|
|
184
|
+
queryGraphSubgraph(entityId: string, depth: number, options?: {
|
|
185
|
+
direction?: 'outgoing' | 'incoming' | 'both';
|
|
186
|
+
includeRelationships?: string[];
|
|
187
|
+
excludeRelationships?: string[];
|
|
188
|
+
includeEntityTypes?: string[];
|
|
189
|
+
includeIntermediateNodes?: boolean;
|
|
190
|
+
limit?: number;
|
|
191
|
+
}): Promise<{
|
|
192
|
+
nodes: GraphNode[];
|
|
193
|
+
metadata: {
|
|
194
|
+
source: 'graph';
|
|
195
|
+
executionTime: number;
|
|
196
|
+
totalResults: number;
|
|
197
|
+
depth: number;
|
|
198
|
+
};
|
|
199
|
+
}>;
|
|
200
|
+
/**
|
|
201
|
+
* Find shortest path between two entities with full node details
|
|
202
|
+
*
|
|
203
|
+
* @param fromEntityId - Starting entity ID
|
|
204
|
+
* @param toEntityId - Target entity ID
|
|
205
|
+
* @param options - Query options (relationship filter, max depth)
|
|
206
|
+
* @returns Path with full node details or not found
|
|
207
|
+
*/
|
|
208
|
+
queryGraphPath(fromEntityId: string, toEntityId: string, options?: {
|
|
209
|
+
includeRelationships?: string[];
|
|
210
|
+
maxDepth?: number;
|
|
211
|
+
}): Promise<{
|
|
212
|
+
found: boolean;
|
|
213
|
+
path: GraphNode[];
|
|
214
|
+
edges: Array<{
|
|
215
|
+
from: string;
|
|
216
|
+
to: string;
|
|
217
|
+
type: string;
|
|
218
|
+
}>;
|
|
219
|
+
metadata: {
|
|
220
|
+
source: 'graph';
|
|
221
|
+
executionTime: number;
|
|
222
|
+
pathLength?: number;
|
|
223
|
+
};
|
|
224
|
+
}>;
|
|
225
|
+
/**
|
|
226
|
+
* List all relationship types available in the vault
|
|
227
|
+
*
|
|
228
|
+
* @returns List of relationship types with metadata
|
|
229
|
+
*/
|
|
230
|
+
listRelationshipTypes(): Promise<{
|
|
231
|
+
types: Array<{
|
|
232
|
+
id: string;
|
|
233
|
+
label?: string;
|
|
234
|
+
description?: string;
|
|
235
|
+
}>;
|
|
236
|
+
metadata: {
|
|
237
|
+
source: 'template';
|
|
238
|
+
executionTime: number;
|
|
239
|
+
totalResults: number;
|
|
240
|
+
};
|
|
241
|
+
}>;
|
|
56
242
|
}
|
|
57
243
|
//# sourceMappingURL=engine.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/search/engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/search/engine.ts"],"names":[],"mappings":"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"}
|