@brxce/mcp-server 1.0.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 +220 -0
- package/dist/config/environment.d.ts +8 -0
- package/dist/config/environment.d.ts.map +1 -0
- package/dist/config/environment.js +16 -0
- package/dist/config/environment.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +167 -0
- package/dist/index.js.map +1 -0
- package/dist/prompts/worknode-prompts.d.ts +7 -0
- package/dist/prompts/worknode-prompts.d.ts.map +1 -0
- package/dist/prompts/worknode-prompts.js +369 -0
- package/dist/prompts/worknode-prompts.js.map +1 -0
- package/dist/prompts/workspace-context-prompt.d.ts +4 -0
- package/dist/prompts/workspace-context-prompt.d.ts.map +1 -0
- package/dist/prompts/workspace-context-prompt.js +101 -0
- package/dist/prompts/workspace-context-prompt.js.map +1 -0
- package/dist/resources/user-resource.d.ts +4 -0
- package/dist/resources/user-resource.d.ts.map +1 -0
- package/dist/resources/user-resource.js +40 -0
- package/dist/resources/user-resource.js.map +1 -0
- package/dist/resources/workspace-members-resource.d.ts +4 -0
- package/dist/resources/workspace-members-resource.d.ts.map +1 -0
- package/dist/resources/workspace-members-resource.js +39 -0
- package/dist/resources/workspace-members-resource.js.map +1 -0
- package/dist/resources/workspace-resource.d.ts +4 -0
- package/dist/resources/workspace-resource.d.ts.map +1 -0
- package/dist/resources/workspace-resource.js +27 -0
- package/dist/resources/workspace-resource.js.map +1 -0
- package/dist/services/api-client.d.ts +17 -0
- package/dist/services/api-client.d.ts.map +1 -0
- package/dist/services/api-client.js +118 -0
- package/dist/services/api-client.js.map +1 -0
- package/dist/tools/meeting-agenda-tool.d.ts +7 -0
- package/dist/tools/meeting-agenda-tool.d.ts.map +1 -0
- package/dist/tools/meeting-agenda-tool.js +452 -0
- package/dist/tools/meeting-agenda-tool.js.map +1 -0
- package/dist/tools/meeting-create-tool.d.ts +8 -0
- package/dist/tools/meeting-create-tool.d.ts.map +1 -0
- package/dist/tools/meeting-create-tool.js +309 -0
- package/dist/tools/meeting-create-tool.js.map +1 -0
- package/dist/tools/meeting-decisions-tool.d.ts +7 -0
- package/dist/tools/meeting-decisions-tool.d.ts.map +1 -0
- package/dist/tools/meeting-decisions-tool.js +431 -0
- package/dist/tools/meeting-decisions-tool.js.map +1 -0
- package/dist/tools/meeting-list-tool.d.ts +7 -0
- package/dist/tools/meeting-list-tool.d.ts.map +1 -0
- package/dist/tools/meeting-list-tool.js +305 -0
- package/dist/tools/meeting-list-tool.js.map +1 -0
- package/dist/tools/meeting-notes-tool.d.ts +7 -0
- package/dist/tools/meeting-notes-tool.d.ts.map +1 -0
- package/dist/tools/meeting-notes-tool.js +318 -0
- package/dist/tools/meeting-notes-tool.js.map +1 -0
- package/dist/tools/meeting-update-tool.d.ts +7 -0
- package/dist/tools/meeting-update-tool.d.ts.map +1 -0
- package/dist/tools/meeting-update-tool.js +310 -0
- package/dist/tools/meeting-update-tool.js.map +1 -0
- package/dist/tools/tag-category-tool.d.ts +4 -0
- package/dist/tools/tag-category-tool.d.ts.map +1 -0
- package/dist/tools/tag-category-tool.js +293 -0
- package/dist/tools/tag-category-tool.js.map +1 -0
- package/dist/tools/tag-search-tool.d.ts +4 -0
- package/dist/tools/tag-search-tool.d.ts.map +1 -0
- package/dist/tools/tag-search-tool.js +358 -0
- package/dist/tools/tag-search-tool.js.map +1 -0
- package/dist/tools/tag-tool.d.ts +4 -0
- package/dist/tools/tag-tool.d.ts.map +1 -0
- package/dist/tools/tag-tool.js +450 -0
- package/dist/tools/tag-tool.js.map +1 -0
- package/dist/tools/worknode-archive-tool.d.ts +7 -0
- package/dist/tools/worknode-archive-tool.d.ts.map +1 -0
- package/dist/tools/worknode-archive-tool.js +163 -0
- package/dist/tools/worknode-archive-tool.js.map +1 -0
- package/dist/tools/worknode-create-tool.d.ts +4 -0
- package/dist/tools/worknode-create-tool.d.ts.map +1 -0
- package/dist/tools/worknode-create-tool.js +382 -0
- package/dist/tools/worknode-create-tool.js.map +1 -0
- package/dist/tools/worknode-my-work-tool.d.ts +8 -0
- package/dist/tools/worknode-my-work-tool.d.ts.map +1 -0
- package/dist/tools/worknode-my-work-tool.js +302 -0
- package/dist/tools/worknode-my-work-tool.js.map +1 -0
- package/dist/tools/worknode-search-tool.d.ts +4 -0
- package/dist/tools/worknode-search-tool.d.ts.map +1 -0
- package/dist/tools/worknode-search-tool.js +289 -0
- package/dist/tools/worknode-search-tool.js.map +1 -0
- package/dist/tools/worknode-subtree-tool.d.ts +4 -0
- package/dist/tools/worknode-subtree-tool.d.ts.map +1 -0
- package/dist/tools/worknode-subtree-tool.js +175 -0
- package/dist/tools/worknode-subtree-tool.js.map +1 -0
- package/dist/tools/worknode-tag-tool.d.ts +4 -0
- package/dist/tools/worknode-tag-tool.d.ts.map +1 -0
- package/dist/tools/worknode-tag-tool.js +353 -0
- package/dist/tools/worknode-tag-tool.js.map +1 -0
- package/dist/tools/worknode-update-tool.d.ts +4 -0
- package/dist/tools/worknode-update-tool.d.ts.map +1 -0
- package/dist/tools/worknode-update-tool.js +409 -0
- package/dist/tools/worknode-update-tool.js.map +1 -0
- package/dist/tools/workspace-inbox-tool.d.ts +8 -0
- package/dist/tools/workspace-inbox-tool.d.ts.map +1 -0
- package/dist/tools/workspace-inbox-tool.js +210 -0
- package/dist/tools/workspace-inbox-tool.js.map +1 -0
- package/dist/tools/workspace-tree-tool.d.ts +4 -0
- package/dist/tools/workspace-tree-tool.d.ts.map +1 -0
- package/dist/tools/workspace-tree-tool.js +419 -0
- package/dist/tools/workspace-tree-tool.js.map +1 -0
- package/package.json +61 -0
|
@@ -0,0 +1,358 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export function registerTagSearchTools(server, apiClient) {
|
|
3
|
+
/**
|
|
4
|
+
* Search tags
|
|
5
|
+
*/
|
|
6
|
+
server.registerTool('brxce_search_tags', {
|
|
7
|
+
description: `Search and filter tags by various criteria.
|
|
8
|
+
|
|
9
|
+
**When to use:**
|
|
10
|
+
- To find tags by name or partial match
|
|
11
|
+
- To discover unused tags for cleanup
|
|
12
|
+
- To find popular/frequently used tags
|
|
13
|
+
- To search within specific categories
|
|
14
|
+
|
|
15
|
+
**Search options:**
|
|
16
|
+
- q: Search query for tag name
|
|
17
|
+
- categoryId or categorySlug: Filter by category
|
|
18
|
+
- minUsage/maxUsage: Filter by usage count
|
|
19
|
+
- unused: Show only unused tags (usageCount = 0)
|
|
20
|
+
- popular: Show only used tags (usageCount > 0)
|
|
21
|
+
|
|
22
|
+
**Example searches:**
|
|
23
|
+
User: "Find all unused tags in Tech Stack category"
|
|
24
|
+
Assistant calls: brxce_search_tags(
|
|
25
|
+
workspaceId: 4,
|
|
26
|
+
categorySlug: "tech-stack",
|
|
27
|
+
unused: true
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
User: "What are the most popular tags?"
|
|
31
|
+
Assistant calls: brxce_search_tags(
|
|
32
|
+
workspaceId: 4,
|
|
33
|
+
popular: true,
|
|
34
|
+
limit: 10
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
User: "Find tags matching 'react'"
|
|
38
|
+
Assistant calls: brxce_search_tags(workspaceId: 4, q: "react")`,
|
|
39
|
+
inputSchema: {
|
|
40
|
+
workspaceId: z.number().describe('The workspace ID'),
|
|
41
|
+
q: z.string().optional().describe('Search query for tag name'),
|
|
42
|
+
categoryId: z.number().optional().describe('Filter by category ID'),
|
|
43
|
+
categorySlug: z.string().optional().describe('Filter by category slug'),
|
|
44
|
+
minUsage: z.number().optional().describe('Minimum usage count'),
|
|
45
|
+
maxUsage: z.number().optional().describe('Maximum usage count'),
|
|
46
|
+
unused: z.boolean().optional().describe('Show only unused tags (usageCount = 0)'),
|
|
47
|
+
popular: z.boolean().optional().describe('Show only popular tags (usageCount > 0)'),
|
|
48
|
+
limit: z.number().optional().describe('Limit results (default: 100)')
|
|
49
|
+
}
|
|
50
|
+
}, async (args) => {
|
|
51
|
+
try {
|
|
52
|
+
const { workspaceId, q, categoryId, categorySlug, minUsage, maxUsage, unused, popular, limit } = args;
|
|
53
|
+
const queryParams = new URLSearchParams();
|
|
54
|
+
if (q)
|
|
55
|
+
queryParams.set('q', q);
|
|
56
|
+
if (categoryId !== undefined)
|
|
57
|
+
queryParams.set('categoryId', String(categoryId));
|
|
58
|
+
if (categorySlug)
|
|
59
|
+
queryParams.set('categorySlug', categorySlug);
|
|
60
|
+
if (minUsage !== undefined)
|
|
61
|
+
queryParams.set('minUsage', String(minUsage));
|
|
62
|
+
if (maxUsage !== undefined)
|
|
63
|
+
queryParams.set('maxUsage', String(maxUsage));
|
|
64
|
+
if (unused !== undefined)
|
|
65
|
+
queryParams.set('unused', String(unused));
|
|
66
|
+
if (popular !== undefined)
|
|
67
|
+
queryParams.set('popular', String(popular));
|
|
68
|
+
if (limit !== undefined)
|
|
69
|
+
queryParams.set('limit', String(limit));
|
|
70
|
+
const url = `/mcp/workspaces/${workspaceId}/tags/search${queryParams.toString() ? `?${queryParams.toString()}` : ''}`;
|
|
71
|
+
const response = await apiClient.get(url);
|
|
72
|
+
if (!response.success) {
|
|
73
|
+
return {
|
|
74
|
+
content: [
|
|
75
|
+
{
|
|
76
|
+
type: 'text',
|
|
77
|
+
text: `Failed to search tags: ${response.message || 'Unknown error'}`,
|
|
78
|
+
},
|
|
79
|
+
],
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
const { tags, total } = response.data;
|
|
83
|
+
let resultText = `## Tag Search Results (Workspace ${workspaceId})\\n\\n`;
|
|
84
|
+
if (q)
|
|
85
|
+
resultText += `Query: "${q}"\\n`;
|
|
86
|
+
resultText += `Found: ${total} tag(s)\\n\\n`;
|
|
87
|
+
if (tags.length === 0) {
|
|
88
|
+
resultText += `No tags found matching the criteria.\\n`;
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
// Group by category
|
|
92
|
+
const byCategory = tags.reduce((acc, tag) => {
|
|
93
|
+
const catName = tag.category.name;
|
|
94
|
+
if (!acc[catName])
|
|
95
|
+
acc[catName] = [];
|
|
96
|
+
acc[catName].push(tag);
|
|
97
|
+
return acc;
|
|
98
|
+
}, {});
|
|
99
|
+
Object.entries(byCategory).forEach(([catName, catTags]) => {
|
|
100
|
+
resultText += `### ${catName}\\n`;
|
|
101
|
+
catTags.forEach((tag) => {
|
|
102
|
+
const indent = ' '.repeat(tag.tagLevel);
|
|
103
|
+
resultText += `${indent}- **${tag.name}** (ID: ${tag.id})\\n`;
|
|
104
|
+
resultText += `${indent} Usage: ${tag.usageCount} WorkNode(s)\\n`;
|
|
105
|
+
if (tag.parentTag) {
|
|
106
|
+
resultText += `${indent} Parent: ${tag.parentTag.name}\\n`;
|
|
107
|
+
}
|
|
108
|
+
if (tag._count.childTags > 0) {
|
|
109
|
+
resultText += `${indent} Children: ${tag._count.childTags}\\n`;
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
resultText += `\\n`;
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
return {
|
|
116
|
+
content: [
|
|
117
|
+
{
|
|
118
|
+
type: 'text',
|
|
119
|
+
text: resultText,
|
|
120
|
+
},
|
|
121
|
+
],
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
catch (error) {
|
|
125
|
+
return {
|
|
126
|
+
content: [
|
|
127
|
+
{
|
|
128
|
+
type: 'text',
|
|
129
|
+
text: `Error searching tags: ${error.message || 'Unknown error'}`,
|
|
130
|
+
},
|
|
131
|
+
],
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
/**
|
|
136
|
+
* Get tag statistics
|
|
137
|
+
*/
|
|
138
|
+
server.registerTool('brxce_get_tag_stats', {
|
|
139
|
+
description: `Get comprehensive tag usage statistics for workspace.
|
|
140
|
+
|
|
141
|
+
**When to use:**
|
|
142
|
+
- To understand overall tag adoption and usage
|
|
143
|
+
- To identify unused tags for cleanup
|
|
144
|
+
- To see most popular tags
|
|
145
|
+
- To analyze tag distribution across categories
|
|
146
|
+
|
|
147
|
+
**Returns:**
|
|
148
|
+
- Overview: Total tags, used/unused counts, utilization rate
|
|
149
|
+
- Most used tags (top 10)
|
|
150
|
+
- Category breakdown with usage stats
|
|
151
|
+
|
|
152
|
+
**Example:**
|
|
153
|
+
User: "Show me tag usage statistics for this workspace"
|
|
154
|
+
Assistant calls: brxce_get_tag_stats(workspaceId: 4)
|
|
155
|
+
|
|
156
|
+
Use case: Workspace cleanup
|
|
157
|
+
- Check unused tags
|
|
158
|
+
- Review utilization rate
|
|
159
|
+
- Identify which categories are actively used`,
|
|
160
|
+
inputSchema: {
|
|
161
|
+
workspaceId: z.number().describe('The workspace ID')
|
|
162
|
+
}
|
|
163
|
+
}, async (args) => {
|
|
164
|
+
try {
|
|
165
|
+
const { workspaceId } = args;
|
|
166
|
+
const url = `/mcp/workspaces/${workspaceId}/tags/stats`;
|
|
167
|
+
const response = await apiClient.get(url);
|
|
168
|
+
if (!response.success) {
|
|
169
|
+
return {
|
|
170
|
+
content: [
|
|
171
|
+
{
|
|
172
|
+
type: 'text',
|
|
173
|
+
text: `Failed to get tag statistics: ${response.message || 'Unknown error'}`,
|
|
174
|
+
},
|
|
175
|
+
],
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
const { overview, mostUsedTags, byCategory } = response.data;
|
|
179
|
+
let resultText = `## Tag Statistics (Workspace ${workspaceId})\\n\\n`;
|
|
180
|
+
// Overview
|
|
181
|
+
resultText += `### Overview\\n`;
|
|
182
|
+
resultText += `- Total tags: ${overview.totalTags}\\n`;
|
|
183
|
+
resultText += `- Total categories: ${overview.totalCategories}\\n`;
|
|
184
|
+
resultText += `- Used tags: ${overview.usedTags}\\n`;
|
|
185
|
+
resultText += `- Unused tags: ${overview.unusedTags}\\n`;
|
|
186
|
+
resultText += `- Total assignments: ${overview.totalAssignments}\\n`;
|
|
187
|
+
resultText += `- Utilization rate: ${overview.utilizationRate}%\\n`;
|
|
188
|
+
resultText += `\\n`;
|
|
189
|
+
// Most used tags
|
|
190
|
+
if (mostUsedTags.length > 0) {
|
|
191
|
+
resultText += `### Most Used Tags\\n`;
|
|
192
|
+
mostUsedTags.forEach((tag, index) => {
|
|
193
|
+
resultText += `${index + 1}. **${tag.name}** (${tag.category}): ${tag.usageCount} uses\\n`;
|
|
194
|
+
});
|
|
195
|
+
resultText += `\\n`;
|
|
196
|
+
}
|
|
197
|
+
// By category
|
|
198
|
+
if (byCategory.length > 0) {
|
|
199
|
+
resultText += `### By Category\\n`;
|
|
200
|
+
byCategory.forEach((cat) => {
|
|
201
|
+
resultText += `#### ${cat.categoryName}\\n`;
|
|
202
|
+
resultText += `- Total tags: ${cat.totalTags}\\n`;
|
|
203
|
+
resultText += `- Used: ${cat.usedTags}\\n`;
|
|
204
|
+
resultText += `- Unused: ${cat.unusedTags}\\n`;
|
|
205
|
+
resultText += `- Total usage: ${cat.totalUsage}\\n`;
|
|
206
|
+
const catUtilization = cat.totalTags > 0
|
|
207
|
+
? ((cat.usedTags / cat.totalTags) * 100).toFixed(2)
|
|
208
|
+
: '0.00';
|
|
209
|
+
resultText += `- Utilization: ${catUtilization}%\\n`;
|
|
210
|
+
resultText += `\\n`;
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
return {
|
|
214
|
+
content: [
|
|
215
|
+
{
|
|
216
|
+
type: 'text',
|
|
217
|
+
text: resultText,
|
|
218
|
+
},
|
|
219
|
+
],
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
catch (error) {
|
|
223
|
+
return {
|
|
224
|
+
content: [
|
|
225
|
+
{
|
|
226
|
+
type: 'text',
|
|
227
|
+
text: `Error getting tag statistics: ${error.message || 'Unknown error'}`,
|
|
228
|
+
},
|
|
229
|
+
],
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
});
|
|
233
|
+
/**
|
|
234
|
+
* Find WorkNodes by tags
|
|
235
|
+
*/
|
|
236
|
+
server.registerTool('brxce_find_worknodes_by_tags', {
|
|
237
|
+
description: `Find WorkNodes that have specific tags.
|
|
238
|
+
|
|
239
|
+
**When to use:**
|
|
240
|
+
- To find all work related to specific tags
|
|
241
|
+
- To see what tasks/projects use certain technologies
|
|
242
|
+
- To filter workspace by tag combinations
|
|
243
|
+
|
|
244
|
+
**Match modes:**
|
|
245
|
+
- matchAll: false (default) - WorkNode has ANY of the specified tags
|
|
246
|
+
- matchAll: true - WorkNode must have ALL specified tags
|
|
247
|
+
|
|
248
|
+
**Example queries:**
|
|
249
|
+
User: "Show me all tasks tagged with React"
|
|
250
|
+
Assistant: Get React tag ID, then call:
|
|
251
|
+
brxce_find_worknodes_by_tags(
|
|
252
|
+
workspaceId: 4,
|
|
253
|
+
tagIds: "25",
|
|
254
|
+
matchAll: false
|
|
255
|
+
)
|
|
256
|
+
|
|
257
|
+
User: "Find work that uses both React AND TypeScript"
|
|
258
|
+
Assistant: Get both tag IDs, then call:
|
|
259
|
+
brxce_find_worknodes_by_tags(
|
|
260
|
+
workspaceId: 4,
|
|
261
|
+
tagIds: "25,26",
|
|
262
|
+
matchAll: true
|
|
263
|
+
)
|
|
264
|
+
|
|
265
|
+
User: "What backend tasks do we have?"
|
|
266
|
+
Assistant: Search for backend tag, then use its ID
|
|
267
|
+
|
|
268
|
+
**Returns:**
|
|
269
|
+
- WorkNodes with their tags grouped by category
|
|
270
|
+
- Match mode used (ANY/ALL)
|
|
271
|
+
- Total count`,
|
|
272
|
+
inputSchema: {
|
|
273
|
+
workspaceId: z.number().describe('The workspace ID'),
|
|
274
|
+
tagIds: z.string().optional().describe('Comma-separated tag IDs (e.g., "1,2,3")'),
|
|
275
|
+
tagSlugs: z.string().optional().describe('Comma-separated tag slugs (e.g., "react,typescript")'),
|
|
276
|
+
matchAll: z.boolean().optional().describe('If true, WorkNode must have ALL tags. If false, ANY tag matches. (default: false)'),
|
|
277
|
+
limit: z.number().optional().describe('Limit results (default: 100)')
|
|
278
|
+
}
|
|
279
|
+
}, async (args) => {
|
|
280
|
+
try {
|
|
281
|
+
const { workspaceId, tagIds, tagSlugs, matchAll, limit } = args;
|
|
282
|
+
const queryParams = new URLSearchParams();
|
|
283
|
+
if (tagIds)
|
|
284
|
+
queryParams.set('tagIds', tagIds);
|
|
285
|
+
if (tagSlugs)
|
|
286
|
+
queryParams.set('tagSlugs', tagSlugs);
|
|
287
|
+
if (matchAll !== undefined)
|
|
288
|
+
queryParams.set('matchAll', String(matchAll));
|
|
289
|
+
if (limit !== undefined)
|
|
290
|
+
queryParams.set('limit', String(limit));
|
|
291
|
+
const url = `/mcp/workspaces/${workspaceId}/worknodes/search-by-tags${queryParams.toString() ? `?${queryParams.toString()}` : ''}`;
|
|
292
|
+
const response = await apiClient.get(url);
|
|
293
|
+
if (!response.success) {
|
|
294
|
+
return {
|
|
295
|
+
content: [
|
|
296
|
+
{
|
|
297
|
+
type: 'text',
|
|
298
|
+
text: `Failed to find WorkNodes: ${response.message || 'Unknown error'}`,
|
|
299
|
+
},
|
|
300
|
+
],
|
|
301
|
+
};
|
|
302
|
+
}
|
|
303
|
+
const { worknodes, total, matchedTags, matchMode } = response.data;
|
|
304
|
+
let resultText = `## WorkNodes by Tags (Workspace ${workspaceId})\\n\\n`;
|
|
305
|
+
resultText += `Matched ${matchedTags} tag(s) with mode: ${matchMode}\\n`;
|
|
306
|
+
resultText += `Found: ${total} WorkNode(s)\\n\\n`;
|
|
307
|
+
if (worknodes.length === 0) {
|
|
308
|
+
resultText += `No WorkNodes found with the specified tags.\\n`;
|
|
309
|
+
}
|
|
310
|
+
else {
|
|
311
|
+
worknodes.forEach((wn) => {
|
|
312
|
+
const typeEmoji = {
|
|
313
|
+
goal: '🎯',
|
|
314
|
+
project: '📁',
|
|
315
|
+
subproject: '📂',
|
|
316
|
+
task: '✅',
|
|
317
|
+
subtask: '☑️'
|
|
318
|
+
}[wn.nodeType] || '📄';
|
|
319
|
+
const statusEmoji = {
|
|
320
|
+
backlog: '📥',
|
|
321
|
+
not_started: '⭕',
|
|
322
|
+
in_progress: '🔄',
|
|
323
|
+
in_review: '👀',
|
|
324
|
+
completed: '✅',
|
|
325
|
+
cancelled: '❌'
|
|
326
|
+
}[wn.status] || '❓';
|
|
327
|
+
resultText += `${typeEmoji} **${wn.title}** (ID: ${wn.id}) ${statusEmoji}\\n`;
|
|
328
|
+
resultText += ` Type: ${wn.nodeType} | Status: ${wn.status} | Priority: ${wn.priority}\\n`;
|
|
329
|
+
if (wn.tags && wn.tags.length > 0) {
|
|
330
|
+
resultText += ` Tags: `;
|
|
331
|
+
resultText += wn.tags.map((tag) => tag.name).join(', ');
|
|
332
|
+
resultText += `\\n`;
|
|
333
|
+
}
|
|
334
|
+
resultText += `\\n`;
|
|
335
|
+
});
|
|
336
|
+
}
|
|
337
|
+
return {
|
|
338
|
+
content: [
|
|
339
|
+
{
|
|
340
|
+
type: 'text',
|
|
341
|
+
text: resultText,
|
|
342
|
+
},
|
|
343
|
+
],
|
|
344
|
+
};
|
|
345
|
+
}
|
|
346
|
+
catch (error) {
|
|
347
|
+
return {
|
|
348
|
+
content: [
|
|
349
|
+
{
|
|
350
|
+
type: 'text',
|
|
351
|
+
text: `Error finding WorkNodes: ${error.message || 'Unknown error'}`,
|
|
352
|
+
},
|
|
353
|
+
],
|
|
354
|
+
};
|
|
355
|
+
}
|
|
356
|
+
});
|
|
357
|
+
}
|
|
358
|
+
//# sourceMappingURL=tag-search-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tag-search-tool.js","sourceRoot":"","sources":["../../src/tools/tag-search-tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tag-tool.d.ts","sourceRoot":"","sources":["../../src/tools/tag-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,QAijBvE"}
|