@troykelly/openclaw-projects 0.0.11 → 0.0.12

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.
Files changed (88) hide show
  1. package/dist/config.d.ts +8 -0
  2. package/dist/config.d.ts.map +1 -1
  3. package/dist/config.js +6 -0
  4. package/dist/config.js.map +1 -1
  5. package/dist/hooks.d.ts.map +1 -1
  6. package/dist/hooks.js +17 -3
  7. package/dist/hooks.js.map +1 -1
  8. package/dist/register-openclaw.d.ts +3 -1
  9. package/dist/register-openclaw.d.ts.map +1 -1
  10. package/dist/register-openclaw.js +611 -55
  11. package/dist/register-openclaw.js.map +1 -1
  12. package/dist/tools/context-search.d.ts +79 -0
  13. package/dist/tools/context-search.d.ts.map +1 -0
  14. package/dist/tools/context-search.js +265 -0
  15. package/dist/tools/context-search.js.map +1 -0
  16. package/dist/tools/email-send.d.ts.map +1 -1
  17. package/dist/tools/email-send.js +1 -14
  18. package/dist/tools/email-send.js.map +1 -1
  19. package/dist/tools/entity-links.d.ts +117 -0
  20. package/dist/tools/entity-links.d.ts.map +1 -0
  21. package/dist/tools/entity-links.js +446 -0
  22. package/dist/tools/entity-links.js.map +1 -0
  23. package/dist/tools/index.d.ts +4 -0
  24. package/dist/tools/index.d.ts.map +1 -1
  25. package/dist/tools/index.js +8 -0
  26. package/dist/tools/index.js.map +1 -1
  27. package/dist/tools/memory-recall.d.ts +28 -0
  28. package/dist/tools/memory-recall.d.ts.map +1 -1
  29. package/dist/tools/memory-recall.js +42 -3
  30. package/dist/tools/memory-recall.js.map +1 -1
  31. package/dist/tools/memory-store.d.ts +57 -0
  32. package/dist/tools/memory-store.d.ts.map +1 -1
  33. package/dist/tools/memory-store.js +29 -2
  34. package/dist/tools/memory-store.js.map +1 -1
  35. package/dist/tools/message-search.d.ts +1 -1
  36. package/dist/tools/message-search.d.ts.map +1 -1
  37. package/dist/tools/message-search.js +20 -2
  38. package/dist/tools/message-search.js.map +1 -1
  39. package/dist/tools/notes.d.ts +2 -2
  40. package/dist/tools/project-search.d.ts +92 -0
  41. package/dist/tools/project-search.d.ts.map +1 -0
  42. package/dist/tools/project-search.js +160 -0
  43. package/dist/tools/project-search.js.map +1 -0
  44. package/dist/tools/skill-store.d.ts +12 -12
  45. package/dist/tools/threads.d.ts +2 -2
  46. package/dist/tools/threads.d.ts.map +1 -1
  47. package/dist/tools/threads.js +30 -6
  48. package/dist/tools/threads.js.map +1 -1
  49. package/dist/tools/todo-search.d.ts +95 -0
  50. package/dist/tools/todo-search.d.ts.map +1 -0
  51. package/dist/tools/todo-search.js +164 -0
  52. package/dist/tools/todo-search.js.map +1 -0
  53. package/dist/types/openclaw-api.d.ts +15 -0
  54. package/dist/types/openclaw-api.d.ts.map +1 -1
  55. package/dist/utils/auto-linker.d.ts +66 -0
  56. package/dist/utils/auto-linker.d.ts.map +1 -0
  57. package/dist/utils/auto-linker.js +354 -0
  58. package/dist/utils/auto-linker.js.map +1 -0
  59. package/dist/utils/geo.d.ts +24 -0
  60. package/dist/utils/geo.d.ts.map +1 -0
  61. package/dist/utils/geo.js +38 -0
  62. package/dist/utils/geo.js.map +1 -0
  63. package/dist/utils/inbound-gate.d.ts +85 -0
  64. package/dist/utils/inbound-gate.d.ts.map +1 -0
  65. package/dist/utils/inbound-gate.js +133 -0
  66. package/dist/utils/inbound-gate.js.map +1 -0
  67. package/dist/utils/injection-protection.d.ts +81 -0
  68. package/dist/utils/injection-protection.d.ts.map +1 -0
  69. package/dist/utils/injection-protection.js +179 -0
  70. package/dist/utils/injection-protection.js.map +1 -0
  71. package/dist/utils/nominatim.d.ts +18 -0
  72. package/dist/utils/nominatim.d.ts.map +1 -0
  73. package/dist/utils/nominatim.js +56 -0
  74. package/dist/utils/nominatim.js.map +1 -0
  75. package/dist/utils/rate-limiter.d.ts +81 -0
  76. package/dist/utils/rate-limiter.d.ts.map +1 -0
  77. package/dist/utils/rate-limiter.js +188 -0
  78. package/dist/utils/rate-limiter.js.map +1 -0
  79. package/dist/utils/spam-filter.d.ts +79 -0
  80. package/dist/utils/spam-filter.d.ts.map +1 -0
  81. package/dist/utils/spam-filter.js +237 -0
  82. package/dist/utils/spam-filter.js.map +1 -0
  83. package/dist/utils/token-budget.d.ts +68 -0
  84. package/dist/utils/token-budget.d.ts.map +1 -0
  85. package/dist/utils/token-budget.js +142 -0
  86. package/dist/utils/token-budget.js.map +1 -0
  87. package/openclaw.plugin.json +3 -3
  88. package/package.json +1 -1
@@ -0,0 +1,446 @@
1
+ /**
2
+ * Entity linking tools for OpenClaw plugin (Issue #1220).
3
+ *
4
+ * Provides bidirectional linking between entities (memories, todos, projects,
5
+ * contacts) and external references (GitHub issues, URLs). Links are stored
6
+ * as skill_store items in the `entity_links` collection.
7
+ *
8
+ * Tools:
9
+ * - links_set: Create a bidirectional link between two entities
10
+ * - links_query: Query all links for a given entity
11
+ * - links_remove: Remove a bidirectional link
12
+ */
13
+ import { z } from 'zod';
14
+ import { sanitizeErrorMessage } from '../utils/sanitize.js';
15
+ // ==================== Constants ====================
16
+ /** Skill ID used for entity link storage in the skill store. */
17
+ const SKILL_ID = 'entity-links';
18
+ /** Collection name for entity links. */
19
+ const COLLECTION = 'entity_links';
20
+ /** Internal entity types (must have UUID IDs). */
21
+ const INTERNAL_ENTITY_TYPES = ['memory', 'todo', 'project', 'contact'];
22
+ /** All entity types including external references. */
23
+ const ALL_ENTITY_TYPES = [...INTERNAL_ENTITY_TYPES, 'github_issue', 'url'];
24
+ // ==================== Helpers ====================
25
+ /** UUID regex for validation */
26
+ const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
27
+ /** Check whether a target_type is internal (requires UUID). */
28
+ function isInternalType(type) {
29
+ return INTERNAL_ENTITY_TYPES.includes(type);
30
+ }
31
+ /**
32
+ * Build a composite key for a link: `source_type:source_ref:target_type:target_ref`
33
+ */
34
+ function buildLinkKey(sourceType, sourceRef, targetType, targetRef) {
35
+ return `${sourceType}:${sourceRef}:${targetType}:${targetRef}`;
36
+ }
37
+ /**
38
+ * Build a tag for source-entity lookup: `src:type:id`
39
+ */
40
+ function buildSourceTag(entityType, entityRef) {
41
+ return `src:${entityType}:${entityRef}`;
42
+ }
43
+ // ==================== Schemas ====================
44
+ /** Parameters for links_set tool */
45
+ export const LinksSetParamsSchema = z.object({
46
+ source_type: z.enum(INTERNAL_ENTITY_TYPES),
47
+ source_id: z.string().uuid('source_id must be a valid UUID'),
48
+ target_type: z.enum(ALL_ENTITY_TYPES),
49
+ target_ref: z.string().min(1, 'target_ref cannot be empty'),
50
+ label: z.string().max(100, 'label must be 100 characters or less').optional(),
51
+ });
52
+ /** Parameters for links_query tool */
53
+ export const LinksQueryParamsSchema = z.object({
54
+ entity_type: z.enum(INTERNAL_ENTITY_TYPES),
55
+ entity_id: z.string().uuid('entity_id must be a valid UUID'),
56
+ link_types: z.array(z.enum(ALL_ENTITY_TYPES)).optional(),
57
+ });
58
+ /** Parameters for links_remove tool */
59
+ export const LinksRemoveParamsSchema = z.object({
60
+ source_type: z.enum(INTERNAL_ENTITY_TYPES),
61
+ source_id: z.string().uuid('source_id must be a valid UUID'),
62
+ target_type: z.enum(ALL_ENTITY_TYPES),
63
+ target_ref: z.string().min(1, 'target_ref cannot be empty'),
64
+ });
65
+ // ==================== links_set ====================
66
+ /**
67
+ * Create the links_set tool.
68
+ * Creates a bidirectional link between two entities by storing two skill_store
69
+ * items: one for the forward direction (A->B) and one for the reverse (B->A).
70
+ */
71
+ export function createLinksSetTool(options) {
72
+ const { client, logger, userId } = options;
73
+ return {
74
+ name: 'links_set',
75
+ description: 'Create a link between two entities (memory, todo, project, contact, GitHub issue, or URL). ' +
76
+ 'Links are bidirectional and can be traversed from either end. Use to connect related items ' +
77
+ 'for cross-reference and context discovery.',
78
+ parameters: LinksSetParamsSchema,
79
+ async execute(params) {
80
+ const parseResult = LinksSetParamsSchema.safeParse(params);
81
+ if (!parseResult.success) {
82
+ const errorMessage = parseResult.error.errors.map((e) => `${e.path.join('.')}: ${e.message}`).join(', ');
83
+ return { success: false, error: errorMessage };
84
+ }
85
+ const { source_type, source_id, target_type, target_ref, label } = parseResult.data;
86
+ // Validate UUID for internal target types
87
+ if (isInternalType(target_type) && !UUID_RE.test(target_ref)) {
88
+ return { success: false, error: `target_ref: target_ref must be a valid UUID for internal type '${target_type}'` };
89
+ }
90
+ const now = new Date().toISOString();
91
+ logger.info('links_set invoked', {
92
+ userId,
93
+ source_type,
94
+ target_type,
95
+ hasLabel: !!label,
96
+ });
97
+ try {
98
+ // Build keys for forward and reverse links
99
+ const forwardKey = buildLinkKey(source_type, source_id, target_type, target_ref);
100
+ const reverseKey = buildLinkKey(target_type, target_ref, source_type, source_id);
101
+ // Forward link data
102
+ const forwardData = {
103
+ source_type,
104
+ source_id,
105
+ target_type,
106
+ target_ref,
107
+ label: label ?? null,
108
+ created_at: now,
109
+ };
110
+ // Reverse link data (swap source and target)
111
+ const reverseData = {
112
+ source_type: target_type,
113
+ source_id: target_ref,
114
+ target_type: source_type,
115
+ target_ref: source_id,
116
+ label: label ?? null,
117
+ created_at: now,
118
+ };
119
+ // Create forward link
120
+ const forwardResponse = await client.post('/api/skill-store/items', {
121
+ skill_id: SKILL_ID,
122
+ collection: COLLECTION,
123
+ key: forwardKey,
124
+ data: forwardData,
125
+ tags: [buildSourceTag(source_type, source_id)],
126
+ }, { userId });
127
+ if (!forwardResponse.success) {
128
+ logger.error('links_set forward link API error', {
129
+ userId,
130
+ status: forwardResponse.error.status,
131
+ code: forwardResponse.error.code,
132
+ });
133
+ return {
134
+ success: false,
135
+ error: forwardResponse.error.message || 'Failed to create forward link',
136
+ };
137
+ }
138
+ // Create reverse link
139
+ const reverseResponse = await client.post('/api/skill-store/items', {
140
+ skill_id: SKILL_ID,
141
+ collection: COLLECTION,
142
+ key: reverseKey,
143
+ data: reverseData,
144
+ tags: [buildSourceTag(target_type, target_ref)],
145
+ }, { userId });
146
+ if (!reverseResponse.success) {
147
+ logger.error('links_set reverse link API error', {
148
+ userId,
149
+ status: reverseResponse.error.status,
150
+ code: reverseResponse.error.code,
151
+ });
152
+ // Rollback: delete the orphaned forward link
153
+ const rollback = await client.delete(`/api/skill-store/items/${forwardResponse.data.id}`, { userId });
154
+ if (!rollback.success) {
155
+ logger.error('links_set rollback failed — partial state', {
156
+ userId,
157
+ forwardId: forwardResponse.data.id,
158
+ });
159
+ return {
160
+ success: false,
161
+ error: `Failed to create reverse link and rollback left partial state (orphan: ${forwardResponse.data.id})`,
162
+ };
163
+ }
164
+ return {
165
+ success: false,
166
+ error: reverseResponse.error.message || 'Failed to create reverse link',
167
+ };
168
+ }
169
+ const labelStr = label ? ` (${label})` : '';
170
+ const content = `Linked ${source_type}:${source_id} -> ${target_type}:${target_ref}${labelStr}`;
171
+ logger.debug('links_set completed', {
172
+ userId,
173
+ forwardId: forwardResponse.data.id,
174
+ reverseId: reverseResponse.data.id,
175
+ });
176
+ return {
177
+ success: true,
178
+ data: {
179
+ content,
180
+ details: {
181
+ source_type,
182
+ source_id,
183
+ target_type,
184
+ target_ref,
185
+ label: label ?? null,
186
+ forwardId: forwardResponse.data.id,
187
+ reverseId: reverseResponse.data.id,
188
+ userId,
189
+ },
190
+ },
191
+ };
192
+ }
193
+ catch (error) {
194
+ logger.error('links_set failed', {
195
+ userId,
196
+ error: error instanceof Error ? error.message : String(error),
197
+ });
198
+ return { success: false, error: sanitizeErrorMessage(error) };
199
+ }
200
+ },
201
+ };
202
+ }
203
+ /**
204
+ * Create the links_query tool.
205
+ * Queries all links for a given entity by listing skill_store items
206
+ * in the `entity_links` collection filtered by a source tag.
207
+ */
208
+ export function createLinksQueryTool(options) {
209
+ const { client, logger, userId } = options;
210
+ return {
211
+ name: 'links_query',
212
+ description: 'Query all links for an entity (memory, todo, project, or contact). Returns connected entities ' +
213
+ 'including other items, GitHub issues, and URLs. Optionally filter by link target types.',
214
+ parameters: LinksQueryParamsSchema,
215
+ async execute(params) {
216
+ const parseResult = LinksQueryParamsSchema.safeParse(params);
217
+ if (!parseResult.success) {
218
+ const errorMessage = parseResult.error.errors.map((e) => `${e.path.join('.')}: ${e.message}`).join(', ');
219
+ return { success: false, error: errorMessage };
220
+ }
221
+ const { entity_type, entity_id, link_types } = parseResult.data;
222
+ logger.info('links_query invoked', {
223
+ userId,
224
+ entity_type,
225
+ hasLinkTypes: !!link_types,
226
+ });
227
+ try {
228
+ const tag = buildSourceTag(entity_type, entity_id);
229
+ const queryParams = new URLSearchParams({
230
+ skill_id: SKILL_ID,
231
+ collection: COLLECTION,
232
+ tags: tag,
233
+ limit: '200',
234
+ });
235
+ const response = await client.get(`/api/skill-store/items?${queryParams.toString()}`, { userId });
236
+ if (!response.success) {
237
+ logger.error('links_query API error', {
238
+ userId,
239
+ status: response.error.status,
240
+ code: response.error.code,
241
+ });
242
+ return {
243
+ success: false,
244
+ error: response.error.message || 'Failed to query links',
245
+ };
246
+ }
247
+ const { items } = response.data;
248
+ // Parse link data from skill_store items
249
+ let links = items.map((item) => ({
250
+ target_type: String(item.data.target_type ?? ''),
251
+ target_ref: String(item.data.target_ref ?? ''),
252
+ label: item.data.label != null ? String(item.data.label) : null,
253
+ created_at: String(item.data.created_at ?? item.created_at ?? ''),
254
+ }));
255
+ // Filter by link_types if specified
256
+ if (link_types && link_types.length > 0) {
257
+ const allowedTypes = new Set(link_types);
258
+ links = links.filter((link) => allowedTypes.has(link.target_type));
259
+ }
260
+ if (links.length === 0) {
261
+ return {
262
+ success: true,
263
+ data: {
264
+ content: `No links found for ${entity_type}:${entity_id}.`,
265
+ details: { links: [], entity_type, entity_id, userId },
266
+ },
267
+ };
268
+ }
269
+ // Format as readable list
270
+ const lines = [`Links for ${entity_type}:${entity_id}:`];
271
+ for (const link of links) {
272
+ const labelStr = link.label ? ` (${link.label})` : '';
273
+ lines.push(`- ${link.target_type}:${link.target_ref}${labelStr}`);
274
+ }
275
+ const content = lines.join('\n');
276
+ logger.debug('links_query completed', {
277
+ userId,
278
+ entity_type,
279
+ linkCount: links.length,
280
+ });
281
+ return {
282
+ success: true,
283
+ data: {
284
+ content,
285
+ details: {
286
+ links,
287
+ entity_type,
288
+ entity_id,
289
+ total: links.length,
290
+ userId,
291
+ },
292
+ },
293
+ };
294
+ }
295
+ catch (error) {
296
+ logger.error('links_query failed', {
297
+ userId,
298
+ error: error instanceof Error ? error.message : String(error),
299
+ });
300
+ return { success: false, error: sanitizeErrorMessage(error) };
301
+ }
302
+ },
303
+ };
304
+ }
305
+ // ==================== links_remove ====================
306
+ /**
307
+ * Create the links_remove tool.
308
+ * Removes a bidirectional link by deleting both the forward (A->B) and
309
+ * reverse (B->A) skill_store items.
310
+ */
311
+ export function createLinksRemoveTool(options) {
312
+ const { client, logger, userId } = options;
313
+ return {
314
+ name: 'links_remove',
315
+ description: 'Remove a link between two entities. Deletes both directions of the link. ' +
316
+ 'Use when a connection is no longer relevant or was created in error.',
317
+ parameters: LinksRemoveParamsSchema,
318
+ async execute(params) {
319
+ const parseResult = LinksRemoveParamsSchema.safeParse(params);
320
+ if (!parseResult.success) {
321
+ const errorMessage = parseResult.error.errors.map((e) => `${e.path.join('.')}: ${e.message}`).join(', ');
322
+ return { success: false, error: errorMessage };
323
+ }
324
+ const { source_type, source_id, target_type, target_ref } = parseResult.data;
325
+ // Validate UUID for internal target types
326
+ if (isInternalType(target_type) && !UUID_RE.test(target_ref)) {
327
+ return { success: false, error: `target_ref: target_ref must be a valid UUID for internal type '${target_type}'` };
328
+ }
329
+ logger.info('links_remove invoked', {
330
+ userId,
331
+ source_type,
332
+ target_type,
333
+ });
334
+ try {
335
+ const forwardKey = buildLinkKey(source_type, source_id, target_type, target_ref);
336
+ const reverseKey = buildLinkKey(target_type, target_ref, source_type, source_id);
337
+ // Look up forward item by key
338
+ const forwardLookupParams = new URLSearchParams({
339
+ skill_id: SKILL_ID,
340
+ key: forwardKey,
341
+ collection: COLLECTION,
342
+ });
343
+ const forwardLookup = await client.get(`/api/skill-store/items/by-key?${forwardLookupParams.toString()}`, { userId });
344
+ // Look up reverse item by key
345
+ const reverseLookupParams = new URLSearchParams({
346
+ skill_id: SKILL_ID,
347
+ key: reverseKey,
348
+ collection: COLLECTION,
349
+ });
350
+ const reverseLookup = await client.get(`/api/skill-store/items/by-key?${reverseLookupParams.toString()}`, { userId });
351
+ // Classify each lookup result
352
+ const fwdFailed = !forwardLookup.success;
353
+ const revFailed = !reverseLookup.success;
354
+ const fwdIs404 = fwdFailed && forwardLookup.error.status === 404;
355
+ const revIs404 = revFailed && reverseLookup.error.status === 404;
356
+ const fwdNon404Error = fwdFailed && !fwdIs404;
357
+ const revNon404Error = revFailed && !revIs404;
358
+ // If either lookup had a non-404 error, refuse to proceed — deleting
359
+ // only one side would leave inconsistent state.
360
+ if (fwdNon404Error || revNon404Error) {
361
+ const errorMessages = [];
362
+ if (fwdNon404Error)
363
+ errorMessages.push(forwardLookup.error.message || 'Forward lookup failed');
364
+ if (revNon404Error)
365
+ errorMessages.push(reverseLookup.error.message || 'Reverse lookup failed');
366
+ return {
367
+ success: false,
368
+ error: errorMessages.join('; '),
369
+ };
370
+ }
371
+ // Both lookups returned 404 — link does not exist
372
+ if (fwdIs404 && revIs404) {
373
+ return {
374
+ success: false,
375
+ error: `Link not found between ${source_type}:${source_id} and ${target_type}:${target_ref}`,
376
+ };
377
+ }
378
+ let deletedCount = 0;
379
+ let expectedCount = 0;
380
+ const deleteErrors = [];
381
+ // Delete forward link if found
382
+ if (forwardLookup.success) {
383
+ expectedCount++;
384
+ const deleteResult = await client.delete(`/api/skill-store/items/${forwardLookup.data.id}`, { userId });
385
+ if (deleteResult.success) {
386
+ deletedCount++;
387
+ }
388
+ else {
389
+ deleteErrors.push(`forward (${forwardLookup.data.id})`);
390
+ }
391
+ }
392
+ // Delete reverse link if found
393
+ if (reverseLookup.success) {
394
+ expectedCount++;
395
+ const deleteResult = await client.delete(`/api/skill-store/items/${reverseLookup.data.id}`, { userId });
396
+ if (deleteResult.success) {
397
+ deletedCount++;
398
+ }
399
+ else {
400
+ deleteErrors.push(`reverse (${reverseLookup.data.id})`);
401
+ }
402
+ }
403
+ // If any deletes failed, report partial failure
404
+ if (deletedCount < expectedCount) {
405
+ logger.error('links_remove partial delete', {
406
+ userId,
407
+ deletedCount,
408
+ expectedCount,
409
+ deleteErrors,
410
+ });
411
+ return {
412
+ success: false,
413
+ error: `Removal partial: deleted ${deletedCount}/${expectedCount} records. Failed to delete: ${deleteErrors.join(', ')}`,
414
+ };
415
+ }
416
+ const content = `Removed link between ${source_type}:${source_id} and ${target_type}:${target_ref} (${deletedCount} record${deletedCount !== 1 ? 's' : ''} deleted)`;
417
+ logger.debug('links_remove completed', {
418
+ userId,
419
+ deletedCount,
420
+ });
421
+ return {
422
+ success: true,
423
+ data: {
424
+ content,
425
+ details: {
426
+ source_type,
427
+ source_id,
428
+ target_type,
429
+ target_ref,
430
+ deletedCount,
431
+ userId,
432
+ },
433
+ },
434
+ };
435
+ }
436
+ catch (error) {
437
+ logger.error('links_remove failed', {
438
+ userId,
439
+ error: error instanceof Error ? error.message : String(error),
440
+ });
441
+ return { success: false, error: sanitizeErrorMessage(error) };
442
+ }
443
+ },
444
+ };
445
+ }
446
+ //# sourceMappingURL=entity-links.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-links.js","sourceRoot":"","sources":["../../src/tools/entity-links.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,9 @@ export { createMemoryStoreTool, MemoryStoreParamsSchema, type MemoryStoreParams,
7
7
  export { createMemoryForgetTool, MemoryForgetParamsSchema, type MemoryForgetParams, type MemoryForgetTool, type MemoryForgetResult, } from './memory-forget.js';
8
8
  export { createProjectListTool, createProjectGetTool, createProjectCreateTool, ProjectListParamsSchema, ProjectGetParamsSchema, ProjectCreateParamsSchema, ProjectStatus, type ProjectListParams, type ProjectGetParams, type ProjectCreateParams, type ProjectListTool, type ProjectGetTool, type ProjectCreateTool, type ProjectListResult, type ProjectGetResult, type ProjectCreateResult, type Project, type ProjectToolOptions, } from './projects.js';
9
9
  export { createTodoListTool, createTodoCreateTool, createTodoCompleteTool, TodoListParamsSchema, TodoCreateParamsSchema, TodoCompleteParamsSchema, type TodoListParams, type TodoCreateParams, type TodoCompleteParams, type TodoListTool, type TodoCreateTool, type TodoCompleteTool, type TodoListResult, type TodoCreateResult, type TodoCompleteResult, type Todo, type TodoToolOptions, } from './todos.js';
10
+ export { createTodoSearchTool, TodoSearchParamsSchema, type TodoSearchParams, type TodoSearchTool, type TodoSearchResult, type TodoSearchItem, type TodoSearchToolOptions, } from './todo-search.js';
11
+ export { createProjectSearchTool, ProjectSearchParamsSchema, type ProjectSearchParams, type ProjectSearchTool, type ProjectSearchResult, type ProjectSearchItem, type ProjectSearchToolOptions, } from './project-search.js';
12
+ export { createContextSearchTool, ContextSearchParamsSchema, EntityType, type ContextSearchParams, type ContextSearchTool, type ContextSearchResult, type ContextSearchResultItem, type ContextSearchToolOptions, } from './context-search.js';
10
13
  export { createContactSearchTool, createContactGetTool, createContactCreateTool, ContactSearchParamsSchema, ContactGetParamsSchema, ContactCreateParamsSchema, type ContactSearchParams, type ContactGetParams, type ContactCreateParams, type ContactSearchTool, type ContactGetTool, type ContactCreateTool, type ContactSearchResult, type ContactGetResult, type ContactCreateResult, type Contact, type ContactToolOptions, } from './contacts.js';
11
14
  export { createSmsSendTool, SmsSendParamsSchema, type SmsSendParams, type SmsSendTool, type SmsSendResult, type SmsSendToolOptions, } from './sms-send.js';
12
15
  export { createEmailSendTool, EmailSendParamsSchema, type EmailSendParams, type EmailSendTool, type EmailSendResult, type EmailSendToolOptions, } from './email-send.js';
@@ -17,6 +20,7 @@ export { createRelationshipSetTool, createRelationshipQueryTool, RelationshipSet
17
20
  export { createNotebookListTool, createNotebookCreateTool, createNotebookGetTool, NotebookListParamsSchema, NotebookCreateParamsSchema, NotebookGetParamsSchema, type NotebookListParams, type NotebookCreateParams, type NotebookGetParams, type NotebookListTool, type NotebookCreateTool, type NotebookGetTool, type NotebookListResult, type NotebookCreateResult, type NotebookGetResult, type Notebook, type NotebookToolOptions, } from './notebooks.js';
18
21
  export { createFileShareTool, FileShareParamsSchema, type FileShareParams, type FileShareTool, type FileShareResult, type FileShareToolOptions, } from './file-share.js';
19
22
  export { createSkillStorePutTool, createSkillStoreGetTool, createSkillStoreListTool, createSkillStoreDeleteTool, createSkillStoreSearchTool, createSkillStoreCollectionsTool, createSkillStoreAggregateTool, SkillStorePutParamsSchema, SkillStoreGetParamsSchema, SkillStoreListParamsSchema, SkillStoreDeleteParamsSchema, SkillStoreSearchParamsSchema, SkillStoreCollectionsParamsSchema, SkillStoreAggregateParamsSchema, type SkillStorePutParams, type SkillStoreGetParams, type SkillStoreListParams, type SkillStoreDeleteParams, type SkillStoreSearchParams, type SkillStoreCollectionsParams, type SkillStoreAggregateParams, type SkillStoreTool, type SkillStoreToolResult, type SkillStoreItem, type SkillStoreToolOptions, } from './skill-store.js';
23
+ export { createLinksSetTool, createLinksQueryTool, createLinksRemoveTool, LinksSetParamsSchema, LinksQueryParamsSchema, LinksRemoveParamsSchema, type LinksSetParams, type LinksQueryParams, type LinksRemoveParams, type EntityLinkTool, type EntityLinkToolResult, type EntityLinkToolOptions, } from './entity-links.js';
20
24
  /** Tool factory types */
21
25
  export type ToolFactoryOptions = Record<string, never>;
22
26
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,12 @@ export { createMemoryForgetTool, MemoryForgetParamsSchema, } from './memory-forg
12
12
  export { createProjectListTool, createProjectGetTool, createProjectCreateTool, ProjectListParamsSchema, ProjectGetParamsSchema, ProjectCreateParamsSchema, ProjectStatus, } from './projects.js';
13
13
  // Todo tools
14
14
  export { createTodoListTool, createTodoCreateTool, createTodoCompleteTool, TodoListParamsSchema, TodoCreateParamsSchema, TodoCompleteParamsSchema, } from './todos.js';
15
+ // Todo search tool (Issue #1216)
16
+ export { createTodoSearchTool, TodoSearchParamsSchema, } from './todo-search.js';
17
+ // Project search tool (Issue #1217)
18
+ export { createProjectSearchTool, ProjectSearchParamsSchema, } from './project-search.js';
19
+ // Context search tool (Issue #1219)
20
+ export { createContextSearchTool, ContextSearchParamsSchema, EntityType, } from './context-search.js';
15
21
  // Contact tools
16
22
  export { createContactSearchTool, createContactGetTool, createContactCreateTool, ContactSearchParamsSchema, ContactGetParamsSchema, ContactCreateParamsSchema, } from './contacts.js';
17
23
  // SMS tools
@@ -32,4 +38,6 @@ export { createNotebookListTool, createNotebookCreateTool, createNotebookGetTool
32
38
  export { createFileShareTool, FileShareParamsSchema, } from './file-share.js';
33
39
  // Skill Store tools (Issue #800, #801)
34
40
  export { createSkillStorePutTool, createSkillStoreGetTool, createSkillStoreListTool, createSkillStoreDeleteTool, createSkillStoreSearchTool, createSkillStoreCollectionsTool, createSkillStoreAggregateTool, SkillStorePutParamsSchema, SkillStoreGetParamsSchema, SkillStoreListParamsSchema, SkillStoreDeleteParamsSchema, SkillStoreSearchParamsSchema, SkillStoreCollectionsParamsSchema, SkillStoreAggregateParamsSchema, } from './skill-store.js';
41
+ // Entity linking tools (Issue #1220)
42
+ export { createLinksSetTool, createLinksQueryTool, createLinksRemoveTool, LinksSetParamsSchema, LinksQueryParamsSchema, LinksRemoveParamsSchema, } from './entity-links.js';
35
43
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAe;AACf,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,cAAc,GAKf,MAAM,oBAAoB,CAAC;AAE5B,oBAAoB;AACpB,OAAO,EACL,qBAAqB,EACrB,uBAAuB,GAKxB,MAAM,mBAAmB,CAAC;AAE3B,qBAAqB;AACrB,OAAO,EACL,sBAAsB,EACtB,wBAAwB,GAIzB,MAAM,oBAAoB,CAAC;AAE5B,gBAAgB;AAChB,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,EACzB,aAAa,GAYd,MAAM,eAAe,CAAC;AAEvB,aAAa;AACb,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,GAYzB,MAAM,YAAY,CAAC;AAEpB,gBAAgB;AAChB,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,uBAAuB,EACvB,yBAAyB,EACzB,sBAAsB,EACtB,yBAAyB,GAY1B,MAAM,eAAe,CAAC;AAEvB,YAAY;AACZ,OAAO,EACL,iBAAiB,EACjB,mBAAmB,GAKpB,MAAM,eAAe,CAAC;AAEvB,cAAc;AACd,OAAO,EACL,mBAAmB,EACnB,qBAAqB,GAKtB,MAAM,iBAAiB,CAAC;AAEzB,uBAAuB;AACvB,OAAO,EACL,uBAAuB,EACvB,yBAAyB,GAK1B,MAAM,qBAAqB,CAAC;AAE7B,eAAe;AACf,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,GAQtB,MAAM,cAAc,CAAC;AAEtB,aAAa;AACb,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,cAAc,GAkBf,MAAM,YAAY,CAAC;AAEpB,qBAAqB;AACrB,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,2BAA2B,EAC3B,6BAA6B,GAS9B,MAAM,oBAAoB,CAAC;AAE5B,iBAAiB;AACjB,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EACrB,wBAAwB,EACxB,0BAA0B,EAC1B,uBAAuB,GAYxB,MAAM,gBAAgB,CAAC;AAExB,qBAAqB;AACrB,OAAO,EACL,mBAAmB,EACnB,qBAAqB,GAKtB,MAAM,iBAAiB,CAAC;AAEzB,uCAAuC;AACvC,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,wBAAwB,EACxB,0BAA0B,EAC1B,0BAA0B,EAC1B,+BAA+B,EAC/B,6BAA6B,EAC7B,yBAAyB,EACzB,yBAAyB,EACzB,0BAA0B,EAC1B,4BAA4B,EAC5B,4BAA4B,EAC5B,iCAAiC,EACjC,+BAA+B,GAYhC,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAe;AACf,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,cAAc,GAKf,MAAM,oBAAoB,CAAC;AAE5B,oBAAoB;AACpB,OAAO,EACL,qBAAqB,EACrB,uBAAuB,GAKxB,MAAM,mBAAmB,CAAC;AAE3B,qBAAqB;AACrB,OAAO,EACL,sBAAsB,EACtB,wBAAwB,GAIzB,MAAM,oBAAoB,CAAC;AAE5B,gBAAgB;AAChB,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,EACzB,aAAa,GAYd,MAAM,eAAe,CAAC;AAEvB,aAAa;AACb,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,GAYzB,MAAM,YAAY,CAAC;AAEpB,iCAAiC;AACjC,OAAO,EACL,oBAAoB,EACpB,sBAAsB,GAMvB,MAAM,kBAAkB,CAAC;AAE1B,oCAAoC;AACpC,OAAO,EACL,uBAAuB,EACvB,yBAAyB,GAM1B,MAAM,qBAAqB,CAAC;AAE7B,oCAAoC;AACpC,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,UAAU,GAMX,MAAM,qBAAqB,CAAC;AAE7B,gBAAgB;AAChB,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,uBAAuB,EACvB,yBAAyB,EACzB,sBAAsB,EACtB,yBAAyB,GAY1B,MAAM,eAAe,CAAC;AAEvB,YAAY;AACZ,OAAO,EACL,iBAAiB,EACjB,mBAAmB,GAKpB,MAAM,eAAe,CAAC;AAEvB,cAAc;AACd,OAAO,EACL,mBAAmB,EACnB,qBAAqB,GAKtB,MAAM,iBAAiB,CAAC;AAEzB,uBAAuB;AACvB,OAAO,EACL,uBAAuB,EACvB,yBAAyB,GAK1B,MAAM,qBAAqB,CAAC;AAE7B,eAAe;AACf,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,GAQtB,MAAM,cAAc,CAAC;AAEtB,aAAa;AACb,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,cAAc,GAkBf,MAAM,YAAY,CAAC;AAEpB,qBAAqB;AACrB,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,2BAA2B,EAC3B,6BAA6B,GAS9B,MAAM,oBAAoB,CAAC;AAE5B,iBAAiB;AACjB,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EACrB,wBAAwB,EACxB,0BAA0B,EAC1B,uBAAuB,GAYxB,MAAM,gBAAgB,CAAC;AAExB,qBAAqB;AACrB,OAAO,EACL,mBAAmB,EACnB,qBAAqB,GAKtB,MAAM,iBAAiB,CAAC;AAEzB,uCAAuC;AACvC,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,wBAAwB,EACxB,0BAA0B,EAC1B,0BAA0B,EAC1B,+BAA+B,EAC/B,6BAA6B,EAC7B,yBAAyB,EACzB,yBAAyB,EACzB,0BAA0B,EAC1B,4BAA4B,EAC5B,4BAA4B,EAC5B,iCAAiC,EACjC,+BAA+B,GAYhC,MAAM,kBAAkB,CAAC;AAE1B,qCAAqC;AACrC,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,GAOxB,MAAM,mBAAmB,CAAC"}
@@ -18,18 +18,42 @@ export declare const MemoryRecallParamsSchema: z.ZodObject<{
18
18
  category: z.ZodOptional<z.ZodEnum<["preference", "fact", "decision", "context", "entity", "other"]>>;
19
19
  tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
20
20
  relationship_id: z.ZodOptional<z.ZodString>;
21
+ location: z.ZodOptional<z.ZodObject<{
22
+ lat: z.ZodNumber;
23
+ lng: z.ZodNumber;
24
+ }, "strip", z.ZodTypeAny, {
25
+ lat: number;
26
+ lng: number;
27
+ }, {
28
+ lat: number;
29
+ lng: number;
30
+ }>>;
31
+ location_radius_km: z.ZodOptional<z.ZodNumber>;
32
+ location_weight: z.ZodOptional<z.ZodNumber>;
21
33
  }, "strip", z.ZodTypeAny, {
22
34
  query: string;
23
35
  limit?: number | undefined;
24
36
  category?: "preference" | "fact" | "decision" | "context" | "entity" | "other" | undefined;
25
37
  tags?: string[] | undefined;
26
38
  relationship_id?: string | undefined;
39
+ location?: {
40
+ lat: number;
41
+ lng: number;
42
+ } | undefined;
43
+ location_radius_km?: number | undefined;
44
+ location_weight?: number | undefined;
27
45
  }, {
28
46
  query: string;
29
47
  limit?: number | undefined;
30
48
  category?: "preference" | "fact" | "decision" | "context" | "entity" | "other" | undefined;
31
49
  tags?: string[] | undefined;
32
50
  relationship_id?: string | undefined;
51
+ location?: {
52
+ lat: number;
53
+ lng: number;
54
+ } | undefined;
55
+ location_radius_km?: number | undefined;
56
+ location_weight?: number | undefined;
33
57
  }>;
34
58
  export type MemoryRecallParams = z.infer<typeof MemoryRecallParamsSchema>;
35
59
  /** Memory item returned from API */
@@ -41,6 +65,10 @@ export interface Memory {
41
65
  score?: number;
42
66
  createdAt?: string;
43
67
  updatedAt?: string;
68
+ lat?: number | null;
69
+ lng?: number | null;
70
+ address?: string | null;
71
+ place_label?: string | null;
44
72
  }
45
73
  /** Successful tool result */
46
74
  export interface MemoryRecallSuccess {
@@ -1 +1 @@
1
- {"version":3,"file":"memory-recall.d.ts","sourceRoot":"","sources":["../../src/tools/memory-recall.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGjD,sCAAsC;AACtC,eAAO,MAAM,cAAc,6EAA2E,CAAC;AACvG,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE5D,wCAAwC;AACxC,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;EAMnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,oCAAoC;AACpC,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,6BAA6B;AAC7B,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,IAAI,CAAC;IACd,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE;YACP,KAAK,EAAE,MAAM,CAAC;YACd,QAAQ,EAAE,MAAM,EAAE,CAAC;YACnB,MAAM,EAAE,MAAM,CAAC;SAChB,CAAC;KACH,CAAC;CACH;AAED,yBAAyB;AACzB,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,uBAAuB;AACvB,MAAM,MAAM,kBAAkB,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;AAE3E,yBAAyB;AACzB,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,SAAS,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,sBAAsB;AACtB,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,wBAAwB,CAAC;IAC5C,OAAO,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACtE;AA4BD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,uBAAuB,GAAG,gBAAgB,CAiHzF"}
1
+ {"version":3,"file":"memory-recall.d.ts","sourceRoot":"","sources":["../../src/tools/memory-recall.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAIjD,sCAAsC;AACtC,eAAO,MAAM,cAAc,6EAA2E,CAAC;AACvG,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE5D,wCAAwC;AACxC,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,oCAAoC;AACpC,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,6BAA6B;AAC7B,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,IAAI,CAAC;IACd,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE;YACP,KAAK,EAAE,MAAM,CAAC;YACd,QAAQ,EAAE,MAAM,EAAE,CAAC;YACnB,MAAM,EAAE,MAAM,CAAC;SAChB,CAAC;KACH,CAAC;CACH;AAED,yBAAyB;AACzB,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,uBAAuB;AACvB,MAAM,MAAM,kBAAkB,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;AAE3E,yBAAyB;AACzB,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,SAAS,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,sBAAsB;AACtB,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,wBAAwB,CAAC;IAC5C,OAAO,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACtE;AA4BD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,uBAAuB,GAAG,gBAAgB,CAoJzF"}