claude-code-workflow 6.3.9 → 6.3.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/.claude/CLAUDE.md +1 -1
  2. package/.claude/agents/issue-plan-agent.md +21 -15
  3. package/.claude/agents/issue-queue-agent.md +114 -87
  4. package/.claude/commands/issue/discover.md +427 -0
  5. package/.claude/commands/issue/execute.md +195 -363
  6. package/.claude/commands/issue/new.md +13 -1
  7. package/.claude/commands/issue/plan.md +55 -32
  8. package/.claude/commands/issue/queue.md +145 -71
  9. package/.claude/commands/workflow/init.md +75 -29
  10. package/.claude/commands/workflow/lite-fix.md +8 -0
  11. package/.claude/commands/workflow/lite-plan.md +8 -0
  12. package/.claude/commands/workflow/review-module-cycle.md +4 -0
  13. package/.claude/commands/workflow/review-session-cycle.md +4 -0
  14. package/.claude/commands/workflow/review.md +4 -4
  15. package/.claude/commands/workflow/session/solidify.md +299 -0
  16. package/.claude/commands/workflow/session/start.md +10 -7
  17. package/.claude/commands/workflow/tools/context-gather.md +17 -10
  18. package/.claude/skills/software-manual/SKILL.md +184 -0
  19. package/.claude/skills/software-manual/phases/01-requirements-discovery.md +162 -0
  20. package/.claude/skills/software-manual/phases/02-project-exploration.md +101 -0
  21. package/.claude/skills/software-manual/phases/02.5-api-extraction.md +161 -0
  22. package/.claude/skills/software-manual/phases/03-parallel-analysis.md +183 -0
  23. package/.claude/skills/software-manual/phases/03.5-consolidation.md +82 -0
  24. package/.claude/skills/software-manual/phases/04-screenshot-capture.md +89 -0
  25. package/.claude/skills/software-manual/phases/05-html-assembly.md +132 -0
  26. package/.claude/skills/software-manual/phases/06-iterative-refinement.md +259 -0
  27. package/.claude/skills/software-manual/scripts/api-extractor.md +245 -0
  28. package/.claude/skills/software-manual/scripts/bundle-libraries.md +85 -0
  29. package/.claude/skills/software-manual/scripts/extract_apis.py +270 -0
  30. package/.claude/skills/software-manual/scripts/screenshot-helper.md +447 -0
  31. package/.claude/skills/software-manual/scripts/swagger-runner.md +419 -0
  32. package/.claude/skills/software-manual/scripts/typedoc-runner.md +357 -0
  33. package/.claude/skills/software-manual/specs/html-template.md +325 -0
  34. package/.claude/skills/software-manual/specs/quality-standards.md +253 -0
  35. package/.claude/skills/software-manual/specs/writing-style.md +298 -0
  36. package/.claude/skills/software-manual/templates/css/wiki-base.css +788 -0
  37. package/.claude/skills/software-manual/templates/css/wiki-dark.css +278 -0
  38. package/.claude/skills/software-manual/templates/tiddlywiki-shell.html +327 -0
  39. package/.claude/workflows/cli-templates/schemas/discovery-finding-schema.json +219 -0
  40. package/.claude/workflows/cli-templates/schemas/discovery-state-schema.json +125 -0
  41. package/.claude/workflows/cli-templates/schemas/issues-jsonl-schema.json +168 -74
  42. package/.claude/workflows/cli-templates/schemas/queue-schema.json +225 -108
  43. package/.claude/workflows/cli-templates/schemas/solution-schema.json +6 -28
  44. package/.claude/workflows/context-tools.md +17 -25
  45. package/.codex/AGENTS.md +10 -5
  46. package/.codex/prompts/issue-execute.md +174 -84
  47. package/.codex/prompts/issue-plan.md +106 -0
  48. package/.codex/prompts/issue-queue.md +225 -0
  49. package/ccw/dist/cli.d.ts.map +1 -1
  50. package/ccw/dist/cli.js +1 -0
  51. package/ccw/dist/cli.js.map +1 -1
  52. package/ccw/dist/commands/issue.d.ts.map +1 -1
  53. package/ccw/dist/commands/issue.js +443 -123
  54. package/ccw/dist/commands/issue.js.map +1 -1
  55. package/ccw/dist/core/dashboard-generator.d.ts.map +1 -1
  56. package/ccw/dist/core/dashboard-generator.js +4 -1
  57. package/ccw/dist/core/dashboard-generator.js.map +1 -1
  58. package/ccw/dist/core/data-aggregator.d.ts +32 -0
  59. package/ccw/dist/core/data-aggregator.d.ts.map +1 -1
  60. package/ccw/dist/core/data-aggregator.js +55 -11
  61. package/ccw/dist/core/data-aggregator.js.map +1 -1
  62. package/ccw/dist/core/routes/discovery-routes.d.ts +37 -0
  63. package/ccw/dist/core/routes/discovery-routes.d.ts.map +1 -0
  64. package/ccw/dist/core/routes/discovery-routes.js +514 -0
  65. package/ccw/dist/core/routes/discovery-routes.js.map +1 -0
  66. package/ccw/dist/core/server.d.ts.map +1 -1
  67. package/ccw/dist/core/server.js +9 -1
  68. package/ccw/dist/core/server.js.map +1 -1
  69. package/ccw/dist/tools/codex-lens.d.ts +12 -1
  70. package/ccw/dist/tools/codex-lens.d.ts.map +1 -1
  71. package/ccw/dist/tools/codex-lens.js +56 -7
  72. package/ccw/dist/tools/codex-lens.js.map +1 -1
  73. package/ccw/src/cli.ts +1 -0
  74. package/ccw/src/commands/issue.ts +498 -158
  75. package/ccw/src/core/dashboard-generator.ts +4 -1
  76. package/ccw/src/core/data-aggregator.ts +94 -11
  77. package/ccw/src/core/routes/discovery-routes.ts +607 -0
  78. package/ccw/src/core/server.ts +9 -1
  79. package/ccw/src/templates/dashboard-css/34-discovery.css +783 -0
  80. package/ccw/src/templates/dashboard-js/components/cli-status.js +1 -78
  81. package/ccw/src/templates/dashboard-js/components/navigation.js +8 -0
  82. package/ccw/src/templates/dashboard-js/i18n.js +140 -4
  83. package/ccw/src/templates/dashboard-js/views/cli-manager.js +0 -18
  84. package/ccw/src/templates/dashboard-js/views/codexlens-manager.js +13 -3
  85. package/ccw/src/templates/dashboard-js/views/issue-discovery.js +730 -0
  86. package/ccw/src/templates/dashboard-js/views/issue-manager.js +57 -26
  87. package/ccw/src/templates/dashboard-js/views/project-overview.js +153 -0
  88. package/ccw/src/templates/dashboard.html +5 -0
  89. package/ccw/src/tools/codex-lens.ts +75 -9
  90. package/package.json +1 -1
  91. package/.claude/workflows/context-tools-ace.md +0 -105
@@ -0,0 +1,514 @@
1
+ import { readFileSync, existsSync, writeFileSync, mkdirSync, readdirSync, rmSync } from 'fs';
2
+ import { join } from 'path';
3
+ // ========== Helper Functions ==========
4
+ function getDiscoveriesDir(projectPath) {
5
+ return join(projectPath, '.workflow', 'issues', 'discoveries');
6
+ }
7
+ function readDiscoveryIndex(discoveriesDir) {
8
+ const indexPath = join(discoveriesDir, 'index.json');
9
+ // Try to read index.json first
10
+ if (existsSync(indexPath)) {
11
+ try {
12
+ return JSON.parse(readFileSync(indexPath, 'utf8'));
13
+ }
14
+ catch {
15
+ // Fall through to scan
16
+ }
17
+ }
18
+ // Fallback: scan directory for discovery folders
19
+ if (!existsSync(discoveriesDir)) {
20
+ return { discoveries: [], total: 0 };
21
+ }
22
+ try {
23
+ const entries = readdirSync(discoveriesDir, { withFileTypes: true });
24
+ const discoveries = [];
25
+ for (const entry of entries) {
26
+ if (entry.isDirectory() && entry.name.startsWith('DSC-')) {
27
+ const statePath = join(discoveriesDir, entry.name, 'discovery-state.json');
28
+ if (existsSync(statePath)) {
29
+ try {
30
+ const state = JSON.parse(readFileSync(statePath, 'utf8'));
31
+ discoveries.push({
32
+ discovery_id: entry.name,
33
+ target_pattern: state.target_pattern,
34
+ perspectives: state.metadata?.perspectives || [],
35
+ created_at: state.metadata?.created_at,
36
+ completed_at: state.completed_at
37
+ });
38
+ }
39
+ catch {
40
+ // Skip invalid entries
41
+ }
42
+ }
43
+ }
44
+ }
45
+ // Sort by creation time descending
46
+ discoveries.sort((a, b) => {
47
+ const timeA = new Date(a.created_at || 0).getTime();
48
+ const timeB = new Date(b.created_at || 0).getTime();
49
+ return timeB - timeA;
50
+ });
51
+ return { discoveries, total: discoveries.length };
52
+ }
53
+ catch {
54
+ return { discoveries: [], total: 0 };
55
+ }
56
+ }
57
+ function writeDiscoveryIndex(discoveriesDir, index) {
58
+ if (!existsSync(discoveriesDir)) {
59
+ mkdirSync(discoveriesDir, { recursive: true });
60
+ }
61
+ writeFileSync(join(discoveriesDir, 'index.json'), JSON.stringify(index, null, 2));
62
+ }
63
+ function readDiscoveryState(discoveriesDir, discoveryId) {
64
+ const statePath = join(discoveriesDir, discoveryId, 'discovery-state.json');
65
+ if (!existsSync(statePath))
66
+ return null;
67
+ try {
68
+ return JSON.parse(readFileSync(statePath, 'utf8'));
69
+ }
70
+ catch {
71
+ return null;
72
+ }
73
+ }
74
+ function readDiscoveryProgress(discoveriesDir, discoveryId) {
75
+ // Try merged state first (new schema)
76
+ const statePath = join(discoveriesDir, discoveryId, 'discovery-state.json');
77
+ if (existsSync(statePath)) {
78
+ try {
79
+ const state = JSON.parse(readFileSync(statePath, 'utf8'));
80
+ // New merged schema: perspectives array + results object
81
+ if (state.perspectives && Array.isArray(state.perspectives)) {
82
+ const completed = state.perspectives.filter((p) => p.status === 'completed').length;
83
+ const total = state.perspectives.length;
84
+ return {
85
+ discovery_id: discoveryId,
86
+ phase: state.phase,
87
+ last_update: state.updated_at || state.created_at,
88
+ progress: {
89
+ perspective_analysis: {
90
+ total,
91
+ completed,
92
+ in_progress: state.perspectives.filter((p) => p.status === 'in_progress').length,
93
+ percent_complete: total > 0 ? Math.round((completed / total) * 100) : 0
94
+ },
95
+ external_research: state.external_research || { enabled: false, completed: false },
96
+ aggregation: { completed: state.phase === 'aggregation' || state.phase === 'complete' },
97
+ issue_generation: { completed: state.phase === 'complete', issues_count: state.results?.issues_generated || 0 }
98
+ },
99
+ agent_status: state.perspectives
100
+ };
101
+ }
102
+ // Old schema: metadata.perspectives (backward compat)
103
+ if (state.metadata?.perspectives) {
104
+ return {
105
+ discovery_id: discoveryId,
106
+ phase: state.phase,
107
+ progress: { perspective_analysis: { total: state.metadata.perspectives.length, completed: state.perspectives_completed?.length || 0 } }
108
+ };
109
+ }
110
+ }
111
+ catch {
112
+ // Fall through
113
+ }
114
+ }
115
+ // Fallback: try legacy progress file
116
+ const progressPath = join(discoveriesDir, discoveryId, 'discovery-progress.json');
117
+ if (existsSync(progressPath)) {
118
+ try {
119
+ return JSON.parse(readFileSync(progressPath, 'utf8'));
120
+ }
121
+ catch {
122
+ return null;
123
+ }
124
+ }
125
+ return null;
126
+ }
127
+ function readPerspectiveFindings(discoveriesDir, discoveryId) {
128
+ const perspectivesDir = join(discoveriesDir, discoveryId, 'perspectives');
129
+ if (!existsSync(perspectivesDir))
130
+ return [];
131
+ const allFindings = [];
132
+ const files = readdirSync(perspectivesDir).filter(f => f.endsWith('.json'));
133
+ for (const file of files) {
134
+ try {
135
+ const content = JSON.parse(readFileSync(join(perspectivesDir, file), 'utf8'));
136
+ const perspective = file.replace('.json', '');
137
+ if (content.findings && Array.isArray(content.findings)) {
138
+ allFindings.push({
139
+ perspective,
140
+ summary: content.summary || {},
141
+ findings: content.findings.map((f) => ({
142
+ ...f,
143
+ perspective: f.perspective || perspective
144
+ }))
145
+ });
146
+ }
147
+ }
148
+ catch {
149
+ // Skip invalid files
150
+ }
151
+ }
152
+ return allFindings;
153
+ }
154
+ function readDiscoveryIssues(discoveriesDir, discoveryId) {
155
+ const issuesPath = join(discoveriesDir, discoveryId, 'discovery-issues.jsonl');
156
+ if (!existsSync(issuesPath))
157
+ return [];
158
+ try {
159
+ const content = readFileSync(issuesPath, 'utf8');
160
+ return content.split('\n').filter(line => line.trim()).map(line => JSON.parse(line));
161
+ }
162
+ catch {
163
+ return [];
164
+ }
165
+ }
166
+ function writeDiscoveryIssues(discoveriesDir, discoveryId, issues) {
167
+ const issuesPath = join(discoveriesDir, discoveryId, 'discovery-issues.jsonl');
168
+ writeFileSync(issuesPath, issues.map(i => JSON.stringify(i)).join('\n'));
169
+ }
170
+ function flattenFindings(perspectiveResults) {
171
+ const allFindings = [];
172
+ for (const result of perspectiveResults) {
173
+ if (result.findings) {
174
+ allFindings.push(...result.findings);
175
+ }
176
+ }
177
+ return allFindings;
178
+ }
179
+ function appendToIssuesJsonl(projectPath, issues) {
180
+ const issuesDir = join(projectPath, '.workflow', 'issues');
181
+ const issuesPath = join(issuesDir, 'issues.jsonl');
182
+ if (!existsSync(issuesDir)) {
183
+ mkdirSync(issuesDir, { recursive: true });
184
+ }
185
+ // Read existing issues
186
+ let existingIssues = [];
187
+ if (existsSync(issuesPath)) {
188
+ try {
189
+ const content = readFileSync(issuesPath, 'utf8');
190
+ existingIssues = content.split('\n').filter(line => line.trim()).map(line => JSON.parse(line));
191
+ }
192
+ catch {
193
+ // Start fresh
194
+ }
195
+ }
196
+ // Build set of existing IDs and source_finding combinations for deduplication
197
+ const existingIds = new Set(existingIssues.map(i => i.id));
198
+ const existingSourceFindings = new Set(existingIssues
199
+ .filter(i => i.source === 'discovery' && i.source_finding_id)
200
+ .map(i => `${i.source_discovery_id}:${i.source_finding_id}`));
201
+ // Convert and filter duplicates
202
+ const skippedIds = [];
203
+ const newIssues = [];
204
+ for (const di of issues) {
205
+ // Check for duplicate by ID
206
+ if (existingIds.has(di.id)) {
207
+ skippedIds.push(di.id);
208
+ continue;
209
+ }
210
+ // Check for duplicate by source_discovery_id + source_finding_id
211
+ const sourceKey = `${di.source_discovery_id}:${di.source_finding_id}`;
212
+ if (di.source_finding_id && existingSourceFindings.has(sourceKey)) {
213
+ skippedIds.push(di.id);
214
+ continue;
215
+ }
216
+ newIssues.push({
217
+ id: di.id,
218
+ title: di.title,
219
+ status: 'registered',
220
+ priority: di.priority || 3,
221
+ context: di.context || di.description || '',
222
+ source: 'discovery',
223
+ source_discovery_id: di.source_discovery_id,
224
+ source_finding_id: di.source_finding_id,
225
+ perspective: di.perspective,
226
+ file: di.file,
227
+ line: di.line,
228
+ labels: di.labels || [],
229
+ created_at: new Date().toISOString(),
230
+ updated_at: new Date().toISOString()
231
+ });
232
+ }
233
+ if (newIssues.length > 0) {
234
+ const allIssues = [...existingIssues, ...newIssues];
235
+ writeFileSync(issuesPath, allIssues.map(i => JSON.stringify(i)).join('\n'));
236
+ }
237
+ return { added: newIssues.length, skipped: skippedIds.length, skippedIds };
238
+ }
239
+ // ========== Route Handler ==========
240
+ export async function handleDiscoveryRoutes(ctx) {
241
+ const { pathname, url, req, res, initialPath, handlePostRequest } = ctx;
242
+ const projectPath = url.searchParams.get('path') || initialPath;
243
+ const discoveriesDir = getDiscoveriesDir(projectPath);
244
+ // GET /api/discoveries - List all discovery sessions
245
+ if (pathname === '/api/discoveries' && req.method === 'GET') {
246
+ const index = readDiscoveryIndex(discoveriesDir);
247
+ // Enrich with state info
248
+ const enrichedDiscoveries = index.discoveries.map((d) => {
249
+ const state = readDiscoveryState(discoveriesDir, d.discovery_id);
250
+ const progress = readDiscoveryProgress(discoveriesDir, d.discovery_id);
251
+ return {
252
+ ...d,
253
+ phase: state?.phase || 'unknown',
254
+ total_findings: state?.total_findings || 0,
255
+ issues_generated: state?.issues_generated || 0,
256
+ priority_distribution: state?.priority_distribution || {},
257
+ progress: progress?.progress || null
258
+ };
259
+ });
260
+ res.writeHead(200, { 'Content-Type': 'application/json' });
261
+ res.end(JSON.stringify({
262
+ discoveries: enrichedDiscoveries,
263
+ total: enrichedDiscoveries.length,
264
+ _metadata: { updated_at: new Date().toISOString() }
265
+ }));
266
+ return true;
267
+ }
268
+ // GET /api/discoveries/:id - Get discovery detail
269
+ const detailMatch = pathname.match(/^\/api\/discoveries\/([^/]+)$/);
270
+ if (detailMatch && req.method === 'GET') {
271
+ const discoveryId = detailMatch[1];
272
+ const state = readDiscoveryState(discoveriesDir, discoveryId);
273
+ if (!state) {
274
+ res.writeHead(404, { 'Content-Type': 'application/json' });
275
+ res.end(JSON.stringify({ error: `Discovery ${discoveryId} not found` }));
276
+ return true;
277
+ }
278
+ const progress = readDiscoveryProgress(discoveriesDir, discoveryId);
279
+ const perspectiveResults = readPerspectiveFindings(discoveriesDir, discoveryId);
280
+ const discoveryIssues = readDiscoveryIssues(discoveriesDir, discoveryId);
281
+ // Read external research if exists
282
+ let externalResearch = null;
283
+ const externalPath = join(discoveriesDir, discoveryId, 'external-research.json');
284
+ if (existsSync(externalPath)) {
285
+ try {
286
+ externalResearch = JSON.parse(readFileSync(externalPath, 'utf8'));
287
+ }
288
+ catch {
289
+ // Ignore
290
+ }
291
+ }
292
+ res.writeHead(200, { 'Content-Type': 'application/json' });
293
+ res.end(JSON.stringify({
294
+ ...state,
295
+ progress: progress?.progress || null,
296
+ perspectives: perspectiveResults,
297
+ external_research: externalResearch,
298
+ discovery_issues: discoveryIssues
299
+ }));
300
+ return true;
301
+ }
302
+ // GET /api/discoveries/:id/findings - Get all findings
303
+ const findingsMatch = pathname.match(/^\/api\/discoveries\/([^/]+)\/findings$/);
304
+ if (findingsMatch && req.method === 'GET') {
305
+ const discoveryId = findingsMatch[1];
306
+ if (!existsSync(join(discoveriesDir, discoveryId))) {
307
+ res.writeHead(404, { 'Content-Type': 'application/json' });
308
+ res.end(JSON.stringify({ error: `Discovery ${discoveryId} not found` }));
309
+ return true;
310
+ }
311
+ const perspectiveResults = readPerspectiveFindings(discoveriesDir, discoveryId);
312
+ const allFindings = flattenFindings(perspectiveResults);
313
+ // Support filtering
314
+ const perspectiveFilter = url.searchParams.get('perspective');
315
+ const priorityFilter = url.searchParams.get('priority');
316
+ let filtered = allFindings;
317
+ if (perspectiveFilter) {
318
+ filtered = filtered.filter(f => f.perspective === perspectiveFilter);
319
+ }
320
+ if (priorityFilter) {
321
+ filtered = filtered.filter(f => f.priority === priorityFilter);
322
+ }
323
+ res.writeHead(200, { 'Content-Type': 'application/json' });
324
+ res.end(JSON.stringify({
325
+ findings: filtered,
326
+ total: filtered.length,
327
+ perspectives: [...new Set(allFindings.map(f => f.perspective))],
328
+ _metadata: { discovery_id: discoveryId }
329
+ }));
330
+ return true;
331
+ }
332
+ // GET /api/discoveries/:id/progress - Get real-time progress
333
+ const progressMatch = pathname.match(/^\/api\/discoveries\/([^/]+)\/progress$/);
334
+ if (progressMatch && req.method === 'GET') {
335
+ const discoveryId = progressMatch[1];
336
+ const progress = readDiscoveryProgress(discoveriesDir, discoveryId);
337
+ if (!progress) {
338
+ res.writeHead(404, { 'Content-Type': 'application/json' });
339
+ res.end(JSON.stringify({ error: `Progress for ${discoveryId} not found` }));
340
+ return true;
341
+ }
342
+ res.writeHead(200, { 'Content-Type': 'application/json' });
343
+ res.end(JSON.stringify(progress));
344
+ return true;
345
+ }
346
+ // POST /api/discoveries/:id/export - Export findings as issues
347
+ const exportMatch = pathname.match(/^\/api\/discoveries\/([^/]+)\/export$/);
348
+ if (exportMatch && req.method === 'POST') {
349
+ handlePostRequest(req, res, async (body) => {
350
+ const discoveryId = exportMatch[1];
351
+ const { finding_ids, export_all } = body;
352
+ if (!existsSync(join(discoveriesDir, discoveryId))) {
353
+ return { error: `Discovery ${discoveryId} not found` };
354
+ }
355
+ const perspectiveResults = readPerspectiveFindings(discoveriesDir, discoveryId);
356
+ const allFindings = flattenFindings(perspectiveResults);
357
+ let toExport;
358
+ if (export_all) {
359
+ toExport = allFindings;
360
+ }
361
+ else if (finding_ids && finding_ids.length > 0) {
362
+ toExport = allFindings.filter(f => finding_ids.includes(f.id));
363
+ }
364
+ else {
365
+ return { error: 'Either finding_ids or export_all required' };
366
+ }
367
+ if (toExport.length === 0) {
368
+ return { error: 'No findings to export' };
369
+ }
370
+ // Convert findings to issue format
371
+ const issuesToExport = toExport.map((f, idx) => {
372
+ const suggestedIssue = f.suggested_issue || {};
373
+ return {
374
+ id: `ISS-${Date.now()}-${idx}`,
375
+ title: suggestedIssue.title || f.title,
376
+ priority: suggestedIssue.priority || 3,
377
+ context: f.description || '',
378
+ source: 'discovery',
379
+ source_discovery_id: discoveryId,
380
+ source_finding_id: f.id, // Track original finding ID for deduplication
381
+ perspective: f.perspective,
382
+ file: f.file,
383
+ line: f.line,
384
+ labels: suggestedIssue.labels || [f.perspective]
385
+ };
386
+ });
387
+ // Append to main issues.jsonl (with deduplication)
388
+ const result = appendToIssuesJsonl(projectPath, issuesToExport);
389
+ // Mark exported findings in perspective files
390
+ if (result.added > 0) {
391
+ const exportedFindingIds = new Set(issuesToExport
392
+ .filter((_, idx) => !result.skippedIds.includes(issuesToExport[idx].id))
393
+ .map(i => i.source_finding_id));
394
+ // Update each perspective file to mark findings as exported
395
+ const perspectivesDir = join(discoveriesDir, discoveryId, 'perspectives');
396
+ if (existsSync(perspectivesDir)) {
397
+ const files = readdirSync(perspectivesDir).filter(f => f.endsWith('.json'));
398
+ for (const file of files) {
399
+ const filePath = join(perspectivesDir, file);
400
+ try {
401
+ const content = JSON.parse(readFileSync(filePath, 'utf8'));
402
+ if (content.findings) {
403
+ let modified = false;
404
+ for (const finding of content.findings) {
405
+ if (exportedFindingIds.has(finding.id) && !finding.exported) {
406
+ finding.exported = true;
407
+ finding.exported_at = new Date().toISOString();
408
+ modified = true;
409
+ }
410
+ }
411
+ if (modified) {
412
+ writeFileSync(filePath, JSON.stringify(content, null, 2));
413
+ }
414
+ }
415
+ }
416
+ catch {
417
+ // Skip invalid files
418
+ }
419
+ }
420
+ }
421
+ }
422
+ // Update discovery state
423
+ const state = readDiscoveryState(discoveriesDir, discoveryId);
424
+ if (state) {
425
+ state.issues_generated = (state.issues_generated || 0) + result.added;
426
+ writeFileSync(join(discoveriesDir, discoveryId, 'discovery-state.json'), JSON.stringify(state, null, 2));
427
+ }
428
+ return {
429
+ success: true,
430
+ exported_count: result.added,
431
+ skipped_count: result.skipped,
432
+ skipped_ids: result.skippedIds,
433
+ message: result.skipped > 0
434
+ ? `Exported ${result.added} issues, skipped ${result.skipped} duplicates`
435
+ : `Exported ${result.added} issues`
436
+ };
437
+ });
438
+ return true;
439
+ }
440
+ // PATCH /api/discoveries/:id/findings/:fid - Update finding status
441
+ const updateFindingMatch = pathname.match(/^\/api\/discoveries\/([^/]+)\/findings\/([^/]+)$/);
442
+ if (updateFindingMatch && req.method === 'PATCH') {
443
+ handlePostRequest(req, res, async (body) => {
444
+ const [, discoveryId, findingId] = updateFindingMatch;
445
+ const { status, dismissed } = body;
446
+ const perspectivesDir = join(discoveriesDir, discoveryId, 'perspectives');
447
+ if (!existsSync(perspectivesDir)) {
448
+ return { error: `Discovery ${discoveryId} not found` };
449
+ }
450
+ // Find and update the finding
451
+ const files = readdirSync(perspectivesDir).filter(f => f.endsWith('.json'));
452
+ let updated = false;
453
+ for (const file of files) {
454
+ const filePath = join(perspectivesDir, file);
455
+ try {
456
+ const content = JSON.parse(readFileSync(filePath, 'utf8'));
457
+ if (content.findings) {
458
+ const findingIndex = content.findings.findIndex((f) => f.id === findingId);
459
+ if (findingIndex !== -1) {
460
+ if (status !== undefined) {
461
+ content.findings[findingIndex].status = status;
462
+ }
463
+ if (dismissed !== undefined) {
464
+ content.findings[findingIndex].dismissed = dismissed;
465
+ }
466
+ content.findings[findingIndex].updated_at = new Date().toISOString();
467
+ writeFileSync(filePath, JSON.stringify(content, null, 2));
468
+ updated = true;
469
+ break;
470
+ }
471
+ }
472
+ }
473
+ catch {
474
+ // Skip invalid files
475
+ }
476
+ }
477
+ if (!updated) {
478
+ return { error: `Finding ${findingId} not found` };
479
+ }
480
+ return { success: true, finding_id: findingId };
481
+ });
482
+ return true;
483
+ }
484
+ // DELETE /api/discoveries/:id - Delete discovery session
485
+ const deleteMatch = pathname.match(/^\/api\/discoveries\/([^/]+)$/);
486
+ if (deleteMatch && req.method === 'DELETE') {
487
+ const discoveryId = deleteMatch[1];
488
+ const discoveryPath = join(discoveriesDir, discoveryId);
489
+ if (!existsSync(discoveryPath)) {
490
+ res.writeHead(404, { 'Content-Type': 'application/json' });
491
+ res.end(JSON.stringify({ error: `Discovery ${discoveryId} not found` }));
492
+ return true;
493
+ }
494
+ try {
495
+ // Remove directory
496
+ rmSync(discoveryPath, { recursive: true, force: true });
497
+ // Update index
498
+ const index = readDiscoveryIndex(discoveriesDir);
499
+ index.discoveries = index.discoveries.filter((d) => d.discovery_id !== discoveryId);
500
+ index.total = index.discoveries.length;
501
+ writeDiscoveryIndex(discoveriesDir, index);
502
+ res.writeHead(200, { 'Content-Type': 'application/json' });
503
+ res.end(JSON.stringify({ success: true, deleted: discoveryId }));
504
+ }
505
+ catch (err) {
506
+ res.writeHead(500, { 'Content-Type': 'application/json' });
507
+ res.end(JSON.stringify({ error: 'Failed to delete discovery' }));
508
+ }
509
+ return true;
510
+ }
511
+ // Not handled
512
+ return false;
513
+ }
514
+ //# sourceMappingURL=discovery-routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discovery-routes.js","sourceRoot":"","sources":["../../../src/core/routes/discovery-routes.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/core/server.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,MAAM,CAAC;AAgCxB,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAoMD;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CA0NnF"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/core/server.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,MAAM,CAAC;AAiCxB,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAsMD;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CA+NnF"}
@@ -17,6 +17,7 @@ import { handleSystemRoutes } from './routes/system-routes.js';
17
17
  import { handleFilesRoutes } from './routes/files-routes.js';
18
18
  import { handleSkillsRoutes } from './routes/skills-routes.js';
19
19
  import { handleIssueRoutes } from './routes/issue-routes.js';
20
+ import { handleDiscoveryRoutes } from './routes/discovery-routes.js';
20
21
  import { handleRulesRoutes } from './routes/rules-routes.js';
21
22
  import { handleSessionRoutes } from './routes/session-routes.js';
22
23
  import { handleCcwRoutes } from './routes/ccw-routes.js';
@@ -68,7 +69,8 @@ const MODULE_CSS_FILES = [
68
69
  '30-core-memory.css',
69
70
  '31-api-settings.css',
70
71
  '32-issue-manager.css',
71
- '33-cli-stream-viewer.css'
72
+ '33-cli-stream-viewer.css',
73
+ '34-discovery.css'
72
74
  ];
73
75
  // Modular JS files in dependency order
74
76
  const MODULE_FILES = [
@@ -125,6 +127,7 @@ const MODULE_FILES = [
125
127
  'views/api-settings.js',
126
128
  'views/help.js',
127
129
  'views/issue-manager.js',
130
+ 'views/issue-discovery.js',
128
131
  'main.js'
129
132
  ];
130
133
  /**
@@ -313,6 +316,11 @@ export async function startServer(options = {}) {
313
316
  if (await handleIssueRoutes(routeContext))
314
317
  return;
315
318
  }
319
+ // Discovery routes (/api/discoveries*)
320
+ if (pathname.startsWith('/api/discoveries')) {
321
+ if (await handleDiscoveryRoutes(routeContext))
322
+ return;
323
+ }
316
324
  // Rules routes (/api/rules*)
317
325
  if (pathname.startsWith('/api/rules')) {
318
326
  if (await handleRulesRoutes(routeContext))
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/core/server.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAe,cAAc,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEjG,wBAAwB;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAExE,4BAA4B;AAC5B,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAmB5E,iBAAiB;AACjB,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,oCAAoC,CAAC,CAAC;AACtF,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,mCAAmC,CAAC,CAAC;AACtF,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,kCAAkC,CAAC,CAAC;AAC9E,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,kCAAkC,CAAC,CAAC;AACpF,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,4BAA4B,CAAC,CAAC;AAE3E,kCAAkC;AAClC,MAAM,gBAAgB,GAAG;IACvB,aAAa;IACb,gBAAgB;IAChB,cAAc;IACd,mBAAmB;IACnB,gBAAgB;IAChB,cAAc;IACd,iBAAiB;IACjB,eAAe;IACf,iBAAiB;IACjB,sCAAsC;IACtC,mBAAmB;IACnB,oBAAoB;IACpB,mBAAmB;IACnB,gBAAgB;IAChB,mBAAmB;IACnB,sBAAsB;IACtB,oBAAoB;IACpB,yBAAyB;IACzB,qBAAqB;IACrB,2BAA2B;IAC3B,sBAAsB;IACtB,qBAAqB;IACrB,qBAAqB;IACrB,gBAAgB;IAChB,eAAe;IACf,uBAAuB;IACvB,qBAAqB;IACrB,uBAAuB;IACvB,uBAAuB;IACvB,oBAAoB;IACpB,aAAa;IACb,oBAAoB;IACpB,qBAAqB;IACrB,sBAAsB;IACtB,0BAA0B;CAC3B,CAAC;AAEF,uCAAuC;AACvC,MAAM,YAAY,GAAG;IACnB,SAAS,EAAG,wCAAwC;IACpD,cAAc,EAAG,yBAAyB;IAC1C,UAAU;IACV,UAAU;IACV,QAAQ;IACR,qBAAqB;IACrB,sBAAsB;IACtB,0BAA0B;IAC1B,uBAAuB;IACvB,4BAA4B;IAC5B,0BAA0B;IAC1B,gCAAgC;IAChC,qCAAqC;IACrC,yBAAyB;IACzB,wBAAwB;IACxB,6BAA6B;IAC7B,iCAAiC;IACjC,oCAAoC;IACpC,kCAAkC;IAClC,0BAA0B;IAC1B,2BAA2B;IAC3B,2BAA2B;IAC3B,4BAA4B;IAC5B,6BAA6B;IAC7B,+BAA+B;IAC/B,6BAA6B;IAC7B,4BAA4B;IAC5B,6BAA6B;IAC7B,2BAA2B;IAC3B,eAAe;IACf,2BAA2B;IAC3B,yBAAyB;IACzB,yBAAyB;IACzB,qBAAqB;IACrB,sBAAsB;IACtB,sBAAsB;IACtB,4BAA4B;IAC5B,mBAAmB;IACnB,sBAAsB;IACtB,uBAAuB;IACvB,kBAAkB;IAClB,yBAAyB;IACzB,iBAAiB;IACjB,sBAAsB;IACtB,4BAA4B;IAC5B,+BAA+B;IAC/B,yBAAyB;IACzB,yBAAyB;IACzB,wBAAwB;IACxB,yBAAyB;IACzB,uBAAuB;IACvB,eAAe;IACf,wBAAwB;IACxB,SAAS;CACV,CAAC;AAEF;;GAEG;AACH,SAAS,iBAAiB,CAAC,GAAyB,EAAE,GAAwB,EAAE,OAAoB;IAClG,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;QACvB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAChC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;YAErC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC;gBACpC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;gBAC9D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACnD,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;gBAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,uBAAuB,CAAC,WAAmB;IAClD,IAAI,IAAI,GAAG,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAE/C,uDAAuD;IACvD,MAAM,UAAU,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;QAC5C,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACpE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEhB,4DAA4D;IAC5D,IAAI,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QAC3C,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACpE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEhB,qBAAqB;IACrB,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;IAEnD,0EAA0E;IAC1E,MAAM,SAAS,GAAG;QAChB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACrC,cAAc,EAAE,EAAE;QAClB,gBAAgB,EAAE,EAAE;QACpB,SAAS,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QACxC,UAAU,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;QAC9B,eAAe,EAAE,IAAI;QACrB,UAAU,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;KAC5I,CAAC;IAEF,0BAA0B;IAC1B,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACvF,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,uBAAuB,EAAE,uBAAuB,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IACjH,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IAEpF,0CAA0C;IAC1C,MAAM,gBAAgB,GAAG;;;yBAGF,uBAAuB,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;CAChF,CAAC;IAEA,2CAA2C;IAC3C,SAAS,GAAG,gBAAgB,GAAG,SAAS,CAAC;IAEzC,oBAAoB;IACpB,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;IAEjD,6CAA6C;IAC7C,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,uBAAuB,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IAEvG,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,UAAyB,EAAE;IAC3D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC;IAClC,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAEzD,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAClD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,oBAAoB,IAAI,EAAE,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;QAE9B,gCAAgC;QAChC,GAAG,CAAC,SAAS,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;QAClD,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,wCAAwC,CAAC,CAAC;QACxF,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,cAAc,CAAC,CAAC;QAE9D,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC7B,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,GAAG,EAAE,CAAC;YACV,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,6BAA6B;YAC7B,IAAI,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBACjC,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC,CAAC;YACjD,CAAC;YAED,iCAAiC;YACjC,MAAM,YAAY,GAAG;gBACnB,QAAQ;gBACR,GAAG;gBACH,GAAG;gBACH,GAAG;gBACH,WAAW;gBACX,iBAAiB;gBACjB,kBAAkB;gBAClB,MAAM;aACP,CAAC;YAEF,kCAAkC;YAClC,sEAAsE;YAEtE,yEAAyE;YACzE,IAAI,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;gBACxC,IAAI,MAAM,kBAAkB,CAAC,YAAY,CAAC;oBAAE,OAAO;YACrD,CAAC;YAED,0BAA0B;YAC1B,IAAI,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;gBACrC,IAAI,MAAM,eAAe,CAAC,YAAY,CAAC;oBAAE,OAAO;YAClD,CAAC;YAED,uFAAuF;YACvF,IAAI,QAAQ,CAAC,UAAU,CAAC,qBAAqB,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACxF,IAAI,MAAM,kBAAkB,CAAC,YAAY,CAAC;oBAAE,OAAO;YACrD,CAAC;YAED,gCAAgC;YAChC,IAAI,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;gBACxC,IAAI,MAAM,kBAAkB,CAAC,YAAY,CAAC;oBAAE,OAAO;YACrD,CAAC;YAED,0CAA0C;YAC1C,IAAI,QAAQ,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC;gBAC7C,IAAI,MAAM,sBAAsB,CAAC,YAAY,CAAC;oBAAE,OAAO;YACzD,CAAC;YAGD,0CAA0C;YAC1C,IAAI,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAC7E,IAAI,MAAM,eAAe,CAAC,YAAY,CAAC;oBAAE,OAAO;YAClD,CAAC;YAED,uCAAuC;YACvC,IAAI,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;gBACrC,IAAI,MAAM,iBAAiB,CAAC,YAAY,CAAC;oBAAE,OAAO;YACpD,CAAC;YAED,sCAAsC;YACtC,IAAI,QAAQ,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBAC3C,IAAI,MAAM,qBAAqB,CAAC,YAAY,CAAC;oBAAE,OAAO;YACxD,CAAC;YAED,kCAAkC;YAClC,IAAI,QAAQ,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;gBACzC,IAAI,MAAM,mBAAmB,CAAC,YAAY,CAAC;oBAAE,OAAO;YACtD,CAAC;YAED,0CAA0C;YAC1C,IAAI,QAAQ,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC;gBAC7C,IAAI,MAAM,sBAAsB,CAAC,YAAY,CAAC;oBAAE,OAAO;YACzD,CAAC;YAED,8BAA8B;YAC9B,IAAI,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;gBACvC,IAAI,MAAM,iBAAiB,CAAC,YAAY,CAAC;oBAAE,OAAO;YACpD,CAAC;YAED,0BAA0B;YAC1B,IAAI,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;gBACrC,IAAI,MAAM,eAAe,CAAC,YAAY,CAAC;oBAAE,OAAO;YAClD,CAAC;YAED,+BAA+B;YAC/B,IAAI,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;gBACvC,IAAI,MAAM,kBAAkB,CAAC,YAAY,CAAC;oBAAE,OAAO;YACrD,CAAC;YAED,mDAAmD;YACnD,IAAI,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBACtC,IAAI,MAAM,iBAAiB,CAAC,YAAY,CAAC;oBAAE,OAAO;YACpD,CAAC;YAED,8BAA8B;YAC9B,IAAI,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;gBACvC,IAAI,MAAM,iBAAiB,CAAC,YAAY,CAAC;oBAAE,OAAO;YACpD,CAAC;YAED,6BAA6B;YAC7B,IAAI,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBACtC,IAAI,MAAM,iBAAiB,CAAC,YAAY,CAAC;oBAAE,OAAO;YACpD,CAAC;YAED,4BAA4B;YAC5B,IAAI,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBACtC,IAAI,MAAM,gBAAgB,CAAC,YAAY,CAAC;oBAAE,OAAO;YACnD,CAAC;YAED,8FAA8F;YAC9F,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;gBACrE,IAAI,MAAM,mBAAmB,CAAC,YAAY,CAAC;oBAAE,OAAO;YACtD,CAAC;YAED,iFAAiF;YACjF,IAAI,QAAQ,KAAK,YAAY,IAAI,QAAQ,KAAK,WAAW;gBACrD,QAAQ,KAAK,mBAAmB,IAAI,QAAQ,KAAK,uBAAuB,EAAE,CAAC;gBAC7E,IAAI,MAAM,iBAAiB,CAAC,YAAY,CAAC;oBAAE,OAAO;YACpD,CAAC;YAED,0EAA0E;YAC1E,IAAI,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,aAAa;gBACtD,QAAQ,KAAK,oBAAoB,IAAI,QAAQ,KAAK,eAAe;gBACjE,QAAQ,KAAK,mBAAmB,IAAI,QAAQ,KAAK,kBAAkB;gBACnE,QAAQ,KAAK,yBAAyB,IAAI,QAAQ,KAAK,oBAAoB;gBAC3E,QAAQ,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;gBACzC,IAAI,MAAM,kBAAkB,CAAC,YAAY,CAAC;oBAAE,OAAO;YACrD,CAAC;YAED,uBAAuB;YACvB,IAAI,QAAQ,KAAK,GAAG,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;gBACnD,MAAM,IAAI,GAAG,uBAAuB,CAAC,WAAW,CAAC,CAAC;gBAClD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,0BAA0B,EAAE,CAAC,CAAC;gBACnE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACd,OAAO;YACT,CAAC;YAED,4DAA4D;YAC5D,IAAI,QAAQ,KAAK,cAAc,EAAE,CAAC;gBAChC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBACnB,GAAG,CAAC,GAAG,EAAE,CAAC;gBACV,OAAO;YACT,CAAC;YAED,+CAA+C;YAC/C,IAAI,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBACpC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;gBACrE,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC1B,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;oBACrD,MAAM,SAAS,GAAG;wBAChB,IAAI,EAAE,wBAAwB;wBAC9B,KAAK,EAAE,UAAU;wBACjB,MAAM,EAAE,kBAAkB;wBAC1B,KAAK,EAAE,WAAW;wBAClB,KAAK,EAAE,YAAY;wBACnB,MAAM,EAAE,YAAY;wBACpB,KAAK,EAAE,eAAe;wBACtB,MAAM,EAAE,WAAW;wBACnB,OAAO,EAAE,YAAY;wBACrB,KAAK,EAAE,UAAU;qBAClB,CAAC;oBACF,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,0BAA0B,CAAC;oBACjE,MAAM,OAAO,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;oBACxC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;wBACjB,cAAc,EAAE,WAAW;wBAC3B,eAAe,EAAE,2BAA2B;qBAC7C,CAAC,CAAC;oBACH,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBACjB,OAAO;gBACT,CAAC;YACH,CAAC;YAED,MAAM;YACN,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,CAAC;YACrD,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAEvB,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;YACtC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,oCAAoC;IACpC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;QACzC,IAAI,GAAG,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC;YACtB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;YACvB,OAAO,CAAC,GAAG,CAAC,gDAAgD,IAAI,EAAE,CAAC,CAAC;YACpE,OAAO,CAAC,GAAG,CAAC,kDAAkD,IAAI,KAAK,CAAC,CAAC;YACzE,OAAO,CAAC,GAAG,CAAC,oDAAoD,IAAI,WAAW,CAAC,CAAC;YACjF,OAAO,CAAC,MAAM,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/core/server.ts"],"names":[],"mappings":"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"}