@crypto512/jicon-mcp 0.6.1 → 0.7.1

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 (77) hide show
  1. package/README.md +265 -43
  2. package/TOOL_LIST.md +201 -5
  3. package/dist/config/types.d.ts +6 -6
  4. package/dist/config/types.d.ts.map +1 -1
  5. package/dist/config/types.js +3 -2
  6. package/dist/config/types.js.map +1 -1
  7. package/dist/confluence/client.d.ts +8 -16
  8. package/dist/confluence/client.d.ts.map +1 -1
  9. package/dist/confluence/client.js +75 -43
  10. package/dist/confluence/client.js.map +1 -1
  11. package/dist/confluence/formatters.d.ts +4 -0
  12. package/dist/confluence/formatters.d.ts.map +1 -1
  13. package/dist/confluence/formatters.js +19 -0
  14. package/dist/confluence/formatters.js.map +1 -1
  15. package/dist/confluence/tools.d.ts +9 -36
  16. package/dist/confluence/tools.d.ts.map +1 -1
  17. package/dist/confluence/tools.js +90 -158
  18. package/dist/confluence/tools.js.map +1 -1
  19. package/dist/index.js +9 -1
  20. package/dist/index.js.map +1 -1
  21. package/dist/jira/client.d.ts +9 -9
  22. package/dist/jira/client.d.ts.map +1 -1
  23. package/dist/jira/client.js +252 -30
  24. package/dist/jira/client.js.map +1 -1
  25. package/dist/jira/formatters.d.ts +4 -0
  26. package/dist/jira/formatters.d.ts.map +1 -1
  27. package/dist/jira/formatters.js +24 -0
  28. package/dist/jira/formatters.js.map +1 -1
  29. package/dist/jira/tools.d.ts +36 -36
  30. package/dist/jira/tools.d.ts.map +1 -1
  31. package/dist/jira/tools.js +161 -139
  32. package/dist/jira/tools.js.map +1 -1
  33. package/dist/jira/types.d.ts +50 -0
  34. package/dist/jira/types.d.ts.map +1 -1
  35. package/dist/permissions/filter.d.ts.map +1 -1
  36. package/dist/permissions/filter.js +42 -13
  37. package/dist/permissions/filter.js.map +1 -1
  38. package/dist/permissions/tool-registry.d.ts +33 -14
  39. package/dist/permissions/tool-registry.d.ts.map +1 -1
  40. package/dist/permissions/tool-registry.js +80 -5
  41. package/dist/permissions/tool-registry.js.map +1 -1
  42. package/dist/tempo/client.d.ts +1 -0
  43. package/dist/tempo/client.d.ts.map +1 -1
  44. package/dist/tempo/client.js +43 -0
  45. package/dist/tempo/client.js.map +1 -1
  46. package/dist/tempo/formatters.d.ts +4 -0
  47. package/dist/tempo/formatters.d.ts.map +1 -1
  48. package/dist/tempo/formatters.js +24 -0
  49. package/dist/tempo/formatters.js.map +1 -1
  50. package/dist/tempo/tools.d.ts +21 -0
  51. package/dist/tempo/tools.d.ts.map +1 -1
  52. package/dist/tempo/tools.js +74 -134
  53. package/dist/tempo/tools.js.map +1 -1
  54. package/dist/types.d.ts +1 -0
  55. package/dist/types.d.ts.map +1 -1
  56. package/dist/types.js.map +1 -1
  57. package/dist/utils/buffer-tools.d.ts +128 -0
  58. package/dist/utils/buffer-tools.d.ts.map +1 -0
  59. package/dist/utils/buffer-tools.js +312 -0
  60. package/dist/utils/buffer-tools.js.map +1 -0
  61. package/dist/utils/content-buffer.d.ts +144 -0
  62. package/dist/utils/content-buffer.d.ts.map +1 -0
  63. package/dist/utils/content-buffer.js +330 -0
  64. package/dist/utils/content-buffer.js.map +1 -0
  65. package/dist/utils/response-formatter.d.ts +5 -1
  66. package/dist/utils/response-formatter.d.ts.map +1 -1
  67. package/dist/utils/response-formatter.js +52 -2
  68. package/dist/utils/response-formatter.js.map +1 -1
  69. package/dist/utils/workload-tools.d.ts +68 -0
  70. package/dist/utils/workload-tools.d.ts.map +1 -0
  71. package/dist/utils/workload-tools.js +134 -0
  72. package/dist/utils/workload-tools.js.map +1 -0
  73. package/package.json +1 -1
  74. package/CLAUDE.md +0 -722
  75. package/CONTRIBUTING.md +0 -371
  76. package/DEVELOPMENT.md +0 -400
  77. package/JIRA_API_ANALYSIS.md +0 -275
@@ -3,54 +3,13 @@
3
3
  */
4
4
  import { z } from "zod";
5
5
  import { formatSuccess, formatError, isApiError, } from "../utils/response-formatter.js";
6
- import { formatWorklog, formatWorklogSearchResults, formatAccount, formatAccounts, formatTeam, formatTeams, } from "./formatters.js";
6
+ import { formatWorklogSearchMetadata, formatWorklog, formatAccount, formatAccounts, formatTeam, formatTeams, } from "./formatters.js";
7
7
  export function createTempoTools(client) {
8
8
  return {
9
9
  tempo_get_worklogs: {
10
- description: `Get time tracking worklogs from Tempo.
10
+ description: `Get Tempo worklogs with filters. Use workerKey for user-specific results (get it from tempo_get_user_info).
11
11
 
12
- Top 10 Useful Examples:
13
-
14
- 1. My worklogs for today:
15
- dateFrom: "2025-11-07", dateTo: "2025-11-07", workerKey: "your-username"
16
-
17
- 2. My worklogs this week:
18
- dateFrom: "2025-11-04", dateTo: "2025-11-10", workerKey: "your-username"
19
-
20
- 3. My worklogs this month:
21
- dateFrom: "2025-11-01", dateTo: "2025-11-30", workerKey: "your-username"
22
-
23
- 4. Team member's worklogs:
24
- dateFrom: "2025-11-01", dateTo: "2025-11-07", workerKey: "teammate-username"
25
-
26
- 5. All worklogs for a project:
27
- dateFrom: "2025-11-01", dateTo: "2025-11-30", projectKey: "PROJ"
28
-
29
- 6. Worklogs for specific issue:
30
- issueKey: "PROJ-123", dateFrom: "2025-11-01", dateTo: "2025-11-30"
31
-
32
- 7. Last 7 days worklogs:
33
- dateFrom: "2025-10-31", dateTo: "2025-11-07"
34
-
35
- 8. Yesterday's worklogs:
36
- dateFrom: "2025-11-06", dateTo: "2025-11-06"
37
-
38
- 9. Last month worklogs:
39
- dateFrom: "2025-10-01", dateTo: "2025-10-31"
40
-
41
- 10. Specific date range for project and user:
42
- dateFrom: "2025-11-01", dateTo: "2025-11-15", projectKey: "MESH", workerKey: "your-username"
43
-
44
- Date Format: YYYY-MM-DD
45
- Note: Use tempo_get_user_info first to get your workerKey (username)
46
- IMPORTANT: If no workerKey is provided, returns ALL worklogs (not just yours)!
47
-
48
- LIMITATIONS:
49
- ⚠️ Tempo Server/Data Center v4 API does not support pagination parameters (offset/limit).
50
- Results may be limited by server defaults. To retrieve worklogs for large datasets:
51
- - Use narrower date ranges (e.g., weekly instead of monthly)
52
- - Filter by specific projects or issues
53
- - Filter by individual workers`,
12
+ WARNING: No workerKey = returns ALL worklogs. Large responses are buffered.`,
54
13
  inputSchema: z.object({
55
14
  dateFrom: z.string().optional().describe("Start date (YYYY-MM-DD)"),
56
15
  dateTo: z.string().optional().describe("End date (YYYY-MM-DD)"),
@@ -70,14 +29,10 @@ Results may be limited by server defaults. To retrieve worklogs for large datase
70
29
  handler: async (args) => {
71
30
  try {
72
31
  const result = await client.getWorklogs(args.dateFrom, args.dateTo, args.projectKey, args.issueKey, args.workerKey);
73
- return {
74
- content: [
75
- {
76
- type: "text",
77
- text: formatWorklogSearchResults(result),
78
- },
79
- ],
80
- };
32
+ return formatSuccess({
33
+ ...formatWorklogSearchMetadata(result),
34
+ worklogs: result.results,
35
+ });
81
36
  }
82
37
  catch (error) {
83
38
  return formatError(isApiError(error) ? error : new Error(String(error)));
@@ -109,42 +64,9 @@ Results may be limited by server defaults. To retrieve worklogs for large datase
109
64
  tempo_log_work: {
110
65
  description: `Log time to a Jira issue in Tempo.
111
66
 
112
- Top 10 Common Time Logging Scenarios:
113
-
114
- 1. Log 8 hours today:
115
- issueKey: "PROJ-123", hours: 8, date: "2025-11-07"
116
-
117
- 2. Log 4 hours with description:
118
- issueKey: "PROJ-123", hours: 4, date: "2025-11-07", description: "Code review and testing"
119
-
120
- 3. Log 2.5 hours (2h 30m):
121
- issueKey: "PROJ-123", hours: 2.5, date: "2025-11-07"
122
-
123
- 4. Log time for yesterday:
124
- issueKey: "PROJ-123", hours: 6, date: "2025-11-06"
125
-
126
- 5. Log time with specific start time:
127
- issueKey: "PROJ-123", hours: 4, date: "2025-11-07", startTime: "09:00:00"
128
-
129
- 6. Log 1 hour quick entry:
130
- issueKey: "PROJ-123", hours: 1, date: "2025-11-07", description: "Meeting"
131
-
132
- 7. Log partial hour (45 minutes = 0.75 hours):
133
- issueKey: "PROJ-123", hours: 0.75, date: "2025-11-07"
134
-
135
- 8. Log full day (8 hours):
136
- issueKey: "PROJ-123", hours: 8, date: "2025-11-07", description: "Feature development"
137
-
138
- 9. Log time for multiple days:
139
- Call multiple times with different dates
140
-
141
- 10. Log time with remaining estimate:
142
- issueKey: "PROJ-123", hours: 4, date: "2025-11-07", remainingEstimateHours: 12
67
+ Example: issueKey: "PROJ-123", hours: 4, date: "2025-12-03", description: "Code review"
143
68
 
144
- Time Format:
145
- - hours: Decimal number (e.g., 1.5 = 1 hour 30 minutes, 0.25 = 15 minutes)
146
- - date: YYYY-MM-DD
147
- - startTime: HH:MM:SS (optional, defaults to 00:00:00)`,
69
+ Time format: hours as decimal (1.5 = 1h 30m), date as YYYY-MM-DD.`,
148
70
  inputSchema: z.object({
149
71
  issueKey: z.string().describe("Jira issue key (e.g., PROJ-123)"),
150
72
  hours: z.number().describe("Hours to log (decimal, e.g., 2.5 = 2h 30m)"),
@@ -237,16 +159,7 @@ Time Format:
237
159
  },
238
160
  },
239
161
  tempo_get_accounts: {
240
- description: `Get all Tempo accounts.
241
-
242
- Tempo Accounts are used to track work against customers, projects, or cost centers.
243
-
244
- Common Use Cases:
245
- 1. List all available accounts for time tracking
246
- 2. Find account keys for worklog categorization
247
- 3. Check account status (OPEN, CLOSED, ARCHIVED)
248
- 4. Identify account leads and contacts
249
- 5. View customer/project hierarchy`,
162
+ description: `Get all Tempo accounts. Accounts track work against customers, projects, or cost centers.`,
250
163
  inputSchema: z.object({}),
251
164
  handler: async () => {
252
165
  try {
@@ -288,16 +201,7 @@ Common Use Cases:
288
201
  },
289
202
  },
290
203
  tempo_get_teams: {
291
- description: `Get all Tempo teams.
292
-
293
- Tempo Teams allow you to organize users and track team capacity and workload.
294
-
295
- Common Use Cases:
296
- 1. List all teams in the organization
297
- 2. Find team IDs for worklog queries
298
- 3. View team membership and structure
299
- 4. Identify team leads
300
- 5. Track team capacity and availability`,
204
+ description: `Get all Tempo teams. Teams organize users and track capacity/workload.`,
301
205
  inputSchema: z.object({}),
302
206
  handler: async () => {
303
207
  try {
@@ -339,17 +243,7 @@ Common Use Cases:
339
243
  },
340
244
  },
341
245
  tempo_get_team_worklogs: {
342
- description: `Get all worklogs for a team within a date range.
343
-
344
- Useful for:
345
- - Team capacity reports
346
- - Sprint reviews and retrospectives
347
- - Team performance tracking
348
- - Resource allocation analysis
349
- - Billing and invoicing
350
-
351
- Example:
352
- teamId: 1, dateFrom: "2025-11-01", dateTo: "2025-11-07"`,
246
+ description: `Get all worklogs for a team within a date range. Large responses are buffered.`,
353
247
  inputSchema: z.object({
354
248
  teamId: z.number().describe("Team ID"),
355
249
  dateFrom: z.string().describe("Start date (YYYY-MM-DD)"),
@@ -358,14 +252,10 @@ teamId: 1, dateFrom: "2025-11-01", dateTo: "2025-11-07"`,
358
252
  handler: async (args) => {
359
253
  try {
360
254
  const result = await client.getTeamWorklogs(args.teamId, args.dateFrom, args.dateTo);
361
- return {
362
- content: [
363
- {
364
- type: "text",
365
- text: formatWorklogSearchResults(result),
366
- },
367
- ],
368
- };
255
+ return formatSuccess({
256
+ ...formatWorklogSearchMetadata(result),
257
+ worklogs: result.results,
258
+ });
369
259
  }
370
260
  catch (error) {
371
261
  return formatError(isApiError(error) ? error : new Error(String(error)));
@@ -373,14 +263,7 @@ teamId: 1, dateFrom: "2025-11-01", dateTo: "2025-11-07"`,
373
263
  },
374
264
  },
375
265
  tempo_get_user_info: {
376
- description: `Get current user information (workerKey, accountId, displayName).
377
-
378
- The workerKey (username) is needed for filtering worklogs by user. Use this tool first if you need to:
379
- - Get your workerKey to filter worklogs in tempo_get_worklogs
380
- - Find your accountId for Jira operations
381
- - Verify authentication is working
382
-
383
- IMPORTANT: Use 'workerKey' for Tempo worklog filtering, not 'accountId'!`,
266
+ description: `Get current user info (workerKey, accountId, displayName). Use workerKey for Tempo worklog filtering.`,
384
267
  inputSchema: z.object({}),
385
268
  handler: async () => {
386
269
  try {
@@ -398,6 +281,63 @@ IMPORTANT: Use 'workerKey' for Tempo worklog filtering, not 'accountId'!`,
398
281
  }
399
282
  },
400
283
  },
284
+ tempo_get_epic_worklogs: {
285
+ description: `Get all worklogs for an Epic and its child issues in one API call. More efficient than jira_get_total_worklogs for Tempo instances. Large responses are buffered.`,
286
+ inputSchema: z.object({
287
+ epicKey: z.string().describe("Epic issue key (e.g., PROJ-100)"),
288
+ dateFrom: z.string().optional().describe("Start date filter (YYYY-MM-DD)"),
289
+ dateTo: z.string().optional().describe("End date filter (YYYY-MM-DD)"),
290
+ }),
291
+ handler: async (args) => {
292
+ try {
293
+ const result = await client.getEpicWorklogs(args.epicKey, args.dateFrom, args.dateTo);
294
+ // Calculate totals and breakdown by issue
295
+ const byIssue = new Map();
296
+ let totalTimeSpentSeconds = 0;
297
+ for (const worklog of result.results) {
298
+ const issueKey = worklog.issue?.key || `ID-${worklog.originTaskId}`;
299
+ totalTimeSpentSeconds += worklog.timeSpentSeconds || 0;
300
+ const existing = byIssue.get(issueKey);
301
+ if (existing) {
302
+ existing.timeSpentSeconds += worklog.timeSpentSeconds || 0;
303
+ existing.worklogCount += 1;
304
+ }
305
+ else {
306
+ byIssue.set(issueKey, {
307
+ issueKey,
308
+ timeSpentSeconds: worklog.timeSpentSeconds || 0,
309
+ worklogCount: 1,
310
+ });
311
+ }
312
+ }
313
+ // Format time helper
314
+ const formatTime = (seconds) => {
315
+ const hours = Math.floor(seconds / 3600);
316
+ const minutes = Math.floor((seconds % 3600) / 60);
317
+ if (hours > 0) {
318
+ return minutes > 0 ? `${hours}h ${minutes}m` : `${hours}h`;
319
+ }
320
+ return `${minutes}m`;
321
+ };
322
+ const breakdown = Array.from(byIssue.values()).map(item => ({
323
+ ...item,
324
+ timeSpent: formatTime(item.timeSpentSeconds),
325
+ }));
326
+ return formatSuccess({
327
+ epicKey: args.epicKey,
328
+ totalTimeSpentSeconds,
329
+ totalTimeSpent: formatTime(totalTimeSpentSeconds),
330
+ totalWorklogCount: result.results.length,
331
+ issueCount: breakdown.length,
332
+ breakdown,
333
+ worklogs: result.results,
334
+ });
335
+ }
336
+ catch (error) {
337
+ return formatError(isApiError(error) ? error : new Error(String(error)));
338
+ }
339
+ },
340
+ },
401
341
  };
402
342
  }
403
343
  //# sourceMappingURL=tools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/tempo/tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,aAAa,EACb,WAAW,EACX,UAAU,GACX,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,aAAa,EACb,0BAA0B,EAC1B,aAAa,EACb,cAAc,EACd,UAAU,EACV,WAAW,GACZ,MAAM,iBAAiB,CAAC;AAGzB,MAAM,UAAU,gBAAgB,CAAC,MAAmB;IAClD,OAAO;QACL,kBAAkB,EAAE;YAClB,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BA2CY;YACzB,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;gBACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;gBACnE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;gBAC/D,UAAU,EAAE,CAAC;qBACV,MAAM,EAAE;qBACR,QAAQ,EAAE;qBACV,QAAQ,CAAC,oCAAoC,CAAC;gBACjD,QAAQ,EAAE,CAAC;qBACR,MAAM,EAAE;qBACR,QAAQ,EAAE;qBACV,QAAQ,CAAC,sCAAsC,CAAC;gBACnD,SAAS,EAAE,CAAC;qBACT,MAAM,EAAE;qBACR,QAAQ,EAAE;qBACV,QAAQ,CAAC,0GAA0G,CAAC;aACxH,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,IAMf,EAAuB,EAAE;gBACxB,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CACrC,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,SAAS,CACf,CAAC;oBACF,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,0BAA0B,CAAC,MAAM,CAAC;6BACzC;yBACF;qBACF,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,WAAW,CAChB,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CACrD,CAAC;gBACJ,CAAC;YACH,CAAC;SACF;QAED,iBAAiB,EAAE;YACjB,WAAW,EAAE,yDAAyD;YACtE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;gBACpB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;aACnD,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,IAA2B,EAAuB,EAAE;gBAClE,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBACvD,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC;6BAC5B;yBACF;qBACF,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,WAAW,CAChB,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CACrD,CAAC;gBACJ,CAAC;YACH,CAAC;SACF;QAED,cAAc,EAAE;YACd,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uDAqCoC;YACjD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;gBACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;gBAChE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;gBACxE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;gBAC1D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;gBAC/D,SAAS,EAAE,CAAC;qBACT,MAAM,EAAE;qBACR,QAAQ,EAAE;qBACV,QAAQ,CAAC,uCAAuC,CAAC;gBACpD,sBAAsB,EAAE,CAAC;qBACtB,MAAM,EAAE;qBACR,QAAQ,EAAE;qBACV,QAAQ,CAAC,6BAA6B,CAAC;aAC3C,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,IAOf,EAAuB,EAAE;gBACxB,IAAI,CAAC;oBACH,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;oBACvD,MAAM,wBAAwB,GAAG,IAAI,CAAC,sBAAsB;wBAC1D,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;wBAChD,CAAC,CAAC,SAAS,CAAC;oBAEd,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;wBAClC,QAAQ,EAAE,IAAI,CAAC,QAAQ;wBACvB,gBAAgB;wBAChB,SAAS,EAAE,IAAI,CAAC,IAAI;wBACpB,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,UAAU;wBACvC,WAAW,EAAE,IAAI,CAAC,WAAW;wBAC7B,eAAe,EAAE,gBAAgB,EAAE,gCAAgC;wBACnE,wBAAwB;qBACzB,CAAC,CAAC;oBAEH,OAAO,aAAa,CAAC;wBACnB,OAAO,EAAE,IAAI;wBACb,OAAO,EAAE,UAAU,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,QAAQ,OAAO,IAAI,CAAC,IAAI,EAAE;wBACpE,OAAO,EAAE,MAAM;qBAChB,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,WAAW,CAChB,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CACrD,CAAC;gBACJ,CAAC;YACH,CAAC;SACF;QAED,oBAAoB,EAAE;YACpB,WAAW,EAAE,kCAAkC;YAC/C,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;gBACpB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;gBAC5D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;gBAC5D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;gBAC9D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;aAC9D,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,IAKf,EAAuB,EAAE;gBACxB,IAAI,CAAC;oBACH,MAAM,UAAU,GAAQ,EAAE,CAAC;oBAE3B,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;wBAC7B,UAAU,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;wBAC5D,UAAU,CAAC,eAAe,GAAG,UAAU,CAAC,gBAAgB,CAAC;oBAC3D,CAAC;oBAED,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;wBACnC,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;oBAC5C,CAAC;oBAED,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;wBAC5B,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;oBACnC,CAAC;oBAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;oBAEtE,OAAO,aAAa,CAAC;wBACnB,OAAO,EAAE,IAAI;wBACb,OAAO,EAAE,oBAAoB,IAAI,CAAC,SAAS,EAAE;wBAC7C,OAAO,EAAE,MAAM;qBAChB,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,WAAW,CAChB,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CACrD,CAAC;gBACJ,CAAC;YACH,CAAC;SACF;QAED,oBAAoB,EAAE;YACpB,WAAW,EAAE,wBAAwB;YACrC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;gBACpB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;aAC7D,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,IAA2B,EAAuB,EAAE;gBAClE,IAAI,CAAC;oBACH,MAAM,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAE3C,OAAO,aAAa,CAAC;wBACnB,OAAO,EAAE,IAAI;wBACb,OAAO,EAAE,oBAAoB,IAAI,CAAC,SAAS,EAAE;qBAC9C,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,WAAW,CAChB,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CACrD,CAAC;gBACJ,CAAC;YACH,CAAC;SACF;QAED,kBAAkB,EAAE;YAClB,WAAW,EAAE;;;;;;;;;mCASgB;YAC7B,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YACzB,OAAO,EAAE,KAAK,IAAyB,EAAE;gBACvC,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC;oBAC1C,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC;6BAC7B;yBACF;qBACF,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,WAAW,CAChB,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CACrD,CAAC;gBACJ,CAAC;YACH,CAAC;SACF;QAED,iBAAiB,EAAE;YACjB,WAAW,EAAE,gDAAgD;YAC7D,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;gBACpB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;aAC/C,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,IAA4B,EAAuB,EAAE;gBACnE,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBACxD,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC;6BAC5B;yBACF;qBACF,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,WAAW,CAChB,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CACrD,CAAC;gBACJ,CAAC;YACH,CAAC;SACF;QAED,eAAe,EAAE;YACf,WAAW,EAAE;;;;;;;;;wCASqB;YAClC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YACzB,OAAO,EAAE,KAAK,IAAyB,EAAE;gBACvC,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;oBACvC,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC;6BAC1B;yBACF;qBACF,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,WAAW,CAChB,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CACrD,CAAC;gBACJ,CAAC;YACH,CAAC;SACF;QAED,cAAc,EAAE;YACd,WAAW,EAAE,6CAA6C;YAC1D,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;gBACpB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;aACvC,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,IAAwB,EAAuB,EAAE;gBAC/D,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACjD,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC;6BACzB;yBACF;qBACF,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,WAAW,CAChB,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CACrD,CAAC;gBACJ,CAAC;YACH,CAAC;SACF;QAED,uBAAuB,EAAE;YACvB,WAAW,EAAE;;;;;;;;;;wDAUqC;YAClD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;gBACpB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;gBACtC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;gBACxD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;aACrD,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,IAIf,EAAuB,EAAE;gBACxB,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,eAAe,CACzC,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,MAAM,CACZ,CAAC;oBACF,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,0BAA0B,CAAC,MAAM,CAAC;6BACzC;yBACF;qBACF,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,WAAW,CAChB,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CACrD,CAAC;gBACJ,CAAC;YACH,CAAC;SACF;QAED,mBAAmB,EAAE;YACnB,WAAW,EAAE;;;;;;;yEAOsD;YACnE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YACzB,OAAO,EAAE,KAAK,IAAyB,EAAE;gBACvC,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,cAAc,EAAE,CAAC;oBAC7C,OAAO,aAAa,CAAC;wBACnB,SAAS,EAAE,MAAM,CAAC,GAAG;wBACrB,QAAQ,EAAE,MAAM,CAAC,IAAI;wBACrB,SAAS,EAAE,MAAM,CAAC,SAAS;wBAC3B,WAAW,EAAE,MAAM,CAAC,WAAW;wBAC/B,GAAG,EAAE,mEAAmE;qBACzE,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,WAAW,CAChB,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CACrD,CAAC;gBACJ,CAAC;YACH,CAAC;SACF;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/tempo/tools.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -18,6 +18,7 @@ export interface ApiResponse<T> {
18
18
  error?: ApiError;
19
19
  }
20
20
  export interface ToolResult {
21
+ [x: string]: unknown;
21
22
  content: Array<{
22
23
  type: "text";
23
24
  text: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;CAC/B;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,QAAQ,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;CAC/B;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,QAAQ,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACrB,OAAO,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;;AA6BH,mFAAmF"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;;AA8BH,mFAAmF"}
@@ -0,0 +1,128 @@
1
+ /**
2
+ * Buffer management tools for MCP Server
3
+ *
4
+ * Provides tools to retrieve chunks from buffered content,
5
+ * list active buffers, clear buffers, search content, and edit content.
6
+ */
7
+ import { z } from "zod";
8
+ import type { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
9
+ export declare function createBufferTools(): {
10
+ buffer_get_chunk: {
11
+ description: string;
12
+ inputSchema: z.ZodObject<{
13
+ bufferId: z.ZodString;
14
+ offset: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
15
+ limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
16
+ }, "strip", z.ZodTypeAny, {
17
+ limit: number;
18
+ bufferId: string;
19
+ offset: number;
20
+ }, {
21
+ bufferId: string;
22
+ limit?: number | undefined;
23
+ offset?: number | undefined;
24
+ }>;
25
+ handler: (args: {
26
+ bufferId: string;
27
+ offset?: number;
28
+ limit?: number;
29
+ }) => Promise<CallToolResult>;
30
+ };
31
+ buffer_list: {
32
+ description: string;
33
+ inputSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
34
+ handler: () => Promise<CallToolResult>;
35
+ };
36
+ buffer_clear: {
37
+ description: string;
38
+ inputSchema: z.ZodObject<{
39
+ bufferId: z.ZodOptional<z.ZodString>;
40
+ }, "strip", z.ZodTypeAny, {
41
+ bufferId?: string | undefined;
42
+ }, {
43
+ bufferId?: string | undefined;
44
+ }>;
45
+ handler: (args: {
46
+ bufferId?: string;
47
+ }) => Promise<CallToolResult>;
48
+ };
49
+ buffer_grep: {
50
+ description: string;
51
+ inputSchema: z.ZodObject<{
52
+ bufferId: z.ZodString;
53
+ pattern: z.ZodString;
54
+ "-A": z.ZodOptional<z.ZodNumber>;
55
+ "-B": z.ZodOptional<z.ZodNumber>;
56
+ "-C": z.ZodOptional<z.ZodNumber>;
57
+ "-i": z.ZodOptional<z.ZodBoolean>;
58
+ "-n": z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
59
+ output_mode: z.ZodDefault<z.ZodOptional<z.ZodEnum<["content", "count"]>>>;
60
+ multiline: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
61
+ head_limit: z.ZodOptional<z.ZodNumber>;
62
+ offset: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
63
+ }, "strip", z.ZodTypeAny, {
64
+ bufferId: string;
65
+ offset: number;
66
+ multiline: boolean;
67
+ pattern: string;
68
+ "-n": boolean;
69
+ output_mode: "content" | "count";
70
+ "-A"?: number | undefined;
71
+ "-B"?: number | undefined;
72
+ "-C"?: number | undefined;
73
+ "-i"?: boolean | undefined;
74
+ head_limit?: number | undefined;
75
+ }, {
76
+ bufferId: string;
77
+ pattern: string;
78
+ offset?: number | undefined;
79
+ multiline?: boolean | undefined;
80
+ "-A"?: number | undefined;
81
+ "-B"?: number | undefined;
82
+ "-C"?: number | undefined;
83
+ "-i"?: boolean | undefined;
84
+ "-n"?: boolean | undefined;
85
+ output_mode?: "content" | "count" | undefined;
86
+ head_limit?: number | undefined;
87
+ }>;
88
+ handler: (args: {
89
+ bufferId: string;
90
+ pattern: string;
91
+ "-A"?: number;
92
+ "-B"?: number;
93
+ "-C"?: number;
94
+ "-i"?: boolean;
95
+ "-n"?: boolean;
96
+ output_mode?: "content" | "count";
97
+ multiline?: boolean;
98
+ head_limit?: number;
99
+ offset?: number;
100
+ }) => Promise<CallToolResult>;
101
+ };
102
+ buffer_edit: {
103
+ description: string;
104
+ inputSchema: z.ZodObject<{
105
+ bufferId: z.ZodString;
106
+ old_string: z.ZodString;
107
+ new_string: z.ZodString;
108
+ replace_all: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
109
+ }, "strip", z.ZodTypeAny, {
110
+ bufferId: string;
111
+ old_string: string;
112
+ new_string: string;
113
+ replace_all: boolean;
114
+ }, {
115
+ bufferId: string;
116
+ old_string: string;
117
+ new_string: string;
118
+ replace_all?: boolean | undefined;
119
+ }>;
120
+ handler: (args: {
121
+ bufferId: string;
122
+ old_string: string;
123
+ new_string: string;
124
+ replace_all?: boolean;
125
+ }) => Promise<CallToolResult>;
126
+ };
127
+ };
128
+ //# sourceMappingURL=buffer-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buffer-tools.d.ts","sourceRoot":"","sources":["../../src/utils/buffer-tools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAiDzE,wBAAgB,iBAAiB;;;;;;;;;;;;;;;;wBAiBL;YACpB,QAAQ,EAAE,MAAM,CAAC;YACjB,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,KAAK,CAAC,EAAE,MAAM,CAAC;SAChB,KAAG,OAAO,CAAC,cAAc,CAAC;;;;;uBAoCR,OAAO,CAAC,cAAc,CAAC;;;;;;;;;;;wBA2BpB;YAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;SAAE,KAAG,OAAO,CAAC,cAAc,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBA6E/C;YACpB,QAAQ,EAAE,MAAM,CAAC;YACjB,OAAO,EAAE,MAAM,CAAC;YAChB,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,IAAI,CAAC,EAAE,OAAO,CAAC;YACf,IAAI,CAAC,EAAE,OAAO,CAAC;YACf,WAAW,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;YAClC,SAAS,CAAC,EAAE,OAAO,CAAC;YACpB,UAAU,CAAC,EAAE,MAAM,CAAC;YACpB,MAAM,CAAC,EAAE,MAAM,CAAC;SACjB,KAAG,OAAO,CAAC,cAAc,CAAC;;;;;;;;;;;;;;;;;;;;wBAwGL;YACpB,QAAQ,EAAE,MAAM,CAAC;YACjB,UAAU,EAAE,MAAM,CAAC;YACnB,UAAU,EAAE,MAAM,CAAC;YACnB,WAAW,CAAC,EAAE,OAAO,CAAC;SACvB,KAAG,OAAO,CAAC,cAAc,CAAC;;EAoChC"}