@specforge/mcp 1.5.3 → 2.0.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.
- package/dist/lib/format.d.ts +145 -0
- package/dist/lib/format.d.ts.map +1 -0
- package/dist/lib/format.js +227 -0
- package/dist/lib/format.js.map +1 -0
- package/dist/lib/index.d.ts +7 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +7 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/response.d.ts +119 -0
- package/dist/lib/response.d.ts.map +1 -0
- package/dist/lib/response.js +123 -0
- package/dist/lib/response.js.map +1 -0
- package/dist/patterns/index.d.ts +9 -0
- package/dist/patterns/index.d.ts.map +1 -0
- package/dist/patterns/index.js +15 -0
- package/dist/patterns/index.js.map +1 -0
- package/dist/patterns/inheritance.d.ts +193 -0
- package/dist/patterns/inheritance.d.ts.map +1 -0
- package/dist/patterns/inheritance.js +265 -0
- package/dist/patterns/inheritance.js.map +1 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +21 -4
- package/dist/server.js.map +1 -1
- package/dist/tools/index.d.ts +0 -8
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +1384 -695
- package/dist/tools/index.js.map +1 -1
- package/dist/types/index.d.ts +567 -19
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +244 -1
- package/dist/types/index.js.map +1 -1
- package/dist/validation/index.d.ts +1 -1
- package/dist/validation/index.d.ts.map +1 -1
- package/dist/validation/index.js +163 -0
- package/dist/validation/index.js.map +1 -1
- package/dist/validation/ticket-validation.d.ts +162 -0
- package/dist/validation/ticket-validation.d.ts.map +1 -0
- package/dist/validation/ticket-validation.js +311 -0
- package/dist/validation/ticket-validation.js.map +1 -0
- package/package.json +6 -5
package/dist/types/index.d.ts
CHANGED
|
@@ -24,6 +24,86 @@ export interface Project {
|
|
|
24
24
|
* Specification status values
|
|
25
25
|
*/
|
|
26
26
|
export type SpecificationStatus = 'draft' | 'planning' | 'ready' | 'in_progress' | 'completed';
|
|
27
|
+
/**
|
|
28
|
+
* Naming conventions for the specification
|
|
29
|
+
*
|
|
30
|
+
* Defines consistent naming patterns used across the codebase.
|
|
31
|
+
*/
|
|
32
|
+
export interface NamingConventions {
|
|
33
|
+
/** File naming pattern (e.g., "camelCase.ts") */
|
|
34
|
+
files?: string;
|
|
35
|
+
/** Function naming pattern (e.g., "_hookFunction") */
|
|
36
|
+
functions?: string;
|
|
37
|
+
/** Interface naming pattern (e.g., "FunctionNameProps") */
|
|
38
|
+
interfaces?: string;
|
|
39
|
+
/** Action naming pattern (e.g., "SCREAMING_SNAKE_CASE") */
|
|
40
|
+
actions?: string;
|
|
41
|
+
/** Component naming pattern (e.g., "PascalCase") */
|
|
42
|
+
components?: string;
|
|
43
|
+
/** Variable naming pattern (e.g., "camelCase") */
|
|
44
|
+
variables?: string;
|
|
45
|
+
/** Class naming pattern (e.g., "PascalCase") */
|
|
46
|
+
classes?: string;
|
|
47
|
+
/** Constant naming pattern (e.g., "UPPER_SNAKE_CASE") */
|
|
48
|
+
constants?: string;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Code standards defined at specification level
|
|
52
|
+
*
|
|
53
|
+
* Forms the top level of the pattern inheritance chain.
|
|
54
|
+
* These standards are inherited by all epics and tickets within the specification.
|
|
55
|
+
*/
|
|
56
|
+
export interface SpecificationCodeStandards {
|
|
57
|
+
/** Primary language (e.g., "TypeScript") */
|
|
58
|
+
language?: string;
|
|
59
|
+
/** Async pattern (e.g., "async/await") */
|
|
60
|
+
asyncPattern?: string;
|
|
61
|
+
/** Error handling approach (e.g., "Result<T> pattern") */
|
|
62
|
+
errorHandling?: string;
|
|
63
|
+
/** Documentation style (e.g., "JSDoc with @example") */
|
|
64
|
+
documentation?: string;
|
|
65
|
+
/** Testing approach (e.g., "AAA pattern") */
|
|
66
|
+
testing?: string;
|
|
67
|
+
/** Naming conventions */
|
|
68
|
+
naming?: NamingConventions;
|
|
69
|
+
/** State management pattern */
|
|
70
|
+
stateManagement?: string;
|
|
71
|
+
/** API pattern (e.g., "REST", "GraphQL") */
|
|
72
|
+
apiPattern?: string;
|
|
73
|
+
/** Logging approach */
|
|
74
|
+
logging?: string;
|
|
75
|
+
/** Validation approach */
|
|
76
|
+
validation?: string;
|
|
77
|
+
/** Additional custom standards */
|
|
78
|
+
custom?: Record<string, string>;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Return type patterns for CRUD operations
|
|
82
|
+
*
|
|
83
|
+
* Defines consistent return types for database/API operations.
|
|
84
|
+
*/
|
|
85
|
+
export interface ReturnTypes {
|
|
86
|
+
/** Create operation return type (e.g., "BusinessCreateResult<T>") */
|
|
87
|
+
create?: string;
|
|
88
|
+
/** Update operation return type (e.g., "BusinessUpdateResult<T>") */
|
|
89
|
+
update?: string;
|
|
90
|
+
/** Delete operation return type (e.g., "BusinessDeleteResult") */
|
|
91
|
+
delete?: string;
|
|
92
|
+
/** List operation return type (e.g., "BusinessListResult<T>") */
|
|
93
|
+
list?: string;
|
|
94
|
+
/** Get single item return type */
|
|
95
|
+
get?: string;
|
|
96
|
+
/** Additional custom return types */
|
|
97
|
+
custom?: Record<string, string>;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Type guard for SpecificationCodeStandards
|
|
101
|
+
*/
|
|
102
|
+
export declare function isValidCodeStandards(value: unknown): value is SpecificationCodeStandards;
|
|
103
|
+
/**
|
|
104
|
+
* Type guard for ReturnTypes
|
|
105
|
+
*/
|
|
106
|
+
export declare function isValidReturnTypes(value: unknown): value is ReturnTypes;
|
|
27
107
|
/**
|
|
28
108
|
* Specification entity
|
|
29
109
|
*/
|
|
@@ -49,9 +129,73 @@ export interface Specification {
|
|
|
49
129
|
priority?: 'high' | 'medium' | 'low';
|
|
50
130
|
tags?: string[];
|
|
51
131
|
estimatedHours?: number;
|
|
132
|
+
/** Code standards for the specification (inherited by epics/tickets) */
|
|
133
|
+
codeStandards?: SpecificationCodeStandards;
|
|
134
|
+
/** Common imports used across the specification */
|
|
135
|
+
commonImports?: string[];
|
|
136
|
+
/** Return type patterns for CRUD operations */
|
|
137
|
+
returnTypes?: ReturnTypes;
|
|
52
138
|
createdAt: string;
|
|
53
139
|
updatedAt: string;
|
|
54
140
|
}
|
|
141
|
+
/**
|
|
142
|
+
* Shared patterns defined at epic level
|
|
143
|
+
*
|
|
144
|
+
* These patterns can override specification-level patterns for all tickets
|
|
145
|
+
* within the epic. Useful for epics that need different conventions.
|
|
146
|
+
*/
|
|
147
|
+
export interface EpicSharedPatterns {
|
|
148
|
+
/** Override error handling for this epic */
|
|
149
|
+
errorHandling?: string;
|
|
150
|
+
/** Epic-specific return type override */
|
|
151
|
+
returnType?: string;
|
|
152
|
+
/** Action prefix for Redux actions (e.g., "CHANNEL_") */
|
|
153
|
+
actionPrefix?: string;
|
|
154
|
+
/** Redux state slice path (e.g., "state.channel") */
|
|
155
|
+
stateSlice?: string;
|
|
156
|
+
/** API base path for this epic */
|
|
157
|
+
apiBasePath?: string;
|
|
158
|
+
/** Component folder for this epic */
|
|
159
|
+
componentFolder?: string;
|
|
160
|
+
/** Hook naming pattern for this epic */
|
|
161
|
+
hookPattern?: string;
|
|
162
|
+
/** Additional custom patterns */
|
|
163
|
+
custom?: Record<string, string>;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Common files used across all tickets in an epic
|
|
167
|
+
*
|
|
168
|
+
* Defines file paths that are shared/referenced by multiple tickets
|
|
169
|
+
* in the epic. Helps AI understand the epic's file structure.
|
|
170
|
+
*/
|
|
171
|
+
export interface EpicCommonFiles {
|
|
172
|
+
/** Reducer file path */
|
|
173
|
+
reducer?: string;
|
|
174
|
+
/** Actions file path */
|
|
175
|
+
actions?: string;
|
|
176
|
+
/** Types file path */
|
|
177
|
+
types?: string;
|
|
178
|
+
/** Index/barrel file path */
|
|
179
|
+
index?: string;
|
|
180
|
+
/** Selectors file path */
|
|
181
|
+
selectors?: string;
|
|
182
|
+
/** Hooks file path */
|
|
183
|
+
hooks?: string;
|
|
184
|
+
/** API client file path */
|
|
185
|
+
api?: string;
|
|
186
|
+
/** Test utilities file path */
|
|
187
|
+
testUtils?: string;
|
|
188
|
+
/** Additional custom files */
|
|
189
|
+
custom?: Record<string, string>;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Type guard for EpicSharedPatterns
|
|
193
|
+
*/
|
|
194
|
+
export declare function isValidEpicSharedPatterns(value: unknown): value is EpicSharedPatterns;
|
|
195
|
+
/**
|
|
196
|
+
* Type guard for EpicCommonFiles
|
|
197
|
+
*/
|
|
198
|
+
export declare function isValidEpicCommonFiles(value: unknown): value is EpicCommonFiles;
|
|
55
199
|
/**
|
|
56
200
|
* Epic status values
|
|
57
201
|
*/
|
|
@@ -77,7 +221,7 @@ export interface Epic {
|
|
|
77
221
|
fileStructure?: string;
|
|
78
222
|
techStack?: string[];
|
|
79
223
|
dependencies?: string[];
|
|
80
|
-
apiContracts?:
|
|
224
|
+
apiContracts?: unknown;
|
|
81
225
|
status: EpicStatus;
|
|
82
226
|
progress: number;
|
|
83
227
|
order: number;
|
|
@@ -90,6 +234,12 @@ export interface Epic {
|
|
|
90
234
|
tags?: string[];
|
|
91
235
|
estimatedHours?: number;
|
|
92
236
|
acceptanceCriteria?: string[];
|
|
237
|
+
/** Shared patterns for this epic (overrides specification patterns) */
|
|
238
|
+
sharedPatterns?: EpicSharedPatterns;
|
|
239
|
+
/** Additional imports specific to this epic */
|
|
240
|
+
additionalImports?: string[];
|
|
241
|
+
/** Common files shared across tickets in this epic */
|
|
242
|
+
commonFiles?: EpicCommonFiles;
|
|
93
243
|
createdAt: string;
|
|
94
244
|
updatedAt: string;
|
|
95
245
|
}
|
|
@@ -98,37 +248,248 @@ export interface Epic {
|
|
|
98
248
|
*/
|
|
99
249
|
export type TicketStatus = 'todo' | 'queue' | 'in_progress' | 'blocked' | 'done';
|
|
100
250
|
/**
|
|
101
|
-
*
|
|
251
|
+
* Supported implementation step action types
|
|
252
|
+
*/
|
|
253
|
+
export type ImplementationAction = 'create' | 'code' | 'validate' | 'api' | 'dispatch' | 'test' | 'config' | 'refactor' | 'delete' | 'document';
|
|
254
|
+
/**
|
|
255
|
+
* A single implementation step with structured details
|
|
256
|
+
*/
|
|
257
|
+
export interface ImplementationStep {
|
|
258
|
+
/** Execution order (1-based) */
|
|
259
|
+
order: number;
|
|
260
|
+
/** Brief title describing the step */
|
|
261
|
+
title: string;
|
|
262
|
+
/** Type of action to perform */
|
|
263
|
+
action: ImplementationAction;
|
|
264
|
+
/** Detailed description of what to do */
|
|
265
|
+
detail: string;
|
|
266
|
+
/** Optional code snippet for reference */
|
|
267
|
+
codeSnippet?: string;
|
|
268
|
+
/** Optional file path this step applies to */
|
|
269
|
+
targetFile?: string;
|
|
270
|
+
/** Estimated minutes for this step */
|
|
271
|
+
estimatedMinutes?: number;
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Code example for reference
|
|
275
|
+
*/
|
|
276
|
+
export interface CodeExample {
|
|
277
|
+
/** Name/title of the example */
|
|
278
|
+
name: string;
|
|
279
|
+
/** Programming language */
|
|
280
|
+
language: string;
|
|
281
|
+
/** The actual code */
|
|
282
|
+
code: string;
|
|
283
|
+
/** Optional description */
|
|
284
|
+
description?: string;
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* Implementation details stored with a ticket (enhanced schema)
|
|
102
288
|
*/
|
|
103
289
|
export interface TicketImplementation {
|
|
104
|
-
/**
|
|
290
|
+
/** Ordered list of implementation steps */
|
|
291
|
+
steps?: ImplementationStep[];
|
|
292
|
+
/** Optional code examples for reference */
|
|
293
|
+
codeExamples?: CodeExample[];
|
|
294
|
+
/** Optional summary or overview */
|
|
295
|
+
summary?: string;
|
|
296
|
+
/** Optional prerequisites */
|
|
297
|
+
prerequisites?: string[];
|
|
298
|
+
/** @deprecated Use steps[].targetFile with action='create' */
|
|
105
299
|
filesToCreate?: string[];
|
|
106
|
-
/**
|
|
300
|
+
/** @deprecated Use steps[].targetFile with action='code' */
|
|
107
301
|
filesToModify?: string[];
|
|
108
|
-
/**
|
|
109
|
-
steps?: string[];
|
|
110
|
-
/** Code snippets */
|
|
302
|
+
/** @deprecated Use codeExamples or steps[].codeSnippet */
|
|
111
303
|
codeSnippets?: Record<string, string>;
|
|
112
|
-
/**
|
|
304
|
+
/** @deprecated Use steps with action='test' */
|
|
113
305
|
testing?: string;
|
|
114
|
-
/**
|
|
306
|
+
/** @deprecated Use summary field */
|
|
115
307
|
notes?: string;
|
|
116
308
|
}
|
|
117
309
|
/**
|
|
118
|
-
*
|
|
310
|
+
* Type guard to check if value is valid TicketImplementation
|
|
311
|
+
*/
|
|
312
|
+
export declare function isValidImplementation(value: unknown): value is TicketImplementation;
|
|
313
|
+
/**
|
|
314
|
+
* HTTP methods for API endpoints
|
|
315
|
+
*/
|
|
316
|
+
export type HttpMethod = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
|
|
317
|
+
/**
|
|
318
|
+
* File to be created
|
|
319
|
+
*/
|
|
320
|
+
export interface FileCreate {
|
|
321
|
+
/** File path relative to project root */
|
|
322
|
+
path: string;
|
|
323
|
+
/** Purpose/description of the file */
|
|
324
|
+
purpose: string;
|
|
325
|
+
/** Optional template or boilerplate to use */
|
|
326
|
+
template?: string;
|
|
327
|
+
}
|
|
328
|
+
/**
|
|
329
|
+
* File to be modified
|
|
330
|
+
*/
|
|
331
|
+
export interface FileModify {
|
|
332
|
+
/** File path relative to project root */
|
|
333
|
+
path: string;
|
|
334
|
+
/** Description of the change */
|
|
335
|
+
change: string;
|
|
336
|
+
/** Optional specific line range */
|
|
337
|
+
lineRange?: {
|
|
338
|
+
start: number;
|
|
339
|
+
end: number;
|
|
340
|
+
};
|
|
341
|
+
}
|
|
342
|
+
/**
|
|
343
|
+
* File to be deleted
|
|
344
|
+
*/
|
|
345
|
+
export interface FileDelete {
|
|
346
|
+
/** File path relative to project root */
|
|
347
|
+
path: string;
|
|
348
|
+
/** Reason for deletion */
|
|
349
|
+
reason: string;
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* API endpoint definition
|
|
353
|
+
*/
|
|
354
|
+
export interface ApiEndpoint {
|
|
355
|
+
/** HTTP method */
|
|
356
|
+
method: HttpMethod;
|
|
357
|
+
/** URL path */
|
|
358
|
+
path: string;
|
|
359
|
+
/** Description of the endpoint */
|
|
360
|
+
description: string;
|
|
361
|
+
/** Optional request body schema */
|
|
362
|
+
requestBody?: string;
|
|
363
|
+
/** Optional response schema */
|
|
364
|
+
responseBody?: string;
|
|
365
|
+
}
|
|
366
|
+
/**
|
|
367
|
+
* Database operation
|
|
368
|
+
*/
|
|
369
|
+
export interface DatabaseOperation {
|
|
370
|
+
/** Operation type */
|
|
371
|
+
type: 'create' | 'read' | 'update' | 'delete' | 'migration';
|
|
372
|
+
/** Table/collection name */
|
|
373
|
+
table: string;
|
|
374
|
+
/** Description of the operation */
|
|
375
|
+
description: string;
|
|
376
|
+
}
|
|
377
|
+
/**
|
|
378
|
+
* Environment variable definition
|
|
379
|
+
*/
|
|
380
|
+
export interface EnvVarDefinition {
|
|
381
|
+
/** Variable name */
|
|
382
|
+
name: string;
|
|
383
|
+
/** Description of the variable */
|
|
384
|
+
description: string;
|
|
385
|
+
/** Whether the variable is required */
|
|
386
|
+
required: boolean;
|
|
387
|
+
}
|
|
388
|
+
/**
|
|
389
|
+
* External service dependency
|
|
390
|
+
*/
|
|
391
|
+
export interface ExternalServiceDependency {
|
|
392
|
+
/** Service name */
|
|
393
|
+
name: string;
|
|
394
|
+
/** Purpose of using the service */
|
|
395
|
+
purpose: string;
|
|
396
|
+
}
|
|
397
|
+
/**
|
|
398
|
+
* Technical details for a ticket (enhanced schema)
|
|
399
|
+
*
|
|
400
|
+
* Captures file operations, patterns, imports, API endpoints,
|
|
401
|
+
* and other technical requirements in a structured format.
|
|
119
402
|
*/
|
|
120
403
|
export interface TicketTechnicalDetails {
|
|
121
|
-
/**
|
|
122
|
-
files?:
|
|
123
|
-
|
|
404
|
+
/** File operations */
|
|
405
|
+
files?: {
|
|
406
|
+
create?: FileCreate[];
|
|
407
|
+
modify?: FileModify[];
|
|
408
|
+
delete?: FileDelete[];
|
|
409
|
+
};
|
|
410
|
+
/** Pattern references (key: pattern name, value: description/usage) */
|
|
411
|
+
patterns?: Record<string, string>;
|
|
412
|
+
/** Required imports/dependencies */
|
|
413
|
+
imports?: string[];
|
|
414
|
+
/** API endpoints involved */
|
|
415
|
+
endpoints?: ApiEndpoint[];
|
|
416
|
+
/** Database operations */
|
|
417
|
+
database?: DatabaseOperation[];
|
|
418
|
+
/** Environment variables needed */
|
|
419
|
+
envVars?: EnvVarDefinition[];
|
|
420
|
+
/** External service dependencies */
|
|
421
|
+
externalServices?: ExternalServiceDependency[];
|
|
422
|
+
/** @deprecated Use files.create/modify for file operations */
|
|
124
423
|
stack?: string[];
|
|
125
|
-
/**
|
|
126
|
-
endpoints?: string[];
|
|
127
|
-
/** Database changes */
|
|
424
|
+
/** @deprecated Use database field */
|
|
128
425
|
databaseChanges?: string[];
|
|
129
|
-
/** Environment variables */
|
|
130
|
-
envVars?: string[];
|
|
131
426
|
}
|
|
427
|
+
/**
|
|
428
|
+
* Type guard for TicketTechnicalDetails
|
|
429
|
+
*
|
|
430
|
+
* Validates that a value conforms to the TicketTechnicalDetails structure.
|
|
431
|
+
*/
|
|
432
|
+
export declare function isValidTechnicalDetails(value: unknown): value is TicketTechnicalDetails;
|
|
433
|
+
/**
|
|
434
|
+
* Reference type for categorizing links
|
|
435
|
+
*/
|
|
436
|
+
export type ReferenceType = 'documentation' | 'example' | 'related' | 'external';
|
|
437
|
+
/**
|
|
438
|
+
* Reference link with optional description
|
|
439
|
+
*/
|
|
440
|
+
export interface Reference {
|
|
441
|
+
/** URL or document path */
|
|
442
|
+
url: string;
|
|
443
|
+
/** Title or description */
|
|
444
|
+
title: string;
|
|
445
|
+
/** Type of reference */
|
|
446
|
+
type?: ReferenceType;
|
|
447
|
+
}
|
|
448
|
+
/**
|
|
449
|
+
* Alternative approach consideration
|
|
450
|
+
*/
|
|
451
|
+
export interface Alternative {
|
|
452
|
+
/** Title of the alternative */
|
|
453
|
+
title: string;
|
|
454
|
+
/** Description of the approach */
|
|
455
|
+
description: string;
|
|
456
|
+
/** Why it wasn't chosen */
|
|
457
|
+
reason?: string;
|
|
458
|
+
/** Pros of this alternative */
|
|
459
|
+
pros?: string[];
|
|
460
|
+
/** Cons of this alternative */
|
|
461
|
+
cons?: string[];
|
|
462
|
+
}
|
|
463
|
+
/**
|
|
464
|
+
* Notes and context for a ticket (enhanced schema)
|
|
465
|
+
*
|
|
466
|
+
* Captures warnings, best practices, alternatives, references,
|
|
467
|
+
* and other contextual information in a structured format.
|
|
468
|
+
*/
|
|
469
|
+
export interface TicketNotes {
|
|
470
|
+
/** Important warnings and gotchas */
|
|
471
|
+
warnings?: string[];
|
|
472
|
+
/** Recommended best practices */
|
|
473
|
+
bestPractices?: string[];
|
|
474
|
+
/** Alternative approaches considered */
|
|
475
|
+
alternatives?: Alternative[] | string[];
|
|
476
|
+
/** Reference links and documentation */
|
|
477
|
+
references?: Reference[] | string[];
|
|
478
|
+
/** General context and background */
|
|
479
|
+
context?: string;
|
|
480
|
+
/** Known limitations */
|
|
481
|
+
limitations?: string[];
|
|
482
|
+
/** Future considerations */
|
|
483
|
+
futureWork?: string[];
|
|
484
|
+
/** Related tickets or issues */
|
|
485
|
+
relatedTickets?: string[];
|
|
486
|
+
}
|
|
487
|
+
/**
|
|
488
|
+
* Type guard for TicketNotes
|
|
489
|
+
*
|
|
490
|
+
* Validates that a value conforms to the TicketNotes structure.
|
|
491
|
+
*/
|
|
492
|
+
export declare function isValidNotes(value: unknown): value is TicketNotes;
|
|
132
493
|
/**
|
|
133
494
|
* Ticket entity
|
|
134
495
|
*/
|
|
@@ -144,7 +505,8 @@ export interface Ticket {
|
|
|
144
505
|
priority?: 'high' | 'medium' | 'low';
|
|
145
506
|
complexity?: 'small' | 'medium' | 'large' | 'xlarge';
|
|
146
507
|
tags?: string[];
|
|
147
|
-
|
|
508
|
+
/** Notes and context - supports both simple string (legacy) and structured TicketNotes */
|
|
509
|
+
notes?: string | TicketNotes;
|
|
148
510
|
implementation?: TicketImplementation;
|
|
149
511
|
acceptanceCriteria?: string[];
|
|
150
512
|
technicalDetails?: TicketTechnicalDetails;
|
|
@@ -558,4 +920,190 @@ export interface ResetTicketsResult {
|
|
|
558
920
|
reason: string;
|
|
559
921
|
}>;
|
|
560
922
|
}
|
|
923
|
+
/**
|
|
924
|
+
* Ticket definition for bulk creation
|
|
925
|
+
*/
|
|
926
|
+
export interface BulkCreateTicketDefinition {
|
|
927
|
+
/** Ticket title (required) */
|
|
928
|
+
title: string;
|
|
929
|
+
/** Ticket description */
|
|
930
|
+
description?: string;
|
|
931
|
+
/** Estimated hours */
|
|
932
|
+
estimatedHours?: number;
|
|
933
|
+
/** Complexity level */
|
|
934
|
+
complexity?: 'small' | 'medium' | 'large' | 'xlarge';
|
|
935
|
+
/** Priority level */
|
|
936
|
+
priority?: 'high' | 'medium' | 'low';
|
|
937
|
+
/** Acceptance criteria */
|
|
938
|
+
acceptanceCriteria?: string[];
|
|
939
|
+
/** Implementation details */
|
|
940
|
+
implementation?: TicketImplementation;
|
|
941
|
+
/** Technical details */
|
|
942
|
+
technicalDetails?: TicketTechnicalDetails;
|
|
943
|
+
/** Tags */
|
|
944
|
+
tags?: string[];
|
|
945
|
+
}
|
|
946
|
+
/**
|
|
947
|
+
* Inline dependency definition for bulk creation
|
|
948
|
+
*/
|
|
949
|
+
export interface BulkCreateDependencyDefinition {
|
|
950
|
+
/** Index of the ticket in the tickets array */
|
|
951
|
+
ticket: number;
|
|
952
|
+
/** Index(es) of the ticket(s) it depends on */
|
|
953
|
+
dependsOn: number | number[];
|
|
954
|
+
}
|
|
955
|
+
/**
|
|
956
|
+
* Request for bulk create tickets operation
|
|
957
|
+
*/
|
|
958
|
+
export interface BulkCreateTicketsRequest {
|
|
959
|
+
/** Epic ID to create tickets in */
|
|
960
|
+
epicId: string;
|
|
961
|
+
/** Array of ticket definitions */
|
|
962
|
+
tickets: BulkCreateTicketDefinition[];
|
|
963
|
+
/** Optional inline dependencies using array indexes */
|
|
964
|
+
dependencies?: BulkCreateDependencyDefinition[];
|
|
965
|
+
}
|
|
966
|
+
/**
|
|
967
|
+
* Created ticket info in bulk create response
|
|
968
|
+
*/
|
|
969
|
+
export interface BulkCreatedTicketInfo {
|
|
970
|
+
/** Generated ticket ID */
|
|
971
|
+
id: string;
|
|
972
|
+
/** Assigned ticket number */
|
|
973
|
+
ticketNumber: number;
|
|
974
|
+
/** Ticket title */
|
|
975
|
+
title: string;
|
|
976
|
+
}
|
|
977
|
+
/**
|
|
978
|
+
* Result of bulk create tickets operation
|
|
979
|
+
*/
|
|
980
|
+
export interface BulkCreateTicketsResult {
|
|
981
|
+
/** Number of tickets created */
|
|
982
|
+
created: number;
|
|
983
|
+
/** Created ticket information */
|
|
984
|
+
tickets: BulkCreatedTicketInfo[];
|
|
985
|
+
/** Number of dependencies created */
|
|
986
|
+
dependenciesCreated: number;
|
|
987
|
+
}
|
|
988
|
+
/**
|
|
989
|
+
* Single dependency definition for bulk add
|
|
990
|
+
*/
|
|
991
|
+
export interface BulkDependencyDefinition {
|
|
992
|
+
/** ID of the ticket that will depend on another */
|
|
993
|
+
ticketId: string;
|
|
994
|
+
/** ID of the ticket it will depend on */
|
|
995
|
+
dependsOnId: string;
|
|
996
|
+
/** Type of dependency (default: 'requires') */
|
|
997
|
+
type?: 'blocks' | 'requires';
|
|
998
|
+
}
|
|
999
|
+
/**
|
|
1000
|
+
* Request for bulk add dependencies operation
|
|
1001
|
+
*/
|
|
1002
|
+
export interface BulkAddDependenciesRequest {
|
|
1003
|
+
/** Array of dependency definitions */
|
|
1004
|
+
dependencies: BulkDependencyDefinition[];
|
|
1005
|
+
/** Skip validation of circular dependencies (default: false) */
|
|
1006
|
+
skipCircularCheck?: boolean;
|
|
1007
|
+
}
|
|
1008
|
+
/**
|
|
1009
|
+
* Result of bulk add dependencies operation
|
|
1010
|
+
*/
|
|
1011
|
+
export interface BulkAddDependenciesResult {
|
|
1012
|
+
/** Number of dependencies created */
|
|
1013
|
+
created: number;
|
|
1014
|
+
/** IDs of created dependency records */
|
|
1015
|
+
dependencyIds: string[];
|
|
1016
|
+
/** Dependencies that were skipped (duplicates) */
|
|
1017
|
+
skipped: number;
|
|
1018
|
+
}
|
|
1019
|
+
/**
|
|
1020
|
+
* Request for lookup_project operation
|
|
1021
|
+
*/
|
|
1022
|
+
export interface LookupProjectRequest {
|
|
1023
|
+
/** Project name to search for (partial match, case-insensitive) */
|
|
1024
|
+
name: string;
|
|
1025
|
+
}
|
|
1026
|
+
/**
|
|
1027
|
+
* Minimal project info returned by lookup_project
|
|
1028
|
+
*/
|
|
1029
|
+
export interface LookupProjectResult {
|
|
1030
|
+
/** Project ID */
|
|
1031
|
+
id: string;
|
|
1032
|
+
/** Project name */
|
|
1033
|
+
name: string;
|
|
1034
|
+
/** Number of specifications in the project */
|
|
1035
|
+
specCount: number;
|
|
1036
|
+
}
|
|
1037
|
+
/**
|
|
1038
|
+
* Request for lookup_specification operation
|
|
1039
|
+
*/
|
|
1040
|
+
export interface LookupSpecificationRequest {
|
|
1041
|
+
/** Specification title to search for (partial match, case-insensitive) */
|
|
1042
|
+
title: string;
|
|
1043
|
+
/** Optional project ID to narrow search */
|
|
1044
|
+
projectId?: string;
|
|
1045
|
+
}
|
|
1046
|
+
/**
|
|
1047
|
+
* Minimal specification info returned by lookup_specification
|
|
1048
|
+
*/
|
|
1049
|
+
export interface LookupSpecificationResult {
|
|
1050
|
+
/** Specification ID */
|
|
1051
|
+
id: string;
|
|
1052
|
+
/** Specification title */
|
|
1053
|
+
title: string;
|
|
1054
|
+
/** Status */
|
|
1055
|
+
status: SpecificationStatus;
|
|
1056
|
+
/** Number of epics */
|
|
1057
|
+
epicCount: number;
|
|
1058
|
+
}
|
|
1059
|
+
/**
|
|
1060
|
+
* Request for lookup_epic operation
|
|
1061
|
+
*/
|
|
1062
|
+
export interface LookupEpicRequest {
|
|
1063
|
+
/** Epic title to search for (partial match, case-insensitive) */
|
|
1064
|
+
title: string;
|
|
1065
|
+
/** Specification ID to search within */
|
|
1066
|
+
specificationId: string;
|
|
1067
|
+
}
|
|
1068
|
+
/**
|
|
1069
|
+
* Minimal epic info returned by lookup_epic
|
|
1070
|
+
*/
|
|
1071
|
+
export interface LookupEpicResult {
|
|
1072
|
+
/** Epic ID */
|
|
1073
|
+
id: string;
|
|
1074
|
+
/** Epic title */
|
|
1075
|
+
title: string;
|
|
1076
|
+
/** Epic number */
|
|
1077
|
+
epicNumber: number;
|
|
1078
|
+
/** Status */
|
|
1079
|
+
status: EpicStatus;
|
|
1080
|
+
/** Number of tickets */
|
|
1081
|
+
ticketCount: number;
|
|
1082
|
+
}
|
|
1083
|
+
/**
|
|
1084
|
+
* Request for lookup_ticket operation
|
|
1085
|
+
*/
|
|
1086
|
+
export interface LookupTicketRequest {
|
|
1087
|
+
/** Ticket title to search for (partial match, case-insensitive) */
|
|
1088
|
+
title: string;
|
|
1089
|
+
/** Optional epic ID to narrow search */
|
|
1090
|
+
epicId?: string;
|
|
1091
|
+
/** Optional specification ID to narrow search */
|
|
1092
|
+
specificationId?: string;
|
|
1093
|
+
}
|
|
1094
|
+
/**
|
|
1095
|
+
* Minimal ticket info returned by lookup_ticket
|
|
1096
|
+
*/
|
|
1097
|
+
export interface LookupTicketResult {
|
|
1098
|
+
/** Ticket ID */
|
|
1099
|
+
id: string;
|
|
1100
|
+
/** Ticket title */
|
|
1101
|
+
title: string;
|
|
1102
|
+
/** Ticket number */
|
|
1103
|
+
ticketNumber: number;
|
|
1104
|
+
/** Status */
|
|
1105
|
+
status: TicketStatus;
|
|
1106
|
+
/** Epic ID */
|
|
1107
|
+
epicId: string;
|
|
1108
|
+
}
|
|
561
1109
|
//# sourceMappingURL=index.d.ts.map
|