@hiveforge/hivemind-mcp 2.2.0 → 2.3.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 +18 -9
- package/dist/cli.js +193 -2
- package/dist/cli.js.map +1 -1
- package/dist/mcp/index.d.ts +8 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +8 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/tool-generator.d.ts +108 -0
- package/dist/mcp/tool-generator.d.ts.map +1 -0
- package/dist/mcp/tool-generator.js +245 -0
- package/dist/mcp/tool-generator.js.map +1 -0
- package/dist/parser/markdown.d.ts +9 -0
- package/dist/parser/markdown.d.ts.map +1 -1
- package/dist/parser/markdown.js +13 -2
- package/dist/parser/markdown.js.map +1 -1
- package/dist/server.d.ts +8 -4
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +66 -199
- package/dist/server.js.map +1 -1
- package/dist/templates/builtin/worldbuilding.d.ts +20 -0
- package/dist/templates/builtin/worldbuilding.d.ts.map +1 -0
- package/dist/templates/builtin/worldbuilding.js +464 -0
- package/dist/templates/builtin/worldbuilding.js.map +1 -0
- package/dist/templates/detector.d.ts +51 -0
- package/dist/templates/detector.d.ts.map +1 -0
- package/dist/templates/detector.js +71 -0
- package/dist/templates/detector.js.map +1 -0
- package/dist/templates/folder-mapper.d.ts +66 -0
- package/dist/templates/folder-mapper.d.ts.map +1 -0
- package/dist/templates/folder-mapper.js +148 -0
- package/dist/templates/folder-mapper.js.map +1 -0
- package/dist/templates/index.d.ts +15 -0
- package/dist/templates/index.d.ts.map +1 -0
- package/dist/templates/index.js +15 -0
- package/dist/templates/index.js.map +1 -0
- package/dist/templates/loader.d.ts +115 -0
- package/dist/templates/loader.d.ts.map +1 -0
- package/dist/templates/loader.js +202 -0
- package/dist/templates/loader.js.map +1 -0
- package/dist/templates/registry.d.ts +97 -0
- package/dist/templates/registry.d.ts.map +1 -0
- package/dist/templates/registry.js +141 -0
- package/dist/templates/registry.js.map +1 -0
- package/dist/templates/schema-factory.d.ts +76 -0
- package/dist/templates/schema-factory.d.ts.map +1 -0
- package/dist/templates/schema-factory.js +171 -0
- package/dist/templates/schema-factory.js.map +1 -0
- package/dist/templates/types.d.ts +12 -0
- package/dist/templates/types.d.ts.map +1 -1
- package/dist/templates/validator.d.ts +200 -0
- package/dist/templates/validator.d.ts.map +1 -0
- package/dist/templates/validator.js +136 -0
- package/dist/templates/validator.js.map +1 -0
- package/dist/types/index.d.ts +57 -21
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +39 -15
- package/dist/types/index.js.map +1 -1
- package/dist/vault/reader.d.ts.map +1 -1
- package/dist/vault/reader.js +15 -1
- package/dist/vault/reader.js.map +1 -1
- package/package.json +7 -4
package/README.md
CHANGED
|
@@ -5,12 +5,12 @@
|
|
|
5
5
|
# Hivemind MCP Server
|
|
6
6
|
|
|
7
7
|
[](https://www.npmjs.com/package/@hiveforge/hivemind-mcp)
|
|
8
|
-
[](https://github.com/hiveforge-sh/hivemind/actions/workflows/test.yml)
|
|
9
|
+
[](https://github.com/hiveforge-sh/hivemind/actions/workflows/release.yml)
|
|
10
|
+
[](https://codecov.io/gh/hiveforge-sh/hivemind)
|
|
11
11
|
[](https://opensource.org/licenses/MIT)
|
|
12
|
-
[](https://github.com/hiveforge-sh/hivemind/issues)
|
|
13
|
+
[](https://github.com/hiveforge-sh/hivemind/stargazers)
|
|
14
14
|
|
|
15
15
|
An MCP (Model Context Protocol) server for Obsidian worldbuilding vaults that provides AI tools with consistent, canonical context from your fictional worlds.
|
|
16
16
|
|
|
@@ -140,9 +140,9 @@ Obsidian Vault → File Watcher → Markdown Parser → Knowledge Graph
|
|
|
140
140
|
|
|
141
141
|
## Development Status
|
|
142
142
|
|
|
143
|
-
**Current
|
|
143
|
+
**Current**: Milestone 1.0 Complete ✅ | **Next**: Milestone 2.0 Template System 🚧
|
|
144
144
|
|
|
145
|
-
###
|
|
145
|
+
### v1.0 — MVP + Core Features (Shipped)
|
|
146
146
|
|
|
147
147
|
- [x] MCP server with hybrid search (vector, graph, keyword)
|
|
148
148
|
- [x] Vault templates for all entity types (Character, Location, Event, Faction, Lore, Asset)
|
|
@@ -152,9 +152,18 @@ Obsidian Vault → File Watcher → Markdown Parser → Knowledge Graph
|
|
|
152
152
|
- [x] Obsidian plugin with image generation
|
|
153
153
|
- [x] CI/CD with semantic-release and CodeQL scanning
|
|
154
154
|
|
|
155
|
-
|
|
155
|
+
### v2.0 — Template System (In Progress)
|
|
156
|
+
|
|
157
|
+
Make Hivemind domain-agnostic with pluggable templates:
|
|
158
|
+
|
|
159
|
+
- [ ] Template registry with config-driven entity definitions
|
|
160
|
+
- [ ] Built-in templates: worldbuilding, research, people-management
|
|
161
|
+
- [ ] Custom entity types via config (no coding required)
|
|
162
|
+
- [ ] Auto-generated MCP tools per entity type
|
|
163
|
+
- [ ] Custom relationship types per template
|
|
164
|
+
|
|
165
|
+
**Also pending:**
|
|
156
166
|
- [ ] Obsidian community plugin submission
|
|
157
|
-
- [ ] Template System (make Hivemind domain-agnostic)
|
|
158
167
|
|
|
159
168
|
## MCP Tools
|
|
160
169
|
|
package/dist/cli.js
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { readFileSync, writeFileSync, existsSync } from 'fs';
|
|
3
|
-
import { resolve, join } from 'path';
|
|
3
|
+
import { resolve, join, basename } from 'path';
|
|
4
4
|
import * as readline from 'readline/promises';
|
|
5
5
|
import { stdin as input, stdout as output } from 'process';
|
|
6
|
+
import { FolderMapper } from './templates/folder-mapper.js';
|
|
7
|
+
import { templateRegistry } from './templates/registry.js';
|
|
8
|
+
import { worldbuildingTemplate } from './templates/builtin/worldbuilding.js';
|
|
6
9
|
const DEFAULT_CONFIG = {
|
|
7
10
|
vault: {
|
|
8
11
|
path: '',
|
|
@@ -95,13 +98,197 @@ async function start() {
|
|
|
95
98
|
const { startServer } = await import('./index.js');
|
|
96
99
|
await startServer();
|
|
97
100
|
}
|
|
101
|
+
/**
|
|
102
|
+
* Fix command: helps add frontmatter to skipped files
|
|
103
|
+
*/
|
|
104
|
+
async function fix() {
|
|
105
|
+
const vaultPath = getVaultPath();
|
|
106
|
+
if (!vaultPath) {
|
|
107
|
+
console.error('❌ Could not determine vault path. Use --vault flag or create config.json');
|
|
108
|
+
process.exit(1);
|
|
109
|
+
}
|
|
110
|
+
const skippedLogPath = join(vaultPath, '.hivemind', 'skipped-files.log');
|
|
111
|
+
if (!existsSync(skippedLogPath)) {
|
|
112
|
+
console.log('✅ No skipped files log found. Run "npx @hiveforge/hivemind-mcp start" first to scan vault.');
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
console.log('🔧 Hivemind Fix - Add frontmatter to skipped files\n');
|
|
116
|
+
// Read and parse skipped files log
|
|
117
|
+
const logContent = readFileSync(skippedLogPath, 'utf-8');
|
|
118
|
+
const skippedFiles = parseSkippedFilesLog(logContent);
|
|
119
|
+
if (skippedFiles.length === 0) {
|
|
120
|
+
console.log('✅ No skipped files found!');
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
console.log(`Found ${skippedFiles.length} file(s) needing frontmatter.\n`);
|
|
124
|
+
// Initialize folder mapper
|
|
125
|
+
const folderMapper = new FolderMapper();
|
|
126
|
+
// Initialize template registry for entity types
|
|
127
|
+
if (!templateRegistry.has('worldbuilding')) {
|
|
128
|
+
templateRegistry.register(worldbuildingTemplate, 'builtin');
|
|
129
|
+
templateRegistry.activate('worldbuilding');
|
|
130
|
+
}
|
|
131
|
+
const activeTemplate = templateRegistry.getActive();
|
|
132
|
+
const entityTypes = activeTemplate?.entityTypes.map(e => e.name) || ['character', 'location', 'event', 'faction', 'lore', 'asset', 'reference'];
|
|
133
|
+
const rl = readline.createInterface({ input, output });
|
|
134
|
+
try {
|
|
135
|
+
let fixed = 0;
|
|
136
|
+
let skipped = 0;
|
|
137
|
+
for (const filePath of skippedFiles) {
|
|
138
|
+
const fullPath = join(vaultPath, filePath);
|
|
139
|
+
if (!existsSync(fullPath)) {
|
|
140
|
+
console.log(`⚠️ File not found: ${filePath}`);
|
|
141
|
+
skipped++;
|
|
142
|
+
continue;
|
|
143
|
+
}
|
|
144
|
+
// Infer type from folder
|
|
145
|
+
const inferredType = folderMapper.inferType(filePath);
|
|
146
|
+
const fileName = basename(filePath, '.md');
|
|
147
|
+
console.log(`\n📄 ${filePath}`);
|
|
148
|
+
if (inferredType) {
|
|
149
|
+
console.log(` Inferred type: ${inferredType}`);
|
|
150
|
+
const confirm = await rl.question(` Use '${inferredType}'? (Y/n/skip): `);
|
|
151
|
+
if (confirm.toLowerCase() === 'skip' || confirm.toLowerCase() === 's') {
|
|
152
|
+
console.log(' Skipped.');
|
|
153
|
+
skipped++;
|
|
154
|
+
continue;
|
|
155
|
+
}
|
|
156
|
+
if (confirm.toLowerCase() === 'n' || confirm.toLowerCase() === 'no') {
|
|
157
|
+
// Let user choose type
|
|
158
|
+
const selectedType = await selectType(rl, entityTypes);
|
|
159
|
+
if (selectedType) {
|
|
160
|
+
await addFrontmatter(fullPath, selectedType, fileName);
|
|
161
|
+
fixed++;
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
skipped++;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
// Use inferred type
|
|
169
|
+
await addFrontmatter(fullPath, inferredType, fileName);
|
|
170
|
+
fixed++;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
console.log(' Could not infer type from folder.');
|
|
175
|
+
const selectedType = await selectType(rl, entityTypes);
|
|
176
|
+
if (selectedType) {
|
|
177
|
+
await addFrontmatter(fullPath, selectedType, fileName);
|
|
178
|
+
fixed++;
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
skipped++;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
console.log(`\n✅ Done! Fixed: ${fixed}, Skipped: ${skipped}`);
|
|
186
|
+
console.log(' Run "npx @hiveforge/hivemind-mcp start" to re-index vault.');
|
|
187
|
+
}
|
|
188
|
+
finally {
|
|
189
|
+
rl.close();
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Get vault path from config or args
|
|
194
|
+
*/
|
|
195
|
+
function getVaultPath() {
|
|
196
|
+
// Check for --vault flag in args
|
|
197
|
+
const vaultIndex = process.argv.indexOf('--vault');
|
|
198
|
+
if (vaultIndex !== -1 && process.argv[vaultIndex + 1]) {
|
|
199
|
+
return resolve(process.argv[vaultIndex + 1]);
|
|
200
|
+
}
|
|
201
|
+
// Check for config.json
|
|
202
|
+
const configPath = resolve(process.cwd(), 'config.json');
|
|
203
|
+
if (existsSync(configPath)) {
|
|
204
|
+
try {
|
|
205
|
+
const config = JSON.parse(readFileSync(configPath, 'utf-8'));
|
|
206
|
+
if (config.vault?.path) {
|
|
207
|
+
return resolve(config.vault.path);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
catch {
|
|
211
|
+
// Ignore config parse errors
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
// Fall back to current directory
|
|
215
|
+
return process.cwd();
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Parse skipped files from log content
|
|
219
|
+
*/
|
|
220
|
+
function parseSkippedFilesLog(content) {
|
|
221
|
+
const files = [];
|
|
222
|
+
const lines = content.split('\n');
|
|
223
|
+
for (const line of lines) {
|
|
224
|
+
// Match lines like " • path/to/file.md"
|
|
225
|
+
const match = line.match(/^\s+[•]\s+(.+\.md)$/);
|
|
226
|
+
if (match) {
|
|
227
|
+
files.push(match[1].trim());
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
return files;
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Let user select an entity type
|
|
234
|
+
*/
|
|
235
|
+
async function selectType(rl, types) {
|
|
236
|
+
console.log(' Available types:');
|
|
237
|
+
types.forEach((t, i) => console.log(` ${i + 1}. ${t}`));
|
|
238
|
+
console.log(` 0. Skip this file`);
|
|
239
|
+
const choice = await rl.question(' Enter number: ');
|
|
240
|
+
const num = parseInt(choice, 10);
|
|
241
|
+
if (num === 0 || isNaN(num) || num < 1 || num > types.length) {
|
|
242
|
+
return null;
|
|
243
|
+
}
|
|
244
|
+
return types[num - 1];
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Add frontmatter to a file
|
|
248
|
+
*/
|
|
249
|
+
async function addFrontmatter(filePath, entityType, name) {
|
|
250
|
+
const content = readFileSync(filePath, 'utf-8');
|
|
251
|
+
// Generate unique ID
|
|
252
|
+
const id = generateId(name, entityType);
|
|
253
|
+
// Create frontmatter
|
|
254
|
+
const frontmatter = [
|
|
255
|
+
'---',
|
|
256
|
+
`id: ${id}`,
|
|
257
|
+
`type: ${entityType}`,
|
|
258
|
+
`status: draft`,
|
|
259
|
+
`name: "${name}"`,
|
|
260
|
+
`tags: []`,
|
|
261
|
+
`aliases: []`,
|
|
262
|
+
'---',
|
|
263
|
+
'',
|
|
264
|
+
].join('\n');
|
|
265
|
+
// Check if file already has frontmatter
|
|
266
|
+
if (content.trimStart().startsWith('---')) {
|
|
267
|
+
console.log(' ⚠️ File already has frontmatter block, skipping...');
|
|
268
|
+
return;
|
|
269
|
+
}
|
|
270
|
+
// Prepend frontmatter
|
|
271
|
+
const newContent = frontmatter + content;
|
|
272
|
+
writeFileSync(filePath, newContent, 'utf-8');
|
|
273
|
+
console.log(` ✅ Added frontmatter (id: ${id})`);
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Generate a unique ID from name and type
|
|
277
|
+
*/
|
|
278
|
+
function generateId(name, entityType) {
|
|
279
|
+
const slug = name
|
|
280
|
+
.toLowerCase()
|
|
281
|
+
.replace(/[^a-z0-9]+/g, '-')
|
|
282
|
+
.replace(/^-|-$/g, '');
|
|
283
|
+
return `${entityType}-${slug}`;
|
|
284
|
+
}
|
|
98
285
|
async function validate() {
|
|
99
286
|
const configPath = resolve(process.cwd(), 'config.json');
|
|
100
287
|
console.log('🔍 Validating Hivemind configuration...\n');
|
|
101
288
|
// Check config exists
|
|
102
289
|
if (!existsSync(configPath)) {
|
|
103
290
|
console.error('❌ config.json not found');
|
|
104
|
-
console.log(' Run "npx hivemind init" to create one');
|
|
291
|
+
console.log(' Run "npx @hiveforge/hivemind-mcp init" to create one');
|
|
105
292
|
process.exit(1);
|
|
106
293
|
}
|
|
107
294
|
// Load and validate config
|
|
@@ -174,12 +361,16 @@ else {
|
|
|
174
361
|
case 'validate':
|
|
175
362
|
validate();
|
|
176
363
|
break;
|
|
364
|
+
case 'fix':
|
|
365
|
+
fix();
|
|
366
|
+
break;
|
|
177
367
|
default:
|
|
178
368
|
console.log('Hivemind MCP Server\n');
|
|
179
369
|
console.log('Usage:');
|
|
180
370
|
console.log(' npx @hiveforge/hivemind-mcp init - Interactive configuration setup');
|
|
181
371
|
console.log(' npx @hiveforge/hivemind-mcp validate - Validate configuration');
|
|
182
372
|
console.log(' npx @hiveforge/hivemind-mcp start - Start the MCP server');
|
|
373
|
+
console.log(' npx @hiveforge/hivemind-mcp fix - Add frontmatter to skipped files');
|
|
183
374
|
console.log(' npx @hiveforge/hivemind-mcp --vault <path> - Start with specified vault path');
|
|
184
375
|
console.log(' npx @hiveforge/hivemind-mcp --vault . - Start with current directory as vault');
|
|
185
376
|
process.exit(command ? 1 : 0);
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAC/C,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,KAAK,IAAI,KAAK,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAE7E,MAAM,cAAc,GAAG;IACrB,KAAK,EAAE;QACL,IAAI,EAAE,EAAE;QACR,eAAe,EAAE,IAAI;QACrB,UAAU,EAAE,GAAG;KAChB;IACD,MAAM,EAAE;QACN,SAAS,EAAE,OAAO;KACnB;IACD,QAAQ,EAAE;QACR,QAAQ,EAAE,aAAa;QACvB,SAAS,EAAE,GAAG;QACd,kBAAkB,EAAE,KAAK;QACzB,oBAAoB,EAAE,IAAI;KAC3B;CACF,CAAC;AAEF,KAAK,UAAU,IAAI;IACjB,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;IAE9D,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAEvD,IAAI,CAAC;QACH,iCAAiC;QACjC,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,CAAC,CAAC;QACzD,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3B,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC,CAAC;YACtF,IAAI,SAAS,CAAC,WAAW,EAAE,KAAK,GAAG,EAAE,CAAC;gBACpC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;gBAChC,EAAE,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO;YACT,CAAC;QACH,CAAC;QAED,qBAAqB;QACrB,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC,CAAC;QACxE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAC1C,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,IAAI,CAAC,qCAAqC,YAAY,EAAE,CAAC,CAAC;YAClE,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC;YAC9D,IAAI,OAAO,CAAC,WAAW,EAAE,KAAK,GAAG,EAAE,CAAC;gBAClC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;gBAChC,EAAE,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO;YACT,CAAC;QACH,CAAC;QAED,iCAAiC;QACjC,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC,CAAC;QAEvF,gBAAgB;QAChB,MAAM,MAAM,GAAG;YACb,GAAG,cAAc;YACjB,KAAK,EAAE;gBACL,GAAG,cAAc,CAAC,KAAK;gBACvB,IAAI,EAAE,YAAY;aACnB;YACD,QAAQ,EAAE;gBACR,GAAG,cAAc,CAAC,QAAQ;gBAC1B,kBAAkB,EAAE,YAAY,CAAC,WAAW,EAAE,KAAK,GAAG;aACvD;SACF,CAAC;QAEF,eAAe;QACf,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,8BAA8B,UAAU,EAAE,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;QAExE,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;QAC5C,EAAE,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,KAAK;IAClB,oEAAoE;IACpE,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAEtD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,CAAC,CAAC;QACzD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,KAAK,CAAC,wEAAwE,CAAC,CAAC;YACxF,OAAO,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;YACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;IAEpD,sEAAsE;IACtE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;IACnD,MAAM,WAAW,EAAE,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,GAAG;IAChB,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,0EAA0E,CAAC,CAAC;QAC1F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,mBAAmB,CAAC,CAAC;IAEzE,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,4FAA4F,CAAC,CAAC;QAC1G,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;IAEpE,mCAAmC;IACnC,MAAM,UAAU,GAAG,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IACzD,MAAM,YAAY,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAEtD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QACzC,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,SAAS,YAAY,CAAC,MAAM,iCAAiC,CAAC,CAAC;IAE3E,2BAA2B;IAC3B,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;IAExC,gDAAgD;IAChD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC;QAC3C,gBAAgB,CAAC,QAAQ,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAC;QAC5D,gBAAgB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IAC7C,CAAC;IACD,MAAM,cAAc,GAAG,gBAAgB,CAAC,SAAS,EAAE,CAAC;IACpD,MAAM,WAAW,GAAG,cAAc,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IAEhJ,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAEvD,IAAI,CAAC;QACH,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAE3C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC1B,OAAO,CAAC,GAAG,CAAC,uBAAuB,QAAQ,EAAE,CAAC,CAAC;gBAC/C,OAAO,EAAE,CAAC;gBACV,SAAS;YACX,CAAC;YAED,yBAAyB;YACzB,MAAM,YAAY,GAAG,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACtD,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAE3C,OAAO,CAAC,GAAG,CAAC,QAAQ,QAAQ,EAAE,CAAC,CAAC;YAEhC,IAAI,YAAY,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,qBAAqB,YAAY,EAAE,CAAC,CAAC;gBACjD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,YAAY,iBAAiB,CAAC,CAAC;gBAE5E,IAAI,OAAO,CAAC,WAAW,EAAE,KAAK,MAAM,IAAI,OAAO,CAAC,WAAW,EAAE,KAAK,GAAG,EAAE,CAAC;oBACtE,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;oBAC3B,OAAO,EAAE,CAAC;oBACV,SAAS;gBACX,CAAC;gBAED,IAAI,OAAO,CAAC,WAAW,EAAE,KAAK,GAAG,IAAI,OAAO,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC;oBACpE,uBAAuB;oBACvB,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;oBACvD,IAAI,YAAY,EAAE,CAAC;wBACjB,MAAM,cAAc,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;wBACvD,KAAK,EAAE,CAAC;oBACV,CAAC;yBAAM,CAAC;wBACN,OAAO,EAAE,CAAC;oBACZ,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,oBAAoB;oBACpB,MAAM,cAAc,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;oBACvD,KAAK,EAAE,CAAC;gBACV,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;gBACpD,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;gBACvD,IAAI,YAAY,EAAE,CAAC;oBACjB,MAAM,cAAc,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;oBACvD,KAAK,EAAE,CAAC;gBACV,CAAC;qBAAM,CAAC;oBACN,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,cAAc,OAAO,EAAE,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC;IAE/E,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,YAAY;IACnB,iCAAiC;IACjC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACnD,IAAI,UAAU,KAAK,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,EAAE,CAAC;QACtD,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,wBAAwB;IACxB,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,CAAC,CAAC;IACzD,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;YAC7D,IAAI,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;gBACvB,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,6BAA6B;QAC/B,CAAC;IACH,CAAC;IAED,iCAAiC;IACjC,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAAC,OAAe;IAC3C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAElC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,yCAAyC;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAChD,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,UAAU,CAAC,EAAsB,EAAE,KAAe;IAC/D,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACnC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IAEtC,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IACtD,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAEjC,IAAI,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QAC7D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,cAAc,CAAC,QAAgB,EAAE,UAAkB,EAAE,IAAY;IAC9E,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAEhD,qBAAqB;IACrB,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAExC,qBAAqB;IACrB,MAAM,WAAW,GAAG;QAClB,KAAK;QACL,OAAO,EAAE,EAAE;QACX,SAAS,UAAU,EAAE;QACrB,eAAe;QACf,UAAU,IAAI,GAAG;QACjB,UAAU;QACV,aAAa;QACb,KAAK;QACL,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,wCAAwC;IACxC,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;QACtE,OAAO;IACT,CAAC;IAED,sBAAsB;IACtB,MAAM,UAAU,GAAG,WAAW,GAAG,OAAO,CAAC;IACzC,aAAa,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAC;AACpD,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,IAAY,EAAE,UAAkB;IAClD,MAAM,IAAI,GAAG,IAAI;SACd,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAEzB,OAAO,GAAG,UAAU,IAAI,IAAI,EAAE,CAAC;AACjC,CAAC;AAED,KAAK,UAAU,QAAQ;IACrB,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,CAAC,CAAC;IAEzD,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;IAEzD,sBAAsB;IACtB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;QACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,2BAA2B;IAC3B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;QAE7D,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;QAElD,mBAAmB;QACnB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;YACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,gCAAgC,SAAS,EAAE,CAAC,CAAC;YAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,wBAAwB,SAAS,EAAE,CAAC,CAAC;QAEjD,sBAAsB;QACtB,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,SAAS,aAAa,CAAC,GAAW;YAChC,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC1D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;oBAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;oBACvC,IAAI,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;wBACvD,aAAa,CAAC,QAAQ,CAAC,CAAC;oBAC1B,CAAC;yBAAM,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;wBACxD,OAAO,EAAE,CAAC;oBACZ,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,iCAAiC;YACnC,CAAC;QACH,CAAC;QACD,aAAa,CAAC,SAAS,CAAC,CAAC;QAEzB,OAAO,CAAC,GAAG,CAAC,WAAW,OAAO,mBAAmB,CAAC,CAAC;QAEnD,iBAAiB;QACjB,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QAC5D,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;QACpE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;QACvD,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IAElD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;QACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,gBAAgB;AAChB,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAEhC,oCAAoC;AACpC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;IAC1B,KAAK,EAAE,CAAC;AACV,CAAC;KAAM,CAAC;IACN,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,MAAM;YACT,IAAI,EAAE,CAAC;YACP,MAAM;QACR,KAAK,OAAO;YACV,KAAK,EAAE,CAAC;YACR,MAAM;QACR,KAAK,UAAU;YACb,QAAQ,EAAE,CAAC;YACX,MAAM;QACR,KAAK,KAAK;YACR,GAAG,EAAE,CAAC;YACN,MAAM;QACR;YACE,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,mFAAmF,CAAC,CAAC;YACjG,OAAO,CAAC,GAAG,CAAC,0EAA0E,CAAC,CAAC;YACxF,OAAO,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAC;YACtF,OAAO,CAAC,GAAG,CAAC,oFAAoF,CAAC,CAAC;YAClG,OAAO,CAAC,GAAG,CAAC,mFAAmF,CAAC,CAAC;YACjG,OAAO,CAAC,GAAG,CAAC,yFAAyF,CAAC,CAAC;YACvG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,qBAAqB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dynamic MCP tool generation from template entity types.
|
|
3
|
+
*
|
|
4
|
+
* Generates query_<entityType> and list_<entityType> tools for each
|
|
5
|
+
* entity type defined in the active template.
|
|
6
|
+
*/
|
|
7
|
+
import type { EntityTypeConfig } from '../templates/types.js';
|
|
8
|
+
import { z } from 'zod';
|
|
9
|
+
/**
|
|
10
|
+
* MCP Tool definition structure.
|
|
11
|
+
*/
|
|
12
|
+
export interface ToolDefinition {
|
|
13
|
+
name: string;
|
|
14
|
+
description: string;
|
|
15
|
+
inputSchema: {
|
|
16
|
+
type: 'object';
|
|
17
|
+
properties: Record<string, any>;
|
|
18
|
+
required: string[];
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Standard query arguments schema.
|
|
23
|
+
* All query tools share this interface.
|
|
24
|
+
*/
|
|
25
|
+
export declare const QueryEntityArgsSchema: z.ZodObject<{
|
|
26
|
+
id: z.ZodString;
|
|
27
|
+
includeContent: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
28
|
+
contentLimit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
29
|
+
}, z.core.$strip>;
|
|
30
|
+
export type QueryEntityArgs = z.infer<typeof QueryEntityArgsSchema>;
|
|
31
|
+
/**
|
|
32
|
+
* Standard list arguments schema.
|
|
33
|
+
* All list tools share this interface.
|
|
34
|
+
*/
|
|
35
|
+
export declare const ListEntityArgsSchema: z.ZodObject<{
|
|
36
|
+
limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
37
|
+
status: z.ZodOptional<z.ZodEnum<{
|
|
38
|
+
draft: "draft";
|
|
39
|
+
pending: "pending";
|
|
40
|
+
canon: "canon";
|
|
41
|
+
"non-canon": "non-canon";
|
|
42
|
+
archived: "archived";
|
|
43
|
+
}>>;
|
|
44
|
+
includeContent: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
45
|
+
contentLimit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
46
|
+
}, z.core.$strip>;
|
|
47
|
+
export type ListEntityArgs = z.infer<typeof ListEntityArgsSchema>;
|
|
48
|
+
/**
|
|
49
|
+
* Generate a query_<entityType> tool definition.
|
|
50
|
+
*
|
|
51
|
+
* @param entityType - Entity type configuration from template
|
|
52
|
+
* @returns Tool definition for MCP registration
|
|
53
|
+
*/
|
|
54
|
+
export declare function generateQueryTool(entityType: EntityTypeConfig): ToolDefinition;
|
|
55
|
+
/**
|
|
56
|
+
* Generate a list_<entityType> tool definition.
|
|
57
|
+
*
|
|
58
|
+
* @param entityType - Entity type configuration from template
|
|
59
|
+
* @returns Tool definition for MCP registration
|
|
60
|
+
*/
|
|
61
|
+
export declare function generateListTool(entityType: EntityTypeConfig): ToolDefinition;
|
|
62
|
+
/**
|
|
63
|
+
* Generate all tools for a set of entity types.
|
|
64
|
+
*
|
|
65
|
+
* @param entityTypes - Array of entity type configurations
|
|
66
|
+
* @returns Array of tool definitions (query + list for each type)
|
|
67
|
+
*/
|
|
68
|
+
export declare function generateToolsForEntityTypes(entityTypes: EntityTypeConfig[]): ToolDefinition[];
|
|
69
|
+
/**
|
|
70
|
+
* Check if a tool name matches the query_<entityType> pattern.
|
|
71
|
+
*
|
|
72
|
+
* @param toolName - Tool name to check
|
|
73
|
+
* @returns Entity type name if match, null otherwise
|
|
74
|
+
*/
|
|
75
|
+
export declare function parseQueryToolName(toolName: string): string | null;
|
|
76
|
+
/**
|
|
77
|
+
* Check if a tool name matches the list_<entityType> pattern.
|
|
78
|
+
*
|
|
79
|
+
* @param toolName - Tool name to check
|
|
80
|
+
* @returns Entity type name if match, null otherwise
|
|
81
|
+
*/
|
|
82
|
+
export declare function parseListToolName(toolName: string): string | null;
|
|
83
|
+
/**
|
|
84
|
+
* Format an entity with its relationships for response.
|
|
85
|
+
*
|
|
86
|
+
* Generic formatter that works with any entity type.
|
|
87
|
+
*
|
|
88
|
+
* @param entityType - Entity type configuration
|
|
89
|
+
* @param result - Query result with node and relatedNodes
|
|
90
|
+
* @param includeContent - Whether to include content body
|
|
91
|
+
* @param contentLimit - Maximum content length
|
|
92
|
+
* @returns Formatted markdown response
|
|
93
|
+
*/
|
|
94
|
+
export declare function formatEntityWithRelationships(entityType: EntityTypeConfig, result: {
|
|
95
|
+
node: any;
|
|
96
|
+
relatedNodes: any[];
|
|
97
|
+
}, includeContent?: boolean, contentLimit?: number): string;
|
|
98
|
+
/**
|
|
99
|
+
* Format a list of entities for response.
|
|
100
|
+
*
|
|
101
|
+
* @param entityType - Entity type configuration
|
|
102
|
+
* @param nodes - Array of nodes to format
|
|
103
|
+
* @param includeContent - Whether to include content snippets
|
|
104
|
+
* @param contentLimit - Maximum content length per snippet
|
|
105
|
+
* @returns Formatted markdown response
|
|
106
|
+
*/
|
|
107
|
+
export declare function formatEntityList(entityType: EntityTypeConfig, nodes: any[], includeContent?: boolean, contentLimit?: number): string;
|
|
108
|
+
//# sourceMappingURL=tool-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-generator.d.ts","sourceRoot":"","sources":["../../src/mcp/tool-generator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAChC,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;CACH;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;;;iBAIhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;iBAK/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,gBAAgB,GAAG,cAAc,CA8B9E;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,gBAAgB,GAAG,cAAc,CAsC7E;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,gBAAgB,EAAE,GAAG,cAAc,EAAE,CAS7F;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGlE;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGjE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,6BAA6B,CAC3C,UAAU,EAAE,gBAAgB,EAC5B,MAAM,EAAE;IAAE,IAAI,EAAE,GAAG,CAAC;IAAC,YAAY,EAAE,GAAG,EAAE,CAAA;CAAE,EAC1C,cAAc,UAAO,EACrB,YAAY,SAAM,GACjB,MAAM,CAkER;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,gBAAgB,EAC5B,KAAK,EAAE,GAAG,EAAE,EACZ,cAAc,UAAQ,EACtB,YAAY,SAAM,GACjB,MAAM,CAyBR"}
|