@agllama/mcp 0.5.20 → 0.5.21
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/dist/api-client.d.ts +18 -0
- package/dist/api-client.d.ts.map +1 -1
- package/dist/api-client.js +76 -2
- package/dist/api-client.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +56 -1
- package/dist/server.js.map +1 -1
- package/dist/tools/analytics.d.ts +36 -0
- package/dist/tools/analytics.d.ts.map +1 -0
- package/dist/tools/analytics.js +182 -0
- package/dist/tools/analytics.js.map +1 -0
- package/dist/tools/boards.d.ts +6 -3
- package/dist/tools/boards.d.ts.map +1 -1
- package/dist/tools/boards.js +52 -10
- package/dist/tools/boards.js.map +1 -1
- package/dist/tools/context.d.ts.map +1 -1
- package/dist/tools/context.js +28 -0
- package/dist/tools/context.js.map +1 -1
- package/dist/tools/index.d.ts +3 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +3 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/issues.d.ts +35 -19
- package/dist/tools/issues.d.ts.map +1 -1
- package/dist/tools/issues.js +71 -14
- package/dist/tools/issues.js.map +1 -1
- package/dist/tools/refinement.d.ts +42 -0
- package/dist/tools/refinement.d.ts.map +1 -0
- package/dist/tools/refinement.js +157 -0
- package/dist/tools/refinement.js.map +1 -0
- package/dist/tools/rollup.d.ts +42 -0
- package/dist/tools/rollup.d.ts.map +1 -0
- package/dist/tools/rollup.js +127 -0
- package/dist/tools/rollup.js.map +1 -0
- package/dist/tools/search.d.ts +9 -3
- package/dist/tools/search.d.ts.map +1 -1
- package/dist/tools/search.js +11 -1
- package/dist/tools/search.js.map +1 -1
- package/dist/tools/session.d.ts.map +1 -1
- package/dist/tools/session.js +44 -4
- package/dist/tools/session.js.map +1 -1
- package/dist/tools/sprints.d.ts +1 -1
- package/dist/tools/sprints.d.ts.map +1 -1
- package/dist/tools/sprints.js +13 -5
- package/dist/tools/sprints.js.map +1 -1
- package/dist/types.d.ts +31 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { getApiClient, LlamaApiError } from '../api-client.js';
|
|
3
|
+
import { getSessionDefaults } from './session.js';
|
|
4
|
+
// ============================================
|
|
5
|
+
// Refine Story
|
|
6
|
+
// ============================================
|
|
7
|
+
export const refineStoryToolName = 'llama_refine_story';
|
|
8
|
+
export const refineStoryToolDescription = 'Update the refinement status of a story. Use to mark stories as ready for sprint, needs clarification, or refined.';
|
|
9
|
+
export const refineStoryToolSchema = z.object({
|
|
10
|
+
orgSlug: z
|
|
11
|
+
.string()
|
|
12
|
+
.optional()
|
|
13
|
+
.describe('Organization slug (uses session default if not provided)'),
|
|
14
|
+
projectKey: z
|
|
15
|
+
.string()
|
|
16
|
+
.optional()
|
|
17
|
+
.describe('Project key (uses session default if not provided)'),
|
|
18
|
+
issueKey: z.string().describe('Issue key of the story to refine (e.g., "PROJ-123")'),
|
|
19
|
+
status: z
|
|
20
|
+
.enum(['UNREFINED', 'REFINING', 'NEEDS_CLARIFICATION', 'REFINED', 'NOT_APPLICABLE'])
|
|
21
|
+
.describe('New refinement status'),
|
|
22
|
+
comment: z
|
|
23
|
+
.string()
|
|
24
|
+
.optional()
|
|
25
|
+
.describe('Comment explaining what needs clarification (required for NEEDS_CLARIFICATION status)'),
|
|
26
|
+
});
|
|
27
|
+
export async function executeRefineStory(input) {
|
|
28
|
+
try {
|
|
29
|
+
const session = await getSessionDefaults();
|
|
30
|
+
const orgSlug = input.orgSlug ?? session?.orgSlug;
|
|
31
|
+
const projectKey = input.projectKey ?? session?.projectKey;
|
|
32
|
+
if (!orgSlug) {
|
|
33
|
+
return JSON.stringify({
|
|
34
|
+
success: false,
|
|
35
|
+
error: 'orgSlug is required. Either provide it or set session context with llama_set_context first.',
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
if (!projectKey) {
|
|
39
|
+
return JSON.stringify({
|
|
40
|
+
success: false,
|
|
41
|
+
error: 'projectKey is required. Either provide it or set session context with llama_set_context first.',
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
const client = getApiClient();
|
|
45
|
+
// Record tool call
|
|
46
|
+
try {
|
|
47
|
+
await client.recordToolCall('llama_refine_story', {
|
|
48
|
+
orgSlug,
|
|
49
|
+
projectKey,
|
|
50
|
+
issueKey: input.issueKey,
|
|
51
|
+
status: input.status,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
// Ignore recording errors
|
|
56
|
+
}
|
|
57
|
+
const result = await client.patch(`/organizations/${orgSlug}/projects/${projectKey}/issues/${input.issueKey}/refinement-status`, {
|
|
58
|
+
status: input.status,
|
|
59
|
+
comment: input.comment,
|
|
60
|
+
});
|
|
61
|
+
return JSON.stringify({
|
|
62
|
+
success: true,
|
|
63
|
+
message: `Updated refinement status for ${input.issueKey} to ${input.status}`,
|
|
64
|
+
refinementStatus: result.refinementStatus,
|
|
65
|
+
clarificationNote: result.clarificationNote,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
catch (error) {
|
|
69
|
+
if (error instanceof LlamaApiError) {
|
|
70
|
+
return JSON.stringify({
|
|
71
|
+
success: false,
|
|
72
|
+
error: `Failed to update refinement status: ${error.message}`,
|
|
73
|
+
statusCode: error.statusCode,
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
return JSON.stringify({
|
|
77
|
+
success: false,
|
|
78
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
// ============================================
|
|
83
|
+
// Get Refinement Data
|
|
84
|
+
// ============================================
|
|
85
|
+
export const getRefinementToolName = 'llama_get_refinement';
|
|
86
|
+
export const getRefinementToolDescription = 'Get refinement data for a sprint, including story readiness status and clarifications needed.';
|
|
87
|
+
export const getRefinementToolSchema = z.object({
|
|
88
|
+
orgSlug: z
|
|
89
|
+
.string()
|
|
90
|
+
.optional()
|
|
91
|
+
.describe('Organization slug (uses session default if not provided)'),
|
|
92
|
+
projectKey: z
|
|
93
|
+
.string()
|
|
94
|
+
.optional()
|
|
95
|
+
.describe('Project key (uses session default if not provided)'),
|
|
96
|
+
sprintId: z.string().describe('Sprint ID to get refinement data for'),
|
|
97
|
+
});
|
|
98
|
+
export async function executeGetRefinement(input) {
|
|
99
|
+
try {
|
|
100
|
+
const session = await getSessionDefaults();
|
|
101
|
+
const orgSlug = input.orgSlug ?? session?.orgSlug;
|
|
102
|
+
const projectKey = input.projectKey ?? session?.projectKey;
|
|
103
|
+
if (!orgSlug) {
|
|
104
|
+
return JSON.stringify({
|
|
105
|
+
success: false,
|
|
106
|
+
error: 'orgSlug is required. Either provide it or set session context with llama_set_context first.',
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
if (!projectKey) {
|
|
110
|
+
return JSON.stringify({
|
|
111
|
+
success: false,
|
|
112
|
+
error: 'projectKey is required. Either provide it or set session context with llama_set_context first.',
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
const client = getApiClient();
|
|
116
|
+
// Record tool call
|
|
117
|
+
try {
|
|
118
|
+
await client.recordToolCall('llama_get_refinement', {
|
|
119
|
+
orgSlug,
|
|
120
|
+
projectKey,
|
|
121
|
+
sprintId: input.sprintId,
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
catch {
|
|
125
|
+
// Ignore recording errors
|
|
126
|
+
}
|
|
127
|
+
const data = await client.get(`/organizations/${orgSlug}/projects/${projectKey}/sprints/${input.sprintId}/refinement`);
|
|
128
|
+
// Format a summary
|
|
129
|
+
const summary = [
|
|
130
|
+
`Sprint: ${data.sprintName}`,
|
|
131
|
+
`Total Stories: ${data.totalStories}`,
|
|
132
|
+
`Refined: ${data.refinedCount}`,
|
|
133
|
+
`Ready: ${data.readyCount}`,
|
|
134
|
+
`Needs Clarification: ${data.needsClarificationCount}`,
|
|
135
|
+
`Draft: ${data.draftCount}`,
|
|
136
|
+
].join('\n');
|
|
137
|
+
return JSON.stringify({
|
|
138
|
+
success: true,
|
|
139
|
+
summary,
|
|
140
|
+
...data,
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
catch (error) {
|
|
144
|
+
if (error instanceof LlamaApiError) {
|
|
145
|
+
return JSON.stringify({
|
|
146
|
+
success: false,
|
|
147
|
+
error: `Failed to get refinement data: ${error.message}`,
|
|
148
|
+
statusCode: error.statusCode,
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
return JSON.stringify({
|
|
152
|
+
success: false,
|
|
153
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
//# sourceMappingURL=refinement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refinement.js","sourceRoot":"","sources":["../../src/tools/refinement.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const configureRollupToolName = "llama_configure_rollup";
|
|
3
|
+
export declare const configureRollupToolDescription = "Get or update rollup rules that auto-progress business stories when technical tasks change status.";
|
|
4
|
+
export declare const configureRollupToolSchema: z.ZodObject<{
|
|
5
|
+
orgSlug: z.ZodOptional<z.ZodString>;
|
|
6
|
+
projectKey: z.ZodOptional<z.ZodString>;
|
|
7
|
+
action: z.ZodEnum<["get", "update"]>;
|
|
8
|
+
rules: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
9
|
+
trigger: z.ZodEnum<["FIRST_TASK_STARTED", "ALL_TASKS_DONE", "NO_TASKS_STARTED", "NOT_ALL_TASKS_DONE", "ANY_TASK_BLOCKED"]>;
|
|
10
|
+
targetStatusId: z.ZodNullable<z.ZodString>;
|
|
11
|
+
mode: z.ZodEnum<["AUTOMATIC", "SUGGEST", "DISABLED"]>;
|
|
12
|
+
}, "strip", z.ZodTypeAny, {
|
|
13
|
+
mode: "AUTOMATIC" | "SUGGEST" | "DISABLED";
|
|
14
|
+
trigger: "FIRST_TASK_STARTED" | "ALL_TASKS_DONE" | "NO_TASKS_STARTED" | "NOT_ALL_TASKS_DONE" | "ANY_TASK_BLOCKED";
|
|
15
|
+
targetStatusId: string | null;
|
|
16
|
+
}, {
|
|
17
|
+
mode: "AUTOMATIC" | "SUGGEST" | "DISABLED";
|
|
18
|
+
trigger: "FIRST_TASK_STARTED" | "ALL_TASKS_DONE" | "NO_TASKS_STARTED" | "NOT_ALL_TASKS_DONE" | "ANY_TASK_BLOCKED";
|
|
19
|
+
targetStatusId: string | null;
|
|
20
|
+
}>, "many">>;
|
|
21
|
+
}, "strip", z.ZodTypeAny, {
|
|
22
|
+
action: "update" | "get";
|
|
23
|
+
orgSlug?: string | undefined;
|
|
24
|
+
projectKey?: string | undefined;
|
|
25
|
+
rules?: {
|
|
26
|
+
mode: "AUTOMATIC" | "SUGGEST" | "DISABLED";
|
|
27
|
+
trigger: "FIRST_TASK_STARTED" | "ALL_TASKS_DONE" | "NO_TASKS_STARTED" | "NOT_ALL_TASKS_DONE" | "ANY_TASK_BLOCKED";
|
|
28
|
+
targetStatusId: string | null;
|
|
29
|
+
}[] | undefined;
|
|
30
|
+
}, {
|
|
31
|
+
action: "update" | "get";
|
|
32
|
+
orgSlug?: string | undefined;
|
|
33
|
+
projectKey?: string | undefined;
|
|
34
|
+
rules?: {
|
|
35
|
+
mode: "AUTOMATIC" | "SUGGEST" | "DISABLED";
|
|
36
|
+
trigger: "FIRST_TASK_STARTED" | "ALL_TASKS_DONE" | "NO_TASKS_STARTED" | "NOT_ALL_TASKS_DONE" | "ANY_TASK_BLOCKED";
|
|
37
|
+
targetStatusId: string | null;
|
|
38
|
+
}[] | undefined;
|
|
39
|
+
}>;
|
|
40
|
+
export type ConfigureRollupToolInput = z.infer<typeof configureRollupToolSchema>;
|
|
41
|
+
export declare function executeConfigureRollup(input: ConfigureRollupToolInput): Promise<string>;
|
|
42
|
+
//# sourceMappingURL=rollup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rollup.d.ts","sourceRoot":"","sources":["../../src/tools/rollup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,eAAO,MAAM,uBAAuB,2BAA2B,CAAC;AAEhE,eAAO,MAAM,8BAA8B,uGAC2D,CAAC;AAEvG,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmCpC,CAAC;AAEH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAEjF,wBAAsB,sBAAsB,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC,CAgH7F"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { getApiClient, LlamaApiError } from '../api-client.js';
|
|
3
|
+
import { getSessionDefaults } from './session.js';
|
|
4
|
+
// ============================================
|
|
5
|
+
// Configure Rollup Rules
|
|
6
|
+
// ============================================
|
|
7
|
+
export const configureRollupToolName = 'llama_configure_rollup';
|
|
8
|
+
export const configureRollupToolDescription = 'Get or update rollup rules that auto-progress business stories when technical tasks change status.';
|
|
9
|
+
export const configureRollupToolSchema = z.object({
|
|
10
|
+
orgSlug: z
|
|
11
|
+
.string()
|
|
12
|
+
.optional()
|
|
13
|
+
.describe('Organization slug (uses session default if not provided)'),
|
|
14
|
+
projectKey: z
|
|
15
|
+
.string()
|
|
16
|
+
.optional()
|
|
17
|
+
.describe('Project key (uses session default if not provided)'),
|
|
18
|
+
action: z
|
|
19
|
+
.enum(['get', 'update'])
|
|
20
|
+
.describe('Action: "get" to view current rules, "update" to modify rules'),
|
|
21
|
+
rules: z
|
|
22
|
+
.array(z.object({
|
|
23
|
+
trigger: z
|
|
24
|
+
.enum([
|
|
25
|
+
'FIRST_TASK_STARTED',
|
|
26
|
+
'ALL_TASKS_DONE',
|
|
27
|
+
'NO_TASKS_STARTED',
|
|
28
|
+
'NOT_ALL_TASKS_DONE',
|
|
29
|
+
'ANY_TASK_BLOCKED',
|
|
30
|
+
])
|
|
31
|
+
.describe('Trigger condition'),
|
|
32
|
+
targetStatusId: z
|
|
33
|
+
.string()
|
|
34
|
+
.nullable()
|
|
35
|
+
.describe('Status ID to transition the story to (null to disable)'),
|
|
36
|
+
mode: z
|
|
37
|
+
.enum(['AUTOMATIC', 'SUGGEST', 'DISABLED'])
|
|
38
|
+
.describe('Rule mode'),
|
|
39
|
+
}))
|
|
40
|
+
.optional()
|
|
41
|
+
.describe('Rules to update (required for action="update")'),
|
|
42
|
+
});
|
|
43
|
+
export async function executeConfigureRollup(input) {
|
|
44
|
+
try {
|
|
45
|
+
const session = await getSessionDefaults();
|
|
46
|
+
const orgSlug = input.orgSlug ?? session?.orgSlug;
|
|
47
|
+
const projectKey = input.projectKey ?? session?.projectKey;
|
|
48
|
+
if (!orgSlug) {
|
|
49
|
+
return JSON.stringify({
|
|
50
|
+
success: false,
|
|
51
|
+
error: 'orgSlug is required. Either provide it or set session context with llama_set_context first.',
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
if (!projectKey) {
|
|
55
|
+
return JSON.stringify({
|
|
56
|
+
success: false,
|
|
57
|
+
error: 'projectKey is required. Either provide it or set session context with llama_set_context first.',
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
const client = getApiClient();
|
|
61
|
+
// Record tool call
|
|
62
|
+
try {
|
|
63
|
+
await client.recordToolCall('llama_configure_rollup', {
|
|
64
|
+
orgSlug,
|
|
65
|
+
projectKey,
|
|
66
|
+
action: input.action,
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
// Ignore recording errors
|
|
71
|
+
}
|
|
72
|
+
if (input.action === 'get') {
|
|
73
|
+
const data = await client.get(`/organizations/${orgSlug}/projects/${projectKey}/rollup-rules`);
|
|
74
|
+
// Format summary
|
|
75
|
+
const ruleSummaries = data.rules.map((rule) => {
|
|
76
|
+
const status = rule.targetStatusId
|
|
77
|
+
? `→ ${rule.targetStatusName || rule.targetStatusId}`
|
|
78
|
+
: '(disabled)';
|
|
79
|
+
return ` ${rule.trigger}: ${status} [${rule.mode}]`;
|
|
80
|
+
});
|
|
81
|
+
const summary = ['Rollup Rules:', '', ...ruleSummaries].join('\n');
|
|
82
|
+
return JSON.stringify({
|
|
83
|
+
success: true,
|
|
84
|
+
summary,
|
|
85
|
+
rules: data.rules,
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
// action === 'update'
|
|
90
|
+
if (!input.rules || input.rules.length === 0) {
|
|
91
|
+
return JSON.stringify({
|
|
92
|
+
success: false,
|
|
93
|
+
error: 'rules are required for action="update"',
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
const data = await client.put(`/organizations/${orgSlug}/projects/${projectKey}/rollup-rules`, { rules: input.rules });
|
|
97
|
+
// Format summary
|
|
98
|
+
const ruleSummaries = data.rules.map((rule) => {
|
|
99
|
+
const status = rule.targetStatusId
|
|
100
|
+
? `→ ${rule.targetStatusName || rule.targetStatusId}`
|
|
101
|
+
: '(disabled)';
|
|
102
|
+
return ` ${rule.trigger}: ${status} [${rule.mode}]`;
|
|
103
|
+
});
|
|
104
|
+
const summary = ['Updated Rollup Rules:', '', ...ruleSummaries].join('\n');
|
|
105
|
+
return JSON.stringify({
|
|
106
|
+
success: true,
|
|
107
|
+
message: 'Rollup rules updated successfully',
|
|
108
|
+
summary,
|
|
109
|
+
rules: data.rules,
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
if (error instanceof LlamaApiError) {
|
|
115
|
+
return JSON.stringify({
|
|
116
|
+
success: false,
|
|
117
|
+
error: `Failed to configure rollup rules: ${error.message}`,
|
|
118
|
+
statusCode: error.statusCode,
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
return JSON.stringify({
|
|
122
|
+
success: false,
|
|
123
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=rollup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rollup.js","sourceRoot":"","sources":["../../src/tools/rollup.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/search.d.ts
CHANGED
|
@@ -4,29 +4,35 @@ export declare const searchToolDescription = "Search issues by text and filters.
|
|
|
4
4
|
export declare const searchToolSchema: z.ZodObject<{
|
|
5
5
|
orgSlug: z.ZodOptional<z.ZodString>;
|
|
6
6
|
query: z.ZodString;
|
|
7
|
-
type: z.ZodOptional<z.ZodEnum<["EPIC", "STORY", "TASK", "BUG", "SUBTASK"]>>;
|
|
7
|
+
type: z.ZodOptional<z.ZodEnum<["EPIC", "STORY", "TASK", "BUG", "SUBTASK", "TECHNICAL_TASK"]>>;
|
|
8
8
|
priority: z.ZodOptional<z.ZodEnum<["CRITICAL", "HIGH", "MEDIUM", "LOW", "TRIVIAL"]>>;
|
|
9
9
|
status: z.ZodOptional<z.ZodString>;
|
|
10
10
|
assigneeId: z.ZodOptional<z.ZodString>;
|
|
11
11
|
sprintId: z.ZodOptional<z.ZodString>;
|
|
12
12
|
labels: z.ZodOptional<z.ZodEffects<z.ZodArray<z.ZodString, "many">, string[], unknown>>;
|
|
13
|
+
parentKey: z.ZodOptional<z.ZodString>;
|
|
14
|
+
refinementStatus: z.ZodOptional<z.ZodEnum<["DRAFT", "READY", "NEEDS_CLARIFICATION", "REFINED"]>>;
|
|
13
15
|
}, "strip", z.ZodTypeAny, {
|
|
14
16
|
query: string;
|
|
15
|
-
type?: "EPIC" | "STORY" | "TASK" | "BUG" | "SUBTASK" | undefined;
|
|
17
|
+
type?: "EPIC" | "STORY" | "TASK" | "BUG" | "SUBTASK" | "TECHNICAL_TASK" | undefined;
|
|
16
18
|
priority?: "CRITICAL" | "HIGH" | "MEDIUM" | "LOW" | "TRIVIAL" | undefined;
|
|
17
19
|
status?: string | undefined;
|
|
18
20
|
assigneeId?: string | undefined;
|
|
19
21
|
sprintId?: string | undefined;
|
|
20
22
|
labels?: string[] | undefined;
|
|
23
|
+
parentKey?: string | undefined;
|
|
24
|
+
refinementStatus?: "DRAFT" | "READY" | "NEEDS_CLARIFICATION" | "REFINED" | undefined;
|
|
21
25
|
orgSlug?: string | undefined;
|
|
22
26
|
}, {
|
|
23
27
|
query: string;
|
|
24
|
-
type?: "EPIC" | "STORY" | "TASK" | "BUG" | "SUBTASK" | undefined;
|
|
28
|
+
type?: "EPIC" | "STORY" | "TASK" | "BUG" | "SUBTASK" | "TECHNICAL_TASK" | undefined;
|
|
25
29
|
priority?: "CRITICAL" | "HIGH" | "MEDIUM" | "LOW" | "TRIVIAL" | undefined;
|
|
26
30
|
status?: string | undefined;
|
|
27
31
|
assigneeId?: string | undefined;
|
|
28
32
|
sprintId?: string | undefined;
|
|
29
33
|
labels?: unknown;
|
|
34
|
+
parentKey?: string | undefined;
|
|
35
|
+
refinementStatus?: "DRAFT" | "READY" | "NEEDS_CLARIFICATION" | "REFINED" | undefined;
|
|
30
36
|
orgSlug?: string | undefined;
|
|
31
37
|
}>;
|
|
32
38
|
export type SearchToolInput = z.infer<typeof searchToolSchema>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/tools/search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,cAAc,iBAAiB,CAAC;AAE7C,eAAO,MAAM,qBAAqB,uCAAuC,CAAC;AAE1E,eAAO,MAAM,gBAAgB
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/tools/search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,cAAc,iBAAiB,CAAC;AAE7C,eAAO,MAAM,qBAAqB,uCAAuC,CAAC;AAE1E,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsC3B,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,CAuE3E"}
|
package/dist/tools/search.js
CHANGED
|
@@ -10,7 +10,7 @@ export const searchToolSchema = z.object({
|
|
|
10
10
|
.describe('Organization slug (uses session default if not provided)'),
|
|
11
11
|
query: z.string().describe('Search query text'),
|
|
12
12
|
type: z
|
|
13
|
-
.enum(['EPIC', 'STORY', 'TASK', 'BUG', 'SUBTASK'])
|
|
13
|
+
.enum(['EPIC', 'STORY', 'TASK', 'BUG', 'SUBTASK', 'TECHNICAL_TASK'])
|
|
14
14
|
.optional()
|
|
15
15
|
.describe('Filter by issue type'),
|
|
16
16
|
priority: z
|
|
@@ -34,6 +34,14 @@ export const searchToolSchema = z.object({
|
|
|
34
34
|
}, z.array(z.string()))
|
|
35
35
|
.optional()
|
|
36
36
|
.describe('Filter by labels'),
|
|
37
|
+
parentKey: z
|
|
38
|
+
.string()
|
|
39
|
+
.optional()
|
|
40
|
+
.describe('Filter by parent issue key (e.g., get all technical tasks under a story)'),
|
|
41
|
+
refinementStatus: z
|
|
42
|
+
.enum(['DRAFT', 'READY', 'NEEDS_CLARIFICATION', 'REFINED'])
|
|
43
|
+
.optional()
|
|
44
|
+
.describe('Filter by refinement status'),
|
|
37
45
|
});
|
|
38
46
|
export async function executeSearch(input) {
|
|
39
47
|
try {
|
|
@@ -63,6 +71,8 @@ export async function executeSearch(input) {
|
|
|
63
71
|
assigneeId: input.assigneeId,
|
|
64
72
|
sprintId: input.sprintId,
|
|
65
73
|
labels: input.labels,
|
|
74
|
+
parentKey: input.parentKey,
|
|
75
|
+
refinementStatus: input.refinementStatus,
|
|
66
76
|
});
|
|
67
77
|
return JSON.stringify({
|
|
68
78
|
success: true,
|
package/dist/tools/search.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/tools/search.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,cAAc,GAAG,cAAc,CAAC;AAE7C,MAAM,CAAC,MAAM,qBAAqB,GAAG,oCAAoC,CAAC;AAE1E,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,0DAA0D,CAAC;IACvE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAC/C,IAAI,EAAE,CAAC;SACJ,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/tools/search.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/tools/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB;;;GAGG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,IAAI,CAAC,CAcR;AAMD,eAAO,MAAM,kBAAkB,sBAAsB,CAAC;AAEtD,eAAO,MAAM,yBAAyB,6DACsB,CAAC;AAE7D,eAAO,MAAM,oBAAoB;;;;;;;;;;;;EAiB/B,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEvE,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/tools/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB;;;GAGG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,IAAI,CAAC,CAcR;AAMD,eAAO,MAAM,kBAAkB,sBAAsB,CAAC;AAEtD,eAAO,MAAM,yBAAyB,6DACsB,CAAC;AAE7D,eAAO,MAAM,oBAAoB;;;;;;;;;;;;EAiB/B,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEvE,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,CA2DnF;AAMD,eAAO,MAAM,cAAc,iBAAiB,CAAC;AAE7C,eAAO,MAAM,qBAAqB,0DACuB,CAAC;AAE1D,eAAO,MAAM,gBAAgB,gDAAe,CAAC;AAE7C,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE/D,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAqErD;AAMD,eAAO,MAAM,oBAAoB,wBAAwB,CAAC;AAE1D,eAAO,MAAM,2BAA2B,8CACK,CAAC;AAE9C,eAAO,MAAM,sBAAsB,gDAAe,CAAC;AAEnD,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAE3E,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC,CA6B3D"}
|
package/dist/tools/session.js
CHANGED
|
@@ -50,7 +50,23 @@ export async function executeSetContext(input) {
|
|
|
50
50
|
try {
|
|
51
51
|
const client = getApiClient();
|
|
52
52
|
const session = await client.setSession(input);
|
|
53
|
-
|
|
53
|
+
// Enrich with project settings when a project is in context
|
|
54
|
+
let projectSettings = null;
|
|
55
|
+
if (session.orgSlug && session.projectKey) {
|
|
56
|
+
try {
|
|
57
|
+
const settings = await client.get(`/organizations/${session.orgSlug}/projects/${session.projectKey}/settings`);
|
|
58
|
+
if (settings.technicalSprintsEnabled) {
|
|
59
|
+
projectSettings = {
|
|
60
|
+
technicalSprintsEnabled: true,
|
|
61
|
+
hint: 'This project uses dual boards. BUG issues accept a "board" field (BUSINESS or TECHNICAL). Issue types: EPIC, STORY, BUG, TECHNICAL_TASK (no TASK/SUBTASK).',
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
// Settings not available — ignore
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
const response = {
|
|
54
70
|
success: true,
|
|
55
71
|
message: 'Session context set successfully',
|
|
56
72
|
session: {
|
|
@@ -60,7 +76,11 @@ export async function executeSetContext(input) {
|
|
|
60
76
|
expiresAt: session.expiresAt,
|
|
61
77
|
updatedAt: session.updatedAt,
|
|
62
78
|
},
|
|
63
|
-
}
|
|
79
|
+
};
|
|
80
|
+
if (projectSettings) {
|
|
81
|
+
response.projectSettings = projectSettings;
|
|
82
|
+
}
|
|
83
|
+
return JSON.stringify(response);
|
|
64
84
|
}
|
|
65
85
|
catch (error) {
|
|
66
86
|
if (error instanceof LlamaApiError) {
|
|
@@ -95,7 +115,23 @@ export async function executeResume() {
|
|
|
95
115
|
session: null,
|
|
96
116
|
});
|
|
97
117
|
}
|
|
98
|
-
|
|
118
|
+
// Enrich with project settings when a project is in context
|
|
119
|
+
let projectSettings = null;
|
|
120
|
+
if (session.orgSlug && session.projectKey) {
|
|
121
|
+
try {
|
|
122
|
+
const settings = await client.get(`/organizations/${session.orgSlug}/projects/${session.projectKey}/settings`);
|
|
123
|
+
if (settings.technicalSprintsEnabled) {
|
|
124
|
+
projectSettings = {
|
|
125
|
+
technicalSprintsEnabled: true,
|
|
126
|
+
hint: 'This project uses dual boards. BUG issues accept a "board" field (BUSINESS or TECHNICAL). Issue types: EPIC, STORY, BUG, TECHNICAL_TASK (no TASK/SUBTASK).',
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
catch {
|
|
131
|
+
// Settings not available — ignore
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
const response = {
|
|
99
135
|
success: true,
|
|
100
136
|
message: 'Session resumed successfully',
|
|
101
137
|
session: {
|
|
@@ -106,7 +142,11 @@ export async function executeResume() {
|
|
|
106
142
|
expiresAt: session.expiresAt,
|
|
107
143
|
updatedAt: session.updatedAt,
|
|
108
144
|
},
|
|
109
|
-
}
|
|
145
|
+
};
|
|
146
|
+
if (projectSettings) {
|
|
147
|
+
response.projectSettings = projectSettings;
|
|
148
|
+
}
|
|
149
|
+
return JSON.stringify(response);
|
|
110
150
|
}
|
|
111
151
|
catch (error) {
|
|
112
152
|
if (error instanceof LlamaApiError) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/tools/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAE/D,+CAA+C;AAC/C,sCAAsC;AACtC,+CAA+C;AAE/C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB;IAKtC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;QAC1C,OAAO,OAAO;YACZ,CAAC,CAAC;gBACE,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,SAAS;gBAC3C,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,SAAS;aACxC;YACH,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,+CAA+C;AAC/C,gCAAgC;AAChC,+CAA+C;AAE/C,MAAM,CAAC,MAAM,kBAAkB,GAAG,mBAAmB,CAAC;AAEtD,MAAM,CAAC,MAAM,yBAAyB,GACpC,0DAA0D,CAAC;AAE7D,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,EAAE,CAAC;SACP,QAAQ,CAAC,uCAAuC,CAAC;IACpD,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,EAAE,CAAC;SACP,QAAQ,EAAE;SACV,QAAQ,CAAC,iEAAiE,CAAC;IAC9E,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,IAAI,EAAE;SACN,QAAQ,EAAE;SACV,QAAQ,CAAC,kCAAkC,CAAC;CAChD,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,KAA0B;IAChE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAE/C,OAAO,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/tools/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAE/D,+CAA+C;AAC/C,sCAAsC;AACtC,+CAA+C;AAE/C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB;IAKtC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;QAC1C,OAAO,OAAO;YACZ,CAAC,CAAC;gBACE,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,SAAS;gBAC3C,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,SAAS;aACxC;YACH,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,+CAA+C;AAC/C,gCAAgC;AAChC,+CAA+C;AAE/C,MAAM,CAAC,MAAM,kBAAkB,GAAG,mBAAmB,CAAC;AAEtD,MAAM,CAAC,MAAM,yBAAyB,GACpC,0DAA0D,CAAC;AAE7D,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,EAAE,CAAC;SACP,QAAQ,CAAC,uCAAuC,CAAC;IACpD,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,EAAE,CAAC;SACP,QAAQ,EAAE;SACV,QAAQ,CAAC,iEAAiE,CAAC;IAC9E,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,IAAI,EAAE;SACN,QAAQ,EAAE;SACV,QAAQ,CAAC,kCAAkC,CAAC;CAChD,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,KAA0B;IAChE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAE/C,4DAA4D;QAC5D,IAAI,eAAe,GAAmC,IAAI,CAAC;QAC3D,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YAC1C,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAC/B,kBAAkB,OAAO,CAAC,OAAO,aAAa,OAAO,CAAC,UAAU,WAAW,CAC5E,CAAC;gBACF,IAAI,QAAQ,CAAC,uBAAuB,EAAE,CAAC;oBACrC,eAAe,GAAG;wBAChB,uBAAuB,EAAE,IAAI;wBAC7B,IAAI,EAAE,4JAA4J;qBACnK,CAAC;gBACJ,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,kCAAkC;YACpC,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAA4B;YACxC,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,kCAAkC;YAC3C,OAAO,EAAE;gBACP,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;aAC7B;SACF,CAAC;QAEF,IAAI,eAAe,EAAE,CAAC;YACpB,QAAQ,CAAC,eAAe,GAAG,eAAe,CAAC;QAC7C,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAClC,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,+BAA+B;SACtC,CAAC,CAAC;IACP,CAAC;AACH,CAAC;AAED,+CAA+C;AAC/C,2BAA2B;AAC3B,+CAA+C;AAE/C,MAAM,CAAC,MAAM,cAAc,GAAG,cAAc,CAAC;AAE7C,MAAM,CAAC,MAAM,qBAAqB,GAChC,uDAAuD,CAAC;AAE1D,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAI7C,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;QAE1C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,SAAS,CACnB;gBACE,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,8EAA8E;gBACvF,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;QACP,CAAC;QAED,4DAA4D;QAC5D,IAAI,eAAe,GAAmC,IAAI,CAAC;QAC3D,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YAC1C,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAC/B,kBAAkB,OAAO,CAAC,OAAO,aAAa,OAAO,CAAC,UAAU,WAAW,CAC5E,CAAC;gBACF,IAAI,QAAQ,CAAC,uBAAuB,EAAE,CAAC;oBACrC,eAAe,GAAG;wBAChB,uBAAuB,EAAE,IAAI;wBAC7B,IAAI,EAAE,4JAA4J;qBACnK,CAAC;gBACJ,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,kCAAkC;YACpC,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAA4B;YACxC,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,8BAA8B;YACvC,OAAO,EAAE;gBACP,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;aAC7B;SACF,CAAC;QAEF,IAAI,eAAe,EAAE,CAAC;YACpB,QAAQ,CAAC,eAAe,GAAG,eAAe,CAAC;QAC7C,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAClC,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,EACH,KAAK,YAAY,KAAK;gBACpB,CAAC,CAAC,KAAK,CAAC,OAAO;gBACf,CAAC,CAAC,gCAAgC;SACvC,CAAC,CAAC;IACP,CAAC;AACH,CAAC;AAED,+CAA+C;AAC/C,kCAAkC;AAClC,+CAA+C;AAE/C,MAAM,CAAC,MAAM,oBAAoB,GAAG,qBAAqB,CAAC;AAE1D,MAAM,CAAC,MAAM,2BAA2B,GACtC,2CAA2C,CAAC;AAE9C,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAInD,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;QAC9B,MAAM,MAAM,CAAC,YAAY,EAAE,CAAC;QAE5B,OAAO,IAAI,CAAC,SAAS,CACnB;YACE,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,8BAA8B;SACxC,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,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,EACH,KAAK,YAAY,KAAK;gBACpB,CAAC,CAAC,KAAK,CAAC,OAAO;gBACf,CAAC,CAAC,gCAAgC;SACvC,CAAC,CAAC;IACP,CAAC;AACH,CAAC"}
|
package/dist/tools/sprints.d.ts
CHANGED
|
@@ -88,7 +88,7 @@ export declare const startSprintToolSchema: z.ZodObject<{
|
|
|
88
88
|
export type StartSprintToolInput = z.infer<typeof startSprintToolSchema>;
|
|
89
89
|
export declare function executeStartSprint(input: StartSprintToolInput): Promise<string>;
|
|
90
90
|
export declare const completeSprintToolName = "llama_complete_sprint";
|
|
91
|
-
export declare const completeSprintToolDescription = "Complete a sprint.
|
|
91
|
+
export declare const completeSprintToolDescription = "Complete a sprint. By default, incomplete issues are moved to the next planned sprint (auto-created if none exists). Use moveIncompleteToBacklog to send them to backlog instead.";
|
|
92
92
|
export declare const completeSprintToolSchema: z.ZodObject<{
|
|
93
93
|
sprintId: z.ZodString;
|
|
94
94
|
moveIncompleteToBacklog: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sprints.d.ts","sourceRoot":"","sources":["../../src/tools/sprints.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,eAAO,MAAM,mBAAmB,uBAAuB,CAAC;AAExD,eAAO,MAAM,0BAA0B,gCAAgC,CAAC;AAExE,eAAO,MAAM,qBAAqB;;;;;;;;;EAShC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEzE,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,oBAAoB,GAC1B,OAAO,CAAC,MAAM,CAAC,CAuEjB;AAMD,eAAO,MAAM,oBAAoB,wBAAwB,CAAC;AAE1D,eAAO,MAAM,2BAA2B,+CAA+C,CAAC;AAExF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;EAgBjC,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,CAoEjB;AAMD,eAAO,MAAM,mBAAmB,wBAAwB,CAAC;AAEzD,eAAO,MAAM,0BAA0B,kDAAkD,CAAC;AAE1F,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;EAkBhC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEzE,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,oBAAoB,GAC1B,OAAO,CAAC,MAAM,CAAC,CAuEjB;AAMD,eAAO,MAAM,iBAAiB,qBAAqB,CAAC;AAEpD,eAAO,MAAM,wBAAwB,yCAAyC,CAAC;AAE/E,eAAO,MAAM,mBAAmB;;;;;;EAE9B,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAErE,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,MAAM,CAAC,CA8CjB;AAMD,eAAO,MAAM,mBAAmB,uBAAuB,CAAC;AAExD,eAAO,MAAM,0BAA0B,2DAA2D,CAAC;AAEnG,eAAO,MAAM,qBAAqB;;;;;;;;;;;;EAUhC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEzE,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,oBAAoB,GAC1B,OAAO,CAAC,MAAM,CAAC,CAoCjB;AAMD,eAAO,MAAM,sBAAsB,0BAA0B,CAAC;AAE9D,eAAO,MAAM,6BAA6B,
|
|
1
|
+
{"version":3,"file":"sprints.d.ts","sourceRoot":"","sources":["../../src/tools/sprints.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/sprints.js
CHANGED
|
@@ -324,24 +324,32 @@ export async function executeStartSprint(input) {
|
|
|
324
324
|
// Complete Sprint
|
|
325
325
|
// ============================================
|
|
326
326
|
export const completeSprintToolName = 'llama_complete_sprint';
|
|
327
|
-
export const completeSprintToolDescription = `Complete a sprint.
|
|
327
|
+
export const completeSprintToolDescription = `Complete a sprint. By default, incomplete issues are moved to the next planned sprint (auto-created if none exists). Use moveIncompleteToBacklog to send them to backlog instead.`;
|
|
328
328
|
export const completeSprintToolSchema = z.object({
|
|
329
329
|
sprintId: z.string().describe('Sprint ID to complete'),
|
|
330
330
|
moveIncompleteToBacklog: z
|
|
331
331
|
.boolean()
|
|
332
332
|
.optional()
|
|
333
|
-
.describe('Move incomplete issues to backlog (default:
|
|
333
|
+
.describe('Move incomplete issues to backlog instead of next planned sprint (default: false)'),
|
|
334
334
|
moveIncompleteToSprintId: z
|
|
335
335
|
.string()
|
|
336
336
|
.optional()
|
|
337
|
-
.describe('Move incomplete issues to
|
|
337
|
+
.describe('Move incomplete issues to a specific sprint ID'),
|
|
338
338
|
});
|
|
339
339
|
export async function executeCompleteSprint(input) {
|
|
340
340
|
try {
|
|
341
341
|
const client = getApiClient();
|
|
342
|
+
// Translate MCP params to API format
|
|
343
|
+
let moveIncompleteTo;
|
|
344
|
+
if (input.moveIncompleteToSprintId) {
|
|
345
|
+
moveIncompleteTo = input.moveIncompleteToSprintId;
|
|
346
|
+
}
|
|
347
|
+
else if (input.moveIncompleteToBacklog) {
|
|
348
|
+
moveIncompleteTo = 'backlog';
|
|
349
|
+
}
|
|
350
|
+
// When moveIncompleteTo is undefined, server auto-resolves to next PLANNED sprint
|
|
342
351
|
const sprint = await client.completeSprint(input.sprintId, {
|
|
343
|
-
|
|
344
|
-
moveIncompleteToSprintId: input.moveIncompleteToSprintId,
|
|
352
|
+
moveIncompleteTo,
|
|
345
353
|
});
|
|
346
354
|
return JSON.stringify({
|
|
347
355
|
success: true,
|