mcp-grampsweb 1.0.1 → 1.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.
@@ -4,6 +4,8 @@
4
4
  import { grampsClient } from "../client.js";
5
5
  import { API_ENDPOINTS } from "../constants.js";
6
6
  import { createPersonSchema, createFamilySchema, createEventSchema, createPlaceSchema, createSourceSchema, createCitationSchema, createNoteSchema, createMediaSchema, createRepositorySchema, } from "../schemas/entities.js";
7
+ import { formatCreatedEntity } from "../utils/response.js";
8
+ import { formatPersonName } from "../utils/formatting.js";
7
9
  // Gender string to number mapping
8
10
  function mapGender(gender) {
9
11
  if (!gender)
@@ -51,7 +53,19 @@ export async function grampsCreatePerson(params) {
51
53
  private: validated.private,
52
54
  };
53
55
  const response = await grampsClient.post(API_ENDPOINTS.PEOPLE, person);
54
- return `Created person: ${response.gramps_id} (handle: ${response.handle})`;
56
+ const genderMap = {
57
+ 0: "female",
58
+ 1: "male",
59
+ 2: "unknown",
60
+ };
61
+ const mappedGender = mapGender(validated.gender);
62
+ const genderStr = mappedGender !== undefined ? genderMap[mappedGender] : "unknown";
63
+ return formatCreatedEntity("person", formatPersonName(validated.primary_name), {
64
+ handle: response.handle,
65
+ gramps_id: response.gramps_id,
66
+ name: formatPersonName(validated.primary_name),
67
+ gender: genderStr,
68
+ }, `Use handle "${response.handle}" to link this person to families or events with gramps_create_family.`);
55
69
  }
56
70
  /**
57
71
  * Create a family
@@ -83,7 +97,23 @@ export async function grampsCreateFamily(params) {
83
97
  private: validated.private,
84
98
  };
85
99
  const response = await grampsClient.post(API_ENDPOINTS.FAMILIES, family);
86
- return `Created family: ${response.gramps_id} (handle: ${response.handle})`;
100
+ const members = [];
101
+ if (validated.father_handle)
102
+ members.push("father");
103
+ if (validated.mother_handle)
104
+ members.push("mother");
105
+ if (validated.child_ref_list?.length)
106
+ members.push(`${validated.child_ref_list.length} child(ren)`);
107
+ return formatCreatedEntity("family", response.gramps_id, {
108
+ handle: response.handle,
109
+ gramps_id: response.gramps_id,
110
+ father_handle: validated.father_handle || null,
111
+ mother_handle: validated.mother_handle || null,
112
+ children_count: validated.child_ref_list?.length || 0,
113
+ type: validated.type || "Unknown",
114
+ }, members.length > 0
115
+ ? `Family links ${members.join(", ")}. Add marriage/events with gramps_create_event.`
116
+ : "Add family members by updating with person handles.");
87
117
  }
88
118
  /**
89
119
  * Create an event
@@ -108,7 +138,14 @@ export async function grampsCreateEvent(params) {
108
138
  private: validated.private,
109
139
  };
110
140
  const response = await grampsClient.post(API_ENDPOINTS.EVENTS, event);
111
- return `Created event: ${response.gramps_id} (handle: ${response.handle})`;
141
+ return formatCreatedEntity("event", `${validated.type} (${response.gramps_id})`, {
142
+ handle: response.handle,
143
+ gramps_id: response.gramps_id,
144
+ type: validated.type,
145
+ date: validated.date || null,
146
+ place_handle: validated.place || null,
147
+ description: validated.description || null,
148
+ }, `Link this event to a person or family using event_ref_list with handle "${response.handle}".`);
112
149
  }
113
150
  /**
114
151
  * Create a place
@@ -137,7 +174,14 @@ export async function grampsCreatePlace(params) {
137
174
  private: validated.private,
138
175
  };
139
176
  const response = await grampsClient.post(API_ENDPOINTS.PLACES, place);
140
- return `Created place: ${response.gramps_id} (handle: ${response.handle})`;
177
+ const placeName = validated.name?.value || validated.title || response.gramps_id;
178
+ return formatCreatedEntity("place", placeName, {
179
+ handle: response.handle,
180
+ gramps_id: response.gramps_id,
181
+ name: placeName,
182
+ type: validated.place_type || null,
183
+ coordinates: validated.lat && validated.long ? { lat: validated.lat, long: validated.long } : null,
184
+ }, `Use handle "${response.handle}" when creating events to link them to this place.`);
141
185
  }
142
186
  /**
143
187
  * Create a source
@@ -161,7 +205,13 @@ export async function grampsCreateSource(params) {
161
205
  private: validated.private,
162
206
  };
163
207
  const response = await grampsClient.post(API_ENDPOINTS.SOURCES, source);
164
- return `Created source: ${response.gramps_id} (handle: ${response.handle})`;
208
+ return formatCreatedEntity("source", validated.title, {
209
+ handle: response.handle,
210
+ gramps_id: response.gramps_id,
211
+ title: validated.title,
212
+ author: validated.author || null,
213
+ publication: validated.pubinfo || null,
214
+ }, `Create citations referencing this source with gramps_create_citation using source_handle "${response.handle}".`);
165
215
  }
166
216
  /**
167
217
  * Create a citation
@@ -181,7 +231,20 @@ export async function grampsCreateCitation(params) {
181
231
  private: validated.private,
182
232
  };
183
233
  const response = await grampsClient.post(API_ENDPOINTS.CITATIONS, citation);
184
- return `Created citation: ${response.gramps_id} (handle: ${response.handle})`;
234
+ const confidenceMap = {
235
+ 0: "Very Low",
236
+ 1: "Low",
237
+ 2: "Normal",
238
+ 3: "High",
239
+ 4: "Very High",
240
+ };
241
+ return formatCreatedEntity("citation", response.gramps_id, {
242
+ handle: response.handle,
243
+ gramps_id: response.gramps_id,
244
+ source_handle: validated.source_handle,
245
+ page: validated.page || null,
246
+ confidence: validated.confidence !== undefined ? confidenceMap[validated.confidence] || "Normal" : "Normal",
247
+ }, `Add this citation to entities using citation_list with handle "${response.handle}".`);
185
248
  }
186
249
  /**
187
250
  * Create a note
@@ -198,7 +261,13 @@ export async function grampsCreateNote(params) {
198
261
  private: validated.private,
199
262
  };
200
263
  const response = await grampsClient.post(API_ENDPOINTS.NOTES, note);
201
- return `Created note: ${response.gramps_id} (handle: ${response.handle})`;
264
+ const preview = validated.text.length > 50 ? validated.text.substring(0, 50) + "..." : validated.text;
265
+ return formatCreatedEntity("note", response.gramps_id, {
266
+ handle: response.handle,
267
+ gramps_id: response.gramps_id,
268
+ type: validated.type || "General",
269
+ preview,
270
+ }, `Attach this note to entities using note_list with handle "${response.handle}".`);
202
271
  }
203
272
  /**
204
273
  * Create a media object
@@ -222,7 +291,14 @@ export async function grampsCreateMedia(params) {
222
291
  private: validated.private,
223
292
  };
224
293
  const response = await grampsClient.post(API_ENDPOINTS.MEDIA, media);
225
- return `Created media: ${response.gramps_id} (handle: ${response.handle})`;
294
+ const displayName = validated.desc || validated.path;
295
+ return formatCreatedEntity("media", displayName, {
296
+ handle: response.handle,
297
+ gramps_id: response.gramps_id,
298
+ path: validated.path,
299
+ mime_type: validated.mime || null,
300
+ description: validated.desc || null,
301
+ }, `Link this media to entities using media_list with handle "${response.handle}".`);
226
302
  }
227
303
  /**
228
304
  * Create a repository
@@ -244,14 +320,21 @@ export async function grampsCreateRepository(params) {
244
320
  private: validated.private,
245
321
  };
246
322
  const response = await grampsClient.post(API_ENDPOINTS.REPOSITORIES, repository);
247
- return `Created repository: ${response.gramps_id} (handle: ${response.handle})`;
323
+ return formatCreatedEntity("repository", validated.name, {
324
+ handle: response.handle,
325
+ gramps_id: response.gramps_id,
326
+ name: validated.name,
327
+ type: validated.type || null,
328
+ }, `Link sources to this repository using reporef_list with handle "${response.handle}".`);
248
329
  }
249
330
  // Tool definitions for MCP
250
331
  export const createTools = {
251
332
  gramps_create_person: {
252
333
  name: "gramps_create_person",
253
- description: "Create a new person record in Gramps. " +
254
- "Provide name information and optionally gender, events, family links, etc.",
334
+ description: "Create a new person record. " +
335
+ "REQUIRED: primary_name with first_name or surname. " +
336
+ "RETURNS: handle (for linking) and gramps_id (display ID). " +
337
+ "NEXT STEP: Use handle with gramps_create_family to add relationships.",
255
338
  inputSchema: {
256
339
  type: "object",
257
340
  properties: {
@@ -285,8 +368,10 @@ export const createTools = {
285
368
  },
286
369
  gramps_create_family: {
287
370
  name: "gramps_create_family",
288
- description: "Create a new family record in Gramps. " +
289
- "Link father, mother, and children by their person handles.",
371
+ description: "Create a family linking parents and children. " +
372
+ "USE FOR: Connecting existing people into family relationships. " +
373
+ "REQUIRED: At least one of father_handle, mother_handle, or child_ref_list. " +
374
+ "NEXT STEP: Add marriage event with gramps_create_event.",
290
375
  inputSchema: {
291
376
  type: "object",
292
377
  properties: {
@@ -326,8 +411,10 @@ export const createTools = {
326
411
  },
327
412
  gramps_create_event: {
328
413
  name: "gramps_create_event",
329
- description: "Create a new event record in Gramps. " +
330
- "Events include births, deaths, marriages, baptisms, etc.",
414
+ description: "Create a life event (Birth, Death, Marriage, Burial, Baptism, etc.). " +
415
+ "REQUIRED: type (event type string). " +
416
+ "OPTIONAL: date, place handle, description. " +
417
+ "NEXT STEP: Link to person/family via their event_ref_list.",
331
418
  inputSchema: {
332
419
  type: "object",
333
420
  properties: {
@@ -366,8 +453,10 @@ export const createTools = {
366
453
  },
367
454
  gramps_create_place: {
368
455
  name: "gramps_create_place",
369
- description: "Create a new place record in Gramps. " +
370
- "Places can be cities, countries, addresses, cemeteries, etc.",
456
+ description: "Create a location (city, country, address, cemetery, etc.). " +
457
+ "OPTIONAL: title, name, coordinates (lat/long), place_type. " +
458
+ "USE FOR: Linking to events via place handle. " +
459
+ "RETURNS: handle to use when creating events.",
371
460
  inputSchema: {
372
461
  type: "object",
373
462
  properties: {
@@ -405,8 +494,10 @@ export const createTools = {
405
494
  },
406
495
  gramps_create_source: {
407
496
  name: "gramps_create_source",
408
- description: "Create a new source record in Gramps. " +
409
- "Sources document where genealogical information comes from.",
497
+ description: "Create a source documenting where information comes from (books, websites, records). " +
498
+ "REQUIRED: title. " +
499
+ "OPTIONAL: author, pubinfo, abbrev. " +
500
+ "NEXT STEP: Create citations referencing this source.",
410
501
  inputSchema: {
411
502
  type: "object",
412
503
  properties: {
@@ -437,8 +528,10 @@ export const createTools = {
437
528
  },
438
529
  gramps_create_citation: {
439
530
  name: "gramps_create_citation",
440
- description: "Create a new citation record in Gramps. " +
441
- "Citations reference specific parts of sources.",
531
+ description: "Create a citation pointing to a specific location within a source. " +
532
+ "REQUIRED: source_handle (from gramps_create_source). " +
533
+ "OPTIONAL: page, confidence level. " +
534
+ "USE FOR: Attaching proof to facts via entity citation_list.",
442
535
  inputSchema: {
443
536
  type: "object",
444
537
  properties: {
@@ -465,8 +558,10 @@ export const createTools = {
465
558
  },
466
559
  gramps_create_note: {
467
560
  name: "gramps_create_note",
468
- description: "Create a new note in Gramps. " +
469
- "Notes contain textual information that can be attached to other records.",
561
+ description: "Create a text note that can be attached to any entity. " +
562
+ "REQUIRED: text content. " +
563
+ "OPTIONAL: type (General, Research, Transcript), format. " +
564
+ "USE FOR: Adding research notes, transcripts, or comments to records.",
470
565
  inputSchema: {
471
566
  type: "object",
472
567
  properties: {
@@ -493,8 +588,10 @@ export const createTools = {
493
588
  },
494
589
  gramps_create_media: {
495
590
  name: "gramps_create_media",
496
- description: "Create a new media object in Gramps. " +
497
- "Media includes photos, documents, audio, video files.",
591
+ description: "Create a media object reference (photo, document, audio, video). " +
592
+ "REQUIRED: path (file path or URL). " +
593
+ "OPTIONAL: mime type, description. " +
594
+ "USE FOR: Attaching images/documents to people, events, etc.",
498
595
  inputSchema: {
499
596
  type: "object",
500
597
  properties: {
@@ -521,8 +618,10 @@ export const createTools = {
521
618
  },
522
619
  gramps_create_repository: {
523
620
  name: "gramps_create_repository",
524
- description: "Create a new repository in Gramps. " +
525
- "Repositories are places where sources are stored (libraries, archives, websites).",
621
+ description: "Create a repository where sources are stored (library, archive, website). " +
622
+ "REQUIRED: name. " +
623
+ "OPTIONAL: type (Library, Archive, Website). " +
624
+ "USE FOR: Organizing sources by their holding institution.",
526
625
  inputSchema: {
527
626
  type: "object",
528
627
  properties: {
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/tools/create.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/tools/create.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/tools/search.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAYjF;;GAEG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAyBxF;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAoBpF;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAyBxF;AAGD,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsFvB,CAAC"}
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/tools/search.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAajF;;GAEG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAmCxF;AASD;;GAEG;AACH,wBAAsB,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAwBpF;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CA0CxF;AAGD,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2FvB,CAAC"}
@@ -2,9 +2,9 @@
2
2
  * Search and retrieval tools
3
3
  */
4
4
  import { grampsClient } from "../client.js";
5
- import { API_ENDPOINTS, ENTITY_ENDPOINT_MAP } from "../constants.js";
5
+ import { API_ENDPOINTS, ENTITY_ENDPOINT_MAP, MESSAGES } from "../constants.js";
6
6
  import { searchSchema, findSchema, getEntitySchema } from "../schemas/search.js";
7
- import { formatSearchResults, formatEntity } from "../utils/formatting.js";
7
+ import { formatToolResponse, formatEntityList } from "../utils/response.js";
8
8
  /**
9
9
  * GQL-based search for entities
10
10
  */
@@ -15,19 +15,36 @@ export async function grampsSearch(params) {
15
15
  throw new Error(`Unknown entity type: ${entity_type}`);
16
16
  }
17
17
  const response = await grampsClient.get(endpoint, {
18
- gramps: query,
18
+ gql: query,
19
19
  page,
20
20
  pagesize,
21
21
  });
22
22
  // Format response
23
23
  if (!response || (Array.isArray(response) && response.length === 0)) {
24
- return `No ${entity_type} found matching query: ${query}`;
24
+ return formatToolResponse({
25
+ status: "empty",
26
+ summary: MESSAGES.NO_RESULTS(entity_type, query),
27
+ details: "GQL syntax: property operator value. Examples: gender = 1, primary_name.first_name ~ John",
28
+ });
25
29
  }
26
- const results = (Array.isArray(response) ? response : [response]).map((obj) => ({
27
- object_type: entity_type,
28
- object: obj,
30
+ const entities = Array.isArray(response) ? response : [response];
31
+ const formattedEntities = entities.map((obj) => ({
32
+ handle: obj.handle,
33
+ gramps_id: obj.gramps_id,
34
+ // Include type-specific summary field
35
+ ...(entity_type === "people" && { name: formatPersonSummary(obj) }),
36
+ ...(entity_type === "places" && { name: obj.name?.value || obj.title }),
37
+ ...(entity_type === "sources" && { title: obj.title }),
38
+ ...(entity_type === "events" && { type: obj.type }),
29
39
  }));
30
- return formatSearchResults(results);
40
+ return formatEntityList(entity_type, formattedEntities);
41
+ }
42
+ function formatPersonSummary(person) {
43
+ const p = person;
44
+ if (!p.primary_name)
45
+ return "Unknown";
46
+ const parts = [p.primary_name.first_name, p.primary_name.surname].filter(Boolean);
47
+ return parts.join(" ") || "Unknown";
31
48
  }
32
49
  /**
33
50
  * Full-text search across all entities
@@ -40,13 +57,18 @@ export async function grampsFind(params) {
40
57
  pagesize,
41
58
  });
42
59
  if (!response.data || response.data.length === 0) {
43
- return `No results found for: ${query}`;
44
- }
45
- let result = formatSearchResults(response.data);
46
- if (response.total_count !== undefined) {
47
- result += `\n\nTotal results: ${response.total_count}`;
60
+ return formatToolResponse({
61
+ status: "empty",
62
+ summary: MESSAGES.NO_RESULTS("records", query),
63
+ details: MESSAGES.SEARCH_HINT,
64
+ });
48
65
  }
49
- return result;
66
+ const formattedResults = response.data.map((item) => ({
67
+ type: item.object_type,
68
+ handle: item.object.handle,
69
+ gramps_id: item.object.gramps_id,
70
+ }));
71
+ return formatEntityList("records", formattedResults, response.total_count);
50
72
  }
51
73
  /**
52
74
  * Get a specific entity by handle or ID
@@ -60,7 +82,12 @@ export async function grampsGet(params) {
60
82
  // Try to get by handle first
61
83
  try {
62
84
  const response = await grampsClient.get(`${endpoint}${handle}`);
63
- return formatEntity(response, entity_type);
85
+ return formatToolResponse({
86
+ status: "success",
87
+ summary: `Found ${entity_type.replace(/s$/, "")} ${response.gramps_id}`,
88
+ data: response,
89
+ details: `Handle: ${response.handle} - use this handle to reference in other operations.`,
90
+ });
64
91
  }
65
92
  catch (error) {
66
93
  // If not found by handle, try searching by gramps_id
@@ -69,8 +96,19 @@ export async function grampsGet(params) {
69
96
  gramps: `gramps_id=${handle}`,
70
97
  });
71
98
  if (searchResponse && searchResponse.length > 0) {
72
- return formatEntity(searchResponse[0], entity_type);
99
+ const entity = searchResponse[0];
100
+ return formatToolResponse({
101
+ status: "success",
102
+ summary: `Found ${entity_type.replace(/s$/, "")} ${entity.gramps_id}`,
103
+ data: entity,
104
+ details: `Handle: ${entity.handle} - use this handle to reference in other operations.`,
105
+ });
73
106
  }
107
+ return formatToolResponse({
108
+ status: "empty",
109
+ summary: MESSAGES.NOT_FOUND(entity_type.replace(/s$/, ""), handle),
110
+ details: "Use gramps_find to search for the correct handle or ID.",
111
+ });
74
112
  }
75
113
  throw error;
76
114
  }
@@ -79,9 +117,11 @@ export async function grampsGet(params) {
79
117
  export const searchTools = {
80
118
  gramps_search: {
81
119
  name: "gramps_search",
82
- description: "Search for Gramps entities using GQL (Gramps Query Language). " +
83
- "Examples: 'surname=Smith', 'gender=M', 'birth.date.year>1900'. " +
84
- "Use for structured queries on specific entity types.",
120
+ description: "Search using GQL (Gramps Query Language) for structured queries. " +
121
+ "USE FOR: Finding entities by attributes (name, date, gender, etc.). " +
122
+ "SYNTAX: property operator value, combined with 'and'/'or'. " +
123
+ "EXAMPLES: primary_name.surname_list[0].surname ~ Smith, gender = 1 (male=1, female=0). " +
124
+ "RETURNS: List of handles - use handles with gramps_get for full details.",
85
125
  inputSchema: {
86
126
  type: "object",
87
127
  properties: {
@@ -111,9 +151,10 @@ export const searchTools = {
111
151
  },
112
152
  gramps_find: {
113
153
  name: "gramps_find",
114
- description: "Full-text search across all Gramps records. " +
115
- "Use for finding people, places, sources, etc. by name or keyword. " +
116
- "Returns results from all entity types.",
154
+ description: "Full-text search across ALL entity types at once. " +
155
+ "USE FOR: Quick lookup by name, keyword, or ID when you don't know the entity type. " +
156
+ "RETURNS: Mixed results (people, places, sources, etc.) with handles. " +
157
+ "NEXT STEP: Use gramps_get with handle to retrieve full entity details.",
117
158
  inputSchema: {
118
159
  type: "object",
119
160
  properties: {
@@ -138,8 +179,10 @@ export const searchTools = {
138
179
  },
139
180
  gramps_get: {
140
181
  name: "gramps_get",
141
- description: "Get full details of a specific Gramps entity by its handle or Gramps ID. " +
142
- "Use after finding an entity with search to get complete information.",
182
+ description: "Retrieve complete details of a specific entity by handle or Gramps ID. " +
183
+ "USE FOR: Getting full record after finding entity in search results. " +
184
+ "REQUIRED: entity_type and handle (from search results). " +
185
+ "RETURNS: Complete entity data including all relationships and attributes.",
143
186
  inputSchema: {
144
187
  type: "object",
145
188
  properties: {
@@ -1 +1 @@
1
- {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/tools/search.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/tools/search.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Structured response formatting for LLM consumption
3
+ */
4
+ export interface ToolResponseOptions {
5
+ status: "success" | "empty" | "error";
6
+ summary: string;
7
+ data?: Record<string, unknown>;
8
+ details?: string;
9
+ }
10
+ /**
11
+ * Format a tool response with consistent structure for LLM parsing.
12
+ *
13
+ * Output format:
14
+ * **Status:** success|empty|error
15
+ * **Summary:** Brief description of what happened
16
+ *
17
+ * **Data:**
18
+ * ```json
19
+ * { ... structured data ... }
20
+ * ```
21
+ *
22
+ * **Details:**
23
+ * Additional context or next steps
24
+ */
25
+ export declare function formatToolResponse(opts: ToolResponseOptions): string;
26
+ /**
27
+ * Format a list of entities for LLM consumption
28
+ */
29
+ export declare function formatEntityList(entityType: string, entities: Array<Record<string, unknown>>, totalCount?: number): string;
30
+ /**
31
+ * Format a created entity response with actionable next steps
32
+ */
33
+ export declare function formatCreatedEntity(entityType: string, displayName: string, entityData: Record<string, unknown>, nextSteps?: string): string;
34
+ //# sourceMappingURL=response.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/utils/response.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,mBAAmB,GAAG,MAAM,CAepE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACxC,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,CA2BR;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,SAAS,CAAC,EAAE,MAAM,GACjB,MAAM,CAOR"}