@kosuke-ai/cli 0.0.36 ā 0.0.38
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/index.d.ts +0 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +33 -84
- package/dist/index.js.map +1 -1
- package/dist/kosuke/commands/build.d.ts +7 -3
- package/dist/kosuke/commands/build.d.ts.map +1 -1
- package/dist/kosuke/commands/build.js +53 -16
- package/dist/kosuke/commands/build.js.map +1 -1
- package/dist/kosuke/commands/ship.d.ts +22 -15
- package/dist/kosuke/commands/ship.d.ts.map +1 -1
- package/dist/kosuke/commands/ship.js +49 -151
- package/dist/kosuke/commands/ship.js.map +1 -1
- package/dist/kosuke/commands/test.d.ts +2 -1
- package/dist/kosuke/commands/test.d.ts.map +1 -1
- package/dist/kosuke/commands/test.js +75 -23
- package/dist/kosuke/commands/test.js.map +1 -1
- package/dist/kosuke/commands/tickets.d.ts.map +1 -1
- package/dist/kosuke/commands/tickets.js +278 -109
- package/dist/kosuke/commands/tickets.js.map +1 -1
- package/dist/kosuke/types.d.ts +30 -9
- package/dist/kosuke/types.d.ts.map +1 -1
- package/dist/kosuke/utils/prompt-generator.d.ts +0 -4
- package/dist/kosuke/utils/prompt-generator.d.ts.map +1 -1
- package/dist/kosuke/utils/prompt-generator.js +0 -14
- package/dist/kosuke/utils/prompt-generator.js.map +1 -1
- package/dist/kosuke/utils/test-runner.d.ts +15 -0
- package/dist/kosuke/utils/test-runner.d.ts.map +1 -0
- package/dist/kosuke/utils/test-runner.js +94 -0
- package/dist/kosuke/utils/test-runner.js.map +1 -0
- package/dist/lib.d.ts +29 -2
- package/dist/lib.d.ts.map +1 -1
- package/dist/lib.js +28 -1
- package/dist/lib.js.map +1 -1
- package/dist/package.json +2 -2
- package/package.json +2 -2
- package/dist/kosuke/utils/browser-agent.d.ts +0 -33
- package/dist/kosuke/utils/browser-agent.d.ts.map +0 -1
- package/dist/kosuke/utils/browser-agent.js +0 -102
- package/dist/kosuke/utils/browser-agent.js.map +0 -1
|
@@ -19,78 +19,187 @@
|
|
|
19
19
|
* kosuke tickets --directory=./projects/my-app # Analyze specific directory
|
|
20
20
|
* kosuke tickets --dir=./my-app --path=docs/spec.md # Custom directory and requirements path
|
|
21
21
|
*/
|
|
22
|
-
import {
|
|
22
|
+
import { existsSync, readFileSync, statSync, writeFileSync } from 'fs';
|
|
23
23
|
import { join, resolve } from 'path';
|
|
24
|
-
import {
|
|
24
|
+
import { formatCostBreakdown, runAgent } from '../utils/claude-agent.js';
|
|
25
25
|
import { logger, setupCancellationHandler } from '../utils/logger.js';
|
|
26
26
|
/**
|
|
27
|
-
* Build system prompt for ticket generation
|
|
27
|
+
* Build system prompt for ticket generation with integrated analysis
|
|
28
28
|
*/
|
|
29
|
-
function buildTicketGenerationPrompt(phase, requirementsContent, projectPath) {
|
|
29
|
+
function buildTicketGenerationPrompt(phase, ticketType, requirementsContent, projectPath) {
|
|
30
|
+
const phaseTypeKey = `${phase}_${ticketType}`;
|
|
30
31
|
const phaseInstructions = {
|
|
31
|
-
|
|
32
|
-
**
|
|
32
|
+
schema_scaffold: `
|
|
33
|
+
**GENERATE: ONE DATABASE SCHEMA SCAFFOLD TICKET**
|
|
33
34
|
|
|
34
|
-
|
|
35
|
-
-
|
|
36
|
-
-
|
|
37
|
-
-
|
|
38
|
-
-
|
|
39
|
-
- Any special considerations (soft deletes, timestamps, etc.)
|
|
35
|
+
This ticket should handle infrastructure/setup database changes based on the analysis:
|
|
36
|
+
- Modifications to auth tables (if organizations needed or removed)
|
|
37
|
+
- Billing/subscription tables (if changed or removed)
|
|
38
|
+
- Email verification/notification tables
|
|
39
|
+
- Any template baseline schema adjustments
|
|
40
40
|
|
|
41
|
-
|
|
41
|
+
**Key Focus:**
|
|
42
|
+
- What needs to be REMOVED from template (e.g., organization tables if not needed)
|
|
43
|
+
- What needs to be ADDED for infrastructure (e.g., organization support if needed)
|
|
44
|
+
- Updates to existing template tables for new requirements
|
|
45
|
+
|
|
46
|
+
Ticket ID: SCHEMA-SCAFFOLD-1
|
|
42
47
|
`,
|
|
43
|
-
|
|
44
|
-
**
|
|
48
|
+
schema_logic: `
|
|
49
|
+
**GENERATE: ONE DATABASE SCHEMA BUSINESS LOGIC TICKET**
|
|
50
|
+
|
|
51
|
+
This ticket should handle core business domain tables based on the analysis:
|
|
52
|
+
- Main application entities (e.g., tasks, projects, posts, campaigns)
|
|
53
|
+
- Business-specific relationships
|
|
54
|
+
- Domain-specific fields and constraints
|
|
55
|
+
- Application data models
|
|
56
|
+
|
|
57
|
+
**Key Focus:**
|
|
58
|
+
- Core business entities unique to this application
|
|
59
|
+
- Relationships between business entities
|
|
60
|
+
- NOT infrastructure tables (auth, billing, etc.)
|
|
61
|
+
|
|
62
|
+
Ticket ID: SCHEMA-LOGIC-1
|
|
63
|
+
`,
|
|
64
|
+
backend_scaffold: `
|
|
65
|
+
**GENERATE: BACKEND SCAFFOLD TICKETS**
|
|
66
|
+
|
|
67
|
+
Generate tickets for infrastructure/setup backend changes:
|
|
68
|
+
- Auth modifications (add/remove organization support, change providers)
|
|
69
|
+
- Billing API changes (remove Stripe, add different tiers, etc.)
|
|
70
|
+
- Email template setup (create transactional email templates)
|
|
71
|
+
- Landing page API routes (if needed)
|
|
72
|
+
- Third-party integrations setup
|
|
73
|
+
|
|
74
|
+
**Granularity:**
|
|
75
|
+
- ONE ticket per infrastructure area (auth, billing, email, landing)
|
|
76
|
+
- Let Claude decide granularity based on complexity
|
|
77
|
+
- Each ticket should be independently implementable
|
|
45
78
|
|
|
46
|
-
|
|
47
|
-
|
|
79
|
+
Ticket IDs: BACKEND-SCAFFOLD-1, BACKEND-SCAFFOLD-2, etc. (sequential)
|
|
80
|
+
`,
|
|
81
|
+
backend_logic: `
|
|
82
|
+
**GENERATE: BACKEND BUSINESS LOGIC TICKETS**
|
|
83
|
+
|
|
84
|
+
Generate tickets for core application backend features:
|
|
85
|
+
- API endpoints for business entities
|
|
48
86
|
- Service layer logic
|
|
49
|
-
-
|
|
50
|
-
-
|
|
51
|
-
-
|
|
52
|
-
|
|
87
|
+
- Business rules and validation
|
|
88
|
+
- Application-specific data processing
|
|
89
|
+
- Feature-specific integrations
|
|
90
|
+
|
|
91
|
+
**Granularity:**
|
|
92
|
+
- ONE ticket per feature/module
|
|
93
|
+
- Let Claude decide granularity based on complexity
|
|
94
|
+
- Each ticket should be independently implementable
|
|
95
|
+
|
|
96
|
+
Ticket IDs: BACKEND-LOGIC-1, BACKEND-LOGIC-2, etc. (sequential)
|
|
97
|
+
`,
|
|
98
|
+
frontend_scaffold: `
|
|
99
|
+
**GENERATE: FRONTEND SCAFFOLD TICKETS**
|
|
100
|
+
|
|
101
|
+
Generate tickets for infrastructure/setup frontend changes:
|
|
102
|
+
- Auth UI modifications (add/remove organization switcher, change auth flow)
|
|
103
|
+
- Billing UI changes (subscription management, pricing page updates)
|
|
104
|
+
- Landing page customization
|
|
105
|
+
- Email template previews
|
|
106
|
+
- Navigation/layout updates for infrastructure changes
|
|
53
107
|
|
|
54
|
-
|
|
108
|
+
**Granularity:**
|
|
109
|
+
- ONE ticket per infrastructure area
|
|
110
|
+
- Let Claude decide granularity based on complexity
|
|
111
|
+
- Each ticket should be independently implementable
|
|
55
112
|
|
|
56
|
-
Ticket IDs:
|
|
113
|
+
Ticket IDs: FRONTEND-SCAFFOLD-1, FRONTEND-SCAFFOLD-2, etc. (sequential)
|
|
57
114
|
`,
|
|
58
|
-
|
|
59
|
-
**
|
|
115
|
+
frontend_logic: `
|
|
116
|
+
**GENERATE: FRONTEND BUSINESS LOGIC TICKETS**
|
|
60
117
|
|
|
61
|
-
Generate
|
|
62
|
-
-
|
|
63
|
-
- UI components
|
|
64
|
-
-
|
|
65
|
-
-
|
|
66
|
-
-
|
|
67
|
-
- Responsive design
|
|
118
|
+
Generate tickets for core application frontend features:
|
|
119
|
+
- Application-specific pages
|
|
120
|
+
- Feature-specific UI components
|
|
121
|
+
- Business logic forms
|
|
122
|
+
- User workflows
|
|
123
|
+
- Application state management
|
|
68
124
|
|
|
69
|
-
|
|
125
|
+
**Granularity:**
|
|
126
|
+
- ONE ticket per PAGE or major feature
|
|
127
|
+
- Let Claude decide granularity based on complexity
|
|
128
|
+
- Each ticket should cover all components and functionality for that area
|
|
70
129
|
|
|
71
|
-
Ticket IDs: FRONTEND-1, FRONTEND-2,
|
|
130
|
+
Ticket IDs: FRONTEND-LOGIC-1, FRONTEND-LOGIC-2, etc. (sequential)
|
|
72
131
|
`,
|
|
73
132
|
};
|
|
74
|
-
|
|
133
|
+
const categoryGuidance = ticketType === 'scaffold'
|
|
134
|
+
? `
|
|
135
|
+
**Category Assignment:**
|
|
136
|
+
Assign appropriate category to each ticket:
|
|
137
|
+
- "auth" - Authentication and authorization changes
|
|
138
|
+
- "billing" - Payment and subscription changes
|
|
139
|
+
- "email" - Transactional email setup
|
|
140
|
+
- "landing" - Public marketing pages
|
|
141
|
+
- "infrastructure" - General setup/configuration
|
|
142
|
+
`
|
|
143
|
+
: `
|
|
144
|
+
**Category Assignment:**
|
|
145
|
+
Assign appropriate category based on business domain:
|
|
146
|
+
- Use the main entity name (e.g., "tasks", "projects", "campaigns")
|
|
147
|
+
- Or use feature name (e.g., "user-management", "notifications", "analytics")
|
|
148
|
+
- Keep categories consistent across related tickets
|
|
149
|
+
`;
|
|
150
|
+
const templateBaseline = `
|
|
151
|
+
**Kosuke Template Baseline (what the template already includes):**
|
|
152
|
+
- **Authentication**: Better Auth with Email OTP
|
|
153
|
+
- **User Model**: Individual users (no organizations/multi-tenancy by default)
|
|
154
|
+
- **Billing**: Stripe with subscription tiers (free, pro, business)
|
|
155
|
+
- **Email**: Resend for transactional emails
|
|
156
|
+
- **Landing Page**: Basic marketing site with pricing
|
|
157
|
+
- **Database**: PostgreSQL with Drizzle ORM
|
|
158
|
+
- **Stack**: Next.js 15, React 19, TypeScript, Tailwind, Shadcn UI
|
|
159
|
+
|
|
160
|
+
**Analysis Instructions:**
|
|
161
|
+
Before generating tickets, analyze the requirements to understand:
|
|
162
|
+
1. **Auth**: Does it need organizations/multi-tenancy? Different auth provider?
|
|
163
|
+
2. **Billing**: Keep Stripe? Remove billing entirely? Different tiers?
|
|
164
|
+
3. **Email**: What transactional emails are needed? Custom templates?
|
|
165
|
+
4. **Landing**: Customize marketing pages? Remove landing page?
|
|
166
|
+
5. **Core Domain**: What are the main business entities and workflows?
|
|
167
|
+
|
|
168
|
+
For SCAFFOLD tickets:
|
|
169
|
+
- Identify what needs to be REMOVED from template (if not needed)
|
|
170
|
+
- Identify what needs to be ADDED to template (if needed)
|
|
171
|
+
- Identify what needs to be CUSTOMIZED (landing page, email templates, etc.)
|
|
172
|
+
|
|
173
|
+
For LOGIC tickets:
|
|
174
|
+
- Focus on core business functionality
|
|
175
|
+
- Implement application-specific features
|
|
176
|
+
- Build domain models and workflows
|
|
177
|
+
`;
|
|
178
|
+
return `You are an expert software architect generating implementation tickets for a Kosuke Template project.
|
|
75
179
|
|
|
76
180
|
**Your Task:**
|
|
77
|
-
${phaseInstructions[
|
|
181
|
+
${phaseInstructions[phaseTypeKey]}
|
|
78
182
|
|
|
79
183
|
**Requirements Document:**
|
|
80
184
|
${requirementsContent}
|
|
81
185
|
|
|
186
|
+
${templateBaseline}
|
|
187
|
+
|
|
82
188
|
**Context:**
|
|
83
189
|
You have access to the project directory at: ${projectPath}
|
|
190
|
+
The template baseline is documented in CLAUDE.md.
|
|
84
191
|
Explore the codebase to understand the tech stack, architecture patterns, and coding conventions.
|
|
85
|
-
Use read_file, grep, and codebase_search tools to understand the existing implementation.
|
|
86
192
|
|
|
87
193
|
**Ticket Structure:**
|
|
88
194
|
Each ticket must be a JSON object with:
|
|
89
|
-
- id: string (e.g., "SCHEMA-1", "BACKEND-
|
|
195
|
+
- id: string (e.g., "SCHEMA-SCAFFOLD-1", "BACKEND-LOGIC-2")
|
|
90
196
|
- title: string (clear, concise title)
|
|
91
197
|
- description: string (detailed description with acceptance criteria)
|
|
198
|
+
- type: "${ticketType}" (scaffold or logic)
|
|
92
199
|
- estimatedEffort: number (1-10, where 1=very easy, 10=very complex)
|
|
93
200
|
- status: "Todo" (all tickets start as Todo)
|
|
201
|
+
- category: string (see guidance below)
|
|
202
|
+
${categoryGuidance}
|
|
94
203
|
|
|
95
204
|
**Output Format:**
|
|
96
205
|
Return ONLY a valid JSON array of tickets. No markdown, no code blocks, just raw JSON.
|
|
@@ -98,34 +207,39 @@ Return ONLY a valid JSON array of tickets. No markdown, no code blocks, just raw
|
|
|
98
207
|
Example:
|
|
99
208
|
[
|
|
100
209
|
{
|
|
101
|
-
"id": "
|
|
102
|
-
"title": "
|
|
103
|
-
"description": "
|
|
104
|
-
"
|
|
105
|
-
"
|
|
210
|
+
"id": "BACKEND-SCAFFOLD-1",
|
|
211
|
+
"title": "Remove organization support from authentication",
|
|
212
|
+
"description": "Remove multi-tenancy/organization features from the template:\\n- Remove organization tables from schema\\n- Update user model to remove org references\\n- Simplify auth middleware (no org context)\\n- Remove org switcher from UI\\n\\nAcceptance Criteria:\\n- All organization references removed from codebase\\n- Auth flow works for individual users only\\n- Database migrations remove org tables\\n- No compilation errors",
|
|
213
|
+
"type": "scaffold",
|
|
214
|
+
"estimatedEffort": 6,
|
|
215
|
+
"status": "Todo",
|
|
216
|
+
"category": "auth"
|
|
106
217
|
}
|
|
107
218
|
]
|
|
108
219
|
|
|
109
220
|
**Critical Instructions:**
|
|
110
|
-
1. Analyze
|
|
111
|
-
2. Explore the project directory to understand existing patterns (use read_file, grep, codebase_search
|
|
221
|
+
1. Analyze requirements against template baseline
|
|
222
|
+
2. Explore the project directory to understand existing patterns (use read_file, grep, codebase_search)
|
|
112
223
|
3. Generate tickets that are actionable and specific
|
|
113
224
|
4. Return ONLY valid JSON - no explanations, no markdown formatting
|
|
114
|
-
5. Ensure ticket IDs follow the naming convention (${phase.toUpperCase()}-N)
|
|
225
|
+
5. Ensure ticket IDs follow the naming convention (${phase.toUpperCase()}-${ticketType.toUpperCase()}-N)
|
|
115
226
|
6. Make descriptions detailed with clear acceptance criteria
|
|
116
227
|
7. Estimate effort realistically (consider complexity, dependencies, testing)
|
|
228
|
+
8. Assign appropriate categories for organization and filtering
|
|
229
|
+
9. For scaffold tickets: focus on infrastructure changes (add/remove/customize template features)
|
|
230
|
+
10. For logic tickets: focus on business domain implementation
|
|
117
231
|
|
|
118
|
-
Begin by exploring the project directory, then generate the tickets.`;
|
|
232
|
+
Begin by exploring the project directory, analyzing requirements, then generate the tickets.`;
|
|
119
233
|
}
|
|
120
234
|
/**
|
|
121
235
|
* Parse tickets from Claude's response
|
|
122
236
|
*/
|
|
123
|
-
function parseTicketsFromResponse(response, phase) {
|
|
237
|
+
function parseTicketsFromResponse(response, phase, ticketType) {
|
|
124
238
|
try {
|
|
125
239
|
// Extract JSON from response (in case Claude includes extra text)
|
|
126
240
|
const jsonMatch = response.match(/\[[\s\S]*\]/);
|
|
127
241
|
if (!jsonMatch) {
|
|
128
|
-
throw new Error(`No JSON array found in ${phase} response`);
|
|
242
|
+
throw new Error(`No JSON array found in ${phase} ${ticketType} response`);
|
|
129
243
|
}
|
|
130
244
|
const tickets = JSON.parse(jsonMatch[0]);
|
|
131
245
|
// Validate tickets
|
|
@@ -136,6 +250,9 @@ function parseTicketsFromResponse(response, phase) {
|
|
|
136
250
|
if (!ticket.id || !ticket.title || !ticket.description) {
|
|
137
251
|
throw new Error(`Invalid ticket structure: ${JSON.stringify(ticket)}`);
|
|
138
252
|
}
|
|
253
|
+
if (!ticket.type || (ticket.type !== 'scaffold' && ticket.type !== 'logic')) {
|
|
254
|
+
throw new Error(`Invalid or missing type for ticket ${ticket.id}: ${ticket.type}`);
|
|
255
|
+
}
|
|
139
256
|
if (typeof ticket.estimatedEffort !== 'number' ||
|
|
140
257
|
ticket.estimatedEffort < 1 ||
|
|
141
258
|
ticket.estimatedEffort > 10) {
|
|
@@ -148,64 +265,64 @@ function parseTicketsFromResponse(response, phase) {
|
|
|
148
265
|
return tickets;
|
|
149
266
|
}
|
|
150
267
|
catch (error) {
|
|
151
|
-
console.error(`\nā Failed to parse tickets from ${phase} phase:`);
|
|
268
|
+
console.error(`\nā Failed to parse tickets from ${phase} ${ticketType} phase:`);
|
|
152
269
|
console.error(`Raw response:\n${response.substring(0, 500)}...\n`);
|
|
153
|
-
throw new Error(`Failed to parse ${phase} tickets: ${error instanceof Error ? error.message : String(error)}`);
|
|
270
|
+
throw new Error(`Failed to parse ${phase} ${ticketType} tickets: ${error instanceof Error ? error.message : String(error)}`);
|
|
154
271
|
}
|
|
155
272
|
}
|
|
156
273
|
/**
|
|
157
274
|
* Write tickets to file incrementally
|
|
158
275
|
*/
|
|
159
|
-
function writeTicketsToFile(outputPath,
|
|
160
|
-
const allTickets = [...schemaTickets, ...backendTickets, ...frontendTickets];
|
|
276
|
+
function writeTicketsToFile(outputPath, tickets) {
|
|
161
277
|
const outputData = {
|
|
162
278
|
generatedAt: new Date().toISOString(),
|
|
163
|
-
totalTickets:
|
|
164
|
-
tickets
|
|
279
|
+
totalTickets: tickets.length,
|
|
280
|
+
tickets,
|
|
165
281
|
};
|
|
166
282
|
writeFileSync(outputPath, JSON.stringify(outputData, null, 2), 'utf-8');
|
|
167
283
|
}
|
|
168
284
|
/**
|
|
169
|
-
* Generate tickets for a specific phase
|
|
285
|
+
* Generate tickets for a specific phase and type
|
|
170
286
|
*/
|
|
171
|
-
async function generatePhaseTickets(phase, requirementsContent, projectPath, outputPath,
|
|
287
|
+
async function generatePhaseTickets(phase, ticketType, requirementsContent, projectPath, outputPath, existingTickets) {
|
|
172
288
|
const phaseEmoji = {
|
|
173
289
|
schema: 'šļø',
|
|
174
290
|
backend: 'āļø',
|
|
175
291
|
frontend: 'šØ',
|
|
176
292
|
};
|
|
293
|
+
const typeEmoji = {
|
|
294
|
+
scaffold: 'šļø',
|
|
295
|
+
logic: 'š”',
|
|
296
|
+
};
|
|
177
297
|
const phaseName = {
|
|
178
298
|
schema: 'Schema',
|
|
179
299
|
backend: 'Backend',
|
|
180
300
|
frontend: 'Frontend',
|
|
181
301
|
};
|
|
302
|
+
const typeName = {
|
|
303
|
+
scaffold: 'Scaffold',
|
|
304
|
+
logic: 'Logic',
|
|
305
|
+
};
|
|
182
306
|
console.log(`\n${'='.repeat(60)}`);
|
|
183
|
-
console.log(`${phaseEmoji[phase]}
|
|
307
|
+
console.log(`${phaseEmoji[phase]} ${typeEmoji[ticketType]} ${phaseName[phase]} ${typeName[ticketType]} Tickets`);
|
|
184
308
|
console.log(`${'='.repeat(60)}\n`);
|
|
185
|
-
const systemPrompt = buildTicketGenerationPrompt(phase, requirementsContent, projectPath);
|
|
186
|
-
const agentResult = await runAgent(`Generate ${phaseName[phase]} tickets from the requirements
|
|
309
|
+
const systemPrompt = buildTicketGenerationPrompt(phase, ticketType, requirementsContent, projectPath);
|
|
310
|
+
const agentResult = await runAgent(`Generate ${phaseName[phase]} ${typeName[ticketType]} tickets from the requirements.`, {
|
|
187
311
|
systemPrompt,
|
|
188
312
|
cwd: projectPath,
|
|
189
313
|
maxTurns: 25,
|
|
190
314
|
verbosity: 'normal',
|
|
191
|
-
captureConversation: true,
|
|
315
|
+
captureConversation: true,
|
|
192
316
|
});
|
|
193
317
|
// Parse tickets from response
|
|
194
|
-
const tickets = parseTicketsFromResponse(agentResult.response, phase);
|
|
195
|
-
console.log(`\nā
Generated ${tickets.length} ${phaseName[phase]} ticket${tickets.length === 1 ? '' : 's'}`);
|
|
318
|
+
const tickets = parseTicketsFromResponse(agentResult.response, phase, ticketType);
|
|
319
|
+
console.log(`\nā
Generated ${tickets.length} ${phaseName[phase]} ${typeName[ticketType]} ticket${tickets.length === 1 ? '' : 's'}`);
|
|
196
320
|
tickets.forEach((ticket) => {
|
|
197
|
-
console.log(` ${phaseEmoji[phase]} ${ticket.id}: ${ticket.title} (Effort: ${ticket.estimatedEffort}/10)`);
|
|
321
|
+
console.log(` ${phaseEmoji[phase]} ${ticket.id}: ${ticket.title} (Effort: ${ticket.estimatedEffort}/10${ticket.category ? `, Category: ${ticket.category}` : ''})`);
|
|
198
322
|
});
|
|
199
323
|
// Write tickets incrementally after each phase
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
}
|
|
203
|
-
else if (phase === 'backend') {
|
|
204
|
-
writeTicketsToFile(outputPath, existingSchemaTickets, tickets, []);
|
|
205
|
-
}
|
|
206
|
-
else if (phase === 'frontend') {
|
|
207
|
-
writeTicketsToFile(outputPath, existingSchemaTickets, existingBackendTickets, tickets);
|
|
208
|
-
}
|
|
324
|
+
const allTickets = [...existingTickets, ...tickets];
|
|
325
|
+
writeTicketsToFile(outputPath, allTickets);
|
|
209
326
|
console.log(` š¾ Progress saved to: ${outputPath}\n`);
|
|
210
327
|
return {
|
|
211
328
|
tickets,
|
|
@@ -244,7 +361,7 @@ export async function ticketsCore(options) {
|
|
|
244
361
|
// 3. Determine output path for incremental writes
|
|
245
362
|
const outputFilename = options.output || 'tickets.json';
|
|
246
363
|
const outputPath = join(projectPath, outputFilename);
|
|
247
|
-
// 4. Generate tickets in
|
|
364
|
+
// 4. Generate tickets in six phases (scaffold + logic for each)
|
|
248
365
|
let totalInputTokens = 0;
|
|
249
366
|
let totalOutputTokens = 0;
|
|
250
367
|
let totalCacheCreationTokens = 0;
|
|
@@ -252,37 +369,74 @@ export async function ticketsCore(options) {
|
|
|
252
369
|
let totalCost = 0;
|
|
253
370
|
// Collect all conversation messages from all phases
|
|
254
371
|
const allConversationMessages = [];
|
|
255
|
-
//
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
372
|
+
// Track all tickets
|
|
373
|
+
let allTickets = [];
|
|
374
|
+
// SCAFFOLD TICKETS (Infrastructure changes)
|
|
375
|
+
// Phase 1: Schema Scaffold
|
|
376
|
+
const schemaScaffoldResult = await generatePhaseTickets('schema', 'scaffold', requirementsContent, projectPath, outputPath, allTickets);
|
|
377
|
+
allTickets = [...allTickets, ...schemaScaffoldResult.tickets];
|
|
378
|
+
totalInputTokens += schemaScaffoldResult.tokensUsed.input;
|
|
379
|
+
totalOutputTokens += schemaScaffoldResult.tokensUsed.output;
|
|
380
|
+
totalCacheCreationTokens += schemaScaffoldResult.tokensUsed.cacheCreation;
|
|
381
|
+
totalCacheReadTokens += schemaScaffoldResult.tokensUsed.cacheRead;
|
|
382
|
+
totalCost += schemaScaffoldResult.cost;
|
|
383
|
+
allConversationMessages.push(...schemaScaffoldResult.conversationMessages);
|
|
384
|
+
// Phase 2: Backend Scaffold
|
|
385
|
+
const backendScaffoldResult = await generatePhaseTickets('backend', 'scaffold', requirementsContent, projectPath, outputPath, allTickets);
|
|
386
|
+
allTickets = [...allTickets, ...backendScaffoldResult.tickets];
|
|
387
|
+
totalInputTokens += backendScaffoldResult.tokensUsed.input;
|
|
388
|
+
totalOutputTokens += backendScaffoldResult.tokensUsed.output;
|
|
389
|
+
totalCacheCreationTokens += backendScaffoldResult.tokensUsed.cacheCreation;
|
|
390
|
+
totalCacheReadTokens += backendScaffoldResult.tokensUsed.cacheRead;
|
|
391
|
+
totalCost += backendScaffoldResult.cost;
|
|
392
|
+
allConversationMessages.push(...backendScaffoldResult.conversationMessages);
|
|
393
|
+
// Phase 3: Frontend Scaffold
|
|
394
|
+
const frontendScaffoldResult = await generatePhaseTickets('frontend', 'scaffold', requirementsContent, projectPath, outputPath, allTickets);
|
|
395
|
+
allTickets = [...allTickets, ...frontendScaffoldResult.tickets];
|
|
396
|
+
totalInputTokens += frontendScaffoldResult.tokensUsed.input;
|
|
397
|
+
totalOutputTokens += frontendScaffoldResult.tokensUsed.output;
|
|
398
|
+
totalCacheCreationTokens += frontendScaffoldResult.tokensUsed.cacheCreation;
|
|
399
|
+
totalCacheReadTokens += frontendScaffoldResult.tokensUsed.cacheRead;
|
|
400
|
+
totalCost += frontendScaffoldResult.cost;
|
|
401
|
+
allConversationMessages.push(...frontendScaffoldResult.conversationMessages);
|
|
402
|
+
// LOGIC TICKETS (Business functionality)
|
|
403
|
+
// Phase 4: Schema Logic
|
|
404
|
+
const schemaLogicResult = await generatePhaseTickets('schema', 'logic', requirementsContent, projectPath, outputPath, allTickets);
|
|
405
|
+
allTickets = [...allTickets, ...schemaLogicResult.tickets];
|
|
406
|
+
totalInputTokens += schemaLogicResult.tokensUsed.input;
|
|
407
|
+
totalOutputTokens += schemaLogicResult.tokensUsed.output;
|
|
408
|
+
totalCacheCreationTokens += schemaLogicResult.tokensUsed.cacheCreation;
|
|
409
|
+
totalCacheReadTokens += schemaLogicResult.tokensUsed.cacheRead;
|
|
410
|
+
totalCost += schemaLogicResult.cost;
|
|
411
|
+
allConversationMessages.push(...schemaLogicResult.conversationMessages);
|
|
412
|
+
// Phase 5: Backend Logic
|
|
413
|
+
const backendLogicResult = await generatePhaseTickets('backend', 'logic', requirementsContent, projectPath, outputPath, allTickets);
|
|
414
|
+
allTickets = [...allTickets, ...backendLogicResult.tickets];
|
|
415
|
+
totalInputTokens += backendLogicResult.tokensUsed.input;
|
|
416
|
+
totalOutputTokens += backendLogicResult.tokensUsed.output;
|
|
417
|
+
totalCacheCreationTokens += backendLogicResult.tokensUsed.cacheCreation;
|
|
418
|
+
totalCacheReadTokens += backendLogicResult.tokensUsed.cacheRead;
|
|
419
|
+
totalCost += backendLogicResult.cost;
|
|
420
|
+
allConversationMessages.push(...backendLogicResult.conversationMessages);
|
|
421
|
+
// Phase 6: Frontend Logic
|
|
422
|
+
const frontendLogicResult = await generatePhaseTickets('frontend', 'logic', requirementsContent, projectPath, outputPath, allTickets);
|
|
423
|
+
allTickets = [...allTickets, ...frontendLogicResult.tickets];
|
|
424
|
+
totalInputTokens += frontendLogicResult.tokensUsed.input;
|
|
425
|
+
totalOutputTokens += frontendLogicResult.tokensUsed.output;
|
|
426
|
+
totalCacheCreationTokens += frontendLogicResult.tokensUsed.cacheCreation;
|
|
427
|
+
totalCacheReadTokens += frontendLogicResult.tokensUsed.cacheRead;
|
|
428
|
+
totalCost += frontendLogicResult.cost;
|
|
429
|
+
allConversationMessages.push(...frontendLogicResult.conversationMessages);
|
|
430
|
+
// Separate tickets by phase for result
|
|
431
|
+
const schemaTickets = allTickets.filter((t) => t.id.startsWith('SCHEMA-'));
|
|
432
|
+
const backendTickets = allTickets.filter((t) => t.id.startsWith('BACKEND-'));
|
|
433
|
+
const frontendTickets = allTickets.filter((t) => t.id.startsWith('FRONTEND-'));
|
|
280
434
|
return {
|
|
281
|
-
schemaTickets
|
|
282
|
-
backendTickets
|
|
283
|
-
frontendTickets
|
|
284
|
-
totalTickets,
|
|
285
|
-
projectPath,
|
|
435
|
+
schemaTickets,
|
|
436
|
+
backendTickets,
|
|
437
|
+
frontendTickets,
|
|
438
|
+
totalTickets: allTickets.length,
|
|
439
|
+
projectPath,
|
|
286
440
|
tokensUsed: {
|
|
287
441
|
input: totalInputTokens,
|
|
288
442
|
output: totalOutputTokens,
|
|
@@ -313,13 +467,28 @@ export async function ticketsCommand(options) {
|
|
|
313
467
|
logger.trackTokens(logContext, result.tokensUsed);
|
|
314
468
|
logContext.conversationMessages = result.conversationMessages;
|
|
315
469
|
// Display summary
|
|
470
|
+
const scaffoldTickets = [
|
|
471
|
+
...result.schemaTickets,
|
|
472
|
+
...result.backendTickets,
|
|
473
|
+
...result.frontendTickets,
|
|
474
|
+
].filter((t) => t.type === 'scaffold');
|
|
475
|
+
const logicTickets = [
|
|
476
|
+
...result.schemaTickets,
|
|
477
|
+
...result.backendTickets,
|
|
478
|
+
...result.frontendTickets,
|
|
479
|
+
].filter((t) => t.type === 'logic');
|
|
316
480
|
console.log(`\n${'='.repeat(60)}`);
|
|
317
|
-
console.log('š Summary');
|
|
481
|
+
console.log('š Ticket Generation Summary');
|
|
318
482
|
console.log(`${'='.repeat(60)}`);
|
|
319
|
-
console.log(
|
|
320
|
-
console.log(
|
|
321
|
-
console.log(
|
|
322
|
-
console.log(
|
|
483
|
+
console.log(`\nšļø Scaffold Tickets (Infrastructure): ${scaffoldTickets.length}`);
|
|
484
|
+
console.log(` šļø Schema: ${result.schemaTickets.filter((t) => t.type === 'scaffold').length}`);
|
|
485
|
+
console.log(` āļø Backend: ${result.backendTickets.filter((t) => t.type === 'scaffold').length}`);
|
|
486
|
+
console.log(` šØ Frontend: ${result.frontendTickets.filter((t) => t.type === 'scaffold').length}`);
|
|
487
|
+
console.log(`\nš” Logic Tickets (Business Functionality): ${logicTickets.length}`);
|
|
488
|
+
console.log(` šļø Schema: ${result.schemaTickets.filter((t) => t.type === 'logic').length}`);
|
|
489
|
+
console.log(` āļø Backend: ${result.backendTickets.filter((t) => t.type === 'logic').length}`);
|
|
490
|
+
console.log(` šØ Frontend: ${result.frontendTickets.filter((t) => t.type === 'logic').length}`);
|
|
491
|
+
console.log(`\nš Total Tickets: ${result.totalTickets}`);
|
|
323
492
|
console.log(`${'='.repeat(60)}\n`);
|
|
324
493
|
// Display cost breakdown
|
|
325
494
|
const costBreakdown = formatCostBreakdown({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tickets.js","sourceRoot":"","sources":["../../../kosuke/commands/tickets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AACvE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,MAAM,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAGtE;;GAEG;AACH,SAAS,2BAA2B,CAClC,KAAwC,EACxC,mBAA2B,EAC3B,WAAmB;IAEnB,MAAM,iBAAiB,GAAG;QACxB,MAAM,EAAE;;;;;;;;;;;CAWX;QACG,OAAO,EAAE;;;;;;;;;;;;;;CAcZ;QACG,QAAQ,EAAE;;;;;;;;;;;;;;CAcb;KACE,CAAC;IAEF,OAAO;;;EAGP,iBAAiB,CAAC,KAAK,CAAC;;;EAGxB,mBAAmB;;;+CAG0B,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qDA+BL,KAAK,CAAC,WAAW,EAAE;;;;qEAIH,CAAC;AACtE,CAAC;AAED;;GAEG;AACH,SAAS,wBAAwB,CAAC,QAAgB,EAAE,KAAa;IAC/D,IAAI,CAAC;QACH,kEAAkE;QAClE,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAChD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,WAAW,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAa,CAAC;QAErD,mBAAmB;QACnB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,kCAAkC,OAAO,OAAO,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBACvD,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACzE,CAAC;YACD,IACE,OAAO,MAAM,CAAC,eAAe,KAAK,QAAQ;gBAC1C,MAAM,CAAC,eAAe,GAAG,CAAC;gBAC1B,MAAM,CAAC,eAAe,GAAG,EAAE,EAC3B,CAAC;gBACD,MAAM,IAAI,KAAK,CACb,sCAAsC,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,eAAe,EAAE,CAC7E,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBACnB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;YACzB,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,oCAAoC,KAAK,SAAS,CAAC,CAAC;QAClE,OAAO,CAAC,KAAK,CAAC,kBAAkB,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QACnE,MAAM,IAAI,KAAK,CACb,mBAAmB,KAAK,aAAa,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC9F,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CACzB,UAAkB,EAClB,aAAuB,EACvB,cAAwB,EACxB,eAAyB;IAEzB,MAAM,UAAU,GAAG,CAAC,GAAG,aAAa,EAAE,GAAG,cAAc,EAAE,GAAG,eAAe,CAAC,CAAC;IAC7E,MAAM,UAAU,GAAG;QACjB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACrC,YAAY,EAAE,UAAU,CAAC,MAAM;QAC/B,OAAO,EAAE,UAAU;KACpB,CAAC;IAEF,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAC1E,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,oBAAoB,CACjC,KAAwC,EACxC,mBAA2B,EAC3B,WAAmB,EACnB,UAAkB,EAClB,qBAA+B,EAC/B,sBAAgC;IAgBhC,MAAM,UAAU,GAAG;QACjB,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,IAAI;KACf,CAAC;IAEF,MAAM,SAAS,GAAG;QAChB,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,UAAU;KACrB,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CACT,GAAG,UAAU,CAAC,KAAK,CAAC,WAAW,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,KAAK,CAAC,UAAU,CACzH,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IAEnC,MAAM,YAAY,GAAG,2BAA2B,CAAC,KAAK,EAAE,mBAAmB,EAAE,WAAW,CAAC,CAAC;IAE1F,MAAM,WAAW,GAAG,MAAM,QAAQ,CAChC,YAAY,SAAS,CAAC,KAAK,CAAC,0CAA0C,EACtE;QACE,YAAY;QACZ,GAAG,EAAE,WAAW;QAChB,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE,QAAQ;QACnB,mBAAmB,EAAE,IAAI,EAAE,gDAAgD;KAC5E,CACF,CAAC;IAEF,8BAA8B;IAC9B,MAAM,OAAO,GAAG,wBAAwB,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAEtE,OAAO,CAAC,GAAG,CACT,iBAAiB,OAAO,CAAC,MAAM,IAAI,SAAS,CAAC,KAAK,CAAC,UAAU,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAC/F,CAAC;IACF,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QACzB,OAAO,CAAC,GAAG,CACT,MAAM,UAAU,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,KAAK,aAAa,MAAM,CAAC,eAAe,MAAM,CAC/F,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,+CAA+C;IAC/C,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,kBAAkB,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAClD,CAAC;SAAM,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,kBAAkB,CAAC,UAAU,EAAE,qBAAqB,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACrE,CAAC;SAAM,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;QAChC,kBAAkB,CAAC,UAAU,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,OAAO,CAAC,CAAC;IACzF,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,4BAA4B,UAAU,IAAI,CAAC,CAAC;IAExD,OAAO;QACL,OAAO;QACP,UAAU,EAAE,WAAW,CAAC,UAAU;QAClC,IAAI,EAAE,WAAW,CAAC,IAAI;QACtB,oBAAoB,EAAE,WAAW,CAAC,oBAAoB,IAAI,EAAE;KAC7D,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAuB;IACvD,MAAM,EAAE,IAAI,GAAG,SAAS,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAEhD,4CAA4C;IAC5C,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;IAEnE,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,wBAAwB,WAAW,IAAI;YACrC,6DAA6D;YAC7D,kDAAkD,CACrD,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;IACpC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,4BAA4B,WAAW,IAAI,GAAG,wCAAwC,CACvF,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,+BAA+B,WAAW,IAAI,CAAC,CAAC;IAE5D,gEAAgE;IAChE,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IACnD,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAEjD,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CACb,oCAAoC,IAAI,IAAI;YAC1C,mDAAmD;YACnD,gDAAgD,CACnD,CAAC;IACJ,CAAC;IAED,MAAM,mBAAmB,GAAG,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,KAAK,mBAAmB,CAAC,MAAM,gBAAgB,CAAC,CAAC;IAEhF,kDAAkD;IAClD,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,IAAI,cAAc,CAAC;IACxD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IAErD,8DAA8D;IAC9D,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,IAAI,iBAAiB,GAAG,CAAC,CAAC;IAC1B,IAAI,wBAAwB,GAAG,CAAC,CAAC;IACjC,IAAI,oBAAoB,GAAG,CAAC,CAAC;IAC7B,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,oDAAoD;IACpD,MAAM,uBAAuB,GAKxB,EAAE,CAAC;IAER,kBAAkB;IAClB,MAAM,YAAY,GAAG,MAAM,oBAAoB,CAC7C,QAAQ,EACR,mBAAmB,EACnB,WAAW,EACX,UAAU,EACV,EAAE,EACF,EAAE,CACH,CAAC;IACF,gBAAgB,IAAI,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC;IAClD,iBAAiB,IAAI,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC;IACpD,wBAAwB,IAAI,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC;IAClE,oBAAoB,IAAI,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC;IAC1D,SAAS,IAAI,YAAY,CAAC,IAAI,CAAC;IAC/B,uBAAuB,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,oBAAoB,CAAC,CAAC;IAEnE,mBAAmB;IACnB,MAAM,aAAa,GAAG,MAAM,oBAAoB,CAC9C,SAAS,EACT,mBAAmB,EACnB,WAAW,EACX,UAAU,EACV,YAAY,CAAC,OAAO,EACpB,EAAE,CACH,CAAC;IACF,gBAAgB,IAAI,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC;IACnD,iBAAiB,IAAI,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC;IACrD,wBAAwB,IAAI,aAAa,CAAC,UAAU,CAAC,aAAa,CAAC;IACnE,oBAAoB,IAAI,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC;IAC3D,SAAS,IAAI,aAAa,CAAC,IAAI,CAAC;IAChC,uBAAuB,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,oBAAoB,CAAC,CAAC;IAEpE,oBAAoB;IACpB,MAAM,cAAc,GAAG,MAAM,oBAAoB,CAC/C,UAAU,EACV,mBAAmB,EACnB,WAAW,EACX,UAAU,EACV,YAAY,CAAC,OAAO,EACpB,aAAa,CAAC,OAAO,CACtB,CAAC;IACF,gBAAgB,IAAI,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC;IACpD,iBAAiB,IAAI,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC;IACtD,wBAAwB,IAAI,cAAc,CAAC,UAAU,CAAC,aAAa,CAAC;IACpE,oBAAoB,IAAI,cAAc,CAAC,UAAU,CAAC,SAAS,CAAC;IAC5D,SAAS,IAAI,cAAc,CAAC,IAAI,CAAC;IACjC,uBAAuB,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,oBAAoB,CAAC,CAAC;IAErE,MAAM,YAAY,GAChB,YAAY,CAAC,OAAO,CAAC,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC;IAE7F,OAAO;QACL,aAAa,EAAE,YAAY,CAAC,OAAO;QACnC,cAAc,EAAE,aAAa,CAAC,OAAO;QACrC,eAAe,EAAE,cAAc,CAAC,OAAO;QACvC,YAAY;QACZ,WAAW,EAAE,kDAAkD;QAC/D,UAAU,EAAE;YACV,KAAK,EAAE,gBAAgB;YACvB,MAAM,EAAE,iBAAiB;YACzB,aAAa,EAAE,wBAAwB;YACvC,SAAS,EAAE,oBAAoB;SAChC;QACD,IAAI,EAAE,SAAS;QACf,oBAAoB,EAAE,uBAAuB;KAC9C,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAuB;IAC1D,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;IAElD,6BAA6B;IAC7B,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAC/D,MAAM,cAAc,GAAG,wBAAwB,CAAC,UAAU,CAAC,CAAC;IAE5D,IAAI,CAAC;QACH,uBAAuB;QACvB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACxE,CAAC;QAED,qBAAqB;QACrB,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;QAE1C,gBAAgB;QAChB,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QAClD,UAAU,CAAC,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,CAAC;QAE9D,kBAAkB;QAClB,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,wBAAwB,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,wBAAwB,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC,wBAAwB,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,qBAAqB,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAEnC,yBAAyB;QACzB,MAAM,aAAa,GAAG,mBAAmB,CAAC;YACxC,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,QAAQ,EAAE,CAAC;YACX,QAAQ,EAAE,EAAE;YACZ,eAAe,EAAE,IAAI,GAAG,EAAE;SAC3B,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,kBAAkB,aAAa,IAAI,CAAC,CAAC;QAEjD,0DAA0D;QAC1D,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,IAAI,cAAc,CAAC;QACxD,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,2BAA2B,UAAU,IAAI,CAAC,CAAC;QAEvD,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;QAE3D,2BAA2B;QAC3B,MAAM,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAC7C,cAAc,EAAE,CAAC;IACnB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;QAEtD,uBAAuB;QACvB,MAAM,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,EAAE,KAAc,CAAC,CAAC;QAC3D,cAAc,EAAE,CAAC;QAEjB,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"tickets.js","sourceRoot":"","sources":["../../../kosuke/commands/tickets.ts"],"names":[],"mappings":"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"}
|