@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,275 @@
1
+ import { z } from 'zod';
2
+ import { getApiClient, LlamaApiError } from '../api-client.js';
3
+ import { getSessionDefaults } from './session.js';
4
+ // ============================================
5
+ // List Comments
6
+ // ============================================
7
+ export const listCommentsToolName = 'llama_list_comments';
8
+ export const listCommentsToolDescription = `List all comments on an issue.
9
+ Returns comments with author, content, and timestamps.`;
10
+ export const listCommentsToolSchema = z.object({
11
+ orgSlug: z
12
+ .string()
13
+ .optional()
14
+ .describe('Organization slug (uses session default if not provided)'),
15
+ projectKey: z
16
+ .string()
17
+ .optional()
18
+ .describe('Project key (uses session default if not provided)'),
19
+ issueKey: z.string().describe('Issue key (e.g., "PROJ-123")'),
20
+ });
21
+ export async function executeListComments(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_comments', { orgSlug, projectKey });
42
+ }
43
+ catch {
44
+ // Ignore recording errors
45
+ }
46
+ const comments = await client.listComments(orgSlug, projectKey, input.issueKey);
47
+ return JSON.stringify({
48
+ success: true,
49
+ issueKey: input.issueKey,
50
+ comments: comments.map((c) => ({
51
+ id: c.id,
52
+ author: c.authorName,
53
+ content: c.content,
54
+ createdAt: c.createdAt,
55
+ updatedAt: c.updatedAt,
56
+ })),
57
+ count: comments.length,
58
+ }, null, 2);
59
+ }
60
+ catch (error) {
61
+ if (error instanceof LlamaApiError) {
62
+ return JSON.stringify({
63
+ success: false,
64
+ error: `Failed to list comments: ${error.message}`,
65
+ statusCode: error.statusCode,
66
+ });
67
+ }
68
+ return JSON.stringify({
69
+ success: false,
70
+ error: error instanceof Error ? error.message : 'Unknown error',
71
+ });
72
+ }
73
+ }
74
+ // ============================================
75
+ // Add Comment
76
+ // ============================================
77
+ export const addCommentToolName = 'llama_add_comment';
78
+ export const addCommentToolDescription = `Add a comment to an issue.
79
+ Supports markdown formatting in the comment content.`;
80
+ export const addCommentToolSchema = z.object({
81
+ orgSlug: z
82
+ .string()
83
+ .optional()
84
+ .describe('Organization slug (uses session default if not provided)'),
85
+ projectKey: z
86
+ .string()
87
+ .optional()
88
+ .describe('Project key (uses session default if not provided)'),
89
+ issueKey: z.string().describe('Issue key (e.g., "PROJ-123")'),
90
+ content: z.string().describe('Comment content (markdown supported)'),
91
+ });
92
+ export async function executeAddComment(input) {
93
+ try {
94
+ const session = await getSessionDefaults();
95
+ const orgSlug = input.orgSlug ?? session?.orgSlug;
96
+ const projectKey = input.projectKey ?? session?.projectKey;
97
+ if (!orgSlug) {
98
+ return JSON.stringify({
99
+ success: false,
100
+ error: 'orgSlug is required. Either provide it or set session context with llama_set_context first.',
101
+ });
102
+ }
103
+ if (!projectKey) {
104
+ return JSON.stringify({
105
+ success: false,
106
+ error: 'projectKey is required. Either provide it or set session context with llama_set_context first.',
107
+ });
108
+ }
109
+ const client = getApiClient();
110
+ // Record tool call
111
+ try {
112
+ await client.recordToolCall('llama_add_comment', { orgSlug, projectKey });
113
+ }
114
+ catch {
115
+ // Ignore recording errors
116
+ }
117
+ const comment = await client.createComment(orgSlug, projectKey, input.issueKey, { content: input.content });
118
+ return JSON.stringify({
119
+ success: true,
120
+ message: `Added comment to ${input.issueKey}`,
121
+ comment: {
122
+ id: comment.id,
123
+ author: comment.authorName,
124
+ content: comment.content,
125
+ createdAt: comment.createdAt,
126
+ },
127
+ });
128
+ }
129
+ catch (error) {
130
+ if (error instanceof LlamaApiError) {
131
+ return JSON.stringify({
132
+ success: false,
133
+ error: `Failed to add comment: ${error.message}`,
134
+ statusCode: error.statusCode,
135
+ });
136
+ }
137
+ return JSON.stringify({
138
+ success: false,
139
+ error: error instanceof Error ? error.message : 'Unknown error',
140
+ });
141
+ }
142
+ }
143
+ // ============================================
144
+ // Update Comment
145
+ // ============================================
146
+ export const updateCommentToolName = 'llama_update_comment';
147
+ export const updateCommentToolDescription = `Update an existing comment.
148
+ Only the comment author can update their own comments.`;
149
+ export const updateCommentToolSchema = z.object({
150
+ orgSlug: z
151
+ .string()
152
+ .optional()
153
+ .describe('Organization slug (uses session default if not provided)'),
154
+ projectKey: z
155
+ .string()
156
+ .optional()
157
+ .describe('Project key (uses session default if not provided)'),
158
+ issueKey: z.string().describe('Issue key'),
159
+ commentId: z.string().describe('Comment ID to update'),
160
+ content: z.string().describe('New comment content'),
161
+ });
162
+ export async function executeUpdateComment(input) {
163
+ try {
164
+ const session = await getSessionDefaults();
165
+ const orgSlug = input.orgSlug ?? session?.orgSlug;
166
+ const projectKey = input.projectKey ?? session?.projectKey;
167
+ if (!orgSlug) {
168
+ return JSON.stringify({
169
+ success: false,
170
+ error: 'orgSlug is required. Either provide it or set session context with llama_set_context first.',
171
+ });
172
+ }
173
+ if (!projectKey) {
174
+ return JSON.stringify({
175
+ success: false,
176
+ error: 'projectKey is required. Either provide it or set session context with llama_set_context first.',
177
+ });
178
+ }
179
+ const client = getApiClient();
180
+ // Record tool call
181
+ try {
182
+ await client.recordToolCall('llama_update_comment', { orgSlug, projectKey });
183
+ }
184
+ catch {
185
+ // Ignore recording errors
186
+ }
187
+ const comment = await client.updateComment(orgSlug, projectKey, input.issueKey, input.commentId, input.content);
188
+ return JSON.stringify({
189
+ success: true,
190
+ message: `Updated comment on ${input.issueKey}`,
191
+ comment: {
192
+ id: comment.id,
193
+ content: comment.content,
194
+ updatedAt: comment.updatedAt,
195
+ },
196
+ });
197
+ }
198
+ catch (error) {
199
+ if (error instanceof LlamaApiError) {
200
+ return JSON.stringify({
201
+ success: false,
202
+ error: `Failed to update comment: ${error.message}`,
203
+ statusCode: error.statusCode,
204
+ });
205
+ }
206
+ return JSON.stringify({
207
+ success: false,
208
+ error: error instanceof Error ? error.message : 'Unknown error',
209
+ });
210
+ }
211
+ }
212
+ // ============================================
213
+ // Delete Comment
214
+ // ============================================
215
+ export const deleteCommentToolName = 'llama_delete_comment';
216
+ export const deleteCommentToolDescription = `Delete a comment from an issue.
217
+ Only the comment author can delete their own comments.`;
218
+ export const deleteCommentToolSchema = z.object({
219
+ orgSlug: z
220
+ .string()
221
+ .optional()
222
+ .describe('Organization slug (uses session default if not provided)'),
223
+ projectKey: z
224
+ .string()
225
+ .optional()
226
+ .describe('Project key (uses session default if not provided)'),
227
+ issueKey: z.string().describe('Issue key'),
228
+ commentId: z.string().describe('Comment ID to delete'),
229
+ });
230
+ export async function executeDeleteComment(input) {
231
+ try {
232
+ const session = await getSessionDefaults();
233
+ const orgSlug = input.orgSlug ?? session?.orgSlug;
234
+ const projectKey = input.projectKey ?? session?.projectKey;
235
+ if (!orgSlug) {
236
+ return JSON.stringify({
237
+ success: false,
238
+ error: 'orgSlug is required. Either provide it or set session context with llama_set_context first.',
239
+ });
240
+ }
241
+ if (!projectKey) {
242
+ return JSON.stringify({
243
+ success: false,
244
+ error: 'projectKey is required. Either provide it or set session context with llama_set_context first.',
245
+ });
246
+ }
247
+ const client = getApiClient();
248
+ // Record tool call
249
+ try {
250
+ await client.recordToolCall('llama_delete_comment', { orgSlug, projectKey });
251
+ }
252
+ catch {
253
+ // Ignore recording errors
254
+ }
255
+ await client.deleteComment(orgSlug, projectKey, input.issueKey, input.commentId);
256
+ return JSON.stringify({
257
+ success: true,
258
+ message: `Deleted comment from ${input.issueKey}`,
259
+ });
260
+ }
261
+ catch (error) {
262
+ if (error instanceof LlamaApiError) {
263
+ return JSON.stringify({
264
+ success: false,
265
+ error: `Failed to delete comment: ${error.message}`,
266
+ statusCode: error.statusCode,
267
+ });
268
+ }
269
+ return JSON.stringify({
270
+ success: false,
271
+ error: error instanceof Error ? error.message : 'Unknown error',
272
+ });
273
+ }
274
+ }
275
+ //# sourceMappingURL=comments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comments.js","sourceRoot":"","sources":["../../src/tools/comments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,+CAA+C;AAC/C,gBAAgB;AAChB,+CAA+C;AAE/C,MAAM,CAAC,MAAM,oBAAoB,GAAG,qBAAqB,CAAC;AAE1D,MAAM,CAAC,MAAM,2BAA2B,GAAG;uDACY,CAAC;AAExD,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,0DAA0D,CAAC;IACvE,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,oDAAoD,CAAC;IACjE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;CAC9D,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,KAA4B;IAE5B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,kBAAkB,EAAE,CAAC;QAE3C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,OAAO,EAAE,OAAO,CAAC;QAClD,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,OAAO,EAAE,UAAU,CAAC;QAE3D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,SAAS,CACnB;gBACE,OAAO,EAAE,KAAK;gBACd,KAAK,EACH,6FAA6F;aAChG,CAAC,CAAC;QACP,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,SAAS,CACnB;gBACE,OAAO,EAAE,KAAK;gBACd,KAAK,EACH,gGAAgG;aACnG,CAAC,CAAC;QACP,CAAC;QAED,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;QAE9B,mBAAmB;QACnB,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,cAAc,CAAC,qBAAqB,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;QAC9E,CAAC;QAAC,MAAM,CAAC;YACP,0BAA0B;QAC5B,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,YAAY,CACxC,OAAO,EACP,UAAU,EACV,KAAK,CAAC,QAAQ,CACf,CAAC;QAEF,OAAO,IAAI,CAAC,SAAS,CACnB;YACE,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC7B,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,MAAM,EAAE,CAAC,CAAC,UAAU;gBACpB,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,SAAS,EAAE,CAAC,CAAC,SAAS;aACvB,CAAC,CAAC;YACH,KAAK,EAAE,QAAQ,CAAC,MAAM;SACvB,EACD,IAAI,EACJ,CAAC,CACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,aAAa,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC,SAAS,CACnB;gBACE,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,4BAA4B,KAAK,CAAC,OAAO,EAAE;gBAClD,UAAU,EAAE,KAAK,CAAC,UAAU;aAC7B,CAAC,CAAC;QACP,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CACnB;YACE,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;SAChE,CAAC,CAAC;IACP,CAAC;AACH,CAAC;AAED,+CAA+C;AAC/C,cAAc;AACd,+CAA+C;AAE/C,MAAM,CAAC,MAAM,kBAAkB,GAAG,mBAAmB,CAAC;AAEtD,MAAM,CAAC,MAAM,yBAAyB,GAAG;qDACY,CAAC;AAEtD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,0DAA0D,CAAC;IACvE,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,oDAAoD,CAAC;IACjE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;IAC7D,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;CACrE,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,KAA0B;IAE1B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,kBAAkB,EAAE,CAAC;QAE3C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,OAAO,EAAE,OAAO,CAAC;QAClD,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,OAAO,EAAE,UAAU,CAAC;QAE3D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,SAAS,CACnB;gBACE,OAAO,EAAE,KAAK;gBACd,KAAK,EACH,6FAA6F;aAChG,CAAC,CAAC;QACP,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,SAAS,CACnB;gBACE,OAAO,EAAE,KAAK;gBACd,KAAK,EACH,gGAAgG;aACnG,CAAC,CAAC;QACP,CAAC;QAED,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;QAE9B,mBAAmB;QACnB,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,cAAc,CAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;QAC5E,CAAC;QAAC,MAAM,CAAC;YACP,0BAA0B;QAC5B,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,aAAa,CACxC,OAAO,EACP,UAAU,EACV,KAAK,CAAC,QAAQ,EACd,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAC3B,CAAC;QAEF,OAAO,IAAI,CAAC,SAAS,CACnB;YACE,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,oBAAoB,KAAK,CAAC,QAAQ,EAAE;YAC7C,OAAO,EAAE;gBACP,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,MAAM,EAAE,OAAO,CAAC,UAAU;gBAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,SAAS,EAAE,OAAO,CAAC,SAAS;aAC7B;SACF,CAAC,CAAC;IACP,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,aAAa,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC,SAAS,CACnB;gBACE,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,0BAA0B,KAAK,CAAC,OAAO,EAAE;gBAChD,UAAU,EAAE,KAAK,CAAC,UAAU;aAC7B,CAAC,CAAC;QACP,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CACnB;YACE,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;SAChE,CAAC,CAAC;IACP,CAAC;AACH,CAAC;AAED,+CAA+C;AAC/C,iBAAiB;AACjB,+CAA+C;AAE/C,MAAM,CAAC,MAAM,qBAAqB,GAAG,sBAAsB,CAAC;AAE5D,MAAM,CAAC,MAAM,4BAA4B,GAAG;uDACW,CAAC;AAExD,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,0DAA0D,CAAC;IACvE,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,oDAAoD,CAAC;IACjE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;IAC1C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IACtD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;CACpD,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,KAA6B;IAE7B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,kBAAkB,EAAE,CAAC;QAE3C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,OAAO,EAAE,OAAO,CAAC;QAClD,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,OAAO,EAAE,UAAU,CAAC;QAE3D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,SAAS,CACnB;gBACE,OAAO,EAAE,KAAK;gBACd,KAAK,EACH,6FAA6F;aAChG,CAAC,CAAC;QACP,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,SAAS,CACnB;gBACE,OAAO,EAAE,KAAK;gBACd,KAAK,EACH,gGAAgG;aACnG,CAAC,CAAC;QACP,CAAC;QAED,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;QAE9B,mBAAmB;QACnB,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,cAAc,CAAC,sBAAsB,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;QAC/E,CAAC;QAAC,MAAM,CAAC;YACP,0BAA0B;QAC5B,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,aAAa,CACxC,OAAO,EACP,UAAU,EACV,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,OAAO,CACd,CAAC;QAEF,OAAO,IAAI,CAAC,SAAS,CACnB;YACE,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,sBAAsB,KAAK,CAAC,QAAQ,EAAE;YAC/C,OAAO,EAAE;gBACP,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,SAAS,EAAE,OAAO,CAAC,SAAS;aAC7B;SACF,CAAC,CAAC;IACP,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,aAAa,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC,SAAS,CACnB;gBACE,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,6BAA6B,KAAK,CAAC,OAAO,EAAE;gBACnD,UAAU,EAAE,KAAK,CAAC,UAAU;aAC7B,CAAC,CAAC;QACP,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CACnB;YACE,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;SAChE,CAAC,CAAC;IACP,CAAC;AACH,CAAC;AAED,+CAA+C;AAC/C,iBAAiB;AACjB,+CAA+C;AAE/C,MAAM,CAAC,MAAM,qBAAqB,GAAG,sBAAsB,CAAC;AAE5D,MAAM,CAAC,MAAM,4BAA4B,GAAG;uDACW,CAAC;AAExD,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,0DAA0D,CAAC;IACvE,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,oDAAoD,CAAC;IACjE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;IAC1C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;CACvD,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,KAA6B;IAE7B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,kBAAkB,EAAE,CAAC;QAE3C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,OAAO,EAAE,OAAO,CAAC;QAClD,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,OAAO,EAAE,UAAU,CAAC;QAE3D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,SAAS,CACnB;gBACE,OAAO,EAAE,KAAK;gBACd,KAAK,EACH,6FAA6F;aAChG,CAAC,CAAC;QACP,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,SAAS,CACnB;gBACE,OAAO,EAAE,KAAK;gBACd,KAAK,EACH,gGAAgG;aACnG,CAAC,CAAC;QACP,CAAC;QAED,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;QAE9B,mBAAmB;QACnB,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,cAAc,CAAC,sBAAsB,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;QAC/E,CAAC;QAAC,MAAM,CAAC;YACP,0BAA0B;QAC5B,CAAC;QAED,MAAM,MAAM,CAAC,aAAa,CACxB,OAAO,EACP,UAAU,EACV,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,SAAS,CAChB,CAAC;QAEF,OAAO,IAAI,CAAC,SAAS,CACnB;YACE,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,wBAAwB,KAAK,CAAC,QAAQ,EAAE;SAClD,CAAC,CAAC;IACP,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,aAAa,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC,SAAS,CACnB;gBACE,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,6BAA6B,KAAK,CAAC,OAAO,EAAE;gBACnD,UAAU,EAAE,KAAK,CAAC,UAAU;aAC7B,CAAC,CAAC;QACP,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CACnB;YACE,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;SAChE,CAAC,CAAC;IACP,CAAC;AACH,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { z } from 'zod';
2
+ export declare const connectToolName = "llama_connect";
3
+ export declare const connectToolDescription = "Test connection to Llama API and get current user info. Call this first to verify your API key is working.";
4
+ export declare const connectToolSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
5
+ export type ConnectToolInput = z.infer<typeof connectToolSchema>;
6
+ export declare function executeConnect(): Promise<string>;
7
+ //# sourceMappingURL=connect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../src/tools/connect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,eAAe,kBAAkB,CAAC;AAE/C,eAAO,MAAM,sBAAsB,+GAC2E,CAAC;AAE/G,eAAO,MAAM,iBAAiB,gDAAe,CAAC;AAE9C,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEjE,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAmDtD"}
@@ -0,0 +1,50 @@
1
+ import { z } from 'zod';
2
+ import { getApiClient, LlamaApiError } from '../api-client.js';
3
+ export const connectToolName = 'llama_connect';
4
+ export const connectToolDescription = 'Test connection to Llama API and get current user info. Call this first to verify your API key is working.';
5
+ export const connectToolSchema = z.object({});
6
+ export async function executeConnect() {
7
+ const apiUrl = process.env.LLAMA_API_URL;
8
+ const apiKey = process.env.LLAMA_API_KEY;
9
+ const keyStatus = apiKey ? 'SET' : 'NOT SET';
10
+ // If env vars not set, return debug info (without exposing key contents)
11
+ if (!apiUrl || !apiKey) {
12
+ return JSON.stringify({
13
+ success: false,
14
+ error: 'Environment variables not set',
15
+ debug: {
16
+ LLAMA_API_URL: apiUrl || 'NOT SET',
17
+ LLAMA_API_KEY: keyStatus,
18
+ },
19
+ });
20
+ }
21
+ try {
22
+ const client = getApiClient();
23
+ const user = await client.testConnection();
24
+ return JSON.stringify({
25
+ success: true,
26
+ message: 'Successfully connected to Llama API',
27
+ user: {
28
+ id: user.id,
29
+ email: user.email,
30
+ name: user.name,
31
+ },
32
+ });
33
+ }
34
+ catch (error) {
35
+ if (error instanceof LlamaApiError) {
36
+ return JSON.stringify({
37
+ success: false,
38
+ error: `Connection failed: ${error.message}`,
39
+ statusCode: error.statusCode,
40
+ });
41
+ }
42
+ return JSON.stringify({
43
+ success: false,
44
+ error: error instanceof Error
45
+ ? error.message
46
+ : 'Unknown error connecting to Llama API',
47
+ });
48
+ }
49
+ }
50
+ //# sourceMappingURL=connect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/tools/connect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAE/D,MAAM,CAAC,MAAM,eAAe,GAAG,eAAe,CAAC;AAE/C,MAAM,CAAC,MAAM,sBAAsB,GACjC,4GAA4G,CAAC;AAE/G,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAI9C,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IACzC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IACzC,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAE7C,yEAAyE;IACzE,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC,SAAS,CACnB;YACE,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,+BAA+B;YACtC,KAAK,EAAE;gBACL,aAAa,EAAE,MAAM,IAAI,SAAS;gBAClC,aAAa,EAAE,SAAS;aACzB;SACF,CAAC,CAAC;IACP,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,cAAc,EAAE,CAAC;QAE3C,OAAO,IAAI,CAAC,SAAS,CACnB;YACE,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,qCAAqC;YAC9C,IAAI,EAAE;gBACJ,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB;SACF,CAAC,CAAC;IACP,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,aAAa,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC,SAAS,CACnB;gBACE,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,sBAAsB,KAAK,CAAC,OAAO,EAAE;gBAC5C,UAAU,EAAE,KAAK,CAAC,UAAU;aAC7B,CAAC,CAAC;QACP,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CACnB;YACE,OAAO,EAAE,KAAK;YACd,KAAK,EACH,KAAK,YAAY,KAAK;gBACpB,CAAC,CAAC,KAAK,CAAC,OAAO;gBACf,CAAC,CAAC,uCAAuC;SAC9C,CAAC,CAAC;IACP,CAAC;AACH,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { z } from 'zod';
2
+ export declare const contextToolName = "llama_context";
3
+ export declare const contextToolDescription = "Get project context snapshot from Llama. Returns:\n- Project info (key, name, description)\n- Organization info\n- Workflow statuses\n- Active sprint with issues\n- Pending sprints\n- Backlog issues (first 50)\n- Team members\n\nSupports compact mode (compact=true) for minimal response with just IDs.\nUses session defaults if orgSlug/projectKey not provided. Use this to understand the current state of a project before creating or updating issues.";
4
+ export declare const contextToolSchema: z.ZodObject<{
5
+ orgSlug: z.ZodOptional<z.ZodString>;
6
+ projectKey: z.ZodOptional<z.ZodString>;
7
+ compact: z.ZodOptional<z.ZodBoolean>;
8
+ }, "strip", z.ZodTypeAny, {
9
+ orgSlug?: string | undefined;
10
+ projectKey?: string | undefined;
11
+ compact?: boolean | undefined;
12
+ }, {
13
+ orgSlug?: string | undefined;
14
+ projectKey?: string | undefined;
15
+ compact?: boolean | undefined;
16
+ }>;
17
+ export type ContextToolInput = z.infer<typeof contextToolSchema>;
18
+ export declare function executeContext(input: ContextToolInput): Promise<string>;
19
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/tools/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,eAAe,kBAAkB,CAAC;AAE/C,eAAO,MAAM,sBAAsB,ucAUiH,CAAC;AAErJ,eAAO,MAAM,iBAAiB;;;;;;;;;;;;EAa5B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEjE,wBAAsB,cAAc,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAyH7E"}
@@ -0,0 +1,136 @@
1
+ import { z } from 'zod';
2
+ import { getApiClient, LlamaApiError } from '../api-client.js';
3
+ import { getSessionDefaults } from './session.js';
4
+ export const contextToolName = 'llama_context';
5
+ export const contextToolDescription = `Get project context snapshot from Llama. Returns:
6
+ - Project info (key, name, description)
7
+ - Organization info
8
+ - Workflow statuses
9
+ - Active sprint with issues
10
+ - Pending sprints
11
+ - Backlog issues (first 50)
12
+ - Team members
13
+
14
+ Supports compact mode (compact=true) for minimal response with just IDs.
15
+ Uses session defaults if orgSlug/projectKey not provided. Use this to understand the current state of a project before creating or updating issues.`;
16
+ export const contextToolSchema = z.object({
17
+ orgSlug: z
18
+ .string()
19
+ .optional()
20
+ .describe('Organization slug (e.g., "my-team"). Uses session default if not provided.'),
21
+ projectKey: z
22
+ .string()
23
+ .optional()
24
+ .describe('Project key (e.g., "PROJ"). Uses session default if not provided.'),
25
+ compact: z
26
+ .boolean()
27
+ .optional()
28
+ .describe('Return compact response with only essential IDs (default: false)'),
29
+ });
30
+ export async function executeContext(input) {
31
+ try {
32
+ const session = await getSessionDefaults();
33
+ const orgSlug = input.orgSlug ?? session?.orgSlug;
34
+ const projectKey = input.projectKey ?? session?.projectKey;
35
+ if (!orgSlug) {
36
+ return JSON.stringify({
37
+ success: false,
38
+ error: 'orgSlug is required. Either provide it or set session context with llama_set_context first.',
39
+ });
40
+ }
41
+ if (!projectKey) {
42
+ return JSON.stringify({
43
+ success: false,
44
+ error: 'projectKey is required. Either provide it or set session context with llama_set_context first.',
45
+ });
46
+ }
47
+ const client = getApiClient();
48
+ // Record tool call
49
+ try {
50
+ await client.recordToolCall('llama_context', { orgSlug, projectKey });
51
+ }
52
+ catch {
53
+ // Ignore recording errors
54
+ }
55
+ const context = await client.getProjectContext(orgSlug, projectKey);
56
+ // Compact mode: return minimal response with just IDs
57
+ if (input.compact) {
58
+ const compactResponse = {
59
+ org: orgSlug,
60
+ project: projectKey,
61
+ statuses: context.workflow.statuses.map((s) => ({
62
+ id: s.id,
63
+ name: s.name,
64
+ })),
65
+ sprintId: context.activeSprint?.id || null,
66
+ sprintIssueCount: context.activeSprint?.issues.length || 0,
67
+ backlogCount: context.backlog.total,
68
+ memberCount: context.members.length,
69
+ };
70
+ return JSON.stringify(compactResponse);
71
+ }
72
+ // Format the response for readability
73
+ const formatted = {
74
+ project: context.project,
75
+ organization: context.organization,
76
+ workflow: {
77
+ statuses: context.workflow.statuses.map((s) => ({
78
+ id: s.id,
79
+ name: s.name,
80
+ category: s.category,
81
+ })),
82
+ },
83
+ activeSprint: context.activeSprint
84
+ ? {
85
+ name: context.activeSprint.name,
86
+ goal: context.activeSprint.goal,
87
+ period: context.activeSprint.startDate && context.activeSprint.endDate
88
+ ? `${context.activeSprint.startDate.split('T')[0]} to ${context.activeSprint.endDate.split('T')[0]}`
89
+ : 'Not scheduled',
90
+ issueCount: context.activeSprint.issues.length,
91
+ issues: context.activeSprint.issues.map((i) => ({
92
+ key: i.key,
93
+ summary: i.summary,
94
+ type: i.type,
95
+ status: i.status,
96
+ priority: i.priority,
97
+ assignee: i.assignee,
98
+ })),
99
+ }
100
+ : null,
101
+ pendingSprints: context.pendingSprints,
102
+ backlog: {
103
+ showing: context.backlog.issues.length,
104
+ total: context.backlog.total,
105
+ issues: context.backlog.issues.map((i) => ({
106
+ key: i.key,
107
+ summary: i.summary,
108
+ type: i.type,
109
+ status: i.status,
110
+ priority: i.priority,
111
+ })),
112
+ },
113
+ members: context.members,
114
+ workflows: {
115
+ hint: "Use llama_suggest_workflow('your task') to find saved procedures for common tasks",
116
+ },
117
+ };
118
+ return JSON.stringify(formatted);
119
+ }
120
+ catch (error) {
121
+ if (error instanceof LlamaApiError) {
122
+ return JSON.stringify({
123
+ success: false,
124
+ error: `Failed to get context: ${error.message}`,
125
+ statusCode: error.statusCode,
126
+ });
127
+ }
128
+ return JSON.stringify({
129
+ success: false,
130
+ error: error instanceof Error
131
+ ? error.message
132
+ : 'Unknown error getting project context',
133
+ });
134
+ }
135
+ }
136
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/tools/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,CAAC,MAAM,eAAe,GAAG,eAAe,CAAC;AAE/C,MAAM,CAAC,MAAM,sBAAsB,GAAG;;;;;;;;;;oJAU8G,CAAC;AAErJ,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,4EAA4E,CAAC;IACzF,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,mEAAmE,CAAC;IAChF,OAAO,EAAE,CAAC;SACP,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,kEAAkE,CAAC;CAChF,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,KAAuB;IAC1D,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,kBAAkB,EAAE,CAAC;QAE3C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,OAAO,EAAE,OAAO,CAAC;QAClD,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,OAAO,EAAE,UAAU,CAAC;QAE3D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,SAAS,CACnB;gBACE,OAAO,EAAE,KAAK;gBACd,KAAK,EACH,6FAA6F;aAChG,CAAC,CAAC;QACP,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,SAAS,CACnB;gBACE,OAAO,EAAE,KAAK;gBACd,KAAK,EACH,gGAAgG;aACnG,CAAC,CAAC;QACP,CAAC;QAED,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;QAE9B,mBAAmB;QACnB,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,cAAc,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;QACxE,CAAC;QAAC,MAAM,CAAC;YACP,0BAA0B;QAC5B,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAEpE,sDAAsD;QACtD,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,eAAe,GAAG;gBACtB,GAAG,EAAE,OAAO;gBACZ,OAAO,EAAE,UAAU;gBACnB,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC9C,EAAE,EAAE,CAAC,CAAC,EAAE;oBACR,IAAI,EAAE,CAAC,CAAC,IAAI;iBACb,CAAC,CAAC;gBACH,QAAQ,EAAE,OAAO,CAAC,YAAY,EAAE,EAAE,IAAI,IAAI;gBAC1C,gBAAgB,EAAE,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC;gBAC1D,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK;gBACnC,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM;aACpC,CAAC;YACF,OAAO,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QACzC,CAAC;QAED,sCAAsC;QACtC,MAAM,SAAS,GAAG;YAChB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,QAAQ,EAAE;gBACR,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC9C,EAAE,EAAE,CAAC,CAAC,EAAE;oBACR,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ;iBACrB,CAAC,CAAC;aACJ;YACD,YAAY,EAAE,OAAO,CAAC,YAAY;gBAChC,CAAC,CAAC;oBACE,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,IAAI;oBAC/B,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,IAAI;oBAC/B,MAAM,EACJ,OAAO,CAAC,YAAY,CAAC,SAAS,IAAI,OAAO,CAAC,YAAY,CAAC,OAAO;wBAC5D,CAAC,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;wBACpG,CAAC,CAAC,eAAe;oBACrB,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM;oBAC9C,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBAC9C,GAAG,EAAE,CAAC,CAAC,GAAG;wBACV,OAAO,EAAE,CAAC,CAAC,OAAO;wBAClB,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,MAAM,EAAE,CAAC,CAAC,MAAM;wBAChB,QAAQ,EAAE,CAAC,CAAC,QAAQ;wBACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ;qBACrB,CAAC,CAAC;iBACJ;gBACH,CAAC,CAAC,IAAI;YACR,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,OAAO,EAAE;gBACP,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM;gBACtC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK;gBAC5B,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACzC,GAAG,EAAE,CAAC,CAAC,GAAG;oBACV,OAAO,EAAE,CAAC,CAAC,OAAO;oBAClB,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,MAAM,EAAE,CAAC,CAAC,MAAM;oBAChB,QAAQ,EAAE,CAAC,CAAC,QAAQ;iBACrB,CAAC,CAAC;aACJ;YACD,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,SAAS,EAAE;gBACT,IAAI,EAAE,mFAAmF;aAC1F;SACF,CAAC;QAEF,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,aAAa,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC,SAAS,CACnB;gBACE,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,0BAA0B,KAAK,CAAC,OAAO,EAAE;gBAChD,UAAU,EAAE,KAAK,CAAC,UAAU;aAC7B,CAAC,CAAC;QACP,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CACnB;YACE,OAAO,EAAE,KAAK;YACd,KAAK,EACH,KAAK,YAAY,KAAK;gBACpB,CAAC,CAAC,KAAK,CAAC,OAAO;gBACf,CAAC,CAAC,uCAAuC;SAC9C,CAAC,CAAC;IACP,CAAC;AACH,CAAC"}
@@ -0,0 +1,99 @@
1
+ import { z } from 'zod';
2
+ export declare const listDocsToolName = "llama_list_docs";
3
+ export declare const listDocsToolDescription = "List documents in an organization or project.\nDocuments can be STATIC (regular docs) or SPRINT_TEMPLATE (auto-generate for sprints).\nFilter by type, status (DRAFT, PUBLISHED, ARCHIVED), or search by title.";
4
+ export declare const listDocsToolSchema: z.ZodObject<{
5
+ orgSlug: z.ZodString;
6
+ projectKey: z.ZodOptional<z.ZodString>;
7
+ type: z.ZodOptional<z.ZodEnum<["STATIC", "SPRINT_TEMPLATE"]>>;
8
+ status: z.ZodOptional<z.ZodEnum<["DRAFT", "PUBLISHED", "ARCHIVED"]>>;
9
+ search: z.ZodOptional<z.ZodString>;
10
+ }, "strip", z.ZodTypeAny, {
11
+ orgSlug: string;
12
+ type?: "STATIC" | "SPRINT_TEMPLATE" | undefined;
13
+ status?: "DRAFT" | "PUBLISHED" | "ARCHIVED" | undefined;
14
+ search?: string | undefined;
15
+ projectKey?: string | undefined;
16
+ }, {
17
+ orgSlug: string;
18
+ type?: "STATIC" | "SPRINT_TEMPLATE" | undefined;
19
+ status?: "DRAFT" | "PUBLISHED" | "ARCHIVED" | undefined;
20
+ search?: string | undefined;
21
+ projectKey?: string | undefined;
22
+ }>;
23
+ export type ListDocsToolInput = z.infer<typeof listDocsToolSchema>;
24
+ export declare function executeListDocs(input: ListDocsToolInput): Promise<string>;
25
+ export declare const getDocToolName = "llama_get_doc";
26
+ export declare const getDocToolDescription = "Get full document content by ID.\nReturns document metadata and HTML content (can be converted to markdown).";
27
+ export declare const getDocToolSchema: z.ZodObject<{
28
+ documentId: z.ZodString;
29
+ }, "strip", z.ZodTypeAny, {
30
+ documentId: string;
31
+ }, {
32
+ documentId: string;
33
+ }>;
34
+ export type GetDocToolInput = z.infer<typeof getDocToolSchema>;
35
+ export declare function executeGetDoc(input: GetDocToolInput): Promise<string>;
36
+ export declare const createDocToolName = "llama_create_doc";
37
+ export declare const createDocToolDescription = "Create a new document in an organization or project.\nDocuments have a unique slug (used in URLs) and can be STATIC or SPRINT_TEMPLATE.\nProvide projectKey to create a project-level doc, omit for org-level.";
38
+ export declare const createDocToolSchema: z.ZodObject<{
39
+ orgSlug: z.ZodString;
40
+ projectKey: z.ZodOptional<z.ZodString>;
41
+ title: z.ZodString;
42
+ slug: z.ZodString;
43
+ type: z.ZodEnum<["STATIC", "SPRINT_TEMPLATE"]>;
44
+ description: z.ZodOptional<z.ZodString>;
45
+ htmlContent: z.ZodOptional<z.ZodString>;
46
+ }, "strip", z.ZodTypeAny, {
47
+ type: "STATIC" | "SPRINT_TEMPLATE";
48
+ orgSlug: string;
49
+ slug: string;
50
+ title: string;
51
+ projectKey?: string | undefined;
52
+ description?: string | undefined;
53
+ htmlContent?: string | undefined;
54
+ }, {
55
+ type: "STATIC" | "SPRINT_TEMPLATE";
56
+ orgSlug: string;
57
+ slug: string;
58
+ title: string;
59
+ projectKey?: string | undefined;
60
+ description?: string | undefined;
61
+ htmlContent?: string | undefined;
62
+ }>;
63
+ export type CreateDocToolInput = z.infer<typeof createDocToolSchema>;
64
+ export declare function executeCreateDoc(input: CreateDocToolInput): Promise<string>;
65
+ export declare const updateDocToolName = "llama_update_doc";
66
+ export declare const updateDocToolDescription = "Update a document's content or metadata.\nOnly include the fields you want to change.\nCan update title, content, type, or status (DRAFT/PUBLISHED/ARCHIVED).";
67
+ export declare const updateDocToolSchema: z.ZodObject<{
68
+ documentId: z.ZodString;
69
+ title: z.ZodOptional<z.ZodString>;
70
+ htmlContent: z.ZodOptional<z.ZodString>;
71
+ type: z.ZodOptional<z.ZodEnum<["STATIC", "SPRINT_TEMPLATE"]>>;
72
+ status: z.ZodOptional<z.ZodEnum<["DRAFT", "PUBLISHED", "ARCHIVED"]>>;
73
+ }, "strip", z.ZodTypeAny, {
74
+ documentId: string;
75
+ type?: "STATIC" | "SPRINT_TEMPLATE" | undefined;
76
+ status?: "DRAFT" | "PUBLISHED" | "ARCHIVED" | undefined;
77
+ title?: string | undefined;
78
+ htmlContent?: string | undefined;
79
+ }, {
80
+ documentId: string;
81
+ type?: "STATIC" | "SPRINT_TEMPLATE" | undefined;
82
+ status?: "DRAFT" | "PUBLISHED" | "ARCHIVED" | undefined;
83
+ title?: string | undefined;
84
+ htmlContent?: string | undefined;
85
+ }>;
86
+ export type UpdateDocToolInput = z.infer<typeof updateDocToolSchema>;
87
+ export declare function executeUpdateDoc(input: UpdateDocToolInput): Promise<string>;
88
+ export declare const deleteDocToolName = "llama_delete_doc";
89
+ export declare const deleteDocToolDescription = "Delete a document permanently.\nUse with caution - this action cannot be undone.";
90
+ export declare const deleteDocToolSchema: z.ZodObject<{
91
+ documentId: z.ZodString;
92
+ }, "strip", z.ZodTypeAny, {
93
+ documentId: string;
94
+ }, {
95
+ documentId: string;
96
+ }>;
97
+ export type DeleteDocToolInput = z.infer<typeof deleteDocToolSchema>;
98
+ export declare function executeDeleteDoc(input: DeleteDocToolInput): Promise<string>;
99
+ //# sourceMappingURL=documents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../src/tools/documents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,eAAO,MAAM,gBAAgB,oBAAoB,CAAC;AAElD,eAAO,MAAM,uBAAuB,oNAEqC,CAAC;AAE1E,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;EAM7B,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEnE,wBAAsB,eAAe,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAkD/E;AAMD,eAAO,MAAM,cAAc,kBAAkB,CAAC;AAE9C,eAAO,MAAM,qBAAqB,iHACyC,CAAC;AAE5E,eAAO,MAAM,gBAAgB;;;;;;EAE3B,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE/D,wBAAsB,aAAa,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAwC3E;AAMD,eAAO,MAAM,iBAAiB,qBAAqB,CAAC;AAEpD,eAAO,MAAM,wBAAwB,mNAEiC,CAAC;AAEvE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;EAW9B,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAErE,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CA4CjF;AAMD,eAAO,MAAM,iBAAiB,qBAAqB,CAAC;AAEpD,eAAO,MAAM,wBAAwB,kKAEkC,CAAC;AAExE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;EAM9B,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAErE,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CA0CjF;AAMD,eAAO,MAAM,iBAAiB,qBAAqB,CAAC;AAEpD,eAAO,MAAM,wBAAwB,qFACY,CAAC;AAElD,eAAO,MAAM,mBAAmB;;;;;;EAE9B,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAErE,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CA0BjF"}