@agllama/mcp 0.1.0 → 0.1.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.
- package/README.md +161 -162
- package/dist/api-client.d.ts +45 -2
- package/dist/api-client.d.ts.map +1 -1
- package/dist/api-client.js +108 -2
- package/dist/api-client.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +140 -1
- package/dist/server.js.map +1 -1
- package/dist/tools/backlog.d.ts +13 -7
- package/dist/tools/backlog.d.ts.map +1 -1
- package/dist/tools/backlog.js +59 -9
- package/dist/tools/backlog.js.map +1 -1
- package/dist/tools/boardConfig.d.ts +65 -0
- package/dist/tools/boardConfig.d.ts.map +1 -0
- package/dist/tools/boardConfig.js +150 -0
- package/dist/tools/boardConfig.js.map +1 -0
- package/dist/tools/boardTemplates.d.ts +47 -0
- package/dist/tools/boardTemplates.d.ts.map +1 -0
- package/dist/tools/boardTemplates.js +119 -0
- package/dist/tools/boardTemplates.js.map +1 -0
- package/dist/tools/boards.d.ts +20 -20
- package/dist/tools/boards.d.ts.map +1 -1
- package/dist/tools/boards.js +121 -19
- package/dist/tools/boards.js.map +1 -1
- package/dist/tools/comments.d.ts +24 -24
- package/dist/tools/comments.d.ts.map +1 -1
- package/dist/tools/comments.js +136 -23
- package/dist/tools/comments.js.map +1 -1
- package/dist/tools/connect.d.ts.map +1 -1
- package/dist/tools/connect.js +7 -18
- package/dist/tools/connect.js.map +1 -1
- package/dist/tools/context.d.ts +10 -7
- package/dist/tools/context.d.ts.map +1 -1
- package/dist/tools/context.js +57 -7
- package/dist/tools/context.js.map +1 -1
- package/dist/tools/documents.d.ts +99 -0
- package/dist/tools/documents.d.ts.map +1 -0
- package/dist/tools/documents.js +252 -0
- package/dist/tools/documents.js.map +1 -0
- package/dist/tools/help.d.ts.map +1 -1
- package/dist/tools/help.js +70 -6
- package/dist/tools/help.js.map +1 -1
- package/dist/tools/index.d.ts +4 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +4 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/issueLinks.d.ts +12 -12
- package/dist/tools/issueLinks.d.ts.map +1 -1
- package/dist/tools/issueLinks.js +69 -12
- package/dist/tools/issueLinks.js.map +1 -1
- package/dist/tools/issues.d.ts +208 -28
- package/dist/tools/issues.d.ts.map +1 -1
- package/dist/tools/issues.js +483 -35
- package/dist/tools/issues.js.map +1 -1
- package/dist/tools/labels.d.ts +18 -18
- package/dist/tools/labels.d.ts.map +1 -1
- package/dist/tools/labels.js +102 -17
- package/dist/tools/labels.js.map +1 -1
- package/dist/tools/members.d.ts.map +1 -1
- package/dist/tools/members.js +2 -2
- package/dist/tools/members.js.map +1 -1
- package/dist/tools/organizations.d.ts.map +1 -1
- package/dist/tools/organizations.js +8 -8
- package/dist/tools/organizations.js.map +1 -1
- package/dist/tools/projects.d.ts.map +1 -1
- package/dist/tools/projects.js +11 -11
- package/dist/tools/projects.js.map +1 -1
- package/dist/tools/search.d.ts +4 -4
- package/dist/tools/search.d.ts.map +1 -1
- package/dist/tools/search.js +28 -5
- package/dist/tools/search.js.map +1 -1
- package/dist/tools/session.d.ts +38 -0
- package/dist/tools/session.d.ts.map +1 -0
- package/dist/tools/session.js +158 -0
- package/dist/tools/session.js.map +1 -0
- package/dist/tools/sprints.d.ts +18 -18
- package/dist/tools/sprints.d.ts.map +1 -1
- package/dist/tools/sprints.js +115 -30
- package/dist/tools/sprints.js.map +1 -1
- package/dist/tools/status.d.ts +6 -6
- package/dist/tools/status.d.ts.map +1 -1
- package/dist/tools/status.js +45 -8
- package/dist/tools/status.js.map +1 -1
- package/dist/tools/workflows.d.ts.map +1 -1
- package/dist/tools/workflows.js +19 -19
- package/dist/tools/workflows.js.map +1 -1
- package/dist/types.d.ts +123 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/column-instructions.d.ts +21 -0
- package/dist/utils/column-instructions.d.ts.map +1 -0
- package/dist/utils/column-instructions.js +54 -0
- package/dist/utils/column-instructions.js.map +1 -0
- package/package.json +5 -5
package/dist/tools/context.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { getApiClient, LlamaApiError } from '../api-client.js';
|
|
3
|
+
import { getSessionDefaults } from './session.js';
|
|
3
4
|
export const contextToolName = 'llama_context';
|
|
4
5
|
export const contextToolDescription = `Get project context snapshot from Llama. Returns:
|
|
5
6
|
- Project info (key, name, description)
|
|
@@ -10,15 +11,61 @@ export const contextToolDescription = `Get project context snapshot from Llama.
|
|
|
10
11
|
- Backlog issues (first 50)
|
|
11
12
|
- Team members
|
|
12
13
|
|
|
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.`;
|
|
14
16
|
export const contextToolSchema = z.object({
|
|
15
|
-
orgSlug: z
|
|
16
|
-
|
|
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)'),
|
|
17
29
|
});
|
|
18
30
|
export async function executeContext(input) {
|
|
19
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
|
+
}
|
|
20
47
|
const client = getApiClient();
|
|
21
|
-
|
|
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
|
+
statusIds: context.workflow.statuses.map((s) => s.id),
|
|
62
|
+
sprintId: context.activeSprint?.id || null,
|
|
63
|
+
sprintIssueCount: context.activeSprint?.issues.length || 0,
|
|
64
|
+
backlogCount: context.backlog.total,
|
|
65
|
+
memberCount: context.members.length,
|
|
66
|
+
};
|
|
67
|
+
return JSON.stringify(compactResponse);
|
|
68
|
+
}
|
|
22
69
|
// Format the response for readability
|
|
23
70
|
const formatted = {
|
|
24
71
|
project: context.project,
|
|
@@ -57,8 +104,11 @@ export async function executeContext(input) {
|
|
|
57
104
|
})),
|
|
58
105
|
},
|
|
59
106
|
members: context.members,
|
|
107
|
+
workflows: {
|
|
108
|
+
hint: "Use llama_suggest_workflow('your task') to find saved procedures for common tasks",
|
|
109
|
+
},
|
|
60
110
|
};
|
|
61
|
-
return JSON.stringify(formatted
|
|
111
|
+
return JSON.stringify(formatted);
|
|
62
112
|
}
|
|
63
113
|
catch (error) {
|
|
64
114
|
if (error instanceof LlamaApiError) {
|
|
@@ -66,14 +116,14 @@ export async function executeContext(input) {
|
|
|
66
116
|
success: false,
|
|
67
117
|
error: `Failed to get context: ${error.message}`,
|
|
68
118
|
statusCode: error.statusCode,
|
|
69
|
-
}
|
|
119
|
+
});
|
|
70
120
|
}
|
|
71
121
|
return JSON.stringify({
|
|
72
122
|
success: false,
|
|
73
123
|
error: error instanceof Error
|
|
74
124
|
? error.message
|
|
75
125
|
: 'Unknown error getting project context',
|
|
76
|
-
}
|
|
126
|
+
});
|
|
77
127
|
}
|
|
78
128
|
}
|
|
79
129
|
//# sourceMappingURL=context.js.map
|
|
@@ -1 +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;
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/tools/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -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"}
|
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { getApiClient, LlamaApiError } from '../api-client.js';
|
|
3
|
+
// ============================================
|
|
4
|
+
// List Documents
|
|
5
|
+
// ============================================
|
|
6
|
+
export const listDocsToolName = 'llama_list_docs';
|
|
7
|
+
export const listDocsToolDescription = `List documents in an organization or project.
|
|
8
|
+
Documents can be STATIC (regular docs) or SPRINT_TEMPLATE (auto-generate for sprints).
|
|
9
|
+
Filter by type, status (DRAFT, PUBLISHED, ARCHIVED), or search by title.`;
|
|
10
|
+
export const listDocsToolSchema = z.object({
|
|
11
|
+
orgSlug: z.string().describe('Organization slug'),
|
|
12
|
+
projectKey: z.string().optional().describe('Project key (optional - omit for org-level docs)'),
|
|
13
|
+
type: z.enum(['STATIC', 'SPRINT_TEMPLATE']).optional().describe('Filter by document type'),
|
|
14
|
+
status: z.enum(['DRAFT', 'PUBLISHED', 'ARCHIVED']).optional().describe('Filter by status'),
|
|
15
|
+
search: z.string().optional().describe('Search documents by title'),
|
|
16
|
+
});
|
|
17
|
+
export async function executeListDocs(input) {
|
|
18
|
+
try {
|
|
19
|
+
const client = getApiClient();
|
|
20
|
+
const filters = {
|
|
21
|
+
type: input.type,
|
|
22
|
+
status: input.status,
|
|
23
|
+
search: input.search,
|
|
24
|
+
};
|
|
25
|
+
const documents = input.projectKey
|
|
26
|
+
? await client.listProjectDocuments(input.orgSlug, input.projectKey, filters)
|
|
27
|
+
: await client.listOrgDocuments(input.orgSlug, filters);
|
|
28
|
+
return JSON.stringify({
|
|
29
|
+
success: true,
|
|
30
|
+
scope: input.projectKey ? 'project' : 'organization',
|
|
31
|
+
count: documents.length,
|
|
32
|
+
documents: documents.map((d) => ({
|
|
33
|
+
id: d.id,
|
|
34
|
+
title: d.title,
|
|
35
|
+
slug: d.slug,
|
|
36
|
+
description: d.description,
|
|
37
|
+
type: d.type,
|
|
38
|
+
status: d.status,
|
|
39
|
+
scope: d.scope,
|
|
40
|
+
createdBy: d.createdBy.name,
|
|
41
|
+
createdAt: d.createdAt,
|
|
42
|
+
updatedAt: d.updatedAt,
|
|
43
|
+
})),
|
|
44
|
+
}, null, 2);
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
if (error instanceof LlamaApiError) {
|
|
48
|
+
return JSON.stringify({
|
|
49
|
+
success: false,
|
|
50
|
+
error: `Failed to list documents: ${error.message}`,
|
|
51
|
+
statusCode: error.statusCode,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
return JSON.stringify({
|
|
55
|
+
success: false,
|
|
56
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
// ============================================
|
|
61
|
+
// Get Document
|
|
62
|
+
// ============================================
|
|
63
|
+
export const getDocToolName = 'llama_get_doc';
|
|
64
|
+
export const getDocToolDescription = `Get full document content by ID.
|
|
65
|
+
Returns document metadata and HTML content (can be converted to markdown).`;
|
|
66
|
+
export const getDocToolSchema = z.object({
|
|
67
|
+
documentId: z.string().describe('Document ID'),
|
|
68
|
+
});
|
|
69
|
+
export async function executeGetDoc(input) {
|
|
70
|
+
try {
|
|
71
|
+
const client = getApiClient();
|
|
72
|
+
const document = await client.getDocument(input.documentId);
|
|
73
|
+
return JSON.stringify({
|
|
74
|
+
success: true,
|
|
75
|
+
document: {
|
|
76
|
+
id: document.id,
|
|
77
|
+
title: document.title,
|
|
78
|
+
slug: document.slug,
|
|
79
|
+
description: document.description,
|
|
80
|
+
type: document.type,
|
|
81
|
+
status: document.status,
|
|
82
|
+
scope: document.scope,
|
|
83
|
+
htmlContent: document.htmlContent,
|
|
84
|
+
projectId: document.projectId,
|
|
85
|
+
orgId: document.orgId,
|
|
86
|
+
createdBy: document.createdBy,
|
|
87
|
+
createdAt: document.createdAt,
|
|
88
|
+
updatedAt: document.updatedAt,
|
|
89
|
+
},
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
catch (error) {
|
|
93
|
+
if (error instanceof LlamaApiError) {
|
|
94
|
+
return JSON.stringify({
|
|
95
|
+
success: false,
|
|
96
|
+
error: `Failed to get document: ${error.message}`,
|
|
97
|
+
statusCode: error.statusCode,
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
return JSON.stringify({
|
|
101
|
+
success: false,
|
|
102
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
// ============================================
|
|
107
|
+
// Create Document
|
|
108
|
+
// ============================================
|
|
109
|
+
export const createDocToolName = 'llama_create_doc';
|
|
110
|
+
export const createDocToolDescription = `Create a new document in an organization or project.
|
|
111
|
+
Documents have a unique slug (used in URLs) and can be STATIC or SPRINT_TEMPLATE.
|
|
112
|
+
Provide projectKey to create a project-level doc, omit for org-level.`;
|
|
113
|
+
export const createDocToolSchema = z.object({
|
|
114
|
+
orgSlug: z.string().describe('Organization slug'),
|
|
115
|
+
projectKey: z.string().optional().describe('Project key (optional - omit for org-level docs)'),
|
|
116
|
+
title: z.string().describe('Document title'),
|
|
117
|
+
slug: z
|
|
118
|
+
.string()
|
|
119
|
+
.regex(/^[a-z0-9-]+$/, 'Slug must contain only lowercase letters, numbers, and hyphens')
|
|
120
|
+
.describe('URL-friendly slug (e.g., "sprint-retrospective")'),
|
|
121
|
+
type: z.enum(['STATIC', 'SPRINT_TEMPLATE']).describe('Document type'),
|
|
122
|
+
description: z.string().optional().describe('Document description'),
|
|
123
|
+
htmlContent: z.string().optional().describe('Initial HTML content'),
|
|
124
|
+
});
|
|
125
|
+
export async function executeCreateDoc(input) {
|
|
126
|
+
try {
|
|
127
|
+
const client = getApiClient();
|
|
128
|
+
const docInput = {
|
|
129
|
+
title: input.title,
|
|
130
|
+
slug: input.slug,
|
|
131
|
+
type: input.type,
|
|
132
|
+
description: input.description,
|
|
133
|
+
htmlContent: input.htmlContent,
|
|
134
|
+
};
|
|
135
|
+
const document = input.projectKey
|
|
136
|
+
? await client.createProjectDocument(input.orgSlug, input.projectKey, docInput)
|
|
137
|
+
: await client.createOrgDocument(input.orgSlug, docInput);
|
|
138
|
+
return JSON.stringify({
|
|
139
|
+
success: true,
|
|
140
|
+
message: `Created ${document.type.toLowerCase()} document "${document.title}"`,
|
|
141
|
+
document: {
|
|
142
|
+
id: document.id,
|
|
143
|
+
title: document.title,
|
|
144
|
+
slug: document.slug,
|
|
145
|
+
type: document.type,
|
|
146
|
+
status: document.status,
|
|
147
|
+
scope: document.scope,
|
|
148
|
+
},
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
catch (error) {
|
|
152
|
+
if (error instanceof LlamaApiError) {
|
|
153
|
+
return JSON.stringify({
|
|
154
|
+
success: false,
|
|
155
|
+
error: `Failed to create document: ${error.message}`,
|
|
156
|
+
statusCode: error.statusCode,
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
return JSON.stringify({
|
|
160
|
+
success: false,
|
|
161
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
// ============================================
|
|
166
|
+
// Update Document
|
|
167
|
+
// ============================================
|
|
168
|
+
export const updateDocToolName = 'llama_update_doc';
|
|
169
|
+
export const updateDocToolDescription = `Update a document's content or metadata.
|
|
170
|
+
Only include the fields you want to change.
|
|
171
|
+
Can update title, content, type, or status (DRAFT/PUBLISHED/ARCHIVED).`;
|
|
172
|
+
export const updateDocToolSchema = z.object({
|
|
173
|
+
documentId: z.string().describe('Document ID to update'),
|
|
174
|
+
title: z.string().optional().describe('New title'),
|
|
175
|
+
htmlContent: z.string().optional().describe('New HTML content'),
|
|
176
|
+
type: z.enum(['STATIC', 'SPRINT_TEMPLATE']).optional().describe('New document type'),
|
|
177
|
+
status: z.enum(['DRAFT', 'PUBLISHED', 'ARCHIVED']).optional().describe('New status'),
|
|
178
|
+
});
|
|
179
|
+
export async function executeUpdateDoc(input) {
|
|
180
|
+
try {
|
|
181
|
+
const { documentId, ...updates } = input;
|
|
182
|
+
const client = getApiClient();
|
|
183
|
+
// Build update object with only provided fields
|
|
184
|
+
const updateFields = {};
|
|
185
|
+
if (updates.title !== undefined)
|
|
186
|
+
updateFields.title = updates.title;
|
|
187
|
+
if (updates.htmlContent !== undefined)
|
|
188
|
+
updateFields.htmlContent = updates.htmlContent;
|
|
189
|
+
if (updates.type !== undefined)
|
|
190
|
+
updateFields.type = updates.type;
|
|
191
|
+
if (updates.status !== undefined)
|
|
192
|
+
updateFields.status = updates.status;
|
|
193
|
+
const document = await client.updateDocument(documentId, updateFields);
|
|
194
|
+
return JSON.stringify({
|
|
195
|
+
success: true,
|
|
196
|
+
message: `Updated document "${document.title}"`,
|
|
197
|
+
document: {
|
|
198
|
+
id: document.id,
|
|
199
|
+
title: document.title,
|
|
200
|
+
type: document.type,
|
|
201
|
+
status: document.status,
|
|
202
|
+
updatedAt: document.updatedAt,
|
|
203
|
+
},
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
catch (error) {
|
|
207
|
+
if (error instanceof LlamaApiError) {
|
|
208
|
+
return JSON.stringify({
|
|
209
|
+
success: false,
|
|
210
|
+
error: `Failed to update document: ${error.message}`,
|
|
211
|
+
statusCode: error.statusCode,
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
return JSON.stringify({
|
|
215
|
+
success: false,
|
|
216
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
// ============================================
|
|
221
|
+
// Delete Document
|
|
222
|
+
// ============================================
|
|
223
|
+
export const deleteDocToolName = 'llama_delete_doc';
|
|
224
|
+
export const deleteDocToolDescription = `Delete a document permanently.
|
|
225
|
+
Use with caution - this action cannot be undone.`;
|
|
226
|
+
export const deleteDocToolSchema = z.object({
|
|
227
|
+
documentId: z.string().describe('Document ID to delete'),
|
|
228
|
+
});
|
|
229
|
+
export async function executeDeleteDoc(input) {
|
|
230
|
+
try {
|
|
231
|
+
const client = getApiClient();
|
|
232
|
+
await client.deleteDocument(input.documentId);
|
|
233
|
+
return JSON.stringify({
|
|
234
|
+
success: true,
|
|
235
|
+
message: `Deleted document ${input.documentId}`,
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
catch (error) {
|
|
239
|
+
if (error instanceof LlamaApiError) {
|
|
240
|
+
return JSON.stringify({
|
|
241
|
+
success: false,
|
|
242
|
+
error: `Failed to delete document: ${error.message}`,
|
|
243
|
+
statusCode: error.statusCode,
|
|
244
|
+
});
|
|
245
|
+
}
|
|
246
|
+
return JSON.stringify({
|
|
247
|
+
success: false,
|
|
248
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
//# sourceMappingURL=documents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"documents.js","sourceRoot":"","sources":["../../src/tools/documents.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/help.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/tools/help.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,YAAY,eAAe,CAAC;AAEzC,eAAO,MAAM,mBAAmB,iIACgG,CAAC;AAEjI,eAAO,MAAM,cAAc;;;;;;EAOzB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/tools/help.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,YAAY,eAAe,CAAC;AAEzC,eAAO,MAAM,mBAAmB,iIACgG,CAAC;AAEjI,eAAO,MAAM,cAAc;;;;;;EAOzB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AA+d3D,wBAAsB,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CA8EvE"}
|
package/dist/tools/help.js
CHANGED
|
@@ -11,14 +11,14 @@ export const helpToolSchema = z.object({
|
|
|
11
11
|
const TOOL_DOCS = {
|
|
12
12
|
overview: {
|
|
13
13
|
title: 'Llama MCP Tools Overview',
|
|
14
|
-
description: `Llama MCP provides
|
|
14
|
+
description: `Llama MCP provides 46 tools for project management. Use llama_help with a topic for details.
|
|
15
15
|
|
|
16
16
|
**Quick Start:**
|
|
17
17
|
1. llama_connect - Test your API connection
|
|
18
18
|
2. llama_context - Get project snapshot (statuses, sprints, team, backlog)
|
|
19
19
|
3. Use other tools with IDs from context
|
|
20
20
|
|
|
21
|
-
**Categories:** context, organizations, projects, issues, sprints, boards, backlog, comments, labels, members, links, search, workflows
|
|
21
|
+
**Categories:** context, organizations, projects, issues, sprints, boards, backlog, comments, labels, members, links, search, documents, workflows
|
|
22
22
|
|
|
23
23
|
**Examples:**
|
|
24
24
|
- llama_help { topic: "issues" } - Learn about issue tools
|
|
@@ -191,6 +191,24 @@ Optional: summary, description, type, priority, statusId, assigneeId, sprintId,
|
|
|
191
191
|
description: 'Move an issue to a different column (changes status)',
|
|
192
192
|
params: 'orgSlug (required), projectKey (required), boardId (required), issueId (required), columnId (required), afterIssueId (optional), beforeIssueId (optional)',
|
|
193
193
|
},
|
|
194
|
+
{
|
|
195
|
+
name: 'llama_get_board_config',
|
|
196
|
+
description: 'Get full board configuration including all column AI settings',
|
|
197
|
+
params: 'orgSlug (required), projectKey (required)',
|
|
198
|
+
use: 'View AI agent configurations for all board columns',
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
name: 'llama_update_column_config',
|
|
202
|
+
description: 'Update a column\'s AI configuration (agent type, instructions, etc.)',
|
|
203
|
+
params: 'boardId (required), columnId (required), aiEnabled (optional), agentType (optional), instructions (optional), requiredActions (optional), contextHints (optional), color (optional), icon (optional)',
|
|
204
|
+
use: 'Configure AI behavior for specific board columns',
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
name: 'llama_get_column_instructions',
|
|
208
|
+
description: 'Get AI instructions for a specific column',
|
|
209
|
+
params: 'boardId (required), columnId (required)',
|
|
210
|
+
use: 'View what an AI agent should do for issues in a column',
|
|
211
|
+
},
|
|
194
212
|
],
|
|
195
213
|
},
|
|
196
214
|
backlog: {
|
|
@@ -292,6 +310,52 @@ Optional: summary, description, type, priority, statusId, assigneeId, sprintId,
|
|
|
292
310
|
},
|
|
293
311
|
],
|
|
294
312
|
},
|
|
313
|
+
documents: {
|
|
314
|
+
title: 'Document Tools',
|
|
315
|
+
description: 'Manage documents at org or project level. Types: STATIC (regular) or SPRINT_TEMPLATE (auto-generate).',
|
|
316
|
+
tools: [
|
|
317
|
+
{
|
|
318
|
+
name: 'llama_list_docs',
|
|
319
|
+
description: 'List documents in an organization or project',
|
|
320
|
+
params: 'orgSlug (required), projectKey (optional: omit for org-level), type (optional: STATIC/SPRINT_TEMPLATE), status (optional: DRAFT/PUBLISHED/ARCHIVED), search (optional)',
|
|
321
|
+
example: `{
|
|
322
|
+
"orgSlug": "my-team",
|
|
323
|
+
"projectKey": "PROJ",
|
|
324
|
+
"status": "PUBLISHED"
|
|
325
|
+
}`,
|
|
326
|
+
},
|
|
327
|
+
{
|
|
328
|
+
name: 'llama_get_doc',
|
|
329
|
+
description: 'Get full document content including HTML',
|
|
330
|
+
params: 'documentId (required)',
|
|
331
|
+
use: 'Reading document content or metadata',
|
|
332
|
+
},
|
|
333
|
+
{
|
|
334
|
+
name: 'llama_create_doc',
|
|
335
|
+
description: 'Create a new document',
|
|
336
|
+
params: 'orgSlug (required), projectKey (optional), title (required), slug (required: lowercase, hyphens), type (required: STATIC/SPRINT_TEMPLATE), description (optional), htmlContent (optional)',
|
|
337
|
+
example: `{
|
|
338
|
+
"orgSlug": "my-team",
|
|
339
|
+
"projectKey": "PROJ",
|
|
340
|
+
"title": "Sprint Retrospective",
|
|
341
|
+
"slug": "sprint-retro",
|
|
342
|
+
"type": "SPRINT_TEMPLATE"
|
|
343
|
+
}`,
|
|
344
|
+
},
|
|
345
|
+
{
|
|
346
|
+
name: 'llama_update_doc',
|
|
347
|
+
description: 'Update document content or metadata',
|
|
348
|
+
params: 'documentId (required), title (optional), htmlContent (optional), type (optional), status (optional: DRAFT/PUBLISHED/ARCHIVED)',
|
|
349
|
+
use: 'Editing content, publishing, or archiving',
|
|
350
|
+
},
|
|
351
|
+
{
|
|
352
|
+
name: 'llama_delete_doc',
|
|
353
|
+
description: 'Permanently delete a document',
|
|
354
|
+
params: 'documentId (required)',
|
|
355
|
+
use: 'Removing a document (cannot be undone)',
|
|
356
|
+
},
|
|
357
|
+
],
|
|
358
|
+
},
|
|
295
359
|
workflows: {
|
|
296
360
|
title: 'Claude Workflow Tools',
|
|
297
361
|
description: 'Reusable procedures that Claude can execute with parameters.',
|
|
@@ -380,7 +444,7 @@ export async function executeHelp(input) {
|
|
|
380
444
|
categories: categories,
|
|
381
445
|
tip: 'Use llama_help { topic: "category" } for details on a category, or llama_help { topic: "tool_name" } for a specific tool.',
|
|
382
446
|
},
|
|
383
|
-
}
|
|
447
|
+
});
|
|
384
448
|
}
|
|
385
449
|
// Check if topic is a tool name
|
|
386
450
|
const normalizedTopic = topic.toLowerCase().replace(/^llama_/, '');
|
|
@@ -391,7 +455,7 @@ export async function executeHelp(input) {
|
|
|
391
455
|
help: {
|
|
392
456
|
tool: TOOL_DETAILS[toolName],
|
|
393
457
|
},
|
|
394
|
-
}
|
|
458
|
+
});
|
|
395
459
|
}
|
|
396
460
|
// Check if topic is a category
|
|
397
461
|
const categoryKey = normalizedTopic;
|
|
@@ -400,7 +464,7 @@ export async function executeHelp(input) {
|
|
|
400
464
|
return JSON.stringify({
|
|
401
465
|
success: true,
|
|
402
466
|
help: categoryData,
|
|
403
|
-
}
|
|
467
|
+
});
|
|
404
468
|
}
|
|
405
469
|
// Topic not found - return suggestions
|
|
406
470
|
const allTools = Object.keys(TOOL_DETAILS);
|
|
@@ -416,6 +480,6 @@ export async function executeHelp(input) {
|
|
|
416
480
|
matchingCategories: matchingCategories.length > 0 ? matchingCategories : undefined,
|
|
417
481
|
availableCategories: allCategories,
|
|
418
482
|
},
|
|
419
|
-
}
|
|
483
|
+
});
|
|
420
484
|
}
|
|
421
485
|
//# sourceMappingURL=help.js.map
|