claude-gh-ticket-gen 1.0.1 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -1
- package/dist/cli/commands/generate.d.ts.map +1 -1
- package/dist/cli/commands/generate.js +24 -6
- package/dist/cli/commands/generate.js.map +1 -1
- package/dist/utils/document-filter.d.ts +8 -0
- package/dist/utils/document-filter.d.ts.map +1 -0
- package/dist/utils/document-filter.js +42 -0
- package/dist/utils/document-filter.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/generate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAc,eAAe,EAA+B,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/generate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAc,eAAe,EAA+B,MAAM,qBAAqB,CAAC;AAW/F;;GAEG;AACH,wBAAsB,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4JjG"}
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Generate command implementation
|
|
3
3
|
*/
|
|
4
|
+
import { readFileSync } from 'fs';
|
|
4
5
|
import { resolve } from 'path';
|
|
5
6
|
import { loadConfig, validateConfig } from '../../core/config-manager.js';
|
|
6
|
-
import { parseWithRetry } from '../../core/parser.js';
|
|
7
|
+
import { parseWithRetry, parseDocumentContent } from '../../core/parser.js';
|
|
7
8
|
import { checkGhInstalled, checkGhAuth, getCurrentRepo, createIssue, ensureLabelsExist, ensureCustomLabels } from '../../core/github.js';
|
|
8
9
|
import { checkDuplicate } from '../../core/duplicate-detector.js';
|
|
9
10
|
import { logger } from '../../utils/logger.js';
|
|
10
11
|
import { validateFilePath, validateRepoFormat, validatePriority } from '../../utils/validators.js';
|
|
11
|
-
import { startSpinner, succeedSpinner, failSpinner, displayPreview, displaySummary } from '../ui.js';
|
|
12
|
+
import { startSpinner, succeedSpinner, failSpinner, displayPreview, displaySummary, updateSpinner } from '../ui.js';
|
|
13
|
+
import { extractPhaseFromDocument } from '../../utils/document-filter.js';
|
|
12
14
|
import inquirer from 'inquirer';
|
|
13
15
|
/**
|
|
14
16
|
* Generate command handler
|
|
@@ -21,12 +23,25 @@ export async function generateCommand(file, options = {}) {
|
|
|
21
23
|
const filePath = await resolveFilePath(file);
|
|
22
24
|
// 3. Determine target repo
|
|
23
25
|
const repo = await resolveRepo(options.repo);
|
|
24
|
-
// 4. Parse document
|
|
26
|
+
// 4. Parse document (with optional pre-filtering)
|
|
25
27
|
logger.header('Parsing Document');
|
|
26
28
|
const spinner = startSpinner('Parsing document with Claude AI...');
|
|
27
29
|
let tasks;
|
|
30
|
+
let didPreFilter = false;
|
|
28
31
|
try {
|
|
29
|
-
|
|
32
|
+
// Pre-filter document by phase if specified (reduces token usage)
|
|
33
|
+
if (options.filterPhase) {
|
|
34
|
+
const content = readFileSync(filePath, 'utf-8');
|
|
35
|
+
const filteredContent = extractPhaseFromDocument(content, options.filterPhase);
|
|
36
|
+
if (filteredContent !== content) {
|
|
37
|
+
updateSpinner(spinner, `Parsing "${options.filterPhase}" section...`);
|
|
38
|
+
didPreFilter = true;
|
|
39
|
+
}
|
|
40
|
+
tasks = await parseDocumentContent(filteredContent);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
tasks = await parseWithRetry(filePath);
|
|
44
|
+
}
|
|
30
45
|
succeedSpinner(spinner, `Parsed ${tasks.length} tasks from document`);
|
|
31
46
|
}
|
|
32
47
|
catch (error) {
|
|
@@ -37,8 +52,11 @@ export async function generateCommand(file, options = {}) {
|
|
|
37
52
|
logger.warning('No tasks found in document');
|
|
38
53
|
return;
|
|
39
54
|
}
|
|
40
|
-
// 5. Filter tasks
|
|
41
|
-
const filteredTasks = filterTasks(tasks,
|
|
55
|
+
// 5. Filter tasks (skip phase filter if we already pre-filtered the document)
|
|
56
|
+
const filteredTasks = filterTasks(tasks, {
|
|
57
|
+
...options,
|
|
58
|
+
filterPhase: didPreFilter ? undefined : options.filterPhase,
|
|
59
|
+
});
|
|
42
60
|
logger.info(`${filteredTasks.length} tasks after filtering`);
|
|
43
61
|
if (filteredTasks.length === 0) {
|
|
44
62
|
logger.warning('No tasks match the filter criteria');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/cli/commands/generate.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/cli/commands/generate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document-filter.d.ts","sourceRoot":"","sources":["../../src/utils/document-filter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAyC/E"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Document filtering utilities
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Extract a specific section/phase from a markdown document
|
|
6
|
+
*/
|
|
7
|
+
export function extractPhaseFromDocument(content, phase) {
|
|
8
|
+
const lines = content.split('\n');
|
|
9
|
+
const result = [];
|
|
10
|
+
let inTargetSection = false;
|
|
11
|
+
let currentLevel = 0;
|
|
12
|
+
let targetLevel = 0;
|
|
13
|
+
for (let i = 0; i < lines.length; i++) {
|
|
14
|
+
const line = lines[i];
|
|
15
|
+
const headingMatch = line.match(/^(#+)\s+(.+)$/);
|
|
16
|
+
if (headingMatch) {
|
|
17
|
+
const level = headingMatch[1].length;
|
|
18
|
+
const title = headingMatch[2].trim();
|
|
19
|
+
// Check if this heading matches our target phase
|
|
20
|
+
if (title.toLowerCase().includes(phase.toLowerCase())) {
|
|
21
|
+
inTargetSection = true;
|
|
22
|
+
targetLevel = level;
|
|
23
|
+
result.push(line);
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
26
|
+
// If we're in the target section and hit a same-level or higher-level heading, we're done
|
|
27
|
+
if (inTargetSection && level <= targetLevel) {
|
|
28
|
+
break;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
// Include line if we're in the target section
|
|
32
|
+
if (inTargetSection) {
|
|
33
|
+
result.push(line);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
// If no section was found, return the original content
|
|
37
|
+
if (result.length === 0) {
|
|
38
|
+
return content;
|
|
39
|
+
}
|
|
40
|
+
return result.join('\n');
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=document-filter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document-filter.js","sourceRoot":"","sources":["../../src/utils/document-filter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAe,EAAE,KAAa;IACrE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,eAAe,GAAG,KAAK,CAAC;IAC5B,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAEjD,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YACrC,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAErC,iDAAiD;YACjD,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;gBACtD,eAAe,GAAG,IAAI,CAAC;gBACvB,WAAW,GAAG,KAAK,CAAC;gBACpB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClB,SAAS;YACX,CAAC;YAED,0FAA0F;YAC1F,IAAI,eAAe,IAAI,KAAK,IAAI,WAAW,EAAE,CAAC;gBAC5C,MAAM;YACR,CAAC;QACH,CAAC;QAED,8CAA8C;QAC9C,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED,uDAAuD;IACvD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC"}
|