@agllama/mcp 0.5.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.
Files changed (107) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +248 -0
  3. package/dist/api-client.d.ts +120 -0
  4. package/dist/api-client.d.ts.map +1 -0
  5. package/dist/api-client.js +421 -0
  6. package/dist/api-client.js.map +1 -0
  7. package/dist/index.d.ts +3 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +18 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/server.d.ts +4 -0
  12. package/dist/server.d.ts.map +1 -0
  13. package/dist/server.js +673 -0
  14. package/dist/server.js.map +1 -0
  15. package/dist/tools/backlog.d.ts +22 -0
  16. package/dist/tools/backlog.d.ts.map +1 -0
  17. package/dist/tools/backlog.js +109 -0
  18. package/dist/tools/backlog.js.map +1 -0
  19. package/dist/tools/boardConfig.d.ts +77 -0
  20. package/dist/tools/boardConfig.d.ts.map +1 -0
  21. package/dist/tools/boardConfig.js +154 -0
  22. package/dist/tools/boardConfig.js.map +1 -0
  23. package/dist/tools/boardTemplates.d.ts +47 -0
  24. package/dist/tools/boardTemplates.d.ts.map +1 -0
  25. package/dist/tools/boardTemplates.js +119 -0
  26. package/dist/tools/boardTemplates.js.map +1 -0
  27. package/dist/tools/boards.d.ts +62 -0
  28. package/dist/tools/boards.d.ts.map +1 -0
  29. package/dist/tools/boards.js +260 -0
  30. package/dist/tools/boards.js.map +1 -0
  31. package/dist/tools/comments.d.ts +82 -0
  32. package/dist/tools/comments.d.ts.map +1 -0
  33. package/dist/tools/comments.js +275 -0
  34. package/dist/tools/comments.js.map +1 -0
  35. package/dist/tools/connect.d.ts +7 -0
  36. package/dist/tools/connect.d.ts.map +1 -0
  37. package/dist/tools/connect.js +50 -0
  38. package/dist/tools/connect.js.map +1 -0
  39. package/dist/tools/context.d.ts +19 -0
  40. package/dist/tools/context.d.ts.map +1 -0
  41. package/dist/tools/context.js +136 -0
  42. package/dist/tools/context.js.map +1 -0
  43. package/dist/tools/documents.d.ts +99 -0
  44. package/dist/tools/documents.d.ts.map +1 -0
  45. package/dist/tools/documents.js +252 -0
  46. package/dist/tools/documents.js.map +1 -0
  47. package/dist/tools/help.d.ts +13 -0
  48. package/dist/tools/help.d.ts.map +1 -0
  49. package/dist/tools/help.js +485 -0
  50. package/dist/tools/help.js.map +1 -0
  51. package/dist/tools/index.d.ts +21 -0
  52. package/dist/tools/index.d.ts.map +1 -0
  53. package/dist/tools/index.js +21 -0
  54. package/dist/tools/index.js.map +1 -0
  55. package/dist/tools/issueLinks.d.ts +45 -0
  56. package/dist/tools/issueLinks.d.ts.map +1 -0
  57. package/dist/tools/issueLinks.js +147 -0
  58. package/dist/tools/issueLinks.js.map +1 -0
  59. package/dist/tools/issues.d.ts +307 -0
  60. package/dist/tools/issues.d.ts.map +1 -0
  61. package/dist/tools/issues.js +715 -0
  62. package/dist/tools/issues.js.map +1 -0
  63. package/dist/tools/labels.d.ts +56 -0
  64. package/dist/tools/labels.d.ts.map +1 -0
  65. package/dist/tools/labels.js +213 -0
  66. package/dist/tools/labels.js.map +1 -0
  67. package/dist/tools/members.d.ts +13 -0
  68. package/dist/tools/members.d.ts.map +1 -0
  69. package/dist/tools/members.js +43 -0
  70. package/dist/tools/members.js.map +1 -0
  71. package/dist/tools/organizations.d.ts +35 -0
  72. package/dist/tools/organizations.d.ts.map +1 -0
  73. package/dist/tools/organizations.js +116 -0
  74. package/dist/tools/organizations.js.map +1 -0
  75. package/dist/tools/projects.d.ts +67 -0
  76. package/dist/tools/projects.d.ts.map +1 -0
  77. package/dist/tools/projects.js +165 -0
  78. package/dist/tools/projects.js.map +1 -0
  79. package/dist/tools/search.d.ts +34 -0
  80. package/dist/tools/search.d.ts.map +1 -0
  81. package/dist/tools/search.js +85 -0
  82. package/dist/tools/search.js.map +1 -0
  83. package/dist/tools/session.d.ts +38 -0
  84. package/dist/tools/session.d.ts.map +1 -0
  85. package/dist/tools/session.js +158 -0
  86. package/dist/tools/session.js.map +1 -0
  87. package/dist/tools/sprints.d.ts +141 -0
  88. package/dist/tools/sprints.d.ts.map +1 -0
  89. package/dist/tools/sprints.js +470 -0
  90. package/dist/tools/sprints.js.map +1 -0
  91. package/dist/tools/status.d.ts +22 -0
  92. package/dist/tools/status.d.ts.map +1 -0
  93. package/dist/tools/status.js +81 -0
  94. package/dist/tools/status.js.map +1 -0
  95. package/dist/tools/workflows.d.ts +137 -0
  96. package/dist/tools/workflows.d.ts.map +1 -0
  97. package/dist/tools/workflows.js +355 -0
  98. package/dist/tools/workflows.js.map +1 -0
  99. package/dist/types.d.ts +434 -0
  100. package/dist/types.d.ts.map +1 -0
  101. package/dist/types.js +5 -0
  102. package/dist/types.js.map +1 -0
  103. package/dist/utils/column-instructions.d.ts +21 -0
  104. package/dist/utils/column-instructions.d.ts.map +1 -0
  105. package/dist/utils/column-instructions.js +54 -0
  106. package/dist/utils/column-instructions.js.map +1 -0
  107. package/package.json +63 -0
@@ -0,0 +1,62 @@
1
+ import { z } from 'zod';
2
+ export declare const listBoardsToolName = "llama_list_boards";
3
+ export declare const listBoardsToolDescription = "List all boards in a project.\nEach project typically has one default board, but can have multiple.";
4
+ export declare const listBoardsToolSchema: z.ZodObject<{
5
+ orgSlug: z.ZodOptional<z.ZodString>;
6
+ projectKey: z.ZodOptional<z.ZodString>;
7
+ }, "strip", z.ZodTypeAny, {
8
+ orgSlug?: string | undefined;
9
+ projectKey?: string | undefined;
10
+ }, {
11
+ orgSlug?: string | undefined;
12
+ projectKey?: string | undefined;
13
+ }>;
14
+ export type ListBoardsToolInput = z.infer<typeof listBoardsToolSchema>;
15
+ export declare function executeListBoards(input: ListBoardsToolInput): Promise<string>;
16
+ export declare const getBoardToolName = "llama_get_board";
17
+ export declare const getBoardToolDescription = "Get a board with all its columns and issues.\nReturns the full board state including issues in each column.\nUse this to see the current state of work on the Kanban board.";
18
+ export declare const getBoardToolSchema: z.ZodObject<{
19
+ orgSlug: z.ZodOptional<z.ZodString>;
20
+ projectKey: z.ZodOptional<z.ZodString>;
21
+ boardId: z.ZodString;
22
+ }, "strip", z.ZodTypeAny, {
23
+ boardId: string;
24
+ orgSlug?: string | undefined;
25
+ projectKey?: string | undefined;
26
+ }, {
27
+ boardId: string;
28
+ orgSlug?: string | undefined;
29
+ projectKey?: string | undefined;
30
+ }>;
31
+ export type GetBoardToolInput = z.infer<typeof getBoardToolSchema>;
32
+ export declare function executeGetBoard(input: GetBoardToolInput): Promise<string>;
33
+ export declare const moveIssueOnBoardToolName = "llama_move_issue_on_board";
34
+ export declare const moveIssueOnBoardToolDescription = "Move an issue to a different column on the board.\nThis changes the issue's status based on the column's status mapping.\nOptionally specify afterIssueId or beforeIssueId for precise positioning.";
35
+ export declare const moveIssueOnBoardToolSchema: z.ZodObject<{
36
+ orgSlug: z.ZodOptional<z.ZodString>;
37
+ projectKey: z.ZodOptional<z.ZodString>;
38
+ boardId: z.ZodString;
39
+ issueId: z.ZodString;
40
+ columnId: z.ZodString;
41
+ afterIssueId: z.ZodOptional<z.ZodString>;
42
+ beforeIssueId: z.ZodOptional<z.ZodString>;
43
+ }, "strip", z.ZodTypeAny, {
44
+ columnId: string;
45
+ boardId: string;
46
+ issueId: string;
47
+ orgSlug?: string | undefined;
48
+ projectKey?: string | undefined;
49
+ afterIssueId?: string | undefined;
50
+ beforeIssueId?: string | undefined;
51
+ }, {
52
+ columnId: string;
53
+ boardId: string;
54
+ issueId: string;
55
+ orgSlug?: string | undefined;
56
+ projectKey?: string | undefined;
57
+ afterIssueId?: string | undefined;
58
+ beforeIssueId?: string | undefined;
59
+ }>;
60
+ export type MoveIssueOnBoardToolInput = z.infer<typeof moveIssueOnBoardToolSchema>;
61
+ export declare function executeMoveIssueOnBoard(input: MoveIssueOnBoardToolInput): Promise<string>;
62
+ //# sourceMappingURL=boards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boards.d.ts","sourceRoot":"","sources":["../../src/tools/boards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB,eAAO,MAAM,kBAAkB,sBAAsB,CAAC;AAEtD,eAAO,MAAM,yBAAyB,wGAC+B,CAAC;AAEtE,eAAO,MAAM,oBAAoB;;;;;;;;;EAS/B,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEvE,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,mBAAmB,GACzB,OAAO,CAAC,MAAM,CAAC,CAiEjB;AAMD,eAAO,MAAM,gBAAgB,oBAAoB,CAAC;AAElD,eAAO,MAAM,uBAAuB,gLAE2B,CAAC;AAEhE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;EAU7B,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEnE,wBAAsB,eAAe,CACnC,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC,MAAM,CAAC,CA+FjB;AAMD,eAAO,MAAM,wBAAwB,8BAA8B,CAAC;AAEpE,eAAO,MAAM,+BAA+B,wMAE8B,CAAC;AAE3E,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;EAoBrC,CAAC;AAEH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAEnF,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,yBAAyB,GAC/B,OAAO,CAAC,MAAM,CAAC,CAiGjB"}
@@ -0,0 +1,260 @@
1
+ import { z } from 'zod';
2
+ import { getApiClient, LlamaApiError } from '../api-client.js';
3
+ import { getColumnInstructionsForStatus } from '../utils/column-instructions.js';
4
+ import { getSessionDefaults } from './session.js';
5
+ // ============================================
6
+ // List Boards
7
+ // ============================================
8
+ export const listBoardsToolName = 'llama_list_boards';
9
+ export const listBoardsToolDescription = `List all boards in a project.
10
+ Each project typically has one default board, but can have multiple.`;
11
+ export const listBoardsToolSchema = z.object({
12
+ orgSlug: z
13
+ .string()
14
+ .optional()
15
+ .describe('Organization slug (uses session default if not provided)'),
16
+ projectKey: z
17
+ .string()
18
+ .optional()
19
+ .describe('Project key (uses session default if not provided)'),
20
+ });
21
+ export async function executeListBoards(input) {
22
+ try {
23
+ const session = await getSessionDefaults();
24
+ const orgSlug = input.orgSlug ?? session?.orgSlug;
25
+ const projectKey = input.projectKey ?? session?.projectKey;
26
+ if (!orgSlug) {
27
+ return JSON.stringify({
28
+ success: false,
29
+ error: 'orgSlug is required. Either provide it or set session context with llama_set_context first.',
30
+ });
31
+ }
32
+ if (!projectKey) {
33
+ return JSON.stringify({
34
+ success: false,
35
+ error: 'projectKey is required. Either provide it or set session context with llama_set_context first.',
36
+ });
37
+ }
38
+ const client = getApiClient();
39
+ // Record tool call
40
+ try {
41
+ await client.recordToolCall('llama_list_boards', { orgSlug, projectKey });
42
+ }
43
+ catch {
44
+ // Ignore recording errors
45
+ }
46
+ const boards = await client.listBoards(orgSlug, projectKey);
47
+ return JSON.stringify({
48
+ success: true,
49
+ boards: boards.map((b) => ({
50
+ id: b.id,
51
+ name: b.name,
52
+ columnCount: b.columns?.length ?? 0,
53
+ })),
54
+ count: boards.length,
55
+ }, null, 2);
56
+ }
57
+ catch (error) {
58
+ if (error instanceof LlamaApiError) {
59
+ return JSON.stringify({
60
+ success: false,
61
+ error: `Failed to list boards: ${error.message}`,
62
+ statusCode: error.statusCode,
63
+ });
64
+ }
65
+ return JSON.stringify({
66
+ success: false,
67
+ error: error instanceof Error ? error.message : 'Unknown error',
68
+ });
69
+ }
70
+ }
71
+ // ============================================
72
+ // Get Board
73
+ // ============================================
74
+ export const getBoardToolName = 'llama_get_board';
75
+ export const getBoardToolDescription = `Get a board with all its columns and issues.
76
+ Returns the full board state including issues in each column.
77
+ Use this to see the current state of work on the Kanban board.`;
78
+ export const getBoardToolSchema = z.object({
79
+ orgSlug: z
80
+ .string()
81
+ .optional()
82
+ .describe('Organization slug (uses session default if not provided)'),
83
+ projectKey: z
84
+ .string()
85
+ .optional()
86
+ .describe('Project key (uses session default if not provided)'),
87
+ boardId: z.string().describe('Board ID (from llama_list_boards)'),
88
+ });
89
+ export async function executeGetBoard(input) {
90
+ try {
91
+ const session = await getSessionDefaults();
92
+ const orgSlug = input.orgSlug ?? session?.orgSlug;
93
+ const projectKey = input.projectKey ?? session?.projectKey;
94
+ if (!orgSlug) {
95
+ return JSON.stringify({
96
+ success: false,
97
+ error: 'orgSlug is required. Either provide it or set session context with llama_set_context first.',
98
+ });
99
+ }
100
+ if (!projectKey) {
101
+ return JSON.stringify({
102
+ success: false,
103
+ error: 'projectKey is required. Either provide it or set session context with llama_set_context first.',
104
+ });
105
+ }
106
+ const client = getApiClient();
107
+ // Record tool call
108
+ try {
109
+ await client.recordToolCall('llama_get_board', { orgSlug, projectKey });
110
+ }
111
+ catch {
112
+ // Ignore recording errors
113
+ }
114
+ const board = await client.getBoard(orgSlug, projectKey, input.boardId);
115
+ // Group issues by statusId (API returns flat array, we need to associate with columns)
116
+ const issuesByStatus = new Map();
117
+ for (const issue of board.issues ?? []) {
118
+ const statusId = issue.statusId;
119
+ if (!issuesByStatus.has(statusId)) {
120
+ issuesByStatus.set(statusId, []);
121
+ }
122
+ issuesByStatus.get(statusId).push(issue);
123
+ }
124
+ // Format board data for readability
125
+ const formattedBoard = {
126
+ id: board.id,
127
+ name: board.name,
128
+ columns: board.columns.map((col) => {
129
+ const columnIssues = issuesByStatus.get(col.statusId) ?? [];
130
+ return {
131
+ id: col.id,
132
+ name: col.name,
133
+ position: col.position,
134
+ wipLimit: col.wipLimit,
135
+ statusCategory: col.status?.category ?? col.statusCategory,
136
+ issueCount: columnIssues.length,
137
+ issues: columnIssues.map((issue) => ({
138
+ key: issue.key,
139
+ summary: issue.summary,
140
+ type: issue.type,
141
+ priority: issue.priority,
142
+ assignee: issue.assignee?.name ?? null,
143
+ })),
144
+ };
145
+ }),
146
+ };
147
+ return JSON.stringify({
148
+ success: true,
149
+ board: formattedBoard,
150
+ });
151
+ }
152
+ catch (error) {
153
+ if (error instanceof LlamaApiError) {
154
+ return JSON.stringify({
155
+ success: false,
156
+ error: `Failed to get board: ${error.message}`,
157
+ statusCode: error.statusCode,
158
+ });
159
+ }
160
+ return JSON.stringify({
161
+ success: false,
162
+ error: error instanceof Error ? error.message : 'Unknown error',
163
+ });
164
+ }
165
+ }
166
+ // ============================================
167
+ // Move Issue on Board
168
+ // ============================================
169
+ export const moveIssueOnBoardToolName = 'llama_move_issue_on_board';
170
+ export const moveIssueOnBoardToolDescription = `Move an issue to a different column on the board.
171
+ This changes the issue's status based on the column's status mapping.
172
+ Optionally specify afterIssueId or beforeIssueId for precise positioning.`;
173
+ export const moveIssueOnBoardToolSchema = z.object({
174
+ orgSlug: z
175
+ .string()
176
+ .optional()
177
+ .describe('Organization slug (uses session default if not provided)'),
178
+ projectKey: z
179
+ .string()
180
+ .optional()
181
+ .describe('Project key (uses session default if not provided)'),
182
+ boardId: z.string().describe('Board ID'),
183
+ issueId: z.string().describe('Issue ID to move'),
184
+ columnId: z.string().describe('Target column ID'),
185
+ afterIssueId: z
186
+ .string()
187
+ .optional()
188
+ .describe('Place after this issue ID (for ordering)'),
189
+ beforeIssueId: z
190
+ .string()
191
+ .optional()
192
+ .describe('Place before this issue ID (for ordering)'),
193
+ });
194
+ export async function executeMoveIssueOnBoard(input) {
195
+ try {
196
+ const session = await getSessionDefaults();
197
+ const orgSlug = input.orgSlug ?? session?.orgSlug;
198
+ const projectKey = input.projectKey ?? session?.projectKey;
199
+ if (!orgSlug) {
200
+ return JSON.stringify({
201
+ success: false,
202
+ error: 'orgSlug is required. Either provide it or set session context with llama_set_context first.',
203
+ });
204
+ }
205
+ if (!projectKey) {
206
+ return JSON.stringify({
207
+ success: false,
208
+ error: 'projectKey is required. Either provide it or set session context with llama_set_context first.',
209
+ });
210
+ }
211
+ const client = getApiClient();
212
+ // Record tool call
213
+ try {
214
+ await client.recordToolCall('llama_move_issue_on_board', { orgSlug, projectKey });
215
+ }
216
+ catch {
217
+ // Ignore recording errors
218
+ }
219
+ // First, get the board to find the status ID for the target column
220
+ const board = await client.getBoard(orgSlug, projectKey, input.boardId);
221
+ const targetColumn = board.columns.find((col) => col.id === input.columnId);
222
+ if (!targetColumn) {
223
+ return JSON.stringify({
224
+ success: false,
225
+ error: 'Target column not found on board',
226
+ });
227
+ }
228
+ await client.moveIssueOnBoard(orgSlug, projectKey, input.boardId, {
229
+ issueId: input.issueId,
230
+ columnId: input.columnId,
231
+ afterIssueId: input.afterIssueId,
232
+ beforeIssueId: input.beforeIssueId,
233
+ });
234
+ // Check if the target column has AI instructions
235
+ const columnInstructions = await getColumnInstructionsForStatus(orgSlug, projectKey, targetColumn.statusId);
236
+ const response = {
237
+ success: true,
238
+ message: `Moved issue to column "${targetColumn.name}"`,
239
+ };
240
+ // Add column instructions if they exist
241
+ if (columnInstructions) {
242
+ response.columnInstructions = columnInstructions;
243
+ }
244
+ return JSON.stringify(response);
245
+ }
246
+ catch (error) {
247
+ if (error instanceof LlamaApiError) {
248
+ return JSON.stringify({
249
+ success: false,
250
+ error: `Failed to move issue: ${error.message}`,
251
+ statusCode: error.statusCode,
252
+ });
253
+ }
254
+ return JSON.stringify({
255
+ success: false,
256
+ error: error instanceof Error ? error.message : 'Unknown error',
257
+ });
258
+ }
259
+ }
260
+ //# sourceMappingURL=boards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boards.js","sourceRoot":"","sources":["../../src/tools/boards.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ import { z } from 'zod';
2
+ export declare const listCommentsToolName = "llama_list_comments";
3
+ export declare const listCommentsToolDescription = "List all comments on an issue.\nReturns comments with author, content, and timestamps.";
4
+ export declare const listCommentsToolSchema: z.ZodObject<{
5
+ orgSlug: z.ZodOptional<z.ZodString>;
6
+ projectKey: z.ZodOptional<z.ZodString>;
7
+ issueKey: z.ZodString;
8
+ }, "strip", z.ZodTypeAny, {
9
+ issueKey: string;
10
+ orgSlug?: string | undefined;
11
+ projectKey?: string | undefined;
12
+ }, {
13
+ issueKey: string;
14
+ orgSlug?: string | undefined;
15
+ projectKey?: string | undefined;
16
+ }>;
17
+ export type ListCommentsToolInput = z.infer<typeof listCommentsToolSchema>;
18
+ export declare function executeListComments(input: ListCommentsToolInput): Promise<string>;
19
+ export declare const addCommentToolName = "llama_add_comment";
20
+ export declare const addCommentToolDescription = "Add a comment to an issue.\nSupports markdown formatting in the comment content.";
21
+ export declare const addCommentToolSchema: z.ZodObject<{
22
+ orgSlug: z.ZodOptional<z.ZodString>;
23
+ projectKey: z.ZodOptional<z.ZodString>;
24
+ issueKey: z.ZodString;
25
+ content: z.ZodString;
26
+ }, "strip", z.ZodTypeAny, {
27
+ issueKey: string;
28
+ content: string;
29
+ orgSlug?: string | undefined;
30
+ projectKey?: string | undefined;
31
+ }, {
32
+ issueKey: string;
33
+ content: string;
34
+ orgSlug?: string | undefined;
35
+ projectKey?: string | undefined;
36
+ }>;
37
+ export type AddCommentToolInput = z.infer<typeof addCommentToolSchema>;
38
+ export declare function executeAddComment(input: AddCommentToolInput): Promise<string>;
39
+ export declare const updateCommentToolName = "llama_update_comment";
40
+ export declare const updateCommentToolDescription = "Update an existing comment.\nOnly the comment author can update their own comments.";
41
+ export declare const updateCommentToolSchema: z.ZodObject<{
42
+ orgSlug: z.ZodOptional<z.ZodString>;
43
+ projectKey: z.ZodOptional<z.ZodString>;
44
+ issueKey: z.ZodString;
45
+ commentId: z.ZodString;
46
+ content: z.ZodString;
47
+ }, "strip", z.ZodTypeAny, {
48
+ issueKey: string;
49
+ content: string;
50
+ commentId: string;
51
+ orgSlug?: string | undefined;
52
+ projectKey?: string | undefined;
53
+ }, {
54
+ issueKey: string;
55
+ content: string;
56
+ commentId: string;
57
+ orgSlug?: string | undefined;
58
+ projectKey?: string | undefined;
59
+ }>;
60
+ export type UpdateCommentToolInput = z.infer<typeof updateCommentToolSchema>;
61
+ export declare function executeUpdateComment(input: UpdateCommentToolInput): Promise<string>;
62
+ export declare const deleteCommentToolName = "llama_delete_comment";
63
+ export declare const deleteCommentToolDescription = "Delete a comment from an issue.\nOnly the comment author can delete their own comments.";
64
+ export declare const deleteCommentToolSchema: z.ZodObject<{
65
+ orgSlug: z.ZodOptional<z.ZodString>;
66
+ projectKey: z.ZodOptional<z.ZodString>;
67
+ issueKey: z.ZodString;
68
+ commentId: z.ZodString;
69
+ }, "strip", z.ZodTypeAny, {
70
+ issueKey: string;
71
+ commentId: string;
72
+ orgSlug?: string | undefined;
73
+ projectKey?: string | undefined;
74
+ }, {
75
+ issueKey: string;
76
+ commentId: string;
77
+ orgSlug?: string | undefined;
78
+ projectKey?: string | undefined;
79
+ }>;
80
+ export type DeleteCommentToolInput = z.infer<typeof deleteCommentToolSchema>;
81
+ export declare function executeDeleteComment(input: DeleteCommentToolInput): Promise<string>;
82
+ //# sourceMappingURL=comments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comments.d.ts","sourceRoot":"","sources":["../../src/tools/comments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,eAAO,MAAM,oBAAoB,wBAAwB,CAAC;AAE1D,eAAO,MAAM,2BAA2B,2FACe,CAAC;AAExD,eAAO,MAAM,sBAAsB;;;;;;;;;;;;EAUjC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAE3E,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC,MAAM,CAAC,CAwEjB;AAMD,eAAO,MAAM,kBAAkB,sBAAsB,CAAC;AAEtD,eAAO,MAAM,yBAAyB,qFACe,CAAC;AAEtD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;EAW/B,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEvE,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,mBAAmB,GACzB,OAAO,CAAC,MAAM,CAAC,CAoEjB;AAMD,eAAO,MAAM,qBAAqB,yBAAyB,CAAC;AAE5D,eAAO,MAAM,4BAA4B,wFACc,CAAC;AAExD,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;EAYlC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAE7E,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,sBAAsB,GAC5B,OAAO,CAAC,MAAM,CAAC,CAoEjB;AAMD,eAAO,MAAM,qBAAqB,yBAAyB,CAAC;AAE5D,eAAO,MAAM,4BAA4B,4FACc,CAAC;AAExD,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;EAWlC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAE7E,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,sBAAsB,GAC5B,OAAO,CAAC,MAAM,CAAC,CA8DjB"}